home *** CD-ROM | disk | FTP | other *** search
/ Transactor / Transactor_04_1985_Transactor_Publishing.d64 / tb_add.src (.txt) < prev    next >
Commodore BASIC  |  2023-02-26  |  6KB  |  455 lines

  1. 0 rem tb/add.a (sept 27/84)           :
  2. 1 :
  3. 2 rem  this program consists of the
  4. 3 rem  transbasic kernel plus the 'add'
  5. 4 rem  statement. it is assembled to
  6. 5 rem  'tb/add.m' on the library disk.
  7. 6 rem  it is used to add statements
  8. 7 rem  and functions to tb/kernel.
  9. 8 :
  10. 9 rem =================================
  11. 10 :
  12. 25 if peek(773)<192 goto 29
  13. 26 :
  14. 27 _a
  15. 28 :
  16. 29 sys 700
  17. 30 .opt oo
  18. 31 *= $c000
  19. 32 ;
  20. 33 t2 = 2
  21. 34 t3 = 3
  22. 35 t4 = 4
  23. 36 t5 = 5
  24. 37 t6 = 6
  25. 38 ;
  26. 39 setlfs   = $ffba
  27. 40 setnam   = $ffbd
  28. 41 open     = $e1c1
  29. 42 chkin    = $e11e
  30. 43 close    = $e1cc
  31. 44 clrchn   = $ffcc
  32. 45 getin    = $e124
  33. 46 ;
  34. 91 ;
  35. 92 jmp start
  36. 93 jmp ext
  37. 94 ;
  38. 95 xtra .byte 3,0   ; stmts,funcs
  39. 96 ;
  40. 97 .byte 0
  41. 98 ;
  42. 99 skw =*
  43. 100 .asc "els[197]exi[212]"
  44. 114 .asc "ad[196]"
  45. 598 ;
  46. 599 fkw =*
  47. 1096 ;
  48. 1097 .byte 0
  49. 1098 ;
  50. 1099 cmds =*
  51. 1100 .word $a93a,ext-1
  52. 1114 .word xadd-1
  53. 1598 ;
  54. 1599 fncs =*
  55. 2099 ;
  56. 2100 start ldx #7
  57. 2102 stt1 lda $304,x
  58. 2104 sta tvec,x
  59. 2106 lda nuvecs,x
  60. 2108 sta $304,x
  61. 2110 dex
  62. 2112 bpl stt1
  63. 2114 lda xtra
  64. 2116 clc
  65. 2118 adc xtra+1
  66. 2120 sta xtra+2
  67. 2122 lda #$60
  68. 2124 sta start
  69. 2126 rts
  70. 2128 ;
  71. 2130 tvec .word $a57c
  72. 2132 lvec .word $a71a
  73. 2134 evec .word $a7e4
  74. 2136 fvec .word $ae86
  75. 2138 ;
  76. 2140 nuvecs .word tok,lis,exc,fun
  77. 2142 ;
  78. 2144 tok ldx #0
  79. 2146 ldy #0
  80. 2148 tk1 lda $200,x
  81. 2150 cmp #$22
  82. 2152 beq tk9
  83. 2154 jsr cifchr
  84. 2156 bcc tk4
  85. 2158 sty $71
  86. 2160 stx t3
  87. 2162 ldy #0
  88. 2164 sty $0b
  89. 2166 dey
  90. 2168 dex
  91. 2170 tk2 iny
  92. 2172 inx
  93. 2174 tk3 lda $200,x
  94. 2176 sec
  95. 2178 sbc skw,y
  96. 2180 beq tk2
  97. 2182 cmp #$80
  98. 2184 bne tk5
  99. 2186 lda #$5f
  100. 2188 ldy $71
  101. 2190 sta $200,y
  102. 2192 iny
  103. 2194 lda $0b
  104. 2196 adc #$3f
  105. 2198 tk4 inx
  106. 2200 sta $200,y
  107. 2202 iny
  108. 2204 lda $200,y
  109. 2206 bne tk1
  110. 2208 jmp (tvec)
  111. 2210 ;
  112. 2212 tk5 ldx t3
  113. 2214 tk6 inc $0b
  114. 2216 lda $0b
  115. 2218 cmp #$1e
  116. 2220 beq tk6
  117. 2222 tk7 iny
  118. 2224 lda skw-1,y
  119. 2226 bpl tk7
  120. 2228 lda skw,y
  121. 2230 bne tk3
  122. 2232 ldy $71
  123. 2234 lda $200,x
  124. 2236 bpl tk4
  125. 2238 ;
  126. 2240 tk8 lda $200,x
  127. 2242 beq tk4
  128. 2244 cmp #$22
  129. 2246 beq tk4
  130. 2248 tk9 sta $200,y
  131. 2250 iny
  132. 2252 inx
  133. 2254 bne tk8
  134. 2256 ;
  135. 2258 lis cmp #$5f
  136. 2260 bne l2
  137. 2262 iny
  138. 2264 lda ($5f),y
  139. 2266 sbc #$40
  140. 2268 cmp #$1e
  141. 2270 bcc l1
  142. 2272 sbc #1
  143. 2274 l1 cmp xtra+2
  144. 2276 bcc l3
  145. 2278 dey
  146. 2280 lda ($5f),y
  147. 2282 l2 tax
  148. 2284 jmp (lvec)
  149. 2286 ;
  150. 2288 l3 sty t3
  151. 2290 ldy #0
  152. 2292 tax
  153. 2294 beq l5
  154. 2296 l4 lda skw,y
  155. 2298 php
  156. 2300 iny
  157. 2302 plp
  158. 2304 bpl l4
  159. 2306 dex
  160. 2308 bne l4
  161. 2310 ;
  162. 2312 l5 lda skw,y
  163. 2314 php
  164. 2316 and #$7f
  165. 2318 jsr $ab47
  166. 2320 iny
  167. 2322 plp
  168. 2324 bpl l5
  169. 2326 ldy t3
  170. 2328 l6 jmp $a700
  171. 2330 ;
  172. 2332 exc jsr $73
  173. 2334 ex1 cmp #$8b
  174. 2336 beq ex8
  175. 2338 cmp #$5f
  176. 2340 bne ex5
  177. 2342 jsr $73
  178. 2344 jsr ex2
  179. 2346 jmp $a7ae
  180. 2348 ;
  181. 2350 ex2 sec
  182. 2352 sbc #$40
  183. 2354 cmp #$1e
  184. 2356 bcc ex3
  185. 2358 sbc #1
  186. 2360 ex3 cmp xtra
  187. 2362 bcs ex7
  188. 2364 asl
  189. 2366 tay
  190. 2368 lda cmds+1,y
  191. 2370 pha
  192. 2372 lda cmds,y
  193. 2374 pha
  194. 2376 jmp $73
  195. 2378 ;
  196. 2380 ex5 lda $7a
  197. 2382 bne ex6
  198. 2384 dec $7b
  199. 2386 ex6 dec $7a
  200. 2388 jmp (evec)
  201. 2390 ;
  202. 2392 ex7 jmp $af08
  203. 2394 ;
  204. 2396 ex8 jsr ex9
  205. 2398 jmp $a7ae
  206. 2400 ;
  207. 2402 ex9 lda #>ifrtn-1
  208. 2404 pha
  209. 2406 lda #<ifrtn-1
  210. 2408 pha
  211. 2410 jmp $73
  212. 2412 ;
  213. 2414 fun jsr $73
  214. 2416 cmp #$5f
  215. 2418 beq fu2
  216. 2420 lda $7a
  217. 2422 bne fu1
  218. 2424 dec $7b
  219. 2426 fu1 dec $7a
  220. 2428 jmp (fvec)
  221. 2430 ;
  222. 2432 fu2 lda #0
  223. 2434 sta $0d
  224. 2436 jsr $73
  225. 2438 sec
  226. 2440 sbc #$40
  227. 2442 cmp #$1e
  228. 2444 bcc fu3
  229. 2446 sbc #1
  230. 2448 fu3 sec
  231. 2450 sbc xtra
  232. 2452 bcc ex7
  233. 2454 cmp xtra+1
  234. 2456 bcs ex7
  235. 2458 asl
  236. 2460 tay
  237. 2462 lda fncs+1,y
  238. 2464 pha
  239. 2466 lda fncs,y
  240. 2468 pha
  241. 2470 jmp $73
  242. 2472 ;
  243. 2474 ifrtn jsr $ad9e
  244. 2476 jsr $79
  245. 2478 cmp #$89
  246. 2480 beq if1
  247. 2482 lda #$a7
  248. 2484 jsr $aeff
  249. 2486 if1 jsr $79
  250. 2488 ldx $61
  251. 2490 beq elsrtn
  252. 2492 bcs if2
  253. 2494 jmp $a8a0
  254. 2496 if2 pla
  255. 2498 pla
  256. 2500 jsr $79
  257. 2502 jmp ex1
  258. 2512 ;
  259. 2514 elsrtn jsr $a8f8
  260. 2516 jsr $79
  261. 2518 cmp #0
  262. 2520 bne els1
  263. 2522 rts
  264. 2524 els1 jsr $73
  265. 2526 cmp #$5f
  266. 2528 bne elsrtn
  267. 2530 jsr $73
  268. 2532 cmp #$40
  269. 2534 bne elsrtn
  270. 2536 jsr $73
  271. 2538 jmp if2
  272. 2540 ;
  273. 2542 ext ldx #7
  274. 2544 ext1 lda tvec,x
  275. 2546 sta $304,x
  276. 2548 dex
  277. 2550 bpl ext1
  278. 2552 lda #$a2
  279. 2554 sta start
  280. 2556 jmp pdown
  281. 2558 ;
  282. 2560 cifchr cmp #$5b
  283. 2562 bcc cic1
  284. 2564 clc
  285. 2566 bcc cic2
  286. 2568 cic1 cmp #$41
  287. 2570 cic2 rts
  288. 2572 ;
  289. 4474 xadd jsr $ad9e
  290. 4476 jsr $b6a3
  291. 4478 sta t3
  292. 4480 txa
  293. 4482 pha
  294. 4484 tya
  295. 4486 pha
  296. 4488 lda t3
  297. 4490 jsr $b47d
  298. 4492 tax
  299. 4494 bne xa1
  300. 4496 jmp $af08
  301. 4498 xa1 clc
  302. 4500 adc #2
  303. 4502 sta t3
  304. 4504 jsr $b47d
  305. 4506 tay
  306. 4508 pla
  307. 4510 sta $23
  308. 4512 pla
  309. 4514 sta $22
  310. 4516 dey
  311. 4518 lda #"p"
  312. 4520 sta ($62),y
  313. 4522 dey
  314. 4524 lda #","
  315. 4526 sta ($62),y
  316. 4528 xa2 dey
  317. 4530 bmi xa3
  318. 4532 lda ($22),y
  319. 4534 sta ($62),y
  320. 4536 bne xa2
  321. 4538 xa3 lda t3
  322. 4540 ldx $62
  323. 4542 ldy $63
  324. 4544 jsr setnam
  325. 4546 jsr $79
  326. 4548 beq xa4
  327. 4550 jsr $aefd
  328. 4552 jsr $b79e
  329. 4554 .byte $2c
  330. 4556 xa4 ldx #8
  331. 4558 lda #$63
  332. 4560 tay
  333. 4562 jsr setlfs
  334. 4564 jsr open
  335. 4566 ldx #$63
  336. 4568 jsr chkin
  337. 4570 jsr dskget
  338. 4572 jsr dskget
  339. 4574 xa5 jsr dskget
  340. 4578 jsr dskget
  341. 4580 bne xa7
  342. 4582 jsr clsclr
  343. 4584 jsr $a659
  344. 4586 jmp $e386
  345. 4590 xa7 jsr dskget
  346. 4592 sta $14
  347. 4594 jsr dskget
  348. 4596 sta $15
  349. 4598 ldy #0
  350. 4600 xa8 jsr dskget
  351. 4602 sta $200,y
  352. 4604 beq xa9
  353. 4606 iny
  354. 4608 bne xa8
  355. 4610 xa9 tya
  356. 4612 clc
  357. 4614 adc #5
  358. 4616 sta $0b
  359. 4618 jsr $a613
  360. 4620 bcc xa13
  361. 4622 ldy #1
  362. 4624 lda ($5f),y
  363. 4626 sta $23
  364. 4628 lda $2d
  365. 4630 sta $22
  366. 4632 lda $60
  367. 4634 sta $25
  368. 4636 lda $5f
  369. 4638 dey
  370. 4640 sbc ($5f),y
  371. 4642 clc
  372. 4644 adc $2d
  373. 4646 sta $2d
  374. 4648 sta $24
  375. 4650 lda $2e
  376. 4652 adc #$ff
  377. 4654 sta $2e
  378. 4656 sbc $60
  379. 4658 tax
  380. 4660 sec
  381. 4662 xa10 bcc xa5
  382. 4664 lda $5f
  383. 4666 sbc $2d
  384. 4668 tay
  385. 4670 bcs xa11
  386. 4672 inx
  387. 4674 dec $25
  388. 4676 xa11 clc
  389. 4678 adc $22
  390. 4680 bcc xa12
  391. 4682 dec $23
  392. 4684 clc
  393. 4686 xa12 lda ($22),y
  394. 4688 sta ($24),y
  395. 4690 iny
  396. 4692 bne xa12
  397. 4694 inc $23
  398. 4696 inc $25
  399. 4698 dex
  400. 4700 bne xa12
  401. 4702 xa13 jsr $a663
  402. 4704 jsr $a533
  403. 4706 clc
  404. 4708 lda $2d
  405. 4710 sta $5a
  406. 4712 adc $0b
  407. 4714 sta $58
  408. 4716 ldy $2e
  409. 4718 sty $5b
  410. 4720 bcc xa14
  411. 4722 iny
  412. 4724 xa14 sty $59
  413. 4726 jsr $a3b8
  414. 4728 lda $14
  415. 4730 ldy $15
  416. 4732 sta $1fe
  417. 4734 sty $1ff
  418. 4736 lda $31
  419. 4738 ldy $32
  420. 4740 sta $2d
  421. 4742 sty $2e
  422. 4744 ldy $0b
  423. 4746 dey
  424. 4748 xa15 lda $01fc,y
  425. 4750 sta ($5f),y
  426. 4752 dey
  427. 4754 bpl xa15
  428. 4756 jsr $a663
  429. 4758 jsr $a533
  430. 4760 clc
  431. 4762 bcc xa10
  432. 4764 ;
  433. 4766 dskget jsr getin
  434. 4768 pha
  435. 4770 lda $90
  436. 4772 and #$bf
  437. 4774 bne dkg1
  438. 4776 pla
  439. 4778 rts
  440. 4780 dkg1 jsr clsclr
  441. 4782 ldx #$1d
  442. 4784 lda #<mrgerr
  443. 4786 sta $22
  444. 4788 lda #>mrgerr
  445. 4790 jmp $a445
  446. 4792 ;
  447. 4794 mrgerr .asc "merg[197]"
  448. 4796 ;
  449. 4798 clsclr lda #$63
  450. 4800 jsr close
  451. 4802 jmp clrchn
  452. 4804 ;
  453. 5222 pdown rts
  454. 5224 ;
  455.