mirror of
https://github.com/bobbimanners/Applecorn.git
synced 2024-06-28 03:29:32 +00:00
Updated disk image. Builds on Merlin-16 again.
This commit is contained in:
parent
087c9fc4e1
commit
0d08904fc9
BIN
applecorn.po
BIN
applecorn.po
Binary file not shown.
|
@ -233,6 +233,8 @@ MAINZP MAC
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -467,3 +467,5 @@ OSWORDM ASC 'OSWORD($'
|
||||||
DB $00
|
DB $00
|
||||||
OSBM2 ASC ').'
|
OSBM2 ASC ').'
|
||||||
DB $00
|
DB $00
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -443,3 +443,5 @@ BYTE7DOK RTS
|
||||||
|
|
||||||
BYTE76 LDX #$00 ; Update LEDs and return X=SHIFT
|
BYTE76 LDX #$00 ; Update LEDs and return X=SHIFT
|
||||||
RTS ; Not possible with Apple
|
RTS ; Not possible with Apple
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -331,3 +331,5 @@ RELCOORD CLC
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
1435
auxmem.hostfs.s
1435
auxmem.hostfs.s
File diff suppressed because it is too large
Load Diff
|
@ -132,15 +132,15 @@ MOSHIGH SEI
|
||||||
LDA #7
|
LDA #7
|
||||||
JSR OSWRCH
|
JSR OSWRCH
|
||||||
JSR OSNEWL
|
JSR OSNEWL
|
||||||
LDX MAXROM ; TEMP X=language to enter
|
LDX MAXROM ; TEMP X=language to enter
|
||||||
CLC
|
CLC
|
||||||
|
|
||||||
* OSBYTE $8E - Enter language ROM
|
* OSBYTE $8E - Enter language ROM
|
||||||
* X=ROM number to select
|
* X=ROM number to select
|
||||||
*
|
*
|
||||||
BYTE8E PHP ; Save CLC=RESET, SEC=Not RESET
|
BYTE8E PHP ; Save CLC=RESET, SEC=Not RESET
|
||||||
JSR ROMSELECT ; Bring ROM X into memory
|
JSR ROMSELECT ; Bring ROM X into memory
|
||||||
STX BYTEVARBASE+$FC ; Set current language ROM
|
STX BYTEVARBASE+$FC ; Set current language ROM
|
||||||
LDA #$00
|
LDA #$00
|
||||||
STA FAULT+0
|
STA FAULT+0
|
||||||
LDA #$80
|
LDA #$80
|
||||||
|
@ -157,10 +157,10 @@ BYTE8E PHP ; Save CLC=RESET, SEC=Not RESET
|
||||||
* OSBYTE $8F - Issue service call
|
* OSBYTE $8F - Issue service call
|
||||||
* X=service call, Y=parameter
|
* X=service call, Y=parameter
|
||||||
*
|
*
|
||||||
SERVICE TAX ; Enter here with A=Service Num
|
SERVICE TAX ; Enter here with A=Service Num
|
||||||
BYTE8F
|
BYTE8F
|
||||||
SERVICEX LDA $F4
|
SERVICEX LDA $F4
|
||||||
PHA ; Save current ROM
|
PHA ; Save current ROM
|
||||||
|
|
||||||
* LDA $E0 ; *DEBUG*
|
* LDA $E0 ; *DEBUG*
|
||||||
* AND #$20
|
* AND #$20
|
||||||
|
@ -174,22 +174,22 @@ SERVICEX LDA $F4
|
||||||
*:SERVDEBUG
|
*:SERVDEBUG
|
||||||
|
|
||||||
TXA
|
TXA
|
||||||
LDX MAXROM ; Start at highest ROM
|
LDX MAXROM ; Start at highest ROM
|
||||||
:SERVLP JSR ROMSELECT ; Bring it into memory
|
:SERVLP JSR ROMSELECT ; Bring it into memory
|
||||||
BIT $8006
|
BIT $8006
|
||||||
BPL :SERVSKIP ; No service entry
|
BPL :SERVSKIP ; No service entry
|
||||||
JSR $8003 ; Call service entry
|
JSR $8003 ; Call service entry
|
||||||
TAX
|
TAX
|
||||||
BEQ :SERVDONE
|
BEQ :SERVDONE
|
||||||
:SERVSKIP LDX $F4 ; Restore X=current ROM
|
:SERVSKIP LDX $F4 ; Restore X=current ROM
|
||||||
DEX ; Step down to next
|
DEX ; Step down to next
|
||||||
BPL :SERVLP ; Loop until ROM 0 done
|
BPL :SERVLP ; Loop until ROM 0 done
|
||||||
:SERVDONE PLA ; Get caller's ROM back
|
:SERVDONE PLA ; Get caller's ROM back
|
||||||
PHX ; Save return from service call
|
PHX ; Save return from service call
|
||||||
TAX
|
TAX
|
||||||
JSR ROMSELECT ; Restore caller's ROM
|
JSR ROMSELECT ; Restore caller's ROM
|
||||||
PLX ; Get return value back
|
PLX ; Get return value back
|
||||||
TXA ; Return in A and X and set EQ/NE
|
TXA ; Return in A and X and set EQ/NE
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
|
|
||||||
|
@ -208,3 +208,5 @@ HELLO ASC 'Applecorn MOS 2021-11-04'
|
||||||
DB $00 ; Unify MOS messages
|
DB $00 ; Unify MOS messages
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -689,3 +689,5 @@ AUXBLK ASC '**ENDOFCODE**'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -17,34 +17,34 @@
|
||||||
* $EF-$FF MOS API workspace
|
* $EF-$FF MOS API workspace
|
||||||
|
|
||||||
* DEBUG EQU $00 ; $00=*OPT 255 debug code removed
|
* DEBUG EQU $00 ; $00=*OPT 255 debug code removed
|
||||||
DEBUG EQU $E0 ; $E0=*OPT 255 debug code included
|
DEBUG EQU $E0 ; $E0=*OPT 255 debug code included
|
||||||
* ; $E1
|
* ; $E1
|
||||||
FSFLAG1 EQU $E2 ; $E2
|
FSFLAG1 EQU $E2 ; $E2
|
||||||
FSFLAG2 EQU $E3 ; $E3 HOSTFS *OPT settings
|
FSFLAG2 EQU $E3 ; $E3 HOSTFS *OPT settings
|
||||||
GSFLAG EQU $E4 ; $E4 GSREAD processing flags
|
GSFLAG EQU $E4 ; $E4 GSREAD processing flags
|
||||||
GSCHAR EQU $E5 ; $E5 GSREAD accumulator
|
GSCHAR EQU $E5 ; $E5 GSREAD accumulator
|
||||||
OSTEXT EQU $E6 ; $E6 => text string $E6 OSNUM+0
|
OSTEXT EQU $E6 ; $E6 => text string $E6 OSNUM+0
|
||||||
MAXLEN EQU OSTEXT+2 ; $E8 $E8 OSNUM+2
|
MAXLEN EQU OSTEXT+2 ; $E8 $E8 OSNUM+2
|
||||||
MINCHAR EQU OSTEXT+3 ; $E9 $E9 OSNUM+3
|
MINCHAR EQU OSTEXT+3 ; $E9 $E9 OSNUM+3
|
||||||
MAXCHAR EQU OSTEXT+4 ; $EA $EA OSPAD
|
MAXCHAR EQU OSTEXT+4 ; $EA $EA OSPAD
|
||||||
OSTEMP EQU $EB ; $EB $EB OSTEMP
|
OSTEMP EQU $EB ; $EB $EB OSTEMP
|
||||||
OSKBD1 EQU $EC ; $EC kbd ws
|
OSKBD1 EQU $EC ; $EC kbd ws
|
||||||
OSKBD2 EQU OSKBD1+1 ; $ED kbd ws
|
OSKBD2 EQU OSKBD1+1 ; $ED kbd ws
|
||||||
OSKBD3 EQU OSKBD1+2 ; $EE kbd ws
|
OSKBD3 EQU OSKBD1+2 ; $EE kbd ws
|
||||||
OSAREG EQU $EF ; $EF A register
|
OSAREG EQU $EF ; $EF A register
|
||||||
OSXREG EQU OSAREG+1 ; $F0 X register
|
OSXREG EQU OSAREG+1 ; $F0 X register
|
||||||
OSYREG EQU OSXREG+1 ; $F1 Y register
|
OSYREG EQU OSXREG+1 ; $F1 Y register
|
||||||
OSCTRL EQU OSXREG ; $F0 (XY)=>control block
|
OSCTRL EQU OSXREG ; $F0 (XY)=>control block
|
||||||
OSLPTR EQU $F2 ; $F2 => command line
|
OSLPTR EQU $F2 ; $F2 => command line
|
||||||
ROMID EQU $F4 ; $F4 current ROM
|
ROMID EQU $F4 ; $F4 current ROM
|
||||||
ROMTMP EQU $F5 ; $F5
|
ROMTMP EQU $F5 ; $F5
|
||||||
ROMPTR EQU $F6 ; $F6 =>
|
ROMPTR EQU $F6 ; $F6 =>
|
||||||
* ; $F8 *TEMP* pseudo-SROM settings
|
* ; $F8 *TEMP* pseudo-SROM settings
|
||||||
* ; $F9 *TEMP* pseudo-SROM settings
|
* ; $F9 *TEMP* pseudo-SROM settings
|
||||||
OSINTWS EQU $FA ; $FA IRQ ZP pointer, use when IRQs off
|
OSINTWS EQU $FA ; $FA IRQ ZP pointer, use when IRQs off
|
||||||
OSINTA EQU $FC ; $FC IRQ register A store
|
OSINTA EQU $FC ; $FC IRQ register A store
|
||||||
FAULT EQU $FD ; $FD Error message pointer
|
FAULT EQU $FD ; $FD Error message pointer
|
||||||
ESCFLAG EQU $FF ; $FF Escape status
|
ESCFLAG EQU $FF ; $FF Escape status
|
||||||
|
|
||||||
|
|
||||||
* $0200-$0235 Vectors
|
* $0200-$0235 Vectors
|
||||||
|
@ -52,25 +52,27 @@ ESCFLAG EQU $FF ; $FF Escape status
|
||||||
* $0290-$02ED
|
* $0290-$02ED
|
||||||
* $02EE-$02FF MOS control block
|
* $02EE-$02FF MOS control block
|
||||||
|
|
||||||
USERV EQU $200 ; USER vector
|
USERV EQU $200 ; USER vector
|
||||||
BRKV EQU $202 ; BRK vector
|
BRKV EQU $202 ; BRK vector
|
||||||
CLIV EQU $208 ; OSCLI vector
|
CLIV EQU $208 ; OSCLI vector
|
||||||
BYTEV EQU $20A ; OSBYTE vector
|
BYTEV EQU $20A ; OSBYTE vector
|
||||||
WORDV EQU $20C ; OSWORD vector
|
WORDV EQU $20C ; OSWORD vector
|
||||||
WRCHV EQU $20E ; OSWRCH vector
|
WRCHV EQU $20E ; OSWRCH vector
|
||||||
RDCHV EQU $210 ; OSRDCH vector
|
RDCHV EQU $210 ; OSRDCH vector
|
||||||
FILEV EQU $212 ; OSFILE vector
|
FILEV EQU $212 ; OSFILE vector
|
||||||
ARGSV EQU $214 ; OSARGS vector
|
ARGSV EQU $214 ; OSARGS vector
|
||||||
BGETV EQU $216 ; OSBGET vector
|
BGETV EQU $216 ; OSBGET vector
|
||||||
BPUTV EQU $218 ; OSBPUT vector
|
BPUTV EQU $218 ; OSBPUT vector
|
||||||
GBPBV EQU $21A ; OSGBPB vector
|
GBPBV EQU $21A ; OSGBPB vector
|
||||||
FINDV EQU $21C ; OSFIND vector
|
FINDV EQU $21C ; OSFIND vector
|
||||||
FSCV EQU $21E ; FSCV misc file ops
|
FSCV EQU $21E ; FSCV misc file ops
|
||||||
|
|
||||||
BYTEVARBASE EQU $190 ; Base of OSBYTE variables
|
BYTEVARBASE EQU $190 ; Base of OSBYTE variables
|
||||||
OSFILECB EQU $2EE ; OSFILE control block
|
OSFILECB EQU $2EE ; OSFILE control block
|
||||||
OSGBPBCB EQU OSFILECB+1 ; OSGBPB control block
|
OSGBPBCB EQU OSFILECB+1 ; OSGBPB control block
|
||||||
|
|
||||||
|
|
||||||
* $0300-$03DF
|
* $0300-$03DF
|
||||||
* $03E0-$03FF Used for interfacing with ProDOS XFER
|
* $03E0-$03FF Used for interfacing with ProDOS XFER
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -513,3 +513,5 @@ ECHOLP1 JSR GSREAD
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1008,3 +1008,5 @@ VDU01 RTS
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -89,6 +89,8 @@ GEOFCMD EQU $D1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -228,6 +228,8 @@ MHGRTAB DW $2000,$2080,$2100,$2180,$2200,$2280,$2300,$2380
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -135,6 +135,8 @@ RESET TSX
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,8 @@ START JSR CROUT
|
||||||
LDA #$20 ; PAGE2 shadow on ROM3 GS
|
LDA #$20 ; PAGE2 shadow on ROM3 GS
|
||||||
TRB $C035
|
TRB $C035
|
||||||
|
|
||||||
|
STZ $C073 ; Force RamWorks bank zero
|
||||||
|
|
||||||
JSR ROMMENU
|
JSR ROMMENU
|
||||||
* LDA #>AUXADDR ; Address in aux
|
* LDA #>AUXADDR ; Address in aux
|
||||||
* LDX #<AUXADDR
|
* LDX #<AUXADDR
|
||||||
|
@ -176,4 +178,6 @@ LOADCODE PHP ; Save carry flag
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -131,6 +131,8 @@ QUITPL HEX 04 ; Number of parameters
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -103,3 +103,5 @@ USERSEL DB $00
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
278
mainmem.misc.s
278
mainmem.misc.s
|
@ -7,179 +7,181 @@
|
||||||
* A1L/A1H: Start address
|
* A1L/A1H: Start address
|
||||||
* A2L/A2H: End address
|
* A2L/A2H: End address
|
||||||
* A4L/A4H: Destination start address
|
* A4L/A4H: Destination start address
|
||||||
MEMCPY LDA (A1L)
|
MEMCPY LDA (A1L)
|
||||||
STA (A4L)
|
STA (A4L)
|
||||||
LDA A1H
|
LDA A1H
|
||||||
CMP A2H
|
CMP A2H
|
||||||
BNE :S1
|
BNE :S1
|
||||||
LDA A1L
|
LDA A1L
|
||||||
CMP A2L
|
CMP A2L
|
||||||
BNE :S1
|
BNE :S1
|
||||||
:DONE RTS
|
:DONE RTS
|
||||||
:S1 INC A1L
|
:S1 INC A1L
|
||||||
BNE :S2
|
BNE :S2
|
||||||
INC A1H
|
INC A1H
|
||||||
:S2 INC A4L
|
:S2 INC A4L
|
||||||
BNE :S3
|
BNE :S3
|
||||||
INC A4H
|
INC A4H
|
||||||
:S3 BRA MEMCPY
|
:S3 BRA MEMCPY
|
||||||
|
|
||||||
* Copy 512 bytes from BLKBUF to AUXBLK in aux LC
|
* Copy 512 bytes from BLKBUF to AUXBLK in aux LC
|
||||||
COPYAUXBLK >>> ALTZP ; Alt ZP & Alt LC on
|
COPYAUXBLK >>> ALTZP ; Alt ZP & Alt LC on
|
||||||
LDY #$00
|
LDY #$00
|
||||||
STA $C005 ; Write aux mem
|
STA $C005 ; Write aux mem
|
||||||
:L1 LDA BLKBUF+$000,Y
|
:L1 LDA BLKBUF+$000,Y
|
||||||
STA AUXBLK+$000,Y
|
STA AUXBLK+$000,Y
|
||||||
LDA BLKBUF+$100,Y
|
LDA BLKBUF+$100,Y
|
||||||
STA AUXBLK+$100,Y
|
STA AUXBLK+$100,Y
|
||||||
INY
|
INY
|
||||||
BNE :L1
|
BNE :L1
|
||||||
STA $C004 ; Write main mem
|
STA $C004 ; Write main mem
|
||||||
:S2 >>> MAINZP ; Alt ZP off, ROM back in
|
:S2 >>> MAINZP ; Alt ZP off, ROM back in
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
* Search FILEREFS for value in A
|
* Search FILEREFS for value in A
|
||||||
* On return, buffer number is in X (or $FF if no bufs)
|
* On return, buffer number is in X (or $FF if no bufs)
|
||||||
FINDBUF LDX #$00
|
FINDBUF LDX #$00
|
||||||
:L1 CMP FILEREFS,X
|
:L1 CMP FILEREFS,X
|
||||||
BEQ :END
|
BEQ :END
|
||||||
INX
|
INX
|
||||||
CPX #$04
|
CPX #$04
|
||||||
BNE :L1
|
BNE :L1
|
||||||
LDX #$FF ; $FF for not found
|
LDX #$FF ; $FF for not found
|
||||||
:END RTS
|
:END RTS
|
||||||
|
|
||||||
* Obtain I/O buffer address
|
* Obtain I/O buffer address
|
||||||
* On entry: buffer number in X
|
* On entry: buffer number in X
|
||||||
* On exit: buffer address in AY
|
* On exit: buffer address in AY
|
||||||
* Carry set if no bufs, clear otherwise
|
* Carry set if no bufs, clear otherwise
|
||||||
BUFADDR CPX #$00
|
BUFADDR CPX #$00
|
||||||
BNE :S1
|
BNE :S1
|
||||||
LDA #<IOBUF1
|
LDA #<IOBUF1
|
||||||
LDY #>IOBUF1
|
LDY #>IOBUF1
|
||||||
BRA :EXIT
|
BRA :EXIT
|
||||||
:S1 CPX #$01
|
:S1 CPX #$01
|
||||||
BNE :S2
|
BNE :S2
|
||||||
LDA #<IOBUF2
|
LDA #<IOBUF2
|
||||||
LDY #>IOBUF2
|
LDY #>IOBUF2
|
||||||
BRA :EXIT
|
BRA :EXIT
|
||||||
:S2 CPX #$02
|
:S2 CPX #$02
|
||||||
BNE :S3
|
BNE :S3
|
||||||
LDA #<IOBUF3
|
LDA #<IOBUF3
|
||||||
LDY #>IOBUF3
|
LDY #>IOBUF3
|
||||||
BRA :EXIT
|
BRA :EXIT
|
||||||
:S3 CPX #$03
|
:S3 CPX #$03
|
||||||
BNE :NOBUFS
|
BNE :NOBUFS
|
||||||
LDA #<IOBUF4
|
LDA #<IOBUF4
|
||||||
LDY #>IOBUF4
|
LDY #>IOBUF4
|
||||||
:EXIT CLC
|
:EXIT CLC
|
||||||
RTS
|
RTS
|
||||||
:NOBUFS SEC
|
:NOBUFS SEC
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
|
|
||||||
* Check if file exists
|
* Check if file exists
|
||||||
* Returns A=0 if doesn't exist, A=1 file, A=2 dir
|
* Returns A=0 if doesn't exist, A=1 file, A=2 dir
|
||||||
EXISTS LDA #<MOSFILE
|
EXISTS LDA #<MOSFILE
|
||||||
STA GINFOPL+1
|
STA GINFOPL+1
|
||||||
LDA #>MOSFILE
|
LDA #>MOSFILE
|
||||||
STA GINFOPL+2
|
STA GINFOPL+2
|
||||||
JSR GETINFO ; GET_FILE_INFO
|
JSR GETINFO ; GET_FILE_INFO
|
||||||
LDA #$00
|
LDA #$00
|
||||||
BCS :EXIT ; Any error -> $00
|
BCS :EXIT ; Any error -> $00
|
||||||
LDA GINFOPL+7 ; Storage type
|
LDA GINFOPL+7 ; Storage type
|
||||||
CMP #$0D
|
CMP #$0D
|
||||||
LDA #$01 ; File -> $01
|
LDA #$01 ; File -> $01
|
||||||
ADC #$00 ; Dir. -> $02
|
ADC #$00 ; Dir. -> $02
|
||||||
:EXIT RTS
|
:EXIT RTS
|
||||||
|
|
||||||
|
|
||||||
* Copy FILEBLK to OSFILECB in aux memory
|
* Copy FILEBLK to OSFILECB in aux memory
|
||||||
* Preserves A
|
* Preserves A
|
||||||
COPYFB PHA
|
COPYFB PHA
|
||||||
LDX #$11 ; 18 bytes in FILEBLK
|
LDX #$11 ; 18 bytes in FILEBLK
|
||||||
>>> WRTAUX ; Write to Aux mem
|
>>> WRTAUX ; Write to Aux mem
|
||||||
:L1 LDA FILEBLK,X
|
:L1 LDA FILEBLK,X
|
||||||
STA OSFILECB,X
|
STA OSFILECB,X
|
||||||
DEX
|
DEX
|
||||||
BPL :L1
|
BPL :L1
|
||||||
>>> WRTMAIN ; Back to Main mem
|
>>> WRTMAIN ; Back to Main mem
|
||||||
PLA
|
PLA
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
* Get file info
|
* Get file info
|
||||||
GETINFO JSR MLI
|
GETINFO JSR MLI
|
||||||
DB GINFOCMD
|
DB GINFOCMD
|
||||||
DW GINFOPL
|
DW GINFOPL
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
* Set file info
|
* Set file info
|
||||||
SETINFO LDA #$07 ; SET_FILE_INFO 7 parms
|
SETINFO LDA #$07 ; SET_FILE_INFO 7 parms
|
||||||
STA GINFOPL
|
STA GINFOPL
|
||||||
JSR MLI
|
JSR MLI
|
||||||
DB SINFOCMD
|
DB SINFOCMD
|
||||||
DW GINFOPL ; Re-use PL from GFI
|
DW GINFOPL ; Re-use PL from GFI
|
||||||
LDA #$0A ; GET_FILE_INFO 10 parms
|
LDA #$0A ; GET_FILE_INFO 10 parms
|
||||||
STA GINFOPL
|
STA GINFOPL
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
* Create disk file
|
* Create disk file
|
||||||
* Uses filename in MOSFILE
|
* Uses filename in MOSFILE
|
||||||
CRTFILE JSR MLI ; GET_TIME
|
CRTFILE JSR MLI ; GET_TIME
|
||||||
DB GTIMECMD
|
DB GTIMECMD
|
||||||
LDA #<MOSFILE
|
LDA #<MOSFILE
|
||||||
STA CREATEPL+1
|
STA CREATEPL+1
|
||||||
LDA #>MOSFILE
|
LDA #>MOSFILE
|
||||||
STA CREATEPL+2
|
STA CREATEPL+2
|
||||||
LDA #$C3 ; Open permissions
|
LDA #$C3 ; Open permissions
|
||||||
STA CREATEPL+3
|
STA CREATEPL+3
|
||||||
LDA $BF90 ; Current date
|
LDA $BF90 ; Current date
|
||||||
STA CREATEPL+8
|
STA CREATEPL+8
|
||||||
LDA $BF91
|
LDA $BF91
|
||||||
STA CREATEPL+9
|
STA CREATEPL+9
|
||||||
LDA $BF92 ; Current time
|
LDA $BF92 ; Current time
|
||||||
STA CREATEPL+10
|
STA CREATEPL+10
|
||||||
LDA $BF93
|
LDA $BF93
|
||||||
STA CREATEPL+11
|
STA CREATEPL+11
|
||||||
JSR MLI
|
JSR MLI
|
||||||
DB CREATCMD
|
DB CREATCMD
|
||||||
DW CREATEPL
|
DW CREATEPL
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
* Open disk file
|
* Open disk file
|
||||||
OPENMOSFILE LDA #<MOSFILE ; Open filename in MOSFILE
|
OPENMOSFILE LDA #<MOSFILE ; Open filename in MOSFILE
|
||||||
STA OPENPL+1
|
STA OPENPL+1
|
||||||
LDA #>MOSFILE
|
LDA #>MOSFILE
|
||||||
STA OPENPL+2
|
STA OPENPL+2
|
||||||
OPENFILE JSR MLI
|
OPENFILE JSR MLI
|
||||||
DB OPENCMD
|
DB OPENCMD
|
||||||
DW OPENPL
|
DW OPENPL
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
* Close disk file
|
* Close disk file
|
||||||
CLSFILE JSR MLI
|
CLSFILE JSR MLI
|
||||||
DB CLSCMD
|
DB CLSCMD
|
||||||
DW CLSPL
|
DW CLSPL
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
* Read 512 bytes into BLKBUF
|
* Read 512 bytes into BLKBUF
|
||||||
RDFILE JSR MLI
|
RDFILE JSR MLI
|
||||||
DB READCMD
|
DB READCMD
|
||||||
DW READPL
|
DW READPL
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
* Write data in BLKBUF to disk
|
* Write data in BLKBUF to disk
|
||||||
WRTFILE JSR MLI
|
WRTFILE JSR MLI
|
||||||
DB WRITECMD
|
DB WRITECMD
|
||||||
DW WRITEPL
|
DW WRITEPL
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
* Put ProDOS prefix in PREFIX
|
* Put ProDOS prefix in PREFIX
|
||||||
GETPREF JSR MLI
|
GETPREF JSR MLI
|
||||||
DB GPFXCMD
|
DB GPFXCMD
|
||||||
DW GPFXPL
|
DW GPFXPL
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
* Map of file reference numbers to IOBUF1..4
|
* Map of file reference numbers to IOBUF1..4
|
||||||
FILEREFS DB $00,$00,$00,$00
|
FILEREFS DB $00,$00,$00,$00
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -314,4 +314,6 @@ PREFIX DS 65 ; Buffer for ProDOS prefix
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
1754
mainmem.svc.s
1754
mainmem.svc.s
File diff suppressed because it is too large
Load Diff
|
@ -422,6 +422,8 @@ MATCHBUF DS 65 ; For storing match results (Pascal str)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user