From a5a61f82d0a1a4a4e2affb3118f71f4666fd64dd Mon Sep 17 00:00:00 2001 From: Bobbi Webber-Manners Date: Sun, 1 Aug 2021 15:52:11 -0400 Subject: [PATCH] Added OSARGS call to support EXT# in BASIC (file length) --- applecorn.po | Bin 143360 -> 143360 bytes auxmem.s | 11 +++++++++-- mainmem.s | 15 +++++++++------ 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/applecorn.po b/applecorn.po index 6aa213c10ea6cd6088907a71633054179881253c..5eddb8e02cadd98d52353beecd40d472c78d1140 100644 GIT binary patch delta 2737 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 Io*v3eE read seq ptr BNE :S3 + STA $C004 ; Write main + STZ MOSFILE+2 ; 0 means get pos + STA $C005 ; Write aux >>> XF2MAIN,TELL :IEXIT BRA :EXIT +:IFLUSH BRA :FLUSH :S3 CMP #$01 ; Y!=0,A=1 => write seq ptr BNE :S4 >>> XF2MAIN,SEEK BRA :EXIT :S4 CMP #$02 ; Y!=0,A=2 => read file len BNE :S5 - >>> XF2MAIN,STAT + STA $C004 ; Write main + STA MOSFILE+2 ; Non-zero means get len + STA $C005 ; Write aux + >>> XF2MAIN,TELL :S5 CMP #$FF ; Y!=0,A=FF => flush file BNE :EXIT :FLUSH >>> XF2MAIN,FLUSH diff --git a/mainmem.s b/mainmem.s index 139d4cc..637d361 100644 --- a/mainmem.s +++ b/mainmem.s @@ -294,24 +294,27 @@ FLUSH >>> ENTMAIN DW FLSHPL >>> XF2AUX,OSARGSRET -* ProDOS file handling for OSARGS get len command -STAT >>> ENTMAIN - LDA MOSFILE ; File ref number - >>> XF2AUX,OSARGSRET - * ProDOS file handling for OSARGS set ptr command SEEK >>> ENTMAIN LDA MOSFILE ; File ref number >>> XF2AUX,OSARGSRET * ProDOS file handling for OSARGS get ptr command +* and for OSARGs get length command TELL >>> ENTMAIN LDA MOSFILE ; File ref number STA GMARKPL+1 + LDA MOSFILE+2 ; Mode (0=pos, otherwise len) + CMP #$00 + BEQ :POS JSR MLI + DB GEOFCMD + DW GMARKPL ; MARK parms same as EOF parms + BRA :S1 +:POS JSR MLI DB GMARKCMD DW GMARKPL - LDX MOSFILE+1 ; Pointer to ZP control block +:S1 LDX MOSFILE+1 ; Pointer to ZP control block BCS :ERR LDA $C08B ; R/W LC RAM, bank 1 LDA $C08B