home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Transactor
/
Transactor_13_1986_Transactor_Publishing.d64
/
trap
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2023-02-26
|
2KB
|
120 lines
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
12566 ldy #>newv
12568 sta $0300
12570 sty $0301
12572 lda #<warm
12574 ldy #>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 ;