AppleIIAsm-Collection/source/disk16_integrated_demos/T.BINSAVE.SUB.MIN

70 lines
1.6 KiB
Plaintext
Raw Normal View History

BINSAVE
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 ERROR 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 #$D3 ; S
JSR FCOUT
LDA #$C1 ; A
JSR FCOUT
LDA #$D6 ; V
JSR FCOUT
LDA #$C5 ; E
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 "BINSAVE (BSAV MACRO)",00
:E_DUMP ASC "DUMPING STRING ADDRESS...",00
:E_MSG ASC "INPUT/OUTPUT ERROR!!!",00