mirror of
https://github.com/bobbimanners/Applecorn.git
synced 2025-02-08 00:30:37 +00:00
OSFILE: Call GET_FILE_INFO to obtain load address
This commit is contained in:
parent
7e6d9cf4fb
commit
13022f0433
BIN
applecorn.po
BIN
applecorn.po
Binary file not shown.
18
applecorn.s
18
applecorn.s
@ -14,6 +14,7 @@ BELL EQU $FBDD
|
|||||||
PRBYTE EQU $FDDA
|
PRBYTE EQU $FDDA
|
||||||
COUT1 EQU $FDED
|
COUT1 EQU $FDED
|
||||||
CROUT EQU $FD8E
|
CROUT EQU $FD8E
|
||||||
|
HOME EQU $FC58
|
||||||
AUXMOVE EQU $C311
|
AUXMOVE EQU $C311
|
||||||
XFER EQU $C314
|
XFER EQU $C314
|
||||||
|
|
||||||
@ -38,23 +39,6 @@ A2IRQV EQU $3FE
|
|||||||
* MLI entry point
|
* MLI entry point
|
||||||
MLI EQU $BF00
|
MLI EQU $BF00
|
||||||
|
|
||||||
* ProDOS MLI command numbers
|
|
||||||
QUITCMD EQU $65
|
|
||||||
GTIMECMD EQU $82
|
|
||||||
CREATCMD EQU $C0
|
|
||||||
DESTCMD EQU $C1
|
|
||||||
ONLNCMD EQU $C5
|
|
||||||
SPFXCMD EQU $C6
|
|
||||||
GPFXCMD EQU $C7
|
|
||||||
OPENCMD EQU $C8
|
|
||||||
READCMD EQU $CA
|
|
||||||
WRITECMD EQU $CB
|
|
||||||
CLSCMD EQU $CC
|
|
||||||
FLSHCMD EQU $CD
|
|
||||||
SMARKCMD EQU $CE
|
|
||||||
GMARKCMD EQU $CF
|
|
||||||
GEOFCMD EQU $D1
|
|
||||||
|
|
||||||
* IO Buffer for reading file (1024 bytes)
|
* IO Buffer for reading file (1024 bytes)
|
||||||
IOBUF0 EQU $4000 ; For loading ROM, OSFILE, *.
|
IOBUF0 EQU $4000 ; For loading ROM, OSFILE, *.
|
||||||
IOBUF1 EQU $4400 ; Four open files for langs
|
IOBUF1 EQU $4400 ; Four open files for langs
|
||||||
|
@ -3,7 +3,8 @@
|
|||||||
*
|
*
|
||||||
* Applecorn ROM menu
|
* Applecorn ROM menu
|
||||||
|
|
||||||
ROMMENU LDA #<TITLE1 ; Print title
|
ROMMENU JSR HOME ; Clear screen
|
||||||
|
LDA #<TITLE1 ; Print title
|
||||||
STA A1L
|
STA A1L
|
||||||
LDA #>TITLE1
|
LDA #>TITLE1
|
||||||
STA A1H
|
STA A1H
|
||||||
|
45
mainmem.s
45
mainmem.s
@ -5,6 +5,25 @@
|
|||||||
* This code is mostly glue between the BBC Micro code
|
* This code is mostly glue between the BBC Micro code
|
||||||
* which runs in aux mem and Apple II ProDOS.
|
* which runs in aux mem and Apple II ProDOS.
|
||||||
|
|
||||||
|
* ProDOS MLI command numbers
|
||||||
|
QUITCMD EQU $65
|
||||||
|
GTIMECMD EQU $82
|
||||||
|
CREATCMD EQU $C0
|
||||||
|
DESTCMD EQU $C1
|
||||||
|
SFILECMD EQU $C3
|
||||||
|
GINFOCMD EQU $C4
|
||||||
|
ONLNCMD EQU $C5
|
||||||
|
SPFXCMD EQU $C6
|
||||||
|
GPFXCMD EQU $C7
|
||||||
|
OPENCMD EQU $C8
|
||||||
|
READCMD EQU $CA
|
||||||
|
WRITECMD EQU $CB
|
||||||
|
CLSCMD EQU $CC
|
||||||
|
FLSHCMD EQU $CD
|
||||||
|
SMARKCMD EQU $CE
|
||||||
|
GMARKCMD EQU $CF
|
||||||
|
GEOFCMD EQU $D1
|
||||||
|
|
||||||
* Trampoline in main memory used by aux memory IRQ handler
|
* Trampoline in main memory used by aux memory IRQ handler
|
||||||
* to invoke Apple II / ProDOS IRQs in main memory
|
* to invoke Apple II / ProDOS IRQs in main memory
|
||||||
A2IRQ >>> IENTMAIN ; IENTMAIN does not do CLI
|
A2IRQ >>> IENTMAIN ; IENTMAIN does not do CLI
|
||||||
@ -390,8 +409,18 @@ LOADFILE >>> ENTMAIN
|
|||||||
LDA FBEXEC ; If FBEXEC is zero, use addr
|
LDA FBEXEC ; If FBEXEC is zero, use addr
|
||||||
CMP #$00 ; in the control block
|
CMP #$00 ; in the control block
|
||||||
BEQ :CBADDR
|
BEQ :CBADDR
|
||||||
; Otherwise use the file addr
|
LDA #<MOSFILE ; Otherwise use file addr
|
||||||
* TODO Issue GET_FILE_INFO MLI call to get file load addr
|
STA GINFOPL+1
|
||||||
|
LDA #>MOSFILE
|
||||||
|
STA GINFOPL+2
|
||||||
|
JSR MLI ; Call GET_FILE_INFO
|
||||||
|
DB GINFOCMD
|
||||||
|
DW GINFOPL
|
||||||
|
BCS :READERR
|
||||||
|
LDA GINFOPL+5 ; Aux type MSB
|
||||||
|
STA FBLOAD
|
||||||
|
LDA GINFOPL+6 ; Aux type LSB
|
||||||
|
STA FBLOAD+1
|
||||||
:CBADDR LDA FBLOAD
|
:CBADDR LDA FBLOAD
|
||||||
STA A4L
|
STA A4L
|
||||||
LDA FBLOAD+1
|
LDA FBLOAD+1
|
||||||
@ -713,6 +742,18 @@ GEOFPL HEX 02 ; Number of parameters
|
|||||||
DB $00
|
DB $00
|
||||||
DB $00
|
DB $00
|
||||||
|
|
||||||
|
GINFOPL HEX 0A ; Number of parameters
|
||||||
|
DW $0000 ; Pointer to filename
|
||||||
|
DB $00 ; Access
|
||||||
|
DB $00 ; File type
|
||||||
|
DW $0000 ; Aux type
|
||||||
|
DB $00 ; Storage type
|
||||||
|
DW $0000 ; Blocks used
|
||||||
|
DW $0000 ; Mod date
|
||||||
|
DW $0000 ; Mod time
|
||||||
|
DW $0000 ; Create date
|
||||||
|
DW $0000 ; Create time
|
||||||
|
|
||||||
QUITPL HEX 04 ; Number of parameters
|
QUITPL HEX 04 ; Number of parameters
|
||||||
DB $00
|
DB $00
|
||||||
DW $0000
|
DW $0000
|
||||||
|
Loading…
x
Reference in New Issue
Block a user