667
|
1 ********************************************************************
|
|
2 * gfx2 - CoCo 3 graphics subroutine module
|
|
3 *
|
|
4 * $Id$
|
|
5 *
|
|
6 * Ed. Comments Who YY/MM/DD
|
|
7 * ------------------------------------------------------------------
|
|
8 * 2 Original Tandy distribution version
|
|
9
|
|
10 nam gfx2
|
|
11 ttl CoCo 3 graphics subroutine module
|
|
12
|
|
13 * Disassembled 02/07/06 13:10:09 by Disasm v1.6 (C) 1988 by RML
|
|
14
|
|
15 ifp1
|
|
16 use os9defs
|
|
17 endc
|
|
18
|
|
19 tylg set Sbrtn+Objct
|
|
20 atrv set ReEnt+rev
|
|
21 rev set $01
|
682
|
22 edition set $02
|
667
|
23
|
|
24 mod eom,name,tylg,atrv,start,size
|
|
25
|
|
26 u0000 rmb 0
|
|
27 size equ .
|
|
28
|
|
29 name fcs /gfx2/
|
682
|
30 fcb edition
|
667
|
31
|
|
32 FuncTbl fdb DWSet-FuncTbl
|
|
33 fcc "DWSet"
|
|
34 fcb $FF
|
|
35 fdb Select-FuncTbl
|
|
36 fcc "Select"
|
|
37 fcb $FF
|
|
38 fdb OWSet-FuncTbl
|
|
39 fcc "OWSet"
|
|
40 fcb $FF
|
|
41 fdb OWEnd-FuncTbl
|
|
42 fcc "OWEnd"
|
|
43 fcb $FF
|
|
44 fdb DWEnd-FuncTbl
|
|
45 fcc "DWEnd"
|
|
46 fcb $FF
|
|
47 fdb CWArea-FuncTbl
|
|
48 fcc "CWArea"
|
|
49 fcb $FF
|
|
50 fdb DefBuff-FuncTbl
|
|
51 fcc "DefBuff"
|
|
52 fcb $FF
|
|
53 fdb KillBuff-FuncTbl
|
|
54 fcc "KillBuff"
|
|
55 fcb $FF
|
|
56 fdb GPLoad-FuncTbl
|
|
57 fcc "GPLoad"
|
|
58 fcb $FF
|
|
59 fdb Get-FuncTbl
|
|
60 fcc "Get"
|
|
61 fcb $FF
|
|
62 fdb Put-FuncTbl
|
|
63 fcc "Put"
|
|
64 fcb $FF
|
|
65 fdb Pattern-FuncTbl
|
|
66 fcc "Pattern"
|
|
67 fcb $FF
|
|
68 fdb Logic-FuncTbl
|
|
69 fcc "Logic"
|
|
70 fcb $FF
|
|
71 fdb DefCol-FuncTbl
|
|
72 fcc "DefCol"
|
|
73 fcb $FF
|
|
74 fdb Palette-FuncTbl
|
|
75 fcc "Palette"
|
|
76 fcb $FF
|
|
77 fdb Color-FuncTbl
|
|
78 fcc "Color"
|
|
79 fcb $FF
|
|
80 fdb Border-FuncTbl
|
|
81 fcc "Border"
|
|
82 fcb $FF
|
|
83 fdb ScaleSw-FuncTbl
|
|
84 fcc "ScaleSw"
|
|
85 fcb $FF
|
|
86 fdb DWProtSw-FuncTbl
|
|
87 fcc "DWProtSw"
|
|
88 fcb $FF
|
|
89 fdb GCSet-FuncTbl
|
|
90 fcc "GCSet"
|
|
91 fcb $FF
|
|
92 fdb Font-FuncTbl
|
|
93 fcc "Font"
|
|
94 fcb $FF
|
|
95 fdb TCharSw-FuncTbl
|
|
96 fcc "TCharSw"
|
|
97 fcb $FF
|
|
98 fdb BoldSw-FuncTbl
|
|
99 fcc "BoldSw"
|
|
100 fcb $FF
|
|
101 fdb PropSw-FuncTbl
|
|
102 fcc "PropSw"
|
|
103 fcb $FF
|
|
104 fdb SetDPtr-FuncTbl
|
|
105 fcc "SetDPtr"
|
|
106 fcb $FF
|
|
107 fdb Point-FuncTbl
|
|
108 fcc "Point"
|
|
109 fcb $FF
|
|
110 fdb Line-FuncTbl
|
|
111 fcc "Line"
|
|
112 fcb $FF
|
|
113 fdb Box-FuncTbl
|
|
114 fcc "Box"
|
|
115 fcb $FF
|
|
116 fdb Bar-FuncTbl
|
|
117 fcc "Bar"
|
|
118 fcb $FF
|
|
119 fdb PutGC-FuncTbl
|
|
120 fcc "PutGC"
|
|
121 fcb $FF
|
|
122 fdb Fill-FuncTbl
|
|
123 fcc "Fill"
|
|
124 fcb $FF
|
|
125 fdb Circle-FuncTbl
|
|
126 fcc "Circle"
|
|
127 fcb $FF
|
|
128 fdb Draw-FuncTbl
|
|
129 fcc "Draw"
|
|
130 fcb $FF
|
|
131 fdb Ellipse-FuncTbl
|
|
132 fcc "Ellipse"
|
|
133 fcb $FF
|
|
134 fdb Arc-FuncTbl
|
|
135 fcc "Arc"
|
|
136 fcb $FF
|
|
137 fdb CurHome-FuncTbl
|
|
138 fcc "CurHome"
|
|
139 fcb $FF
|
|
140 fdb CurXY-FuncTbl
|
|
141 fcc "CurXY"
|
|
142 fcb $FF
|
|
143 fdb ErLine-FuncTbl
|
|
144 fcc "ErLine"
|
|
145 fcb $FF
|
|
146 fdb ErEOLine-FuncTbl
|
|
147 fcc "ErEOLine"
|
|
148 fcb $FF
|
|
149 fdb CurOff-FuncTbl
|
|
150 fcc "CurOff"
|
|
151 fcb $FF
|
|
152 fdb CurOn-FuncTbl
|
|
153 fcc "CurOn"
|
|
154 fcb $FF
|
|
155 fdb CurRgt-FuncTbl
|
|
156 fcc "CurRgt"
|
|
157 fcb $FF
|
|
158 fdb Bell-FuncTbl
|
|
159 fcc "Bell"
|
|
160 fcb $FF
|
|
161 fdb CurLft-FuncTbl
|
|
162 fcc "CurLft"
|
|
163 fcb $FF
|
|
164 fdb CurUp-FuncTbl
|
|
165 fcc "CurUp"
|
|
166 fcb $FF
|
|
167 fdb CurDwn-FuncTbl
|
|
168 fcc "CurDwn"
|
|
169 fcb $FF
|
|
170 fdb ErEOWndw-FuncTbl
|
|
171 fcc "ErEOWndw"
|
|
172 fcb $FF
|
|
173 fdb Clear-FuncTbl
|
|
174 fcc "Clear"
|
|
175 fcb $FF
|
|
176 fdb CrRtn-FuncTbl
|
|
177 fcc "CrRtn"
|
|
178 fcb $FF
|
|
179 fdb ReVOn-FuncTbl
|
|
180 fcc "ReVOn"
|
|
181 fcb $FF
|
|
182 fdb ReVOff-FuncTbl
|
|
183 fcc "ReVOff"
|
|
184 fcb $FF
|
|
185 fdb UndlnOn-FuncTbl
|
|
186 fcc "UndlnOn"
|
|
187 fcb $FF
|
|
188 fdb UndlnOff-FuncTbl
|
|
189 fcc "UndlnOff"
|
|
190 fcb $FF
|
|
191 fdb BlnkOn-FuncTbl
|
|
192 fcc "BlnkOn"
|
|
193 fcb $FF
|
|
194 fdb BlnkOff-FuncTbl
|
|
195 fcc "BlnkOff"
|
|
196 fcb $FF
|
|
197 fdb InsLin-FuncTbl
|
|
198 fcc "InsLin"
|
|
199 fcb $FF
|
|
200 fdb DelLin-FuncTbl
|
|
201 fcc "DelLin"
|
|
202 fcb $FF
|
|
203 fcb $00
|
|
204 L0200 fcc "OFF"
|
|
205 fcb $FF
|
|
206 fcb $00
|
|
207 fcc "AND"
|
|
208 fcb $FF
|
|
209 fcb $01
|
|
210 fcc "OR"
|
|
211 fcb $FF
|
|
212 fcb $02
|
|
213 fcc "XOR"
|
|
214 fcb $FF
|
|
215 fcb $03
|
|
216 fcb $00
|
|
217 L0214 fcc "OFF"
|
|
218 fcb $FF
|
|
219 fcb $00
|
|
220 fcc "ON"
|
|
221 fcb $FF
|
|
222 fcb $01
|
|
223 fcb $00
|
|
224
|
|
225 start leas <-$21,s
|
|
226 clr ,s
|
|
227 ldd <$23,s
|
|
228 beq L0289
|
|
229 tsta
|
|
230 bne L0289
|
|
231 ldd [<$25,s]
|
|
232 ldx <$27,s
|
|
233 leax -$01,x
|
|
234 beq L023B
|
|
235 leax -$01,x
|
|
236 bne L023D
|
|
237 tfr b,a
|
|
238 L023B sta ,s
|
|
239 L023D leau >FuncTbl,pcr
|
|
240 L0241 ldy ,u++
|
|
241 beq L0285
|
|
242 tst ,s
|
|
243 bne L024F
|
|
244 ldx <$25,s
|
|
245 bra L0252
|
|
246 L024F ldx <$29,s
|
|
247 L0252 lda ,x+
|
|
248 eora ,u+
|
|
249 anda #$DF
|
|
250 beq L0262
|
|
251 leau -$01,u
|
|
252 L025C tst ,u+
|
|
253 bpl L025C
|
|
254 bra L0241
|
|
255 L0262 tst -$01,u
|
|
256 bpl L0252
|
|
257 tfr y,d
|
|
258 leay >FuncTbl,pcr
|
|
259 leay d,y
|
|
260 leax $01,s
|
|
261 lda #$1B
|
|
262 sta ,x+
|
|
263 tst ,s
|
|
264 bne L027D
|
|
265 leau <$29,s
|
|
266 bra L0280
|
|
267 L027D leau <$2D,s
|
|
268 L0280 ldd <$23,s
|
|
269 jmp ,y
|
685
|
270 L0285 ldb #E$NoRout
|
667
|
271 bra L028B
|
685
|
272 L0289 ldb #E$ParmEr
|
667
|
273 L028B coma
|
|
274 leas <$21,s
|
|
275 rts
|
|
276
|
|
277 DWSet lda #$20
|
|
278 pshs x,b,a
|
|
279 ldx $02,u
|
|
280 cmpx #$0002
|
|
281 bne L029F
|
|
282 ldd [,u]
|
|
283 bra L02A1
|
|
284 L029F lda [,u]
|
|
285 L02A1 puls x,b,a
|
|
286 beq L02D1
|
|
287 bmi L02D1
|
|
288 tst ,s
|
|
289 beq L02AF
|
|
290 cmpb #$0A
|
|
291 bra L02B1
|
|
292 L02AF cmpb #$09
|
|
293 L02B1 lbne L0289
|
|
294 sta ,x+
|
|
295 lbsr L088D
|
|
296 bra L02DF
|
|
297
|
|
298 Select lda #$21
|
|
299 L02BE tst ,s
|
|
300 beq L02C6
|
|
301 cmpb #$02
|
|
302 bra L02C8
|
|
303 L02C6 cmpb #$01
|
|
304 L02C8 bne L0289
|
|
305 sta ,x+
|
|
306 lbra L08A1
|
|
307
|
|
308 OWSet lda #$22
|
|
309 L02D1 tst ,s
|
|
310 beq L02D9
|
|
311 cmpb #$09
|
|
312 bra L02DB
|
|
313 L02D9 cmpb #$08
|
|
314 L02DB bne L0289
|
|
315 sta ,x+
|
|
316 L02DF lbsr L088D
|
|
317 lbsr L088D
|
|
318 lbsr L088D
|
|
319 L02E8 lbsr L088D
|
|
320 lbsr L088D
|
|
321 lbsr L088D
|
|
322 lbsr L088D
|
|
323 lbra L08A1
|
|
324
|
|
325 OWEnd lda #$23
|
|
326 bra L02BE
|
|
327
|
|
328 DWEnd lda #$24
|
|
329 bra L02BE
|
|
330
|
|
331 CWArea lda #$25
|
|
332 tst ,s
|
|
333 beq L0309
|
|
334 cmpb #$06
|
|
335 bra L030B
|
|
336 L0309 cmpb #$05
|
|
337 L030B lbne L0289
|
|
338 sta ,x+
|
|
339 bra L02E8
|
|
340
|
|
341 DefBuff lda #$29
|
|
342 tst ,s
|
|
343 beq L031D
|
|
344 cmpb #$05
|
|
345 bra L031F
|
|
346 L031D cmpb #$04
|
|
347 L031F lbne L0289
|
|
348 sta ,x+
|
|
349 lbsr L088D
|
|
350 lbsr L088D
|
|
351 lbra L0387
|
|
352
|
|
353 KillBuff lda #$2A
|
|
354 L0330 tst ,s
|
|
355 beq L0338
|
|
356 cmpb #$04
|
|
357 bra L033A
|
|
358 L0338 cmpb #$03
|
|
359 L033A lbne L0289
|
|
360 sta ,x+
|
|
361 lbsr L088D
|
|
362 lbsr L088D
|
|
363 lbra L08A1
|
|
364
|
|
365 GPLoad lda #$2B
|
|
366 tst ,s
|
|
367 beq L0353
|
|
368 cmpb #$08
|
|
369 bra L0355
|
|
370 L0353 cmpb #$07
|
|
371 L0355 lbne L0289
|
|
372 sta ,x+
|
|
373 lbsr L088D
|
|
374 lbsr L088D
|
|
375 lbsr L088D
|
|
376 bra L0381
|
|
377
|
|
378 Get lda #$2C
|
|
379 tst ,s
|
|
380 beq L0370
|
|
381 cmpb #$08
|
|
382 bra L0372
|
|
383 L0370 cmpb #$07
|
|
384 L0372 lbne L0289
|
|
385 sta ,x+
|
|
386 lbsr L088D
|
|
387 lbsr L088D
|
|
388 lbsr L0845
|
|
389 L0381 lbsr L0845
|
|
390 L0384 lbsr L0845
|
|
391 L0387 lbsr L0845
|
|
392 lbra L08A1
|
|
393
|
|
394 Put lda #$2D
|
|
395 tst ,s
|
|
396 beq L0397
|
|
397 cmpb #$06
|
|
398 bra L0399
|
|
399 L0397 cmpb #$05
|
|
400 L0399 lbne L0289
|
|
401 sta ,x+
|
|
402 lbsr L088D
|
|
403 lbsr L088D
|
|
404 bra L0384
|
|
405
|
|
406 Pattern lda #$2E
|
|
407 bra L0330
|
|
408
|
|
409 Logic lda #$2F
|
|
410 tst ,s
|
|
411 beq L03B5
|
|
412 cmpb #$03
|
|
413 bra L03B7
|
|
414 L03B5 cmpb #$02
|
|
415 L03B7 lbne L0289
|
|
416 sta ,x+
|
|
417 pshs y,x,b,a
|
|
418 leay >L0200,pcr
|
|
419 L03C3 ldx ,u
|
|
420 lbsr L0811
|
|
421 bcs L03D5
|
|
422 ldx $02,s
|
|
423 sta ,x+
|
|
424 stx $02,s
|
|
425 puls y,x,b,a
|
|
426 lbra L08A1
|
|
427 L03D5 puls y,x,b,a
|
|
428 lbra L0289
|
|
429
|
|
430 DefCol lda #$30
|
|
431 lbra L02BE
|
|
432
|
|
433 Palette lda #$31
|
|
434 lbra L0330
|
|
435
|
|
436 Color tst ,s
|
|
437 bne L03E9
|
|
438 incb
|
|
439 L03E9 cmpb #$03
|
|
440 beq L03F8
|
|
441 cmpb #$04
|
|
442 beq L03FC
|
|
443 cmpb #$05
|
|
444 beq L0406
|
|
445 lbra L0289
|
|
446 L03F8 bsr L0418
|
|
447 bra L0415
|
|
448 L03FC bsr L0418
|
|
449 ldb #$1B
|
|
450 stb ,x+
|
|
451 bsr L041F
|
|
452 bra L0415
|
|
453 L0406 bsr L0418
|
|
454 ldb #$1B
|
|
455 stb ,x+
|
|
456 bsr L041F
|
|
457 ldb #$1B
|
|
458 stb ,x+
|
|
459 lbsr L0439
|
|
460 L0415 lbra L08A1
|
|
461 L0418 lda #$32
|
|
462 sta ,x+
|
|
463 lbra L088D
|
|
464 L041F lda #$33
|
|
465 sta ,x+
|
|
466 lbra L088D
|
|
467
|
|
468 Border tst ,s
|
|
469 beq L042E
|
|
470 cmpb #$03
|
|
471 bra L0430
|
|
472 L042E cmpb #$02
|
|
473 L0430 lbne L0289
|
|
474 bsr L0439
|
|
475 lbra L08A1
|
|
476 L0439 lda #$34
|
|
477 sta ,x+
|
|
478 lbra L088D
|
|
479 rts
|
|
480
|
|
481 ScaleSw lda #$35
|
|
482 L0443 tst ,s
|
|
483 beq L044B
|
|
484 cmpb #$03
|
|
485 bra L044D
|
|
486 L044B cmpb #$02
|
|
487 L044D lbne L0289
|
|
488 sta ,x+
|
|
489 pshs y,x,b,a
|
|
490 leay >L0214,pcr
|
|
491 lbra L03C3
|
|
492
|
|
493 DWProtSw lda #$36
|
|
494 bra L0443
|
|
495
|
|
496 GCSet lda #$39
|
|
497 lbra L0330
|
|
498
|
|
499 Font lda #$3A
|
|
500 lbra L0330
|
|
501
|
|
502 TCharSw lda #$3C
|
|
503 bra L0443
|
|
504
|
|
505 BoldSw lda #$3D
|
|
506 bra L0443
|
|
507
|
|
508 PropSw lda #$3F
|
|
509 bra L0443
|
|
510
|
|
511 SetDPtr tst ,s
|
|
512 beq L047E
|
|
513 cmpb #$04
|
|
514 bra L0480
|
|
515 L047E cmpb #$03
|
|
516 L0480 lbne L0289
|
|
517 bsr L0489
|
|
518 lbra L08A1
|
|
519 L0489 pshs a
|
|
520 lda #$40
|
|
521 sta ,x+
|
|
522 lbsr L085D
|
|
523 lbsr L085D
|
|
524 puls pc,a
|
|
525
|
|
526 Point lda #$42
|
|
527 tst ,s
|
|
528 beq L04A1
|
|
529 cmpb #$04
|
|
530 bra L04A3
|
|
531 L04A1 cmpb #$03
|
|
532 L04A3 lbne L0289
|
|
533 sta ,x+
|
|
534 lbsr L0845
|
|
535 lbsr L0845
|
|
536 lbra L08A1
|
|
537
|
|
538 Line lda #$46
|
|
539 L04B4 tst ,s
|
|
540 bne L04B9
|
|
541 incb
|
|
542 L04B9 cmpb #$04
|
|
543 beq L04CB
|
|
544 cmpb #$06
|
|
545 beq L04C4
|
|
546 lbra L0289
|
|
547 L04C4 lbsr L0489
|
|
548 ldb #$1B
|
|
549 stb ,x+
|
|
550 L04CB sta ,x+
|
|
551 lbsr L0845
|
|
552 lbsr L0845
|
|
553 lbra L08A1
|
|
554
|
|
555 Box lda #$48
|
|
556 bra L04B4
|
|
557
|
|
558 Bar lda #$4A
|
|
559 bra L04B4
|
|
560
|
|
561 PutGC lda #$4E
|
|
562 tst ,s
|
|
563 beq L04E8
|
|
564 cmpb #$04
|
|
565 bra L04EA
|
|
566 L04E8 cmpb #$03
|
|
567 L04EA lbne L0289
|
|
568 bra L04CB
|
|
569
|
|
570 Fill lda #$4F
|
|
571 tst ,s
|
|
572 bne L04F7
|
|
573 incb
|
|
574 L04F7 cmpb #$02
|
|
575 beq L0509
|
|
576 cmpb #$04
|
|
577 beq L0502
|
|
578 lbra L0289
|
|
579 L0502 lbsr L0489
|
|
580 ldb #$1B
|
|
581 stb ,x+
|
|
582 L0509 sta ,x+
|
|
583 lbra L08A1
|
|
584
|
|
585 Circle lda #$50
|
|
586 tst ,s
|
|
587 bne L0515
|
|
588 incb
|
|
589 L0515 cmpb #$03
|
|
590 beq L0527
|
|
591 cmpb #$05
|
|
592 beq L0520
|
|
593 lbra L0289
|
|
594 L0520 lbsr L0489
|
|
595 ldb #$1B
|
|
596 stb ,x+
|
|
597 L0527 sta ,x+
|
|
598 lbsr L0845
|
|
599 lbra L08A1
|
|
600
|
|
601 Draw tst ,s
|
|
602 beq L053E
|
|
603 cmpb #$05
|
|
604 beq L0549
|
|
605 cmpb #$03
|
|
606 beq L055F
|
|
607 lbra L0289
|
|
608 L053E cmpb #$04
|
|
609 beq L0549
|
|
610 cmpb #$02
|
|
611 beq L055F
|
|
612 lbra L0289
|
|
613 L0549 pshs u,x
|
|
614 leas -$02,s
|
|
615 ldd #$1B40
|
|
616 std ,x++
|
|
617 lbsr L0875
|
|
618 lbsr L0875
|
|
619 lbsr L0708
|
|
620 leas $02,s
|
|
621 bra L0561
|
|
622 L055F pshs u,x
|
|
623 L0561 ldu ,u
|
|
624 leas -$02,s
|
|
625 clr $01,s
|
|
626 clr ,s
|
|
627 L0569 lda ,u+
|
|
628 anda #$DF
|
|
629 cmpa #$41
|
|
630 beq L05A6
|
|
631 cmpa #$42
|
|
632 beq L05AD
|
|
633 cmpa #$55
|
|
634 beq L05CA
|
|
635 cmpa #$4E
|
|
636 beq L05D1
|
|
637 cmpa #$53
|
|
638 lbeq L0614
|
|
639 cmpa #$45
|
|
640 lbeq L0649
|
|
641 cmpa #$57
|
|
642 lbeq L0659
|
|
643 lda -$01,u
|
|
644 cmpa #$2C
|
|
645 beq L0569
|
|
646 cmpa #$FF
|
|
647 bne L05A1
|
|
648 leas $02,s
|
|
649 puls u,x
|
|
650 leas <$21,s
|
|
651 rts
|
|
652 L05A1 leas $06,s
|
|
653 lbra L0289
|
|
654 L05A6 lbsr L066C
|
|
655 std ,s
|
|
656 bra L0569
|
|
657 L05AD ldd #$1B41
|
|
658 std ,x++
|
|
659 L05B2 lbsr L066C
|
|
660 std ,x++
|
|
661 lda ,u+
|
|
662 cmpa #$2C
|
|
663 bne L05A1
|
|
664 lbsr L066C
|
|
665 std ,x++
|
|
666 lbsr L06BD
|
|
667 lbsr L0708
|
|
668 bra L0569
|
|
669 L05CA ldd #$1B45
|
|
670 std ,x++
|
|
671 bra L05B2
|
|
672 L05D1 ldd #$1B47
|
|
673 std ,x++
|
|
674 lda ,u
|
|
675 anda #$DF
|
|
676 cmpa #$45
|
|
677 beq L05F1
|
|
678 cmpa #$57
|
|
679 beq L05FF
|
|
680 ldd #$0000
|
|
681 std ,x++
|
|
682 lbsr L066C
|
|
683 lbsr L0703
|
|
684 std ,x++
|
|
685 bra L060B
|
|
686 L05F1 leau $01,u
|
|
687 lbsr L066C
|
|
688 std ,x++
|
|
689 lbsr L0703
|
|
690 std ,x++
|
|
691 bra L060B
|
|
692 L05FF leau $01,u
|
|
693 lbsr L066C
|
|
694 lbsr L0703
|
|
695 std ,x++
|
|
696 std ,x++
|
|
697 L060B lbsr L06BD
|
|
698 lbsr L0708
|
|
699 lbra L0569
|
|
700 L0614 ldd #$1B47
|
|
701 std ,x++
|
|
702 lda ,u
|
|
703 anda #$DF
|
|
704 cmpa #$45
|
|
705 beq L0630
|
|
706 cmpa #$57
|
|
707 beq L063A
|
|
708 ldd #$0000
|
|
709 std ,x++
|
|
710 bsr L066C
|
|
711 std ,x++
|
|
712 bra L060B
|
|
713 L0630 leau $01,u
|
|
714 bsr L066C
|
|
715 std ,x++
|
|
716 std ,x++
|
|
717 bra L060B
|
|
718 L063A leau $01,u
|
|
719 bsr L066C
|
|
720 std $02,x
|
|
721 lbsr L0703
|
|
722 std ,x++
|
|
723 leax $02,x
|
|
724 bra L060B
|
|
725 L0649 ldd #$1B47
|
|
726 std ,x++
|
|
727 bsr L066C
|
|
728 std ,x++
|
|
729 ldd #$0000
|
|
730 std ,x++
|
|
731 bra L060B
|
|
732 L0659 ldd #$1B47
|
|
733 std ,x++
|
|
734 bsr L066C
|
|
735 lbsr L0703
|
|
736 std ,x++
|
|
737 ldd #$0000
|
|
738 std ,x++
|
|
739 bra L060B
|
|
740 L066C ldd #$0000
|
|
741 pshs u,b,a
|
|
742 ldb ,u
|
|
743 cmpb #$2D
|
|
744 bne L0679
|
|
745 leau $01,u
|
|
746 L0679 clra
|
|
747 ldb ,u
|
|
748 subb #$30
|
|
749 bcs L069E
|
|
750 cmpb #$09
|
|
751 bhi L069E
|
|
752 pshs b,a
|
|
753 ldd $02,s
|
|
754 lslb
|
|
755 rola
|
|
756 lslb
|
|
757 rola
|
|
758 lslb
|
|
759 rola
|
|
760 pshs b,a
|
|
761 ldd $04,s
|
|
762 lslb
|
|
763 rola
|
|
764 addd ,s++
|
|
765 addd ,s++
|
|
766 std ,s
|
|
767 leau $01,u
|
|
768 bra L0679
|
|
769 L069E cmpu $02,s
|
|
770 lbeq L06B8
|
|
771 lda [<$02,s]
|
|
772 cmpa #$2D
|
|
773 bne L06B3
|
|
774 puls b,a
|
|
775 lbsr L0703
|
|
776 bra L06B5
|
|
777 L06B3 puls b,a
|
|
778 L06B5 leas $02,s
|
|
779 rts
|
|
780 L06B8 leas $0C,s
|
|
781 lbra L0289
|
|
782 L06BD ldd $02,s
|
|
783 beq L0702
|
|
784 subd #$0001
|
|
785 beq L06D2
|
|
786 subd #$0001
|
|
787 beq L06E3
|
|
788 subd #$0001
|
|
789 beq L06F3
|
|
790 bra L0702
|
|
791 L06D2 ldd -$02,x
|
|
792 lbsr L0703
|
|
793 pshs b,a
|
|
794 ldd -$04,x
|
|
795 std -$02,x
|
|
796 puls b,a
|
|
797 std -$04,x
|
|
798 bra L0702
|
|
799 L06E3 ldd -$04,x
|
|
800 lbsr L0703
|
|
801 std -$04,x
|
|
802 ldd -$02,x
|
|
803 lbsr L0703
|
|
804 std -$02,x
|
|
805 bra L0702
|
|
806 L06F3 ldd -$04,x
|
|
807 lbsr L0703
|
|
808 pshs b,a
|
|
809 ldd -$02,x
|
|
810 std -$04,x
|
|
811 puls b,a
|
|
812 std -$02,x
|
|
813 L0702 rts
|
|
814 L0703 nega
|
|
815 negb
|
|
816 sbca #$00
|
|
817 rts
|
|
818 L0708 pshs y,x
|
|
819 tfr x,d
|
|
820 subd $08,s
|
|
821 tfr d,y
|
|
822 ldx $08,s
|
|
823 lda $0C,s
|
|
824 bne L0717
|
|
825 inca
|
|
826 L0717 os9 I$Write
|
|
827 puls y,x
|
|
828 ldx $04,s
|
|
829 rts
|
|
830
|
|
831 Ellipse lda #$51
|
|
832 lbra L04B4
|
|
833
|
|
834 Arc lda #$52
|
|
835 tst ,s
|
|
836 beq L0735
|
|
837 cmpb #$0A
|
|
838 beq L0740
|
|
839 cmpb #$08
|
|
840 beq L0747
|
|
841 lbra L0289
|
|
842 L0735 cmpb #$09
|
|
843 beq L0740
|
|
844 cmpb #$07
|
|
845 beq L0747
|
|
846 lbra L0289
|
|
847 L0740 lbsr L0489
|
|
848 ldb #$1B
|
|
849 stb ,x+
|
|
850 L0747 sta ,x+
|
|
851 lbsr L0845
|
|
852 lbsr L0845
|
|
853 lbsr L0845
|
|
854 lbsr L0845
|
|
855 lbsr L0845
|
|
856 lbsr L0845
|
|
857 lbra L08A1
|
|
858
|
|
859 CurHome lda #$01
|
|
860 bra L07C3
|
|
861
|
|
862 CurXY lda #$02
|
|
863 tst ,s
|
|
864 beq L076C
|
|
865 cmpb #$04
|
|
866 bra L076E
|
|
867 L076C cmpb #$03
|
|
868 L076E lbne L0289
|
|
869 sta -$01,x
|
|
870 bsr L077B
|
|
871 bsr L077B
|
|
872 lbra L08A1
|
|
873 L077B pshs y,b,a
|
|
874 ldd [,u++]
|
|
875 adda #$20
|
|
876 sta ,x+
|
|
877 pulu y
|
|
878 leay -$01,y
|
|
879 beq L0793
|
|
880 leay -$01,y
|
|
881 lbne L08BA
|
|
882 addb #$20
|
|
883 stb -$01,x
|
|
884 L0793 puls pc,y,b,a
|
|
885
|
|
886 ErLine lda #$03
|
|
887 bra L07C3
|
|
888
|
|
889 ErEOLine lda #$04
|
|
890 bra L07C3
|
|
891
|
|
892 CurOff lda #$05
|
|
893 sta -$01,x
|
|
894 lda #$20
|
|
895 bra L07EE
|
|
896
|
|
897 CurOn lda #$05
|
|
898 sta -$01,x
|
|
899 lda #$21
|
|
900 bra L07EE
|
|
901
|
|
902 CurRgt lda #$06
|
|
903 bra L07C3
|
|
904
|
|
905 Bell lda #$07
|
|
906 bra L07C3
|
|
907
|
|
908 CurLft lda #$08
|
|
909 bra L07C3
|
|
910
|
|
911 CurUp lda #$09
|
|
912 bra L07C3
|
|
913
|
|
914 CurDwn lda #$0A
|
|
915 bra L07C3
|
|
916
|
|
917 ErEOWndw lda #$0B
|
|
918 L07C3 leax -$01,x
|
|
919 lbra L02BE
|
|
920
|
|
921 Clear lda #$0C
|
|
922 bra L07C3
|
|
923
|
|
924 CrRtn lda #$0D
|
|
925 bra L07C3
|
|
926
|
|
927 ReVOn lda #$1F
|
|
928 sta -$01,x
|
|
929 lda #$20
|
|
930 bra L07EE
|
|
931
|
|
932 ReVOff lda #$1F
|
|
933 sta -$01,x
|
|
934 lda #$21
|
|
935 bra L07EE
|
|
936
|
|
937 UndlnOn lda #$1F
|
|
938 sta -$01,x
|
|
939 lda #$22
|
|
940 bra L07EE
|
|
941
|
|
942 UndlnOff lda #$1F
|
|
943 sta -$01,x
|
|
944 lda #$23
|
|
945 L07EE lbra L02BE
|
|
946
|
|
947 BlnkOn lda #$1F
|
|
948 sta -$01,x
|
|
949 lda #$24
|
|
950 bra L07EE
|
|
951
|
|
952 BlnkOff lda #$1F
|
|
953 sta -$01,x
|
|
954 lda #$25
|
|
955 bra L07EE
|
|
956
|
|
957 InsLin lda #$1F
|
|
958 sta -$01,x
|
|
959 lda #$30
|
|
960 bra L07EE
|
|
961
|
|
962 DelLin lda #$1F
|
|
963 sta -$01,x
|
|
964 lda #$31
|
|
965 bra L07EE
|
|
966 L0811 pshs x
|
|
967 L0813 lda ,y+
|
|
968 beq L0841
|
|
969 L0817 eora ,x+
|
|
970 anda #$DF
|
|
971 bne L082F
|
|
972 tst ,y
|
|
973 bpl L0827
|
|
974 tst ,x
|
|
975 bmi L083B
|
|
976 bra L082F
|
|
977 L0827 tst ,x
|
|
978 bmi L082F
|
|
979 lda ,y+
|
|
980 bra L0817
|
|
981 L082F leay -$01,y
|
|
982 L0831 tst ,y+
|
|
983 bpl L0831
|
|
984 ldx ,s
|
|
985 leay $01,y
|
|
986 bra L0813
|
|
987 L083B lda $01,y
|
|
988 andcc #^Carry
|
|
989 bra L0843
|
|
990 L0841 orcc #Carry
|
|
991 L0843 puls pc,x
|
|
992 L0845 pshs y,b,a
|
|
993 ldd [,u++]
|
|
994 pulu y
|
|
995 leay -$01,y
|
|
996 bne L0855
|
|
997 clr ,x+
|
|
998 sta ,x+
|
|
999 bra L085B
|
|
1000 L0855 leay -$01,y
|
|
1001 bne L08BA
|
|
1002 std ,x++
|
|
1003 L085B puls pc,y,b,a
|
|
1004 L085D pshs y,b,a
|
|
1005 ldd [,u++]
|
|
1006 pulu y
|
|
1007 leay -$01,y
|
|
1008 bne L086D
|
|
1009 clr ,x+
|
|
1010 sta ,x+
|
|
1011 bra L0873
|
|
1012 L086D leay -$01,y
|
|
1013 bne L08BE
|
|
1014 std ,x++
|
|
1015 L0873 puls pc,y,b,a
|
|
1016 L0875 pshs y,b,a
|
|
1017 ldd [,u++]
|
|
1018 pulu y
|
|
1019 leay -$01,y
|
|
1020 bne L0885
|
|
1021 clr ,x+
|
|
1022 sta ,x+
|
|
1023 bra L088B
|
|
1024 L0885 leay -$01,y
|
|
1025 bne L08C2
|
|
1026 std ,x++
|
|
1027 L088B puls pc,y,b,a
|
|
1028 L088D pshs y,b,a
|
|
1029 ldd [,u++]
|
|
1030 sta ,x+
|
|
1031 pulu y
|
|
1032 leay -$01,y
|
|
1033 beq L089F
|
|
1034 leay -$01,y
|
|
1035 bne L08BA
|
|
1036 stb -$01,x
|
|
1037 L089F puls pc,y,b,a
|
|
1038 L08A1 bsr L08A7
|
|
1039 leas <$21,s
|
|
1040 rts
|
|
1041 L08A7 tfr x,d
|
|
1042 leax $03,s
|
|
1043 pshs x
|
|
1044 subd ,s++
|
|
1045 tfr d,y
|
|
1046 lda $02,s
|
|
1047 bne L08B6
|
|
1048 inca
|
|
1049 L08B6 os9 I$Write
|
|
1050 rts
|
|
1051 L08BA leas $06,s
|
|
1052 bra L08C4
|
|
1053 L08BE leas $09,s
|
|
1054 bra L08C4
|
|
1055 L08C2 leas $0F,s
|
|
1056 L08C4 lbra L0289
|
|
1057
|
|
1058 emod
|
|
1059 eom equ *
|
|
1060 end
|
|
1061
|