plus4.a65
1: .include "defines.inc"
2:
3: .setcpu "6502"
4:
5: .segment "BASIC35"
6:
7: PDIR := $0000
8: PORT := $0001
9: SRCHTK := $0002
10: ZPVEC1 := $0003
11: ZPVEC2 := $0005
12: CHARAC := $0007
13: ENDCHR := $0008
14: TRMPOS := $0009
15: VERCK := $000A
16: COUNT := $000B
17: DIMFLG := $000C
18: VALTYP := $000D
19: INTFLG := $000E
20: DORES := $000F
21: SUBFLG := $0010
22: INPFLG := $0011
23: TANSGN := $0012
24: CHANNL := $0013
25: LINNUM := $0014
26: TEMPPT := $0016
27: LASTPT := $0017
28: TEMPST := $0019
29: INDEX1 := $0022
30: INDEX2 := $0024
31: RESH0 := $0026
32: TXTTAB := $002B
33: VARTAB := $002D
34: ARYTAB := $002F
35: STREND := $0031
36: FRETOP := $0033
37: FRESPC := $0035
38: MEMSIZ := $0037
39: CHRLIN := $0039
40: TXTPTR := $003B
41: FNDPNT := $003D
42: DATLIN := $003F
43: DATPTR := $0041
44: INPPTR := $0043
45: VARNAM := $0045
46: VARPNT := $0047
47: FORPNT := $0049
48: OPPTR := $004B
49: OPMASK := $004D
50: DEFPNT := $004E
51: DSCPNT := $0050
52: HELPER := $0053
53: JMPER := $0054
54: TEMPF1 := $0057
55: FACEXP := $0061
56: FACH0 := $0062
57: FACSGN := $0066
58: SGNFLG := $0067
59: BITS := $0068
60: ARGEXP := $0069
61: ARGH0 := $006A
62: ARGSGN := $006E
63: ARISGN := $006F
64: FACOV := $0070
65: FBUFPT := $0071
66: AUTINC := $0073
67: MVDFLG := $0075
68: KEYNUM := $0076
69: DSDESC := $0079
70: TOS := $007C
71: TMPTON := $007E
72: VOICNO := $0080
73: RUNMOD := $0081
74: POINT := $0082
75: GRAPHM := $0083
76: COLSEL := $0084
77: MC1 := $0085
78: FG := $0086
79: SCXMAX := $0087
80: SCYMAX := $0088
81: LTFLAG := $0089
82: RTFLAG := $008A
83: STOPNB := $008B
84: GRAPNT := $008C
85: VTEMP1 := $008E
86: VTEMP2 := $008F
87: STATUS := $0090
88: STKEY := $0091
89: VERFCK := $0093
90: C3P0 := $0094
91: BSOUR := $0095
92: RSAV := $0096
93: LDTND := $0097
94: DFLTN := $0098
95: DFLTO := $0099
96: MSGFLG := $009A
97: SAL := $009B
98: EAL := $009D
99: T1 := $009F
100: T2 := $00A1
101: TIME := $00A3
102: R2D2 := $00A6
103: TPBYTE := $00A7
104: BSOUR1 := $00A8
105: FPVERR := $00A9
106: DCOUNT := $00AA
107: FNLEN := $00AB
108: LA := $00AC
109: SA := $00AD
110: FA := $00AE
111: FNADR := $00AF
112: ERRSUM := $00B1
113: STAL := $00B2
114: MEMUSS := $00B4
115: TAPEBS := $00B6
116: TMP2 := $00B8
117: WRBASE := $00BA
118: IMPARM := $00BC
119: FETPTR := $00BE
120: SEDSAL := $00C0
121: RVS := $00C2
122: INDX := $00C3
123: LSXP := $00C4
124: SFDX := $00C6
125: CRSW := $00C7
126: PNT := $00C8
127: PNTR := $00CA
128: QTSW := $00CB
129: SEDT1 := $00CC
130: TBLX := $00CD
131: DATAX := $00CE
132: INSRT := $00CF
133: CIRSEG := $00E9
134: USER := $00EA
135: KEYTAB := $00EC
136: NDX := $00EF
137: STPFLG := $00F0
138: T0 := $00F1
139: CHRPTR := $00F3
140: BUFEND := $00F4
141: CHKSUM := $00F5
142: LENGTH := $00F6
143: PASS := $00F7
144: TYPE := $00F8
145: USEKDY := $00F9
146: XSTOP := $00FA
147: CURBNK := $00FB
148: XON := $00FC
149: XOFF := $00FD
150: SEDT2 := $00FE
151: LOFBUF := $00FF
152: FBUFFER := $0100
153: SAVEA := $0110
154: SAVEY := $0111
155: COLKEY := $0113
156: SYSSTK := $0124
157: BUF := $0200
158: OLDLIN := $0259
159: OLDTXT := $025B
160: XCNT := $025D
161: FNBUFR := $025E
162: DOSF1L := $026E
163: DOSDS1 := $026F
164: DOSF1A := $0270
165: DOSF2L := $0272
166: DOSDS2 := $0273
167: DOSF2A := $0274
168: DOSLA := $0276
169: DOSFA := $0277
170: DOSSA := $0278
171: DODDID := $0279
172: DIDCHK := $027B
173: DOSSTR := $027C
174: DOSSPC := $027D
175: YABS := $0287
176: XSGN := $0289
177: YSGN := $028B
178: FCT1 := $028D
179: FCT2 := $028F
180: XPOS := $02AD
181: YPO := $02AF
182: XDEST := $02B1
183: YDEST := $02B3
184: XABS := $02B5
185: ERRVAL := $02C1
186: LESSER := $02C3
187: ANGSGN := $02C5
188: SINVAL := $02C6
189: COSVAL := $02C8
190: ANGCNT := $02CA
191: BNR := $02CD
192: ENR := $02CE
193: DOLR := $02CF
194: FLAG := $02D0
195: SWE := $02D1
196: USGN := $02D2
197: UEXP := $02D3
198: VN := $02D4
199: CHSN := $02D5
200: VF := $02D6
201: NF := $02D7
202: POSP := $02D8
203: FESP := $02D9
204: ETOF := $02DA
205: CFORM := $02DB
206: SNO := $02DC
207: BLFD := $02DD
208: BEGFD := $02DE
209: LFOR := $02DF
210: ENDFD := $02E0
211: CHRPAG := $02E4
212: BITCNT := $02E5
213: SCALEM := $02E6
214: WIDTH := $02E7
215: FILFLG := $02E8
216: BITMSK := $02E9
217: NUMCNT := $02EA
218: TRCFLG := $02EB
219: T3 := $02EC
220: T4 := $02ED
221: VTEMP3 := $02EF
222: VTEMP4 := $02F0
223: VTEMP5 := $02F1
224: ADRAY1 := $02F2
225: ADRAY2 := $02F4
226: BNKVEC := $02FE
227: lIERROR := $0300
228: lIMAIN := $0302
229: lICRNCH := $0304
230: lIQPLOP := $0306
231: lIGONE := $0308
232: lIEVAL := $030A
233: lIESCLK := $030C
234: lIESCPR := $030E
235: lIESCEX := $0310
236: lITIME := $0312
237: lICINV := $0314
238: lICBINV := $0316
239: lIOPEN := $0318
240: lICLOSE := $031A
241: lICHKIN := $031C
242: lICHKOUT := $031E
243: lICLRCHN := $0320
244: lICHRIN := $0322
245: lICHROUT := $0324
246: lISTOP := $0326
247: lIGETIN := $0328
248: lICLALL := $032A
249: lIUSRCMD := $032C
250: lILOAD := $032E
251: lISAVE := $0330
252: lTAPBUF := $0332
253: L0333 := $0333
254: WRLEN := $03F3
255: RDCNT := $03F5
256: ESTAKL := $0437
257: ESTAKH := $0455
258: CHRGET := $0473
259: CHRGOT := $0479
260: QNUM := $0485
261: INDSUB := $0494
262: ZERO := $04A2
263: INDTXT := $04A5
264: INDIN1 := $04B0
265: INDIN2 := $04BB
266: INDST1 := $04C6
267: INDLOW := $04D1
268: INDFMO := $04DC
269: PUFILL := $04E7
270: PUCOMA := $04E8
271: PUDOT := $04E9
272: PUMONY := $04EA
273: TMPDES := $04EB
274: ERRNUM := $04EF
275: ERRLIN := $04F0
276: TRAPNO := $04F2
277: TMPTRP := $04F4
278: ERRTXT := $04F5
279: OLDSTK := $04F7
280: TMPTXT := $04F8
281: TMPLIN := $04FA
282: MTIMLO := $04FC
283: MTIMHI := $04FE
284: lIUSRPOK := $0500
285: lIUSRADD := $0501
286: RNDX := $0503
287: DEJAVU := $0508
288: LAT := $0509
289: FAT := $0513
290: SAT := $051D
291: KEYD := $0527
292: MEMSTR := $0531
293: MSIZ := $0533
294: TIMOUT := $0535
295: FILEND := $0536
296: CTALLY := $0537
297: CBUFVA := $0538
298: TPTR := $0539
299: FLTYPE := $053A
300: COLOR := $053B
301: FLASH := $053C
302: HIBASE := $053E
303: XMAX := $053F
304: RPTFLG := $0540
305: KOUNT := $0541
306: DELAY := $0542
307: SHFLAG := $0543
308: LSTSHF := $0544
309: KEYLOG := $0545
310: MODE := $0547
311: AUTODN := $0548
312: ROLFLG := $054A
313: FORMAT := $054B
314: MSAL := $054C
315: WRAP := $054F
316: TMPC := $0550
317: DIFF := $0551
318: PCH := $0552
319: PCL := $0553
320: FLGS := $0554
321: ACC := $0555
322: XR := $0556
323: YR := $0557
324: SP := $0558
325: INVL := $0559
326: INVH := $055A
327: CMPFLG := $055B
328: BAD := $055C
329: KYNDX := $055D
330: KEYIDX := $055E
331: KEYBUF := $055F
332: PKYBUF := $0567
333: KDATA := $05E7
334: KDYCMD := $05E8
335: KDYNUM := $05E9
336: KDYPRS := $05EA
337: PAT := $05EC
338: LNGJMP := $05F0
339: FETARG := $05F2
340: FETXRG := $05F3
341: FETSRG := $05F4
342: AREA := $05F5
343: APECH := $065E
344: STKTOP := $06EC
345: WROUT := $07B0
346: PARITY := $07B1
347: TT1 := $07B2
348: TT3 := $07B3
349: RDBITS := $07B5
350: ERRSP := $07B6
351: FPERRS := $07B7
352: DSAMP1 := $07B8
353: DSAMP2 := $07BA
354: ZCELL := $07BC
355: SRECOV := $07BE
356: DRECOV := $07BF
357: TRSAVE := $07C0
358: RDETMP := $07C4
359: LDRSCN := $07C5
360: CDERRM := $07C6
361: VSAVE := $07C7
362: T1PIPE := $07C8
363: ENEXT := $07CC
364: UOUTQ := $07CD
365: UOUTFG := $07CE
366: SOUTQ := $07CF
367: SOUNFG := $07D0
368: INQFPT := $07D1
369: INQRPT := $07D2
370: INQCNT := $07D3
371: ASTAT := $07D4
372: AINTMP := $07D5
373: ALSTOP := $07D6
374: ARSTOP := $07D7
375: APRES := $07D8
376: KLUDES := $07D9
377: SCBOT := $07E5
378: SCTOP := $07E6
379: SCLF := $07E7
380: SCRT := $07E8
381: SCRDIS := $07E9
382: INSFL := $07EA
383: LSTCH := $07EB
384: LOGSCR := $07EC
385: TCOLOR := $07ED
386: BITABL := $07EE
387: SAREG := $07F2
388: SXREG := $07F3
389: SYREG := $07F4
390: SPREG := $07F5
391: LSTX := $07F6
392: STPDSB := $07F7
393: RAMROM := $07F8
394: COLSW := $07F9
395: FFRMSK := $07FA
396: VMBMSK := $07FB
397: LSEM := $07FC
398: PALCNT := $07FD
399: UNUSED := $07FE
400: TEDATR := $0800
401: VICSCN := $0C00
402: BASBGN := $1000
403: TEDATRHI := $1800
404: TEDSCNHI := $1C00
405: GRBASE := $2000
406:
407: .org $8000
408:
409: L8000: jmp L8019
410:
411: L8003: jmp L800A
412:
413: L8006: .byte $00
414:
415: L8007: .byte "CBM"
416:
417: L800A: jsr kCLRCHN
418: jsr L8AD8
419: sta CHANNL
420: jsr LC7C9
421: cli
422: L8016: jmp L867E
423:
424: L8019: jsr L8117
425: jsr L802E
426: jsr L80C2
427: jsr LFCF4
428: ldx #$FB
429: txs
430: bne L8016
431: L802A: .addr L9871
432: .addr L9471
433: L802E: lda #$4C
434: sta JMPER
435: sta lIUSRPOK
436: lda #$1C
437: ldy #$99
438: sta lIUSRADD
439: sty $0502
440: ldx #$03
441: L8041: lda L802A,x
442: sta ADRAY1,x
443: dex
444: bpl L8041
445: ldx #$32
446: L804C: lda L8122,x
447: sta $0472,x
448: dex
449: bne L804C
450: stx BITS
451: stx CHANNL
452: stx $18
453: stx TRCFLG
454: .if CompileComputer < PLUS4_01
455: stx MVDFLG
456: stx AUTINC
457: stx $74
458: stx WIDTH
459: stx SCALEM
460: stx FILFLG
461: .endif
462: stx BASBGN
463: .if CompileComputer >= PLUS4_01
464: txa
465: ldx #$03
466: L8064: sta $72,x
467: sta BITCNT,x
468: dex
469: bne L8064
470: nop
471: stx RNDX
472: .endif
473: inx
474: stx $01FD
475: stx $01FC
476: ldx COLOR
477: stx FG
478: ldx #$36
479: stx MC1
480: ldx #$19
481: stx TEMPPT
482: ldx #$01
483: ldy #$10
484: stx TXTTAB
485: sty $2C
486: ldx #$05
487: stx INDEX1
488: lda #$D0
489: sta CHRPAG
490: ldx #$02
491: L8097: lda $0532,x
492: sta $36,x
493: sta $32,x
494: dex
495: bne L8097
496: L80A1: ldy #$00
497: L80A3: lda L8147,y
498: sta INDTXT,x
499: inx
500: iny
501: cpy #$0B
502: bcc L80A3
503: ldy INDEX1
504: lda L80BC,y
505: sta $049F,x
506: dec INDEX1
507: bpl L80A1
508: rts
509:
510: L80BC: .byte $64,$5F,$6F,$24,$22,$3B
511: L80C2: lda TXTTAB
512: ldy $2C
513: jsr L8923
514: jsr LFF4F
515: .byte $93,$0D
516: .byte " COMMODORE BASIC V3.5 "
517:
518:
519: .byte $00
520: lda MEMSIZ
521: sec
522: sbc TXTTAB
523: tax
524: lda $38
525: sbc $2C
526: jsr LA45F
527: jsr LFF4F
528: .byte " BYTES FREE"
529:
530: .byte $0D,$00
531: jmp L8A7B
532:
533: L8105: .addr IERROR
534: .addr IMAIN
535: .addr ICRNCH
536: .addr IQPLOP
537: .addr IGONE
538: .addr IEVAL
539: .addr IBASIC1
540: .addr IBASIC2
541: .addr IBASIC3
542: L8117: ldx #$11
543: L8119: lda L8105,x
544: sta lIERROR,x
545: dex
546: bpl L8119
547: L8122: rts
548:
549: L8123: inc TXTPTR
550: bne L8129
551: inc $3C
552: L8129: sei
553: sta TEDROMSEL
554: ldy #$00
555: lda (TXTPTR),y
556: sta TEDRAMSEL
557: cli
558: cmp #$3A
559: bcs L8143
560: cmp #$20
561: beq L8123
562: sec
563: sbc #$30
564: sec
565: sbc #$D0
566: L8143: rts
567:
568: sta $049C
569: L8147: sei
570: sta TEDROMSEL
571: lda (PDIR),y
572: sta TEDRAMSEL
573: cli
574: rts
575:
576: .byte $00,$00,$00
577: L8155: lda #$43
578: bne L818B
579: L8159: lda #$4E
580: bne L818B
581: L815D: lda #$14
582: bne L818B
583: L8161: lda #$47
584: bne L818B
585: L8165: lda #$4E
586: bne L818B
587: L8169: lda #$5C
588: bne L818B
589: L816D: lda #$5F
590: bne L818B
591: L8171: lda #$3D
592: bne L818B
593: L8175: lda #$57
594: bne L818B
595: L8179: lda #$59
596: bne L818B
597: L817D: lda #$62
598: bne L818B
599: L8181: lda #$50
600: bne L818B
601: L8185: lda #$6C
602: bne L818B
603: L8189: lda #$5A
604: L818B: jmp INDSUB
605:
606: .byte "EN"
607: .byte $C4
608: .byte "FO"
609: .byte $D2
610: .byte "NEX"
611: .byte $D4
612: .byte "DAT"
613: .byte $C1
614: .byte "INPUT"
615: .byte $A3
616: .byte "INPU"
617: .byte $D4
618: .byte "DI"
619: .byte $CD
620: .byte "REA"
621: .byte $C4
622: .byte "LE"
623: .byte $D4
624: .byte "GOT"
625: .byte $CF
626: .byte "RU"
627: .byte $CE
628: .byte "I"
629: .byte $C6
630: .byte "RESTOR"
631: .byte $C5
632: .byte "GOSU"
633: .byte $C2
634: .byte "RETUR"
635: .byte $CE
636: .byte "RE"
637: .byte $CD
638: .byte "STO"
639: .byte $D0
640: .byte "O"
641: .byte $CE
642: .byte "WAI"
643: .byte $D4
644: .byte "LOA"
645: .byte $C4
646: .byte "SAV"
647: .byte $C5
648: .byte "VERIF"
649: .byte $D9
650: .byte "DE"
651: .byte $C6
652: .byte "POK"
653: .byte $C5
654: .byte "PRINT"
655: .byte $A3
656: .byte "PRIN"
657: .byte $D4
658: .byte "CON"
659: .byte $D4
660: .byte "LIS"
661: .byte $D4
662: .byte "CL"
663: .byte $D2
664: .byte "CM"
665: .byte $C4
666: .byte "SY"
667: .byte $D3
668: .byte "OPE"
669: .byte $CE
670: .byte "CLOS"
671: .byte $C5
672: .byte "GE"
673: .byte $D4
674: .byte "NE"
675: .byte $D7
676: .byte "TAB"
677: .byte $A8
678: .byte "T"
679: .byte $CF
680: .byte "F"
681: .byte $CE
682: .byte "SPC"
683: .byte $A8
684: .byte "THE"
685: .byte $CE
686: .byte "NO"
687: .byte $D4
688: .byte "STE"
689: .byte $D0,$AB,$AD,$AA,$AF,$DE
690: .byte "AN"
691: .byte $C4
692: .byte "O"
693: .byte $D2,$BE,$BD,$BC
694: .byte "SG"
695: .byte $CE
696: .byte "IN"
697: .byte $D4
698: .byte "AB"
699: .byte $D3
700: .byte "US"
701: .byte $D2
702: .byte "FR"
703: .byte $C5
704: .byte "PO"
705: .byte $D3
706: .byte "SQ"
707: .byte $D2
708: .byte "RN"
709: .byte $C4
710: .byte "LO"
711: .byte $C7
712: .byte "EX"
713: .byte $D0
714: .byte "CO"
715: .byte $D3
716: .byte "SI"
717: .byte $CE
718: .byte "TA"
719: .byte $CE
720: .byte "AT"
721: .byte $CE
722: .byte "PEE"
723: .byte $CB
724: .byte "LE"
725: .byte $CE
726: .byte "STR"
727: .byte $A4
728: .byte "VA"
729: .byte $CC
730: .byte "AS"
731: .byte $C3
732: .byte "CHR"
733: .byte $A4
734: .byte "LEFT"
735: .byte $A4
736: .byte "RIGHT"
737: .byte $A4
738: .byte "MID"
739: .byte $A4
740: .byte "G"
741: .byte $CF
742: .byte "RG"
743: .byte $D2
744: .byte "RCL"
745: .byte $D2
746: .byte "RLU"
747: .byte $CD
748: .byte "JO"
749: .byte $D9
750: .byte "RDO"
751: .byte $D4
752: .byte "DE"
753: .byte $C3
754: .byte "HEX"
755: .byte $A4
756: .byte "ERR"
757: .byte $A4
758: .byte "INST"
759: .byte $D2
760: .byte "ELS"
761: .byte $C5
762: .byte "RESUM"
763: .byte $C5
764: .byte "TRA"
765: .byte $D0
766: .byte "TRO"
767: .byte $CE
768: .byte "TROF"
769: .byte $C6
770: .byte "SOUN"
771: .byte $C4
772: .byte "VO"
773: .byte $CC
774: .byte "AUT"
775: .byte $CF
776: .byte "PUDE"
777: .byte $C6
778: .byte "GRAPHI"
779: .byte $C3
780: .byte "PAIN"
781: .byte $D4
782: .byte "CHA"
783: .byte $D2
784: .byte "BO"
785: .byte $D8
786: .byte "CIRCL"
787: .byte $C5
788: .byte "GSHAP"
789: .byte $C5
790: .byte "SSHAP"
791: .byte $C5
792: .byte "DRA"
793: .byte $D7
794: .byte "LOCAT"
795: .byte $C5
796: .byte "COLO"
797: .byte $D2
798: .byte "SCNCL"
799: .byte $D2
800: .byte "SCAL"
801: .byte $C5
802: .byte "HEL"
803: .byte $D0
804: .byte "D"
805: .byte $CF
806: .byte "LOO"
807: .byte $D0
808: .byte "EXI"
809: .byte $D4
810: .byte "DIRECTOR"
811: .byte $D9
812: .byte "DSAV"
813: .byte $C5
814: .byte "DLOA"
815: .byte $C4
816: .byte "HEADE"
817: .byte $D2
818: .byte "SCRATC"
819: .byte $C8
820: .byte "COLLEC"
821: .byte $D4
822: .byte "COP"
823: .byte $D9
824: .byte "RENAM"
825: .byte $C5
826: .byte "BACKU"
827: .byte $D0
828: .byte "DELET"
829: .byte $C5
830: .byte "RENUMBE"
831: .byte $D2
832: .byte "KE"
833: .byte $D9
834: .byte "MONITO"
835: .byte $D2
836: .byte "USIN"
837: .byte $C7
838: .byte "UNTI"
839: .byte $CC
840: .byte "WHIL"
841: .byte $C5,$00
842: L8383: .word L8CDA-1,LADCA-1,L9294-1,L8DB0-1
843: .word L90EE-1,L9108-1,L969B-1,L914F-1
844: .word L8E7C-1,L8D4D-1,L8BBC-1,L8DE1-1
845: .word L8C9A-1,L8D2C-1,L8D83-1,L8E0B-1
846: .word L8CD8-1,L8E1B-1,L9E6A-1,LA7F3-1
847: .word LA7DE-1,LA7F0-1,L9A9D-1,L9E12-1
848: .word L8FE0-1,L9000-1,L8D03-1,L8AFF-1
849: .word L8A98-1,L8FE6-1,LA7B5-1,LA84D-1
850: .word LA85A-1,L90B8-1,L8A79-1,L8E0B-1
851: .word LB440-1,LB42B-1,LB652-1,LB655-1
852: .word LB849-1,LB8BD-1,LB6CD-1,LB544-1
853: .word LC5C3-1,LB8D1-1,LB9D4-1,LBAE2-1
854: .word LC01E-1,LBD35-1,LBE29-1,LC4D9-1
855: .word LC50F-1,LC51A-1,LC567-1,LC5B8-1
856: .word LB6E8-1,LB557-1,LB603-1,LB5AC-1
857: .word LC8BC-1,LC941-1,LC951-1,LC968-1
858: .word LC99C-1,LC9CC-1,LC9DA-1,LC9F4-1
859: .word LCA00-1,LAE5A-1,LAB8F-1,LB729-1
860: .word kMLMONITOR-1
861:
862: L8415: .word LA2BE,LA358,LA2DD
863: .word lIUSRPOK,L9A62,L9A7D,LA5E4
864: .word LA707,LA01E,LA660,LAA70
865: .word LAA77,LAAC0,LAB1A,L9DFA
866: .word L9D61,L9B66,L9D93,L9D70
867: .word L9CBB,L9CCF,L9D03,L9D15
868: .word LBF79,LBF85,LBF87,LBFC1
869: .word LBFFD,L9E1B,LB507,LB4BE
870:
871: L8453: .byte $79
872: L8454: .word L9E9E-1
873: .byte $79
874: .word L9E87-1
875: .byte $7B
876: .word LA07B-1
877: .byte $7B
878: .word LA197-1
879: .byte $7F
880: .word LA5EE-1
881: .byte $50
882: .word L95FB-1
883: .byte $46
884: .word L95F8-1
885: .byte $7D
886: .word LA627-1
887: .byte $5A
888: .word L9465-1
889: .byte $64
890: .word L9628-1
891:
892: .byte "TOO MANY FILE"
893:
894: .byte $D3
895: .byte "FILE OPE"
896: .byte $CE
897: .byte "FILE NOT OPE"
898:
899: .byte $CE
900: .byte "FILE NOT FOUN"
901:
902: .byte $C4
903: .byte "DEVICE NOT PRESEN"
904:
905:
906: .byte $D4
907: .byte "NOT INPUT FIL"
908:
909: .byte $C5
910: .byte "NOT OUTPUT FIL"
911:
912: .byte $C5
913: .byte "MISSING FILE NAM"
914:
915: .byte $C5
916: .if CompileComputer = PLUS4_BETA_0203
917: .byte "IHLEGAL DEVICE NUMBE"
918: .else
919: .byte "ILLEGAL DEVICE NUMBE"
920: .endif
921:
922:
923: .byte $D2
924: .byte "NEXT WITHOUT FO"
925:
926: .byte $D2
927: .byte "SYNTA"
928: .byte $D8
929: .byte "RETURN WITHOUT GOSU"
930:
931:
932: .byte $C2
933: .byte "OUT OF DAT"
934:
935: .byte $C1
936: .byte "ILLEGAL QUANTIT"
937:
938: .byte $D9
939: .byte "OVERFLO"
940: .byte $D7
941: .byte "OUT OF MEMOR"
942:
943: .byte $D9
944: .byte "UNDEF'D STATEMEN"
945:
946: .byte $D4
947: .byte "BAD SUBSCRIP"
948:
949: .byte $D4
950: .byte "REDIM'D ARRA"
951:
952: .byte $D9
953: .byte "DIVISION BY ZER"
954:
955: .byte $CF
956: .byte "ILLEGAL DIREC"
957:
958: .byte $D4
959: .byte "TYPE MISMATC"
960:
961: .byte $C8
962: .byte "STRING TOO LON"
963:
964: .byte $C7
965: .byte "FILE DAT"
966: .byte $C1
967: .byte "FORMULA TOO COMPLE"
968:
969:
970: .byte $D8
971: .byte "CAN'T CONTINU"
972:
973: .byte $C5
974: .byte "UNDEF'D FUNCTIO"
975:
976: .byte $CE
977: .byte "VERIF"
978: .byte $D9
979: .byte "LOA"
980: .byte $C4
981: .byte "BREAK"
982: .byte $00,$A0
983: .byte "CAN'T RESUM"
984:
985: .byte $C5
986: .byte "LOOP NOT FOUN"
987:
988: .byte $C4
989: .byte "LOOP WITHOUT D"
990:
991: .byte $CF
992: .byte "DIRECT MODE ONL"
993:
994: .byte $D9
995: .byte "NO GRAPHICS ARE"
996:
997: .byte $C1
998: .byte "BAD DIS"
999: .byte $CB
1000: L8653: tax
1001: ldy #$00
1002: lda #$71
1003: sta INDEX2
1004: lda #$84
1005: sta $25
1006: L865E: dex
1007: bmi L867D
1008: L8661: lda (INDEX2),y
1009: pha
1010: inc INDEX2
1011: bne L866A
1012: inc $25
1013: L866A: pla
1014: bpl L8661
1015: bmi L865E
1016: L866F: jsr LFF4F
1017: .byte $0D,$0A
1018: .byte "READY."
1019: .byte $0D,$0A,$00
1020: L867D: rts
1021:
1022: L867E: ldx #$80
1023: .byte $2C
1024: L8681: ldx #$10
1025: L8683: jmp (lIERROR)
1026:
1027: IERROR: txa
1028: bmi L8703
1029: stx ERRNUM
1030: bit RUNMOD
1031: bpl L86C5
1032: ldy #$01
1033: L8692: lda CHRLIN,y
1034: sta ERRLIN,y
1035: lda OLDTXT,y
1036: sta ERRTXT,y
1037: dey
1038: bpl L8692
1039: cpx #$11
1040: beq L86C5
1041: ldy $04F3
1042: iny
1043: beq L86C5
1044: dey
1045: sty $15
1046: sty TMPTRP
1047: ldy TRAPNO
1048: sty LINNUM
1049: ldx #$FF
1050: stx $04F3
1051: ldx OLDSTK
1052: txs
1053: jsr L8D69
1054: jmp L8BDC
1055:
1056: L86C5: dex
1057: txa
1058: pha
1059: lda #$00
1060: sta GRAPHM
1061: jsr LC7C9
1062: pla
1063: jsr L8653
1064: jsr kCLRCHN
1065: lda #$00
1066: sta CHANNL
1067: jsr L903E
1068: jsr L90B0
1069: ldy #$00
1070: L86E2: lda (INDEX2),y
1071: pha
1072: and #$7F
1073: jsr L90B2
1074: iny
1075: pla
1076: bpl L86E2
1077: jsr L8AD8
1078: jsr LFF4F
1079: .byte " ERROR"
1080: .byte $00
1081: L86FB: ldy $3A
1082: iny
1083: beq L8703
1084: jsr LA453
1085: L8703: jsr L866F
1086: lda #$80
1087: jsr kSETMSF
1088: lda #$00
1089: sta RUNMOD
1090: L870F: jmp (lIMAIN)
1091:
1092: IMAIN:
1093: .if CompileComputer >= PLUS4_01
1094: ldx #$FF
1095: stx $3A
1096: .endif
1097: jsr L885A
1098: stx TXTPTR
1099: sty $3C
1100: jsr CHRGET
1101: tax
1102: L8721: beq L870F
1103: .if CompileComputer < PLUS4_01
1104: ldx #$FF
1105: stx $3A
1106: .endif
1107: bcc L872E
1108: jsr L8953
1109: jsr CHRGOT
1110: jmp L8BD9
1111:
1112: L872E: jsr L8E3E
1113: jsr L8953
1114: sty COUNT
1115: jsr L8A3D
1116: bcc L8785
1117: ldy #$01
1118: jsr INDLOW
1119: sta $23
1120: lda VARTAB
1121: sta INDEX1
1122: lda $60
1123: sta $25
1124: dey
1125: jsr INDLOW
1126: clc
1127: sbc $5F
1128: eor #$FF
1129: clc
1130: adc VARTAB
1131: sta VARTAB
1132: sta INDEX2
1133: lda $2E
1134: adc #$FF
1135: sta $2E
1136: sbc $60
1137: tax
1138: sec
1139: lda $5F
1140: sbc VARTAB
1141: tay
1142: bcs L876E
1143: inx
1144: dec $25
1145: L876E: clc
1146: adc INDEX1
1147: bcc L8776
1148: dec $23
1149: clc
1150: L8776: jsr INDIN1
1151: sta (INDEX2),y
1152: iny
1153: bne L8776
1154: inc $23
1155: inc $25
1156: dex
1157: bne L8776
1158: L8785: jsr L8A9A
1159: jsr L8818
1160: ldy #$00
1161: jsr INDTXT
1162: beq L8721
1163: clc
1164: lda VARTAB
1165: ldy $2E
1166: sta $5A
1167: sty $5B
1168: adc COUNT
1169: bcc L87A0
1170: iny
1171: L87A0: clc
1172: adc #$04
1173: bcc L87A6
1174: iny
1175: L87A6: sta $58
1176: sty $59
1177: jsr L88C0
1178: ldy #$00
1179: lda #$01
1180: sta ($5F),y
1181: iny
1182: sta ($5F),y
1183: iny
1184: lda LINNUM
1185: sta ($5F),y
1186: lda $15
1187: iny
1188: sta ($5F),y
1189: iny
1190: tya
1191: clc
1192: adc $5F
1193: sta $5F
1194: bcc L87CB
1195: inc $60
1196: L87CB: lda STREND
1197: ldy $32
1198: sta VARTAB
1199: sty $2E
1200: ldy COUNT
1201: dey
1202: L87D6: jsr INDTXT
1203: sta ($5F),y
1204: dey
1205: bpl L87D6
1206: jsr L8818
1207: jsr L8A93
1208: lda AUTINC
1209: ora $74
1210: beq L8815
1211: lda LINNUM
1212: clc
1213: adc AUTINC
1214: sta $63
1215: lda $15
1216: adc $74
1217: sta FACH0
1218: ldx #$90
1219: sec
1220: jsr LA2CE
1221: jsr LA46F
1222: ldx #$00
1223: L8802: lda $0101,x
1224: beq L880D
1225: sta KEYD,x
1226: inx
1227: bne L8802
1228: L880D: lda #$1D
1229: sta KEYD,x
1230: inx
1231: stx NDX
1232: L8815: jmp L870F
1233:
1234: L8818: lda TXTTAB
1235: ldy $2C
1236: sta INDEX1
1237: sty $23
1238: clc
1239: L8821: ldy #$00
1240: jsr INDIN1
1241: bne L882E
1242: iny
1243: jsr INDIN1
1244: beq L8859
1245: L882E: ldy #$04
1246: L8830: iny
1247: jsr INDIN1
1248: bne L8830
1249: iny
1250: tya
1251: adc INDEX1
1252: tax
1253: ldy #$00
1254: sta (INDEX1),y
1255: tya
1256: adc $23
1257: iny
1258: sta (INDEX1),y
1259: stx INDEX1
1260: sta $23
1261: bcc L8821
1262: L884B: clc
1263: lda INDEX1
1264: ldy $23
1265: adc #$02
1266: bcc L8855
1267: iny
1268: L8855: sta VARTAB
1269: sty $2E
1270: L8859: rts
1271:
1272: L885A: ldx #$00
1273: L885C: jsr LA791
1274: cmp #$0D
1275: beq L886E
1276: sta BUF,x
1277: inx
1278: cpx #$59
1279: bcc L885C
1280: jmp LCC4C
1281:
1282: L886E: jmp L9031
1283:
1284: L8871: jsr LA760
1285: L8874: lda FNDPNT
1286: cmp #$B0
1287: bne L8880
1288: lda $3E
1289: cmp #$07
1290: beq L88BD
1291: L8880: ldy #$00
1292: lda SRCHTK
1293: cmp #$81
1294: bne L88A3
1295: cmp (FNDPNT),y
1296: bne L88BF
1297: ldy #$02
1298: lda $4A
1299: cmp #$FF
1300: beq L88BF
1301: cmp (FNDPNT),y
1302: bne L889F
1303: dey
1304: lda FORPNT
1305: cmp (FNDPNT),y
1306: beq L88BF
1307: L889F: ldx #$12
1308: bne L88B1
1309: L88A3: lda (FNDPNT),y
1310: cmp SRCHTK
1311: beq L88BF
1312: ldx #$12
1313: cmp #$81
1314: beq L88B1
1315: ldx #$05
1316: L88B1: txa
1317: clc
1318: adc FNDPNT
1319: sta FNDPNT
1320: bcc L8874
1321: inc $3E
1322: bne L8874
1323: L88BD: ldy #$01
1324: L88BF: rts
1325:
1326: L88C0: jsr L8923
1327: sta STREND
1328: sty $32
1329: sec
1330: lda $5A
1331: sbc $5F
1332: sta INDEX1
1333: tay
1334: lda $5B
1335: sbc $60
1336: tax
1337: inx
1338: tya
1339: beq L88FD
1340: lda $5A
1341: sec
1342: sbc INDEX1
1343: sta $5A
1344: bcs L88E4
1345: dec $5B
1346: sec
1347: L88E4: lda $58
1348: sbc INDEX1
1349: sta $58
1350: bcs L88F5
1351: dec $59
1352: bcc L88F5
1353: L88F0: jsr L8189
1354: sta ($58),y
1355: L88F5: dey
1356: bne L88F0
1357: jsr L8189
1358: sta ($58),y
1359: L88FD: dec $5B
1360: dec $59
1361: dex
1362: bne L88F5
1363: rts
1364:
1365: L8905: sty SYREG
1366: sec
1367: lda TOS
1368: sbc SYREG
1369: sta TOS
1370: lda $7D
1371: sbc #$00
1372: sta $7D
1373: cmp #$06
1374: bcc L8950
1375: bne L8922
1376: lda TOS
1377: cmp #$EC
1378: bcc L8950
1379: L8922: rts
1380:
1381: L8923: cpy $34
1382: bcc L894F
1383: bne L892D
1384: cmp FRETOP
1385: bcc L894F
1386: L892D: pha
1387: ldx #$09
1388: tya
1389: L8931: pha
1390: lda TEMPF1,x
1391: dex
1392: bpl L8931
1393: jsr LA954
1394: ldx #$F7
1395: L893C: pla
1396: sta FACEXP,x
1397: inx
1398: bmi L893C
1399: pla
1400: tay
1401: pla
1402: cpy $34
1403: bcc L894F
1404: bne L8950
1405: cmp FRETOP
1406: bcs L8950
1407: L894F: rts
1408:
1409: L8950: jmp L8681
1410:
1411: L8953: jmp (lICRNCH)
1412:
1413: ICRNCH: lda TXTPTR
1414: pha
1415: lda $3C
1416: pha
1417: L895C: jsr CHRGOT
1418: jmp L8965
1419:
1420: L8962: jsr CHRGET
1421: L8965: bcc L8962
1422: jmp (lIESCLK)
1423:
1424: IBASIC1:bcc L89D4
1425: cmp #$00
1426: beq L89C5
1427: cmp #$3A
1428: beq L8962
1429: cmp #$3F
1430: bne L897C
1431: lda #$99
1432: bne L89AA
1433: L897C: cmp #$80
1434: bcc L898B
1435: cmp #$FF
1436: beq L8962
1437: ldy #$01
1438: jsr L89EA
1439: beq L895C
1440: L898B: cmp #$22
1441: bne L899C
1442: L898F: jsr CHRGET
1443: cmp #$00
1444: beq L89C5
1445: cmp #$22
1446: beq L8962
1447: bne L898F
1448: L899C: jsr L8A03
1449: bcc L8962
1450: cpy #$00
1451: beq L89A8
1452: jsr L89EA
1453: L89A8: lda COUNT
1454: L89AA: ldy #$00
1455: sta (TXTPTR),y
1456: cmp #$8F
1457: beq L89BF
1458: cmp #$83
1459: bne L8962
1460: jsr CHRGET
1461: jsr L8DB0
1462: jmp L895C
1463:
1464: L89BF: jsr CHRGET
1465: jsr L8E0B
1466: L89C5: ldx TXTPTR
1467: pla
1468: sta $3C
1469: pla
1470: sta TXTPTR
1471: sec
1472: txa
1473: sbc TXTPTR
1474: tay
1475: iny
1476: rts
1477:
1478: L89D4: pha
1479: dey
1480: dey
1481: jsr L89EA
1482: ldy #$00
1483: lda #$FE
1484: sta (TXTPTR),y
1485: iny
1486: pla
1487: sta (TXTPTR),y
1488: jsr CHRGET
1489: jmp L8962
1490:
1491: L89EA: clc
1492: tya
1493: adc TXTPTR
1494: sta INDEX1
1495: lda $3C
1496: adc #$00
1497: sta $23
1498: ldy #$00
1499: L89F8: jsr INDIN1
1500: sta (TXTPTR),y
1501: iny
1502: cmp #$00
1503: bne L89F8
1504: rts
1505:
1506: L8A03: lda #$81
1507: ldy #$8E
1508: sta $23
1509: sty INDEX1
1510: ldy #$00
1511: sty COUNT
1512: dey
1513: L8A10: iny
1514: L8A11: jsr INDTXT
1515: sec
1516: sbc (INDEX1),y
1517: beq L8A10
1518: cmp #$80
1519: beq L8A38
1520: L8A1D: lda (INDEX1),y
1521: bmi L8A24
1522: iny
1523: bne L8A1D
1524: L8A24: iny
1525: inc COUNT
1526: clc
1527: tya
1528: adc INDEX1
1529: sta INDEX1
1530: bcc L8A31
1531: inc $23
1532: L8A31: clc
1533: ldy #$00
1534: lda (INDEX1),y
1535: bne L8A11
1536: L8A38: ora COUNT
1537: sta COUNT
1538: rts
1539:
1540: L8A3D: lda TXTTAB
1541: ldx $2C
1542: L8A41: ldy #$01
1543: sta $5F
1544: stx $60
1545: jsr INDLOW
1546: beq L8A77
1547: iny
1548: iny
1549: jsr INDLOW
1550: sta $78
1551: lda $15
1552: cmp $78
1553: bcc L8A78
1554: beq L8A5E
1555: dey
1556: bne L8A6C
1557: L8A5E: dey
1558: jsr INDLOW
1559: sta $78
1560: lda LINNUM
1561: cmp $78
1562: bcc L8A78
1563: beq L8A78
1564: L8A6C: dey
1565: jsr INDLOW
1566: tax
1567: dey
1568: jsr INDLOW
1569: bcs L8A41
1570: L8A77: clc
1571: L8A78: rts
1572:
1573: L8A79: bne L8A78
1574: L8A7B: lda #$00
1575: tay
1576: sta (TXTTAB),y
1577: iny
1578: sta (TXTTAB),y
1579: sta TRCFLG
1580: lda TXTTAB
1581: clc
1582: adc #$02
1583: sta VARTAB
1584: lda $2C
1585: adc #$00
1586: sta $2E
1587: L8A93: jsr L8AF1
1588: lda #$00
1589: L8A98: bne L8AEC
1590: L8A9A: jsr kCLALL
1591: ldy #$00
1592: sty DSDESC
1593: dey
1594: sty $04F3
1595: sty ERRLIN
1596: sty $04F1
1597: sty ERRNUM
1598: lda MEMSIZ
1599: ldy $38
1600: sta FRETOP
1601: sty $34
1602: lda #$B0
1603: ldy #$07
1604: sta TOS
1605: sty $7D
1606: lda VARTAB
1607: ldy $2E
1608: sta ARYTAB
1609: sty $30
1610: sta STREND
1611: sty $32
1612: ldx #$03
1613: L8ACC: lda L8AED,x
1614: sta PUFILL,x
1615: dex
1616: bpl L8ACC
1617: L8AD5: jsr L8CB1
1618: L8AD8: ldx #$19
1619: stx TEMPPT
1620: pla
1621: tay
1622: pla
1623: ldx #$FA
1624: txs
1625: pha
1626: tya
1627: pha
1628: lda #$00
1629: sta $025C
1630: sta SUBFLG
1631: L8AEC: rts
1632:
1633: L8AED: .byte " ,.$"
1634: L8AF1: clc
1635: lda TXTTAB
1636: adc #$FF
1637: sta TXTPTR
1638: lda $2C
1639: adc #$FF
1640: sta $3C
1641: rts
1642:
1643: L8AFF: jsr LAECA
1644: L8B02: ldy #$01
1645: jsr INDLOW
1646: bne L8B0F
1647: dey
1648: jsr INDLOW
1649: beq L8B3D
1650: L8B0F: jsr L8CC0
1651: jsr L903E
1652: ldy #$02
1653: jsr INDLOW
1654: tax
1655: iny
1656: jsr INDLOW
1657: cmp $15
1658: bne L8B27
1659: cpx LINNUM
1660: beq L8B29
1661: L8B27: bcs L8B3D
1662: L8B29: jsr L8B40
1663: ldy #$00
1664: jsr INDLOW
1665: tax
1666: iny
1667: jsr INDLOW
1668: stx $5F
1669: sta $60
1670: jmp L8B02
1671:
1672: L8B3D: jmp L903E
1673:
1674: L8B40: ldy #$03
1675: sty FORPNT
1676: sty DORES
1677: jsr LA45F
1678: lda #$20
1679: L8B4B: ldy FORPNT
1680: and #$7F
1681: L8B4F: jsr L90B2
1682: cmp #$22
1683: bne L8B5C
1684: lda DORES
1685: eor #$FF
1686: sta DORES
1687: L8B5C: iny
1688: beq L8B3D
1689: bit HELPER
1690: bpl L8B66
1691: jsr LB70C
1692: L8B66: jsr INDLOW
1693: beq L8BBB
1694: jmp (lIQPLOP)
1695:
1696: IQPLOP: bpl L8B4F
1697: cmp #$FF
1698: beq L8B4F
1699: bit DORES
1700: bmi L8B4F
1701: cmp #$FE
1702: bne L8B93
1703: iny
1704: jsr INDLOW
1705: beq L8B8E
1706: sty FORPNT
1707: sec
1708: jmp (lIESCPR)
1709:
1710: IBASIC2:bcs L8B4F
1711: ldy #$00
1712: beq L8BB2
1713: L8B8E: dey
1714: lda #$FE
1715: bne L8B4F
1716: L8B93: tax
1717: sty FORPNT
1718: ldy #$81
1719: sty $23
1720: ldy #$8E
1721: sty INDEX1
1722: ldy #$00
1723: L8BA0: dex
1724: bpl L8BB2
1725: L8BA3: lda (INDEX1),y
1726: pha
1727: inc INDEX1
1728: bne L8BAC
1729: inc $23
1730: L8BAC: pla
1731: bpl L8BA3
1732: bmi L8BA0
1733: L8BB1: iny
1734: L8BB2: lda (INDEX1),y
1735: bmi L8B4B
1736: jsr L90B2
1737: bne L8BB1
1738: L8BBB: rts
1739:
1740: L8BBC: bne L8BC4
1741: jsr L8D20
1742: jmp L8A93
1743:
1744: L8BC4: jsr L8A9A
1745: jsr CHRGOT
1746: jsr L8D4D
1747: jsr L8D20
1748: jmp L8BDC
1749:
1750: L8BD3: jmp (lIGONE)
1751:
1752: IGONE: jsr CHRGET
1753: L8BD9: jsr L8C25
1754: L8BDC: jsr L8CC0
1755: bit RUNMOD
1756: bpl L8BEA
1757: jsr L8C1A
1758: tsx
1759: stx OLDSTK
1760: L8BEA: ldy #$00
1761: jsr INDTXT
1762: beq L8BF4
1763: jmp L8C93
1764:
1765: L8BF4: bit RUNMOD
1766: bpl L8C17
1767: ldy #$02
1768: jsr INDTXT
1769: beq L8C17
1770: iny
1771: jsr INDTXT
1772: sta CHRLIN
1773: iny
1774: jsr INDTXT
1775: sta $3A
1776: tya
1777: clc
1778: adc TXTPTR
1779: sta TXTPTR
1780: bcc L8BD3
1781: inc $3C
1782: bne L8BD3
1783: L8C17: jmp L867E
1784:
1785: L8C1A: lda TXTPTR
1786: ldy $3C
1787: sta OLDTXT
1788: sty $025C
1789: L8C24: rts
1790:
1791: L8C25: beq L8C24
1792: bit TRCFLG
1793: bpl L8C3F
1794: bit RUNMOD
1795: bpl L8C3F
1796: pha
1797: lda #$5B
1798: jsr L90B2
1799: jsr LA45B
1800: lda #$5D
1801: jsr L90B2
1802: pla
1803: L8C3F: cmp #$FE
1804: beq L8C82
1805: cmp #$CB
1806: beq L8C74
1807: cmp #$CA
1808: beq L8C6B
1809: cmp #$FB
1810: bcs L8C8D
1811: cmp #$A3
1812: bcc L8C59
1813: cmp #$D5
1814: bcc L8C8D
1815: sbc #$32
1816: L8C59: sec
1817: sbc #$80
1818: bcc L8C90
1819: asl a
1820: tay
1821: lda L8383+1,y
1822: pha
1823: lda L8383,y
1824: pha
1825: jmp CHRGET
1826:
1827: L8C6B: lda #$B6
1828: pha
1829: lda #$5A
1830: pha
1831: L8C71: jmp CHRGET
1832:
1833: L8C74: jsr CHRGET
1834: cmp #$A4
1835: bne L8C8D
1836: jsr CHRGET
1837: jmp L8D4D
1838:
1839: .if CompileComputer >= PLUS4_BETA_0203
1840: .byte $00
1841: .else
1842: .byte $37
1843: .endif
1844: L8C82: jsr CHRGET
1845: beq L8C8D
1846: sec
1847: jmp (lIESCEX)
1848:
1849: IBASIC3:bcc L8C71
1850: L8C8D: jmp L94A1
1851:
1852: L8C90: jmp L8E7C
1853:
1854: L8C93: cmp #$3A
1855: bne L8C8D
1856: jmp L8BD3
1857:
1858: L8C9A: beq L8CB1
1859: jsr L9DE1
1860: sty LINNUM
1861: sta $15
1862: jsr L8A3D
1863: bcs L8CAB
1864: jmp L8D8F
1865:
1866: L8CAB: lda $5F
1867: ldy $60
1868: bcs L8CB6
1869: L8CB1: sec
1870: lda TXTTAB
1871: ldy $2C
1872: L8CB6: sbc #$01
1873: bcs L8CBB
1874: dey
1875: L8CBB: sta DATPTR
1876: sty $42
1877: L8CBF: rts
1878:
1879: L8CC0: jsr kSTOP
1880: bne L8CBF
1881: php
1882: ldy $04F3
1883: iny
1884: beq L8CD7
1885: L8CCC: jsr kSTOP
1886: beq L8CCC
1887: plp
1888: ldx #$1E
1889: jmp L8683
1890:
1891: L8CD7: plp
1892: L8CD8: bcs L8CDB
1893: L8CDA: clc
1894: L8CDB: bne L8CBF
1895: bit RUNMOD
1896: bpl L8CEE
1897: jsr L8C1A
1898: lda CHRLIN
1899: ldy $3A
1900: sta OLDLIN
1901: sty $025A
1902: L8CEE: pla
1903: pla
1904: bcc L8D00
1905: jsr LFF4F
1906: .byte $0D,$0A
1907: .byte "BREAK"
1908: .byte $00
1909: jmp L86FB
1910:
1911: L8D00: jmp L867E
1912:
1913: L8D03: bne L8CBF
1914: ldx #$1A
1915: ldy $025C
1916: bne L8D0F
1917: jmp L8683
1918:
1919: L8D0F: lda OLDTXT
1920: sta TXTPTR
1921: sty $3C
1922: lda OLDLIN
1923: ldy $025A
1924: sta CHRLIN
1925: sty $3A
1926: L8D20: lda #$80
1927: sta RUNMOD
1928: asl a
1929: sta AUTINC
1930: sta $74
1931: jmp kSETMSF
1932:
1933: L8D2C: ldy #$05
1934: jsr L8905
1935: dey
1936: lda $3C
1937: sta (TOS),y
1938: dey
1939: lda TXTPTR
1940: sta (TOS),y
1941: dey
1942: lda $3A
1943: sta (TOS),y
1944: dey
1945: lda CHRLIN
1946: sta (TOS),y
1947: dey
1948: lda #$8D
1949: sta (TOS),y
1950: jsr CHRGOT
1951: L8D4D: jsr L8E3E
1952: jsr L8DC1
1953: sec
1954: lda CHRLIN
1955: sbc LINNUM
1956: lda $3A
1957: sbc $15
1958: bcs L8D69
1959: tya
1960: sec
1961: adc TXTPTR
1962: ldx $3C
1963: bcc L8D6D
1964: inx
1965: bcs L8D6D
1966: L8D69: lda TXTTAB
1967: ldx $2C
1968: L8D6D: jsr L8A41
1969: bcc L8D8F
1970: lda $5F
1971: sbc #$01
1972: sta TXTPTR
1973: lda $60
1974: sbc #$00
1975: sta $3C
1976: bit RUNMOD
1977: bpl L8D20
1978: rts
1979:
1980: L8D83: lda #$8D
1981: sta SRCHTK
1982: jsr L8871
1983: beq L8D94
1984: ldx #$0C
1985: .byte $2C
1986: L8D8F: ldx #$11
1987: jmp L8683
1988:
1989: L8D94: jsr LA769
1990: ldy #$05
1991: jsr LA772
1992: dey
1993: lda (FNDPNT),y
1994: sta $3C
1995: dey
1996: lda (FNDPNT),y
1997: sta TXTPTR
1998: dey
1999: lda (FNDPNT),y
2000: jsr LCD7F
2001: lda (FNDPNT),y
2002: sta CHRLIN
2003: L8DB0: jsr L8DBE
2004: L8DB3: tya
2005: clc
2006: adc TXTPTR
2007: sta TXTPTR
2008: bcc L8DBD
2009: inc $3C
2010: L8DBD: rts
2011:
2012: L8DBE: ldx #$3A
2013: .byte $2C
2014: L8DC1: ldx #$00
2015: stx CHARAC
2016: ldy #$00
2017: sty ENDCHR
2018: L8DC9: lda ENDCHR
2019: ldx CHARAC
2020: sta CHARAC
2021: stx ENDCHR
2022: L8DD1: jsr INDTXT
2023: beq L8DBD
2024: cmp ENDCHR
2025: beq L8DBD
2026: iny
2027: cmp #$22
2028: bne L8DD1
2029: beq L8DC9
2030: L8DE1: jsr L932C
2031: jsr CHRGOT
2032: cmp #$89
2033: beq L8DF0
2034: lda #$A7
2035: jsr L9493
2036: L8DF0: lda FACEXP
2037: bne L8E10
2038: L8DF4: jsr L8DB0
2039: ldy #$00
2040: jsr INDTXT
2041: beq L8E0B
2042: jsr CHRGET
2043: cmp #$D5
2044: bne L8DF4
2045: jsr CHRGET
2046: jmp L8E10
2047:
2048: L8E0B: jsr L8DC1
2049: beq L8DB3
2050: L8E10: jsr CHRGOT
2051: bcs L8E18
2052: jmp L8D4D
2053:
2054: L8E18: jmp L8C25
2055:
2056: L8E1B: jsr L9D84
2057: pha
2058: cmp #$8D
2059: beq L8E2A
2060: L8E23: cmp #$89
2061: beq L8E2A
2062: jmp L94A1
2063:
2064: L8E2A: dec $65
2065: bne L8E32
2066: pla
2067: jmp L8C3F
2068:
2069: L8E32: jsr CHRGET
2070: jsr L8E3E
2071: cmp #$2C
2072: beq L8E2A
2073: pla
2074: L8E3D: rts
2075:
2076: L8E3E: ldx #$00
2077: stx ENDCHR
2078: stx LINNUM
2079: stx $15
2080: L8E46: bcs L8E3D
2081: inc ENDCHR
2082: sbc #$2F
2083: sta CHARAC
2084: lda $15
2085: sta INDEX1
2086: cmp #$19
2087: bcs L8E23
2088: lda LINNUM
2089: asl a
2090: rol INDEX1
2091: asl a
2092: rol INDEX1
2093: adc LINNUM
2094: sta LINNUM
2095: lda INDEX1
2096: adc $15
2097: sta $15
2098: asl LINNUM
2099: rol $15
2100: lda LINNUM
2101: adc CHARAC
2102: sta LINNUM
2103: bcc L8E76
2104: inc $15
2105: L8E76: jsr CHRGET
2106: jmp L8E46
2107:
2108: L8E7C: jsr L96A5
2109: sta FORPNT
2110: sty $4A
2111: lda #$B2
2112: jsr L9493
2113: lda INTFLG
2114: pha
2115: lda VALTYP
2116: pha
2117: jsr L932C
2118: pla
2119: rol a
2120: jsr L931B
2121: bne L8EB0
2122: pla
2123: L8E99: bpl L8EAD
2124: jsr LA2A0
2125: jsr L9886
2126: ldy #$00
2127: lda $64
2128: sta (FORPNT),y
2129: iny
2130: lda $65
2131: sta (FORPNT),y
2132: rts
2133:
2134: L8EAD: jmp LA255
2135:
2136: L8EB0: pla
2137: L8EB1: ldy $4A
2138: cpy #$04
2139: bne L8F29
2140: jsr L9C4E
2141: cmp #$06
2142: bne L8EFC
2143: ldy #$00
2144: sty FACEXP
2145: sty FACSGN
2146: L8EC4: sty FBUFPT
2147: jsr L8EF4
2148: jsr LA162
2149: inc FBUFPT
2150: ldy FBUFPT
2151: jsr L8EF4
2152: jsr LA291
2153: tax
2154: beq L8EDE
2155: inx
2156: txa
2157: jsr LA16D
2158: L8EDE: ldy FBUFPT
2159: iny
2160: cpy #$06
2161: bne L8EC4
2162: jsr LA162
2163: jsr LA327
2164: ldx $64
2165: ldy $63
2166: lda $65
2167: jmp kSETTIM
2168:
2169: L8EF4: jsr INDIN1
2170: jsr QNUM
2171: bcc L8EFF
2172: L8EFC: jmp L991C
2173:
2174: L8EFF: sbc #$2F
2175: jmp LA40A
2176:
2177: L8F04: pla
2178: iny
2179: L8F06: cmp $34
2180: bcc L8F22
2181: bne L8F14
2182: dey
2183: jsr INDFMO
2184: cmp FRETOP
2185: bcc L8F22
2186: L8F14: ldy $65
2187: cpy $2E
2188: bcc L8F22
2189: bne L8F40
2190: lda $64
2191: cmp VARTAB
2192: bcs L8F40
2193: L8F22: lda $64
2194: ldy $65
2195: jmp L8F5E
2196:
2197: L8F29: ldy #$02
2198: jsr INDFMO
2199: cmp $7B
2200: bne L8F06
2201: pha
2202: dey
2203: jsr INDFMO
2204: cmp $7A
2205: bne L8F04
2206: lda DSDESC
2207: beq L8F04
2208: pla
2209: L8F40: ldy #$00
2210: jsr INDFMO
2211: jsr L9B54
2212: lda DSCPNT
2213: ldy $51
2214: sta ARISGN
2215: sty FACOV
2216: jsr L9C1B
2217: lda ARISGN
2218: ldy FACOV
2219: jsr L9CAA
2220: lda #$61
2221: ldy #$00
2222: L8F5E: sta DSCPNT
2223: sty $51
2224: sta INDEX1
2225: sty $23
2226: jsr L9CAA
2227: jsr L8F9C
2228: bcc L8F79
2229: ldy #$00
2230: lda FORPNT
2231: sta (INDEX1),y
2232: iny
2233: lda $4A
2234: sta (INDEX1),y
2235: L8F79: lda FORPNT
2236: sta INDEX1
2237: lda $4A
2238: sta $23
2239: jsr L8F9C
2240: bcc L8F8F
2241: dey
2242: lda #$FF
2243: sta (INDEX1),y
2244: dey
2245: txa
2246: sta (INDEX1),y
2247: L8F8F: ldy #$02
2248: L8F91: lda #$50
2249: jsr INDSUB
2250: sta (FORPNT),y
2251: dey
2252: bpl L8F91
2253: rts
2254:
2255: L8F9C: ldy #$00
2256: jsr INDIN1
2257: pha
2258: beq L8FDD
2259: iny
2260: jsr INDIN1
2261: tax
2262: iny
2263: jsr INDIN1
2264: cmp $38
2265: bcc L8FB7
2266: bne L8FDD
2267: cpx MEMSIZ
2268: bcs L8FDD
2269: L8FB7: jsr INDIN1
2270: cmp $34
2271: bcc L8FDD
2272: bne L8FC4
2273: cpx FRETOP
2274: bcc L8FDD
2275: L8FC4: cmp $7B
2276: bne L8FCC
2277: cpx $7A
2278: beq L8FDD
2279: L8FCC: stx INDEX1
2280: sta $23
2281: pla
2282: tax
2283: clc
2284: adc INDEX1
2285: sta INDEX1
2286: bcc L8FDB
2287: inc $23
2288: L8FDB: sec
2289: rts
2290:
2291: L8FDD: pla
2292: clc
2293: rts
2294:
2295: L8FE0: jsr L8FE6
2296: jmp L90FE
2297:
2298: L8FE6: jsr L9D84
2299: beq L8FF0
2300: lda #$2C
2301: jsr L9493
2302: L8FF0: php
2303: stx CHANNL
2304: jsr LA797
2305: plp
2306: jmp L9000
2307:
2308: L8FFA: jsr L908B
2309: L8FFD: jsr CHRGOT
2310: L9000: beq L903E
2311: cmp #$FB
2312: bne L9009
2313: jmp LAEF7
2314:
2315: L9009: beq L904E
2316: cmp #$A3
2317: beq L905F
2318: cmp #$A6
2319: clc
2320: beq L905F
2321: cmp #$2C
2322: beq L904F
2323: cmp #$3B
2324: beq L907A
2325: jsr L932C
2326: bit VALTYP
2327: bmi L8FFA
2328: jsr LA46F
2329: jsr L9B74
2330: jsr L908B
2331: jsr L90A6
2332: bne L8FFD
2333: L9031: lda #$00
2334: sta BUF,x
2335: ldx #$FF
2336: ldy #$01
2337: lda CHANNL
2338: bne L904E
2339: L903E: lda #$0D
2340: jsr L90B2
2341: bit CHANNL
2342: bpl L904C
2343: lda #$0A
2344: jsr L90B2
2345: L904C: eor #$FF
2346: L904E: rts
2347:
2348: L904F: sec
2349: jsr kPLOT
2350: tya
2351: sec
2352: L9055: sbc #$0A
2353: bcs L9055
2354: eor #$FF
2355: adc #$01
2356: bne L9075
2357: L905F: php
2358: sec
2359: jsr kPLOT
2360: sty TRMPOS
2361: jsr L9D81
2362: cmp #$29
2363: bne L9080
2364: plp
2365: bcc L9076
2366: txa
2367: sbc TRMPOS
2368: bcc L907A
2369: L9075: tax
2370: L9076: inx
2371: L9077: dex
2372: bne L9083
2373: L907A: jsr CHRGET
2374: jmp L9009
2375:
2376: L9080: jmp L94A1
2377:
2378: L9083: jsr L90A6
2379: bne L9077
2380: L9088: jsr L9B74
2381: L908B: jsr L9C4E
2382: tax
2383: ldy #$00
2384: inx
2385: L9092: dex
2386: beq L904E
2387: jsr INDIN1
2388: jsr L90B2
2389: iny
2390: cmp #$0D
2391: bne L9092
2392: jsr L904C
2393: jmp L9092
2394:
2395: L90A6: lda CHANNL
2396: beq L90AD
2397: L90AA: lda #$20
2398: .byte $2C
2399: L90AD: lda #$1D
2400: .byte $2C
2401: L90B0: lda #$3F
2402: L90B2: jsr LA78B
2403: and #$FF
2404: rts
2405:
2406: L90B8: jsr L9A86
2407: sta VOICNO
2408: cmp #$23
2409: beq L90CB
2410: cmp #$F9
2411: bne L90DB
2412: jsr CHRGET
2413: jmp L90DB
2414:
2415: L90CB: jsr CHRGET
2416: jsr L9D84
2417: lda #$2C
2418: jsr L9493
2419: stx CHANNL
2420: jsr LA7A6
2421: L90DB: ldx #$01
2422: ldy #$02
2423: lda #$00
2424: sta $0201
2425: lda #$40
2426: jsr L9158
2427: ldx CHANNL
2428: bne L9100
2429: rts
2430:
2431: L90EE: jsr L9D84
2432: lda #$2C
2433: jsr L9493
2434: stx CHANNL
2435: jsr LA7A6
2436: jsr L9117
2437: L90FE: lda CHANNL
2438: L9100: jsr kCLRCHN
2439: ldx #$00
2440: stx CHANNL
2441: rts
2442:
2443: L9108: cmp #$22
2444: bne L9117
2445: jsr L944E
2446: lda #$3B
2447: jsr L9493
2448: jsr L908B
2449: L9117: jsr L9A86
2450: lda #$2C
2451: sta $01FF
2452: L911F: jsr L9142
2453: lda CHANNL
2454: beq L9133
2455: jsr kREADST
2456: and #$02
2457: beq L9133
2458: jsr L90FE
2459: jmp L8DB0
2460:
2461: L9133: lda BUF
2462: bne L9156
2463: lda CHANNL
2464: bne L911F
2465: jsr L8DBE
2466: jmp L8DB3
2467:
2468: L9142: lda CHANNL
2469: bne L914C
2470: jsr L90B0
2471: jsr L90AA
2472: L914C: jmp L885A
2473:
2474: L914F: ldx DATPTR
2475: ldy $42
2476: lda #$98
2477: .byte $2C
2478: L9156: lda #$00
2479: L9158: sta INPFLG
2480: stx INPPTR
2481: sty $44
2482: L915E: jsr L96A5
2483: sta FORPNT
2484: sty $4A
2485: ldx #$01
2486: L9167: lda TXTPTR,x
2487: sta OPPTR,x
2488: lda INPPTR,x
2489: sta TXTPTR,x
2490: dex
2491: bpl L9167
2492: jsr CHRGOT
2493: bne L91A8
2494: bit INPFLG
2495: bvc L9195
2496: lda VOICNO
2497: cmp #$F9
2498: bne L9189
2499: L9181: jsr LA7AF
2500: tax
2501: beq L9181
2502: bne L918C
2503: L9189: jsr LA7AF
2504: L918C: sta BUF
2505: ldx #$FF
2506: ldy #$01
2507: bne L91A4
2508: L9195: bpl L919A
2509: jmp L9240
2510:
2511: L919A: lda CHANNL
2512: bne L91A1
2513: jsr L90B0
2514: L91A1: jsr L9142
2515: L91A4: stx TXTPTR
2516: sty $3C
2517: L91A8: jsr CHRGET
2518: bit VALTYP
2519: bpl L91E0
2520: bit INPFLG
2521: bvc L91BC
2522: inx
2523: stx TXTPTR
2524: lda #$00
2525: sta CHARAC
2526: beq L91C8
2527: L91BC: sta CHARAC
2528: cmp #$22
2529: beq L91C9
2530: lda #$3A
2531: sta CHARAC
2532: lda #$2C
2533: L91C8: clc
2534: L91C9: sta ENDCHR
2535: lda TXTPTR
2536: ldy $3C
2537: adc #$00
2538: bcc L91D4
2539: iny
2540: L91D4: jsr L9B7A
2541: jsr L9DC6
2542: jsr L8EB1
2543: jmp L91E8
2544:
2545: L91E0: jsr LA37F
2546: lda INTFLG
2547: jsr L8E99
2548: L91E8: jsr CHRGOT
2549: beq L9228
2550: cmp #$2C
2551: beq L9228
2552: lda INPFLG
2553: beq L91FF
2554: bmi L91FB
2555: ldx CHANNL
2556: bne L9203
2557: L91FB: ldx #$16
2558: bne L9205
2559: L91FF: lda CHANNL
2560: beq L9208
2561: L9203: ldx #$18
2562: L9205: jmp L8683
2563:
2564: L9208: jsr LFF4F
2565: .byte "?REDO FROM START"
2566:
2567: .byte $0D,$00
2568: lda OLDTXT
2569: ldy $025C
2570: sta TXTPTR
2571: sty $3C
2572: rts
2573:
2574: L9228: ldx #$01
2575: L922A: lda TXTPTR,x
2576: sta INPPTR,x
2577: lda OPPTR,x
2578: sta TXTPTR,x
2579: dex
2580: bpl L922A
2581: jsr CHRGOT
2582: beq L926A
2583: jsr L9491
2584: jmp L915E
2585:
2586: L9240: jsr L8DBE
2587: iny
2588: tax
2589: bne L925C
2590: ldx #$0D
2591: iny
2592: jsr INDTXT
2593: beq L92BB
2594: iny
2595: jsr INDTXT
2596: sta DATLIN
2597: iny
2598: jsr INDTXT
2599: iny
2600: sta $40
2601: L925C: jsr L8DB3
2602: jsr CHRGOT
2603: tax
2604: cpx #$83
2605: bne L9240
2606: jmp L91A8
2607:
2608: L926A: lda INPPTR
2609: ldy $44
2610: ldx INPFLG
2611: bpl L9275
2612: jmp L8CBB
2613:
2614: L9275: ldy #$00
2615: jsr L8155
2616: beq L9293
2617: lda CHANNL
2618: bne L9293
2619: jsr LFF4F
2620: .byte "?EXTRA IGNORED"
2621:
2622: .byte $0D,$00
2623: L9293: rts
2624:
2625: L9294: bne L92A9
2626: ldy #$FF
2627: bne L92AE
2628: L929A: ldy #$12
2629: jsr LA772
2630: jsr CHRGOT
2631: cmp #$2C
2632: bne L9313
2633: jsr CHRGET
2634: L92A9: jsr L96A5
2635: sta FORPNT
2636: L92AE: sty $4A
2637: ldy #$81
2638: sty SRCHTK
2639: jsr L8871
2640: beq L92BE
2641: ldx #$0A
2642: L92BB: jmp L8683
2643:
2644: L92BE: jsr LA769
2645: lda FNDPNT
2646: clc
2647: adc #$03
2648: ldy $3E
2649: bcc L92CB
2650: iny
2651: L92CB: jsr LA21F
2652: ldy #$08
2653: lda (FNDPNT),y
2654: sta FACSGN
2655: ldy #$01
2656: lda (FNDPNT),y
2657: pha
2658: tax
2659: iny
2660: lda (FNDPNT),y
2661: pha
2662: tay
2663: txa
2664: jsr L9E9B
2665: pla
2666: tay
2667: pla
2668: tax
2669: jsr LA259
2670: lda FNDPNT
2671: clc
2672: adc #$09
2673: ldy $3E
2674: bcc L92F4
2675: iny
2676: L92F4: jsr LA2E0
2677: ldy #$08
2678: sec
2679: sbc (FNDPNT),y
2680: beq L929A
2681: ldy #$11
2682: lda (FNDPNT),y
2683: sta TXTPTR
2684: dey
2685: lda (FNDPNT),y
2686: sta $3C
2687: dey
2688: lda (FNDPNT),y
2689: sta $3A
2690: dey
2691: lda (FNDPNT),y
2692: sta CHRLIN
2693: L9313: rts
2694:
2695: L9314: jsr L932C
2696: L9317: clc
2697: bcc L931B
2698: L931A: sec
2699: L931B: bit VALTYP
2700: bmi L9322
2701: bcs L9324
2702: L9321: rts
2703:
2704: L9322: bcs L9321
2705: L9324: ldx #$16
2706: .byte $2C
2707: L9327: ldx #$19
2708: jmp L8683
2709:
2710: L932C: ldx TXTPTR
2711: bne L9332
2712: dec $3C
2713: L9332: dec TXTPTR
2714: ldx #$00
2715: .byte $24
2716: L9337: pha
2717: txa
2718: pha
2719: tsx
2720: cpx #$28
2721: bcc L9327
2722: jsr L9414
2723: lda #$00
2724: sta OPMASK
2725: L9346: jsr CHRGOT
2726: L9349: sec
2727: sbc #$B1
2728: bcc L9365
2729: cmp #$03
2730: bcs L9365
2731: cmp #$01
2732: rol a
2733: eor #$01
2734: eor OPMASK
2735: cmp OPMASK
2736: bcc L93BE
2737: sta OPMASK
2738: jsr CHRGET
2739: jmp L9349
2740:
2741: L9365: ldx OPMASK
2742: bne L9395
2743: bcs L93E9
2744: adc #$07
2745: bcc L93E9
2746: adc VALTYP
2747: bne L9376
2748: jmp L9BDA
2749:
2750: L9376: adc #$FF
2751: sta INDEX1
2752: asl a
2753: adc INDEX1
2754: tay
2755: L937E: pla
2756: cmp L8453,y
2757: bcs L93EE
2758: jsr L9317
2759: L9387: pha
2760: L9388: jsr L93AE
2761: pla
2762: ldy OPPTR
2763: bpl L93A7
2764: tax
2765: beq L93EC
2766: bne L93F7
2767: L9395: lsr VALTYP
2768: txa
2769: rol a
2770: ldx TXTPTR
2771: bne L939F
2772: dec $3C
2773: L939F: dec TXTPTR
2774: ldy #$1B
2775: sta OPMASK
2776: bne L937E
2777: L93A7: cmp L8453,y
2778: bcs L93F7
2779: bcc L9387
2780: L93AE: lda L8454+1,y
2781: pha
2782: lda L8454,y
2783: pha
2784: jsr L93C1
2785: lda OPMASK
2786: jmp L9337
2787:
2788: L93BE: jmp L94A1
2789:
2790: L93C1: lda FACSGN
2791: ldx L8453,y
2792: tay
2793: clc
2794: pla
2795: adc #$01
2796: sta INDEX1
2797: pla
2798: adc #$00
2799: sta $23
2800: tya
2801: pha
2802: jsr LA2A0
2803: lda $65
2804: pha
2805: lda $64
2806: pha
2807: lda $63
2808: pha
2809: lda FACH0
2810: pha
2811: lda FACEXP
2812: pha
2813: jmp (INDEX1)
2814:
2815: L93E9: ldy #$FF
2816: pla
2817: L93EC: beq L9411
2818: L93EE: cmp #$64
2819: beq L93F5
2820: jsr L9317
2821: L93F5: sty OPPTR
2822: L93F7: pla
2823: lsr a
2824: sta TANSGN
2825: pla
2826: sta ARGEXP
2827: pla
2828: sta ARGH0
2829: pla
2830: sta $6B
2831: pla
2832: sta $6C
2833: pla
2834: sta $6D
2835: pla
2836: sta ARGSGN
2837: eor FACSGN
2838: sta ARISGN
2839: L9411: lda FACEXP
2840: rts
2841:
2842: L9414: jmp (lIEVAL)
2843:
2844: IEVAL: lda #$00
2845: sta VALTYP
2846: L941B: jsr CHRGET
2847: bcs L9423
2848: L9420: jmp LA37F
2849:
2850: L9423: jsr L973A
2851: bcc L942B
2852: jmp L94AD
2853:
2854: L942B: cmp #$FF
2855: bne L943E
2856: lda #$39
2857: ldy #$94
2858: jsr LA221
2859: jmp CHRGET
2860:
2861: .byte $82,$49,$0F,$DA,$A1
2862: L943E: cmp #$2E
2863: beq L9420
2864: cmp #$AB
2865: beq L94A6
2866: cmp #$AA
2867: beq L941B
2868: cmp #$22
2869: bne L945D
2870: L944E: lda TXTPTR
2871: ldy $3C
2872: adc #$00
2873: bcc L9457
2874: iny
2875: L9457: jsr L9B74
2876: jmp L9DC6
2877:
2878: L945D: cmp #$A8
2879: bne L9477
2880: ldy #$18
2881: bne L94A8
2882: L9465: jsr L9886
2883: lda $65
2884: eor #$FF
2885: tay
2886: lda $64
2887: eor #$FF
2888: L9471: jsr L9A92
2889: jmp LA2C9
2890:
2891: L9477: cmp #$A5
2892: bne L947E
2893: jmp L9ADE
2894:
2895: L947E: cmp #$B4
2896: bcc L9485
2897: jmp L9599
2898:
2899: L9485: jsr L948E
2900: jsr L932C
2901: L948B: lda #$29
2902: .byte $2C
2903: L948E: lda #$28
2904: .byte $2C
2905: L9491: lda #$2C
2906: L9493: ldy #$00
2907: sta $78
2908: jsr INDTXT
2909: cmp $78
2910: bne L94A1
2911: jmp CHRGET
2912:
2913: L94A1: ldx #$0B
2914: jmp L8683
2915:
2916: L94A6: ldy #$15
2917: L94A8: pla
2918: pla
2919: jmp L9388
2920:
2921: L94AD: jsr L96A5
2922: sta $64
2923: sty $65
2924: ldx VARNAM
2925: ldy $46
2926: lda VALTYP
2927: beq L9501
2928: lda #$00
2929: sta FACOV
2930: cpx #$54
2931: bne L94E8
2932: cpy #$C9
2933: bne L953E
2934: lda $64
2935: cmp #$A2
2936: bne L953E
2937: lda $65
2938: cmp #$04
2939: bne L953E
2940: jsr L9531
2941: sty $5E
2942: dey
2943: sty FBUFPT
2944: ldy #$06
2945: sty $5D
2946: ldy #$24
2947: jsr LA4FA
2948: jmp L9B70
2949:
2950: L94E8: cpx #$44
2951: bne L953E
2952: cpy #$D3
2953: bne L953E
2954: jsr L94FA
2955: lda $7A
2956: ldy $7B
2957: jmp L9B74
2958:
2959: L94FA: lda DSDESC
2960: bne L953E
2961: jmp LCCCF
2962:
2963: L9501: bit INTFLG
2964: bpl L9514
2965: ldy #$00
2966: jsr INDFMO
2967: tax
2968: iny
2969: jsr INDFMO
2970: tay
2971: txa
2972: jmp L9471
2973:
2974: L9514: lda $65
2975: cmp #$04
2976: bne L9592
2977: lda $64
2978: cmp #$A2
2979: bne L9592
2980: cpx #$54
2981: bne L953F
2982: cpy #$49
2983: bne L9592
2984: jsr L9531
2985: tya
2986: ldx #$A0
2987: jmp LA2D4
2988:
2989: L9531: jsr kRDTIM
2990: stx $64
2991: sty $63
2992: sta $65
2993: ldy #$00
2994: sty FACH0
2995: L953E: rts
2996:
2997: L953F: cpx #$53
2998: bne L954D
2999: cpy #$54
3000: bne L9592
3001: jsr kREADST
3002: jmp LA2C1
3003:
3004: L954D: cpx #$44
3005: bne L9577
3006: cpy #$53
3007: bne L9592
3008: jsr L94FA
3009: ldy #$00
3010: lda #$7A
3011: jsr INDSUB
3012: and #$0F
3013: asl a
3014: sta DORES
3015: asl a
3016: asl a
3017: adc DORES
3018: sta DORES
3019: iny
3020: lda #$7A
3021: jsr INDSUB
3022: and #$0F
3023: adc DORES
3024: jmp LA2C1
3025:
3026: L9577: cpx #$45
3027: bne L9592
3028: cpy #$52
3029: beq L958C
3030: cpy #$4C
3031: bne L9592
3032: lda $04F1
3033: ldy ERRLIN
3034: jmp L9A76
3035:
3036: L958C: lda ERRNUM
3037: jmp LA2C1
3038:
3039: L9592: lda $64
3040: ldy $65
3041: jmp LA21F
3042:
3043: L9599: cmp #$D5
3044: bcs L95F5
3045: cmp #$CB
3046: bcc L95A3
3047: sbc #$01
3048: L95A3: pha
3049: tax
3050: jsr CHRGET
3051: cpx #$D3
3052: beq L95B4
3053: cpx #$CB
3054: bcs L95D9
3055: cpx #$C8
3056: bcc L95D9
3057: L95B4: jsr L948E
3058: jsr L932C
3059: jsr L9491
3060: jsr L931A
3061: pla
3062: cmp #$D3
3063: beq L95F2
3064: tax
3065: lda $65
3066: pha
3067: lda $64
3068: pha
3069: txa
3070: pha
3071: jsr L9D84
3072: pla
3073: tay
3074: txa
3075: pha
3076: tya
3077: jmp L95DD
3078:
3079: L95D9: jsr L9485
3080: pla
3081: L95DD: sec
3082: sbc #$B4
3083: asl a
3084: tay
3085: lda L8415+1,y
3086: sta $56
3087: lda L8415,y
3088: sta $55
3089: jsr JMPER
3090: jmp L9317
3091:
3092: L95F2: jmp LB386
3093:
3094: L95F5: jmp L94A1
3095:
3096: L95F8: ldy #$FF
3097: L95FA: .byte $2C
3098: L95FB: ldy #$00
3099: sty COUNT
3100: jsr L9886
3101: lda $64
3102: eor COUNT
3103: sta CHARAC
3104: lda $65
3105: eor COUNT
3106: sta ENDCHR
3107: jsr LA281
3108: jsr L9886
3109: lda $65
3110: eor COUNT
3111: and ENDCHR
3112: eor COUNT
3113: tay
3114: lda $64
3115: eor COUNT
3116: and CHARAC
3117: eor COUNT
3118: jmp L9471
3119:
3120: L9628: jsr L931B
3121: bcs L9640
3122: lda ARGSGN
3123: ora #$7F
3124: and ARGH0
3125: sta ARGH0
3126: lda #$69
3127: ldy #$00
3128: jsr LA2E0
3129: tax
3130: jmp L9673
3131:
3132: L9640: lda #$00
3133: sta VALTYP
3134: dec OPMASK
3135: jsr L9C4E
3136: sta FACEXP
3137: stx FACH0
3138: sty $63
3139: lda $6C
3140: ldy $6D
3141: jsr L9C52
3142: stx $6C
3143: sty $6D
3144: tax
3145: sec
3146: sbc FACEXP
3147: beq L9668
3148: lda #$01
3149: bcc L9668
3150: ldx FACEXP
3151: lda #$FF
3152: L9668: sta FACSGN
3153: ldy #$FF
3154: inx
3155: L966D: iny
3156: dex
3157: bne L9678
3158: ldx FACSGN
3159: L9673: bmi L968C
3160: clc
3161: bcc L968C
3162: L9678: jsr L8185
3163: pha
3164: jsr L817D
3165: sta $78
3166: pla
3167: cmp $78
3168: beq L966D
3169: ldx #$FF
3170: bcs L968C
3171: ldx #$01
3172: L968C: inx
3173: txa
3174: rol a
3175: and TANSGN
3176: beq L9695
3177: lda #$FF
3178: L9695: jmp LA2C1
3179:
3180: L9698: jsr L9491
3181: L969B: tax
3182: jsr L96AA
3183: jsr CHRGOT
3184: bne L9698
3185: rts
3186:
3187: L96A5: ldx #$00
3188: jsr CHRGOT
3189: L96AA: stx DIMFLG
3190: L96AC: sta VARNAM
3191: jsr CHRGOT
3192: jsr L973A
3193: bcs L96B9
3194: L96B6: jmp L94A1
3195:
3196: L96B9: ldx #$00
3197: stx VALTYP
3198: stx INTFLG
3199: jsr CHRGET
3200: bcc L96C9
3201: jsr L973A
3202: bcc L96D4
3203: L96C9: tax
3204: L96CA: jsr CHRGET
3205: bcc L96CA
3206: jsr L973A
3207: bcs L96CA
3208: L96D4: cmp #$24
3209: bne L96DE
3210: lda #$FF
3211: sta VALTYP
3212: bne L96EE
3213: L96DE: cmp #$25
3214: bne L96F5
3215: lda SUBFLG
3216: bne L96B6
3217: lda #$80
3218: sta INTFLG
3219: ora VARNAM
3220: sta VARNAM
3221: L96EE: txa
3222: ora #$80
3223: tax
3224: jsr CHRGET
3225: L96F5: stx $46
3226: sec
3227: ora SUBFLG
3228: sbc #$28
3229: bne L9701
3230: jmp L989B
3231:
3232: L9701: ldy #$00
3233: sty SUBFLG
3234: lda VARTAB
3235: ldx $2E
3236: L9709: stx $60
3237: L970B: sta $5F
3238: cpx $30
3239: bne L9715
3240: cmp ARYTAB
3241: beq L9744
3242: L9715: jsr INDLOW
3243: sta $78
3244: lda VARNAM
3245: cmp $78
3246: bne L9730
3247: iny
3248: jsr INDLOW
3249: sta $78
3250: lda $46
3251: cmp $78
3252: bne L972F
3253: jmp L984C
3254:
3255: L972F: dey
3256: L9730: clc
3257: lda $5F
3258: adc #$07
3259: bcc L970B
3260: inx
3261: bne L9709
3262: L973A: cmp #$41
3263: bcc L9743
3264: sbc #$5B
3265: sec
3266: sbc #$A5
3267: L9743: rts
3268:
3269: L9744: pla
3270: pha
3271: cmp #$AF
3272: bne L9774
3273: L974A: lda #$A2
3274: ldy #$04
3275: rts
3276:
3277: L974F: cpy #$C9
3278: beq L974A
3279: cpy #$49
3280: bne L9788
3281: beq L9771
3282: L9759: cpy #$D3
3283: beq L9771
3284: cpy #$53
3285: bne L9788
3286: beq L9771
3287: L9763: cpy #$54
3288: bne L9788
3289: beq L9771
3290: L9769: cpy #$52
3291: beq L9771
3292: cpy #$4C
3293: bne L9788
3294: L9771: jmp L94A1
3295:
3296: L9774: lda VARNAM
3297: ldy $46
3298: cmp #$54
3299: beq L974F
3300: cmp #$53
3301: beq L9763
3302: cmp #$45
3303: beq L9769
3304: cmp #$44
3305: beq L9759
3306: L9788: lda ARYTAB
3307: ldy $30
3308: sta $5F
3309: sty $60
3310: lda STREND
3311: ldy $32
3312: sta $5A
3313: sty $5B
3314: clc
3315: adc #$07
3316: bcc L979E
3317: iny
3318: L979E: sta $58
3319: sty $59
3320: jsr L88C0
3321: lda $58
3322: ldy $59
3323: iny
3324: sta ARYTAB
3325: sty $30
3326: sta $58
3327: sty $59
3328: L97B2: lda $58
3329: ldx $59
3330: L97B6: cpx $32
3331: bne L97C0
3332: cmp STREND
3333: bne L97C0
3334: beq L9838
3335: L97C0: sta INDEX1
3336: stx $23
3337: ldy #$00
3338: jsr INDIN1
3339: tax
3340: iny
3341: jsr INDIN1
3342: php
3343: iny
3344: jsr INDIN1
3345: adc $58
3346: sta $58
3347: iny
3348: jsr INDIN1
3349: adc $59
3350: sta $59
3351: plp
3352: bpl L97B2
3353: txa
3354: bmi L97B2
3355: iny
3356: jsr INDIN1
3357: ldy #$00
3358: asl a
3359: adc #$05
3360: adc INDEX1
3361: sta INDEX1
3362: bcc L97F6
3363: inc $23
3364: L97F6: ldx $23
3365: cpx $59
3366: bne L9800
3367: cmp $58
3368: beq L97B6
3369: L9800: ldy #$00
3370: jsr INDIN1
3371: beq L982B
3372: sta $78
3373: iny
3374: jsr INDIN1
3375: clc
3376: adc $78
3377: sta $5A
3378: iny
3379: jsr INDIN1
3380: adc #$00
3381: sta $5B
3382: ldy #$00
3383: jsr L8189
3384: adc #$07
3385: sta ($5A),y
3386: iny
3387: jsr L8189
3388: adc #$00
3389: sta ($5A),y
3390: L982B: lda #$03
3391: clc
3392: adc INDEX1
3393: sta INDEX1
3394: bcc L97F6
3395: inc $23
3396: bne L97F6
3397: L9838: ldy #$00
3398: lda VARNAM
3399: sta ($5F),y
3400: iny
3401: lda $46
3402: sta ($5F),y
3403: lda #$00
3404: L9845: iny
3405: sta ($5F),y
3406: cpy #$06
3407: bne L9845
3408: L984C: lda $5F
3409: clc
3410: adc #$02
3411: ldy $60
3412: bcc L9856
3413: iny
3414: L9856: sta VARPNT
3415: sty $48
3416: rts
3417:
3418: L985B: lda COUNT
3419: asl a
3420: adc #$05
3421: adc $5F
3422: ldy $60
3423: bcc L9867
3424: iny
3425: L9867: sta $58
3426: sty $59
3427: rts
3428:
3429: .byte $90,$80,$00,$00,$00
3430: L9871: jsr L9886
3431: lda $64
3432: ldy $65
3433: rts
3434:
3435: L9879: jsr CHRGET
3436: jsr L932C
3437: L987F: jsr L9317
3438: lda FACSGN
3439: bmi L9893
3440: L9886: lda FACEXP
3441: cmp #$90
3442: bcc L9898
3443: lda #$6C
3444: ldy #$98
3445: jsr LA2E0
3446: L9893: bne L9898
3447: jmp L991C
3448:
3449: L9898: jmp LA327
3450:
3451: L989B: lda DIMFLG
3452: ora INTFLG
3453: pha
3454: lda VALTYP
3455: pha
3456: ldy #$00
3457: L98A5: tya
3458: pha
3459: lda $46
3460: pha
3461: lda VARNAM
3462: pha
3463: jsr L9879
3464: pla
3465: sta VARNAM
3466: pla
3467: sta $46
3468: pla
3469: tay
3470: tsx
3471: lda $0102,x
3472: pha
3473: lda $0101,x
3474: pha
3475: lda $64
3476: sta $0102,x
3477: lda $65
3478: sta $0101,x
3479: iny
3480: sty COUNT
3481: jsr CHRGOT
3482: ldy COUNT
3483: cmp #$2C
3484: beq L98A5
3485: jsr L948B
3486: pla
3487: sta VALTYP
3488: pla
3489: sta INTFLG
3490: and #$7F
3491: sta DIMFLG
3492: ldx ARYTAB
3493: lda $30
3494: L98E8: stx $5F
3495: sta $60
3496: cmp $32
3497: bne L98F4
3498: cpx STREND
3499: beq L993A
3500: L98F4: ldy #$00
3501: jsr INDLOW
3502: iny
3503: cmp VARNAM
3504: bne L9909
3505: jsr INDLOW
3506: sta $78
3507: lda $46
3508: cmp $78
3509: beq L9921
3510: L9909: iny
3511: jsr INDLOW
3512: clc
3513: adc $5F
3514: tax
3515: iny
3516: jsr INDLOW
3517: adc $60
3518: bcc L98E8
3519: L9919: ldx #$12
3520: .byte $2C
3521: L991C: ldx #$0E
3522: L991E: jmp L8683
3523:
3524: L9921: ldx #$13
3525: lda DIMFLG
3526: bne L991E
3527: jsr L985B
3528: ldy #$04
3529: jsr INDLOW
3530: sta $78
3531: lda COUNT
3532: cmp $78
3533: bne L9919
3534: jmp L99C3
3535:
3536: L993A: jsr L985B
3537: jsr L8923
3538: ldy #$00
3539: sty $72
3540: ldx #$05
3541: lda VARNAM
3542: sta ($5F),y
3543: bpl L994D
3544: dex
3545: L994D: iny
3546: lda $46
3547: sta ($5F),y
3548: bpl L9956
3549: dex
3550: dex
3551: L9956: stx FBUFPT
3552: lda COUNT
3553: iny
3554: iny
3555: iny
3556: sta ($5F),y
3557: L995F: ldx #$0B
3558: lda #$00
3559: bit DIMFLG
3560: bvc L996F
3561: pla
3562: clc
3563: adc #$01
3564: tax
3565: pla
3566: adc #$00
3567: L996F: iny
3568: sta ($5F),y
3569: iny
3570: txa
3571: sta ($5F),y
3572: jsr L9A2F
3573: stx FBUFPT
3574: sta $72
3575: ldy INDEX1
3576: dec COUNT
3577: bne L995F
3578: adc $59
3579: bcs L99EE
3580: sta $59
3581: tay
3582: txa
3583: adc $58
3584: bcc L9992
3585: iny
3586: beq L99EE
3587: L9992: jsr L8923
3588: sta STREND
3589: sty $32
3590: lda #$00
3591: inc $72
3592: ldy FBUFPT
3593: beq L99A6
3594: L99A1: dey
3595: sta ($58),y
3596: bne L99A1
3597: L99A6: dec $59
3598: dec $72
3599: bne L99A1
3600: inc $59
3601: sec
3602: lda STREND
3603: sbc $5F
3604: ldy #$02
3605: sta ($5F),y
3606: lda $32
3607: iny
3608: sbc $60
3609: sta ($5F),y
3610: lda DIMFLG
3611: bne L9A2E
3612: iny
3613: L99C3: jsr INDLOW
3614: sta COUNT
3615: lda #$00
3616: sta FBUFPT
3617: L99CC: sta $72
3618: iny
3619: pla
3620: tax
3621: sta $64
3622: jsr INDLOW
3623: sta $78
3624: pla
3625: sta $65
3626: cmp $78
3627: bcc L99F1
3628: bne L99EB
3629: iny
3630: jsr INDLOW
3631: sta $78
3632: cpx $78
3633: bcc L99F2
3634: L99EB: jmp L9919
3635:
3636: L99EE: jmp L8681
3637:
3638: L99F1: iny
3639: L99F2: lda $72
3640: ora FBUFPT
3641: clc
3642: beq L9A03
3643: jsr L9A2F
3644: txa
3645: adc $64
3646: tax
3647: tya
3648: ldy INDEX1
3649: L9A03: adc $65
3650: stx FBUFPT
3651: dec COUNT
3652: bne L99CC
3653: sta $72
3654: ldx #$05
3655: lda VARNAM
3656: bpl L9A14
3657: dex
3658: L9A14: lda $46
3659: bpl L9A1A
3660: dex
3661: dex
3662: L9A1A: stx $28
3663: lda #$00
3664: jsr L9A3A
3665: txa
3666: adc $58
3667: sta VARPNT
3668: tya
3669: adc $59
3670: sta $48
3671: tay
3672: lda VARPNT
3673: L9A2E: rts
3674:
3675: L9A2F: sty INDEX1
3676: jsr INDLOW
3677: sta $28
3678: dey
3679: jsr INDLOW
3680: L9A3A: sta $29
3681: lda #$10
3682: sta $5D
3683: ldx #$00
3684: ldy #$00
3685: L9A44: txa
3686: asl a
3687: tax
3688: tya
3689: rol a
3690: tay
3691: bcs L99EE
3692: asl FBUFPT
3693: rol $72
3694: bcc L9A5D
3695: clc
3696: txa
3697: adc $28
3698: tax
3699: tya
3700: adc $29
3701: tay
3702: bcs L99EE
3703: L9A5D: dec $5D
3704: bne L9A44
3705: rts
3706:
3707: L9A62: lda VALTYP
3708: beq L9A69
3709: jsr L9C4E
3710: L9A69: jsr LA954
3711: sec
3712: lda FRETOP
3713: sbc STREND
3714: tay
3715: lda $34
3716: sbc $32
3717: L9A76: jsr L9A92
3718: sec
3719: jmp LA2CE
3720:
3721: L9A7D: sec
3722: jsr kPLOT
3723: L9A81: lda #$00
3724: jmp L9471
3725:
3726: L9A86: bit RUNMOD
3727: bmi L9A2E
3728: ldx #$15
3729: .byte $2C
3730: L9A8D: ldx #$1B
3731: jmp L8683
3732:
3733: L9A92: ldx #$00
3734: stx VALTYP
3735: sta FACH0
3736: sty $63
3737: ldx #$90
3738: rts
3739:
3740: L9A9D: jsr L9ACB
3741: jsr L9A86
3742: jsr L948E
3743: lda #$80
3744: sta SUBFLG
3745: jsr L96A5
3746: jsr L9317
3747: jsr L948B
3748: lda #$B2
3749: jsr L9493
3750: pha
3751: lda $48
3752: pha
3753: lda VARPNT
3754: pha
3755: lda $3C
3756: pha
3757: lda TXTPTR
3758: pha
3759: jsr L8DB0
3760: jmp L9B3E
3761:
3762: L9ACB: lda #$A5
3763: jsr L9493
3764: ora #$80
3765: sta SUBFLG
3766: jsr L96AC
3767: sta DEFPNT
3768: sty $4F
3769: jmp L9317
3770:
3771: L9ADE: jsr L9ACB
3772: lda $4F
3773: pha
3774: lda DEFPNT
3775: pha
3776: jsr L9485
3777: jsr L9317
3778: pla
3779: sta DEFPNT
3780: pla
3781: sta $4F
3782: ldy #$02
3783: jsr L8159
3784: sta VARPNT
3785: tax
3786: iny
3787: jsr L8159
3788: beq L9A8D
3789: sta $48
3790: iny
3791: L9B04: jsr L8161
3792: pha
3793: dey
3794: bpl L9B04
3795: ldy $48
3796: jsr LA259
3797: lda $3C
3798: pha
3799: lda TXTPTR
3800: pha
3801: jsr L8159
3802: sta TXTPTR
3803: iny
3804: jsr L8159
3805: sta $3C
3806: lda $48
3807: pha
3808: lda VARPNT
3809: pha
3810: jsr L9314
3811: pla
3812: sta DEFPNT
3813: pla
3814: sta $4F
3815: jsr CHRGOT
3816: beq L9B38
3817: jmp L94A1
3818:
3819: L9B38: pla
3820: sta TXTPTR
3821: pla
3822: sta $3C
3823: L9B3E: ldy #$00
3824: pla
3825: sta (DEFPNT),y
3826: pla
3827: iny
3828: sta (DEFPNT),y
3829: pla
3830: iny
3831: sta (DEFPNT),y
3832: pla
3833: iny
3834: sta (DEFPNT),y
3835: pla
3836: iny
3837: sta (DEFPNT),y
3838: rts
3839:
3840: L9B54: ldx $64
3841: ldy $65
3842: stx DSCPNT
3843: sty $51
3844: L9B5C: jsr LA906
3845: stx FACH0
3846: sty $63
3847: sta FACEXP
3848: rts
3849:
3850: L9B66: jsr L9317
3851: ldy #$00
3852: jsr LA471
3853: pla
3854: pla
3855: L9B70: lda #$FF
3856: ldy #$00
3857: L9B74: ldx #$22
3858: stx CHARAC
3859: stx ENDCHR
3860: L9B7A: sta ARISGN
3861: sty FACOV
3862: sta FACH0
3863: sty $63
3864: ldy #$FF
3865: L9B84: iny
3866: jsr INDST1
3867: beq L9B96
3868: cmp CHARAC
3869: beq L9B92
3870: cmp ENDCHR
3871: bne L9B84
3872: L9B92: cmp #$22
3873: beq L9B97
3874: L9B96: clc
3875: L9B97: sty FACEXP
3876: tya
3877: adc ARISGN
3878: sta FBUFPT
3879: ldx FACOV
3880: bcc L9BA3
3881: inx
3882: L9BA3: stx $72
3883: tya
3884: jsr L9B54
3885: ldx ARISGN
3886: ldy FACOV
3887: jsr L9C2C
3888: L9BB0: ldx TEMPPT
3889: cpx #$22
3890: bne L9BBB
3891: ldx #$19
3892: jmp L8683
3893:
3894: L9BBB: lda FACEXP
3895: sta PDIR,x
3896: lda FACH0
3897: sta PORT,x
3898: lda $63
3899: sta SRCHTK,x
3900: ldy #$00
3901: stx $64
3902: sty $65
3903: sty FACOV
3904: dey
3905: sty VALTYP
3906: stx LASTPT
3907: inx
3908: inx
3909: inx
3910: stx TEMPPT
3911: rts
3912:
3913: L9BDA: lda $65
3914: pha
3915: lda $64
3916: pha
3917: jsr L9414
3918: jsr L931A
3919: pla
3920: sta ARISGN
3921: pla
3922: sta FACOV
3923: ldy #$00
3924: jsr INDST1
3925: sta $78
3926: jsr INDFMO
3927: clc
3928: adc $78
3929: bcc L9BFE
3930: jmp LCC4C
3931:
3932: L9BFE: jsr L9B54
3933: jsr L9C1B
3934: lda DSCPNT
3935: ldy $51
3936: jsr L9C52
3937: jsr L9C30
3938: lda ARISGN
3939: ldy FACOV
3940: jsr L9C52
3941: jsr L9BB0
3942: jmp L9346
3943:
3944: L9C1B: ldy #$00
3945: jsr INDST1
3946: pha
3947: iny
3948: jsr INDST1
3949: tax
3950: iny
3951: jsr INDST1
3952: tay
3953: pla
3954: L9C2C: stx INDEX1
3955: sty $23
3956: L9C30: tay
3957: beq L9C3E
3958: pha
3959: L9C34: dey
3960: jsr INDIN1
3961: sta (FRESPC),y
3962: tya
3963: bne L9C34
3964: pla
3965: L9C3E: clc
3966: adc FRESPC
3967: sta FRESPC
3968: bcc L9C47
3969: inc $36
3970: L9C47: rts
3971:
3972: L9C48: jsr L932C
3973: L9C4B: jsr L931A
3974: L9C4E: lda $64
3975: ldy $65
3976: L9C52: sta INDEX1
3977: sty $23
3978: jsr L9CAA
3979: bne L9C94
3980: jsr L8F9C
3981: bcc L9C94
3982: dey
3983: lda #$FF
3984: sta (INDEX1),y
3985: dey
3986: txa
3987: sta (INDEX1),y
3988: pha
3989: eor #$FF
3990: sec
3991: adc INDEX1
3992: ldy $23
3993: bcs L9C74
3994: dey
3995: L9C74: sta INDEX1
3996: sty $23
3997: tax
3998: pla
3999: cpy $34
4000: bne L9CBA
4001: cpx FRETOP
4002: bne L9CBA
4003: pha
4004: sec
4005: adc FRETOP
4006: sta FRETOP
4007: bcc L9C8C
4008: inc $34
4009: L9C8C: inc FRETOP
4010: bne L9C92
4011: inc $34
4012: L9C92: pla
4013: rts
4014:
4015: L9C94: ldy #$00
4016: jsr INDIN1
4017: pha
4018: iny
4019: jsr INDIN1
4020: tax
4021: iny
4022: jsr INDIN1
4023: tay
4024: stx INDEX1
4025: sty $23
4026: pla
4027: rts
4028:
4029: L9CAA: cpy $18
4030: bne L9CBA
4031: cmp LASTPT
4032: bne L9CBA
4033: sta TEMPPT
4034: sbc #$03
4035: sta LASTPT
4036: ldy #$00
4037: L9CBA: rts
4038:
4039: L9CBB: jsr L9D87
4040: txa
4041: pha
4042: lda #$01
4043: jsr L9B5C
4044: pla
4045: ldy #$00
4046: sta (FACH0),y
4047: L9CCA: pla
4048: pla
4049: jmp L9BB0
4050:
4051: L9CCF: jsr L9D46
4052: pha
4053: jsr L8181
4054: sta $78
4055: pla
4056: cmp $78
4057: tya
4058: L9CDC: bcc L9CE3
4059: jsr L8181
4060: tax
4061: tya
4062: L9CE3: pha
4063: L9CE4: txa
4064: L9CE5: pha
4065: jsr L9B5C
4066: lda DSCPNT
4067: ldy $51
4068: jsr L9C52
4069: pla
4070: tay
4071: pla
4072: clc
4073: adc INDEX1
4074: sta INDEX1
4075: bcc L9CFC
4076: inc $23
4077: L9CFC: tya
4078: jsr L9C30
4079: jmp L9BB0
4080:
4081: L9D03: jsr L9D46
4082: pha
4083: jsr L8181
4084: sta $78
4085: pla
4086: clc
4087: sbc $78
4088: eor #$FF
4089: jmp L9CDC
4090:
4091: L9D15: lda #$FF
4092: sta $65
4093: jsr CHRGOT
4094: cmp #$29
4095: beq L9D26
4096: jsr L9491
4097: jsr L9D84
4098: L9D26: jsr L9D46
4099: beq L9D7E
4100: dex
4101: txa
4102: pha
4103: ldx #$00
4104: pha
4105: jsr L8181
4106: sta $78
4107: pla
4108: clc
4109: sbc $78
4110: bcs L9CE4
4111: eor #$FF
4112: cmp $65
4113: bcc L9CE5
4114: lda $65
4115: bcs L9CE5
4116: L9D46: jsr L948B
4117: pla
4118: tay
4119: pla
4120: sta $55
4121: pla
4122: pla
4123: pla
4124: tax
4125: pla
4126: sta DSCPNT
4127: pla
4128: sta $51
4129: lda $55
4130: pha
4131: tya
4132: pha
4133: ldy #$00
4134: txa
4135: rts
4136:
4137: L9D61: jsr L9D67
4138: jmp L9A81
4139:
4140: L9D67: jsr L9C4B
4141: ldx #$00
4142: stx VALTYP
4143: tay
4144: rts
4145:
4146: L9D70: jsr L9D67
4147: beq L9D7B
4148: ldy #$00
4149: jsr INDIN1
4150: tay
4151: L9D7B: jmp L9A81
4152:
4153: L9D7E: jmp L991C
4154:
4155: L9D81: jsr CHRGET
4156: L9D84: jsr L9314
4157: L9D87: jsr L987F
4158: ldx $64
4159: bne L9D7E
4160: ldx $65
4161: jmp CHRGOT
4162:
4163: L9D93: jsr L9D67
4164: beq L9DCF
4165: ldx TXTPTR
4166: ldy $3C
4167: stx FBUFPT
4168: sty $72
4169: ldx INDEX1
4170: stx TXTPTR
4171: clc
4172: adc INDEX1
4173: sta INDEX2
4174: ldx $23
4175: stx $3C
4176: bcc L9DB0
4177: inx
4178: L9DB0: stx $25
4179: ldy #$00
4180: jsr INDIN2
4181: pha
4182: tya
4183: sta (INDEX2),y
4184: jsr CHRGOT
4185: jsr LA37F
4186: pla
4187: ldy #$00
4188: sta (INDEX2),y
4189: L9DC6: ldx FBUFPT
4190: ldy $72
4191: stx TXTPTR
4192: sty $3C
4193: rts
4194:
4195: L9DCF: jmp L9F2B
4196:
4197: L9DD2: jsr L9314
4198: jsr L9DE4
4199: L9DD8: jsr L9491
4200: jmp L9D84
4201:
4202: L9DDE: jsr L9491
4203: L9DE1: jsr L9314
4204: L9DE4: lda FACSGN
4205: bmi L9D7E
4206: L9DE8: lda FACEXP
4207: cmp #$91
4208: bcs L9D7E
4209: jsr LA327
4210: lda $64
4211: ldy $65
4212: sty LINNUM
4213: sta $15
4214: rts
4215:
4216: L9DFA: lda $15
4217: pha
4218: lda LINNUM
4219: pha
4220: jsr L9DE4
4221: ldy #$00
4222: jsr L815D
4223: tay
4224: pla
4225: sta LINNUM
4226: pla
4227: sta $15
4228: jmp L9A81
4229:
4230: L9E12: jsr L9DD2
4231: txa
4232: ldy #$00
4233: sta (LINNUM),y
4234: rts
4235:
4236: L9E1B: jsr L9D67
4237: sta INDEX2
4238: ldy #$00
4239: sty $25
4240: sty FBUFPT
4241: sty $72
4242: L9E28: cpy INDEX2
4243: beq L9E60
4244: jsr INDIN1
4245: iny
4246: cmp #$20
4247: beq L9E28
4248: inc $25
4249: ldx $25
4250: cpx #$05
4251: beq L9E67
4252: cmp #$30
4253: bcc L9E67
4254: cmp #$3A
4255: bcc L9E4E
4256: cmp #$41
4257: bcc L9E67
4258: cmp #$47
4259: bcs L9E67
4260: sbc #$07
4261: L9E4E: sbc #$2F
4262: asl a
4263: asl a
4264: asl a
4265: asl a
4266: ldx #$04
4267: L9E56: asl a
4268: rol FBUFPT
4269: rol $72
4270: dex
4271: bne L9E56
4272: beq L9E28
4273: L9E60: ldy FBUFPT
4274: lda $72
4275: jmp L9A76
4276:
4277: L9E67: jmp L991C
4278:
4279: L9E6A: jsr L9DD2
4280: stx FORPNT
4281: ldx #$00
4282: jsr CHRGOT
4283: beq L9E79
4284: jsr L9DD8
4285: L9E79: stx $4A
4286: ldy #$00
4287: L9E7D: jsr L815D
4288: eor $4A
4289: and FORPNT
4290: beq L9E7D
4291: L9E86: rts
4292:
4293: L9E87: lda FACSGN
4294: eor #$FF
4295: sta FACSGN
4296: eor ARGSGN
4297: sta ARISGN
4298: lda FACEXP
4299: jmp L9E9E
4300:
4301: L9E96: jsr L9FCD
4302: bcc L9ED7
4303: L9E9B: jsr LA107
4304: L9E9E: bne L9EA3
4305: jmp LA281
4306:
4307: L9EA3: ldx FACOV
4308: stx $56
4309: ldx #$69
4310: lda ARGEXP
4311: L9EAB: tay
4312: beq L9E86
4313: sec
4314: sbc FACEXP
4315: beq L9ED7
4316: bcc L9EC7
4317: sty FACEXP
4318: ldy ARGSGN
4319: sty FACSGN
4320: eor #$FF
4321: adc #$00
4322: ldy #$00
4323: sty $56
4324: ldx #$61
4325: bne L9ECB
4326: L9EC7: ldy #$00
4327: sty FACOV
4328: L9ECB: cmp #$F9
4329: bmi L9E96
4330: tay
4331: lda FACOV
4332: lsr PORT,x
4333: jsr L9FE4
4334: L9ED7: bit ARISGN
4335: bpl L9F32
4336: ldy #$61
4337: cpx #$69
4338: beq L9EE3
4339: ldy #$69
4340: L9EE3: sec
4341: eor #$FF
4342: adc $56
4343: sta FACOV
4344: lda $04,y
4345: sbc $04,x
4346: sta $65
4347: lda ZPVEC1,y
4348: sbc ZPVEC1,x
4349: sta $64
4350: lda SRCHTK,y
4351: sbc SRCHTK,x
4352: sta $63
4353: lda PORT,y
4354: sbc PORT,x
4355: sta FACH0
4356: L9F06: bcs L9F0B
4357: jsr L9F7B
4358: L9F0B: ldy #$00
4359: tya
4360: clc
4361: L9F0F: ldx FACH0
4362: bne L9F5D
4363: ldx $63
4364: stx FACH0
4365: ldx $64
4366: stx $63
4367: ldx $65
4368: stx $64
4369: ldx FACOV
4370: stx $65
4371: sty FACOV
4372: adc #$08
4373: cmp #$20
4374: bne L9F0F
4375: L9F2B: lda #$00
4376: L9F2D: sta FACEXP
4377: L9F2F: sta FACSGN
4378: rts
4379:
4380: L9F32: adc $56
4381: sta FACOV
4382: lda $65
4383: adc $6D
4384: sta $65
4385: lda $64
4386: adc $6C
4387: sta $64
4388: lda $63
4389: adc $6B
4390: sta $63
4391: lda FACH0
4392: adc ARGH0
4393: sta FACH0
4394: jmp L9F6A
4395:
4396: L9F51: adc #$01
4397: asl FACOV
4398: rol $65
4399: rol $64
4400: rol $63
4401: rol FACH0
4402: L9F5D: bpl L9F51
4403: sec
4404: sbc FACEXP
4405: bcs L9F2B
4406: eor #$FF
4407: adc #$01
4408: sta FACEXP
4409: L9F6A: bcc L9F7A
4410: L9F6C: inc FACEXP
4411: beq L9FB2
4412: ror FACH0
4413: ror $63
4414: ror $64
4415: ror $65
4416: ror FACOV
4417: L9F7A: rts
4418:
4419: L9F7B: lda FACSGN
4420: eor #$FF
4421: sta FACSGN
4422: L9F81: lda FACH0
4423: eor #$FF
4424: sta FACH0
4425: lda $63
4426: eor #$FF
4427: sta $63
4428: lda $64
4429: eor #$FF
4430: sta $64
4431: lda $65
4432: eor #$FF
4433: sta $65
4434: lda FACOV
4435: eor #$FF
4436: sta FACOV
4437: inc FACOV
4438: bne L9FB1
4439: L9FA3: inc $65
4440: bne L9FB1
4441: inc $64
4442: bne L9FB1
4443: inc $63
4444: bne L9FB1
4445: inc FACH0
4446: L9FB1: rts
4447:
4448: L9FB2: ldx #$0F
4449: jmp L8683
4450:
4451: L9FB7: ldx #$25
4452: L9FB9: ldy $04,x
4453: sty FACOV
4454: ldy ZPVEC1,x
4455: sty $04,x
4456: ldy SRCHTK,x
4457: sty ZPVEC1,x
4458: ldy PORT,x
4459: sty SRCHTK,x
4460: ldy BITS
4461: sty PORT,x
4462: L9FCD: adc #$08
4463: bmi L9FB9
4464: beq L9FB9
4465: sbc #$08
4466: tay
4467: lda FACOV
4468: bcs L9FEE
4469: L9FDA: asl PORT,x
4470: bcc L9FE0
4471: inc PORT,x
4472: L9FE0: ror PORT,x
4473: ror PORT,x
4474: L9FE4: ror SRCHTK,x
4475: ror ZPVEC1,x
4476: ror $04,x
4477: ror a
4478: iny
4479: bne L9FDA
4480: L9FEE: clc
4481: rts
4482:
4483: L9FF0: .byte $81,$00,$00,$00,$00
4484: L9FF5: .byte $03
4485: L9FF6: .byte $7F,$5E,$56,$CB,$79
4486: L9FFB: .byte $80,$13,$9B,$0B,$64
4487: LA000: .byte $80,$76,$38,$93,$16
4488: LA005: .byte $82,$38,$AA,$3B,$20
4489: LA00A: .byte $80,$35,$04,$F3,$34
4490: LA00F: .byte $81,$35,$04,$F3,$34
4491: LA014: .byte $80,$80,$00,$00,$00
4492: LA019: .byte $80,$31,$72,$17,$F8
4493: LA01E: jsr LA2B0
4494: beq LA025
4495: bpl LA028
4496: LA025: jmp L991C
4497:
4498: LA028: lda FACEXP
4499: sbc #$7F
4500: pha
4501: lda #$80
4502: sta FACEXP
4503: lda #$0A
4504: ldy #$A0
4505: jsr LA066
4506: lda #$0F
4507: ldy #$A0
4508: jsr LA072
4509: lda #$F0
4510: ldy #$9F
4511: jsr LA06C
4512: lda #$F5
4513: ldy #$9F
4514: jsr LA6B3
4515: lda #$14
4516: ldy #$A0
4517: jsr LA066
4518: pla
4519: jsr LA40A
4520: lda #$19
4521: ldy #$A0
4522: LA05C: jsr LA0DC
4523: jmp LA07B
4524:
4525: LA062: lda #$A3
4526: ldy #$A5
4527: LA066: jsr LA0DC
4528: jmp L9E9E
4529:
4530: LA06C: jsr LA0DC
4531: jmp L9E87
4532:
4533: LA072: jsr LA0DC
4534: jmp LA197
4535:
4536: LA078: jsr LA107
4537: LA07B: bne LA080
4538: jmp LA0DB
4539:
4540: LA080: jsr LA137
4541: lda #$00
4542: sta RESH0
4543: sta $27
4544: sta $28
4545: sta $29
4546: lda FACOV
4547: jsr LA0A9
4548: lda $65
4549: jsr LA0A9
4550: lda $64
4551: jsr LA0A9
4552: lda $63
4553: jsr LA0A9
4554: lda FACH0
4555: jsr LA0AE
4556: jmp LA20C
4557:
4558: LA0A9: bne LA0AE
4559: jmp L9FB7
4560:
4561: LA0AE: lsr a
4562: ora #$80
4563: LA0B1: tay
4564: bcc LA0CD
4565: clc
4566: lda $29
4567: adc $6D
4568: sta $29
4569: lda $28
4570: adc $6C
4571: sta $28
4572: lda $27
4573: adc $6B
4574: sta $27
4575: lda RESH0
4576: adc ARGH0
4577: sta RESH0
4578: LA0CD: ror RESH0
4579: ror $27
4580: ror $28
4581: ror $29
4582: ror FACOV
4583: tya
4584: lsr a
4585: bne LA0B1
4586: LA0DB: rts
4587:
4588: LA0DC: sta INDEX1
4589: sty $23
4590: ldy #$04
4591: lda (INDEX1),y
4592: sta $6D
4593: dey
4594: lda (INDEX1),y
4595: sta $6C
4596: dey
4597: lda (INDEX1),y
4598: sta $6B
4599: dey
4600: lda (INDEX1),y
4601: sta ARGSGN
4602: eor FACSGN
4603: sta ARISGN
4604: lda ARGSGN
4605: ora #$80
4606: sta ARGH0
4607: dey
4608: lda (INDEX1),y
4609: sta ARGEXP
4610: lda FACEXP
4611: rts
4612:
4613: LA107: sta INDEX1
4614: sty $23
4615: ldy #$04
4616: jsr INDIN1
4617: sta $6D
4618: dey
4619: jsr INDIN1
4620: sta $6C
4621: dey
4622: jsr INDIN1
4623: sta $6B
4624: dey
4625: jsr INDIN1
4626: sta ARGSGN
4627: eor FACSGN
4628: sta ARISGN
4629: lda ARGSGN
4630: ora #$80
4631: sta ARGH0
4632: dey
4633: jsr INDIN1
4634: sta ARGEXP
4635: lda FACEXP
4636: rts
4637:
4638: LA137: lda ARGEXP
4639: LA139: beq LA15A
4640: clc
4641: adc FACEXP
4642: bcc LA144
4643: bmi LA15F
4644: clc
4645: .byte $2C
4646: LA144: bpl LA15A
4647: adc #$80
4648: sta FACEXP
4649: bne LA14F
4650: jmp L9F2F
4651:
4652: LA14F: lda ARISGN
4653: sta FACSGN
4654: rts
4655:
4656: LA154: lda FACSGN
4657: eor #$FF
4658: bmi LA15F
4659: LA15A: pla
4660: pla
4661: jmp L9F2B
4662:
4663: LA15F: jmp L9FB2
4664:
4665: LA162: jsr LA291
4666: tax
4667: beq LA178
4668: clc
4669: adc #$02
4670: bcs LA15F
4671: LA16D: ldx #$00
4672: stx ARISGN
4673: jsr L9EAB
4674: inc FACEXP
4675: beq LA15F
4676: LA178: rts
4677:
4678: .byte $84,$20,$00,$00,$00
4679: LA17E: ldx #$14
4680: jmp L8683
4681:
4682: LA183: jsr LA291
4683: lda #$79
4684: ldy #$A1
4685: ldx #$00
4686: LA18C: stx ARISGN
4687: jsr LA221
4688: jmp LA197
4689:
4690: LA194: jsr LA107
4691: LA197: beq LA17E
4692: jsr LA2A0
4693: lda #$00
4694: sec
4695: sbc FACEXP
4696: sta FACEXP
4697: jsr LA137
4698: inc FACEXP
4699: beq LA15F
4700: ldx #$FC
4701: lda #$01
4702: LA1AE: ldy ARGH0
4703: cpy FACH0
4704: bne LA1C4
4705: ldy $6B
4706: cpy $63
4707: bne LA1C4
4708: ldy $6C
4709: cpy $64
4710: bne LA1C4
4711: ldy $6D
4712: cpy $65
4713: LA1C4: php
4714: rol a
4715: bcc LA1D1
4716: inx
4717: sta $29,x
4718: beq LA1FF
4719: bpl LA203
4720: lda #$01
4721: LA1D1: plp
4722: bcs LA1E2
4723: LA1D4: asl $6D
4724: rol $6C
4725: rol $6B
4726: rol ARGH0
4727: bcs LA1C4
4728: bmi LA1AE
4729: bpl LA1C4
4730: LA1E2: tay
4731: lda $6D
4732: sbc $65
4733: sta $6D
4734: lda $6C
4735: sbc $64
4736: sta $6C
4737: lda $6B
4738: sbc $63
4739: sta $6B
4740: lda ARGH0
4741: sbc FACH0
4742: sta ARGH0
4743: tya
4744: jmp LA1D4
4745:
4746: LA1FF: lda #$40
4747: bne LA1D1
4748: LA203: asl a
4749: asl a
4750: asl a
4751: asl a
4752: asl a
4753: asl a
4754: sta FACOV
4755: plp
4756: LA20C: lda RESH0
4757: sta FACH0
4758: lda $27
4759: sta $63
4760: lda $28
4761: sta $64
4762: lda $29
4763: sta $65
4764: jmp L9F0B
4765:
4766: LA21F: clc
4767: .byte $24
4768: LA221: sec
4769: sta INDEX1
4770: sty $23
4771: ldy #$04
4772: jsr LA320
4773: sta $65
4774: dey
4775: jsr LA320
4776: sta $64
4777: dey
4778: jsr LA320
4779: sta $63
4780: dey
4781: jsr LA320
4782: sta FACSGN
4783: ora #$80
4784: sta FACH0
4785: dey
4786: jsr LA320
4787: sta FACEXP
4788: sty FACOV
4789: rts
4790:
4791: LA24C: ldx #$5C
4792: .byte $2C
4793: LA24F: ldx #$57
4794: ldy #$00
4795: beq LA259
4796: LA255: ldx FORPNT
4797: ldy $4A
4798: LA259: jsr LA2A0
4799: stx INDEX1
4800: sty $23
4801: ldy #$04
4802: lda $65
4803: sta (INDEX1),y
4804: dey
4805: lda $64
4806: sta (INDEX1),y
4807: dey
4808: lda $63
4809: sta (INDEX1),y
4810: dey
4811: lda FACSGN
4812: ora #$7F
4813: and FACH0
4814: sta (INDEX1),y
4815: dey
4816: lda FACEXP
4817: sta (INDEX1),y
4818: sty FACOV
4819: rts
4820:
4821: LA281: lda ARGSGN
4822: LA283: sta FACSGN
4823: ldx #$05
4824: LA287: lda BITS,x
4825: sta $60,x
4826: dex
4827: bne LA287
4828: stx FACOV
4829: rts
4830:
4831: LA291: jsr LA2A0
4832: LA294: ldx #$06
4833: LA296: lda $60,x
4834: sta BITS,x
4835: dex
4836: bne LA296
4837: stx FACOV
4838: LA29F: rts
4839:
4840: LA2A0: lda FACEXP
4841: beq LA29F
4842: asl FACOV
4843: bcc LA29F
4844: LA2A8: jsr L9FA3
4845: bne LA29F
4846: jmp L9F6C
4847:
4848: LA2B0: lda FACEXP
4849: beq LA2BD
4850: LA2B4: lda FACSGN
4851: LA2B6: rol a
4852: lda #$FF
4853: bcs LA2BD
4854: lda #$01
4855: LA2BD: rts
4856:
4857: LA2BE: jsr LA2B0
4858: LA2C1: sta FACH0
4859: lda #$00
4860: sta $63
4861: ldx #$88
4862: LA2C9: lda FACH0
4863: eor #$FF
4864: rol a
4865: LA2CE: lda #$00
4866: sta $65
4867: sta $64
4868: LA2D4: stx FACEXP
4869: sta FACOV
4870: sta FACSGN
4871: jmp L9F06
4872:
4873: LA2DD: lsr FACSGN
4874: rts
4875:
4876: LA2E0: sta INDEX2
4877: sty $25
4878: ldy #$00
4879: lda (INDEX2),y
4880: iny
4881: tax
4882: beq LA2B0
4883: lda (INDEX2),y
4884: eor FACSGN
4885: bmi LA2B4
4886: cpx FACEXP
4887: bne LA317
4888: lda (INDEX2),y
4889: ora #$80
4890: cmp FACH0
4891: bne LA317
4892: iny
4893: lda (INDEX2),y
4894: cmp $63
4895: bne LA317
4896: iny
4897: lda (INDEX2),y
4898: cmp $64
4899: bne LA317
4900: iny
4901: lda #$7F
4902: cmp FACOV
4903: lda (INDEX2),y
4904: sbc $65
4905: beq LA346
4906: LA317: lda FACSGN
4907: bcc LA31D
4908: eor #$FF
4909: LA31D: jmp LA2B6
4910:
4911: LA320: lda (INDEX1),y
4912: bcs LA346
4913: jmp INDIN1
4914:
4915: LA327: lda FACEXP
4916: beq LA375
4917: sec
4918: sbc #$A0
4919: bit FACSGN
4920: bpl LA33B
4921: tax
4922: lda #$FF
4923: sta BITS
4924: jsr L9F81
4925: txa
4926: LA33B: ldx #$61
4927: cmp #$F9
4928: bpl LA347
4929: jsr L9FCD
4930: sty BITS
4931: LA346: rts
4932:
4933: LA347: tay
4934: lda FACSGN
4935: and #$80
4936: lsr FACH0
4937: ora FACH0
4938: sta FACH0
4939: jsr L9FE4
4940: sty BITS
4941: rts
4942:
4943: LA358: lda FACEXP
4944: cmp #$A0
4945: bcs LA37E
4946: jsr LA327
4947: sty FACOV
4948: lda FACSGN
4949: sty FACSGN
4950: eor #$80
4951: rol a
4952: lda #$A0
4953: sta FACEXP
4954: lda $65
4955: sta CHARAC
4956: jmp L9F06
4957:
4958: LA375: sta FACH0
4959: sta $63
4960: sta $64
4961: sta $65
4962: tay
4963: LA37E: rts
4964:
4965: LA37F: ldy #$00
4966: ldx #$0A
4967: LA383: sty $5D,x
4968: dex
4969: bpl LA383
4970: bcc LA399
4971: cmp #$2D
4972: bne LA392
4973: stx SGNFLG
4974: beq LA396
4975: LA392: cmp #$2B
4976: bne LA39B
4977: LA396: jsr CHRGET
4978: LA399: bcc LA3F6
4979: LA39B: cmp #$2E
4980: beq LA3CD
4981: cmp #$45
4982: bne LA3D3
4983: jsr CHRGET
4984: bcc LA3BF
4985: cmp #$AB
4986: beq LA3BA
4987: cmp #$2D
4988: beq LA3BA
4989: cmp #$AA
4990: beq LA3BC
4991: cmp #$2B
4992: beq LA3BC
4993: bne LA3C1
4994: LA3BA: ror $60
4995: LA3BC: jsr CHRGET
4996: LA3BF: bcc LA41D
4997: LA3C1: bit $60
4998: bpl LA3D3
4999: lda #$00
5000: sec
5001: sbc $5E
5002: jmp LA3D5
5003:
5004: LA3CD: ror $5F
5005: bit $5F
5006: bvc LA396
5007: LA3D3: lda $5E
5008: LA3D5: sec
5009: sbc $5D
5010: sta $5E
5011: beq LA3EE
5012: bpl LA3E7
5013: LA3DE: jsr LA183
5014: inc $5E
5015: bne LA3DE
5016: beq LA3EE
5017: LA3E7: jsr LA162
5018: dec $5E
5019: bne LA3E7
5020: LA3EE: lda SGNFLG
5021: bmi LA3F3
5022: rts
5023:
5024: LA3F3: jmp LA627
5025:
5026: LA3F6: pha
5027: bit $5F
5028: bpl LA3FD
5029: inc $5D
5030: LA3FD: jsr LA162
5031: pla
5032: sec
5033: sbc #$30
5034: jsr LA40A
5035: jmp LA396
5036:
5037: LA40A: pha
5038: jsr LA291
5039: pla
5040: jsr LA2C1
5041: lda ARGSGN
5042: eor FACSGN
5043: sta ARISGN
5044: ldx FACEXP
5045: jmp L9E9E
5046:
5047: LA41D: lda $5E
5048: cmp #$0A
5049: bcc LA42C
5050: lda #$64
5051: bit $60
5052: bmi LA43F
5053: jmp L9FB2
5054:
5055: LA42C: asl a
5056: asl a
5057: clc
5058: adc $5E
5059: asl a
5060: clc
5061: ldy #$00
5062: sta $78
5063: jsr INDTXT
5064: adc $78
5065: sec
5066: sbc #$30
5067: LA43F: sta $5E
5068: jmp LA3BC
5069:
5070: LA444: .byte $9B,$3E,$BC,$1F,$FD
5071: LA449: .byte $9E,$6E,$6B,$27,$FD
5072: LA44E: .byte $9E,$6E,$6B,$28,$00
5073: LA453: jsr LFF4F
5074: .byte " IN "
5075: .byte $00
5076: LA45B: lda $3A
5077: ldx CHRLIN
5078: LA45F: sta FACH0
5079: stx $63
5080: ldx #$90
5081: sec
5082: jsr LA2CE
5083: jsr LA471
5084: jmp L9088
5085:
5086: LA46F: ldy #$01
5087: LA471: lda #$20
5088: bit FACSGN
5089: bpl LA479
5090: lda #$2D
5091: LA479: sta LOFBUF,y
5092: sta FACSGN
5093: sty FBUFPT
5094: iny
5095: lda #$30
5096: ldx FACEXP
5097: bne LA48A
5098: jmp LA596
5099:
5100: LA48A: lda #$00
5101: cpx #$80
5102: beq LA492
5103: bcs LA49B
5104: LA492: lda #$4E
5105: ldy #$A4
5106: jsr LA05C
5107: lda #$F7
5108: LA49B: sta $5D
5109: LA49D: lda #$49
5110: ldy #$A4
5111: jsr LA2E0
5112: beq LA4C4
5113: bpl LA4BA
5114: LA4A8: lda #$44
5115: ldy #$A4
5116: jsr LA2E0
5117: beq LA4B3
5118: bpl LA4C1
5119: LA4B3: jsr LA162
5120: dec $5D
5121: bne LA4A8
5122: LA4BA: jsr LA183
5123: inc $5D
5124: bne LA49D
5125: LA4C1: jsr LA062
5126: LA4C4: jsr LA327
5127: ldx #$01
5128: lda $5D
5129: clc
5130: adc #$0A
5131: bmi LA4D9
5132: cmp #$0B
5133: bcs LA4DA
5134: adc #$FF
5135: tax
5136: lda #$02
5137: LA4D9: sec
5138: LA4DA: sbc #$02
5139: sta $5E
5140: stx $5D
5141: txa
5142: beq LA4E5
5143: bpl LA4F8
5144: LA4E5: ldy FBUFPT
5145: lda #$2E
5146: iny
5147: sta LOFBUF,y
5148: txa
5149: beq LA4F6
5150: lda #$30
5151: iny
5152: sta LOFBUF,y
5153: LA4F6: sty FBUFPT
5154: LA4F8: ldy #$00
5155: LA4FA: ldx #$80
5156: LA4FC: lda $65
5157: clc
5158: adc LA5AB,y
5159: sta $65
5160: lda $64
5161: adc LA5AA,y
5162: sta $64
5163: lda $63
5164: adc LA5A9,y
5165: sta $63
5166: lda FACH0
5167: adc LA5A8,y
5168: sta FACH0
5169: inx
5170: bcs LA520
5171: bpl LA4FC
5172: bmi LA522
5173: LA520: bmi LA4FC
5174: LA522: txa
5175: bcc LA529
5176: eor #$FF
5177: adc #$0A
5178: LA529: adc #$2F
5179: iny
5180: iny
5181: iny
5182: iny
5183: sty VARPNT
5184: ldy FBUFPT
5185: iny
5186: tax
5187: and #$7F
5188: sta LOFBUF,y
5189: dec $5D
5190: bne LA544
5191: lda #$2E
5192: iny
5193: sta LOFBUF,y
5194: LA544: sty FBUFPT
5195: ldy VARPNT
5196: txa
5197: eor #$FF
5198: and #$80
5199: tax
5200: cpy #$24
5201: beq LA556
5202: cpy #$3C
5203: bne LA4FC
5204: LA556: ldy FBUFPT
5205: LA558: lda LOFBUF,y
5206: dey
5207: cmp #$30
5208: beq LA558
5209: cmp #$2E
5210: beq LA565
5211: iny
5212: LA565: lda #$2B
5213: ldx $5E
5214: beq LA599
5215: bpl LA575
5216: lda #$00
5217: sec
5218: sbc $5E
5219: tax
5220: lda #$2D
5221: LA575: sta $0101,y
5222: lda #$45
5223: sta FBUFFER,y
5224: txa
5225: ldx #$2F
5226: sec
5227: LA581: inx
5228: sbc #$0A
5229: bcs LA581
5230: adc #$3A
5231: sta $0103,y
5232: txa
5233: sta $0102,y
5234: lda #$00
5235: sta $0104,y
5236: beq LA59E
5237: LA596: sta LOFBUF,y
5238: LA599: lda #$00
5239: sta FBUFFER,y
5240: LA59E: lda #$00
5241: ldy #$01
5242: rts
5243:
5244: LA5A3: .byte $80,$00,$00,$00,$00
5245: LA5A8: .byte $FA
5246: LA5A9: .byte $0A
5247: LA5AA: .byte $1F
5248: LA5AB: .byte $00
5249: LA5AC: .byte $00,$98,$96,$80
5250: LA5B0: .byte $FF,$F0,$BD,$C0
5251: LA5B4: .byte $00,$01,$86,$A0
5252: LA5B8: .byte $FF,$FF,$D8,$F0
5253: LA5BC: .byte $00,$00,$03,$E8
5254: LA5C0: .byte $FF,$FF,$FF,$9C
5255: LA5C4: .byte $00,$00,$00,$0A
5256: LA5C8: .byte $FF,$FF,$FF,$FF
5257: LA5CC: .byte $FF,$DF,$0A,$80
5258: LA5D0: .byte $00,$03,$4B,$C0
5259: LA5D4: .byte $FF,$FF,$73,$60
5260: LA5D8: .byte $00,$00,$0E,$10
5261: LA5DC: .byte $FF,$FF,$FD,$A8
5262: LA5E0: .byte $00,$00,$00,$3C
5263: LA5E4: jsr LA291
5264: lda #$A3
5265: ldy #$A5
5266: jsr LA221
5267: LA5EE: beq LA660
5268: lda ARGEXP
5269: bne LA5F7
5270: jmp L9F2D
5271:
5272: LA5F7: ldx #$4E
5273: ldy #$00
5274: jsr LA259
5275: lda ARGSGN
5276: bpl LA611
5277: jsr LA358
5278: lda #$4E
5279: ldy #$00
5280: jsr LA2E0
5281: bne LA611
5282: tya
5283: ldy CHARAC
5284: LA611: jsr LA283
5285: tya
5286: pha
5287: jsr LA01E
5288: lda #$4E
5289: ldy #$00
5290: jsr LA078
5291: jsr LA660
5292: pla
5293: lsr a
5294: bcc LA631
5295: LA627: lda FACEXP
5296: beq LA631
5297: lda FACSGN
5298: eor #$FF
5299: sta FACSGN
5300: LA631: rts
5301:
5302: LA632: .byte $81,$38,$AA,$3B,$29
5303: LA637: .byte $07
5304: LA638: .byte $71,$34,$58,$3E,$56
5305: LA63D: .byte $74,$16,$7E,$B3,$1B
5306: LA642: .byte $77,$2F,$EE,$E3,$85
5307: LA647: .byte $7A,$1D,$84,$1C,$2A
5308: LA64C: .byte $7C,$63,$59,$58,$0A
5309: LA651: .byte $7E,$75,$FD,$E7,$C6
5310: LA656: .byte $80,$31,$72,$18,$10
5311: LA65B: .byte $81,$00,$00,$00,$00
5312: LA660: lda #$32
5313: ldy #$A6
5314: jsr LA05C
5315: lda FACOV
5316: adc #$50
5317: bcc LA670
5318: jsr LA2A8
5319: LA670: sta $56
5320: jsr LA294
5321: lda FACEXP
5322: cmp #$88
5323: bcc LA67E
5324: LA67B: jsr LA154
5325: LA67E: jsr LA358
5326: lda CHARAC
5327: clc
5328: adc #$81
5329: beq LA67B
5330: sec
5331: sbc #$01
5332: pha
5333: ldx #$05
5334: LA68E: lda ARGEXP,x
5335: ldy FACEXP,x
5336: sta FACEXP,x
5337: sty ARGEXP,x
5338: dex
5339: bpl LA68E
5340: lda $56
5341: sta FACOV
5342: jsr L9E87
5343: jsr LA627
5344: lda #$37
5345: ldy #$A6
5346: jsr LA6C9
5347: lda #$00
5348: sta ARISGN
5349: pla
5350: jsr LA139
5351: rts
5352:
5353: LA6B3: sta FBUFPT
5354: sty $72
5355: jsr LA24F
5356: lda #$57
5357: jsr LA078
5358: jsr LA6CD
5359: lda #$57
5360: ldy #$00
5361: jmp LA078
5362:
5363: LA6C9: sta FBUFPT
5364: sty $72
5365: LA6CD: jsr LA24C
5366: lda (FBUFPT),y
5367: sta SGNFLG
5368: ldy FBUFPT
5369: iny
5370: tya
5371: bne LA6DC
5372: inc $72
5373: LA6DC: sta FBUFPT
5374: ldy $72
5375: LA6E0: jsr LA05C
5376: lda FBUFPT
5377: ldy $72
5378: clc
5379: adc #$05
5380: bcc LA6ED
5381: iny
5382: LA6ED: sta FBUFPT
5383: sty $72
5384: jsr LA066
5385: lda #$5C
5386: ldy #$00
5387: dec SGNFLG
5388: bne LA6E0
5389: rts
5390:
5391: LA6FD: .byte $98,$35,$44,$7A,$00
5392: LA702: .byte $68,$28,$B1,$46,$00
5393: LA707: jsr LA2B0
5394: bmi LA73A
5395: bne LA725
5396: lda TEDT1RL
5397: sta FACH0
5398: lda TEDT1RH
5399: sta $64
5400: lda TEDT2L
5401: sta $63
5402: lda TEDT2H
5403: sta $65
5404: jmp LA74A
5405:
5406: LA725: lda #$03
5407: ldy #$05
5408: jsr LA221
5409: lda #$FD
5410: ldy #$A6
5411: jsr LA05C
5412: lda #$02
5413: ldy #$A7
5414: jsr LA066
5415: LA73A: ldx $65
5416: lda FACH0
5417: sta $65
5418: stx FACH0
5419: ldx $63
5420: lda $64
5421: sta $63
5422: stx $64
5423: LA74A: lda #$00
5424: sta FACSGN
5425: lda FACEXP
5426: sta FACOV
5427: lda #$80
5428: sta FACEXP
5429: jsr L9F0B
5430: ldx #$03
5431: ldy #$05
5432: LA75D: jmp LA259
5433:
5434: LA760: lda TOS
5435: sta FNDPNT
5436: lda $7D
5437: sta $3E
5438: rts
5439:
5440: LA769: lda FNDPNT
5441: sta TOS
5442: lda $3E
5443: sta $7D
5444: rts
5445:
5446: LA772: tya
5447: clc
5448: adc TOS
5449: sta TOS
5450: bcc LA77C
5451: inc $7D
5452: LA77C: rts
5453:
5454: LA77D: tax
5455: bne LA782
5456: ldx #$1E
5457: LA782: jmp L8683
5458:
5459: LA785: jsr kOPEN
5460: bcs LA77D
5461: rts
5462:
5463: LA78B: jsr kCHROUT
5464: bcs LA77D
5465: rts
5466:
5467: LA791: jsr kCHRIN
5468: bcs LA77D
5469: rts
5470:
5471: LA797: pha
5472: jsr kCHKOUT
5473: jsr LA8F8
5474: tax
5475: pla
5476: bcc LA7A5
5477: txa
5478: bcs LA77D
5479: LA7A5: rts
5480:
5481: LA7A6: jsr kCHKIN
5482: jsr LA8F8
5483: bcs LA77D
5484: rts
5485:
5486: LA7AF: jsr kGETIN
5487: bcs LA77D
5488: rts
5489:
5490: LA7B5: jsr L9DE1
5491: lda #$A7
5492: pha
5493: lda #$CE
5494: pha
5495: lda SPREG
5496: pha
5497: lda SAREG
5498: ldx SXREG
5499: ldy SYREG
5500: plp
5501: jmp (LINNUM)
5502:
5503: php
5504: sta SAREG
5505: stx SXREG
5506: sty SYREG
5507: pla
5508: sta SPREG
5509: rts
5510:
5511: LA7DE: jsr LA86B
5512: LA7E1: ldx VARTAB
5513: ldy $2E
5514: lda #$2B
5515: jsr kSAVE
5516: jsr LA8F8
5517: bcs LA77D
5518: rts
5519:
5520: LA7F0: lda #$01
5521: .byte $2C
5522: LA7F3: lda #$00
5523: sta VERCK
5524: jsr LA86B
5525: LA7FA: lda VERCK
5526: ldx TXTTAB
5527: ldy $2C
5528: jsr kLOAD
5529: php
5530: jsr LA8F8
5531: plp
5532: bcs LA868
5533: lda VERCK
5534: beq LA824
5535: ldx #$1C
5536: jsr kREADST
5537: and #$10
5538: bne LA82D
5539: bit RUNMOD
5540: bmi LA823
5541: jsr LFF4F
5542: .byte $0D
5543: .byte "OK"
5544: .byte $0D,$00
5545: LA823: rts
5546:
5547: LA824: jsr kREADST
5548: and #$BF
5549: beq LA830
5550: ldx #$1D
5551: LA82D: jmp L8683
5552:
5553: LA830: bit RUNMOD
5554: bmi LA844
5555: stx VARTAB
5556: sty $2E
5557: jsr L866F
5558: jsr L8818
5559: jsr L8A93
5560: jmp L870F
5561:
5562: LA844: jsr L8AF1
5563: jsr L8818
5564: jmp L8AD5
5565:
5566: LA84D: jsr LA8B0
5567: clc
5568: jsr LA785
5569: jsr LA8F8
5570: bcs LA868
5571: rts
5572:
5573: LA85A: jsr LA8B0
5574: lda FORPNT
5575: clc
5576: jsr kCLOSE
5577: jsr LA8F8
5578: bcc LA823
5579: LA868: jmp LA77D
5580:
5581: LA86B: lda #$00
5582: jsr kSETNAM
5583: ldx #$01
5584: ldy #$00
5585: jsr kSETLFS
5586: jsr LA89D
5587: jsr LA8EE
5588: jsr LA89D
5589: jsr LA897
5590: ldy #$00
5591: stx FORPNT
5592: jsr kSETLFS
5593: jsr LA89D
5594: jsr LA897
5595: txa
5596: tay
5597: ldx FORPNT
5598: jmp kSETLFS
5599:
5600: LA897: jsr LA8A5
5601: jmp L9D84
5602:
5603: LA89D: jsr CHRGOT
5604: bne LA8A4
5605: pla
5606: pla
5607: LA8A4: rts
5608:
5609: LA8A5: jsr L9491
5610: LA8A8: jsr CHRGOT
5611: bne LA8A4
5612: jmp L94A1
5613:
5614: LA8B0: lda #$00
5615: jsr kSETNAM
5616: jsr LA8A8
5617: jsr L9D84
5618: stx FORPNT
5619: txa
5620: ldx #$01
5621: ldy #$00
5622: jsr kSETLFS
5623: jsr LA89D
5624: jsr LA897
5625: stx $4A
5626: ldy #$00
5627: lda FORPNT
5628: cpx #$03
5629: bcc LA8D6
5630: dey
5631: LA8D6: jsr kSETLFS
5632: jsr LA89D
5633: jsr LA897
5634: txa
5635: tay
5636: ldx $4A
5637: lda FORPNT
5638: jsr kSETLFS
5639: jsr LA89D
5640: jsr LA8A5
5641: LA8EE: jsr L9C48
5642: ldx INDEX1
5643: ldy $23
5644: jmp kSETNAM
5645:
5646: LA8F8: php
5647: pha
5648: lda FA
5649: cmp #$04
5650: bcc LA903
5651: jsr LCD57
5652: LA903: pla
5653: plp
5654: rts
5655:
5656: LA906: lsr DORES
5657: LA908: tax
5658: beq LA943
5659: pha
5660: lda FRETOP
5661: sec
5662: sbc #$02
5663: ldy $34
5664: bcs LA916
5665: dey
5666: LA916: sta INDEX1
5667: sty $23
5668: txa
5669: eor #$FF
5670: sec
5671: adc INDEX1
5672: bcs LA923
5673: dey
5674: LA923: cpy $32
5675: bcc LA944
5676: bne LA92D
5677: cmp STREND
5678: bcc LA944
5679: LA92D: sta FRESPC
5680: sty $36
5681: ldy #$01
5682: lda #$FF
5683: sta (INDEX1),y
5684: dey
5685: pla
5686: sta (INDEX1),y
5687: ldx FRESPC
5688: ldy $36
5689: stx FRETOP
5690: sty $34
5691: LA943: rts
5692:
5693: LA944: lda DORES
5694: bmi LA951
5695: jsr LA954
5696: sec
5697: ror DORES
5698: pla
5699: bne LA908
5700: LA951: jmp L8681
5701:
5702: LA954: ldx TEMPPT
5703: LA956: cpx #$19
5704: beq LA96A
5705: jsr LAA57
5706: beq LA956
5707: txa
5708: ldy #$00
5709: sta ($5C),y
5710: tya
5711: iny
5712: sta ($5C),y
5713: bne LA956
5714: LA96A: ldy #$00
5715: sty $58
5716: ldx MEMSIZ
5717: ldy $38
5718: stx $5F
5719: stx DEFPNT
5720: stx FRESPC
5721: sty $60
5722: sty $4F
5723: sty $36
5724: txa
5725: LA97F: jsr LA9EA
5726: bne LA990
5727: LA984: dey
5728: jsr L8165
5729: jsr LAA39
5730: sec
5731: ror $58
5732: bne LA97F
5733: LA990: bit $58
5734: bpl LA9D6
5735: ldx #$00
5736: stx $58
5737: lda #$02
5738: LA99A: ldy #$01
5739: jsr L8165
5740: sta ($5F),y
5741: dey
5742: jsr L8165
5743: sta ($5F),y
5744: jsr INDIN1
5745: tax
5746: jsr LAA48
5747: sta FRESPC
5748: sty $36
5749: txa
5750: jsr LAA39
5751: txa
5752: tay
5753: LA9B8: dey
5754: jsr L8165
5755: sta ($5F),y
5756: dex
5757: bne LA9B8
5758: ldy #$02
5759: LA9C3: lda $5E,y
5760: sta (INDEX1),y
5761: dey
5762: bne LA9C3
5763: lda DEFPNT
5764: ldy $4F
5765: jsr LA9EA
5766: beq LA984
5767: bne LA99A
5768: LA9D6: ldy #$00
5769: jsr INDIN1
5770: tax
5771: jsr LAA48
5772: sta FRESPC
5773: sty $36
5774: txa
5775: jsr LAA39
5776: jmp LA97F
5777:
5778: LA9EA: cpy $34
5779: bcc LAA18
5780: bne LA9F6
5781: cmp FRETOP
5782: beq LAA18
5783: bcc LAA18
5784: LA9F6: bit $58
5785: bmi LA9FF
5786: lda #$02
5787: jsr LAA48
5788: LA9FF: lda #$02
5789: jsr LAA39
5790: ldy #$01
5791: jsr L8165
5792: cmp #$FF
5793: bne LAA0E
5794: rts
5795:
5796: LAA0E: jsr L8165
5797: sta INDEX1,y
5798: dey
5799: bpl LAA0E
5800: rts
5801:
5802: LAA18: ldx TEMPPT
5803: LAA1A: cpx #$19
5804: beq LAA2E
5805: jsr LAA57
5806: beq LAA1A
5807: ldy #$00
5808: sta ($5C),y
5809: iny
5810: lda #$FF
5811: sta ($5C),y
5812: bne LAA1A
5813: LAA2E: pla
5814: pla
5815: lda FRESPC
5816: ldy $36
5817: sta FRETOP
5818: sty $34
5819: rts
5820:
5821: LAA39: eor #$FF
5822: sec
5823: adc DEFPNT
5824: ldy $4F
5825: bcs LAA43
5826: dey
5827: LAA43: sta DEFPNT
5828: sty $4F
5829: rts
5830:
5831: LAA48: eor #$FF
5832: sec
5833: adc $5F
5834: ldy $60
5835: bcs LAA52
5836: dey
5837: LAA52: sta $5F
5838: sty $60
5839: rts
5840:
5841: LAA57: dex
5842: lda PDIR,x
5843: sta $5D
5844: dex
5845: lda PDIR,x
5846: sta $5C
5847: dex
5848: lda PDIR,x
5849: pha
5850: clc
5851: adc $5C
5852: sta $5C
5853: bcc LAA6E
5854: inc $5D
5855: LAA6E: pla
5856: rts
5857:
5858: LAA70: lda #$EC
5859: ldy #$AA
5860: jsr LA066
5861: LAA77: jsr LA291
5862: lda #$F1
5863: ldy #$AA
5864: ldx ARGSGN
5865: jsr LA18C
5866: jsr LA291
5867: jsr LA358
5868: lda #$00
5869: sta ARISGN
5870: jsr L9E87
5871: lda #$F6
5872: ldy #$AA
5873: jsr LA06C
5874: lda FACSGN
5875: pha
5876: bpl LAAA9
5877: jsr LA062
5878: lda FACSGN
5879: bmi LAAAC
5880: lda TANSGN
5881: eor #$FF
5882: sta TANSGN
5883: LAAA9: jsr LA627
5884: LAAAC: lda #$F6
5885: ldy #$AA
5886: jsr LA066
5887: pla
5888: bpl LAAB9
5889: jsr LA627
5890: LAAB9: lda #$FB
5891: ldy #$AA
5892: jmp LA6B3
5893:
5894: LAAC0: jsr LA24F
5895: lda #$00
5896: sta TANSGN
5897: jsr LAA77
5898: ldx #$4E
5899: ldy #$00
5900: jsr LA75D
5901: lda #$57
5902: ldy #$00
5903: jsr LA221
5904: lda #$00
5905: sta FACSGN
5906: lda TANSGN
5907: jsr LAAE8
5908: lda #$4E
5909: ldy #$00
5910: jmp LA194
5911:
5912: LAAE8: pha
5913: jmp LAAA9
5914:
5915: LAAEC: .byte $81,$49,$0F,$DA,$A2
5916: LAAF1: .byte $83,$49,$0F,$DA,$A2
5917: LAAF6: .byte $7F,$00,$00,$00,$00
5918: LAAFB: .byte $05
5919: LAAFC: .byte $84,$E6,$1A,$2D,$1B
5920: LAB01: .byte $86,$28,$07,$FB,$F8
5921: LAB06: .byte $87,$99,$68,$89,$01
5922: LAB0B: .byte $87,$23,$35,$DF,$E1
5923: LAB10: .byte $86,$A5,$5D,$E7,$28
5924: LAB15: .byte $83,$49,$0F,$DA,$A2
5925: LAB1A: lda FACSGN
5926: pha
5927: bpl LAB22
5928: jsr LA627
5929: LAB22: lda FACEXP
5930: pha
5931: cmp #$81
5932: bcc LAB30
5933: lda #$F0
5934: ldy #$9F
5935: jsr LA072
5936: LAB30: lda #$4A
5937: ldy #$AB
5938: jsr LA6B3
5939: pla
5940: cmp #$81
5941: bcc LAB43
5942: lda #$EC
5943: ldy #$AA
5944: jsr LA06C
5945: LAB43: pla
5946: bpl LAB49
5947: jmp LA627
5948:
5949: LAB49: rts
5950:
5951: LAB4A: .byte $0B
5952: LAB4B: .byte $76,$B3,$83,$BD,$D3
5953: LAB50: .byte $79,$1E,$F4,$A6,$F5
5954: LAB55: .byte $7B,$83,$FC,$B0,$10
5955: LAB5A: .byte $7C,$0C,$1F,$67,$CA
5956: LAB5F: .byte $7C,$DE,$53,$CB,$C1
5957: LAB64: .byte $7D,$14,$64,$70,$4C
5958: LAB69: .byte $7D,$B7,$EA,$51,$7A
5959: LAB6E: .byte $7D,$63,$30,$88,$7E
5960: LAB73: .byte $7E,$92,$44,$99,$3A
5961: LAB78: .byte $7E,$4C,$CC,$91,$C7
5962: LAB7D: .byte $7F,$AA,$AA,$AA,$13
5963: LAB82: .byte $81,$00,$00,$00
5964: LAB86: .byte $00
5965: LAB87: .byte $89,$8A,$8D,$A7,$8C,$D6,$D7,$D5
5966: LAB8F: jsr LB6DE
5967: lda #$00
5968: ldx #$0A
5969: stx ZPVEC1
5970: sta $04
5971: stx ZPVEC2
5972: sta $06
5973: sta $5A
5974: sta $5B
5975: jsr CHRGOT
5976: beq LAC0D
5977: jsr L8E3E
5978: lda ENDCHR
5979: beq LABB6
5980: lda LINNUM
5981: ldx $15
5982: sta ZPVEC1
5983: stx $04
5984: LABB6: jsr CHRGOT
5985: beq LAC0D
5986: jsr L9491
5987: jsr L8E3E
5988: lda ENDCHR
5989: beq LABD5
5990: lda LINNUM
5991: ldx $15
5992: sta ZPVEC2
5993: stx $06
5994: bne LABD5
5995: tax
5996: bne LABD5
5997: LABD2: jmp L991C
5998:
5999: LABD5: jsr CHRGOT
6000: beq LAC0D
6001: jsr L9491
6002: jsr L8E3E
6003: lda LINNUM
6004: ldx $15
6005: sta $5A
6006: stx $5B
6007: jsr L8A3D
6008: lda $5F
6009: ldx $60
6010: sta $58
6011: stx $59
6012: lda ZPVEC1
6013: ldx $04
6014: sta LINNUM
6015: stx $15
6016: jsr L8A3D
6017: lda $60
6018: sec
6019: sbc $59
6020: bcc LABD2
6021: bne LAC0D
6022: lda $5F
6023: sbc $58
6024: bcc LABD2
6025: LAC0D: jsr L8AF1
6026: LAC10: jsr LAD86
6027: jsr LAD86
6028: bne LAC55
6029: jsr LAD59
6030: LAC1B: jsr LAD86
6031: jsr LAD86
6032: bne LAC26
6033: jmp LAEB3
6034:
6035: LAC26: jsr LAD86
6036: sta LINNUM
6037: iny
6038: jsr INDTXT
6039: sec
6040: sbc $5B
6041: bcc LAC4D
6042: bne LAC3C
6043: lda LINNUM
6044: sbc $5A
6045: bcc LAC4D
6046: LAC3C: lda FACH0
6047: sta (TXTPTR),y
6048: dey
6049: lda $63
6050: sta (TXTPTR),y
6051: jsr LAD86
6052: jsr LAD73
6053: beq LAC1B
6054: LAC4D: jsr LAD86
6055: jsr LAD80
6056: beq LAC1B
6057: LAC55: jsr LAD86
6058: jsr LAD86
6059: LAC5B: jsr LAD86
6060: LAC5E: cmp #$22
6061: bne LAC6D
6062: LAC62: jsr LAD86
6063: beq LAC10
6064: cmp #$22
6065: bne LAC62
6066: beq LAC5B
6067: LAC6D: tax
6068: beq LAC10
6069: bpl LAC5B
6070: ldx #$08
6071: LAC74: cmp LAB86,x
6072: beq LAC89
6073: dex
6074: bne LAC74
6075: cmp #$CB
6076: bne LAC5B
6077: jsr CHRGET
6078: beq LAC10
6079: cmp #$A4
6080: bne LAC5B
6081: LAC89: lda TXTPTR
6082: sta OLDLIN
6083: lda $3C
6084: sta $025A
6085: jsr CHRGET
6086: bcs LAC5E
6087: jsr L8E3E
6088: jsr LACEE
6089: lda OLDLIN
6090: sta TXTPTR
6091: lda $025A
6092: sta $3C
6093: ldy #$00
6094: ldx #$00
6095: LACAC: lda $0101,x
6096: beq LACCD
6097: pha
6098: jsr CHRGET
6099: bcc LACC5
6100: .if CompileComputer >= PLUS4_BETA_0203
6101: jsr LAD42
6102: inc $6C
6103: jsr LADBB
6104: inc VARTAB
6105: bne LACC5
6106: inc $2E
6107: .else
6108: jsr LAD33
6109: .endif
6110: LACC5: pla
6111: ldy #$00
6112: sta (TXTPTR),y
6113: inx
6114: bne LACAC
6115: LACCD: jsr CHRGET
6116: bcs LACE7
6117: LACD2: jsr LAD42
6118: dec $6C
6119: jsr LADA2
6120: lda VARTAB
6121: bne LACE0
6122: dec $2E
6123: LACE0: dec VARTAB
6124: jsr CHRGOT
6125: bcc LACD2
6126: LACE7: cmp #$2C
6127: beq LAC89
6128: jmp LAC5E
6129:
6130: LACEE: jsr LAD59
6131: LACF1: jsr LAD86
6132: bne LAD03
6133: jsr LAD86
6134: bne LAD06
6135: lda #$FF
6136: sta FACH0
6137: sta $63
6138: bmi LAD2D
6139: LAD03: jsr LAD86
6140: LAD06: jsr LAD86
6141: sta $58
6142: cmp LINNUM
6143: bne LAD36
6144: jsr LAD86
6145: sta $59
6146: cmp $15
6147: bne LAD3B
6148: sec
6149: sbc $5B
6150: bcc LAD25
6151: bne LAD2D
6152: lda LINNUM
6153: sbc $5A
6154: bcs LAD2D
6155: LAD25: lda LINNUM
6156: sta $63
6157: lda $15
6158: sta FACH0
6159: LAD2D: ldx #$90
6160: sec
6161: jsr LA2CE
6162: jmp LA46F
6163:
6164: LAD36: jsr LAD86
6165: .if CompileComputer >= PLUS4_BETA_0203
6166: sta $59
6167: .endif
6168: LAD3B: jsr LAD64
6169: beq LACF1
6170: .if CompileComputer = PLUS4_BETA_0119
6171: LAD33: jsr LAD42
6172: inc $6c
6173: jsr LADBB
6174: inc VARTAB
6175: bne LAD41
6176: inc $2E
6177: LAD41: rts
6178:
6179: .elseif CompileComputer >= PLUS4_01
6180: .byte $D9,$EA
6181: .else
6182: .byte $EA,$C3
6183: .endif
6184: LAD42: lda TXTPTR
6185: sta INDEX1
6186: lda $3C
6187: sta $23
6188: lda VARTAB
6189: sta INDEX2
6190: lda $2E
6191: sta $25
6192: ldy #$00
6193: sty COUNT
6194: sty $6C
6195: rts
6196:
6197: LAD59: lda ZPVEC1
6198: sta $63
6199: lda $04
6200: sta FACH0
6201: jmp L8AF1
6202:
6203: LAD64: lda $59
6204: sec
6205: sbc $5B
6206: bcc LAD80
6207: bne LAD73
6208: lda $58
6209: sbc $5A
6210: bcc LAD80
6211: LAD73: lda $63
6212: clc
6213: adc ZPVEC2
6214: sta $63
6215: lda FACH0
6216: adc $06
6217: sta FACH0
6218: LAD80: jsr LAD86
6219: bne LAD80
6220: rts
6221:
6222: LAD86: ldy #$00
6223: inc TXTPTR
6224: bne LAD8E
6225: inc $3C
6226: LAD8E: jmp INDTXT
6227:
6228: LAD91: lda INDEX1
6229: cmp INDEX2
6230: bne LAD9B
6231: lda $23
6232: cmp $25
6233: LAD9B: rts
6234:
6235: LAD9C: inc INDEX1
6236: bne LADA2
6237: inc $23
6238: LADA2: ldy COUNT
6239: iny
6240: jsr INDIN1
6241: ldy $6C
6242: iny
6243: sta (INDEX1),y
6244: jsr LAD91
6245: bne LAD9C
6246: rts
6247:
6248: LADB3: lda INDEX2
6249: bne LADB9
6250: dec $25
6251: LADB9: dec INDEX2
6252: LADBB: ldy COUNT
6253: jsr INDIN2
6254: ldy $6C
6255: sta (INDEX2),y
6256: jsr LAD91
6257: bne LADB3
6258: rts
6259:
6260: LADCA: lda #$80
6261: sta SUBFLG
6262: jsr L8E7C
6263: lda #$81
6264: sta SRCHTK
6265: jsr L8871
6266: beq LADE2
6267: ldy #$12
6268: jsr L8905
6269: jsr LA760
6270: LADE2: jsr LA769
6271: jsr L8DBE
6272: tya
6273: ldy #$11
6274: clc
6275: adc TXTPTR
6276: sta (TOS),y
6277: lda $3C
6278: adc #$00
6279: dey
6280: sta (TOS),y
6281: lda $3A
6282: dey
6283: sta (TOS),y
6284: lda CHRLIN
6285: dey
6286: sta (TOS),y
6287: lda #$A4
6288: jsr L9493
6289: jsr L9317
6290: jsr L9314
6291: lda FACSGN
6292: ora #$7F
6293: and FACH0
6294: sta FACH0
6295: ldx #$04
6296: ldy #$0D
6297: LAE18: lda FACEXP,x
6298: sta (TOS),y
6299: dex
6300: dey
6301: bpl LAE18
6302: lda #$F0
6303: ldy #$9F
6304: jsr LA221
6305: jsr CHRGOT
6306: cmp #$A9
6307: bne LAE34
6308: jsr CHRGET
6309: jsr L9314
6310: LAE34: jsr LA2B0
6311: pha
6312: jsr LA2A0
6313: pla
6314: ldy #$08
6315: ldx #$05
6316: LAE40: sta (TOS),y
6317: lda $60,x
6318: dey
6319: dex
6320: bpl LAE40
6321: lda $4A
6322: sta (TOS),y
6323: lda FORPNT
6324: dey
6325: sta (TOS),y
6326: lda #$81
6327: dey
6328: sta (TOS),y
6329: rts
6330:
6331: LAE57: jmp L94A1
6332:
6333: LAE5A: jsr LB6DE
6334: jsr CHRGOT
6335: beq LAE57
6336: jsr LAECA
6337: lda $5F
6338: ldx $60
6339: sta INDEX2
6340: stx $25
6341: jsr L8A3D
6342: bcc LAE87
6343: ldy #$01
6344: jsr INDLOW
6345: dey
6346: tax
6347: bne LAE80
6348: jsr INDLOW
6349: beq LAE87
6350: LAE80: jsr INDLOW
6351: sta $5F
6352: stx $60
6353: LAE87: lda INDEX2
6354: sec
6355: sbc $5F
6356: tax
6357: lda $25
6358: sbc $60
6359: tay
6360: bcs LAEB3
6361: txa
6362: clc
6363: adc VARTAB
6364: sta VARTAB
6365: tya
6366: adc $2E
6367: sta $2E
6368: ldy #$00
6369: LAEA1: jsr INDLOW
6370: sta (INDEX2),y
6371: iny
6372: bne LAEA1
6373: inc $60
6374: inc $25
6375: lda $2E
6376: cmp $25
6377: bcs LAEA1
6378: LAEB3: jsr L8818
6379: lda INDEX1
6380: ldx $23
6381: clc
6382: adc #$02
6383: sta VARTAB
6384: bcc LAEC2
6385: inx
6386: LAEC2: stx $2E
6387: jsr L8A93
6388: jmp L867E
6389:
6390: LAECA: beq LAED2
6391: bcc LAED2
6392: cmp #$AB
6393: bne LAEF4
6394: LAED2: jsr L8E3E
6395: jsr L8A3D
6396: jsr CHRGOT
6397: beq LAEE9
6398: cmp #$AB
6399: bne LAEF4
6400: jsr CHRGET
6401: jsr L8E3E
6402: bne LAEF4
6403: LAEE9: lda ENDCHR
6404: bne LAEF3
6405: lda #$FF
6406: sta LINNUM
6407: sta $15
6408: LAEF3: rts
6409:
6410: LAEF4: jmp L94A1
6411:
6412: LAEF7: ldx #$FF
6413: stx ENDFD
6414: jsr CHRGET
6415: jsr L932C
6416: jsr L931A
6417: lda $64
6418: pha
6419: lda $65
6420: pha
6421: ldy #$02
6422: LAF0D: jsr INDFMO
6423: dey
6424: sta FNDPNT,y
6425: bne LAF0D
6426: jsr INDFMO
6427: sta LFOR
6428: tay
6429: beq LAF2A
6430: LAF1F: dey
6431: jsr L8171
6432: cmp #$23
6433: beq LAF2D
6434: tya
6435: bne LAF1F
6436: LAF2A: jmp L94A1
6437:
6438: LAF2D: lda #$3B
6439: LAF2F: jsr L9493
6440: sty KEYNUM
6441: sty BNR
6442: jsr L932C
6443: bit VALTYP
6444: bpl LAF77
6445: jsr LB170
6446: jsr LB2B7
6447: ldx CHSN
6448: beq LAF5E
6449: ldx #$00
6450: sec
6451: lda CFORM
6452: sbc $77
6453: bcc LAF5E
6454: ldx #$3D
6455: cpx CHSN
6456: bne LAF5D
6457: lsr a
6458: adc #$00
6459: LAF5D: tax
6460: LAF5E: ldy #$00
6461: LAF60: txa
6462: beq LAF68
6463: dex
6464: LAF64: lda #$20
6465: bne LAF70
6466: LAF68: cpy $77
6467: bcs LAF64
6468: jsr INDIN1
6469: iny
6470: LAF70: jsr LB2B0
6471: bne LAF60
6472: beq LAF9B
6473: LAF77: jsr LA46F
6474: ldy #$FF
6475: LAF7C: iny
6476: lda FBUFFER,y
6477: bne LAF7C
6478: tya
6479: jsr L9B5C
6480: ldy #$00
6481: LAF88: lda FBUFFER,y
6482: beq LAF92
6483: sta (FACH0),y
6484: iny
6485: bne LAF88
6486: LAF92: jsr L9BB0
6487: jsr LB170
6488: jsr LAFBB
6489: LAF9B: jsr CHRGOT
6490: cmp #$2C
6491: beq LAF2F
6492: sec
6493: ror KEYNUM
6494: jsr LB2B7
6495: pla
6496: tay
6497: pla
6498: jsr L9C52
6499: jsr CHRGOT
6500: cmp #$3B
6501: beq LAFB8
6502: jmp L903E
6503:
6504: LAFB8: jmp CHRGET
6505:
6506: LAFBB: lda PUFILL
6507: sta BLFD
6508: lda #$FF
6509: LAFC3: sta SNO
6510: jmp LAFCB
6511:
6512: LAFC9: stx POINT
6513: LAFCB: cpy $77
6514: beq LB002
6515: lda FBUFFER,y
6516: iny
6517: cmp #$20
6518: beq LAFCB
6519: cmp #$2D
6520: beq LAFC3
6521: cmp #$2E
6522: beq LAFC9
6523: cmp #$45
6524: beq LAFF4
6525: sta FBUFFER,x
6526: stx ENR
6527: inx
6528: bit POINT
6529: bpl LAFCB
6530: inc VN
6531: jmp LAFCB
6532:
6533: LAFF4: lda FBUFFER,y
6534: cmp #$2D
6535: bne LAFFE
6536: ror USGN
6537: LAFFE: iny
6538: sty UEXP
6539: LB002: lda POINT
6540: bpl LB008
6541: stx POINT
6542: LB008: jsr LB2B7
6543: lda VF
6544: cmp #$FF
6545: beq LB03B
6546: lda FESP
6547: beq LB056
6548: lda UEXP
6549: bne LB02E
6550: ldx ENR
6551: jsr LB145
6552: dec $0102,x
6553: inx
6554: stx UEXP
6555: jsr LB1CC
6556: beq LB053
6557: LB02E: ldy POSP
6558: bne LB04A
6559: ldy SNO
6560: bmi LB04A
6561: lda VF
6562: LB03B: beq LB0A7
6563: dec VF
6564: bne LB047
6565: lda NF
6566: beq LB0A7
6567: LB047: inc SWE
6568: LB04A: jsr LB0BF
6569: jsr LB18A
6570: jsr LB0BF
6571: LB053: jmp LB1ED
6572:
6573: LB056: ldy UEXP
6574: beq LB071
6575: sta $77
6576: sec
6577: ror ETOF
6578: ldy POINT
6579: lda USGN
6580: bpl LB06E
6581: jsr LB0F8
6582: jmp LB07A
6583:
6584: LB06E: jsr LB0D9
6585: LB071: ldy POINT
6586: beq LB07A
6587: jsr LB1D0
6588: beq LB080
6589: LB07A: jsr LB18A
6590: jmp LB083
6591:
6592: LB080: dec VN
6593: LB083: sec
6594: lda VF
6595: sbc VN
6596: bcc LB0A7
6597: sta SWE
6598: ldy POSP
6599: bne LB0AF
6600: ldy SNO
6601: bmi LB0AF
6602: tay
6603: beq LB0A7
6604: dey
6605: bne LB0B2
6606: lda NF
6607: ora VN
6608: bne LB053
6609: LB0A7: lda #$2A
6610: LB0A9: jsr LB2B0
6611: bne LB0A9
6612: rts
6613:
6614: LB0AF: tay
6615: beq LB053
6616: LB0B2: lda VN
6617: bne LB053
6618: dec SWE
6619: inc KEYNUM
6620: jmp LB053
6621:
6622: LB0BF: sec
6623: lda VF
6624: sbc VN
6625: beq LB101
6626: ldy POINT
6627: bcc LB0E2
6628: sta $77
6629: LB0CE: cpy ENR
6630: beq LB0D5
6631: bcs LB0D6
6632: LB0D5: iny
6633: LB0D6: inc VN
6634: LB0D9: jsr LB10E
6635: dec $77
6636: bne LB0CE
6637: beq LB0FF
6638: LB0E2: eor #$FF
6639: adc #$01
6640: sta $77
6641: LB0E8: cpy BNR
6642: beq LB0F4
6643: dey
6644: dec VN
6645: jmp LB0F6
6646:
6647: LB0F4: inc KEYNUM
6648: LB0F6: lda #$80
6649: LB0F8: jsr LB110
6650: dec $77
6651: bne LB0E8
6652: LB0FF: sty POINT
6653: LB101: rts
6654:
6655: LB102: bne LB13D
6656: eor #$09
6657: sta FBUFFER,x
6658: dex
6659: cpx UEXP
6660: rts
6661:
6662: LB10E: lda #$00
6663: LB110: ldx UEXP
6664: inx
6665: bit ETOF
6666: bmi LB129
6667: eor USGN
6668: beq LB129
6669: LB11E: jsr LB153
6670: jsr LB102
6671: bcs LB11E
6672: jmp L9FB2
6673:
6674: LB129: lda FBUFFER,x
6675: dec FBUFFER,x
6676: cmp #$30
6677: jsr LB102
6678: bcs LB129
6679: bit ETOF
6680: bpl LB140
6681: sty POINT
6682: LB13D: pla
6683: pla
6684: rts
6685:
6686: LB140: lda USGN
6687: eor #$80
6688: LB145: sta USGN
6689: lda #$30
6690: sta $0101,x
6691: lda #$31
6692: sta $0102,x
6693: rts
6694:
6695: LB153: lda FBUFFER,x
6696: inc FBUFFER,x
6697: cmp #$39
6698: rts
6699:
6700: LB15C: clc
6701: iny
6702: beq LB165
6703: cpy LFOR
6704: bcc LB169
6705: LB165: ldy KEYNUM
6706: bne LB13D
6707: LB169: jsr L8171
6708: inc CFORM
6709: rts
6710:
6711: LB170: jsr L9C4E
6712: sta $77
6713: ldx #$0A
6714: lda #$00
6715: LB179: sta SWE,x
6716: dex
6717: bpl LB179
6718: stx FLAG
6719: stx POINT
6720: stx DOLR
6721: tax
6722: tay
6723: rts
6724:
6725: LB18A: clc
6726: lda POINT
6727: adc NF
6728: bcs LB1CB
6729: sec
6730: sbc KEYNUM
6731: bcc LB1CB
6732: cmp ENR
6733: beq LB19E
6734: bcs LB1CB
6735: LB19E: cmp BNR
6736: bcc LB1CB
6737: tax
6738: lda FBUFFER,x
6739: cmp #$35
6740: bcc LB1CB
6741: LB1AB: cpx BNR
6742: beq LB1BA
6743: dex
6744: jsr LB153
6745: stx ENR
6746: beq LB1AB
6747: rts
6748:
6749: LB1BA: lda #$31
6750: sta FBUFFER,x
6751: inx
6752: stx POINT
6753: dec KEYNUM
6754: bpl LB1CB
6755: inc KEYNUM
6756: inc VN
6757: LB1CB: rts
6758:
6759: LB1CC: ldy POINT
6760: beq LB1E7
6761: LB1D0: ldy BNR
6762: LB1D3: lda FBUFFER,y
6763: cmp #$30
6764: rts
6765:
6766: LB1D9: inc POINT
6767: jsr LB10E
6768: inc BNR
6769: cpy ENR
6770: beq LB1CB
6771: iny
6772: LB1E7: jsr LB1D3
6773: beq LB1D9
6774: rts
6775:
6776: LB1ED: lda DOLR
6777: bmi LB1F4
6778: inc KEYNUM
6779: LB1F4: ldx BNR
6780: dex
6781: ldy BEGFD
6782: LB1FB: jsr L8171
6783: iny
6784: cmp #$2C
6785: bne LB214
6786: bit FLAG
6787: bmi LB20E
6788: lda PUCOMA
6789: jmp LB276
6790:
6791: LB20E: lda BLFD
6792: jmp LB276
6793:
6794: LB214: cmp #$2E
6795: bne LB21E
6796: lda PUDOT
6797: jmp LB276
6798:
6799: LB21E: cmp #$2B
6800: beq LB25D
6801: cmp #$2D
6802: beq LB258
6803: cmp #$5E
6804: bne LB28D
6805: lda #$45
6806: jsr LB2B0
6807: ldy UEXP
6808: jsr LB1D3
6809: bne LB23D
6810: iny
6811: jsr LB1D3
6812: beq LB244
6813: LB23D: lda #$2D
6814: bit USGN
6815: bmi LB246
6816: LB244: lda #$2B
6817: LB246: jsr LB2B0
6818: ldx UEXP
6819: lda FBUFFER,x
6820: jsr LB2B0
6821: ldy ENDFD
6822: jmp LB26C
6823:
6824: LB258: lda SNO
6825: bmi LB20E
6826: LB25D: lda SNO
6827: jmp LB276
6828:
6829: LB263: lda KEYNUM
6830: bne LB27C
6831: cpx ENR
6832: beq LB271
6833: LB26C: inx
6834: lda FBUFFER,x
6835: .byte $2C
6836: LB271: lda #$30
6837: LB273: lsr FLAG
6838: LB276: jsr LB2B0
6839: bne LB1FB
6840: rts
6841:
6842: LB27C: dec KEYNUM
6843: lda DOLR
6844: bmi LB271
6845: sec
6846: ror DOLR
6847: lda PUMONY
6848: jmp LB273
6849:
6850: LB28D: lda SWE
6851: beq LB263
6852: dec SWE
6853: LB295: beq LB29A
6854: jmp LB20E
6855:
6856: LB29A: lda POSP
6857: bmi LB295
6858: LB29F: jsr L8171
6859: cmp #$2C
6860: bne LB258
6861: lda BLFD
6862: jsr LB2B0
6863: iny
6864: jmp LB29F
6865:
6866: LB2B0: jsr L90B2
6867: dec CFORM
6868: rts
6869:
6870: LB2B7: ldy ENDFD
6871: LB2BA: jsr LB15C
6872: jsr LB36C
6873: bne LB2D6
6874: sty BEGFD
6875: bcc LB2E1
6876: tax
6877: LB2C8: jsr LB15C
6878: bcs LB2D2
6879: jsr LB374
6880: beq LB2DC
6881: LB2D2: ldy BEGFD
6882: txa
6883: LB2D6: jsr L90B2
6884: jmp LB2BA
6885:
6886: LB2DC: bcs LB2C8
6887: ldy BEGFD
6888: LB2E1: ldx KEYNUM
6889: bne LB35F
6890: stx CFORM
6891: dey
6892: LB2E9: dec CFORM
6893: LB2EC: jsr LB15C
6894: bcs LB365
6895: cmp #$2C
6896: beq LB2EC
6897: jsr LB343
6898: bcc LB2E9
6899: cmp #$2E
6900: bne LB306
6901: inx
6902: cpx #$02
6903: bcc LB2EC
6904: LB303: jmp L94A1
6905:
6906: LB306: jsr LB378
6907: bne LB316
6908: bcc LB310
6909: sta CHSN
6910: LB310: inc VF,x
6911: jmp LB2EC
6912:
6913: LB316: cmp #$24
6914: bne LB329
6915: bit DOLR
6916: bpl LB310
6917: clc
6918: ror DOLR
6919: dec VF
6920: jmp LB310
6921:
6922: LB329: cmp #$5E
6923: bne LB343
6924: ldx #$02
6925: LB32F: jsr LB15C
6926: bcs LB303
6927: cmp #$5E
6928: bne LB303
6929: dex
6930: bpl LB32F
6931: inc FESP
6932: jsr LB15C
6933: bcs LB365
6934: LB343: cmp #$2B
6935: bne LB360
6936: lda SNO
6937: bpl LB351
6938: lda #$2B
6939: sta SNO
6940: LB351: lda POSP
6941: bne LB303
6942: ror POSP
6943: sty ENDFD
6944: inc CFORM
6945: LB35F: rts
6946:
6947: LB360: cmp #$2D
6948: beq LB351
6949: sec
6950: LB365: sty ENDFD
6951: dec ENDFD
6952: rts
6953:
6954: LB36C: cmp #$2B
6955: beq LB385
6956: cmp #$2D
6957: beq LB385
6958: LB374: cmp #$2E
6959: beq LB385
6960: LB378: cmp #$3D
6961: beq LB385
6962: cmp #$3E
6963: beq LB385
6964: cmp #$23
6965: bne LB385
6966: clc
6967: LB385: rts
6968:
6969: LB386: lda $64
6970: sta TMPDES
6971: lda $65
6972: sta $04EC
6973: jsr L932C
6974: jsr L931A
6975: lda $64
6976: sta $04ED
6977: lda $65
6978: sta $04EE
6979: ldx #$01
6980: stx $65
6981: jsr CHRGOT
6982: cmp #$29
6983: beq LB3AE
6984: jsr L9DD8
6985: LB3AE: jsr L948B
6986: ldx $65
6987: bne LB3B8
6988: jmp L991C
6989:
6990: LB3B8: dex
6991: stx FACEXP
6992: ldx #$03
6993: LB3BD: lda TMPDES,x
6994: sta TEMPF1,x
6995: dex
6996: bpl LB3BD
6997: ldy #$02
6998: LB3C7: jsr L8175
6999: sta $5B,y
7000: jsr L8179
7001: sta $5E,y
7002: dey
7003: bpl LB3C7
7004: lda $5E
7005: beq LB411
7006: LB3DA: lda #$00
7007: sta FACH0
7008: clc
7009: lda $5E
7010: adc FACEXP
7011: bcs LB411
7012: cmp $5B
7013: bcc LB3EB
7014: bne LB411
7015: LB3EB: ldy FACH0
7016: cpy $5E
7017: beq LB40C
7018: tya
7019: clc
7020: adc FACEXP
7021: tay
7022: jsr L8169
7023: sta $78
7024: ldy FACH0
7025: jsr L816D
7026: cmp $78
7027: beq LB408
7028: inc FACEXP
7029: bne LB3DA
7030: LB408: inc FACH0
7031: bne LB3EB
7032: LB40C: inc FACEXP
7033: lda FACEXP
7034: .byte $2C
7035: LB411: lda #$00
7036: pha
7037: lda $04ED
7038: ldy $04EE
7039: jsr L9C52
7040: lda TMPDES
7041: ldy $04EC
7042: jsr L9C52
7043: pla
7044: tay
7045: jmp L9A81
7046:
7047: LB42B: jsr L9A86
7048: jsr CHRGOT
7049: beq LB43A
7050: jsr L9DE1
7051: sty TRAPNO
7052: .byte $2C
7053: LB43A: lda #$FF
7054: sta $04F3
7055: rts
7056:
7057: LB440: jsr L9A86
7058: ldx $04F1
7059: inx
7060: beq LB4B9
7061: jsr CHRGOT
7062: beq LB495
7063: bcc LB48A
7064: cmp #$82
7065: bne LB4B6
7066: jsr LB495
7067: ldy #$00
7068: jsr INDTXT
7069: bne LB484
7070: iny
7071: jsr INDTXT
7072: bne LB46D
7073: iny
7074: jsr INDTXT
7075: bne LB46D
7076: jmp L867E
7077:
7078: LB46D: ldy #$03
7079: jsr INDTXT
7080: sta CHRLIN
7081: iny
7082: jsr INDTXT
7083: sta $3A
7084: tya
7085: clc
7086: adc TXTPTR
7087: sta TXTPTR
7088: bcc LB484
7089: inc $3C
7090: LB484: jsr CHRGET
7091: jmp L8DB0
7092:
7093: LB48A: jsr L9DE1
7094: sta $15
7095: jsr LB4A4
7096: jmp L8D69
7097:
7098: LB495: ldx #$01
7099: LB497: lda ERRLIN,x
7100: sta CHRLIN,x
7101: lda ERRTXT,x
7102: sta TXTPTR,x
7103: dex
7104: bpl LB497
7105: LB4A4: ldx #$FF
7106: stx ERRNUM
7107: stx ERRLIN
7108: stx $04F1
7109: ldx TMPTRP
7110: stx $04F3
7111: rts
7112:
7113: LB4B6: jmp L94A1
7114:
7115: LB4B9: ldx #$1F
7116: jmp L8683
7117:
7118: LB4BE: jsr L9D87
7119: dex
7120: txa
7121: cmp #$24
7122: bcs LB4FB
7123: jsr L8653
7124: ldy #$FF
7125: ldx #$00
7126: LB4CE: inx
7127: LB4CF: iny
7128: lda (INDEX2),y
7129: bmi LB4DA
7130: cmp #$20
7131: bcc LB4CF
7132: bcs LB4CE
7133: LB4DA: txa
7134: jsr L9B5C
7135: ldx #$00
7136: ldy #$FF
7137: LB4E2: iny
7138: lda (INDEX2),y
7139: cmp #$20
7140: bcc LB4E2
7141: jsr LB4FE
7142: pha
7143: and #$7F
7144: sta (FACH0),y
7145: jsr LB4FE
7146: inx
7147: pla
7148: bpl LB4E2
7149: jmp L9CCA
7150:
7151: LB4FB: jmp L991C
7152:
7153: LB4FE: pha
7154: txa
7155: pha
7156: tya
7157: tax
7158: pla
7159: tay
7160: pla
7161: rts
7162:
7163: LB507: jsr L9317
7164: lda LINNUM
7165: pha
7166: lda $15
7167: pha
7168: jsr L9DE4
7169: lda #$04
7170: jsr L9B5C
7171: ldy #$00
7172: lda $15
7173: jsr LB52D
7174: lda LINNUM
7175: jsr LB52D
7176: pla
7177: sta $15
7178: pla
7179: sta LINNUM
7180: jmp L9CCA
7181:
7182: LB52D: pha
7183: lsr a
7184: lsr a
7185: lsr a
7186: lsr a
7187: jsr LB536
7188: pla
7189: LB536: and #$0F
7190: cmp #$0A
7191: bcc LB53E
7192: adc #$06
7193: LB53E: adc #$30
7194: sta (FACH0),y
7195: iny
7196: rts
7197:
7198: LB544: jsr L9C48
7199: tay
7200: dey
7201: cpy #$04
7202: bcs LB4FB
7203: LB54D: jsr INDIN1
7204: sta PUFILL,y
7205: dey
7206: bpl LB54D
7207: rts
7208:
7209: LB557: ldy #$01
7210: LB559: lda TXTPTR,y
7211: sta TMPTXT,y
7212: lda CHRLIN,y
7213: sta TMPLIN,y
7214: dey
7215: bpl LB559
7216: jsr CHRGOT
7217: beq LB589
7218: cmp #$FC
7219: beq LB582
7220: cmp #$FD
7221: bne LB5B4
7222: jsr LB64C
7223: lda FACEXP
7224: bne LB589
7225: LB57C: jsr CHRGOT
7226: jmp LB5BA
7227:
7228: LB582: jsr LB64C
7229: lda FACEXP
7230: bne LB57C
7231: LB589: ldy #$05
7232: jsr L8905
7233: dey
7234: lda $04F9
7235: sta (TOS),y
7236: dey
7237: lda TMPTXT
7238: sta (TOS),y
7239: dey
7240: lda $04FB
7241: sta (TOS),y
7242: dey
7243: lda TMPLIN
7244: sta (TOS),y
7245: dey
7246: lda #$EB
7247: sta (TOS),y
7248: rts
7249:
7250: LB5AC: jsr LB614
7251: jsr CHRGOT
7252: beq LB5BA
7253: LB5B4: jmp L94A1
7254:
7255: LB5B7: jsr CHRGET
7256: LB5BA: beq LB5D9
7257: cmp #$EC
7258: beq LB600
7259: cmp #$22
7260: beq LB5CE
7261: cmp #$EB
7262: bne LB5B7
7263: jsr LB5B7
7264: jmp LB57C
7265:
7266: LB5CE: jsr CHRGET
7267: beq LB5D9
7268: cmp #$22
7269: bne LB5CE
7270: beq LB5B7
7271: LB5D9: cmp #$3A
7272: beq LB5B7
7273: bit RUNMOD
7274: bpl LB625
7275: ldy #$02
7276: jsr INDTXT
7277: beq LB625
7278: iny
7279: jsr INDTXT
7280: sta CHRLIN
7281: iny
7282: jsr INDTXT
7283: sta $3A
7284: tya
7285: clc
7286: adc TXTPTR
7287: sta TXTPTR
7288: bcc LB5B7
7289: inc $3C
7290: bne LB5B7
7291: LB600: jmp L8DB0
7292:
7293: LB603: beq LB632
7294: cmp #$FD
7295: beq LB62D
7296: cmp #$FC
7297: bne LB5B4
7298: jsr LB64C
7299: lda FACEXP
7300: beq LB632
7301: LB614: lda #$EB
7302: sta SRCHTK
7303: jsr L8871
7304: bne LB628
7305: jsr LA769
7306: ldy #$05
7307: jmp LA772
7308:
7309: LB625: ldx #$20
7310: .byte $2C
7311: LB628: ldx #$21
7312: jmp L8683
7313:
7314: LB62D: jsr LB64C
7315: beq LB614
7316: LB632: jsr LB614
7317: dey
7318: lda (FNDPNT),y
7319: sta $3C
7320: dey
7321: lda (FNDPNT),y
7322: sta TXTPTR
7323: dey
7324: lda (FNDPNT),y
7325: jsr LCD7F
7326: lda (FNDPNT),y
7327: sta CHRLIN
7328: jmp LB557
7329:
7330: LB64C: jsr CHRGET
7331: jmp L932C
7332:
7333: LB652: lda #$FF
7334: .byte $2C
7335: LB655: lda #$00
7336: sta TRCFLG
7337: rts
7338:
7339: jsr L948E
7340: jsr L96A5
7341: sta FORPNT
7342: sty $4A
7343: jsr L931A
7344: jsr L9DD8
7345: dex
7346: stx $77
7347: cmp #$29
7348: beq LB676
7349: jsr L9DD8
7350: .byte $2C
7351: LB676: ldx #$FF
7352: stx $78
7353: jsr L948B
7354: lda #$B2
7355: jsr L9493
7356: jsr L932C
7357: jsr L931A
7358: ldy #$02
7359: LB68A: lda #$49
7360: jsr INDSUB
7361: sta $5B,y
7362: jsr INDFMO
7363: sta $5E,y
7364: dey
7365: bpl LB68A
7366: sec
7367: lda $5F
7368: sbc $77
7369: sta $5F
7370: bcs LB6A6
7371: dec $60
7372: LB6A6: lda $78
7373: cmp $5E
7374: bcc LB6AE
7375: lda $5E
7376: LB6AE: tax
7377: beq LB6C7
7378: clc
7379: adc $77
7380: bcs LB6CA
7381: cmp $5B
7382: bcc LB6BC
7383: bne LB6CA
7384: LB6BC: ldy $77
7385: LB6BE: jsr L816D
7386: sta ($5C),y
7387: iny
7388: dex
7389: bne LB6BE
7390: LB6C7: jmp L9C4E
7391:
7392: LB6CA: jmp L991C
7393:
7394: LB6CD: jsr LB6DE
7395: jsr L8E3E
7396: lda LINNUM
7397: sta AUTINC
7398: lda $15
7399: sta $74
7400: jmp L867E
7401:
7402: LB6DE: bit RUNMOD
7403: bmi LB6E3
7404: rts
7405:
7406: LB6E3: ldx #$22
7407: jmp L8683
7408:
7409: LB6E8: ldx ERRNUM
7410: inx
7411: beq LB709
7412: lda ERRLIN
7413: ldy $04F1
7414: sta LINNUM
7415: sty $15
7416: jsr L8A3D
7417: bcc LB709
7418: ror HELPER
7419: jsr L903E
7420: ldx LINNUM
7421: lda $15
7422: jsr L8B40
7423: LB709: jmp L903E
7424:
7425: LB70C: ldx $60
7426: tya
7427: clc
7428: adc $5F
7429: bcc LB715
7430: inx
7431: LB715: cpx $04F6
7432: bne LB728
7433: cmp ERRTXT
7434: bcc LB728
7435: beq LB728
7436: lsr HELPER
7437: .if CompileComputer >= PLUS4_01
7438: lda #$82
7439: .else
7440: lda #$12
7441: .endif
7442: jmp L90B2
7443:
7444: LB728: rts
7445:
7446: LB729: bne LB7A7
7447: ldx #$00
7448: ldy #$00
7449: LB72F: inx
7450: lda KEYIDX,x
7451: beq LB788
7452: sta $77
7453: stx KEYNUM
7454: ldx #$05
7455: LB73B: lda LCD6E,x
7456: dex
7457: bne LB743
7458: ora KEYNUM
7459: LB743: jsr kCHROUT
7460: txa
7461: bpl LB73B
7462: ldx #$07
7463: LB74B: lda PKYBUF,y
7464: iny
7465: pha
7466: stx VOICNO
7467: ldx #$04
7468: LB754: cmp LB839,x
7469: beq LB78D
7470: dex
7471: bne LB754
7472: ldx VOICNO
7473: cpx #$08
7474: bcc LB769
7475: bne LB76E
7476: lda #$2B
7477: jsr kCHROUT
7478: LB769: lda #$22
7479: jsr kCHROUT
7480: LB76E: pla
7481: jsr kCHROUT
7482: ldx #$09
7483: LB774: dec $77
7484: bne LB74B
7485: cpx #$09
7486: bcc LB781
7487: lda #$22
7488: jsr kCHROUT
7489: LB781: lda #$8D
7490: jsr kCHROUT
7491: ldx KEYNUM
7492: LB788: cpx #$08
7493: bne LB72F
7494: rts
7495:
7496: LB78D: ldx VOICNO
7497: LB78F: lda LB830,x
7498: jsr kCHROUT
7499: dex
7500: cpx #$03
7501: bcs LB78F
7502: pla
7503: jsr LCD74
7504: lda #$29
7505: jsr kCHROUT
7506: ldx #$08
7507: bne LB774
7508: LB7A7: jsr L9D84
7509: dex
7510: cpx #$08
7511: bcc LB7B2
7512: jmp L991C
7513:
7514: LB7B2: stx KEYNUM
7515: jsr L9491
7516: jsr L9C48
7517: jsr LB7C2
7518: bcc LB831
7519: jmp L8681
7520:
7521: LB7C2: sta $77
7522: ldx #$08
7523: jsr LB83E
7524: sta BNR
7525: ldx KEYNUM
7526: inx
7527: jsr LB83E
7528: sta ENR
7529: ldx KEYNUM
7530: lda $77
7531: sec
7532: sbc KEYBUF,x
7533: beq LB814
7534: bcc LB7FE
7535: clc
7536: adc BNR
7537: bcs LB832
7538: cmp #$81
7539: bcs LB832
7540: tax
7541: ldy BNR
7542: LB7EF: cpy ENR
7543: beq LB814
7544: dey
7545: dex
7546: lda PKYBUF,y
7547: sta PKYBUF,x
7548: bcs LB7EF
7549: LB7FE: adc ENR
7550: tax
7551: ldy ENR
7552: LB805: cpy BNR
7553: bcs LB814
7554: lda PKYBUF,y
7555: sta PKYBUF,x
7556: iny
7557: inx
7558: bcc LB805
7559: LB814: ldx KEYNUM
7560: jsr LB83E
7561: tax
7562: ldy KEYNUM
7563: lda $77
7564: sta KEYBUF,y
7565: ldy #$00
7566: jsr INDIN1
7567: dec $77
7568: bmi LB831
7569: sta PKYBUF,x
7570: inx
7571: iny
7572: .byte $D0
7573: LB830: .byte $F2
7574: LB831: clc
7575: LB832: rts
7576:
7577: .byte "($RHC+"
7578: LB839: .byte $22,$0D,$8D,$22,$1B
7579: LB83E: lda #$00
7580: clc
7581: LB841: dex
7582: bmi LB832
7583: adc KEYBUF,x
7584: bcc LB841
7585: LB849: jsr L9D84
7586: dex
7587: cpx #$03
7588: bcs LB8B5
7589: stx VOICNO
7590: jsr L9DDE
7591: cmp #$04
7592: bcs LB8B5
7593: sty TMPTON
7594: sta $7F
7595: jsr L9DDE
7596: ldx VOICNO
7597: cpx #$02
7598: bne LB868
7599: dex
7600: LB868: pha
7601: cpy #$00
7602: bne LB874
7603: cmp #$00
7604: bne LB874
7605: iny
7606: bne LB883
7607: LB874: tya
7608: pha
7609: LB876: jsr L8CC0
7610: lda MTIMHI,x
7611: ora MTIMLO,x
7612: bne LB876
7613: pla
7614: tay
7615: LB883: tya
7616: eor #$FF
7617: clc
7618: adc #$01
7619: sei
7620: sta MTIMLO,x
7621: pla
7622: eor #$FF
7623: adc #$00
7624: sta MTIMHI,x
7625: lda TMPTON
7626: sta TEDFREQV1LO,x
7627: lda LB8B8,x
7628: tax
7629: lda TEDFREQV2HI,x
7630: and #$FC
7631: ora $7F
7632: sta TEDFREQV2HI,x
7633: ldx VOICNO
7634: lda LB8BA,x
7635: ora TEDVOL
7636: sta TEDVOL
7637: cli
7638: rts
7639:
7640: LB8B5: jmp L991C
7641:
7642: LB8B8: .byte $02,$00
7643: LB8BA: .byte $10,$20,$40
7644: LB8BD: jsr L9D84
7645: cpx #$09
7646: bcs LB8B5
7647: stx VOICNO
7648: lda TEDVOL
7649: and #$F0
7650: ora VOICNO
7651: sta TEDVOL
7652: rts
7653:
7654: LB8D1: jsr LC3B6
7655: ldx #$04
7656: jsr LC3D9
7657: jsr LC37B
7658: jsr LC3A5
7659: cpx #$02
7660: bcc LB8E6
7661: jmp L991C
7662:
7663: LB8E6: txa
7664: lsr a
7665: ror a
7666: sta STOPNB
7667: bpl LB8F1
7668: lda COLSEL
7669: beq LB8F8
7670: LB8F1: jsr LC1F3
7671: bcs LB8F8
7672: bne LB8F9
7673: LB8F8: rts
7674:
7675: LB8F9: jsr LA954
7676: lda STREND
7677: sta INDEX1
7678: lda $32
7679: sta $23
7680: sec
7681: lda FRETOP
7682: sbc #$03
7683: sta TEMPST
7684: lda $34
7685: sbc #$00
7686: sta $1A
7687: LB911: ldx #$00
7688: stx LTFLAG
7689: stx RTFLAG
7690: LB917: ldx YPO
7691: bne LB91F
7692: dec $02B0
7693: LB91F: dec YPO
7694: jsr LC1F3
7695: bcs LB929
7696: bne LB917
7697: LB929: inc YPO
7698: bne LB931
7699: inc $02B0
7700: LB931: jsr LC1C3
7701: ldx XPOS
7702: bne LB93C
7703: dec $02AE
7704: LB93C: dec XPOS
7705: lda LTFLAG
7706: jsr LB99F
7707: sta LTFLAG
7708: clc
7709: lda XPOS
7710: adc #$02
7711: sta XPOS
7712: bcc LB954
7713: inc $02AE
7714: LB954: lda RTFLAG
7715: jsr LB99F
7716: sta RTFLAG
7717: ldx XPOS
7718: bne LB963
7719: dec $02AE
7720: LB963: dec XPOS
7721: inc YPO
7722: bne LB96E
7723: inc $02B0
7724: LB96E: jsr LC1F3
7725: bcs LB975
7726: bne LB931
7727: LB975: ldx #$03
7728: ldy #$00
7729: lda $23
7730: cmp $32
7731: bne LB985
7732: lda INDEX1
7733: cmp STREND
7734: beq LB99C
7735: LB985: lda INDEX1
7736: bne LB98B
7737: dec $23
7738: LB98B: dec INDEX1
7739: jsr INDIN1
7740: sta XPOS,x
7741: dex
7742: bpl LB985
7743: jsr L8CC0
7744: jmp LB911
7745:
7746: LB99C: jmp LC37B
7747:
7748: LB99F: pha
7749: jsr LC1F3
7750: bcs LB9D0
7751: beq LB9D0
7752: pla
7753: bne LB9D3
7754: tax
7755: tay
7756: lda $23
7757: cmp $1A
7758: bcc LB9BD
7759: bne LB9BA
7760: lda INDEX1
7761: cmp TEMPST
7762: bcc LB9BD
7763: LB9BA: jmp L8681
7764:
7765: LB9BD: lda XPOS,x
7766: sta (INDEX1),y
7767: inc INDEX1
7768: bne LB9C8
7769: inc $23
7770: LB9C8: inx
7771: cpx #$04
7772: bne LB9BD
7773: lda #$80
7774: rts
7775:
7776: LB9D0: pla
7777: lda #$00
7778: LB9D3: rts
7779:
7780: LB9D4: jsr LC3B9
7781: jsr L9DD8
7782: cpx #$28
7783: bcs LB9E8
7784: stx ETOF
7785: jsr L9DD8
7786: cpx #$19
7787: bcc LB9EB
7788: LB9E8: jmp L991C
7789:
7790: LB9EB: stx CFORM
7791: jsr L9491
7792: jsr L9C48
7793: sta NUMCNT
7794: tya
7795: pha
7796: txa
7797: pha
7798: jsr LC3A5
7799: txa
7800: ror a
7801: ror $02B9
7802: pla
7803: sta INDEX1
7804: pla
7805: sta $23
7806: lda GRAPHM
7807: bne LBA28
7808: ldx CFORM
7809: ldy ETOF
7810: clc
7811: jsr kPLOT
7812: ldy #$00
7813: LBA19: cpy NUMCNT
7814: beq LBA27
7815: jsr INDIN1
7816: jsr kPRINT
7817: iny
7818: bne LBA19
7819: LBA27: rts
7820:
7821: LBA28: jsr LC7BF
7822: lda FG
7823: pha
7824: lda COLSEL
7825: pha
7826: bit GRAPHM
7827: bpl LBA44
7828: pla
7829: beq LBA4A
7830: lsr a
7831: beq LBA4A
7832: ldx MC1
7833: bcc LBA4C
7834: ldx TEDCOLBG1
7835: bcs LBA4C
7836: LBA44: ldx TEDCOLBG0
7837: pla
7838: beq LBA4C
7839: LBA4A: ldx FG
7840: LBA4C: stx FG
7841: ldx CFORM
7842: ldy #$00
7843: sty SNO
7844: LBA56: ldy SNO
7845: inc SNO
7846: jsr INDIN1
7847: dec NUMCNT
7848: bmi LBA7B
7849: ldy ETOF
7850: jsr LBA7F
7851: inc ETOF
7852: cpy #$27
7853: bcc LBA56
7854: ldy #$00
7855: sty ETOF
7856: inx
7857: cpx #$18
7858: bcc LBA56
7859: LBA7B: pla
7860: sta FG
7861: rts
7862:
7863: LBA7F: pha
7864: jsr LC21A
7865: jsr LC291
7866: lda #$00
7867: sta TMPTON
7868: pla
7869: pha
7870: asl a
7871: rol TMPTON
7872: asl a
7873: asl a
7874: rol TMPTON
7875: sta INDEX2
7876: lda TMPTON
7877: adc CHRPAG
7878: sta $25
7879: tya
7880: pha
7881: ldy #$07
7882: LBAA0: lda $02B9
7883: asl a
7884: lda (INDEX2),y
7885: bcc LBAAA
7886: eor #$FF
7887: LBAAA: bit GRAPHM
7888: bpl LBAD9
7889: and #$AA
7890: sta TMPTON
7891: lda COLSEL
7892: bne LBAC5
7893: lda TMPTON
7894: bcs LBAC1
7895: lsr a
7896: eor TMPTON
7897: eor #$AA
7898: bne LBAD9
7899: LBAC1: ora #$55
7900: bne LBAD9
7901: LBAC5: cmp #$02
7902: bne LBACD
7903: lda TMPTON
7904: bcs LBAD9
7905: LBACD: bcc LBAD6
7906: lda TMPTON
7907: lsr a
7908: eor TMPTON
7909: bcc LBAD9
7910: LBAD6: lda TMPTON
7911: lsr a
7912: LBAD9: sta (GRAPNT),y
7913: dey
7914: bpl LBAA0
7915: pla
7916: tay
7917: pla
7918: rts
7919:
7920: LBAE2: jsr LC3B6
7921: ldx #$1F
7922: jsr LC3F4
7923: ldx #$2B
7924: jsr LC3D9
7925: jsr LC38F
7926: sty FLAG
7927: sta SWE
7928: jsr LC3A5
7929: cpx #$02
7930: bcc LBB02
7931: jmp L991C
7932:
7933: LBB02: stx FILFLG
7934: txa
7935: pha
7936: jsr LBBB4
7937: pla
7938: bne LBB29
7939: beq LBB12
7940: LBB0F: jsr LBC36
7941: LBB12: jsr LC0DA
7942: lda ANGCNT
7943: bne LBB0F
7944: LBB1A: ldx #$04
7945: LBB1C: lda NF,x
7946: sta $02AC,x
7947: dex
7948: bne LBB1C
7949: stx FILFLG
7950: rts
7951:
7952: LBB29: ldx #$00
7953: lda ANGSGN
7954: lsr a
7955: bcc LBB33
7956: ldx #$02
7957: LBB33: lda SNO,x
7958: sta VF
7959: lda BLFD,x
7960: sta NF
7961: lda #$00
7962: ldx #$03
7963: LBB43: sta USGN,x
7964: dex
7965: bpl LBB43
7966: LBB49: ldx #$07
7967: LBB4B: lda XPOS,x
7968: pha
7969: dex
7970: bpl LBB4B
7971: jsr LC0DA
7972: ldx #$00
7973: LBB57: pla
7974: sta XPOS,x
7975: inx
7976: cpx #$08
7977: bne LBB57
7978: LBB60: lda VF
7979: bne LBB6A
7980: dec NF
7981: bmi LBB1A
7982: LBB6A: dec VF
7983: ldx #$25
7984: ldy #$1B
7985: lda ANGSGN
7986: lsr a
7987: bcc LBB79
7988: ldy #$19
7989: LBB79: lda #$00
7990: LBB7B: lsr a
7991: pha
7992: jsr LC2F6
7993: sta XPOS,x
7994: tya
7995: sta $02AE,x
7996: pla
7997: bcc LBB8C
7998: ora #$A0
7999: LBB8C: inx
8000: inx
8001: ldy #$19
8002: lsr ANGSGN
8003: bcc LBB97
8004: ldy #$1B
8005: LBB97: rol ANGSGN
8006: cpx #$27
8007: beq LBB7B
8008: ldx #$06
8009: asl a
8010: beq LBB60
8011: LBBA3: bcc LBBAD
8012: inc XPOS,x
8013: bne LBBAD
8014: inc $02AE,x
8015: LBBAD: asl a
8016: dex
8017: dex
8018: bpl LBBA3
8019: bmi LBB49
8020: LBBB4: ldy #$23
8021: jsr LBC56
8022: ldx #$1F
8023: ldy #$2B
8024: LBBBD: tya
8025: pha
8026: jsr LC322
8027: sta XDEST,x
8028: sta XABS,x
8029: sta $02BD,x
8030: tya
8031: sta $02B2,x
8032: sta $02B6,x
8033: sta $02BE,x
8034: pla
8035: tay
8036: jsr LC2F6
8037: sta XPOS,x
8038: tya
8039: sta $02AE,x
8040: ldy #$2D
8041: inx
8042: inx
8043: cpx #$21
8044: beq LBBBD
8045: lda #$90
8046: jsr LBCD5
8047: lda ANGSGN
8048: and #$03
8049: sta ANGSGN
8050: tax
8051: lda LBC18,x
8052: jsr LBC36
8053: jsr LC37B
8054: lda ANGCNT
8055: jsr LBC36
8056: ldx ANGSGN
8057: lda LBC18,x
8058: and #$F0
8059: sta $02CB
8060: lda LBC1C,x
8061: sta ANGCNT
8062: rts
8063:
8064: LBC18: .byte $BE,$E4
8065: .byte "A"
8066: .byte $1B
8067: LBC1C: .byte "A"
8068: .byte $1B,$BE,$E4
8069: .byte "FRED B"
8070: .byte $0D
8071: .byte "TERRY R"
8072: .byte $0D
8073: .byte "MIKE I"
8074: .byte $0D
8075: LBC36: jsr LBD05
8076: ldx #$04
8077: LBC3B: lda $02AE,x
8078: asl a
8079: ror $02AE,x
8080: ror XPOS,x
8081: bcc LBC4F
8082: inc XPOS,x
8083: bne LBC4F
8084: inc $02AE,x
8085: LBC4F: inx
8086: inx
8087: cpx #$06
8088: beq LBC3B
8089: rts
8090:
8091: LBC56: jsr LC318
8092: LBC59: ldx #$00
8093: LBC5B: inx
8094: sec
8095: sbc #$5A
8096: bcs LBC5B
8097: dey
8098: bpl LBC5B
8099: stx ANGSGN
8100: pha
8101: adc #$5A
8102: jsr LBC76
8103: pla
8104: clc
8105: eor #$FF
8106: adc #$01
8107: dec ANGSGN
8108: LBC76: ldx #$FF
8109: LBC78: inx
8110: sec
8111: sbc #$0A
8112: bcs LBC78
8113: adc #$0A
8114: sta VTEMP1
8115: txa
8116: asl a
8117: tax
8118: lda LC4B4,x
8119: ldy LC4B3,x
8120: LBC8B: clc
8121: dec VTEMP1
8122: bmi LBC9C
8123: adc LC4C8,x
8124: pha
8125: tya
8126: adc LC4C7,x
8127: tay
8128: pla
8129: bcc LBC8B
8130: LBC9C: pha
8131: ldx #$00
8132: lda ANGSGN
8133: lsr a
8134: bcs LBCA7
8135: ldx #$02
8136: LBCA7: pla
8137: sta SINVAL,x
8138: tya
8139: sta $02C7,x
8140: rts
8141:
8142: LBCB0: ldy #$19
8143: bcc LBCB6
8144: ldy #$1B
8145: LBCB6: lda ANGSGN
8146: adc #$02
8147: lsr a
8148: lsr a
8149: php
8150: jsr LC318
8151: cpy #$FF
8152: bcc LBCCC
8153: txa
8154: tay
8155: jsr LC318
8156: bcs LBCCF
8157: LBCCC: jsr LC337
8158: LBCCF: plp
8159: bcs LBCED
8160: jmp LC327
8161:
8162: LBCD5: sta ANGCNT
8163: ldx #$23
8164: LBCDA: asl ANGCNT
8165: jsr LBCB0
8166: sta XPOS,x
8167: tya
8168: sta $02AE,x
8169: inx
8170: inx
8171: cpx #$2B
8172: bcc LBCDA
8173: LBCED: rts
8174:
8175: LBCEE: ldy #$2B
8176: LBCF0: jsr LBC56
8177: ldx #$07
8178: LBCF5: lda SNO,x
8179: sta FLAG,x
8180: dex
8181: bpl LBCF5
8182: lda #$50
8183: jsr LBCD5
8184: lda #$10
8185: LBD05: sta ANGCNT
8186: ldy #$1F
8187: ldx #$23
8188: LBD0C: asl $02CB
8189: rol ANGCNT
8190: jsr LC2F4
8191: inx
8192: inx
8193: asl $02CB
8194: rol ANGCNT
8195: jsr LC2F0
8196: pha
8197: tya
8198: pha
8199: ldy #$21
8200: inx
8201: inx
8202: cpx #$27
8203: beq LBD0C
8204: ldx #$03
8205: LBD2D: pla
8206: sta XDEST,x
8207: dex
8208: bpl LBD2D
8209: rts
8210:
8211: LBD35: jsr LC7BF
8212: jsr L9C48
8213: sta DOLR
8214: stx INDEX2
8215: sty $25
8216: ldx #$04
8217: jsr LC3D9
8218: jsr LC3A5
8219: cpx #$05
8220: bcc LBD51
8221: jmp L991C
8222:
8223: LBD51: stx FLAG
8224: ldx #$03
8225: ldy DOLR
8226: cpy #$05
8227: bcs LBD5E
8228: rts
8229:
8230: LBD5E: dey
8231: jsr INDIN2
8232: sta CHSN,x
8233: dex
8234: bpl LBD5E
8235: stx SWE
8236: jsr LC37B
8237: lda CHSN
8238: sta FESP
8239: lda VF
8240: sta ETOF
8241: LBD7A: lda #$08
8242: sta BITCNT
8243: inc SWE
8244: ldy SWE
8245: jsr INDIN2
8246: sta UEXP
8247: LBD8B: jsr LC1F3
8248: sta USGN
8249: asl UEXP
8250: rol a
8251: dec BITCNT
8252: bit GRAPHM
8253: bpl LBDA3
8254: asl UEXP
8255: rol a
8256: dec BITCNT
8257: LBDA3: ldx FLAG
8258: cpx #$03
8259: bcc LBDB6
8260: beq LBDB1
8261: eor USGN
8262: bcs LBDC2
8263: LBDB1: and USGN
8264: bcs LBDC2
8265: LBDB6: cpx #$01
8266: bcc LBDC2
8267: beq LBDC0
8268: ora USGN
8269: LBDBF: .byte $2C
8270: LBDC0: eor #$FF
8271: LBDC2: and #$03
8272: bit GRAPHM
8273: bmi LBDCA
8274: and #$01
8275: LBDCA: sta COLSEL
8276: jsr LC1C3
8277: inc XPOS
8278: bne LBDD7
8279: inc $02AE
8280: LBDD7: sec
8281: lda FESP
8282: bit GRAPHM
8283: bpl LBDE2
8284: sbc #$02
8285: LBDE1: .byte $2C
8286: LBDE2: sbc #$01
8287: sta FESP
8288: lda ETOF
8289: sbc #$00
8290: sta ETOF
8291: bcs LBE1E
8292: ldx #$01
8293: LBDF3: lda CHSN,x
8294: sta FESP,x
8295: lda XDEST,x
8296: sta XPOS,x
8297: dex
8298: bpl LBDF3
8299: inc YPO
8300: bne LBE0A
8301: inc $02B0
8302: LBE0A: sec
8303: lda NF
8304: sbc #$01
8305: sta NF
8306: lda POSP
8307: sbc #$00
8308: sta POSP
8309: bcs LBE26
8310: rts
8311:
8312: LBE1E: lda BITCNT
8313: beq LBE26
8314: jmp LBD8B
8315:
8316: LBE26: jmp LBD7A
8317:
8318: LBE29: jsr LC7BF
8319: jsr L96A5
8320: sta CFORM
8321: sty SNO
8322: bit VALTYP
8323: bmi LBE3C
8324: jmp L9324
8325:
8326: LBE3C: ldx #$28
8327: jsr LC3F4
8328: ldx #$04
8329: jsr LC3D9
8330: ldx #$2A
8331: ldy #$06
8332: lda #$02
8333: sta VTEMP1
8334: LBE4E: jsr LC322
8335: tax
8336: tya
8337: pha
8338: ldy VTEMP1
8339: jsr LC382
8340: bcc LBE67
8341: lda CHSN,y
8342: sta XPOS,y
8343: lda VF,y
8344: sta $02AE,y
8345: LBE67: txa
8346: sta CHSN,y
8347: sta BEGFD,y
8348: pla
8349: sta VF,y
8350: sta LFOR,y
8351: ldx #$28
8352: ldy #$04
8353: dec VTEMP1
8354: dec VTEMP1
8355: beq LBE4E
8356: ldy #$FF
8357: sty SWE
8358: lda XPOS
8359: sta FESP
8360: lda $02AE
8361: sta ETOF
8362: tya
8363: jsr L9B5C
8364: LBE94: jsr LC264
8365: lda (GRAPNT),y
8366: bcc LBEA9
8367: lda XPOS
8368: bit GRAPHM
8369: bpl LBEA4
8370: sec
8371: rol a
8372: LBEA4: and #$07
8373: tax
8374: lda #$00
8375: LBEA9: bit GRAPHM
8376: bpl LBEAE
8377: dex
8378: LBEAE: stx BLFD
8379: LBEB1: asl a
8380: dex
8381: bpl LBEB1
8382: ror a
8383: sta VTEMP1
8384: lda #$08
8385: bit GRAPHM
8386: bpl LBEBF
8387: lsr a
8388: LBEBF: clc
8389: adc XPOS
8390: sta XPOS
8391: bcc LBECB
8392: inc $02AE
8393: LBECB: jsr LC264
8394: lda #$00
8395: bcs LBED4
8396: lda (GRAPNT),y
8397: LBED4: sta VTEMP2
8398: ldx BLFD
8399: LBED9: lsr a
8400: inx
8401: cpx #$08
8402: bne LBED9
8403: ora VTEMP1
8404: inc SWE
8405: ldy SWE
8406: cpy #$FC
8407: bcc LBEEE
8408: jmp LCC4C
8409:
8410: LBEEE: sta (FACH0),y
8411: ldx BLFD
8412: lda CHSN
8413: sec
8414: bit GRAPHM
8415: bpl LBEFE
8416: sbc #$04
8417: LBEFD: .byte $2C
8418: LBEFE: sbc #$08
8419: sta CHSN
8420: lda VTEMP2
8421: bcs LBEB1
8422: dec VF
8423: bpl LBEB1
8424: ldx NF
8425: bne LBF53
8426: dec POSP
8427: bpl LBF53
8428: bit GRAPHM
8429: bpl LBF20
8430: asl BEGFD
8431: rol LFOR
8432: LBF20: ldx #$00
8433: LBF22: lda BEGFD,x
8434: iny
8435: sta (FACH0),y
8436: inx
8437: cpx #$04
8438: bne LBF22
8439: iny
8440: sty BEGFD
8441: lda FACH0
8442: sta LFOR
8443: lda $63
8444: sta ENDFD
8445: lda #$DE
8446: sta $64
8447: lda #$02
8448: sta $65
8449: lda CFORM
8450: sta FORPNT
8451: lda SNO
8452: sta $4A
8453: jsr L8F40
8454: jmp LC37B
8455:
8456: LBF53: dec NF
8457: inc YPO
8458: bne LBF5E
8459: inc $02B0
8460: LBF5E: lda FESP
8461: sta XPOS
8462: lda ETOF
8463: sta $02AE
8464: lda BEGFD
8465: sta CHSN
8466: lda LFOR
8467: sta VF
8468: jmp LBE94
8469:
8470: LBF79: lda GRAPHM
8471: clc
8472: rol a
8473: rol a
8474: rol a
8475: adc #$00
8476: tay
8477: jmp L9A81
8478:
8479: LBF85: sec
8480: .byte $24
8481: LBF87: clc
8482: php
8483: jsr L9D87
8484: lda TEDCOLFRAME
8485: and #$7F
8486: cpx #$04
8487: beq LBFAE
8488: bcs LBFBE
8489: lda TEDCOLBG0
8490: and #$7F
8491: dex
8492: bmi LBFAE
8493: lda FG
8494: dex
8495: bmi LBFAE
8496: lda MC1
8497: dex
8498: bmi LBFAE
8499: lda TEDCOLBG1
8500: and #$7F
8501: LBFAE: plp
8502: bcs LBFB6
8503: lsr a
8504: lsr a
8505: lsr a
8506: lsr a
8507: clc
8508: LBFB6: adc #$00
8509: and #$0F
8510: tay
8511: jmp L9A81
8512:
8513: LBFBE: jmp L991C
8514:
8515: LBFC1: jsr L9D87
8516: dex
8517: cpx #$02
8518: bcs LBFBE
8519: lda LBFFB,x
8520: tax
8521: sei
8522: LBFCE: stx TEDKEYB
8523: lda TEDKEYB
8524: stx TEDKEYB
8525: cmp TEDKEYB
8526: bne LBFCE
8527: cli
8528: eor #$FF
8529: tay
8530: and #$0F
8531: tax
8532: lda LBFF0,x
8533: cpy #$0F
8534: bcc LBFEC
8535: ora #$80
8536: LBFEC: tay
8537: jmp L9A81
8538:
8539: LBFF0: .byte $00,$01,$05,$00,$07,$08,$06,$00
8540: LBFF8: .byte $03,$02,$04
8541: LBFFB: .byte $FA,$FD
8542: LBFFD: jsr L9D87
8543: cpx #$02
8544: bcc LC011
8545: bne LBFBE
8546: jsr LC1F3
8547: tay
8548: bcc LC00E
8549: ldy #$00
8550: LC00E: jmp L9A81
8551:
8552: LC011: txa
8553: asl a
8554: tax
8555: lda XPOS,x
8556: tay
8557: lda $02AE,x
8558: jmp L9471
8559:
8560: LC01E: jsr LC3B6
8561: ldx #$1F
8562: jsr LC3D9
8563: jsr LC38F
8564: sty FLAG
8565: sta SWE
8566: jsr LC38F
8567: sty USGN
8568: sta UEXP
8569: php
8570: ldx #$23
8571: jsr LC2D3
8572: plp
8573: bcs LC052
8574: lda FLAG
8575: sta USGN
8576: lda SWE
8577: bit GRAPHM
8578: bpl LC052
8579: asl USGN
8580: rol a
8581: LC052: sta UEXP
8582: jsr LC38F
8583: sty POSP
8584: sta FESP
8585: jsr LC38F
8586: sty ETOF
8587: sta CFORM
8588: jsr LC38F
8589: sta VOICNO
8590: tya
8591: ldy VOICNO
8592: jsr LBC59
8593: ldx #$2D
8594: ldy #$2B
8595: jsr LC305
8596: bcc LC089
8597: lda #$68
8598: ldy #$01
8599: jsr LC2F9
8600: sta XPOS,x
8601: tya
8602: sta $02AE,x
8603: LC089: ldx #$03
8604: LC08B: lda FLAG,x
8605: sta VN,x
8606: dex
8607: bpl LC08B
8608: lda #$90
8609: jsr LBCD5
8610: ldx #$07
8611: LC09B: lda FLAG,x
8612: sta SNO,x
8613: dex
8614: bpl LC09B
8615: jsr LBCEE
8616: jsr LC37B
8617: ldx #$02
8618: jsr LC3A7
8619: stx CIRSEG
8620: clc
8621: LC0B2: lda CIRSEG
8622: bne LC0B9
8623: jmp L991C
8624:
8625: LC0B9: adc POSP
8626: sta POSP
8627: bcc LC0C4
8628: inc FESP
8629: LC0C4: ldx #$2D
8630: ldy #$2B
8631: jsr LC305
8632: bcs LC0D5
8633: jsr LBCEE
8634: jsr LC0DA
8635: bcc LC0B2
8636: LC0D5: ldy #$2D
8637: jsr LBCF0
8638: LC0DA: ldx #$02
8639: ldy #$06
8640: LC0DE: lda #$00
8641: sta $02B9,x
8642: sta $02BA,x
8643: jsr LC322
8644: bpl LC0F3
8645: dec $02B9,x
8646: dec $02BA,x
8647: bne LC0FE
8648: LC0F3: cmp #$00
8649: bne LC0FB
8650: cpy #$00
8651: beq LC0FE
8652: LC0FB: inc $02B9,x
8653: LC0FE: sta XABS,x
8654: asl a
8655: sta $02BD,x
8656: tya
8657: sta $02B6,x
8658: rol a
8659: sta $02BE,x
8660: dex
8661: dex
8662: ldy #$04
8663: cpx #$00
8664: beq LC0DE
8665: ldx #$0A
8666: ldy #$08
8667: jsr LC305
8668: lda #$00
8669: rol a
8670: rol a
8671: sta LESSER
8672: eor #$02
8673: sta $02C4
8674: clc
8675: lda #$10
8676: adc LESSER
8677: tay
8678: pha
8679: eor #$02
8680: tax
8681: jsr LC305
8682: sta XPOS,x
8683: tya
8684: sta $02AE,x
8685: pla
8686: tay
8687: clc
8688: lda #$08
8689: adc $02C4
8690: tax
8691: jsr LC305
8692: sta ERRVAL
8693: sty $02C2
8694: LC14F: jsr LC1A5
8695: ldy $02C4
8696: sec
8697: lda XABS,y
8698: sbc #$01
8699: sta XABS,y
8700: bcs LC16B
8701: lda $02B6,y
8702: sbc #$00
8703: sta $02B6,y
8704: bcs LC16B
8705: rts
8706:
8707: LC16B: ldx LESSER
8708: lda $02C2
8709: bmi LC179
8710: jsr LC194
8711: ldx $02C4
8712: LC179: clc
8713: lda ERRVAL
8714: adc $02BD,x
8715: sta ERRVAL
8716: lda $02C2
8717: adc $02BE,x
8718: sta $02C2
8719: ldx $02C4
8720: jsr LC194
8721: beq LC14F
8722: LC194: ldy #$02
8723: clc
8724: LC197: lda XPOS,x
8725: adc $02B9,x
8726: sta XPOS,x
8727: inx
8728: dey
8729: bne LC197
8730: rts
8731:
8732: LC1A5: lda FILFLG
8733: ora WIDTH
8734: beq LC1C3
8735: inc XPOS
8736: bne LC1B5
8737: inc $02AE
8738: LC1B5: jsr LC1C3
8739: ldx XPOS
8740: bne LC1C0
8741: dec $02AE
8742: LC1C0: dec XPOS
8743: LC1C3: jsr LC2AD
8744: bcs LC1EC
8745: jsr LC21A
8746: jsr LC269
8747: sta BITMSK
8748: lda (GRAPNT),y
8749: ora BITMSK
8750: bit GRAPHM
8751: bpl LC1ED
8752: pha
8753: ldx COLSEL
8754: lda BITMSK
8755: and LC4AF,x
8756: sta BITMSK
8757: pla
8758: LC1E7: eor BITMSK
8759: LC1EA: sta (GRAPNT),y
8760: LC1EC: rts
8761:
8762: LC1ED: ldx COLSEL
8763: bne LC1EA
8764: beq LC1E7
8765: LC1F3: jsr LC264
8766: bcs LC219
8767: sta BITMSK
8768: lda (GRAPNT),y
8769: and BITMSK
8770: LC200: rol a
8771: dex
8772: bpl LC200
8773: rol a
8774: bit STOPNB
8775: bmi LC20F
8776: and #$03
8777: cmp COLSEL
8778: clc
8779: rts
8780:
8781: LC20F: clc
8782: and #$03
8783: beq LC217
8784: ldx #$00
8785: rts
8786:
8787: LC217: ldx #$FF
8788: LC219: rts
8789:
8790: LC21A: lda LD802,x
8791: sta GRAPNT
8792: lda LD81B,x
8793: and #$03
8794: pha
8795: ora #$1C
8796: sta $8D
8797: jsr LC238
8798: sta (GRAPNT),y
8799: pla
8800: ora #$18
8801: sta $8D
8802: jsr LC24E
8803: sta (GRAPNT),y
8804: LC238: lda FG
8805: asl a
8806: asl a
8807: asl a
8808: asl a
8809: sta TMPTON
8810: lda TEDCOLBG0
8811: bit GRAPHM
8812: bpl LC249
8813: lda MC1
8814: LC249: and #$0F
8815: ora TMPTON
8816: rts
8817:
8818: LC24E: lda FG
8819: lsr a
8820: lsr a
8821: lsr a
8822: lsr a
8823: sta TMPTON
8824: lda TEDCOLBG0
8825: bit GRAPHM
8826: bpl LC25F
8827: lda MC1
8828: LC25F: and #$F0
8829: ora TMPTON
8830: rts
8831:
8832: LC264: jsr LC2AD
8833: bcs LC288
8834: LC269: jsr LC291
8835: lda YPO
8836: and #$07
8837: tay
8838: lda XPOS
8839: bit GRAPHM
8840: php
8841: bpl LC27B
8842: asl a
8843: LC27B: and #$07
8844: tax
8845: lda LC289,x
8846: plp
8847: bpl LC288
8848: inx
8849: ora LC289,x
8850: LC288: rts
8851:
8852: LC289: .byte $80,$40,$20,$10,$08,$04,$02,$01
8853: LC291: tya
8854: clc
8855: adc LD802,x
8856: sta GRAPNT
8857: lda LD81B,x
8858: and #$03
8859: adc #$00
8860: asl GRAPNT
8861: rol a
8862: asl GRAPNT
8863: rol a
8864: asl GRAPNT
8865: rol a
8866: ora #$20
8867: sta $8D
8868: rts
8869:
8870: LC2AD: lda $02AE
8871: lsr a
8872: bne LC2D1
8873: lda XPOS
8874: ror a
8875: lsr a
8876: bit GRAPHM
8877: bmi LC2BD
8878: lsr a
8879: LC2BD: tay
8880: cpy #$28
8881: bcs LC2D1
8882: lda $02B0
8883: bne LC2D1
8884: lda YPO
8885: lsr a
8886: lsr a
8887: lsr a
8888: tax
8889: cmp SCYMAX
8890: rts
8891:
8892: LC2D1: sec
8893: rts
8894:
8895: LC2D3: lda SCALEM
8896: beq LC2EF
8897: lda SCXMAX
8898: jsr LC2DF
8899: lda SCYMAX
8900: LC2DF: asl a
8901: tay
8902: lda #$00
8903: jsr LC337
8904: sta XPOS,x
8905: tya
8906: inx
8907: sta XPOS,x
8908: inx
8909: LC2EF: rts
8910:
8911: LC2F0: bcc LC2F9
8912: bcs LC308
8913: LC2F4: bcs LC305
8914: LC2F6: jsr LC318
8915: LC2F9: clc
8916: adc XPOS,x
8917: pha
8918: tya
8919: adc $02AE,x
8920: tay
8921: pla
8922: rts
8923:
8924: LC305: jsr LC318
8925: LC308: sec
8926: sbc XPOS,x
8927: sta TEMPF1
8928: tya
8929: sbc $02AE,x
8930: tay
8931: php
8932: lda TEMPF1
8933: plp
8934: rts
8935:
8936: LC318: lda XPOS,y
8937: pha
8938: lda $02AE,y
8939: tay
8940: pla
8941: rts
8942:
8943: LC322: jsr LC305
8944: LC325: bpl LC336
8945: LC327: php
8946: clc
8947: eor #$FF
8948: adc #$01
8949: pha
8950: tya
8951: eor #$FF
8952: adc #$00
8953: tay
8954: pla
8955: plp
8956: LC336: rts
8957:
8958: LC337: sty VTEMP1
8959: sta VTEMP2
8960: lda XPOS,x
8961: ldy $02AE,x
8962: php
8963: jsr LC325
8964: sta XPOS,x
8965: tya
8966: sta $02AE,x
8967: lda #$00
8968: sta VTEMP3
8969: ldy #$10
8970: LC353: lsr VTEMP1
8971: ror VTEMP2
8972: bcc LC368
8973: clc
8974: adc XPOS,x
8975: pha
8976: lda VTEMP3
8977: adc $02AE,x
8978: sta VTEMP3
8979: pla
8980: LC368: lsr VTEMP3
8981: ror a
8982: dey
8983: bne LC353
8984: adc #$00
8985: ldy VTEMP3
8986: bcc LC377
8987: iny
8988: LC377: plp
8989: jmp LC325
8990:
8991: LC37B: ldy #$00
8992: jsr LC382
8993: ldy #$02
8994: LC382: lda XDEST,y
8995: sta XPOS,y
8996: lda $02B2,y
8997: sta $02AE,y
8998: rts
8999:
9000: LC38F: jsr CHRGOT
9001: beq LC3A0
9002: jsr L9491
9003: cmp #$2C
9004: beq LC3A0
9005: jsr L9DE1
9006: sec
9007: rts
9008:
9009: LC3A0: lda #$00
9010: tay
9011: clc
9012: LC3A4: rts
9013:
9014: LC3A5: ldx #$00
9015: LC3A7: jsr CHRGOT
9016: beq LC3A4
9017: jsr L9491
9018: cmp #$2C
9019: beq LC3A4
9020: jmp L9D84
9021:
9022: LC3B6: jsr LC7BF
9023: LC3B9: ldx #$01
9024: jsr CHRGOT
9025: LC3BE: beq LC3D3
9026: cmp #$2C
9027: beq LC3D3
9028: jsr L9D84
9029: cpx #$04
9030: bcs LC3D6
9031: cpx #$02
9032: bit GRAPHM
9033: bmi LC3D3
9034: bcs LC3D6
9035: LC3D3: stx COLSEL
9036: rts
9037:
9038: LC3D6: jmp L991C
9039:
9040: LC3D9: jsr CHRGOT
9041: beq LC3E5
9042: jsr L9491
9043: cmp #$2C
9044: bne LC3F7
9045: LC3E5: ldy #$00
9046: LC3E7: lda XPOS,y
9047: sta XPOS,x
9048: inx
9049: iny
9050: cpy #$04
9051: bne LC3E7
9052: rts
9053:
9054: LC3F4: jsr L9491
9055: LC3F7: stx VTEMP4
9056: jsr LC48F
9057: jsr CHRGOT
9058: cmp #$2C
9059: beq LC45A
9060: cmp #$3B
9061: beq LC40B
9062: jmp L94A1
9063:
9064: LC40B: jsr CHRGET
9065: jsr L9DE1
9066: sta VOICNO
9067: tya
9068: ldy VOICNO
9069: jsr LBC59
9070: ldx VTEMP4
9071: lda XPOS,x
9072: sta YPO,x
9073: lda $02AE,x
9074: sta $02B0,x
9075: jsr LC2D3
9076: lda #$0E
9077: sta VTEMP5
9078: clc
9079: ldx VTEMP4
9080: LC434: jsr LBCB0
9081: sta XPOS,x
9082: tya
9083: sta $02AE,x
9084: ldy #$00
9085: lsr VTEMP5
9086: bcc LC447
9087: ldy #$02
9088: LC447: jsr LC2F4
9089: sta XPOS,x
9090: tya
9091: sta $02AE,x
9092: inx
9093: inx
9094: lsr VTEMP5
9095: bne LC434
9096: clc
9097: rts
9098:
9099: LC45A: jsr CHRGET
9100: inc VTEMP4
9101: inc VTEMP4
9102: jsr LC48F
9103: ldx VTEMP4
9104: dex
9105: dex
9106: jsr LC2D3
9107: ldy #$02
9108: ldx VTEMP4
9109: inx
9110: inx
9111: LC475: dex
9112: dex
9113: lsr VTEMP5
9114: bcc LC486
9115: jsr LC2F6
9116: sta XPOS,x
9117: tya
9118: sta $02AE,x
9119: LC486: ldy #$00
9120: cpx VTEMP4
9121: beq LC475
9122: clc
9123: rts
9124:
9125: LC48F: jsr CHRGOT
9126: cmp #$AA
9127: beq LC49B
9128: cmp #$AB
9129: beq LC49B
9130: clc
9131: LC49B: rol VTEMP5
9132: jsr L9314
9133: jsr L9DE8
9134: ldx VTEMP4
9135: sta $02AE,x
9136: tya
9137: sta XPOS,x
9138: rts
9139:
9140: LC4AF: .byte $FF,$AA,$55,$00
9141: LC4B3: .byte $00
9142: LC4B4: .byte $00,$2C,$71,$57,$8D,$80,$00,$A4
9143: .byte $8F,$C4,$19,$DD,$B2,$F0,$90,$FC
9144: .byte $1C,$FF,$FF
9145: LC4C7: .byte $04
9146: LC4C8: .byte $72,$04,$50,$04,$0B,$03,$A8,$03
9147: .byte $28,$02,$90,$01,$E3,$01,$28,$00
9148: .byte $63
9149: LC4D9: jsr LC7BF
9150: jsr CHRGOT
9151: beq LC4F3
9152: ldx #$01
9153: cmp #$A4
9154: jsr LC3BE
9155: LC4E8: jsr CHRGOT
9156: cmp #$2C
9157: beq LC4F4
9158: cmp #$A4
9159: beq LC4F4
9160: LC4F3: rts
9161:
9162: LC4F4: pha
9163: jsr CHRGET
9164: ldx #$04
9165: jsr LC3F7
9166: pla
9167: bpl LC506
9168: jsr LC0DA
9169: jmp LC4E8
9170:
9171: LC506: jsr LC37B
9172: jsr LC1A5
9173: jmp LC4E8
9174:
9175: LC50F: jsr LC7BF
9176: ldx #$04
9177: jsr LC3F7
9178: jmp LC37B
9179:
9180: LC51A: jsr L9D84
9181: cpx #$05
9182: bcs LC564
9183: stx TMPTON
9184: jsr L9DD8
9185: dex
9186: cpx #$10
9187: bcs LC564
9188: stx $7F
9189: ldx #$07
9190: jsr LC3A7
9191: cpx #$08
9192: bcs LC564
9193: txa
9194: asl a
9195: asl a
9196: asl a
9197: asl a
9198: ora $7F
9199: ldx TMPTON
9200: cpx #$01
9201: beq LC54A
9202: bcs LC551
9203: sta TEDCOLBG0
9204: bne LC563
9205: LC54A: sta FG
9206: sta COLOR
9207: beq LC563
9208: LC551: cpx #$03
9209: beq LC55B
9210: bcs LC560
9211: sta MC1
9212: bne LC563
9213: LC55B: sta TEDCOLBG1
9214: beq LC563
9215: LC560: sta TEDCOLFRAME
9216: LC563: rts
9217:
9218: LC564: jmp L991C
9219:
9220: LC567: lda GRAPHM
9221: bne LC570
9222: LC56B: lda #$93
9223: jmp kCHROUT
9224:
9225: LC570: and #$40
9226: beq LC57F
9227: jsr LC56B
9228: ldx #$14
9229: ldy #$00
9230: clc
9231: jsr kPLOT
9232: LC57F: lda #$00
9233: ldy #$20
9234: ldx #$20
9235: jsr LC5A7
9236: jsr LC238
9237: ldy #$1C
9238: ldx #$04
9239: jsr LC5A7
9240: jsr LC24E
9241: ldy #$18
9242: ldx #$04
9243: jsr LC5A7
9244: lda #$00
9245: ldx #$03
9246: LC5A0: sta XPOS,x
9247: dex
9248: bpl LC5A0
9249: rts
9250:
9251: LC5A7: sty $8D
9252: ldy #$00
9253: sty GRAPNT
9254: LC5AD: sta (GRAPNT),y
9255: dey
9256: bne LC5AD
9257: inc $8D
9258: dex
9259: bne LC5AD
9260: rts
9261:
9262: LC5B8: jsr L9D84
9263: cpx #$02
9264: bcs LC564
9265: stx SCALEM
9266: rts
9267:
9268: LC5C3: cmp #$9C
9269: bne LC5D1
9270: jsr LC738
9271: jsr CHRGET
9272: lda #$00
9273: beq LC5DB
9274: LC5D1: jsr L9D84
9275: cpx #$05
9276: bcs LC5ED
9277: lda LC637,x
9278: LC5DB: cmp GRAPHM
9279: beq LC62A
9280: sta GRAPHM
9281: tax
9282: bne LC5F0
9283: jsr LC7C9
9284: lda #$28
9285: ldx #$19
9286: bne LC626
9287: LC5ED: jmp L991C
9288:
9289: LC5F0: jsr LC63C
9290: lda TEDVSP
9291: ora #$20
9292: sta TEDVSP
9293: lda TEDHSP
9294: and #$EF
9295: bit GRAPHM
9296: bpl LC606
9297: ora #$10
9298: LC606: sta TEDHSP
9299: lda TEDFREQV1HI
9300: and #$C3
9301: ora #$08
9302: sta TEDFREQV1HI
9303: lda TEDVIDEORAM
9304: and #$03
9305: ora #$18
9306: sta TEDVIDEORAM
9307: lda #$28
9308: ldx #$19
9309: bit GRAPHM
9310: bpl LC626
9311: lsr a
9312: LC626: sta SCXMAX
9313: stx SCYMAX
9314: LC62A: jsr LC3A5
9315: txa
9316: lsr a
9317: bne LC5ED
9318: bcc LC636
9319: jmp LC567
9320:
9321: LC636: rts
9322:
9323: LC637: .byte $00,$20,$60,$A0,$E0
9324: LC63C: lda MVDFLG
9325: beq LC641
9326: rts
9327:
9328: LC641: lda $38
9329: cmp #$40
9330: bcs LC67B
9331: jsr LA954
9332: jsr LC86B
9333: txa
9334: clc
9335: adc STREND
9336: tya
9337: adc $32
9338: cmp #$18
9339: bcs LC678
9340: dec MVDFLG
9341: lda #$00
9342: sta INDEX1
9343: lda #$18
9344: sta $23
9345: jsr LC7F0
9346: lda INDEX1
9347: sta FRETOP
9348: lda $23
9349: sta $34
9350: lda #$00
9351: sta MEMSIZ
9352: lda #$18
9353: sta $38
9354: jmp LC825
9355:
9356: LC678: jmp L8681
9357:
9358: LC67B: jsr LA954
9359: ldy STREND
9360: sty $5F
9361: lda $32
9362: clc
9363: adc #$30
9364: bcs LC678
9365: sta $60
9366: cmp $34
9367: bcc LC695
9368: bne LC678
9369: cpy FRETOP
9370: bcs LC678
9371: LC695: dec MVDFLG
9372: lda #$00
9373: sta DEFPNT
9374: lda #$30
9375: sta $4F
9376: jsr LC877
9377: lda $5F
9378: sta INDEX1
9379: lda $60
9380: sta $23
9381: ldx STREND
9382: stx INDEX2
9383: lda $32
9384: sta $25
9385: sec
9386: sbc #$10
9387: tay
9388: jsr LC7F8
9389: clc
9390: lda $32
9391: adc #$30
9392: sta $32
9393: lda $30
9394: adc #$30
9395: sta $30
9396: lda $2E
9397: adc #$30
9398: sta $2E
9399: lda $2C
9400: adc #$30
9401: sta $2C
9402: lda $42
9403: adc #$30
9404: sta $42
9405: LC6D8: jsr L8818
9406: jsr L884B
9407: bit RUNMOD
9408: bpl LC70F
9409: ldx #$30
9410: bit MVDFLG
9411: .if CompileComputer >= PLUS4_03
9412: bmi LC6EA
9413: .else
9414: bne LC6EA
9415: .endif
9416: ldx #$D0
9417: LC6EA: txa
9418: clc
9419: adc $3C
9420: sta $3C
9421: txa
9422: clc
9423: adc $025C
9424: sta $025C
9425: txa
9426: clc
9427: adc $04F6
9428: sta $04F6
9429: jsr LA760
9430: LC703: lda FNDPNT
9431: cmp #$B0
9432: bne LC710
9433: lda $3E
9434: cmp #$07
9435: bne LC710
9436: LC70F: rts
9437:
9438: LC710: ldy #$00
9439: lda (FNDPNT),y
9440: cmp #$81
9441: bne LC726
9442: ldy #$02
9443: jsr LC7AD
9444: ldy #$10
9445: jsr LC7AD
9446: lda #$12
9447: bne LC72D
9448: LC726: ldy #$04
9449: jsr LC7AD
9450: lda #$05
9451: LC72D: clc
9452: adc FNDPNT
9453: sta FNDPNT
9454: bcc LC703
9455: inc $3E
9456: bne LC703
9457: LC738: lda MVDFLG
9458: bne LC73D
9459: rts
9460:
9461: LC73D: ldy #$00
9462: sty MVDFLG
9463: lda $38
9464: bmi LC769
9465: jsr LA954
9466: jsr LC86B
9467: lda MSIZ
9468: sta INDEX1
9469: lda $0534
9470: sta $23
9471: jsr LC7F0
9472: ldx #$01
9473: LC75A: lda MSIZ,x
9474: sta MEMSIZ,x
9475: lda INDEX1,x
9476: sta FRETOP,x
9477: dex
9478: bpl LC75A
9479: jmp LC825
9480:
9481: LC769: ldy #$00
9482: sty MVDFLG
9483: sty INDEX1
9484: sty INDEX2
9485: lda #$10
9486: sta $23
9487: lda #$40
9488: sta $25
9489: LC779: jsr INDIN2
9490: sta (INDEX1),y
9491: iny
9492: bne LC779
9493: inc $23
9494: inc $25
9495: lda $32
9496: cmp $25
9497: bcs LC779
9498: lda $32
9499: sec
9500: sbc #$30
9501: sta $32
9502: lda $2C
9503: sbc #$30
9504: sta $2C
9505: lda $2E
9506: sbc #$30
9507: sta $2E
9508: lda $30
9509: sbc #$30
9510: sta $30
9511: lda $42
9512: sbc #$30
9513: sta $42
9514: jmp LC6D8
9515:
9516: LC7AD: lda (FNDPNT),y
9517: bit MVDFLG
9518: bne LC7B9
9519: sec
9520: sbc #$30
9521: sta (FNDPNT),y
9522: rts
9523:
9524: LC7B9: clc
9525: adc #$30
9526: sta (FNDPNT),y
9527: rts
9528:
9529: LC7BF: lda MVDFLG
9530: beq LC7C4
9531: rts
9532:
9533: LC7C4: ldx #$23
9534: jmp L8683
9535:
9536: LC7C9: lda TEDVSP
9537: and #$DF
9538: sta TEDVSP
9539: lda TEDHSP
9540: and #$EF
9541: sta TEDHSP
9542: lda TEDVIDEORAM
9543: and #$07
9544: ora #$08
9545: sta TEDVIDEORAM
9546: lda TEDFREQV1HI
9547: ora #$04
9548: sta TEDFREQV1HI
9549: lda #$00
9550: sta GRAPHM
9551: rts
9552:
9553: LC7F0: lda MEMSIZ
9554: sta INDEX2
9555: lda $38
9556: sta $25
9557: LC7F8: txa
9558: eor #$FF
9559: sta DEFPNT
9560: tya
9561: eor #$FF
9562: sta $4F
9563: ldy #$00
9564: LC804: inc DEFPNT
9565: bne LC80C
9566: inc $4F
9567: beq LC824
9568: LC80C: lda INDEX1
9569: bne LC812
9570: dec $23
9571: LC812: dec INDEX1
9572: lda INDEX2
9573: bne LC81A
9574: dec $25
9575: LC81A: dec INDEX2
9576: jsr INDIN2
9577: sta (INDEX1),y
9578: jmp LC804
9579:
9580: LC824: rts
9581:
9582: LC825: lda MEMSIZ
9583: ldy $38
9584: sta INDEX1
9585: sty $23
9586: LC82D: sec
9587: lda FRETOP
9588: sbc INDEX1
9589: lda $34
9590: sbc $23
9591: bcs LC824
9592: sec
9593: lda INDEX1
9594: sbc #$02
9595: sta INDEX1
9596: bcs LC843
9597: dec $23
9598: LC843: ldy #$01
9599: LC845: jsr INDIN1
9600: sta INDEX2,y
9601: dey
9602: bpl LC845
9603: iny
9604: jsr INDIN2
9605: sta VOICNO
9606: lda INDEX1
9607: sec
9608: sbc VOICNO
9609: sta INDEX1
9610: bcs LC85F
9611: dec $23
9612: LC85F: ldy #$02
9613: LC861: lda $21,y
9614: sta (INDEX2),y
9615: dey
9616: bne LC861
9617: beq LC82D
9618: LC86B: sec
9619: lda MEMSIZ
9620: sbc FRETOP
9621: tax
9622: lda $38
9623: sbc $34
9624: tay
9625: rts
9626:
9627: LC877: lda MEMSIZ
9628: sta INDEX1
9629: lda $38
9630: sta $23
9631: LC87F: sec
9632: lda FRETOP
9633: sbc INDEX1
9634: lda $34
9635: sbc $23
9636: bcs LC8BB
9637: sec
9638: lda INDEX1
9639: sbc #$02
9640: sta INDEX1
9641: bcs LC895
9642: dec $23
9643: LC895: clc
9644: ldy #$00
9645: LC898: jsr INDIN1
9646: sta INDEX2,y
9647: adc DEFPNT,y
9648: sta (INDEX1),y
9649: iny
9650: cpy #$01
9651: bne LC898
9652: dey
9653: jsr INDIN2
9654: sta VOICNO
9655: lda INDEX1
9656: sec
9657: sbc VOICNO
9658: sta INDEX1
9659: bcs LC87F
9660: dec $23
9661: bcc LC87F
9662: LC8BB: rts
9663:
9664: LC8BC: jsr LCB1F
9665: and #$E6
9666: bne LC93E
9667: ldy #$00
9668: jsr LCA3F
9669: lda #$00
9670: ldx DOSFA
9671: ldy #$60
9672: jsr kSETLFS
9673: sec
9674: jsr kOPEN
9675: bcc LC8E1
9676: pha
9677: jsr LC935
9678: pla
9679: tax
9680: jmp L8683
9681:
9682: LC8E1: ldx #$00
9683: jsr kCHKIN
9684: ldy #$03
9685: LC8E8: sty T3
9686: LC8EB: jsr kCHRIN
9687: sta T4
9688: jsr kREADST
9689: bne LC935
9690: jsr kCHRIN
9691: sta $02EE
9692: jsr kREADST
9693: bne LC935
9694: dec T3
9695: bne LC8EB
9696: ldx T4
9697: lda $02EE
9698: jsr LA45F
9699: lda #$20
9700: jsr kCHROUT
9701: LC914: jsr kCHRIN
9702: pha
9703: jsr kREADST
9704: bne LC934
9705: pla
9706: beq LC926
9707: jsr kCHROUT
9708: jmp LC914
9709:
9710: LC926: lda #$0D
9711: jsr kCHROUT
9712: jsr kSTOP
9713: beq LC935
9714: ldy #$02
9715: bne LC8E8
9716: LC934: pla
9717: LC935: jsr kCLRCHN
9718: lda #$00
9719: clc
9720: jmp kCLOSE
9721:
9722: LC93E: jmp L94A1
9723:
9724: LC941: lda #$66
9725: jsr LCB21
9726: jsr LCCB5
9727: ldy #$04
9728: jsr LCA3F
9729: jmp LA7E1
9730:
9731: LC951: lda #$E6
9732: jsr LCB21
9733: jsr LCCB5
9734: lda #$00
9735: sta DOSSA
9736: sta VERCK
9737: ldy #$05
9738: jsr LCA3F
9739: jmp LA7FA
9740:
9741: LC968: jsr LCB1F
9742: jsr LCCAF
9743: and #$11
9744: cmp #$11
9745: beq LC977
9746: LC974: jmp L94A1
9747:
9748: LC977: jsr kCLALL
9749: jsr LCD2B
9750: bne LC996
9751: ldy #$09
9752: jsr LCA3F
9753: jsr LCCCF
9754: bit RUNMOD
9755: bmi LC996
9756: ldy #$00
9757: lda #$7A
9758: jsr INDSUB
9759: cmp #$32
9760: bcs LC997
9761: LC996: rts
9762:
9763: LC997: ldx #$24
9764: jmp L8683
9765:
9766: LC99C: jsr LCB1F
9767: jsr LCCAF
9768: jsr LCD2B
9769: bne LC996
9770: ldy #$0F
9771: jsr LCA3F
9772: jsr LCCCF
9773: bit RUNMOD
9774: bmi LC996
9775: lda #$0D
9776: jsr kCHROUT
9777: ldy #$00
9778: LC9BA: lda #$7A
9779: jsr INDSUB
9780: beq LC9C7
9781: jsr kCHROUT
9782: iny
9783: bne LC9BA
9784: LC9C7: lda #$0D
9785: jmp kCHROUT
9786:
9787: LC9CC: jsr LCB1F
9788: and #$E7
9789: bne LC974
9790: jsr kCLALL
9791: ldy #$14
9792: bne LCA3F
9793: LC9DA: jsr LCB1F
9794: and #$30
9795: .if CompileComputer = PLUS4_BETA_0203
9796: eor #$30
9797: .else
9798: cmp #$30
9799: .endif
9800: bne LC9E9
9801: lda POINT
9802: and #$C7
9803: beq LC9F0
9804: LC9E9: lda POINT
9805: jsr LCCC0
9806: lda POINT
9807: LC9F0: ldy #$17
9808: bne LCA3F
9809: LC9F4: lda #$E4
9810: jsr LCB21
9811: jsr LCCC6
9812: ldy #$1E
9813: bne LCA3F
9814: LCA00: lda #$C7
9815: jsr LCB21
9816: and #$30
9817: cmp #$30
9818: beq LCA0E
9819: jmp L94A1
9820:
9821: LCA0E: jsr kCLALL
9822: ldy #$25
9823: jmp LCA3F
9824:
9825: LCA16: pha
9826: lda XCNT
9827: ldx #$7C
9828: ldy #$02
9829: jsr kSETNAM
9830: lda DOSLA
9831: ldx DOSFA
9832: ldy DOSSA
9833: jsr kSETLFS
9834: pla
9835: beq LCA3E
9836: ldx XCNT
9837: sec
9838: jsr kOPEN
9839: lda DOSLA
9840: sec
9841: jmp kCLOSE
9842:
9843: LCA3E: rts
9844:
9845: LCA3F: jsr LCD57
9846: ldx #$00
9847: stx XCNT
9848: LCA47: lda LCAF5,y
9849: beq LCA16
9850: cmp #$80
9851: beq LCA16
9852: tax
9853: dex
9854: beq LCA72
9855: dex
9856: beq LCA78
9857: dex
9858: beq LCA7E
9859: dex
9860: beq LCA85
9861: dex
9862: beq LCA8D
9863: dex
9864: beq LCA97
9865: dex
9866: beq LCAA5
9867: dex
9868: beq LCAAF
9869: dex
9870: beq LCAD2
9871: LCA6C: jsr LCAEB
9872: LCA6F: iny
9873: bne LCA47
9874: LCA72: lda POINT
9875: and #$10
9876: beq LCA6F
9877: LCA78: lda DOSDS1
9878: jmp LCA81
9879:
9880: LCA7E: lda DOSDS2
9881: LCA81: ora #$30
9882: bne LCA6C
9883: LCA85: lda #$40
9884: bit POINT
9885: bmi LCA6C
9886: bpl LCA6F
9887: LCA8D: lda DOSF1L
9888: beq LCA6F
9889: lda #$3A
9890: jsr LCAEB
9891: LCA97: tya
9892: pha
9893: lda DOSF1A
9894: ldy $0271
9895: ldx DOSF1L
9896: jmp LCABA
9897:
9898: LCAA5: lda DOSF2L
9899: beq LCA6F
9900: lda #$3A
9901: jsr LCAEB
9902: LCAAF: tya
9903: pha
9904: lda DOSF2A
9905: ldy $0275
9906: ldx DOSF2L
9907: LCABA: sta INDEX1
9908: sty $23
9909: stx VOICNO
9910: ldy #$00
9911: LCAC2: jsr INDIN1
9912: jsr LCAEB
9913: iny
9914: cpy VOICNO
9915: bne LCAC2
9916: pla
9917: tay
9918: jmp LCA6F
9919:
9920: LCAD2: lda DODDID
9921: beq LCA6F
9922: lda #$2C
9923: jsr LCAEB
9924: lda DODDID
9925: jsr LCAEB
9926: lda $027A
9927: jsr LCAEB
9928: jmp LCA6F
9929:
9930: LCAEB: ldx XCNT
9931: sta DOSSTR,x
9932: inc XCNT
9933: rts
9934:
9935: LCAF5: .byte "$"
9936: .byte $07,$05,$00,$04,$02
9937: .byte ":"
9938: .byte $06,$00
9939: .byte "N"
9940: .byte $02
9941: .byte ":"
9942: .byte $06,$09,$80
9943: .byte "S"
9944: .byte $02
9945: .byte ":"
9946: .byte $06,$80
9947: .byte "V"
9948: .byte $02,$80
9949: .byte "C"
9950: .byte $03,$07
9951: .byte "="
9952: .byte $02,$05,$80
9953: .byte "R"
9954: .byte $02
9955: .byte ":"
9956: .byte $08
9957: .byte "="
9958: .byte $06,$80
9959: .byte "D"
9960: .byte $03
9961: .byte "="
9962: .byte $02,$80
9963: LCB1F: lda #$00
9964: LCB21: pha
9965: lda #$00
9966: sta POINT
9967: ldx #$1E
9968: LCB28: sta FNBUFR,x
9969: dex
9970: bne LCB28
9971: ldx #$08
9972: stx DOSFA
9973: ldx #$6F
9974: stx DOSSA
9975: ldx #$00
9976: stx DOSLA
9977: jsr CHRGOT
9978: bne LCB49
9979: LCB42: pla
9980: jsr LCCAA
9981: lda POINT
9982: rts
9983:
9984: LCB49: cmp #$44
9985: beq LCB6A
9986: cmp #$91
9987: beq LCB9F
9988: cmp #$55
9989: beq LCB64
9990: cmp #$49
9991: beq LCB83
9992: cmp #$22
9993: beq LCBA5
9994: cmp #$28
9995: beq LCBA5
9996: LCB61: jmp L94A1
9997:
9998: LCB64: jsr LCC58
9999: jmp LCBCD
10000:
10001: LCB6A: lda #$10
10002: jsr LCCAA
10003: jsr LCC97
10004: cpx #$02
10005: bcs LCB80
10006: stx DOSDS1
10007: stx DOSDS2
10008: lda #$10
10009: bne LCBCD
10010: LCB80: jmp LCC49
10011:
10012: LCB83: lda DIDCHK
10013: bne LCB61
10014: jsr CHRGET
10015: sta DODDID
10016: jsr CHRGET
10017: sta $027A
10018: lda #$FF
10019: sta DIDCHK
10020: jsr CHRGET
10021: jmp LCBD1
10022:
10023: LCB9F: jsr LCC51
10024: jmp LCBCD
10025:
10026: LCBA5: lda #$01
10027: jsr LCC69
10028: sta DOSF1L
10029: sta XCNT
10030: lda #$5E
10031: sta DOSF1A
10032: sta INDEX2
10033: lda #$02
10034: sta $0271
10035: sta $25
10036: ldy #$00
10037: LCBC0: jsr INDIN1
10038: sta (INDEX2),y
10039: iny
10040: cpy XCNT
10041: bcc LCBC0
10042: lda #$01
10043: LCBCD: ora POINT
10044: sta POINT
10045: LCBD1: jsr CHRGOT
10046: bne LCBD9
10047: LCBD6: jmp LCB42
10048:
10049: LCBD9: cmp #$2C
10050: bne LCBE3
10051: jsr CHRGET
10052: jmp LCB49
10053:
10054: LCBE3: cmp #$91
10055: beq LCB9F
10056: cmp #$A4
10057: bne LCC46
10058: LCBEB: jsr CHRGET
10059: cmp #$44
10060: beq LCC02
10061: cmp #$91
10062: beq LCC15
10063: cmp #$55
10064: beq LCC1B
10065: cmp #$22
10066: beq LCC21
10067: cmp #$28
10068: beq LCC21
10069: LCC02: lda #$20
10070: jsr LCCAA
10071: jsr LCC97
10072: cpx #$02
10073: bcs LCC49
10074: stx DOSDS2
10075: lda #$20
10076: bne LCC31
10077: LCC15: jsr LCC51
10078: jmp LCC31
10079:
10080: LCC1B: jsr LCC58
10081: jmp LCC31
10082:
10083: LCC21: lda #$02
10084: jsr LCC69
10085: sta DOSF2L
10086: stx DOSF2A
10087: sty $0275
10088: lda #$02
10089: LCC31: ora POINT
10090: sta POINT
10091: jsr CHRGOT
10092: beq LCBD6
10093: cmp #$2C
10094: beq LCBEB
10095: cmp #$91
10096: beq LCC15
10097: cmp #$55
10098: beq LCC1B
10099: LCC46: ldx #$0B
10100: .byte $2C
10101: LCC49: ldx #$0E
10102: .byte $2C
10103: LCC4C: ldx #$17
10104: jmp L8683
10105:
10106: LCC51: jsr CHRGET
10107: cmp #$55
10108: bne LCC46
10109: LCC58: jsr LCC97
10110: cpx #$20
10111: bcs LCC49
10112: cpx #$03
10113: bcc LCC49
10114: stx DOSFA
10115: lda #$08
10116: rts
10117:
10118: LCC69: jsr LCCAA
10119: jsr L9C48
10120: tax
10121: beq LCC49
10122: ldy #$00
10123: jsr INDIN1
10124: cmp #$40
10125: bne LCC8D
10126: lda #$80
10127: jsr LCCAA
10128: lda POINT
10129: ora #$80
10130: sta POINT
10131: dex
10132: inc INDEX1
10133: bne LCC8D
10134: inc $23
10135: LCC8D: txa
10136: cmp #$11
10137: bcs LCC4C
10138: ldx INDEX1
10139: ldy $23
10140: rts
10141:
10142: LCC97: jsr CHRGET
10143: beq LCC46
10144: bcc LCCA7
10145: jsr L948E
10146: jsr L9D84
10147: jmp L948B
10148:
10149: LCCA7: jmp L9D84
10150:
10151: LCCAA: and POINT
10152: bne LCC46
10153: rts
10154:
10155: LCCAF: and #$E6
10156: beq LCCB5
10157: LCCB3: bne LCC46
10158: LCCB5: lda POINT
10159: and #$01
10160: cmp #$01
10161: bne LCCB3
10162: lda POINT
10163: rts
10164:
10165: LCCC0: and #$C4
10166: bne LCCB3
10167: lda POINT
10168: LCCC6: and #$03
10169: cmp #$03
10170: bne LCCB3
10171: lda POINT
10172: rts
10173:
10174: LCCCF: lda DSDESC
10175: bne LCCE4
10176: lda #$28
10177: sta DSDESC
10178: jsr LA906
10179: stx $7A
10180: sty $7B
10181: ldy #$28
10182: .if CompileComputer >= PLUS4_05
10183: jsr LCDBA
10184: nop
10185: .else
10186: lda #$0D
10187: sta ($7A),y
10188: .endif
10189: LCCE4: ldx DOSFA
10190: bne LCCEE
10191: ldx #$08
10192: stx DOSFA
10193: LCCEE: lda #$00
10194: ldy #$6F
10195: jsr kSETLFS
10196: lda #$00
10197: jsr kSETNAM
10198: jsr kOPEN
10199: ldx #$00
10200: jsr kCHKIN
10201: bcs LCD1F
10202: ldy #$FF
10203: LCD06: iny
10204: jsr kCHRIN
10205: cmp #$0D
10206: beq LCD12
10207: sta ($7A),y
10208: bne LCD06
10209: LCD12: lda #$00
10210: sta ($7A),y
10211: jsr kCLRCHN
10212: lda #$00
10213: sec
10214: jmp kCLOSE
10215:
10216: LCD1F: pha
10217: jsr LCD12
10218: jsr LCD57
10219: pla
10220: tax
10221: jmp L8683
10222:
10223: LCD2B: bit RUNMOD
10224: bmi LCD54
10225: jsr LFF4F
10226:
10227: .byte "ARE YOU SURE?",0
10228:
10229: jsr kCLRCHN
10230: jsr kCHRIN
10231: pha
10232: LCD47: cmp #$0D
10233: beq LCD50
10234: jsr kCHRIN
10235: bne LCD47
10236: LCD50: pla
10237: cmp #$59
10238: rts
10239:
10240: LCD54: lda #$00
10241: rts
10242:
10243: LCD57: tya
10244: pha
10245: lda DSDESC
10246: beq LCD67
10247: ldy #$28
10248: tya
10249: sta ($7A),y
10250: iny
10251: lda #$FF
10252: sta ($7A),y
10253: LCD67: lda #$00
10254: sta DSDESC
10255: pla
10256: tay
10257: rts
10258:
10259: LCD6E: .byte ",0 YEK"
10260: LCD74: tax
10261: tya
10262: pha
10263: lda #$00
10264: jsr LA45F
10265: pla
10266: tay
10267: rts
10268:
10269: LCD7F: sta $3A
10270: dey
10271: tax
10272: inx
10273: bne LCD88
10274: stx RUNMOD
10275: LCD88: rts
10276:
10277: LCD89: .byte $D8,$1B,$14,$0C,$07,$7B,$01,$D7
10278: .byte $D8,$11,$07,$10,$1D,$7B,$17,$D8
10279: .byte $07,$10,$05,$1A,$1A,$16,$7B,$1F
10280: .byte $D8,$1B,$10,$02,$1A,$17,$7B,$13
10281: .byte $47,$D8
10282: ldy #$21
10283: LCDAD: lda LCD89,y
10284: eor #$55
10285: jsr kCHROUT
10286: dey
10287: bpl LCDAD
10288: rts
10289:
10290: .byte $00
10291:
10292: .if CompileComputer >= PLUS4_05
10293:
10294: LCDBA: lda #$79
10295: sta ($7A),y
10296: lda #$00
10297: iny
10298: sta ($7A),y
10299: rts
10300:
10301: .elseif CompileComputer = PLUS4_01
10302:
10303: .byte $0E,$F0,$0E,$F1,$0F,$F5,$F0
10304: .byte $0F,$F0,$0F,$F0,$0F,$F0,$0F,$F0
10305: .byte $1F,$F0,$0F,$F0,$0F,$D0,$0F,$F0
10306: .byte $0F,$F0,$0F,$E0,$2F,$70,$0F,$70
10307: .byte $0F,$D0,$0F,$B0,$6F,$F0,$4F,$0F
10308: .byte $F0,$0F,$F1,$0F,$F0,$0F,$F0,$0F
10309: .byte $F0,$0F,$F0,$0F,$F0,$0F,$F0,$0E
10310: .byte $F4,$0F,$F1,$0F,$F1,$07,$F3,$0B
10311: .byte $F0,$0E,$F1,$07,$F0,$06,$F0
10312: .endif
10313:
10314: .if CompileComputer < PLUS4_01
10315: FillUntil $CDFF,$00
10316:
10317: .if CompileComputer = PLUS4_BETA_0119
10318: .byte $F2
10319: .else
10320: .byte $9A
10321: .endif
10322: .endif
10323:
10324: FillUntil $CE00,$FF
10325:
10326: LCE00: tsx
10327: lda $0104,x
10328: and #$10
10329: bne LCE0B
10330: jmp (lICINV)
10331:
10332: LCE0B: jmp (lICBINV)
10333:
10334: LCE0E: lda TEDIFR
10335: and #$02
10336: beq LCE18
10337: jsr LCE60
10338: LCE18: bit APRES
10339: bpl LCE2B
10340: lda LFD01
10341: sta ASTAT
10342: bpl LCE2B
10343: jsr LEA95
10344: jsr LEA5B
10345: LCE2B: jsr LE3E4
10346: lda TEDIFR
10347: and #$02
10348: beq LCE5D
10349: sta TEDIFR
10350: bit TEDRASTER
10351: lda #$CC
10352: bvc LCE5A
10353: jmp (lITIME)
10354:
10355: LCE42:
10356: .if CompileComputer >= PLUS4_01
10357: jsr LCFBF
10358: .else
10359: jsr kUDTIM
10360: .endif
10361: jsr LCECD
10362: lda CURBNK
10363: pha
10364: lda #$00
10365: sta CURBNK
10366: php
10367: cli
10368: jsr iSCNKEY
10369: plp
10370: pla
10371: sta CURBNK
10372: lda #$A1
10373: LCE5A: sta TEDRASTER
10374: LCE5D: jmp LFCBE
10375:
10376: LCE60: lda TEDRASTERROWHi
10377: and #$01
10378: bne LCEA0
10379: lda TEDRASTERROWLO
10380: cmp #$A3
10381: bcs LCE9C
10382: bit GRAPHM
10383: bvc LCEC4
10384: .if CompileComputer = PLUS4_BETA_0119
10385: lda TEDVIDEORAM
10386: and #$07
10387: ora #$08
10388: .else
10389: lda #$08
10390: .endif
10391: sta TEDVIDEORAM
10392: lda TEDVSP
10393: and #$DF
10394: tay
10395: lda TEDHSP
10396: and #$EF
10397: tax
10398: lda TEDFREQV1HI
10399: .if CompileComputer = PLUS4_BETA_0119
10400: ora #$04
10401: .else
10402: ora FFRMSK
10403: .endif
10404: pha
10405: LCE8A: lda TEDRASTERROWLO
10406: cmp #$A3
10407: bcc LCE8A
10408: pla
10409: sta TEDFREQV1HI
10410: sty TEDVSP
10411: stx TEDHSP
10412: rts
10413:
10414: LCE9C: cmp #$CC
10415: bcc LCEC4
10416: LCEA0: ldx GRAPHM
10417: beq LCEC4
10418: bpl LCEAE
10419: lda TEDHSP
10420: ora #$10
10421: sta TEDHSP
10422: LCEAE: lda TEDVSP
10423: ora #$20
10424: sta TEDVSP
10425: lda TEDFREQV1HI
10426: and #$FB
10427: sta TEDFREQV1HI
10428: .if CompileComputer = PLUS4_BETA_0119
10429: lda TEDVIDEORAM
10430: and #$07
10431: ora #$18
10432: .else
10433: lda VMBMSK
10434: .endif
10435: sta TEDVIDEORAM
10436: LCEC4: rts
10437:
10438: FillUntil $CECD,$EA
10439:
10440: LCECD: ldx #$01
10441: LCECF: lda MTIMLO,x
10442: ora MTIMHI,x
10443: beq LCEEA
10444: inc MTIMLO,x
10445: bne LCEEA
10446: inc MTIMHI,x
10447: bne LCEEA
10448: lda LCEEE,x
10449: and TEDVOL
10450: sta TEDVOL
10451: LCEEA: dex
10452: bpl LCECF
10453: rts
10454:
10455: LCEEE: .byte $EF,$9F
10456:
10457: iUDTIM: inc $A5
10458: bne LCEFA
10459: inc $A4
10460: bne LCEFA
10461: inc TIME
10462: LCEFA: sec
10463: lda $A5
10464: sbc #$01
10465: lda $A4
10466: sbc #$1A
10467: lda TIME
10468: sbc #$4F
10469: bcc LCF11
10470: ldx #$00
10471: stx TIME
10472: stx $A4
10473: stx $A5
10474: LCF11: lda #$7F
10475: jsr LDB70
10476: sta $EE
10477: lda #$7F
10478: jsr LDB70
10479: cmp $EE
10480: bne LCF11
10481: ora #$7F
10482: sta STKEY
10483: rts
10484:
10485: iRDTIM: sei
10486: lda $A5
10487: ldx $A4
10488: ldy TIME
10489: iSETTIM:sei
10490: sta $A5
10491: stx $A4
10492: sty TIME
10493: cli
10494: rts
10495:
10496: LCF36: .byte $0D
10497: .byte "MONITOR"
10498: .byte $8D,$0D
10499: .byte "BREA"
10500: .byte $CB,$0D
10501: .byte " PC SR AC XR YR SP"
10502:
10503:
10504: .byte $0D
10505: .byte ";"
10506: .byte $A0
10507: .byte "A"
10508: .byte $A0
10509: .byte " ERRO"
10510: .byte $D2
10511: LCF66: lda LCF36,x
10512: php
10513: and #$7F
10514: jsr kCHROUT
10515: inx
10516: plp
10517: bpl LCF66
10518: rts
10519:
10520: LCF74: lda #$0D
10521: ldx DFLTN
10522: cpx #$03
10523: beq LCF82
10524: ldx DFLTO
10525: cpx #$03
10526: beq LCF85
10527: LCF82: jsr LDC49
10528: LCF85: lda #$0D
10529: jmp LD9B0
10530:
10531: LCF8A: lda COLKEY,x
10532: bit COLSW
10533: bpl LCF95
10534: lda LE143,x
10535: LCF95: rts
10536:
10537: LCF96: bit RAMROM
10538: bmi LCF9E
10539: lda (T2),y
10540: rts
10541:
10542: LCF9E: lda #$A1
10543: sta $07DF
10544: jmp KLUDES
10545:
10546: LCFA6: lda #$09
10547: sta LFD20
10548: ora #$80
10549: sta LFD20
10550: jmp LFC1E
10551:
10552: .if CompileComputer = PLUS4_BETA_0119
10553:
10554: .byte $FF
10555: .byte $C2
10556: inc PDIR,x
10557: inx
10558: .byte $23
10559: .byte $F7
10560: lsr $ADDE
10561: .byte $72
10562: ror SGNFLG
10563: .else
10564: LCFB3: php
10565: sei
10566: sta TEDROMSEL
10567: lda (PDIR),y
10568: sta TEDRAMSEL
10569: plp
10570: rts
10571: .endif
10572:
10573: .if CompileComputer < PLUS4_01
10574:
10575: .if CompileComputer = PLUS4_BETA_0203
10576: .byte $67
10577: .endif
10578: .byte $32, $87, $60, $7f, $10, $4d, $92, $ef, $28, $3b, $be, $7d, $30, $1d, $76, $0d
10579: .byte $20, $eb, $62, $eb, $e0, $4f, $f2, $bf, $4a, $3f, $40, $af, $a8, $5f, $10, $6f
10580: .byte $45, $f3, $1c, $d4, $07, $e8, $31, $e9, $3d, $7d, $0e, $ff, $07, $6a, $00, $d7
10581: .byte $05, $75, $b4, $e8, $02, $fe, $02, $fd, $11, $f2, $0a, $fe, $28, $db, $08
10582:
10583: .else
10584:
10585: LCFBF: lda SPI6529
10586: and #$04
10587: bne LCFE1
10588: bit LSEM
10589: bmi LCFD1
10590: lda PORT
10591: and #$F7
10592: sta PORT
10593: LCFD1:
10594:
10595: .if IS_PAL
10596: dec PALCNT
10597: bpl LCFDE
10598: lda #$04
10599: sta PALCNT
10600: jsr iUDTIM
10601: .endif
10602:
10603: LCFDE: jmp iUDTIM
10604:
10605: LCFE1: sta LSEM
10606: jsr LE3B0
10607: jmp LCFD1
10608:
10609: LCFEA: inx
10610: stx LFEC4
10611: stx LFEC0
10612: lda #$80
10613: sta TEDVOL
10614: rts
10615:
10616: .if CompileComputer = PLUS4_01
10617: .byte $F5,$07,$F0,$0A,$F8,$0F,$F8,$0A
10618: .byte $F2
10619: .endif
10620: .endif
10621:
10622: FillUntil $D000,$FF
10623:
10624: CHARROMCAP:
10625: .byte $3C,$66,$6E,$6E,$60,$62,$3C,$00
10626: .byte $18,$3C,$66,$7E,$66,$66,$66,$00
10627: .byte $7C,$66,$66,$7C,$66,$66,$7C,$00
10628: .byte $3C,$66,$60,$60,$60,$66,$3C,$00
10629: .byte $78,$6C,$66,$66,$66,$6C,$78,$00
10630: .byte $7E,$60,$60,$78,$60,$60,$7E,$00
10631: .byte $7E,$60,$60,$78,$60,$60,$60,$00
10632: .byte $3C,$66,$60,$6E,$66,$66,$3C,$00
10633: .byte $66,$66,$66,$7E,$66,$66,$66,$00
10634: .byte $3C,$18,$18,$18,$18,$18,$3C,$00
10635: .byte $1E,$0C,$0C,$0C,$0C,$6C,$38,$00
10636: .byte $66,$6C,$78,$70,$78,$6C,$66,$00
10637: .byte $60,$60,$60,$60,$60,$60,$7E,$00
10638: .byte $63,$77,$7F,$6B,$63,$63,$63,$00
10639: .byte $66,$76,$7E,$7E,$6E,$66,$66,$00
10640: .byte $3C,$66,$66,$66,$66,$66,$3C,$00
10641: .byte $7C,$66,$66,$7C,$60,$60,$60,$00
10642: .byte $3C,$66,$66,$66,$66,$3C,$0E,$00
10643: .byte $7C,$66,$66,$7C,$78,$6C,$66,$00
10644: .byte $3C,$66,$60,$3C,$06,$66,$3C,$00
10645: .byte $7E,$18,$18,$18,$18,$18,$18,$00
10646: .byte $66,$66,$66,$66,$66,$66,$3C,$00
10647: .byte $66,$66,$66,$66,$66,$3C,$18,$00
10648: .byte $63,$63,$63,$6B,$7F,$77,$63,$00
10649: .byte $66,$66,$3C,$18,$3C,$66,$66,$00
10650: .byte $66,$66,$66,$3C,$18,$18,$18,$00
10651: .byte $7E,$06,$0C,$18,$30,$60,$7E,$00
10652: .byte $3C,$30,$30,$30,$30,$30,$3C,$00
10653: .byte $0C,$12,$30,$7C,$30,$62,$FC,$00
10654: .byte $3C,$0C,$0C,$0C,$0C,$0C,$3C,$00
10655: .byte $00,$18,$3C,$7E,$18,$18,$18,$18
10656: .byte $00,$10,$30,$7F,$7F,$30,$10,$00
10657: .byte $00,$00,$00,$00,$00,$00,$00,$00
10658: .byte $18,$18,$18,$18,$00,$00,$18,$00
10659: .byte $66,$66,$66,$00,$00,$00,$00,$00
10660: .byte $66,$66,$FF,$66,$FF,$66,$66,$00
10661: .byte $18,$3E,$60,$3C,$06,$7C,$18,$00
10662: .byte $62,$66,$0C,$18,$30,$66,$46,$00
10663: .byte $3C,$66,$3C,$38,$67,$66,$3F,$00
10664: .byte $06,$0C,$18,$00,$00,$00,$00,$00
10665: .byte $0C,$18,$30,$30,$30,$18,$0C,$00
10666: .byte $30,$18,$0C,$0C,$0C,$18,$30,$00
10667: .byte $00,$66,$3C,$FF,$3C,$66,$00,$00
10668: .byte $00,$18,$18,$7E,$18,$18,$00,$00
10669: .byte $00,$00,$00,$00,$00,$18,$18,$30
10670: .byte $00,$00,$00,$7E,$00,$00,$00,$00
10671: .byte $00,$00,$00,$00,$00,$18,$18,$00
10672: .byte $00,$03,$06,$0C,$18,$30,$60,$00
10673: .byte $3C,$66,$6E,$76,$66,$66,$3C,$00
10674: .byte $18,$18,$38,$18,$18,$18,$7E,$00
10675: .byte $3C,$66,$06,$0C,$30,$60,$7E,$00
10676: .byte $3C,$66,$06,$1C,$06,$66,$3C,$00
10677: .byte $06,$0E,$1E,$66,$7F,$06,$06,$00
10678: .byte $7E,$60,$7C,$06,$06,$66,$3C,$00
10679: .byte $3C,$66,$60,$7C,$66,$66,$3C,$00
10680: .byte $7E,$66,$0C,$18,$18,$18,$18,$00
10681: .byte $3C,$66,$66,$3C,$66,$66,$3C,$00
10682: .byte $3C,$66,$66,$3E,$06,$66,$3C,$00
10683: .byte $00,$00,$18,$00,$00,$18,$00,$00
10684: .byte $00,$00,$18,$00,$00,$18,$18,$30
10685: .byte $0E,$18,$30,$60,$30,$18,$0E,$00
10686: .byte $00,$00,$7E,$00,$7E,$00,$00,$00
10687: .byte $70,$18,$0C,$06,$0C,$18,$70,$00
10688: .byte $3C,$66,$06,$0C,$18,$00,$18,$00
10689: .byte $00,$00,$00,$FF,$FF,$00,$00,$00
10690: .byte $08,$1C,$3E,$7F,$7F,$1C,$3E,$00
10691: .byte $18,$18,$18,$18,$18,$18,$18,$18
10692: .byte $00,$00,$00,$FF,$FF,$00,$00,$00
10693: .byte $00,$00,$FF,$FF,$00,$00,$00,$00
10694: .byte $00,$FF,$FF,$00,$00,$00,$00,$00
10695: .byte $00,$00,$00,$00,$FF,$FF,$00,$00
10696: .byte $30,$30,$30,$30,$30,$30,$30,$30
10697: .byte $0C,$0C,$0C,$0C,$0C,$0C,$0C,$0C
10698: .byte $00,$00,$00,$E0,$F0,$38,$18,$18
10699: .byte $18,$18,$1C,$0F,$07,$00,$00,$00
10700: .byte $18,$18,$38,$F0,$E0,$00,$00,$00
10701: .byte $C0,$C0,$C0,$C0,$C0,$C0,$FF,$FF
10702: .byte $C0,$E0,$70,$38,$1C,$0E,$07,$03
10703: .byte $03,$07,$0E,$1C,$38,$70,$E0,$C0
10704: .byte $FF,$FF,$C0,$C0,$C0,$C0,$C0,$C0
10705: .byte $FF,$FF,$03,$03,$03,$03,$03,$03
10706: .byte $00,$3C,$7E,$7E,$7E,$7E,$3C,$00
10707: .byte $00,$00,$00,$00,$00,$FF,$FF,$00
10708: .byte $36,$7F,$7F,$7F,$3E,$1C,$08,$00
10709: .byte $60,$60,$60,$60,$60,$60,$60,$60
10710: .byte $00,$00,$00,$07,$0F,$1C,$18,$18
10711: .byte $C3,$E7,$7E,$3C,$3C,$7E,$E7,$C3
10712: .byte $00,$3C,$7E,$66,$66,$7E,$3C,$00
10713: .byte $18,$18,$66,$66,$18,$18,$3C,$00
10714: .byte $06,$06,$06,$06,$06,$06,$06,$06
10715: .byte $08,$1C,$3E,$7F,$3E,$1C,$08,$00
10716: .byte $18,$18,$18,$FF,$FF,$18,$18,$18
10717: .byte $C0,$C0,$30,$30,$C0,$C0,$30,$30
10718: .byte $18,$18,$18,$18,$18,$18,$18,$18
10719: .byte $00,$00,$03,$3E,$76,$36,$36,$00
10720: .byte $FF,$7F,$3F,$1F,$0F,$07,$03,$01
10721: .byte $00,$00,$00,$00,$00,$00,$00,$00
10722: .byte $F0,$F0,$F0,$F0,$F0,$F0,$F0,$F0
10723: .byte $00,$00,$00,$00,$FF,$FF,$FF,$FF
10724: .byte $FF,$00,$00,$00,$00,$00,$00,$00
10725: .byte $00,$00,$00,$00,$00,$00,$00,$FF
10726: .byte $C0,$C0,$C0,$C0,$C0,$C0,$C0,$C0
10727: .byte $CC,$CC,$33,$33,$CC,$CC,$33,$33
10728: .byte $03,$03,$03,$03,$03,$03,$03,$03
10729: .byte $00,$00,$00,$00,$CC,$CC,$33,$33
10730: .byte $FF,$FE,$FC,$F8,$F0,$E0,$C0,$80
10731: .byte $03,$03,$03,$03,$03,$03,$03,$03
10732: .byte $18,$18,$18,$1F,$1F,$18,$18,$18
10733: .byte $00,$00,$00,$00,$0F,$0F,$0F,$0F
10734: .byte $18,$18,$18,$1F,$1F,$00,$00,$00
10735: .byte $00,$00,$00,$F8,$F8,$18,$18,$18
10736: .byte $00,$00,$00,$00,$00,$00,$FF,$FF
10737: .byte $00,$00,$00,$1F,$1F,$18,$18,$18
10738: .byte $18,$18,$18,$FF,$FF,$00,$00,$00
10739: .byte $00,$00,$00,$FF,$FF,$18,$18,$18
10740: .byte $18,$18,$18,$F8,$F8,$18,$18,$18
10741: .byte $C0,$C0,$C0,$C0,$C0,$C0,$C0,$C0
10742: .byte $E0,$E0,$E0,$E0,$E0,$E0,$E0,$E0
10743: .byte $07,$07,$07,$07,$07,$07,$07,$07
10744: .byte $FF,$FF,$00,$00,$00,$00,$00,$00
10745: .byte $FF,$FF,$FF,$00,$00,$00,$00,$00
10746: .byte $00,$00,$00,$00,$00,$FF,$FF,$FF
10747: .byte $03,$03,$03,$03,$03,$03,$FF,$FF
10748: .byte $00,$00,$00,$00,$F0,$F0,$F0,$F0
10749: .byte $0F,$0F,$0F,$0F,$00,$00,$00,$00
10750: .byte $18,$18,$18,$F8,$F8,$00,$00,$00
10751: .byte $F0,$F0,$F0,$F0,$00,$00,$00,$00
10752: .byte $F0,$F0,$F0,$F0,$0F,$0F,$0F,$0F
10753: CHARROMSMALL:
10754: .byte $3C,$66,$6E,$6E,$60,$62,$3C,$00
10755: .byte $00,$00,$3C,$06,$3E,$66,$3E,$00
10756: .byte $60,$60,$7C,$66,$66,$66,$7C,$00
10757: .byte $00,$00,$3C,$66,$60,$66,$3C,$00
10758: .byte $06,$06,$3E,$66,$66,$66,$3E,$00
10759: .byte $00,$00,$3C,$66,$7E,$60,$3E,$00
10760: .byte $1C,$36,$30,$78,$30,$30,$30,$00
10761: .byte $00,$00,$3E,$66,$66,$3E,$06,$7C
10762: .byte $60,$60,$7C,$66,$66,$66,$66,$00
10763: .byte $18,$00,$18,$18,$18,$18,$18,$00
10764: .byte $06,$00,$06,$06,$06,$06,$66,$3C
10765: .byte $60,$60,$66,$6C,$78,$7C,$66,$00
10766: .byte $38,$18,$18,$18,$18,$18,$3C,$00
10767: .if CompileComputer >= PLUS4_01
10768: .byte $00,$00,$6B,$7F,$7F,$63,$63,$00
10769: .else
10770: .byte $00,$00,$66,$7F,$6B,$63,$63,$00
10771: .endif
10772: .byte $00,$00,$7C,$66,$66,$66,$66,$00
10773: .byte $00,$00,$3C,$66,$66,$66,$3C,$00
10774: .byte $00,$00,$7C,$66,$66,$7C,$60,$60
10775: .byte $00,$00,$3E,$66,$66,$3E,$06,$06
10776: .byte $00,$00,$7C,$66,$60,$60,$60,$00
10777: .byte $00,$00,$3C,$60,$3C,$06,$7C,$00
10778: .byte $30,$30,$FC,$30,$30,$36,$1C,$00
10779: .byte $00,$00,$66,$66,$66,$66,$3C,$00
10780: .byte $00,$00,$66,$66,$66,$3C,$18,$00
10781: .if CompileComputer >= PLUS4_01
10782: .byte $00,$00,$63,$6B,$7F,$36,$22,$00
10783: .else
10784: .byte $00,$00,$63,$6B,$6B,$7F,$36,$00
10785: .endif
10786: .byte $00,$00,$66,$3C,$18,$3C,$66,$00
10787: .byte $00,$00,$66,$66,$66,$3E,$06,$7C
10788: .byte $00,$00,$7E,$0C,$18,$30,$7E,$00
10789: .byte $3C,$30,$30,$30,$30,$30,$3C,$00
10790: .byte $0C,$12,$30,$7C,$30,$62,$FC,$00
10791: .byte $3C,$0C,$0C,$0C,$0C,$0C,$3C,$00
10792: .byte $00,$18,$3C,$7E,$18,$18,$18,$18
10793: .byte $00,$10,$30,$7F,$7F,$30,$10,$00
10794: .byte $00,$00,$00,$00,$00,$00,$00,$00
10795: .byte $18,$18,$18,$18,$00,$00,$18,$00
10796: .byte $66,$66,$66,$00,$00,$00,$00,$00
10797: .byte $66,$66,$FF,$66,$FF,$66,$66,$00
10798: .byte $18,$3E,$60,$3C,$06,$7C,$18,$00
10799: .byte $62,$66,$0C,$18,$30,$66,$46,$00
10800: .byte $3C,$66,$3C,$38,$67,$66,$3F,$00
10801: .byte $06,$0C,$18,$00,$00,$00,$00,$00
10802: .byte $0C,$18,$30,$30,$30,$18,$0C,$00
10803: .byte $30,$18,$0C,$0C,$0C,$18,$30,$00
10804: .byte $00,$66,$3C,$FF,$3C,$66,$00,$00
10805: .byte $00,$18,$18,$7E,$18,$18,$00,$00
10806: .byte $00,$00,$00,$00,$00,$18,$18,$30
10807: .byte $00,$00,$00,$7E,$00,$00,$00,$00
10808: .byte $00,$00,$00,$00,$00,$18,$18,$00
10809: .byte $00,$03,$06,$0C,$18,$30,$60,$00
10810: .byte $3C,$66,$6E,$76,$66,$66,$3C,$00
10811: .byte $18,$18,$38,$18,$18,$18,$7E,$00
10812: .byte $3C,$66,$06,$0C,$30,$60,$7E,$00
10813: .byte $3C,$66,$06,$1C,$06,$66,$3C,$00
10814: .byte $06,$0E,$1E,$66,$7F,$06,$06,$00
10815: .byte $7E,$60,$7C,$06,$06,$66,$3C,$00
10816: .byte $3C,$66,$60,$7C,$66,$66,$3C,$00
10817: .byte $7E,$66,$0C,$18,$18,$18,$18,$00
10818: .byte $3C,$66,$66,$3C,$66,$66,$3C,$00
10819: .byte $3C,$66,$66,$3E,$06,$66,$3C,$00
10820: .byte $00,$00,$18,$00,$00,$18,$00,$00
10821: .byte $00,$00,$18,$00,$00,$18,$18,$30
10822: .byte $0E,$18,$30,$60,$30,$18,$0E,$00
10823: .byte $00,$00,$7E,$00,$7E,$00,$00,$00
10824: .byte $70,$18,$0C,$06,$0C,$18,$70,$00
10825: .byte $3C,$66,$06,$0C,$18,$00,$18,$00
10826: .byte $00,$00,$00,$FF,$FF,$00,$00,$00
10827: .byte $18,$3C,$66,$7E,$66,$66,$66,$00
10828: .byte $7C,$66,$66,$7C,$66,$66,$7C,$00
10829: .byte $3C,$66,$60,$60,$60,$66,$3C,$00
10830: .byte $78,$6C,$66,$66,$66,$6C,$78,$00
10831: .byte $7E,$60,$60,$78,$60,$60,$7E,$00
10832: .byte $7E,$60,$60,$78,$60,$60,$60,$00
10833: .byte $3C,$66,$60,$6E,$66,$66,$3C,$00
10834: .byte $66,$66,$66,$7E,$66,$66,$66,$00
10835: .byte $3C,$18,$18,$18,$18,$18,$3C,$00
10836: .byte $1E,$0C,$0C,$0C,$0C,$6C,$38,$00
10837: .byte $66,$6C,$78,$70,$78,$6C,$66,$00
10838: .byte $60,$60,$60,$60,$60,$60,$7E,$00
10839: .byte $63,$77,$7F,$6B,$63,$63,$63,$00
10840: .byte $66,$76,$7E,$7E,$6E,$66,$66,$00
10841: .byte $3C,$66,$66,$66,$66,$66,$3C,$00
10842: .byte $7C,$66,$66,$7C,$60,$60,$60,$00
10843: .byte $3C,$66,$66,$66,$66,$3C,$0E,$00
10844: .byte $7C,$66,$66,$7C,$78,$6C,$66,$00
10845: .byte $3C,$66,$60,$3C,$06,$66,$3C,$00
10846: .byte $7E,$18,$18,$18,$18,$18,$18,$00
10847: .byte $66,$66,$66,$66,$66,$66,$3C,$00
10848: .byte $66,$66,$66,$66,$66,$3C,$18,$00
10849: .byte $63,$63,$63,$6B,$7F,$77,$63,$00
10850: .byte $66,$66,$3C,$18,$3C,$66,$66,$00
10851: .byte $66,$66,$66,$3C,$18,$18,$18,$00
10852: .byte $7E,$06,$0C,$18,$30,$60,$7E,$00
10853: .byte $18,$18,$18,$FF,$FF,$18,$18,$18
10854: .byte $C0,$C0,$30,$30,$C0,$C0,$30,$30
10855: .byte $18,$18,$18,$18,$18,$18,$18,$18
10856: .byte $33,$33,$CC,$CC,$33,$33,$CC,$CC
10857: .byte $33,$99,$CC,$66,$33,$99,$CC,$66
10858: .byte $00,$00,$00,$00,$00,$00,$00,$00
10859: .byte $F0,$F0,$F0,$F0,$F0,$F0,$F0,$F0
10860: .byte $00,$00,$00,$00,$FF,$FF,$FF,$FF
10861: .byte $FF,$00,$00,$00,$00,$00,$00,$00
10862: .byte $00,$00,$00,$00,$00,$00,$00,$FF
10863: .byte $C0,$C0,$C0,$C0,$C0,$C0,$C0,$C0
10864: .byte $CC,$CC,$33,$33,$CC,$CC,$33,$33
10865: .byte $03,$03,$03,$03,$03,$03,$03,$03
10866: .byte $00,$00,$00,$00,$CC,$CC,$33,$33
10867: .byte $CC,$99,$33,$66,$CC,$99,$33,$66
10868: .byte $03,$03,$03,$03,$03,$03,$03,$03
10869: .byte $18,$18,$18,$1F,$1F,$18,$18,$18
10870: .byte $00,$00,$00,$00,$0F,$0F,$0F,$0F
10871: .byte $18,$18,$18,$1F,$1F,$00,$00,$00
10872: .byte $00,$00,$00,$F8,$F8,$18,$18,$18
10873: .byte $00,$00,$00,$00,$00,$00,$FF,$FF
10874: .byte $00,$00,$00,$1F,$1F,$18,$18,$18
10875: .byte $18,$18,$18,$FF,$FF,$00,$00,$00
10876: .byte $00,$00,$00,$FF,$FF,$18,$18,$18
10877: .byte $18,$18,$18,$F8,$F8,$18,$18,$18
10878: .byte $C0,$C0,$C0,$C0,$C0,$C0,$C0,$C0
10879: .byte $E0,$E0,$E0,$E0,$E0,$E0,$E0,$E0
10880: .byte $07,$07,$07,$07,$07,$07,$07,$07
10881: .byte $FF,$FF,$00,$00,$00,$00,$00,$00
10882: .byte $FF,$FF,$FF,$00,$00,$00,$00,$00
10883: .byte $00,$00,$00,$00,$00,$FF,$FF,$FF
10884: .byte $01,$03,$06,$6C,$78,$70,$60,$00
10885: .byte $00,$00,$00,$00,$F0,$F0,$F0,$F0
10886: .byte $0F,$0F,$0F,$0F,$00,$00,$00,$00
10887: .byte $18,$18,$18,$F8,$F8,$00,$00,$00
10888: .byte $F0,$F0,$F0,$F0,$00,$00,$00,$00
10889: .byte $F0,$F0,$F0,$F0,$0F,$0F,$0F,$0F
10890:
10891:
10892: LD800: .word VERSION_INFO_D800
10893:
10894: LD802: .byte $00,$28,$50,$78,$A0,$C8,$F0,$18
10895: .byte $40,$68,$90,$B8,$E0,$08,$30,$58
10896: .byte $80,$A8,$D0,$F8,$20,$48,$70,$98
10897: .byte $C0
10898: LD81B: .byte $0C,$0C,$0C,$0C,$0C,$0C,$0C,$0D
10899: .byte $0D,$0D,$0D,$0D,$0D,$0E,$0E,$0E
10900: .if CompileComputer >= PLUS4_01
10901: .byte $0E,$0E,$0E,$0E,$0F,$0F,$0F,$0F
10902: .elseif CompileComputer = PLUS4_BETA_0203
10903: .byte $0E,$0E,$0E,$0E,$0F,$0F,$0D,$0F
10904: .elseif CompileComputer = PLUS4_BETA_0119
10905: .byte $0E,$0E,$0E,$0E,$0F,$0F,$0F,$0F
10906: .endif
10907: .byte $0F
10908: iSCREEN:ldx #$28
10909: ldy #$19
10910: rts
10911:
10912: iPLOT: bcs LD849
10913: stx TBLX
10914: stx LSXP
10915: sty PNTR
10916: sty $C5
10917: jsr LDE70
10918: jsr LD8A8
10919: LD849: ldx TBLX
10920: ldy PNTR
10921: rts
10922:
10923: iCINT: lda #$0C
10924: sta HIBASE
10925: lda #$03
10926: sta DFLTO
10927: lda #$00
10928: sta DFLTN
10929: sta MODE
10930: sta GRAPHM
10931: sta NDX
10932: sta STPFLG
10933: lda #$7A
10934: sta KEYLOG
10935: lda #$DB
10936: sta $0546
10937: lda #$0A
10938: sta XMAX
10939: sta ROLFLG
10940: sta DELAY
10941: lda #$80
10942: sta RPTFLG
10943: lda #$10
10944: sta COLOR
10945: lda #$04
10946: sta KOUNT
10947: LD888: jsr LDE70
10948: LD88B: jsr LD89A
10949: LD88E: jsr LD8AA
10950: jsr LDAF7
10951: cpx SCBOT
10952: inx
10953: bcc LD88E
10954: LD89A: ldx SCTOP
10955: stx TBLX
10956: stx LSXP
10957: LD8A1: ldy SCLF
10958: sty PNTR
10959: sty $C5
10960: LD8A8: ldx TBLX
10961: LD8AA: lda LD802,x
10962: sta PNT
10963: lda LD81B,x
10964: sta $C9
10965: LD8B4: lda PNT
10966: sta USER
10967: lda $C9
10968: and #$03
10969: ora #$08
10970: sta $EB
10971: rts
10972:
10973: LD8C1:
10974: .if CompileComputer >= PLUS4_05
10975: ldx KYNDX
10976: beq LD8D5
10977: .else
10978: ldy KYNDX
10979: beq LD8D5
10980: .endif
10981: ldy KEYIDX
10982: lda PKYBUF,y
10983: dec KYNDX
10984: inc KEYIDX
10985: cli
10986: .if CompileComputer >= PLUS4_05
10987: clc
10988: .endif
10989: rts
10990:
10991: LD8D5:
10992: ldy KEYD
10993: .if CompileComputer >= PLUS4_05
10994: nop
10995: .else
10996: ldx #$00
10997: .endif
10998: LD8D9: lda $0528,x
10999: sta KEYD,x
11000: inx
11001: cpx NDX
11002: bne LD8D9
11003: dec NDX
11004: tya
11005: cli
11006: clc
11007: rts
11008:
11009: LD8EA: jsr LDC49
11010: LD8ED: jsr LD8B4
11011: ldy PNTR
11012: lda (USER),y
11013: pha
11014: lda COLOR
11015: sta (USER),y
11016: tya
11017: clc
11018: adc PNT
11019: sta TEDCRSRPOSLO
11020: lda $C9
11021: adc #$00
11022: sbc #$0B
11023: sta TEDCRSRPOSHI
11024: LD90A: lda NDX
11025: ora KYNDX
11026: beq LD90A
11027: pla
11028: sta (USER),y
11029: lda #$FF
11030: sta TEDCRSRPOSHI
11031: sta TEDCRSRPOSLO
11032: jsr LD8C1
11033: cmp #$83
11034: bne LD933
11035: ldx #$09
11036: sei
11037: stx NDX
11038: LD928: lda LE129,x
11039: sta $0526,x
11040: dex
11041: bne LD928
11042: LD931: beq LD8ED
11043: LD933: cmp #$0D
11044: bne LD8EA
11045: sta CRSW
11046: jsr LDF95
11047: stx $0549
11048: jsr LDF87
11049: lda #$00
11050: sta QTSW
11051: ldy SCLF
11052: lda LSXP
11053: bmi LD960
11054: cmp TBLX
11055: bcc LD960
11056: ldy $C5
11057: cmp $0549
11058: bne LD95C
11059: cpy INDX
11060: beq LD95E
11061: LD95C: bcs LD96F
11062: LD95E: sta TBLX
11063: LD960: sty PNTR
11064: jmp LD977
11065:
11066: LD965: tya
11067: pha
11068: txa
11069: pha
11070: lda CRSW
11071: beq LD931
11072: bpl LD977
11073: LD96F: lda #$00
11074: sta CRSW
11075: jmp LCF74
11076:
11077: nop
11078: LD977: jsr LD8A8
11079: jsr LDF2F
11080: sta DATAX
11081: and #$3F
11082: asl DATAX
11083: bit DATAX
11084: bpl LD989
11085: ora #$80
11086: LD989: bcc LD98F
11087: ldx QTSW
11088: bne LD993
11089: LD98F: bvs LD993
11090: ora #$40
11091: LD993: jsr LD9BA
11092: ldy TBLX
11093: cpy $0549
11094: bcc LD9A7
11095: ldy PNTR
11096: cpy INDX
11097: bcc LD9A7
11098: ror CRSW
11099: bmi LD9AA
11100: LD9A7: jsr LDFBF
11101: LD9AA: cmp #$DE
11102: bne LD9B0
11103: lda #$FF
11104: LD9B0: sta DATAX
11105: pla
11106: tax
11107: pla
11108: tay
11109: lda DATAX
11110: clc
11111: rts
11112:
11113: LD9BA: cmp #$22
11114: bne LD9C6
11115: lda QTSW
11116: eor #$01
11117: sta QTSW
11118: lda #$22
11119: LD9C6: rts
11120:
11121: lda DATAX
11122: sta LSTCH
11123: pla
11124: tay
11125: lda INSRT
11126: beq LD9D4
11127: lsr QTSW
11128: LD9D4: pla
11129: tax
11130: pla
11131: clc
11132: rts
11133:
11134: LD9D9: ora #$40
11135: LD9DB: ldx RVS
11136: beq LD9E1
11137: LD9DF: ora #$80
11138: LD9E1: ldx INSRT
11139: beq LD9E7
11140: dec INSRT
11141: LD9E7: bit INSFL
11142: bpl LD9F5
11143: pha
11144: jsr LDDCE
11145: ldx #$00
11146: stx INSRT
11147: pla
11148: LD9F5: jsr LE001
11149: LD9F8: cpy SCRT
11150: bcc LDA09
11151: ldx TBLX
11152: cpx SCBOT
11153: bcc LDA09
11154: bit SCRDIS
11155: bmi LDA20
11156: LDA09: jsr LD8A8
11157: jsr LDFBF
11158: bcc LDA20
11159: jsr LDF39
11160: bcs LDA1F
11161: sec
11162: bit SCRDIS
11163: bvs LDA20
11164: jsr LDA5E
11165: LDA1F: clc
11166: LDA20: rts
11167:
11168: LDA21: ldx TBLX
11169: cpx SCBOT
11170: bcc LDA38
11171: bit SCRDIS
11172: bpl LDA34
11173: lda SCTOP
11174: sta TBLX
11175: bcs LDA3A
11176: LDA34: jsr LDA89
11177: clc
11178: LDA38: inc TBLX
11179: LDA3A: jmp LD8A8
11180:
11181: LDA3D: lda LD802,x
11182: sta FPVERR
11183: sta SEDSAL
11184: lda LD81B,x
11185: sta $C1
11186: and #$03
11187: ora #$08
11188: sta DCOUNT
11189: LDA4F: lda (SEDSAL),y
11190: sta (PNT),y
11191: lda (FPVERR),y
11192: sta (USER),y
11193: cpy SCRT
11194: iny
11195: bcc LDA4F
11196: rts
11197:
11198: LDA5E: ldx LSXP
11199: bmi LDA68
11200: cpx TBLX
11201: bcc LDA68
11202: inc LSXP
11203: LDA68: ldx SCBOT
11204: LDA6B: jsr LD8AA
11205: ldy SCLF
11206: cpx TBLX
11207: beq LDA83
11208: dex
11209: jsr LDF3B
11210: inx
11211: jsr LDF48
11212: dex
11213: jsr LDA3D
11214: bcs LDA6B
11215: LDA83: jsr LDAF7
11216: jmp LDF59
11217:
11218: LDA89: ldx SCTOP
11219: LDA8C: inx
11220: jsr LDF3B
11221: bcc LDA9E
11222: cpx SCBOT
11223: bcc LDA8C
11224: ldx SCTOP
11225: inx
11226: jsr LDF4A
11227: LDA9E: dec TBLX
11228: bit LSXP
11229: bmi LDAA6
11230: dec LSXP
11231: LDAA6: ldx SCTOP
11232: cpx SEDT2
11233: bcs LDAAF
11234: dec SEDT2
11235: LDAAF: jsr LDAC5
11236: ldx SCTOP
11237: jsr LDF3B
11238: php
11239: jsr LDF4A
11240: plp
11241: bcc LDAC4
11242: bit LOGSCR
11243: bmi LDA89
11244: LDAC4: rts
11245:
11246: LDAC5: jsr LD8AA
11247: ldy SCLF
11248: cpx SCBOT
11249: bcs LDADE
11250: inx
11251: jsr LDF3B
11252: dex
11253: jsr LDF48
11254: inx
11255: jsr LDA3D
11256: bcs LDAC5
11257: LDADE: jsr LDAF7
11258: lda #$7F
11259: jsr LDB70
11260: cmp #$DF
11261: bne LDAF3
11262: ldy #$00
11263: LDAEC: nop
11264: dex
11265: bne LDAEC
11266: dey
11267: bne LDAEC
11268: LDAF3: rts
11269:
11270: nop
11271: nop
11272: nop
11273: LDAF7: ldy SCLF
11274: jsr LDF4A
11275: LDAFD: jsr LD8AA
11276: dey
11277: LDB01: iny
11278: lda #$20
11279: sta (PNT),y
11280: lda COLOR
11281: sta (USER),y
11282: cpy SCRT
11283: bne LDB01
11284: rts
11285:
11286: iSCNKEY:lda #$00
11287: sta SHFLAG
11288: ldy #$40
11289: sty SFDX
11290: jsr LDB70
11291: tax
11292: cpx #$FF
11293: bne LDB25
11294: jmp LDC01
11295:
11296: LDB25: ldy #$00
11297: lda #$26
11298: sta KEYTAB
11299: lda #$E0
11300: sta $ED
11301: lda #$FE
11302: LDB31: ldx #$08
11303: pha
11304: LDB34: pla
11305: pha
11306: jsr LDB70
11307: sta $EE
11308: pla
11309: pha
11310: jsr LDB70
11311: cmp $EE
11312: bne LDB34
11313: LDB44: lsr a
11314: bcs LDB5D
11315: pha
11316: lda (KEYTAB),y
11317: cmp #$05
11318: bcs LDB5A
11319: cmp #$03
11320: beq LDB5A
11321: ora SHFLAG
11322: sta SHFLAG
11323: bpl LDB5C
11324: LDB5A: sty SFDX
11325: LDB5C: pla
11326: LDB5D: iny
11327: cpy #$41
11328: bcs LDB6A
11329: dex
11330: bne LDB44
11331: sec
11332: pla
11333: rol a
11334: bne LDB31
11335: LDB6A: pla
11336: lda SFDX
11337: jmp (KEYLOG)
11338:
11339: LDB70: sta LFD30
11340: sta TEDKEYB
11341: lda TEDKEYB
11342: rts
11343:
11344: lda SHFLAG
11345: cmp #$03
11346: bne LDB9A
11347: lda MODE
11348: bmi LDBBA
11349: lda LSTSHF
11350: bne LDBBA
11351: lda TEDROMSTATUS
11352: eor #$04
11353: sta TEDROMSTATUS
11354: lda #$08
11355: sta LSTSHF
11356: bne LDBBA
11357: LDB9A: asl a
11358: cmp #$08
11359: bcc LDBAF
11360: lda #$06
11361: ldx STPDSB
11362: bne LDBAF
11363: ldx SFDX
11364: cpx #$0D
11365: bne LDBAF
11366: stx STPFLG
11367: rts
11368:
11369: LDBAF: tax
11370: lda LE01E,x
11371: sta KEYTAB
11372: lda LE01E+1,x
11373: sta $ED
11374: LDBBA: ldy SFDX
11375: lda (KEYTAB),y
11376: tax
11377: cpy LSTX
11378: beq LDBCB
11379: ldy #$10
11380: sty DELAY
11381: bne LDC01
11382: LDBCB: and #$7F
11383: bit RPTFLG
11384: bmi LDBE8
11385: bvs LDC2B
11386: cmp #$7F
11387: beq LDC01
11388: cmp #$14
11389: beq LDBE8
11390: cmp #$20
11391: beq LDBE8
11392: cmp #$1D
11393: beq LDBE8
11394: cmp #$11
11395: bne LDC2B
11396: LDBE8: ldy DELAY
11397: beq LDBF2
11398: dec DELAY
11399: bne LDC2B
11400: LDBF2: dec KOUNT
11401: bne LDC2B
11402: ldy #$04
11403: sty KOUNT
11404: ldy NDX
11405: dey
11406: bpl LDC2B
11407: LDC01: nop
11408: nop
11409: lsr LSTSHF
11410: ldy SFDX
11411: sty LSTX
11412: cpx #$FF
11413: beq LDC2B
11414: txa
11415: ldx #$00
11416: stx STPFLG
11417: ldx #$07
11418: LDC16: cmp LDC41,x
11419: beq LDC2C
11420: dex
11421: bpl LDC16
11422: ldx NDX
11423: cpx XMAX
11424: bcs LDC2B
11425: sta KEYD,x
11426: inx
11427: stx NDX
11428: LDC2B: rts
11429:
11430: LDC2C: lda KEYBUF,x
11431: sta KYNDX
11432: lda #$00
11433: LDC34: dex
11434: bmi LDC3D
11435: clc
11436: adc KEYBUF,x
11437: bcc LDC34
11438: LDC3D: sta KEYIDX
11439: rts
11440:
11441: LDC41: sta LTFLAG
11442: stx RTFLAG
11443: .byte $87
11444: .byte $8B
11445: dey
11446: .byte $8C
11447: LDC49: sta DATAX
11448: pha
11449: txa
11450: pha
11451: tya
11452: pha
11453: LDC50: lda STPFLG
11454: bne LDC50
11455: sta CRSW
11456: lda #$D9
11457: pha
11458: lda #$C6
11459: pha
11460: ldy PNTR
11461: lda DATAX
11462: cmp #$0D
11463: beq LDC8C
11464: cmp #$8D
11465: beq LDC8C
11466: ldx LSTCH
11467: cpx #$1B
11468: bne LDC72
11469: jmp LDE06
11470:
11471: LDC72: tax
11472: bmi LDC89
11473: cmp #$20
11474: bcc LDCA7
11475: cmp #$60
11476: