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