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
|
||||
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
|
||||
|
@ -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
|
||||
|
45
mainmem.s
45
mainmem.s
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user