0 REM TRAP (WILLIAM TURNER) : 1 : 2 REM 1 STATEMENT, 2 FUNCTIONS 3 : 4 REM KEYWORD CHARACTERS: 15 5 : 6 REM KEYWORD ROUTINE LINE SER # 7 REM S/TRAP TRA 12544 172 8 REM F/ERROR ERRO 12666 173 9 REM F/ERRLIN ERRL 12672 174 10 : 11 REM ================================ 12 : 154 .ASC "TRA[208]" 623 .ASC "ERRO[210]ERRLI[206]" 1154 .WORD TRA-1 1623 .WORD ERRO-1,ERRL-1 2125 JSR MORVEC 2555 JSR KILVEC 9162 MORVEC =* 9164 JSR AUTON 9166 JSR ERRON 9178 RTS 9180 ; 9182 KILVEC =* 9184 JSR AUTOFF 9186 JSR ERROFF 9198 RTS 9200 ; 9202 AUTOFF LDA WRMSRT;FROM D. SPRUYT'S 9204 STA $302 9206 LDA WRMSRT+1 9208 STA $303 9210 RTS 9212 ; 9214 AUTON LDA $302 9216 STA WRMSRT 9218 LDA $303 9220 STA WRMSRT+1 9222 RTS 9232 ; 10082 .IF >(*&255)+1: *=*+(*&1) 10084 WRMSRT .WORD 0 10086 ; 12544 TRA JSR $AD8A 12546 JSR $B7F7 12548 STY TLIN 12550 STA TLIN+1 12552 TAX 12554 BNE TRA1 12556 TYA 12558 BEQ ERROFF 12560 TRA1 BIT TRFLAG;TEST TRAP ON NOW 12562 BMI TRA2 12564 LDA #NEWV 12568 STA $0300 12570 STY $0301 12572 LDA #WARM 12576 STA $0302 12578 STY $0303 12580 LDA #$80 12582 STA TRFLAG 12584 TRA2 RTS 12586 ; 12588 NEWV BMI WARM 12590 STX ERRNO 12592 LDA $39 12594 LDY $3A 12596 STA ELINE 12598 STY ELINE+1 12600 BIT TRFLAG 12602 BPL EOUT 12604 LDA TLIN 12606 LDY TLIN+1 12608 STA $14 12610 STY $15 12612 LDX #$FA 12614 TXS 12616 LDA #$A7 12618 PHA 12620 LDA #$AD 12622 PHA 12624 JMP $A8A3 12626 ; 12628 WARM JSR ERROFF 12630 JSR AUTOFF 12632 ;JSR OWNRTN 12634 LDX #$80 12636 JMP ($0300) 12638 ; 12640 ERROFF LDA ERRVEC 12642 LDY ERRVEC+1 12644 STA $0300 12646 STY $0301 12648 LSR TRFLAG 12650 RTS 12652 ; 12654 ERRON LDA $300 12656 LDY $301 12658 STA ERRVEC 12660 STY ERRVEC+1 12662 RTS 12664 ; 12666 ERRO LDY ERRNO 12668 JMP $B3A2 12670 ; 12672 ERRL LDY ELINE 12674 LDA ELINE+1 12676 JMP USFP 12678 ; 12680 EOUT .BYTE $4C;JMP 12682 ERRVEC .WORD 0;OLD ERROR VECTOR 12684 TLIN .WORD 0;TRAP LINE 12686 ERRNO .BYTE 0;ERROR NUMBER 12688 ELINE .WORD 0;ERRONEOUS LINE # 12690 TRFLAG .BYTE 0;TRAP SET FLAG 12692 ;