home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Transactor
/
Transactor_07_1985_Transactor_Publishing.d64
/
tb_kernel
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2023-02-26
|
4KB
|
292 lines
0 rem transbasic kernel (sept 29/84) :
1 :
2 rem 2 statements, 0 functions
3 :
4 rem keyword characters: 8
5 :
6 rem keyword routine line ser #
7 rem s/else elsrtn 2514 001
8 rem s/exit ext 2542 002
9 :
10 rem utility: cifchr (2560/003)
11 :
12 rem kernel also includes modified
13 rem 'if' statement (ifrtn/2474/000)
14 :
25 if peek(773)<192 goto 29
26 :
27 _a
28 :
29 sys 700
31 *= $c000
32 ;
33 t2 = 2
34 t3 = 3
35 t4 = 4
36 t5 = 5
37 t6 = 6
38 ;
91 ;
92 jmp start
93 jmp ext
94 ;
95 xtra .byte 2,0 ; stmts,funcs
96 ;
97 .byte 0
98 ;
99 skw =*
100 .asc "els[197]exi[212]"
598 ;
599 fkw =*
1096 ;
1097 .byte 0
1098 ;
1099 cmds =*
1100 .word $a93a,ext-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
2125 jsr morvec
2126 rts
2128 ;
2129 .pad
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
2555 jsr kilvec
2556 jmp pdown
2558 ;
2560 cifchr cmp #$5b
2562 bcc cic1
2564 clc
2566 bcc cic2
2568 cic1 cmp #$41
2570 cic2 rts
2572 ;
5222 pdown rts
5224 ;
9162 morvec = *
9178 rts
9182 kilvec = *
9198 rts
9200 ;