home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / canada-remote-systems / c64 / utils / tbasic.arc / TB / SCREEN.SRC (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  4.4 KB  |  302 lines

  1. 0 REM SCREEN THINGS (AUG 25/84)
  2. 1 :
  3. 2 REM 5 STATEMENTS, 0 FUNCTIONS
  4. 3 :
  5. 4 REM KEYWORD CHARACTERS:22
  6. 5 :
  7. 6 REM KEYWORD  ROUTINE LINE  SER #
  8. 7 REM S/GROUND GRD     2740   013
  9. 8 REM S/FRAME  FRAM    2748   014
  10. 9 REM S/TEXT   TEX     2756   015
  11. 10 REM S/CRAM  CFILL   2768   016
  12. 11 REM S/CLS   CLEA    2790   017
  13. 12 :
  14. 13 REM ==========================
  15. 14 :
  16. 25 IF PEEK(773)<192 GOTO29:REM TEST IF TRANSBASIC ALREADY ENABLED
  17. 26 :
  18. 27 _A: REM 'EXIT' STATEMENT TOKEN
  19. 28 :
  20. 29 SYS700
  21. 30 .OPT OO
  22. 31 *= $C000
  23. 33 T2 = 2
  24. 34 T3 = 3
  25. 35 T4 = 4
  26. 36 T5 = 5
  27. 37 T6 = 6
  28. 92 JMP START
  29. 93 JMP EXT
  30. 95 XTRA .BYTE 7,0
  31. 97 .BYTE 0
  32. 99 SKW = *
  33. 100 .ASC "ELS[197]EXI[212]"
  34. 104 .ASC "GROUN[196]FRAM[197]TEX[212]"
  35. 105 .ASC "CRA[205]CL[211]"
  36. 599 FKW =*
  37. 1097 .BYTE 0
  38. 1099 CMDS = *
  39. 1100 .WORD $A93A,EXT-1
  40. 1104 .WORD GRD-1,FRAM-1,TEX-1
  41. 1105 .WORD CFILL-1,CLEA-1
  42. 1599 FNCS = *
  43. 2100 START LDX #7
  44. 2102 STT1  LDA $304,X
  45. 2104 STA TVEC,X
  46. 2106 LDA NUVECS,X
  47. 2108 STA $304,X
  48. 2110 DEX
  49. 2112 BPL STT1
  50. 2114 LDA XTRA
  51. 2116 CLC
  52. 2118 ADC XTRA+1
  53. 2120 STA XTRA+2
  54. 2122 LDA #$60
  55. 2124 STA START
  56. 2126 RTS
  57. 2130 TVEC .WORD $A57C
  58. 2132 LVEC .WORD $A71A
  59. 2134 EVEC .WORD $A7E4
  60. 2136 FVEC .WORD $AE86
  61. 2140 NUVECS .WORD TOK,LIS,EXC,FUN
  62. 2144 TOK LDX #0
  63. 2146 LDY #0
  64. 2148 TK1 LDA $200,X
  65. 2150 CMP #$22
  66. 2152 BEQ TK9
  67. 2154 JSR CIFCHR
  68. 2156 BCC TK4
  69. 2158 STY $71
  70. 2160 STX T3
  71. 2162 LDY #0
  72. 2164 STY $0B
  73. 2166 DEY
  74. 2168 DEX
  75. 2170 TK2 INY
  76. 2172 INX
  77. 2174 TK3 LDA $200,X
  78. 2176 SEC
  79. 2178 SBC SKW,Y
  80. 2180 BEQ TK2
  81. 2182 CMP #$80
  82. 2184 BNE TK5
  83. 2186 LDA #$5F
  84. 2188 LDY $71
  85. 2190 STA $200,Y
  86. 2192 INY
  87. 2194 LDA $0B
  88. 2196 ADC #$3F
  89. 2198 TK4 INX
  90. 2200 STA $200,Y
  91. 2202 INY
  92. 2204 LDA $200,Y
  93. 2206 BNE TK1
  94. 2208 JMP (TVEC)
  95. 2212 TK5 LDX T3
  96. 2214 TK6 INC $0B
  97. 2216 LDA $0B
  98. 2218 CMP #$1E
  99. 2220 BEQ TK6
  100. 2222 TK7 INY
  101. 2224 LDA SKW-1,Y
  102. 2226 BPL TK7
  103. 2228 LDA SKW,Y
  104. 2230 BNE TK3
  105. 2232 LDY $71
  106. 2234 LDA $200,X
  107. 2236 BPL TK4
  108. 2240 TK8 LDA $200,X
  109. 2242 BEQ TK4
  110. 2244 CMP #$22
  111. 2246 BEQ TK4
  112. 2248 TK9 STA $200,Y
  113. 2250 INY
  114. 2252 INX
  115. 2254 BNE TK8
  116. 2258 LIS CMP #$5F
  117. 2260 BNE L2
  118. 2262 INY
  119. 2264 LDA ($5F),Y
  120. 2266 SBC #$40
  121. 2268 CMP #$1E
  122. 2270 BCC L1
  123. 2272 SBC #1
  124. 2274 L1 CMP XTRA+2
  125. 2276 BCC L3
  126. 2278 DEY
  127. 2280 LDA ($5F),Y
  128. 2282 L2 TAX
  129. 2284 JMP (LVEC)
  130. 2288 L3 STY T3
  131. 2290 LDY #0
  132. 2292 TAX
  133. 2294 BEQ L5
  134. 2296 L4 LDA SKW,Y
  135. 2298 PHP
  136. 2300 INY
  137. 2302 PLP
  138. 2304 BPL L4
  139. 2306 DEX
  140. 2308 BNE L4
  141. 2312 L5 LDA SKW,Y
  142. 2314 PHP
  143. 2316 AND #$7F
  144. 2318 JSR $AB47
  145. 2320 INY
  146. 2322 PLP
  147. 2324 BPL L5
  148. 2326 LDY T3
  149. 2328 L6 JMP $A700
  150. 2332 EXC JSR $73
  151. 2334 EX1 CMP #$8B
  152. 2336 BEQ EX8
  153. 2338 CMP #$5F
  154. 2340 BNE EX5
  155. 2342 JSR $73
  156. 2344 JSR EX2
  157. 2346 JMP $A7AE
  158. 2350 EX2 SEC
  159. 2352 SBC #$40
  160. 2354 CMP #$1E
  161. 2356 BCC EX3
  162. 2358 SBC #1
  163. 2360 EX3 CMP XTRA
  164. 2362 BCS EX7
  165. 2364 ASL
  166. 2366 TAY
  167. 2368 LDA CMDS+1,Y
  168. 2370 PHA
  169. 2372 LDA CMDS,Y
  170. 2374 PHA
  171. 2376 JMP $73
  172. 2380 EX5 LDA $7A
  173. 2382 BNE EX6
  174. 2384 DEC $7B
  175. 2386 EX6 DEC $7A
  176. 2388 JMP (EVEC)
  177. 2392 EX7 JMP $AF08
  178. 2396 EX8 JSR EX9
  179. 2398 JMP $A7AE
  180. 2402 EX9 LDA #>IFRTN-1
  181. 2404 PHA
  182. 2406 LDA #<IFRTN-1
  183. 2408 PHA
  184. 2410 JMP $73
  185. 2414 FUN JSR $73
  186. 2416 CMP #$5F
  187. 2418 BEQ FU2
  188. 2420 LDA $7A
  189. 2422 BNE FU1
  190. 2424 DEC $7B
  191. 2426 FU1 DEC $7A
  192. 2428 JMP (FVEC)
  193. 2432 FU2 LDA #0
  194. 2434 STA $0D
  195. 2436 JSR $73  
  196. 2438 SEC
  197. 2440 SBC #$40
  198. 2442 CMP #$1E
  199. 2444 BCC FU3
  200. 2446 SBC #1
  201. 2448 FU3 SEC
  202. 2450 SBC XTRA
  203. 2452 BCC EX7
  204. 2454 CMP XTRA+1
  205. 2456 BCS EX7
  206. 2458 ASL
  207. 2460 TAY
  208. 2462 LDA FNCS+1,Y
  209. 2464 PHA
  210. 2466 LDA FNCS,Y
  211. 2468 PHA
  212. 2470 JMP $73
  213. 2474 IFRTN JSR $AD9E
  214. 2476 JSR $79
  215. 2478 CMP #$89
  216. 2480 BEQ IF1
  217. 2482 LDA #$A7
  218. 2484 JSR $AEFF
  219. 2486 IF1 JSR $79
  220. 2488 LDX $61
  221. 2490 BEQ ELSRTN
  222. 2492 BCS IF2
  223. 2494 JMP $A8A0
  224. 2496 IF2 PLA
  225. 2498 PLA
  226. 2500 JSR $79
  227. 2502 JMP EX1
  228. 2514 ELSRTN JSR $A8F8
  229. 2516 JSR $79
  230. 2518 CMP #0
  231. 2520 BNE ELS1
  232. 2522 RTS
  233. 2524 ELS1 JSR $73
  234. 2526 CMP #$5F
  235. 2528 BNE ELSRTN
  236. 2530 JSR $73
  237. 2532 CMP #$40
  238. 2534 BNE ELSRTN
  239. 2536 JSR $73
  240. 2538 JMP IF2
  241. 2542 EXT LDX #7
  242. 2544 EXT1 LDA TVEC,X
  243. 2546 STA $304,X
  244. 2548 DEX
  245. 2550 BPL EXT1
  246. 2552 LDA #$A2
  247. 2554 STA START
  248. 2556 JMP PDOWN
  249. 2560 CIFCHR CMP #$5B
  250. 2562 BCC CIC1
  251. 2564 CLC
  252. 2566 BCC CIC2
  253. 2568 CIC1 CMP #$41
  254. 2570 CIC2 RTS
  255. 2740 GRD JSR $B79E ;GET BYTE IN .X
  256. 2742 STX $D021 ;PUT IN BACKGROUND
  257. 2744 RTS       ;COLOUR REGISTER
  258. 2746 ;
  259. 2748 FRAM JSR $B79E ;GET BYTE IN .X
  260. 2750 STX $D020 ;BUT IN BORDER
  261. 2752 RTS
  262. 2754 ;
  263. 2756 TEX JSR $B79E ;GET BYTE IN .X
  264. 2758 TXA
  265. 2760 AND #$0F ;PUT LOW BYTE IN
  266. 2762 STA  $286    ;TEXT COLOUR REGISTER
  267. 2764 RTS
  268. 2766 ;
  269. 2768 CFILL JSR $B79E ;GET BYTE IN .X
  270. 2770 TXA
  271. 2772 LDY #0
  272. 2774 CF1 STA $D800,Y ;FILL COLOUR MEMORY
  273. 2776 STA $D900,Y
  274. 2778 STA $DA00,Y
  275. 2780 STA $DB00,Y
  276. 2782 INY
  277. 2784 BNE CF1
  278. 2786 RTS
  279. 2788 ;
  280. 2790 CLEA BNE CLE1 ;IF NO PARAMETERS
  281. 2792 JMP $E544 ;JUST CLEAR SCREEN
  282. 2794 CLE1 JSR $B79E ;GET A BYTE
  283. 2796 STX $14 ;CHECK RANGE
  284. 2798 CPX #$19
  285. 2800 BCS CLE5
  286. 2802 JSR $79 ;BRANCH IF NO
  287. 2804 BEQ CLE3 ;2ND PARAMETER
  288. 2806 JSR $AEFD ;CHECK FOR COMMA
  289. 2808 JSR $B79E ;GET SECOND PARAMETER
  290. 2810 CLE2 CPX $14 ;EXIT IF LESS
  291. 2812 BCC CLE4 ;THAN FIRST ONE
  292. 2814 CPX #$19 ;CHECK RANGE
  293. 2816 BCS CLE5
  294. 2818 .BYTE $2C
  295. 2820 CLE3 LDX #$18 ;DEFAULT 2ND PARAM
  296. 2822 JSR $E9FF
  297. 2824 DEX
  298. 2826 BPL CLE2
  299. 2828 CLE4 JMP $E56C ;RESTORE CURSOR
  300. 2830 CLE5 JMP $B248 ;ILLEGAL QUANTITY
  301. 5222 PDOWN RTS
  302.