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