AppleIIAsm-Collection/source/disk6_fileio/T.BINLOAD.SUB.MIN

70 lines
1.6 KiB
Plaintext
Raw Normal View History

BINLOAD
PLA
STA RETADR
PLA
STA RETADR+1
PLA
STA ADDR2 ; CMD STRING ADDR
PLA
STA ADDR2+1
LDA #1
STA $AAB6 ; DOS LANG FLAG
STA $75+1 ; NOT IN DIRECT MODE
STA $33 ; NOT IN DIRECT MODE
LDA ERRCTRL
CMP #1
BEQ :CHKERR0
JMP :ERREND
:CHKERR0
LDA #$FF ; TURN ON LOCAL ERR HANDLING
STA $D8
LDA #<:CHKERR
STA $9D5A ; DOS ERROR HANDLING ADDR
LDA #>:CHKERR
STA $9D5B
JMP :ERREND
:CHKERR
LDY #0
STY $D8 ; RESUME NORMAL ERR CTRL
_ERR :E_SID;:E_MSG;:E_DUMP;ADDR2;#2
BRK
:ERREND
LDA #$8D
JSR FCOUT
LDA #$84 ; CTRL-D
JSR FCOUT
LDA #$C2 ; B
JSR FCOUT
LDA #$CC ; L
JSR FCOUT
LDA #$CF ; O
JSR FCOUT
LDA #$C1 ; A
JSR FCOUT
LDA #$C4 ; D
JSR FCOUT
LDA #$A0 ; [SPACE]
JSR FCOUT
LDY #0
LDA (ADDR2),Y
STA :SLEN
LDY #1
:LP
LDA (ADDR2),Y
JSR FCOUT
INY
CPY :SLEN
BCC :LP
BEQ :LP
LDA #$8D
JSR FCOUT
LDA RETADR+1
PHA
LDA RETADR
PHA
RTS
:SLEN DS 1
:E_SID ASC "BINLOAD (BLOAD MACRO)",00
:E_DUMP ASC "DUMPING STRING ADDRESS...",00
:E_MSG ASC "INPUT/OUTPUT ERROR!!!",00