home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Transactor
/
Transactor_04_1985_Transactor_Publishing.d64
/
tb_add.src
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2023-02-26
|
6KB
|
455 lines
0 rem tb/add.a (sept 27/84) :
1 :
2 rem this program consists of the
3 rem transbasic kernel plus the 'add'
4 rem statement. it is assembled to
5 rem 'tb/add.m' on the library disk.
6 rem it is used to add statements
7 rem and functions to tb/kernel.
8 :
9 rem =================================
10 :
25 if peek(773)<192 goto 29
26 :
27 _a
28 :
29 sys 700
30 .opt oo
31 *= $c000
32 ;
33 t2 = 2
34 t3 = 3
35 t4 = 4
36 t5 = 5
37 t6 = 6
38 ;
39 setlfs = $ffba
40 setnam = $ffbd
41 open = $e1c1
42 chkin = $e11e
43 close = $e1cc
44 clrchn = $ffcc
45 getin = $e124
46 ;
91 ;
92 jmp start
93 jmp ext
94 ;
95 xtra .byte 3,0 ; stmts,funcs
96 ;
97 .byte 0
98 ;
99 skw =*
100 .asc "els[197]exi[212]"
114 .asc "ad[196]"
598 ;
599 fkw =*
1096 ;
1097 .byte 0
1098 ;
1099 cmds =*
1100 .word $a93a,ext-1
1114 .word xadd-1
1598 ;
1599 fncs =*
2099 ;
2100 start ldx #7
2102 stt1 lda $304,x
2104 sta tvec,x
2106 lda nuvecs,x
2108 sta $304,x
2110 dex
2112 bpl stt1
2114 lda xtra
2116 clc
2118 adc xtra+1
2120 sta xtra+2
2122 lda #$60
2124 sta start
2126 rts
2128 ;
2130 tvec .word $a57c
2132 lvec .word $a71a
2134 evec .word $a7e4
2136 fvec .word $ae86
2138 ;
2140 nuvecs .word tok,lis,exc,fun
2142 ;
2144 tok ldx #0
2146 ldy #0
2148 tk1 lda $200,x
2150 cmp #$22
2152 beq tk9
2154 jsr cifchr
2156 bcc tk4
2158 sty $71
2160 stx t3
2162 ldy #0
2164 sty $0b
2166 dey
2168 dex
2170 tk2 iny
2172 inx
2174 tk3 lda $200,x
2176 sec
2178 sbc skw,y
2180 beq tk2
2182 cmp #$80
2184 bne tk5
2186 lda #$5f
2188 ldy $71
2190 sta $200,y
2192 iny
2194 lda $0b
2196 adc #$3f
2198 tk4 inx
2200 sta $200,y
2202 iny
2204 lda $200,y
2206 bne tk1
2208 jmp (tvec)
2210 ;
2212 tk5 ldx t3
2214 tk6 inc $0b
2216 lda $0b
2218 cmp #$1e
2220 beq tk6
2222 tk7 iny
2224 lda skw-1,y
2226 bpl tk7
2228 lda skw,y
2230 bne tk3
2232 ldy $71
2234 lda $200,x
2236 bpl tk4
2238 ;
2240 tk8 lda $200,x
2242 beq tk4
2244 cmp #$22
2246 beq tk4
2248 tk9 sta $200,y
2250 iny
2252 inx
2254 bne tk8
2256 ;
2258 lis cmp #$5f
2260 bne l2
2262 iny
2264 lda ($5f),y
2266 sbc #$40
2268 cmp #$1e
2270 bcc l1
2272 sbc #1
2274 l1 cmp xtra+2
2276 bcc l3
2278 dey
2280 lda ($5f),y
2282 l2 tax
2284 jmp (lvec)
2286 ;
2288 l3 sty t3
2290 ldy #0
2292 tax
2294 beq l5
2296 l4 lda skw,y
2298 php
2300 iny
2302 plp
2304 bpl l4
2306 dex
2308 bne l4
2310 ;
2312 l5 lda skw,y
2314 php
2316 and #$7f
2318 jsr $ab47
2320 iny
2322 plp
2324 bpl l5
2326 ldy t3
2328 l6 jmp $a700
2330 ;
2332 exc jsr $73
2334 ex1 cmp #$8b
2336 beq ex8
2338 cmp #$5f
2340 bne ex5
2342 jsr $73
2344 jsr ex2
2346 jmp $a7ae
2348 ;
2350 ex2 sec
2352 sbc #$40
2354 cmp #$1e
2356 bcc ex3
2358 sbc #1
2360 ex3 cmp xtra
2362 bcs ex7
2364 asl
2366 tay
2368 lda cmds+1,y
2370 pha
2372 lda cmds,y
2374 pha
2376 jmp $73
2378 ;
2380 ex5 lda $7a
2382 bne ex6
2384 dec $7b
2386 ex6 dec $7a
2388 jmp (evec)
2390 ;
2392 ex7 jmp $af08
2394 ;
2396 ex8 jsr ex9
2398 jmp $a7ae
2400 ;
2402 ex9 lda #>ifrtn-1
2404 pha
2406 lda #<ifrtn-1
2408 pha
2410 jmp $73
2412 ;
2414 fun jsr $73
2416 cmp #$5f
2418 beq fu2
2420 lda $7a
2422 bne fu1
2424 dec $7b
2426 fu1 dec $7a
2428 jmp (fvec)
2430 ;
2432 fu2 lda #0
2434 sta $0d
2436 jsr $73
2438 sec
2440 sbc #$40
2442 cmp #$1e
2444 bcc fu3
2446 sbc #1
2448 fu3 sec
2450 sbc xtra
2452 bcc ex7
2454 cmp xtra+1
2456 bcs ex7
2458 asl
2460 tay
2462 lda fncs+1,y
2464 pha
2466 lda fncs,y
2468 pha
2470 jmp $73
2472 ;
2474 ifrtn jsr $ad9e
2476 jsr $79
2478 cmp #$89
2480 beq if1
2482 lda #$a7
2484 jsr $aeff
2486 if1 jsr $79
2488 ldx $61
2490 beq elsrtn
2492 bcs if2
2494 jmp $a8a0
2496 if2 pla
2498 pla
2500 jsr $79
2502 jmp ex1
2512 ;
2514 elsrtn jsr $a8f8
2516 jsr $79
2518 cmp #0
2520 bne els1
2522 rts
2524 els1 jsr $73
2526 cmp #$5f
2528 bne elsrtn
2530 jsr $73
2532 cmp #$40
2534 bne elsrtn
2536 jsr $73
2538 jmp if2
2540 ;
2542 ext ldx #7
2544 ext1 lda tvec,x
2546 sta $304,x
2548 dex
2550 bpl ext1
2552 lda #$a2
2554 sta start
2556 jmp pdown
2558 ;
2560 cifchr cmp #$5b
2562 bcc cic1
2564 clc
2566 bcc cic2
2568 cic1 cmp #$41
2570 cic2 rts
2572 ;
4474 xadd jsr $ad9e
4476 jsr $b6a3
4478 sta t3
4480 txa
4482 pha
4484 tya
4486 pha
4488 lda t3
4490 jsr $b47d
4492 tax
4494 bne xa1
4496 jmp $af08
4498 xa1 clc
4500 adc #2
4502 sta t3
4504 jsr $b47d
4506 tay
4508 pla
4510 sta $23
4512 pla
4514 sta $22
4516 dey
4518 lda #"p"
4520 sta ($62),y
4522 dey
4524 lda #","
4526 sta ($62),y
4528 xa2 dey
4530 bmi xa3
4532 lda ($22),y
4534 sta ($62),y
4536 bne xa2
4538 xa3 lda t3
4540 ldx $62
4542 ldy $63
4544 jsr setnam
4546 jsr $79
4548 beq xa4
4550 jsr $aefd
4552 jsr $b79e
4554 .byte $2c
4556 xa4 ldx #8
4558 lda #$63
4560 tay
4562 jsr setlfs
4564 jsr open
4566 ldx #$63
4568 jsr chkin
4570 jsr dskget
4572 jsr dskget
4574 xa5 jsr dskget
4578 jsr dskget
4580 bne xa7
4582 jsr clsclr
4584 jsr $a659
4586 jmp $e386
4590 xa7 jsr dskget
4592 sta $14
4594 jsr dskget
4596 sta $15
4598 ldy #0
4600 xa8 jsr dskget
4602 sta $200,y
4604 beq xa9
4606 iny
4608 bne xa8
4610 xa9 tya
4612 clc
4614 adc #5
4616 sta $0b
4618 jsr $a613
4620 bcc xa13
4622 ldy #1
4624 lda ($5f),y
4626 sta $23
4628 lda $2d
4630 sta $22
4632 lda $60
4634 sta $25
4636 lda $5f
4638 dey
4640 sbc ($5f),y
4642 clc
4644 adc $2d
4646 sta $2d
4648 sta $24
4650 lda $2e
4652 adc #$ff
4654 sta $2e
4656 sbc $60
4658 tax
4660 sec
4662 xa10 bcc xa5
4664 lda $5f
4666 sbc $2d
4668 tay
4670 bcs xa11
4672 inx
4674 dec $25
4676 xa11 clc
4678 adc $22
4680 bcc xa12
4682 dec $23
4684 clc
4686 xa12 lda ($22),y
4688 sta ($24),y
4690 iny
4692 bne xa12
4694 inc $23
4696 inc $25
4698 dex
4700 bne xa12
4702 xa13 jsr $a663
4704 jsr $a533
4706 clc
4708 lda $2d
4710 sta $5a
4712 adc $0b
4714 sta $58
4716 ldy $2e
4718 sty $5b
4720 bcc xa14
4722 iny
4724 xa14 sty $59
4726 jsr $a3b8
4728 lda $14
4730 ldy $15
4732 sta $1fe
4734 sty $1ff
4736 lda $31
4738 ldy $32
4740 sta $2d
4742 sty $2e
4744 ldy $0b
4746 dey
4748 xa15 lda $01fc,y
4750 sta ($5f),y
4752 dey
4754 bpl xa15
4756 jsr $a663
4758 jsr $a533
4760 clc
4762 bcc xa10
4764 ;
4766 dskget jsr getin
4768 pha
4770 lda $90
4772 and #$bf
4774 bne dkg1
4776 pla
4778 rts
4780 dkg1 jsr clsclr
4782 ldx #$1d
4784 lda #<mrgerr
4786 sta $22
4788 lda #>mrgerr
4790 jmp $a445
4792 ;
4794 mrgerr .asc "merg[197]"
4796 ;
4798 clsclr lda #$63
4800 jsr close
4802 jmp clrchn
4804 ;
5222 pdown rts
5224 ;