mirror of
https://github.com/bobbimanners/Applecorn.git
synced 2024-06-28 03:29:32 +00:00
Added OSARGS call to support EXT# in BASIC (file length)
This commit is contained in:
parent
6daa528396
commit
a5a61f82d0
BIN
applecorn.po
BIN
applecorn.po
Binary file not shown.
11
auxmem.s
11
auxmem.s
|
@ -398,22 +398,29 @@ ARGSHND PHA
|
||||||
STA $C004 ; Write main memory
|
STA $C004 ; Write main memory
|
||||||
STZ MOSFILE ; Zero means flush all
|
STZ MOSFILE ; Zero means flush all
|
||||||
STA $C005 ; Write aux memory
|
STA $C005 ; Write aux memory
|
||||||
BRA :FLUSH
|
BRA :IFLUSH
|
||||||
:HASFILE STA $C004 ; Write main memory
|
:HASFILE STA $C004 ; Write main memory
|
||||||
STY MOSFILE ; File ref num
|
STY MOSFILE ; File ref num
|
||||||
STX MOSFILE+1 ; Pointer to ZP control block
|
STX MOSFILE+1 ; Pointer to ZP control block
|
||||||
STA $C005 ; Write aux memory
|
STA $C005 ; Write aux memory
|
||||||
CMP #$00 ; Y!=0,A=0 => read seq ptr
|
CMP #$00 ; Y!=0,A=0 => read seq ptr
|
||||||
BNE :S3
|
BNE :S3
|
||||||
|
STA $C004 ; Write main
|
||||||
|
STZ MOSFILE+2 ; 0 means get pos
|
||||||
|
STA $C005 ; Write aux
|
||||||
>>> XF2MAIN,TELL
|
>>> XF2MAIN,TELL
|
||||||
:IEXIT BRA :EXIT
|
:IEXIT BRA :EXIT
|
||||||
|
:IFLUSH BRA :FLUSH
|
||||||
:S3 CMP #$01 ; Y!=0,A=1 => write seq ptr
|
:S3 CMP #$01 ; Y!=0,A=1 => write seq ptr
|
||||||
BNE :S4
|
BNE :S4
|
||||||
>>> XF2MAIN,SEEK
|
>>> XF2MAIN,SEEK
|
||||||
BRA :EXIT
|
BRA :EXIT
|
||||||
:S4 CMP #$02 ; Y!=0,A=2 => read file len
|
:S4 CMP #$02 ; Y!=0,A=2 => read file len
|
||||||
BNE :S5
|
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
|
:S5 CMP #$FF ; Y!=0,A=FF => flush file
|
||||||
BNE :EXIT
|
BNE :EXIT
|
||||||
:FLUSH >>> XF2MAIN,FLUSH
|
:FLUSH >>> XF2MAIN,FLUSH
|
||||||
|
|
15
mainmem.s
15
mainmem.s
|
@ -294,24 +294,27 @@ FLUSH >>> ENTMAIN
|
||||||
DW FLSHPL
|
DW FLSHPL
|
||||||
>>> XF2AUX,OSARGSRET
|
>>> 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
|
* ProDOS file handling for OSARGS set ptr command
|
||||||
SEEK >>> ENTMAIN
|
SEEK >>> ENTMAIN
|
||||||
LDA MOSFILE ; File ref number
|
LDA MOSFILE ; File ref number
|
||||||
>>> XF2AUX,OSARGSRET
|
>>> XF2AUX,OSARGSRET
|
||||||
|
|
||||||
* ProDOS file handling for OSARGS get ptr command
|
* ProDOS file handling for OSARGS get ptr command
|
||||||
|
* and for OSARGs get length command
|
||||||
TELL >>> ENTMAIN
|
TELL >>> ENTMAIN
|
||||||
LDA MOSFILE ; File ref number
|
LDA MOSFILE ; File ref number
|
||||||
STA GMARKPL+1
|
STA GMARKPL+1
|
||||||
|
LDA MOSFILE+2 ; Mode (0=pos, otherwise len)
|
||||||
|
CMP #$00
|
||||||
|
BEQ :POS
|
||||||
JSR MLI
|
JSR MLI
|
||||||
|
DB GEOFCMD
|
||||||
|
DW GMARKPL ; MARK parms same as EOF parms
|
||||||
|
BRA :S1
|
||||||
|
:POS JSR MLI
|
||||||
DB GMARKCMD
|
DB GMARKCMD
|
||||||
DW GMARKPL
|
DW GMARKPL
|
||||||
LDX MOSFILE+1 ; Pointer to ZP control block
|
:S1 LDX MOSFILE+1 ; Pointer to ZP control block
|
||||||
BCS :ERR
|
BCS :ERR
|
||||||
LDA $C08B ; R/W LC RAM, bank 1
|
LDA $C08B ; R/W LC RAM, bank 1
|
||||||
LDA $C08B
|
LDA $C08B
|
||||||
|
|
Loading…
Reference in New Issue
Block a user