OSFILE: Call GET_FILE_INFO to obtain load address

This commit is contained in:
Bobbi Webber-Manners 2021-08-17 20:13:51 -04:00
parent 7e6d9cf4fb
commit 13022f0433
4 changed files with 46 additions and 20 deletions

Binary file not shown.

View File

@ -14,6 +14,7 @@ BELL EQU $FBDD
PRBYTE EQU $FDDA
COUT1 EQU $FDED
CROUT EQU $FD8E
HOME EQU $FC58
AUXMOVE EQU $C311
XFER EQU $C314
@ -38,23 +39,6 @@ A2IRQV EQU $3FE
* MLI entry point
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)
IOBUF0 EQU $4000 ; For loading ROM, OSFILE, *.
IOBUF1 EQU $4400 ; Four open files for langs

View File

@ -3,7 +3,8 @@
*
* Applecorn ROM menu
ROMMENU LDA #<TITLE1 ; Print title
ROMMENU JSR HOME ; Clear screen
LDA #<TITLE1 ; Print title
STA A1L
LDA #>TITLE1
STA A1H

View File

@ -5,6 +5,25 @@
* This code is mostly glue between the BBC Micro code
* 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
* to invoke Apple II / ProDOS IRQs in main memory
A2IRQ >>> IENTMAIN ; IENTMAIN does not do CLI
@ -390,8 +409,18 @@ LOADFILE >>> ENTMAIN
LDA FBEXEC ; If FBEXEC is zero, use addr
CMP #$00 ; in the control block
BEQ :CBADDR
; Otherwise use the file addr
* TODO Issue GET_FILE_INFO MLI call to get file load addr
LDA #<MOSFILE ; Otherwise use file 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
STA A4L
LDA FBLOAD+1
@ -713,6 +742,18 @@ GEOFPL HEX 02 ; Number of parameters
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
DB $00
DW $0000