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: bcc LDC81
11477: and #$DF
11478: bne LDC83
11479: LDC81: and #$3F
11480: LDC83: jsr LD9BA
11481: jmp LD9DB
11482:
11483: LDC89: jmp LDD47
11484:
11485: LDC8C: jsr LDF95
11486: inx
11487: jsr LDF4A
11488: ldy SCLF
11489: sty PNTR
11490: jsr LDA21
11491: LDC9B: lda #$00
11492: sta INSRT
11493: sta RVS
11494: sta QTSW
11495: sta FLASH
11496: rts
11497:
11498: LDCA7: cmp #$1B
11499: beq LDCF9
11500: ldx INSRT
11501: beq LDCB2
11502: LDCAF: jmp LD9DF
11503:
11504: LDCB2: cmp #$14
11505: bne LDCB9
11506: jmp LDD99
11507:
11508: LDCB9: ldx QTSW
11509: bne LDCAF
11510: cmp #$12
11511: bne LDCC3
11512: sta RVS
11513: LDCC3: cmp #$13
11514: bne LDCD2
11515: cmp LSTCH
11516: bne LDCCF
11517: jsr LDE70
11518: LDCCF: jmp LD89A
11519:
11520: LDCD2: cmp #$1D
11521: beq LDCFA
11522: cmp #$11
11523: beq LDD00
11524: cmp #$0E
11525: beq LDD27
11526: cmp #$08
11527: beq LDD2E
11528: cmp #$09
11529: beq LDD35
11530: LDCE6: ldx #$0F
11531: LDCE8: cmp LE133,x
11532: beq LDCF1
11533: dex
11534: bpl LDCE8
11535: rts
11536:
11537: LDCF1: pha
11538: jsr LCF8A
11539: sta COLOR
11540: pla
11541: LDCF9: rts
11542:
11543: LDCFA: jsr LDFBF
11544: bcs LDD03
11545: rts
11546:
11547: LDD00: jsr LDA21
11548: LDD03: jsr LDF39
11549: bcs LDD0B
11550: sec
11551: ror LSXP
11552: LDD0B: clc
11553: LDD0C: rts
11554:
11555: LDD0D: ldx SCTOP
11556: cpx TBLX
11557: bcs LDD0C
11558: LDD14: jsr LDD03
11559: dec TBLX
11560: jmp LD8A8
11561:
11562: LDD1C: jsr LDFD4
11563: bcs LDD0C
11564: bne LDD0B
11565: inc TBLX
11566: bne LDD14
11567: LDD27: lda TEDROMSTATUS
11568: ora #$04
11569: bne LDD43
11570: LDD2E: lda #$80
11571: ora MODE
11572: bmi LDD3A
11573: LDD35: lda #$7F
11574: and MODE
11575: LDD3A: sta MODE
11576: rts
11577:
11578: LDD3E: lda TEDROMSTATUS
11579: and #$FB
11580: LDD43: sta TEDROMSTATUS
11581: rts
11582:
11583: LDD47: and #$7F
11584: cmp #$7F
11585: bne LDD4F
11586: lda #$5E
11587: LDD4F: cmp #$20
11588: bcc LDD56
11589: jmp LD9D9
11590:
11591: LDD56: ldx QTSW
11592: beq LDD5F
11593: LDD5A: ora #$40
11594: jmp LD9DF
11595:
11596: LDD5F: cmp #$14
11597: beq LDDCE
11598: ldx INSRT
11599: bne LDD5A
11600: cmp #$11
11601: beq LDD0D
11602: cmp #$12
11603: bne LDD73
11604: lda #$00
11605: sta RVS
11606: LDD73: cmp #$1D
11607: beq LDD1C
11608: cmp #$13
11609: bne LDD7E
11610: jmp LD88B
11611:
11612: LDD7E: cmp #$02
11613: bne LDD87
11614: lda #$80
11615: sta FLASH
11616: LDD87: cmp #$04
11617: bne LDD90
11618: lda #$00
11619: sta FLASH
11620: LDD90: cmp #$0E
11621: beq LDD3E
11622: ora #$80
11623: jmp LDCE6
11624:
11625: LDD99: jsr LDD1C
11626: jsr LDFF6
11627: bcs LDDB1
11628: LDDA1: cpy SCRT
11629: bcc LDDBC
11630: ldx TBLX
11631: inx
11632: jsr LDF3B
11633: bcs LDDBC
11634: jsr LDFFF
11635: LDDB1: lda SEDT1
11636: sta PNTR
11637: lda SEDT2
11638: sta TBLX
11639: jmp LD8A8
11640:
11641: LDDBC: jsr LDFBF
11642: jsr LDF2F
11643: jsr LDFD4
11644: jsr LE011
11645: jsr LDFBF
11646: jmp LDDA1
11647:
11648: LDDCE: jsr LDFF6
11649: jsr LDF95
11650: cpx SEDT2
11651: bne LDDDA
11652: cpy SEDT1
11653: LDDDA: bcc LDDFD
11654: jsr LD9F8
11655: bcs LDE03
11656: LDDE1: jsr LDFD4
11657: jsr LDF2F
11658: jsr LDFBF
11659: jsr LE011
11660: jsr LDFD4
11661: ldx TBLX
11662: cpx SEDT2
11663: bne LDDE1
11664: cpy SEDT1
11665: bne LDDE1
11666: jsr LDFFF
11667: LDDFD: inc INSRT
11668: bne LDE03
11669: dec INSRT
11670: LDE03: jmp LDDB1
11671:
11672: LDE06: and #$7F
11673: sec
11674: sbc #$41
11675: cmp #$17
11676: bcs LDE19
11677: asl a
11678: tax
11679: lda LDE1A+1,x
11680: pha
11681: lda LDE1A,x
11682: pha
11683: LDE19: rts
11684:
11685: LDE1A: .word $DF28,$DE5F,$DF25,$DE9F
11686: .word $DE18,$DE18,$DE18,$DE18
11687: .word $DE8A,$DF81,$DF94,$DF1C
11688: .word $DF1F,$D887,$DC9A,$DEE0
11689: .word $DECA,$DE47,$DE18,$DE5D
11690: .word $DE18,$DEF5,$DF03
11691: LDE48: jsr LDE70
11692: jsr LD88B
11693: lda #$01
11694: tax
11695: jsr LDE7A
11696: lda #$17
11697: ldx #$26
11698: jsr LDE67
11699: jmp LD89A
11700:
11701: LDE5E: clc
11702: .byte $24
11703: LDE60: sec
11704: ldx PNTR
11705: lda TBLX
11706: bcc LDE7A
11707: LDE67: sta SCBOT
11708: stx SCRT
11709: jmp LDE80
11710:
11711: LDE70: lda #$18
11712: ldx #$27
11713: jsr LDE67
11714: lda #$00
11715: tax
11716: LDE7A: sta SCTOP
11717: stx SCLF
11718: LDE80: lda #$00
11719: ldx #$04
11720: LDE84: sta TCOLOR,x
11721: dex
11722: bne LDE84
11723: rts
11724:
11725: LDE8B: jsr LDA5E
11726: jsr LD8A1
11727: inx
11728: jsr LDF3B
11729: php
11730: jsr LDF46
11731: plp
11732: bcs LDE9F
11733: sec
11734: ror LSXP
11735: LDE9F: rts
11736:
11737: LDEA0: jsr LDF87
11738: lda SCTOP
11739: pha
11740: lda TBLX
11741: sta SCTOP
11742: lda LOGSCR
11743: pha
11744: lda #$80
11745: sta LOGSCR
11746: jsr LDA9E
11747: pla
11748: sta LOGSCR
11749: lda SCTOP
11750: sta TBLX
11751: pla
11752: sta SCTOP
11753: sec
11754: ror LSXP
11755: jmp LD8A1
11756:
11757: LDECB: jsr LDFF6
11758: LDECE: jsr LDAFD
11759: inc TBLX
11760: jsr LD8A8
11761: ldy SCLF
11762: jsr LDF39
11763: bcs LDECE
11764: LDEDE: jmp LDDB1
11765:
11766: LDEE1: jsr LDFF6
11767: LDEE4: jsr LDFFF
11768: cpy SCLF
11769: bne LDEF1
11770: jsr LDF39
11771: bcc LDEDE
11772: LDEF1: jsr LDFD4
11773: bcc LDEE4
11774: LDEF6: jsr LDFF6
11775: txa
11776: pha
11777: jsr LDA89
11778: pla
11779: sta SEDT2
11780: jmp LDEDE
11781:
11782: LDF04: jsr LDFF6
11783: jsr LDF39
11784: bcs LDF0F
11785: sec
11786: ror LSXP
11787: LDF0F: lda SCTOP
11788: sta TBLX
11789: jsr LDA5E
11790: jsr LDF4A
11791: jmp LDEDE
11792:
11793: LDF1D: lda #$00
11794: .byte $2C
11795: LDF20: lda #$80
11796: sta SCRDIS
11797: rts
11798:
11799: LDF26: lda #$00
11800: .byte $2C
11801: LDF29: lda #$FF
11802: sta INSFL
11803: rts
11804:
11805: LDF2F: ldy PNTR
11806: lda (USER),y
11807: sta TCOLOR
11808: lda (PNT),y
11809: rts
11810:
11811: LDF39: ldx TBLX
11812: LDF3B: jsr LDF66
11813: and BITABL,x
11814: cmp #$01
11815: jmp LDF55
11816:
11817: LDF46: ldx TBLX
11818: LDF48: bcs LDF59
11819: LDF4A: jsr LDF66
11820: eor #$FF
11821: and BITABL,x
11822: LDF52: sta BITABL,x
11823: LDF55: ldx BITMSK
11824: rts
11825:
11826: LDF59: bit SCRDIS
11827: bvs LDF3B
11828: jsr LDF66
11829: ora BITABL,x
11830: bne LDF52
11831: LDF66: stx BITMSK
11832: txa
11833: and #$07
11834: tax
11835: lda LDF7A,x
11836: pha
11837: lda BITMSK
11838: lsr a
11839: lsr a
11840: lsr a
11841: tax
11842: pla
11843: rts
11844:
11845: LDF7A: .byte $80,$40,$20,$10,$08,$04,$02,$01
11846: LDF82: ldy SCLF
11847: sty PNTR
11848: LDF87: jsr LDF39
11849: bcc LDF92
11850: dec TBLX
11851: bpl LDF87
11852: inc TBLX
11853: LDF92: jmp LD8A8
11854:
11855: LDF95: inc TBLX
11856: jsr LDF39
11857: bcs LDF95
11858: dec TBLX
11859: jsr LD8A8
11860: ldy SCRT
11861: sty PNTR
11862: LDFA6: jsr LDF2F
11863: cmp #$20
11864: bne LDFBC
11865: cpy SCLF
11866: bne LDFB7
11867: jsr LDF39
11868: bcc LDFBC
11869: LDFB7: jsr LDFD4
11870: bcc LDFA6
11871: LDFBC: sty INDX
11872: rts
11873:
11874: LDFBF: pha
11875: ldy PNTR
11876: cpy SCRT
11877: bcc LDFCF
11878: jsr LDA21
11879: ldy SCLF
11880: dey
11881: sec
11882: LDFCF: iny
11883: sty PNTR
11884: pla
11885: rts
11886:
11887: LDFD4: ldy PNTR
11888: dey
11889: bmi LDFDE
11890: cpy SCLF
11891: bcs LDFEF
11892: LDFDE: ldy SCTOP
11893: cpy TBLX
11894: bcs LDFF5
11895: dec TBLX
11896: pha
11897: jsr LD8A8
11898: pla
11899: ldy SCRT
11900: LDFEF: sty PNTR
11901: cpy SCRT
11902: clc
11903: LDFF5: rts
11904:
11905: LDFF6: ldy PNTR
11906: sty SEDT1
11907: ldx TBLX
11908: stx SEDT2
11909: rts
11910:
11911: LDFFF: lda #$20
11912: LE001: ldy PNTR
11913: sta (PNT),y
11914: jsr LD8B4
11915: lda COLOR
11916: ora FLASH
11917: sta (USER),y
11918: rts
11919:
11920: LE011: ldy PNTR
11921: sta (PNT),y
11922: jsr LD8B4
11923: lda TCOLOR
11924: sta (USER),y
11925: rts
11926:
11927: LE01E: .addr LE026
11928: .addr LE067
11929: .addr LE0A8
11930: .addr LE0E9
11931: LE026: .byte $14,$0D,$5C,$8C,$85,$89,$86,$40
11932: .byte $33,$57,$41,$34,$5A,$53,$45,$01
11933: .byte $35,$52,$44,$36,$43,$46,$54,$58
11934: .byte $37,$59,$47,$38,$42,$48,$55,$56
11935: .byte $39,$49,$4A,$30,$4D,$4B,$4F,$4E
11936: .byte $11,$50,$4C,$91,$2E,$3A,$2D,$2C
11937: .byte $9D,$2A,$3B,$1D,$1B,$3D,$2B,$2F
11938: .byte $31,$13,$04,$32,$20,$02,$51,$03
11939: .byte $FF
11940: LE067: .byte $94,$8D,$A9,$88,$8A,$87,$8B,$BA
11941: .byte $23,$D7,$C1,$24,$DA,$D3,$C5,$01
11942: .byte $25,$D2,$C4,$26,$C3,$C6,$D4,$D8
11943: .byte $27,$D9,$C7,$28,$C2,$C8,$D5,$D6
11944: .byte $29,$C9,$CA,$5E,$CD,$CB,$CF,$CE
11945: .byte $11,$D0,$CC,$91,$3E,$5B,$DD,$3C
11946: .byte $9D,$C0,$5D,$1D,$1B,$5F,$DB,$3F
11947: .byte $21,$93,$04,$22,$A0,$02,$D1,$83
11948: .byte $FF
11949: LE0A8: .byte $94,$8D,$A8,$88,$8A,$87,$8B,$A4
11950: .byte $96,$B3,$B0,$97,$AD,$AE,$B1,$01
11951: .byte $98,$B2,$AC,$99,$BC,$BB,$A3,$BD
11952: .byte $9A,$B7,$A5,$9B,$BF,$B4,$B8,$BE
11953: .byte $29,$A2
11954: LE0CA: .byte $B5,$30,$A7,$A1,$B9,$AA,$11,$AF
11955: .byte $B6,$91,$3E,$5B,$DC,$3C,$9D,$DF
11956: .byte $5D,$1D,$1B,$DE,$A6,$3F,$81,$93
11957: .byte $04,$95,$A0,$02,$AB,$83,$FF
11958: LE0E9: .byte $FF,$FF,$1C,$FF,$FF,$FF,$FF,$FF
11959: .byte $1C,$17,$01,$9F,$1A,$13,$05,$FF
11960: .byte $9C,$12,$04,$1E,$03,$06,$14,$18
11961: .byte $1F,$19,$07,$9E,$02,$08,$15,$16
11962: .byte $12,$09,$0A,$92,$0D,$0B,$0F,$0E
11963: .byte $FF,$10,$0C,$FF,$84,$1B,$FF,$82
11964: .byte $FF,$FF,$1D,$FF,$1B,$06,$FF,$FF
11965: .byte $90,$FF,$FF,$05,$FF,$FF,$11,$FF
11966: LE129: .byte $FF
11967: .byte "D"
11968: .byte $CC,$22
11969: .byte "*"
11970: .byte $0D
11971: .byte "RUN"
11972: .byte $0D
11973: LE133: .byte $90,$05,$1C,$9F,$9C,$1E,$1F,$9E
11974: .byte $81,$95,$96,$97,$98,$99,$9A,$9B
11975: LE143: .byte $00
11976: .byte "q2cD5FwH)Zk\m._"
11977:
11978: LE153: ora #$40
11979: .byte $2C
11980: LE156: ora #$20
11981: LE158: pha
11982: bit C3P0
11983: bpl LE167
11984: sec
11985: ror R2D2
11986: jsr LE181
11987: lsr C3P0
11988: lsr R2D2
11989: LE167: pla
11990: sta BSOUR
11991: sei
11992: jsr LE2C6
11993: jsr LE2BF
11994: lda PORT
11995: ora #$04
11996: sta PORT
11997: LE177: sei
11998: jsr LE2BF
11999: jsr LE2C6
12000: jsr LE2DC
12001: LE181: sei
12002: jsr LE2C6
12003: jsr LE2D4
12004: bcs LE1E9
12005: jsr LE2B8
12006: bit R2D2
12007: bpl LE19F
12008: LE191: jsr LE2D4
12009: bcc LE191
12010: LE196: lda PORT
12011: cmp PORT
12012: bne LE196
12013: asl a
12014: bcs LE196
12015: LE19F: jsr LE2D4
12016: bcc LE19F
12017: jsr LE2BF
12018: lda #$08
12019: sta DCOUNT
12020: LE1AB: jsr LE2D4
12021: bcc LE1EE
12022: ror BSOUR
12023: bcs LE1B9
12024: jsr LE2CD
12025: bne LE1BC
12026: LE1B9: jsr LE2C6
12027: LE1BC: jsr LE311
12028: jsr LE2B8
12029: jsr LE311
12030: lda PORT
12031: and #$FE
12032: ora #$02
12033: sta PORT
12034: dec DCOUNT
12035: bne LE1AB
12036: txa
12037: pha
12038: ldx #$78
12039: LE1D5: lda PORT
12040: cmp PORT
12041: bne LE1D5
12042: asl a
12043: bcc LE1E5
12044: dex
12045: bne LE1D5
12046: pla
12047: tax
12048: bcs LE1EE
12049: LE1E5: pla
12050: tax
12051: cli
12052: rts
12053:
12054: LE1E9: lda #$80
12055: jmp LE1F0
12056:
12057: LE1EE: lda #$03
12058: LE1F0: jsr LF41E
12059: cli
12060: clc
12061: bcc LE242
12062: LE1F7: sta BSOUR
12063: jsr LE177
12064: LE1FC: lda PORT
12065: and #$FB
12066: sta PORT
12067: rts
12068:
12069: LE203: sta BSOUR
12070: jsr LE177
12071: bit STATUS
12072: bmi LE242
12073: LE20C: sei
12074: jsr LE2CD
12075: jsr LE1FC
12076: jsr LE2B8
12077:
12078: LE216:
12079: .if CompileComputer >= PLUS4_03
12080: bit PORT
12081: bvs LE216
12082: .else
12083: jsr LE2D4
12084: bmi LE216
12085: .endif
12086: cli
12087: rts
12088:
12089: FillUntil $E21D,$FF
12090:
12091: LE21D: bit C3P0
12092: bmi LE226
12093: sec
12094: ror C3P0
12095: bne LE22B
12096: LE226: pha
12097: jsr LE181
12098: pla
12099: LE22B: sta BSOUR
12100: clc
12101: rts
12102:
12103: LE22F: sei
12104: jsr LE2BF
12105: lda PORT
12106: ora #$04
12107: sta PORT
12108: lda #$5F
12109: bne LE23F
12110: LE23D: lda #$3F
12111: LE23F: jsr LE158
12112: LE242: jsr LE1FC
12113: LE245: txa
12114: ldx #$14
12115: LE248: dex
12116: bne LE248
12117: tax
12118: jsr LE2B8
12119: jmp LE2C6
12120:
12121: LE252: sei
12122: lda #$00
12123: sta DCOUNT
12124: jsr LE2B8
12125: txa
12126: pha
12127: LE25C: jsr LE2D4
12128: bpl LE25C
12129: LE261: ldx #$20
12130: jsr LE2C6
12131: LE266: lda PORT
12132: cmp PORT
12133: bne LE266
12134: asl a
12135: bpl LE28E
12136: dex
12137: bne LE266
12138: lda DCOUNT
12139: beq LE27D
12140: pla
12141: tax
12142: lda #$02
12143: jmp LE1F0
12144:
12145: LE27D: jsr LE2CD
12146: ldx #$40
12147: LE282: dex
12148: bne LE282
12149: lda #$40
12150: jsr LF41E
12151: inc DCOUNT
12152: bne LE261
12153: LE28E: ldx #$08
12154: LE290: lda PORT
12155: asl a
12156: bpl LE290
12157: ror BSOUR1
12158: LE297: lda PORT
12159: cmp PORT
12160: bne LE297
12161: asl a
12162: bmi LE297
12163: dex
12164: bne LE290
12165: stx DCOUNT
12166: pla
12167: tax
12168: jsr LE2CD
12169: lda #$40
12170: bit STATUS
12171: bvc LE2B3
12172: jsr LE245
12173: LE2B3: lda BSOUR1
12174: cli
12175: clc
12176: rts
12177:
12178: LE2B8: lda PORT
12179: and #$FD
12180: sta PORT
12181: rts
12182:
12183: LE2BF: lda PORT
12184: ora #$02
12185: sta PORT
12186: rts
12187:
12188: LE2C6: lda PORT
12189: and #$FE
12190: sta PORT
12191: rts
12192:
12193: LE2CD: lda PORT
12194: ora #$01
12195: sta PORT
12196: rts
12197:
12198: LE2D4: lda PORT
12199: cmp PORT
12200: bne LE2D4
12201: asl a
12202: rts
12203:
12204: LE2DC: jsr LE2F8
12205: lda #$10
12206: LE2E1: bit TEDIFR
12207: beq LE2E1
12208: sta TEDIFR
12209: rts
12210:
12211: LE2EA: jsr LE2FC
12212: lda #$10
12213: LE2EF: bit TEDIFR
12214: beq LE2EF
12215: sta TEDIFR
12216: rts
12217:
12218: LE2F8: lda #$04
12219: bne LE2FE
12220: LE2FC: lda #$40
12221: LE2FE: php
12222: pha
12223: sei
12224: lda #$00
12225: sta TEDT2L
12226: pla
12227: sta TEDT2H
12228: lda #$10
12229: sta TEDIFR
12230: plp
12231: rts
12232:
12233: LE311beta:
12234:
12235: .if CompileComputer < PLUS4_01
12236: jsr $FBD8
12237: rol $2e2e
12238: .byte $4f,$4b
12239: brk
12240: rts
12241: .endif
12242:
12243: LE311: txa
12244: ldx #$05
12245: LE314: dex
12246: bne LE314
12247: tax
12248: rts
12249:
12250: .if CompileComputer < PLUS4_01
12251: LE319: jsr LE2D4
12252: bcc LE374
12253: jsr LFBD8
12254: .byte $0D,"PRESS PLAY & RECORD ON TAPE",0
12255:
12256: jmp LE367
12257:
12258: LE31B:
12259: jsr LE2D4
12260:
12261: bcc LE374
12262: jsr LFBD8
12263:
12264: .byte $0D,"PRESS PLAY ON TAPE",0
12265:
12266: LE367: jsr LFBCB
12267: bcs LE375
12268: jsr LE2D4
12269: bcs LE367
12270: .if CompileComputer >= PLUS4_01
12271: jsr LE311
12272: .else
12273: jsr LE311beta
12274: .endif
12275: LE374: clc
12276: LE375: rts
12277:
12278: .else
12279:
12280: LE319: sec
12281: .byte $24
12282: LE31B: clc
12283: lda SPI6529
12284: and #$04
12285: beq LE362
12286: php
12287: jsr LFBD8
12288: .byte $0D,"PRESS PLAY ", 0
12289:
12290: plp
12291: bcc LE344
12292: jsr LFBD8
12293: .byte "& RECORD ", 0
12294:
12295: LE344: jsr LFBD8
12296: .byte "ON TAPE", 0
12297: LE34F: jsr LFBCB
12298: bcs LE363
12299: lda SPI6529
12300: and #$04
12301: bne LE34F
12302: jsr LFBD8
12303: .byte $0D, "OK", 0
12304: LE362: clc
12305: LE363: rts
12306:
12307: .endif
12308:
12309: LE364: sei
12310: lda TEDVSP
12311: and #$EF
12312: sta TEDVSP
12313: lda TEDIER
12314: and #$FD
12315: ora #$08
12316: sta TEDIER
12317: rts
12318:
12319: LE378: sei
12320: lda TEDVSP
12321: ora #$10
12322: sta TEDVSP
12323: lda TEDIER
12324: and #$F7
12325: ora #$02
12326: sta TEDIER
12327: cli
12328: rts
12329:
12330: LE38D: php
12331: .if CompileComputer >= PLUS4_01
12332: sec
12333: ror LSEM
12334: lda PORT
12335: and #$F5
12336: sta PORT
12337: ldx #$1E
12338: LE39A: jsr LE2EA
12339: dex
12340: bne LE39A
12341: plp
12342: rts
12343:
12344: .byte "C1984COMMODORE"
12345: .else
12346: lda PORT
12347: .byte ")",$F5,$85,$01,$A2,$1E, " ", $EA, $E2, $CA, $D0, $FA, "(`"
12348: .endif
12349:
12350: LE3B0: lda PORT
12351: ora #$08
12352: sta PORT
12353: rts
12354:
12355: LE3B7: ldy #$00
12356: lda #$20
12357: LE3BB: sta (TAPEBS),y
12358: iny
12359: cpy #$C0
12360: bne LE3BB
12361: rts
12362:
12363: LE3C3: pha
12364: lda #$33
12365: sta TAPEBS
12366: lda #$03
12367: sta $B7
12368: pla
12369: rts
12370:
12371: LE3CE: jsr LFBCB
12372: bcc LE3E3
12373: jsr LE3B0
12374: jsr LE378
12375: ldx SRECOV
12376: txs
12377: lda #$00
12378: sta SRECOV
12379: sec
12380: LE3E3: rts
12381:
12382: LE3E4: lda TEDIFR
12383: and TEDIER
12384: and #$08
12385: bne LE3EF
12386: rts
12387:
12388: LE3EF: sta TEDIFR
12389: sei
12390: lda #$90
12391: sta TEDT1RL
12392: lda #$33
12393: sta TEDT1RH
12394: ldx DRECOV
12395: txs
12396: sec
12397: rts
12398:
12399: LE403: lda #$A8
12400: sta TEDT1RL
12401: lda #$48
12402: sta TEDT1RH
12403: lda #$08
12404: sta TEDIFR
12405: rts
12406:
12407: LE413: sec
12408: bcs LE417
12409: LE416: clc
12410: LE417: sty $07CA
12411: stx $07CB
12412: ldy T1PIPE
12413: ldx $07C9
12414: lda #$10
12415: LE425: bit TEDIFR
12416: beq LE425
12417: sty TEDT2L
12418: stx TEDT2H
12419: sta TEDIFR
12420: lda PORT
12421: eor #$02
12422: sta PORT
12423: php
12424: jsr LE3CE
12425: plp
12426: ldy $07CA
12427: ldx $07CB
12428: bcs LE416
12429: rts
12430:
12431: LE447: lda #<CONST_E447_T1PIPE
12432: sta T1PIPE
12433: lda #>CONST_E447_T1PIPE
12434: sta T1PIPE + 1
12435: rts
12436:
12437: LE452: lda #<CONST_E452_T1PIPE
12438: sta T1PIPE
12439: lda #>CONST_E452_T1PIPE
12440: sta T1PIPE + 1
12441: rts
12442:
12443: LE45D: lda #<CONST_E45D_T1PIPE
12444: sta T1PIPE
12445: lda #>CONST_E45D_T1PIPE
12446: sta T1PIPE + 1
12447: rts
12448:
12449: LE468: jsr LE452
12450: jsr LE413
12451: jsr LE45D
12452: jmp LE413
12453:
12454: LE474: jsr LE45D
12455: jsr LE413
12456: jsr LE452
12457: jmp LE413
12458:
12459: LE480: jsr LE447
12460: jsr LE413
12461: jsr LE45D
12462: jmp LE413
12463:
12464: LE48C: sta TPBYTE
12465: lda #$01
12466: sta PARITY
12467: jsr LE480
12468: ldx #$08
12469: LE498: ror TPBYTE
12470: bcs LE4A5
12471: inc PARITY
12472: jsr LE468
12473: jmp LE4A8
12474:
12475: LE4A5: jsr LE474
12476: LE4A8: dex
12477: bne LE498
12478: ror PARITY
12479: bcs LE4B6
12480: jsr LE468
12481: jmp LE4B9
12482:
12483: LE4B6: jsr LE474
12484: LE4B9: rts
12485:
12486: LE4BA: tsx
12487: stx SRECOV
12488: lda PORT
12489: ora #$02
12490: sta PORT
12491: jsr LE452
12492: ldy #$01
12493: sty TEDT2H
12494: lda #$10
12495: sta TEDIFR
12496: bit PASS
12497: bpl LE4D9
12498: ldy #$40
12499: ldx #$FE
12500: LE4D9: jsr LE413
12501: dex
12502: bne LE4D9
12503: dey
12504: bne LE4D9
12505: ldy #$09
12506: LE4E4: tya
12507: ora PASS
12508: jsr LE48C
12509: dey
12510: bne LE4E4
12511: .if CompileComputer < PLUS4_04
12512: ldy #$00
12513: sty CHKSUM
12514: .endif
12515: lda TYPE
12516: .if CompileComputer < PLUS4_04
12517: beq LE4F6
12518: eor CHKSUM
12519: .endif
12520: sta CHKSUM
12521:
12522: .if CompileComputer >= PLUS4_04
12523: beq LE4F6
12524: .else
12525: lda TYPE
12526: .endif
12527: jsr LE48C
12528: LE4F6:
12529: .if CompileComputer >= PLUS4_04
12530: ldy #$00
12531: lda #$BA
12532: sta $07DF
12533: jsr KLUDES
12534: .else
12535: lda (WRBASE),y
12536: .endif
12537: pha
12538: eor CHKSUM
12539: sta CHKSUM
12540: pla
12541: jsr LE48C
12542: inc WRBASE
12543: bne LE50F
12544: inc $BB
12545: LE50F: inc WRLEN
12546: bne LE4F6
12547: inc $03F4
12548: bne LE4F6
12549: lda CHKSUM
12550: jsr LE48C
12551: jsr LE45D
12552: jsr LE413
12553: jsr LE452
12554: ldy #$01
12555: ldx #$C2
12556: LE52B: jsr LE413
12557: dex
12558: bne LE52B
12559: dey
12560: bne LE52B
12561: rts
12562:
12563: LE535: jsr LE319
12564: jsr LE364
12565: jsr LE38D
12566: bcs LE566
12567: lda #$80
12568: sta PASS
12569: LE544: lda TAPEBS
12570: sta WRBASE
12571: lda $B7
12572: sta $BB
12573: lda #$41
12574: sta WRLEN
12575: lda #$FF
12576: sta $03F4
12577: jsr LE4BA
12578: bcs LE566
12579: lda PASS
12580: bpl LE565
12581: lda #$00
12582: sta PASS
12583: bpl LE544
12584: LE565: clc
12585: LE566: jsr LE3B0
12586: jmp LE378
12587:
12588: LE56C: jsr LE3C3
12589: jsr LE3B7
12590: ldy #$00
12591: lda STAL
12592: sta (TAPEBS),y
12593: iny
12594: lda $B3
12595: sta (TAPEBS),y
12596: iny
12597: lda EAL
12598: sta (TAPEBS),y
12599: iny
12600: lda $9E
12601: sta (TAPEBS),y
12602: iny
12603: sty TT3
12604: ldy #$00
12605: sty TT1
12606: LE590: ldy TT1
12607: cpy FNLEN
12608: beq LE5AD
12609: lda #$AF
12610: sta $07DF
12611: jsr KLUDES
12612: ldy TT3
12613: sta (TAPEBS),y
12614: inc TT1
12615: inc TT3
12616: jmp LE590
12617:
12618: LE5AD: jmp LE535
12619:
12620: LE5B0: jsr LE319
12621: jsr LE364
12622: jsr LE38D
12623: bcs LE5EA
12624: lda #$80
12625: sta PASS
12626: LE5BF: lda STAL
12627: sta WRBASE
12628: lda $B3
12629: sta $BB
12630: .if CompileComputer >= PLUS4_03
12631: clc
12632: .else
12633: sec
12634: .endif
12635: lda EAL
12636: sbc STAL
12637: eor #$FF
12638: sta WRLEN
12639: lda $9E
12640: sbc $B3
12641: eor #$FF
12642: sta $03F4
12643: jsr LE4BA
12644: bcs LE5EA
12645: lda PASS
12646: bpl LE5E9
12647: lda #$00
12648: sta PASS
12649: bpl LE5BF
12650: LE5E9: clc
12651: LE5EA: jsr LE3B0
12652: jmp LE378
12653:
12654: LE5F0: jsr LE3B7
12655: lda #$05
12656: sta TYPE
12657: jmp LE535
12658:
12659: LE5FA: .byte $40
12660: LE5FB: .byte $00
12661: LE5FC: .byte $80
12662: LE5FD: ldx DSAMP1
12663: ldy $07B9
12664: LE603: lda $07BB
12665: pha
12666: lda DSAMP2
12667: pha
12668: lda #$10
12669: LE60D: bit PORT
12670: beq LE60D
12671: LE611: bit PORT
12672: bne LE611
12673: stx TEDT2L
12674: sty TEDT2H
12675: pla
12676: sta TEDT3L
12677: pla
12678: sta TEDT3H
12679: lda #$50
12680: sta TEDIFR
12681: LE628: lda PORT
12682: cmp PORT
12683: bne LE628
12684: and #$10
12685: bne LE603
12686: jsr LE3CE
12687: lda #$10
12688: LE637: bit PORT
12689: bne LE682
12690: bit TEDIFR
12691: beq LE637
12692: LE640: lda PORT
12693: cmp PORT
12694: bne LE640
12695: and #$10
12696: bne LE682
12697: lda #$40
12698: LE64C: bit TEDIFR
12699: beq LE64C
12700: LE651: lda PORT
12701: cmp PORT
12702: bne LE651
12703: and #$10
12704: bne LE687
12705: lda ZCELL
12706: sta TEDT2L
12707: lda $07BD
12708: sta TEDT2H
12709: lda #$10
12710: sta TEDIFR
12711: lda #$10
12712: LE66E: bit TEDIFR
12713: beq LE66E
12714: LE673: lda PORT
12715: cmp PORT
12716: bne LE673
12717: and #$10
12718: beq LE68C
12719: bit LE5FC
12720: bmi LE68A
12721: LE682: bit LE5FA
12722: bvs LE68A
12723: LE687: bit LE5FB
12724: LE68A: clc
12725: rts
12726:
12727: LE68C: sec
12728: rts
12729:
12730: LE68E: .byte $40
12731: LE68F: .byte $00
12732: LE690: .byte $80
12733: LE691: jsr LE5FD
12734: bcs LE6D3
12735: bvs LE6AA
12736: bpl LE69C
12737: bmi LE6C3
12738: LE69C: jsr LE5FD
12739: bcs LE6D3
12740: bvs LE6A5
12741: bvc LE6D3
12742: LE6A5: bit LE68F
12743: clc
12744: rts
12745:
12746: LE6AA: jsr LE5FD
12747: bvs LE6B3
12748: bpl LE6BE
12749: bmi LE6D3
12750: LE6B3: jsr LE5FD
12751: bcs LE6D3
12752: bvs LE6B3
12753: bpl LE6D3
12754: bmi LE6C3
12755: LE6BE: bit LE68E
12756: clc
12757: rts
12758:
12759: LE6C3: jsr LE5FD
12760: bcs LE6D3
12761: bvs LE6D3
12762: bpl LE6CE
12763: bmi LE6D3
12764: LE6CE: bit LE690
12765: clc
12766: rts
12767:
12768: LE6D3: sec
12769: rts
12770:
12771: LE6D5: tsx
12772: stx DRECOV
12773: clc
12774: ror ENEXT
12775: cli
12776: LE6DE: jsr LE691
12777: bcs LE6DE
12778: bvs LE6DE
12779: bpl LE6DE
12780: jsr LE403
12781: clc
12782: rts
12783:
12784: LE6EC: bit ENEXT
12785: bmi LE742
12786: jsr LE6D5
12787: bcs LE742
12788: LE6F6: lda #$01
12789: sta PARITY
12790: ldx #$08
12791: stx RDBITS
12792: sec
12793: ror ENEXT
12794: LE704: jsr LE691
12795: bcs LE742
12796: bvs LE70F
12797: bpl LE71C
12798: bmi LE742
12799: LE70F: clc
12800: ror TPBYTE
12801: inc PARITY
12802: dec RDBITS
12803: bne LE704
12804: beq LE724
12805: LE71C: sec
12806: ror TPBYTE
12807: dec RDBITS
12808: bne LE704
12809: LE724: jsr LE691
12810: bcs LE742
12811: bvs LE72F
12812: bpl LE738
12813: bmi LE742
12814: LE72F: lda PARITY
12815: and #$01
12816: bne LE742
12817: beq LE73F
12818: LE738: lda PARITY
12819: and #$01
12820: beq LE742
12821: LE73F: clc
12822: bcc LE743
12823: LE742: sec
12824: LE743: sei
12825: php
12826: clc
12827: ror ENEXT
12828: plp
12829: rts
12830:
12831: LE74B: tsx
12832: stx SRECOV
12833: lda VERFCK
12834: beq LE756
12835: sec
12836: ror VERFCK
12837: LE756: jsr LE38D
12838: jsr LE364
12839: lda TRSAVE
12840: sta TAPEBS
12841: lda $07C1
12842: sta $B7
12843: lda $07C2
12844: sta RDCNT
12845: lda $07C3
12846: sta $03F6
12847: jsr LE91D
12848: ldy #$00
12849: sty ERRSP
12850: sty FPERRS
12851: sty CHKSUM
12852: sty ERRSUM
12853: sty TYPE
12854: .if CompileComputer >= PLUS4_04
12855: lda #$B6
12856: sta $07DF
12857: .else
12858: dey
12859: sty FPVERR
12860: sty $92
12861: .endif
12862: bit WROUT
12863: bpl LE7A0
12864: jsr LE6EC
12865: bcs LE79D
12866: lda TPBYTE
12867: sta TYPE
12868: eor CHKSUM
12869: sta CHKSUM
12870: jmp LE7A0
12871:
12872: LE79D: sec
12873: ror TYPE
12874: LE7A0: jsr LE6EC
12875: bcs LE7BE
12876: .if CompileComputer < PLUS4_04
12877: lda TPBYTE
12878: .endif
12879: ldy #$00
12880: .if CompileComputer >= PLUS4_04
12881: jsr KLUDES
12882: nop
12883: .endif
12884: bit VERFCK
12885: .if CompileComputer >= PLUS4_04
12886: bmi LE7B1
12887: lda TPBYTE
12888: LE7B1: cmp TPBYTE
12889: bne LE7BE
12890: sta (TAPEBS),y
12891: eor CHKSUM
12892: .else
12893: bpl LE7B5
12894: cmp (TAPEBS),y
12895: beq LE7B5
12896: sty FPVERR
12897: bne LE7B7
12898: LE7B5: sta (TAPEBS),y
12899: LE7B7: eor CHKSUM
12900: .endif
12901: sta CHKSUM
12902: jmp LE7DC
12903:
12904: LE7BE: ldy ERRSP
12905: cpy #$1E
12906: bcs LE7D7
12907: lda TAPEBS
12908: sta ESTAKL,y
12909: lda $B7
12910: sta ESTAKH,y
12911: inc ERRSP
12912: inc ERRSUM
12913: jmp LE7DC
12914:
12915: LE7D7: lda #$FF
12916: sta ERRSP
12917: LE7DC: inc TAPEBS
12918: bne LE7E2
12919: inc $B7
12920: LE7E2: inc RDCNT
12921: bne LE7A0
12922: inc $03F6
12923: bne LE7A0
12924: lda ERRSP
12925: sta FPERRS
12926: jsr LE6EC
12927: lda FPERRS
12928: bne LE800
12929: lda TPBYTE
12930: cmp CHKSUM
12931: bne LE803
12932: LE800: jmp LE80A
12933:
12934: LE803: lda PASS
12935: bmi LE80A
12936: jmp LE8B7
12937:
12938: LE80A: lda PASS
12939: bmi LE819
12940: lda FPERRS
12941: beq LE816
12942: jmp LE8B7
12943:
12944: LE816: jmp LE8C7
12945:
12946: LE819: lda #$00
12947: sta ERRSP
12948: sta CHKSUM
12949: lda TRSAVE
12950: sta TAPEBS
12951: lda $07C1
12952: sta $B7
12953: lda $07C2
12954: sta RDCNT
12955: lda $07C3
12956: sta $03F6
12957: jsr LE91D
12958: bit WROUT
12959: bpl LE853
12960: jsr LE6EC
12961: bit TYPE
12962: bpl LE84D
12963: lda TPBYTE
12964: sta TYPE
12965: bcc LE84D
12966: ror TYPE
12967: LE84D: lda TYPE
12968: eor CHKSUM
12969: sta CHKSUM
12970: LE853: jsr LE6EC
12971: ror RDETMP
12972: lda TPBYTE
12973: eor CHKSUM
12974: sta CHKSUM
12975: bit FPERRS
12976: bmi LE896
12977: ldy ERRSP
12978: cpy FPERRS
12979: beq LE896
12980: lda ESTAKL,y
12981: cmp TAPEBS
12982: bne LE896
12983: lda ESTAKH,y
12984: cmp $B7
12985: bne LE896
12986: inc ERRSP
12987: lda RDETMP
12988: bmi LE896
12989: ldy #$00
12990: .if CompileComputer >= PLUS4_04
12991: jsr KLUDES
12992: nop
12993: .else
12994: lda TPBYTE
12995: .endif
12996: bit VERFCK
12997: .if CompileComputer >= PLUS4_04
12998: bmi LE88E
12999: lda TPBYTE
13000: LE88E: cmp TPBYTE
13001: .else
13002: bpl LE892
13003: cmp (TAPEBS),y
13004: beq LE892
13005: sty $92
13006: .endif
13007: bne LE896
13008: LE892: dec ERRSUM
13009: sta (TAPEBS),y
13010: LE896: inc TAPEBS
13011: bne LE89C
13012: inc $B7
13013: LE89C: inc RDCNT
13014: bne LE853
13015: inc $03F6
13016: bne LE853
13017: jsr LE6EC
13018: .if CompileComputer >= PLUS4_04
13019: lda #$00
13020: sta STATUS
13021: .else
13022: lda ERRSUM
13023: bne LE8B7
13024: lda $92
13025: .if CompileComputer >= PLUS4_03
13026: and FPVERR
13027: .else
13028: ora FPVERR
13029: .endif
13030: beq LE8BF
13031: .endif
13032: lda TYPE
13033: .if CompileComputer >= PLUS4_04
13034: ldx ERRSUM
13035: beq LE8C7
13036: bit VERFCK
13037: bmi LE8BF
13038: .else
13039: bpl LE8C7
13040: .endif
13041: LE8B7: lda #$60
13042: .if CompileComputer >= PLUS4_04
13043: sta STATUS
13044: .else
13045: jsr LF41E
13046: .endif
13047: sec
13048: .if CompileComputer >= PLUS4_04
13049: jmp LE8C8
13050: .else
13051: bcs LE8C8
13052: .endif
13053: LE8BF: lda #$10
13054: .if CompileComputer >= PLUS4_04
13055: sta STATUS
13056: .else
13057: jsr LF41E
13058: .endif
13059: sec
13060: .if CompileComputer >= PLUS4_04
13061: jmp LE8C8
13062: .else
13063: bcs LE8C8
13064: .endif
13065: LE8C7: clc
13066: LE8C8: jsr LE3B0
13067: jsr LE378
13068: rts
13069:
13070: LE8CF: .addr L0333
13071: .addr LFF41
13072:
13073: LE8D3: ldy #$03
13074: LE8D5: lda LE8CF,y
13075: sta TRSAVE,y
13076: dey
13077: bpl LE8D5
13078: sty WROUT
13079: lda VERFCK
13080: pha
13081: iny
13082: sty VERFCK
13083: sty TPTR
13084: jsr LE74B
13085: pla
13086: sta VERFCK
13087: jmp LE3C3
13088:
13089: LE8F3: lda STAL
13090: sta TRSAVE
13091: lda $B3
13092: sta $07C1
13093: .if CompileComputer >= PLUS4_03
13094: clc
13095: .else
13096: sec
13097: .endif
13098: lda EAL
13099: sbc STAL
13100: eor #$FF
13101: sta $07C2
13102: lda $9E
13103: sbc $B3
13104: eor #$FF
13105: sta $07C3
13106: clc
13107: ror WROUT
13108: jmp LE74B
13109:
13110: LE917: .word $0102,$0202,$020D
13111: LE91D: ldx #$05
13112: LE91F: lda LE917,x
13113: sta DSAMP1,x
13114: dex
13115: bpl LE91F
13116: LE928: lda #$0A
13117: sta LDRSCN
13118: LE92D: jsr LE5FD
13119: bcs LE928
13120: bvc LE928
13121: dec LDRSCN
13122: bne LE92D
13123: LE939: lda #$00
13124: sta WRBASE
13125: sta $BB
13126: ldy #$10
13127: LE941: ldx #$00
13128: lda #$10
13129: LE945: bit PORT
13130: beq LE945
13131: LE949: bit PORT
13132: bne LE949
13133: LE94D: inx
13134: beq LE939
13135: bit PORT
13136: beq LE94D
13137: LE954: inx
13138: beq LE939
13139: bit PORT
13140: bne LE954
13141: txa
13142: clc
13143: adc WRBASE
13144: sta WRBASE
13145: lda #$00
13146: adc $BB
13147: sta $BB
13148: dey
13149: bne LE941
13150: lsr $BB
13151: ror WRBASE
13152: lsr $BB
13153: ror WRBASE
13154: lda WRBASE
13155: sta DSAMP1
13156: asl a
13157: sta DSAMP2
13158: sta ZCELL
13159: lda $BB
13160: sta $07B9
13161: rol a
13162: sta $07BB
13163: sta $07BD
13164: LE98A: jsr LE5FD
13165: bcs LE98A
13166: bvs LE98A
13167: bpl LE98A
13168: jsr LE5FD
13169: bcs LE98A
13170: bvs LE98A
13171: bmi LE98A
13172: clc
13173: ror ENEXT
13174: jsr LE403
13175: lda #$03
13176: sta CDERRM
13177: jsr LE6F6
13178: bcc LE9B0
13179: dec CDERRM
13180: LE9B0: jsr LE6EC
13181: bcc LE9BD
13182: dec CDERRM
13183: bne LE9BD
13184: jmp LE91D
13185:
13186: LE9BD: lda TPBYTE
13187: and #$0F
13188: cmp #$01
13189: bne LE9B0
13190: lda TPBYTE
13191: and #$80
13192: sta PASS
13193: rts
13194:
13195: LE9CC: jsr LE8D3
13196: bcs LEA1E
13197: lda TYPE
13198: cmp #$05
13199: beq LEA1A
13200: cmp #$01
13201: beq LE9E3
13202: cmp #$03
13203: beq LE9E3
13204: cmp #$04
13205: bne LE9CC
13206: LE9E3: tax
13207: bit MSGFLG
13208: bpl LEA17
13209: jsr LFBD8
13210: .byte $0D
13211: .byte "FOUND "
13212: .byte $00
13213: ldy #$04
13214: LE9F5: lda (TAPEBS),y
13215: jsr kCHROUT
13216: iny
13217: cpy #$15
13218: bne LE9F5
13219: ldx #$FF
13220: LEA01: jsr LE2EA
13221: jsr LE2EA
13222: dex
13223: beq LEA17
13224: lda #$7F
13225: jsr LDB70
13226: cmp #$7F
13227: beq LEA1E
13228: cmp #$DF
13229: bne LEA01
13230: LEA17: clc
13231: lda TYPE
13232: LEA1A: rts
13233:
13234: nop
13235: nop
13236: nop
13237: LEA1E: lda #$00
13238: rts
13239:
13240: LEA21: jsr LE9CC
13241: bcs LEA53
13242: cmp #$05
13243: beq LEA55
13244: .if CompileComputer >= PLUS4_03
13245: ldy #$FF
13246: LEA2C: iny
13247: cpy FNLEN
13248: .else
13249: ldy #$04
13250: sty TT3
13251: ldy #$00
13252: sty TT1
13253: LEA34: cpy FNLEN
13254: .endif
13255: beq LEA57
13256: lda #$AF
13257: sta $07DF
13258: jsr KLUDES
13259: .if CompileComputer >= PLUS4_03
13260: cmp $0337,y
13261: beq LEA2C
13262: lsr TYPE
13263: bcc LEA21
13264: ldy #$FF
13265: sty $07C3
13266: dey
13267: sty $07C2
13268: ldy #$01
13269: jsr LE8D5
13270: jmp LEA21
13271: .else
13272: ldy TT3
13273: cmp (TAPEBS),y
13274: bne LEA21
13275: inc TT1
13276: inc TT3
13277: ldy TT1
13278: jmp LEA34
13279: .endif
13280:
13281: LEA53: lda #$00
13282: LEA55: sec
13283: rts
13284:
13285: LEA57: clc
13286: lda TYPE
13287: rts
13288:
13289: LEA5B: lda ASTAT
13290: and #$10
13291: beq LEA94
13292: lda SPI6529
13293: and #$02
13294: beq LEA94
13295: ldx #$00
13296: bit SOUNFG
13297: bpl LEA79
13298: lda SOUTQ
13299: stx SOUNFG
13300: jmp LEA89
13301:
13302: LEA79: bit UOUTFG
13303: bpl LEA94
13304: bit ALSTOP
13305: bmi LEA94
13306: lda UOUTQ
13307: stx UOUTFG
13308: LEA89: sta ACIA
13309: lda ASTAT
13310: and #$EF
13311: sta ASTAT
13312: LEA94: rts
13313:
13314: LEA95: lda ASTAT
13315: and #$08
13316: beq LEAF0
13317: lda ASTAT
13318: and #$F7
13319: sta ASTAT
13320: lda ACIA
13321: beq LEAC2
13322: sta AINTMP
13323: cmp XON
13324: bne LEAB7
13325: lda #$00
13326: sta ALSTOP
13327: beq LEAF0
13328: LEAB7: cmp XOFF
13329: bne LEAC2
13330: lda #$FF
13331: sta ALSTOP
13332: bne LEAF0
13333: LEAC2: lda INQCNT
13334: cmp #$3F
13335: beq LEAF0
13336: cmp #$38
13337: bne LEADC
13338: lda XOFF
13339: beq LEADC
13340: sta SOUTQ
13341: lda #$FF
13342: sta SOUNFG
13343: sta ARSTOP
13344: LEADC: ldx INQFPT
13345: inx
13346: txa
13347: and #$3F
13348: sta INQFPT
13349: tax
13350: lda AINTMP
13351: sta $03F7,x
13352: inc INQCNT
13353: LEAF0: rts
13354:
13355: LEAF1: lda INQCNT
13356: beq LEB2A
13357: php
13358: sei
13359: ldx INQRPT
13360: inx
13361: txa
13362: and #$3F
13363: sta INQRPT
13364: plp
13365: tax
13366: lda $03F7,x
13367: pha
13368: dec INQCNT
13369: lda INQCNT
13370: cmp #$08
13371: bne LEB2B
13372: bit ARSTOP
13373: bpl LEB2B
13374: lda XON
13375: beq LEB2B
13376: sta SOUTQ
13377: sec
13378: ror SOUNFG
13379: lsr ARSTOP
13380: LEB25: bit APRES
13381: bpl LEB35
13382: LEB2A: pha
13383: LEB2B: lda ASTAT
13384: and #$4F
13385: eor #$40
13386: sta STATUS
13387: pla
13388: LEB35: clc
13389: rts
13390:
13391: LEB37: bit UOUTFG
13392: bmi LEB37
13393: sta UOUTQ
13394: sec
13395: ror UOUTFG
13396: jmp LEB2A
13397:
13398: LEB46: lda #$00
13399: ldx #$0B
13400: LEB4A: sta UOUTQ,x
13401: dex
13402: bpl LEB4A
13403: sta LFD01
13404: sta XON
13405: sta XOFF
13406: rts
13407:
13408: LEB58: .byte $0D
13409: .byte "I/O ERROR "
13410:
13411: .byte $A3,$0D
13412: .byte "SEARCHING"
13413:
13414: .byte $A0
13415: .byte "FOR"
13416: .byte $A0,$0D
13417: .byte "PRESS PLAY ON TAP"
13418:
13419:
13420: .byte $C5
13421: .byte "PRESS RECORD & PLAY ON TAP"
13422:
13423:
13424:
13425: .byte $C5,$0D
13426: .byte "LOADIN"
13427: .byte $C7,$0D
13428: .byte "SAVING"
13429: .byte $A0,$0D
13430: .byte "VERIFYIN"
13431: .byte $C7,$0D
13432: .byte "FOUND"
13433: .byte $A0,$0D
13434: .byte "OK"
13435: .byte $8D
13436: LEBC6: bit MSGFLG
13437: bpl LEBD7
13438: LEBCA: lda LEB58,y
13439: php
13440: and #$7F
13441: jsr kCHROUT
13442: iny
13443: plp
13444: bpl LEBCA
13445: LEBD7: clc
13446: rts
13447:
13448: LEBD9: lda DFLTN
13449: bne LEBF7
13450: lda NDX
13451: ora KYNDX
13452: beq LEC22
13453: sei
13454: jmp LD8C1
13455:
13456: LEBE8: lda DFLTN
13457: bne LEBF7
13458: lda PNTR
13459: sta $C5
13460: lda TBLX
13461: sta LSXP
13462: jmp LD965
13463:
13464: LEBF7: cmp #$03
13465: bne LEC1A
13466: ora CRSW
13467: sta CRSW
13468: lda SCRT
13469: sta INDX
13470: jmp LD965
13471:
13472: LEC07: jsr LFBBA
13473: cmp #$01
13474: bne LEC14
13475: jsr LEC24
13476: jmp LFBC4
13477:
13478: LEC14: jsr LEAF1
13479: jmp LFBC4
13480:
13481: LEC1A: bcc LEC07
13482: lda STATUS
13483: beq iACPTR
13484: lda #$0D
13485: LEC22: clc
13486: rts
13487:
13488: LEC24: ldy TPTR
13489: cpy #$BF
13490: bcc LEC31
13491: jsr LE8D3
13492: bcc LEC24
13493: rts
13494:
13495: LEC31: ldy TPTR
13496: lda (TAPEBS),y
13497: pha
13498: iny
13499: cpy #$BF
13500: bcs LEC45
13501: lda (TAPEBS),y
13502: bne LEC45
13503: lda #$40
13504: jsr LF41E
13505: LEC45: inc TPTR
13506: pla
13507: clc
13508: rts
13509:
13510: LEC4B: pha
13511: lda DFLTO
13512: cmp #$03
13513: bne LEC56
13514: pla
13515: jmp LDC49
13516:
13517: LEC56: bcc LEC5C
13518: pla
13519: jmp iCIOUT
13520:
13521: LEC5C: jsr LFBB7
13522: cmp #$01
13523: bne LEC84
13524: ldy TPTR
13525: cpy #$BF
13526: bcc LEC75
13527: jsr LE535
13528: bcs LEC7E
13529: lda #$02
13530: sta TYPE
13531: ldy #$00
13532: LEC75: pla
13533: sta (TAPEBS),y
13534: iny
13535: sty TPTR
13536: bcc LEC88
13537: LEC7E: pla
13538: lda #$00
13539: jmp LFBC4
13540:
13541: LEC84: pla
13542: jsr LEB37
13543: LEC88: jmp LFBC1
13544:
13545: iACPTR:
13546: .if CompileComputer >= PLUS4_01
13547: stx WRBASE
13548: .endif
13549: bit USEKDY
13550: bvs LEC96
13551: .if CompileComputer >= PLUS4_01
13552: ldx WRBASE
13553: .endif
13554: jmp LE252
13555:
13556: LEC96:
13557: .if CompileComputer >= PLUS4_01
13558: lda USEKDY
13559: and #$30
13560: tax
13561: lda #$84
13562: sta LFEC0,x
13563: LECA0: lda LFEC2,x
13564: bmi LECA0
13565: lda #$00
13566: sta LFEC3,x
13567: sta LFEC2,x
13568: LECAD: lda LFEC2,x
13569: bpl LECAD
13570: lda LFEC1,x
13571: .else
13572: lda #$84
13573: sta LFEF0
13574: LEC97: lda LFEF2
13575: bmi LEC97
13576: lda #$00
13577: sta LFEF3
13578: sta LFEF2
13579: LECA4: lda LFEF2
13580: bpl LECA4
13581: lda LFEF1
13582: .endif
13583: and #$03
13584: cmp #$03
13585: bne LECBD
13586: lda #$40
13587: LECBD: jsr LF41E
13588: .if CompileComputer >= PLUS4_01
13589: lda LFEC0,x
13590: .else
13591: lda LFEF0
13592: .endif
13593: pha
13594: lda #$40
13595: .if CompileComputer >= PLUS4_01
13596: sta LFEC2,x
13597: .else
13598: sta LFEF2
13599: .endif
13600: LECC9:
13601: .if CompileComputer >= PLUS4_01
13602: lda LFEC2,x
13603: .else
13604: lda LFEF2
13605: .endif
13606: bmi LECC9
13607: lda #$FF
13608: .if CompileComputer >= PLUS4_01
13609: sta LFEC3,x
13610: lda #$00
13611: sta LFEC0,x
13612: sta LFEC2,x
13613: jmp LEDD4
13614: nop
13615: .else
13616: sta LFEF3
13617: lda #$00
13618: sta LFEF0
13619: sta LFEF2
13620: LECD2: lda LFEF2
13621: bpl LECD2
13622: lda #$40
13623: sta LFEF2
13624: LECDC: pla
13625: clc
13626: rts
13627: .endif
13628:
13629: iCIOUT: bit USEKDY
13630: bmi LECE6
13631: jmp LE21D
13632:
13633: LECE6: pha
13634: sta KDYCMD
13635: lda #$83
13636:
13637: LECEC:
13638: .if CompileComputer >= PLUS4_01
13639: stx WRBASE
13640: pha
13641: lda USEKDY
13642: and #$30
13643: tax
13644: pla
13645: sta LFEC0,x
13646: LECF8: lda LFEC2,x
13647: bmi LECF8
13648: .else
13649: sta LFEF0
13650: LECEF: lda LFEF2
13651: bmi LECEF
13652: .endif
13653: lda KDYCMD
13654: .if CompileComputer >= PLUS4_01
13655: sta LFEC0,x
13656: .else
13657: sta LFEF0
13658: .endif
13659: lda #$00
13660: .if CompileComputer >= PLUS4_01
13661: sta LFEC2,x
13662: .else
13663: sta LFEF2
13664: .endif
13665:
13666: LED08:
13667: .if CompileComputer >= PLUS4_01
13668: lda LFEC2,x
13669: .else
13670: lda LFEF2
13671: .endif
13672: bpl LED08
13673: .if CompileComputer >= PLUS4_01
13674: lda LFEC1,x
13675: .else
13676: lda LFEF1
13677: .endif
13678: and #$03
13679: jsr LF41E
13680: .if CompileComputer >= PLUS4_01
13681: jmp LEDDB
13682: .else
13683: lda #$00
13684: sta LFEF0
13685: lda #$40
13686: sta LFEF2
13687: bne LECDC
13688: .endif
13689:
13690: LED18: jsr LEEE8
13691: beq LED20
13692: jmp LF279
13693:
13694: LED20: jsr LEEF8
13695: beq LED36
13696: cmp #$03
13697: beq LED36
13698: bcs LED3A
13699: cmp #$02
13700: bne LED57
13701: jsr LEB25
13702: bcs LED39
13703: lda FA
13704: LED36: sta DFLTN
13705: clc
13706: LED39: rts
13707:
13708: LED3A: tax
13709: jsr iTALK
13710: bit STATUS
13711: bmi LED54
13712: lda SA
13713: bpl LED4C
13714: jsr LEE13
13715: jmp LED4F
13716:
13717: LED4C: jsr iTKSA
13718: LED4F: txa
13719: bit STATUS
13720: bpl LED36
13721: LED54: jmp LF27F
13722:
13723: LED57: ldx SA
13724: cpx #$60
13725: beq LED36
13726: jmp LF282
13727:
13728: LED60: jsr LEEE8
13729: beq LED68
13730: jmp LF279
13731:
13732: LED68: jsr LEEF8
13733: bne LED70
13734: LED6D: jmp LF285
13735:
13736: LED70: cmp #$03
13737: beq LED81
13738: bcs LED85
13739: cmp #$02
13740: bne LEDA1
13741: jsr LEB25
13742: bcs LED84
13743: lda FA
13744: LED81: sta DFLTO
13745: clc
13746: LED84: rts
13747:
13748: LED85: tax
13749: jsr iLISTEN
13750: bit STATUS
13751: bmi LED9E
13752: lda SA
13753: bpl LED96
13754: jsr LEE45
13755: bne LED99
13756: LED96: jsr iSECOND
13757: LED99: txa
13758: bit STATUS
13759: bpl LED81
13760: LED9E: jmp LF27F
13761:
13762: LEDA1: ldx SA
13763: cpx #$60
13764: beq LED6D
13765: bne LED81
13766: LEDA9: pha
13767: .if CompileComputer >= PLUS4_01
13768: stx WRBASE
13769: ldx #$30
13770: lda FA
13771: cmp #$08
13772: beq LEDBA
13773: cmp #$09
13774: bne LEDCF
13775: ldx #$00
13776: LEDBA: lda #$55
13777: sta LFEC0,x
13778: eor LFEC0,x
13779: bne LEDCF
13780: lda LFEC1,x
13781: .else
13782: txa
13783: pha
13784: ldx #$08
13785: lda #$55
13786: sta LFEF0
13787: eor LFEF0
13788: bne LEDCF
13789: lda #$33
13790: sta LFEF0
13791: eor LFEF0
13792: bne LEDCF
13793: lda LFEF1
13794: .endif
13795: and #$02
13796: bne LEDCF
13797: .if CompileComputer >= PLUS4_01
13798: stx USEKDY
13799: .else
13800: lda #$85
13801: sta LFEF0
13802: .byte $AD
13803: .byte $F2
13804: inc $FB30,x
13805: stx LFEF2
13806: LEDD6: lda LFEF2
13807: bpl LEDD6
13808: lda LFEF1
13809: and #$03
13810: beq LEDE3
13811: inx
13812: LEDE3: lda #$40
13813: sta LFEF0
13814: sta LFEF2
13815: txa
13816: sta KDYNUM
13817: cmp FA
13818: bne LEDCF
13819: .endif
13820: clc
13821: .byte $24
13822: LEDCF: sec
13823: .if CompileComputer >= PLUS4_01
13824: ldx WRBASE
13825: pla
13826: rts
13827:
13828: LEDD4: lda LFEC2,x
13829: bpl LEDD4
13830: bmi LEDE0
13831: LEDDB: lda #$00
13832: sta LFEC0,x
13833: LEDE0: lda #$40
13834: sta LFEC2,x
13835: ldx WRBASE
13836: pla
13837: clc
13838: rts
13839: .else
13840: pla
13841: tax
13842: pla
13843: rts
13844: .endif
13845:
13846: .if CompileComputer >= PLUS4_01
13847: LEDEA: sta LFEF2
13848: sta LFEC5
13849: sta LFEC2
13850: dex
13851: stx LFEC3
13852: jmp LCFEA
13853: .endif
13854:
13855: iTALK: jsr LEDA9
13856: bcc LEE02
13857: jmp LE153
13858:
13859: LEE02: pha
13860: lda #$40
13861: sta KDYCMD
13862: lda USEKDY
13863: ora #$40
13864: sta USEKDY
13865: lda #$81
13866: jmp LECEC
13867:
13868: LEE13: bit USEKDY
13869: bvs LEE4C
13870: jmp LE20C
13871:
13872: iTKSA: bit USEKDY
13873: bvs LEE21
13874: jmp LE203
13875:
13876: LEE21: pha
13877: .if CompileComputer >= PLUS4_05
13878: nop
13879: nop
13880: .else
13881: lda SA
13882: .endif
13883: sta KDYCMD
13884: lda #$82
13885: jmp LECEC
13886:
13887: iLISTEN:jsr LEDA9
13888: bcc LEE34
13889: jmp LE156
13890:
13891: LEE34: pha
13892: lda #$20
13893: sta KDYCMD
13894: lda USEKDY
13895: ora #$80
13896: sta USEKDY
13897: lda #$81
13898: jmp LECEC
13899:
13900: LEE45: bit USEKDY
13901: bmi LEE4C
13902: jmp LE1FC
13903:
13904: LEE4C: rts
13905:
13906: iSECOND:bit USEKDY
13907: bmi LEE54
13908: jmp LE1F7
13909:
13910: LEE54: pha
13911: sta KDYCMD
13912: lda #$82
13913: jmp LECEC
13914:
13915: LEE5D: ror WRBASE
13916: jsr LEEED
13917: beq LEE66
13918: clc
13919: rts
13920:
13921: LEE66: jsr LEEF8
13922: txa
13923: pha
13924: lda FA
13925: beq LEECA
13926: cmp #$03
13927: beq LEECA
13928: bcs LEEB5
13929: cmp #$02
13930: bne LEE81
13931: php
13932: sei
13933: jsr LEB46
13934: plp
13935: beq LEECA
13936: LEE81: lda SA
13937: and #$0F
13938: beq LEECA
13939: ldy TPTR
13940: cpy #$BF
13941: bcc LEE9C
13942: jsr LE535
13943: bcs LEEA5
13944: lda #$02
13945: sta TYPE
13946: ldy #$00
13947: sty TPTR
13948: LEE9C: lda #$00
13949: sta (TAPEBS),y
13950: jsr LE535
13951: bcc LEEA9
13952: LEEA5: pla
13953: lda #$00
13954: rts
13955:
13956: LEEA9: lda SA
13957: cmp #$62
13958: bne LEECA
13959: jsr LE5F0
13960: jmp LEECA
13961:
13962: LEEB5: bit WRBASE
13963: bpl LEEC7
13964: lda FA
13965: cmp #$08
13966: bcc LEEC7
13967: lda SA
13968: and #$0F
13969: cmp #$0F
13970: beq LEECA
13971: LEEC7: jsr LF211
13972: LEECA: pla
13973: tax
13974: dec LDTND
13975: cpx LDTND
13976: beq LEEE6
13977: ldy LDTND
13978: lda LAT,y
13979: sta LAT,x
13980: lda FAT,y
13981: sta FAT,x
13982: lda SAT,y
13983: sta SAT,x
13984: LEEE6: clc
13985: rts
13986:
13987: LEEE8: lda #$00
13988: sta STATUS
13989: txa
13990: LEEED: ldx LDTND
13991: LEEEF: dex
13992: bmi LEF07
13993: cmp LAT,x
13994: bne LEEEF
13995: rts
13996:
13997: LEEF8: lda LAT,x
13998: sta LA
13999: lda SAT,x
14000: sta SA
14001: lda FAT,x
14002: sta FA
14003: LEF07: rts
14004:
14005: LEF08: lda #$00
14006: sta LDTND
14007: LEF0C: ldx #$03
14008: cpx DFLTO
14009: bcs LEF15
14010: jsr iUNLSN
14011: LEF15: cpx DFLTN
14012: bcs LEF1C
14013: jsr iUNTLK
14014: LEF1C: stx DFLTO
14015: lda #$00
14016: sta DFLTN
14017: rts
14018:
14019: iUNLSN: bit USEKDY
14020: bmi LEF2A
14021: jmp LE23D
14022:
14023: LEF2A: pha
14024: lda #$3F
14025: sta KDYCMD
14026: lda USEKDY
14027: and #$7F
14028: sta USEKDY
14029: lda #$81
14030: jmp LECEC
14031:
14032: iUNTLK: bit USEKDY
14033: bvs LEF42
14034: jmp LE22F
14035:
14036: LEF42: pha
14037: lda #$5F
14038: sta KDYCMD
14039: lda USEKDY
14040: and #$BF
14041: sta USEKDY
14042: lda #$81
14043: jmp LECEC
14044:
14045: LEF53: ldx LA
14046: jsr LEEE8
14047: bne LEF5D
14048: jmp LF276
14049:
14050: LEF5D: ldx LDTND
14051: cpx #$0A
14052: bcc LEF66
14053: jmp LF273
14054:
14055: LEF66: inc LDTND
14056: lda LA
14057: sta LAT,x
14058: lda SA
14059: ora #$60
14060: sta SA
14061: sta SAT,x
14062: lda FA
14063: sta FAT,x
14064: beq LEF86
14065: cmp #$03
14066: beq LEF86
14067: bcc LEF88
14068: jsr LF005
14069: LEF86: clc
14070: rts
14071:
14072: LEF88: cmp #$02
14073: bne LEFB8
14074: jsr LEB46
14075: tax
14076: LEF90: inx
14077: beq LEF9E
14078: stx LFD03
14079: cpx LFD03
14080: beq LEF90
14081: jmp LF27F
14082:
14083: LEF9E: sec
14084: ror APRES
14085: lda #$AF
14086: sta $07DF
14087: ldy #$00
14088: jsr KLUDES
14089: sta LFD03
14090: iny
14091: jsr KLUDES
14092: sta LFD02
14093: clc
14094: rts
14095:
14096: LEFB8: lda SA
14097: and #$0F
14098: bne LEFEA
14099: jsr LE31B
14100: bcs LEFE9
14101: jsr LF160
14102: lda FNLEN
14103: beq LEFD4
14104: jsr LEA21
14105: bcc LEFDF
14106: beq LEFE9
14107: LEFD1: jmp LF27C
14108:
14109: LEFD4: jsr LE9CC
14110: beq LEFE9
14111: bcs LEFD1
14112: cmp #$05
14113: beq LEFD1
14114: LEFDF: ldy #$BF
14115: sty TPTR
14116: lda #$02
14117: sta TYPE
14118: LEFE8: clc
14119: LEFE9: rts
14120:
14121: LEFEA: jsr LE319
14122: bcs LEFE9
14123: lda #$04
14124: sta TYPE
14125: jsr LE56C
14126: bcs LF004
14127: lda #$02
14128: sta TYPE
14129: ldy #$00
14130: sty TPTR
14131: sty CTALLY
14132: LF004: rts
14133:
14134: LF005: lda SA
14135: bmi LEFE8
14136: ldy FNLEN
14137: beq LEFE8
14138: lda #$00
14139: sta STATUS
14140: lda FA
14141: jsr iLISTEN
14142: bit STATUS
14143: bmi LF025
14144: lda SA
14145: ora #$F0
14146: jsr iSECOND
14147: lda STATUS
14148: bpl LF02A
14149: LF025: pla
14150: pla
14151: jmp LF27F
14152:
14153: LF02A: lda FNLEN
14154: beq LF040
14155: ldy #$00
14156: LF030: lda #$AF
14157: sta $07DF
14158: jsr KLUDES
14159: jsr iCIOUT
14160: iny
14161: cpy FNLEN
14162: bne LF030
14163: LF040: jmp LF223
14164:
14165: iLOAD: stx MEMUSS
14166: sty $B5
14167: jmp (lILOAD)
14168:
14169: LF04A: sta VERFCK
14170: lda #$00
14171: sta STATUS
14172: lda FA
14173: bne LF057
14174: LF054: jmp LF28B
14175:
14176: LF057: cmp #$03
14177: beq LF054
14178: bcs LF064
14179: cmp #$02
14180: beq LF054
14181: jmp LF0F0
14182:
14183: LF064: ldy FNLEN
14184: bne LF06B
14185: jmp LF288
14186:
14187: LF06B: ldx SA
14188: jsr LF160
14189: lda #$60
14190: sta SA
14191: jsr LF005
14192: lda FA
14193: jsr iTALK
14194: lda SA
14195: jsr iTKSA
14196: jsr iACPTR
14197: sta EAL
14198: lda STATUS
14199: lsr a
14200: lsr a
14201: bcs LF0E8
14202: jsr iACPTR
14203: sta $9E
14204: txa
14205: bne LF09C
14206: lda MEMUSS
14207: sta EAL
14208: lda $B5
14209: sta $9E
14210: LF09C: jsr LF189
14211: LF09F: lda #$FD
14212: and STATUS
14213: sta STATUS
14214: jsr kSTOP
14215: bne LF0AD
14216: jmp LF1FF
14217:
14218: LF0AD: jsr iACPTR
14219: tax
14220: lda STATUS
14221: lsr a
14222: lsr a
14223: bcs LF09F
14224: txa
14225: ldy VERFCK
14226: beq LF0D4
14227: ldy #$00
14228: sta VSAVE
14229: lda #$9D
14230: sta $07DF
14231: jsr KLUDES
14232: cmp VSAVE
14233: beq LF0D6
14234: lda #$10
14235: jsr LF41E
14236: .byte $2C
14237: LF0D4: sta (EAL),y
14238: LF0D6: inc EAL
14239: bne LF0DC
14240: inc $9E
14241: LF0DC: bit STATUS
14242: bvc LF09F
14243: jsr iUNTLK
14244: jsr LF211
14245: bcc LF0EB
14246: LF0E8: jmp LF27C
14247:
14248: LF0EB: ldx EAL
14249: ldy $9E
14250: LF0EF: rts
14251:
14252: LF0F0: jsr LE31B
14253: bcs LF0EF
14254: jsr LF160
14255: LF0F8: lda FNLEN
14256: beq LF105
14257: jsr LEA21
14258: bcc LF10C
14259: beq LF0EF
14260: bcs LF0E8
14261: LF105: jsr LE9CC
14262: beq LF0EF
14263: bcs LF0E8
14264: LF10C: lda TYPE
14265: cmp #$01
14266: beq LF124
14267: cmp #$03
14268: bne LF0F8
14269: LF116: ldy #$00
14270: lda (TAPEBS),y
14271: sta MEMUSS
14272: iny
14273: lda (TAPEBS),y
14274: sta $B5
14275: jmp LF128
14276:
14277: LF124: lda SA
14278: bne LF116
14279: LF128: sec
14280: ldy #$02
14281: lda (TAPEBS),y
14282: ldy #$00
14283: sbc (TAPEBS),y
14284: tax
14285: ldy #$03
14286: lda (TAPEBS),y
14287: ldy #$01
14288: sbc (TAPEBS),y
14289: tay
14290: clc
14291: txa
14292: adc MEMUSS
14293: sta EAL
14294: tya
14295: adc $B5
14296: sta $9E
14297: lda MEMUSS
14298: sta STAL
14299: lda $B5
14300: sta $B3
14301: jsr LF189
14302: jsr LE8F3
14303: bcc LF0EB
14304: lda #$1D
14305: bit VERFCK
14306: bpl LF0EF
14307: lda #$1C
14308: bne LF0EF
14309: LF160: lda MSGFLG
14310: bpl LF188
14311: ldy #$0C
14312: jsr LEBCA
14313: lda FNLEN
14314: beq LF188
14315: ldy #$17
14316: jsr LEBCA
14317: LF172: ldy FNLEN
14318: beq LF188
14319: ldy #$00
14320: LF178: lda #$AF
14321: sta $07DF
14322: jsr KLUDES
14323: jsr kCHROUT
14324: iny
14325: cpy FNLEN
14326: bne LF178
14327: LF188: rts
14328:
14329: LF189: ldy #$49
14330: lda VERFCK
14331: beq LF191
14332: ldy #$59
14333: LF191: jmp LEBC6
14334:
14335: iSAVE: stx EAL
14336: sty $9E
14337: tax
14338: lda PDIR,x
14339: sta STAL
14340: lda PORT,x
14341: sta $B3
14342: jmp (lISAVE)
14343:
14344: LF1A4: lda FA
14345: bne LF1AB
14346: LF1A8: jmp LF28B
14347:
14348: LF1AB: cmp #$03
14349: beq LF1A8
14350: cmp #$02
14351: beq LF1A8
14352: bcc LF234
14353: lda #$61
14354: sta SA
14355: ldy FNLEN
14356: bne LF1C0
14357: jmp LF288
14358:
14359: LF1C0: jsr LF005
14360: jsr LF228
14361: lda FA
14362: jsr iLISTEN
14363: lda SA
14364: jsr iSECOND
14365: ldy #$00
14366: lda $B3
14367: sta $9C
14368: lda STAL
14369: sta SAL
14370: lda SAL
14371: jsr iCIOUT
14372: lda $9C
14373: jsr iCIOUT
14374: LF1E4: sec
14375: lda SAL
14376: sbc EAL
14377: lda $9C
14378: sbc $9E
14379: bcs LF20E
14380: lda #$9B
14381: sta $07DF
14382: jsr KLUDES
14383: jsr iCIOUT
14384: jsr kSTOP
14385: bne LF206
14386: LF1FF: jsr LF211
14387: lda #$00
14388: sec
14389: rts
14390:
14391: LF206: inc SAL
14392: bne LF1E4
14393: inc $9C
14394: bne LF1E4
14395: LF20E: jsr iUNLSN
14396: LF211: bit SA
14397: bmi LF226
14398: lda FA
14399: jsr iLISTEN
14400: lda SA
14401: and #$EF
14402: ora #$E0
14403: jsr iSECOND
14404: LF223: jsr iUNLSN
14405: LF226: clc
14406: rts
14407:
14408: LF228: lda MSGFLG
14409: bpl LF264
14410: ldy #$51
14411: jsr LEBCA
14412: jmp LF172
14413:
14414: LF234: jsr LE319
14415: bcs LF262
14416: jsr LF228
14417: ldx #$03
14418: lda SA
14419: and #$01
14420: bne LF246
14421: ldx #$01
14422: LF246: stx TYPE
14423: jsr LE56C
14424: bcs LF262
14425: lda #$00
14426: sta TYPE
14427: jsr LE5B0
14428: bcs LF262
14429: lda SA
14430: and #$02
14431: beq LF261
14432: jsr LE5F0
14433: bcs LF262
14434: LF261: clc
14435: LF262: lda #$00
14436: LF264: rts
14437:
14438: LF265: lda STKEY
14439: cmp #$7F
14440: bne LF272
14441: php
14442: jsr kCLRCHN
14443: sta NDX
14444: plp
14445: LF272: rts
14446:
14447: LF273: lda #$01
14448: .byte $2C
14449: LF276: lda #$02
14450: .byte $2C
14451: LF279: lda #$03
14452: .byte $2C
14453: LF27C: lda #$04
14454: .byte $2C
14455: LF27F: lda #$05
14456: .byte $2C
14457: LF282: lda #$06
14458: .byte $2C
14459: LF285: lda #$07
14460: .byte $2C
14461: LF288: lda #$08
14462: .byte $2C
14463: LF28B: lda #$09
14464: pha
14465: jsr kCLRCHN
14466: ldy #$00
14467: bit MSGFLG
14468: bvc LF2A1
14469: jsr LEBCA
14470: pla
14471: pha
14472: ora #$30
14473: jsr kCHROUT
14474: LF2A1: pla
14475: sec
14476: rts
14477:
14478: NMI: ldx #$FF
14479: sei
14480: txs
14481: cld
14482: jsr LCFA6
14483: jsr iIOINIT
14484: jsr LCF11
14485: php
14486: bmi LF2BC
14487: lda #$A5
14488: cmp DEJAVU
14489: beq LF2BF
14490: LF2BC: jsr iRAMTAS
14491: LF2BF: jsr iRESTOR
14492: jsr iCINT
14493: plp
14494: bmi LF2CB
14495: jmp LF445
14496:
14497: LF2CB: jmp L8000
14498:
14499: iRESTOR:ldx #$EB
14500: ldy #$F2
14501: clc
14502: iVECTOR:stx TMP2
14503: sty $B9
14504: ldy #$1F
14505: LF2D9: lda lITIME,y
14506: bcs LF2E0
14507: lda (TMP2),y
14508: LF2E0: sta lITIME,y
14509: bcc LF2E7
14510: sta (TMP2),y
14511: LF2E7: dey
14512: bpl LF2D9
14513: rts
14514:
14515: .addr LCE42
14516: .addr LCE0E
14517: .addr LF44C
14518: .addr LEF53
14519: .addr LEE5D
14520: .addr LED18
14521: .addr LED60
14522: .addr LEF0C
14523: .addr LEBE8
14524: .addr LEC4B
14525: .addr LF265
14526: .addr LEBD9
14527: .addr LEF08
14528: .addr LF44C
14529: .addr LF04A
14530: .addr LF1A4
14531: iIOINIT:lda #$0F
14532: sta PDIR
14533: lda #$08
14534: sta PORT
14535: ldx #$FF
14536: stx SPI6529
14537: stx LFEF3
14538: inx
14539: stx LFEF4
14540: stx LFEF0
14541: lda #$40
14542: sta LFEF5
14543: .if CompileComputer >= PLUS4_01
14544: jsr LEDEA
14545: .else
14546: sta LFEF2
14547: .endif
14548: LF32A: lda LF338,x
14549: sta TEDT1RL,x
14550: inx
14551: cpx #$1A
14552: bne LF32A
14553: jmp LEB46
14554:
14555: LF338: .byte $F1,$39,$00,$00,$00,$00,$1B,$08 | LF338_NTSC
14556: .byte $00,$00,$02,$CC,$00,$00,$00,$00
14557: .byte $00,$00,$04,$D0,$08,$71,$5B,$75
14558: .byte $77,$6E
14559: iRAMTAS:lda #$00
14560: tay
14561: LF355: sta SRCHTK,y
14562: sta BUF,y
14563: sta lIERROR,y
14564: sta $0400,y
14565: sta $0700,y
14566: iny
14567: bne LF355
14568: ldx #$08
14569: stx T1
14570: LF36B: lda RESET - 1,x
14571: sta RESET - 1,x
14572: cmp $3FF5,x
14573: bne LF377
14574: iny
14575: LF377: cmp $7FF5,x
14576: bne LF37E
14577: dec T1
14578: LF37E: dex
14579: bne LF36B
14580: cpy #$08
14581: beq LF38C
14582: lda T1
14583: bne LF391
14584: ldy #$7F
14585: .byte $2C
14586: LF38C: ldy #$3F
14587: ldx #$F6
14588: .byte $2C
14589: LF391: ldy #$FD
14590: clc
14591: jsr LF42F
14592: lda #$10
14593: sta $0532
14594: ldx #$3A
14595: LF39E: lda LF3D1,x
14596: sta KEYIDX,x
14597: dex
14598: bne LF39E
14599: stx KYNDX
14600: ldx #$0B
14601: LF3AC: lda LCFB3,x
14602: sta KLUDES,x
14603: dex
14604: bpl LF3AC
14605: ldx #$0F
14606: LF3B7: lda LE143,x
14607: sta COLKEY,x
14608: dex
14609: bpl LF3B7
14610: lda #$A5
14611: sta DEJAVU
14612: .if CompileComputer >= PLUS4_BETA_0203
14613: lda #$04
14614: sta FFRMSK
14615: lda #$18
14616: sta VMBMSK
14617: .endif
14618: rts
14619:
14620: .if CompileComputer = PLUS4_BETA_0119
14621: LCFB3: php
14622: sei
14623: sta TEDROMSEL
14624: lda (PDIR),y
14625: sta TEDRAMSEL
14626: plp
14627: LF3D1: rts
14628:
14629: .else
14630: nop
14631: LF3D1: nop
14632: .endif
14633: .byte $07,$06,$0A,$07,$06,$04,$05,$05
14634: .byte "GRAPHICDLOAD"
14635:
14636: .byte $22
14637: .byte "DIRECTORY"
14638:
14639: .byte $0D
14640: .byte "SCNCLR"
14641: .byte $0D
14642: .byte "DSAVE"
14643: .byte $22
14644: .byte "RUN"
14645: .byte $0D
14646: .byte "LIST"
14647: .byte $0D
14648: .byte "HELP"
14649: .byte $0D
14650: iSETNAM:sta FNLEN
14651: stx FNADR
14652: sty $B0
14653: rts
14654:
14655: iSETLFS:sta LA
14656: stx FA
14657: sty SA
14658: rts
14659:
14660: iSETMSF:sta MSGFLG
14661: iREADST:lda STATUS
14662: LF41E: ora STATUS
14663: sta STATUS
14664: rts
14665:
14666: iSETTMO:sta TIMOUT
14667: rts
14668:
14669: iMEMTOP:bcc LF42F
14670: ldx MSIZ
14671: ldy $0534
14672: LF42F: stx MSIZ
14673: sty $0534
14674: rts
14675:
14676: iMEMBOT:bcc LF43E
14677: ldx MEMSTR
14678: ldy $0532
14679: LF43E: stx MEMSTR
14680: sty $0532
14681: rts
14682:
14683: LF445: ldx #$00
14684: stx FLGS
14685: beq LF458
14686: LF44C: cld
14687: ldx #$05
14688: LF44F: pla
14689: sta PCH,x
14690: dex
14691: bpl LF44F
14692: ldx #$09
14693: LF458: stx SYREG
14694: lda #$C0
14695: sta MSGFLG
14696: tsx
14697: stx SP
14698: ldx SYREG
14699: jsr LCF66
14700: lda TEDVSP
14701: ora #$10
14702: sta TEDVSP
14703: lda #$00
14704: sta T2
14705: sta $A2
14706: cli
14707: LF478: ldx #$0F
14708: jsr LCF66
14709: lda PCH
14710: jsr LFB10
14711: ldy #$00
14712: LF485: lda PCL,y
14713: jsr LFB05
14714: iny
14715: cpy #$06
14716: bcc LF485
14717: bcs LF495
14718: LF492: jsr LFB0B
14719: LF495: jsr LFB3A
14720: ldx #$00
14721: stx CHRPTR
14722: LF49C: jsr kCHRIN
14723: sta BUF,x
14724: inx
14725: cmp #$0D
14726: bne LF49C
14727: dex
14728: stx BUFEND
14729: LF4AA: jsr LFB3F
14730: beq LF495
14731: cmp #$20
14732: beq LF4AA
14733: ldx #$0F
14734: LF4B5: cmp LF570,x
14735: beq LF4BF
14736: dex
14737: bpl LF4B5
14738: bmi LF492
14739: LF4BF: cpx #$0D
14740: bcs LF4D1
14741: txa
14742: asl a
14743: tax
14744: lda LF580+1,x
14745: pha
14746: lda LF580,x
14747: pha
14748: jmp LFAAD
14749:
14750: LF4D1: sta CMPFLG
14751: jmp LF66E
14752:
14753: LF4D7: bcs LF4E1
14754: jsr LFB5B
14755: jsr LFAAD
14756: bcc LF4E7
14757: LF4E1: lda #$0B
14758: sta T0
14759: bne LF4F5
14760: LF4E7: jsr LFB64
14761: lsr a
14762: .if CompileComputer = PLUS4_BETA_0203
14763: ror $51
14764: .else
14765: ror T0
14766: .endif
14767: lsr a
14768: ror T0
14769: lsr a
14770: ror T0
14771: sta $F2
14772: LF4F5: jsr kSTOP
14773: beq LF507
14774: jsr LF59A
14775: lda #$08
14776: jsr LFB96
14777: jsr LFB72
14778: bcs LF4F5
14779: LF507: jmp LF495
14780:
14781: LF50A: bcs LF507
14782: lda T0
14783: ldy $F2
14784: sta PCL
14785: sty PCH
14786: ldy #$00
14787: LF518: jsr LFAAD
14788: bcs LF507
14789: lda T0
14790: sta FLGS,y
14791: iny
14792: cpy #$05
14793: bcc LF518
14794: bcs LF507
14795: LF529: bcs LF53E
14796: jsr LFB5B
14797: ldy #$00
14798: LF530: jsr LFAAD
14799: bcs LF53E
14800: lda T0
14801: sta (T2),y
14802: iny
14803: cpy #$08
14804: bcc LF530
14805:
14806: LF53E:
14807: .if CompileComputer >= PLUS4_01
14808: jsr LFBD8
14809: .byte $1B
14810: .byte $4F
14811: sta (PDIR),y
14812: jsr LF59A
14813: jmp LF495
14814: .else
14815: lda #$91
14816: jsr kCHROUT
14817: jsr LDF87
14818: jsr LF59A
14819: bcs LF507
14820: .endif
14821:
14822: LF54B: bcs LF557
14823: lda T0
14824: sta PCL
14825: lda $F2
14826: sta PCH
14827: LF557: ldx SP
14828: txs
14829: ldx #$00
14830: LF55D: lda PCH,x
14831: pha
14832: inx
14833: cpx #$03
14834: bne LF55D
14835: ldx XR
14836: ldy YR
14837: lda ACC
14838: rti
14839:
14840: LF570: .byte "XMRGTCDA.HF>;LSV"
14841:
14842: LF580: .word $8002,$F4D6,$F477,$F54A
14843: .word $F5D0,$F5CD,$F723,$F91E
14844: .word $F91E,$F60D,$F709,$F528
14845: .word $F509
14846: LF59A: jsr LFB3A
14847: lda #$3E
14848: jsr kCHROUT
14849: jsr LFAFB
14850: ldy #$00
14851: LF5A7: jsr LCF96
14852: jsr LFB05
14853: iny
14854: cpy #$08
14855: bcc LF5A7
14856: jsr LFBD8
14857: .byte ":"
14858: .byte $12,$00
14859: ldy #$00
14860: LF5BA: jsr LCF96
14861: and #$7F
14862: cmp #$20
14863: bcs LF5C5
14864: lda #$2E
14865: LF5C5: jsr kCHROUT
14866: iny
14867: cpy #$08
14868: bcc LF5BA
14869: rts
14870:
14871: LF5CE: lda #$00
14872: .byte $2C
14873: LF5D1: lda #$80
14874: .if CompileComputer >= PLUS4_01
14875: sta $BB
14876: .else
14877: sta CMPFLG
14878: .endif
14879: jsr LFBA0
14880: bcs LF60A
14881: jsr LFAAD
14882: bcs LF60A
14883: jsr LFB3A
14884: ldy #$00
14885: LF5E4:
14886: .if CompileComputer >= PLUS4_01
14887: jsr LCF96
14888: bit $BB
14889: .else
14890: lda (T2),y
14891: bit CMPFLG
14892: .endif
14893: bpl LF5ED
14894: sta (T0),y
14895: LF5ED: cmp (T0),y
14896: beq LF5F9
14897: jsr kSTOP
14898: beq LF607
14899: jsr LFAFB
14900: LF5F9: inc T0
14901: bne LF5FF
14902: inc $F2
14903: LF5FF: jsr LFB94
14904: jsr LFB86
14905: bcs LF5E4
14906: LF607: jmp LF495
14907:
14908: LF60A: jmp LF492
14909:
14910: .if CompileComputer >= PLUS4_01
14911: nop
14912: .endif
14913:
14914: LF60E: jsr LFBA0
14915: bcs LF60A
14916: ldy #$00
14917: jsr LFB3F
14918: cmp #$27
14919: bne LF62E
14920: jsr LFB3F
14921: LF61F:
14922: .if CompileComputer >= PLUS4_01
14923: sta XCNT,y
14924: .else
14925: sta $77,y
14926: .endif
14927: iny
14928: jsr LFB3F
14929: beq LF643
14930: cpy #$20
14931: bne LF61F
14932: beq LF643
14933: LF62E: sty BAD
14934: jsr LFAAB
14935: LF634: lda T0
14936: .if CompileComputer >= PLUS4_01
14937: sta XCNT,y
14938: .else
14939: sta $77,y
14940: .endif
14941: iny
14942: jsr LFAAD
14943: bcs LF643
14944: cpy #$20
14945: bne LF634
14946: LF643: sty CMPFLG
14947: jsr LFB3A
14948: LF649: ldx #$00
14949: ldy #$00
14950: LF64D: jsr LCF96
14951: .if CompileComputer >= PLUS4_01
14952: cmp XCNT,x
14953: .else
14954: cmp $77,x
14955: .endif
14956: bne LF664
14957: iny
14958: inx
14959: cpx CMPFLG
14960: bne LF64D
14961: jsr kSTOP
14962: .if CompileComputer >= PLUS4_01
14963: beq LF607
14964: .else
14965: beq LF66B
14966: .endif
14967: jsr LFAFB
14968: LF664: jsr LFB94
14969: jsr LFB86
14970: bcs LF649
14971: .if CompileComputer >= PLUS4_01
14972: bcc LF607
14973: .else
14974: LF66B: jmp LF495
14975: .endif
14976:
14977: LF66E: ldy #$01
14978: sty FA
14979: sty SA
14980: dey
14981: sty FNLEN
14982: sty STATUS
14983: sty VERFCK
14984: .if CompileComputer >= PLUS4_01
14985: lda #>XCNT
14986: sta FNADR+1
14987: lda #<XCNT
14988: .else
14989: nop
14990: sty FNADR+1
14991: lda #$77
14992: .endif
14993: sta FNADR
14994: LF683: jsr LFB3F
14995: beq LF6E6
14996: cmp #$20
14997: beq LF683
14998: cmp #$22
14999: bne LF6A7
15000: ldx CHRPTR
15001: LF692: cpx BUFEND
15002: bcs LF6E6
15003: lda BUF,x
15004: inx
15005: cmp #$22
15006: beq LF6AB
15007: sta (FNADR),y
15008: inc FNLEN
15009: iny
15010: .if CompileComputer >= PLUS4_01
15011: cpy #$11
15012: .else
15013: cpy #$10
15014: .endif
15015: bcc LF692
15016: LF6A7: jmp LF492
15017:
15018: .if CompileComputer >= PLUS4_01
15019: nop
15020: .endif
15021:
15022: LF6AB: stx CHRPTR
15023: jsr LFB3F
15024: jsr LFAAD
15025: bcs LF6E6
15026: lda T0
15027: .if CompileComputer < PLUS4_01
15028: and #$0F
15029: .endif
15030: beq LF6A7
15031: cmp #$03
15032: beq LF6A7
15033: sta FA
15034: jsr LFAAD
15035: bcs LF6E6
15036: jsr LFB5B
15037: jsr LFAAD
15038: bcs LF6A7
15039: jsr LFB3A
15040: ldx T0
15041: ldy $F2
15042: lda CMPFLG
15043: cmp #$53
15044: bne LF6A7
15045: lda #$00
15046: sta SA
15047: lda #$A1
15048: jsr kSAVE
15049: LF6E3: jmp LF495
15050:
15051: LF6E6: lda CMPFLG
15052: cmp #$56
15053: beq LF6F3
15054: cmp #$4C
15055: bne LF6A7
15056: lda #$00
15057: LF6F3: jsr kLOAD
15058: lda STATUS
15059: and #$10
15060: beq LF6E3
15061: lda CMPFLG
15062: cmp #$4C
15063: beq LF6A7
15064: ldx #$2A
15065: jsr LCF66
15066: bmi LF6E3
15067: LF70A: jsr LFBA0
15068: bcs LF6A7
15069: jsr LFAAD
15070: bcs LF6A7
15071: ldy #$00
15072: LF716: lda T0
15073: sta (T2),y
15074: jsr LFB94
15075: jsr LFB86
15076: bcs LF716
15077: bcc LF6E3
15078: LF724: bcs LF72E
15079: jsr LFB5B
15080: jsr LFAAD
15081: bcc LF734
15082: LF72E: lda #$14
15083: sta T0
15084: bne LF737
15085: LF734: jsr LFB64
15086: LF737: jsr LFB3A
15087: jsr kSTOP
15088: beq LF6E3
15089: jsr LF752
15090: inc LENGTH
15091: lda LENGTH
15092: jsr LFB96
15093: lda LENGTH
15094: jsr LFB74
15095: bcs LF737
15096: bcc LF6E3
15097: LF752: lda #$2E
15098: jsr kCHROUT
15099: jsr LFB08
15100: LF75A: jsr LFAFB
15101: jsr LFB08
15102: ldy #$00
15103: jsr LCF96
15104: jsr LF7D4
15105: pha
15106: ldx LENGTH
15107: inx
15108: LF76C: dex
15109: bpl LF77A
15110: jsr LFBD8
15111: .byte " "
15112: .byte $00
15113: jmp LF780
15114:
15115: nop
15116: LF77A: jsr LCF96
15117: jsr LFB05
15118: LF780: iny
15119: cpy #$03
15120: bcc LF76C
15121: pla
15122: ldx #$03
15123: jsr LF81B
15124: ldx #$06
15125: LF78D: cpx #$03
15126: bne LF7A5
15127: ldy LENGTH
15128: beq LF7A5
15129: LF795: lda FORMAT
15130: cmp #$E8
15131: jsr LCF96
15132: bcs LF7BC
15133: jsr LFB10
15134: dey
15135: bne LF795
15136: LF7A5: asl FORMAT
15137: bcc LF7B8
15138: lda LF88E,x
15139: jsr kCHROUT
15140: lda LF894,x
15141: beq LF7B8
15142: jsr kCHROUT
15143: LF7B8: dex
15144: bne LF78D
15145: rts
15146:
15147: LF7BC: jsr LF7C8
15148: clc
15149: adc #$01
15150: bne LF7C5
15151: inx
15152: LF7C5: jmp LFAFF
15153:
15154: LF7C8: ldx $A2
15155: tay
15156: bpl LF7CE
15157: dex
15158: LF7CE: adc T2
15159: bcc LF7D3
15160: inx
15161: LF7D3: rts
15162:
15163: LF7D4: tay
15164: lsr a
15165: bcc LF7E3
15166: lsr a
15167: bcs LF7F2
15168: cmp #$22
15169: beq LF7F2
15170: and #$07
15171: ora #$80
15172: LF7E3: lsr a
15173: tax
15174: lda LF83D,x
15175: bcs LF7EE
15176: lsr a
15177: lsr a
15178: lsr a
15179: lsr a
15180: LF7EE: and #$0F
15181: bne LF7F6
15182: LF7F2: ldy #$80
15183: lda #$00
15184: LF7F6: tax
15185: lda LF881,x
15186: sta FORMAT
15187: and #$03
15188: sta LENGTH
15189: tya
15190: and #$8F
15191: tax
15192: tya
15193: ldy #$03
15194: cpx #$8A
15195: beq LF817
15196: LF80C: lsr a
15197: bcc LF817
15198: lsr a
15199: LF810: lsr a
15200: ora #$20
15201: dey
15202: bne LF810
15203: iny
15204: LF817: dey
15205: bne LF80C
15206: rts
15207:
15208: LF81B: tay
15209: lda LF89B,y
15210: sta T1
15211: lda LF8DB,y
15212: sta $A0
15213: LF826: lda #$00
15214: ldy #$05
15215: LF82A: asl $A0
15216: rol T1
15217: rol a
15218: dey
15219: bne LF82A
15220: adc #$3F
15221: jsr kCHROUT
15222: dex
15223: bne LF826
15224: jmp LFB08
15225:
15226: LF83D: .byte "@"
15227: .byte $02
15228: .byte "E"
15229: .byte $03,$D0,$08
15230: .byte "@"
15231: .byte $09
15232: .byte "0"
15233: .byte $22
15234: .byte "E3"
15235: .byte $D0,$08
15236: .byte "@"
15237: .byte $09
15238: .byte "@"
15239: .byte $02
15240: .byte "E3"
15241: .byte $D0,$08
15242: .byte "@"
15243: .byte $09
15244: .byte "@"
15245: .byte $02
15246: .byte "E"
15247: .byte $B3,$D0,$08
15248: .byte "@"
15249: .byte $09,$00,$22
15250: .byte "D3"
15251: .byte $D0,$8C
15252: .byte "D"
15253: .byte $00,$11,$22
15254: .byte "D3"
15255: .byte $D0,$8C
15256: .byte "D"
15257: .byte $9A,$10,$22
15258: .byte "D3"
15259: .byte $D0,$08
15260: .byte "@"
15261: .byte $09,$10,$22
15262: .byte "D3"
15263: .byte $D0,$08
15264: .byte "@"
15265: .byte $09
15266: .byte "b"
15267: .byte $13
15268: .byte "x"
15269: .byte $A9
15270: LF881: .byte $00
15271: .byte "!"
15272: .byte $81,$82,$00,$00
15273: .byte "YM"
15274: .byte $91,$92,$86
15275: .byte "J"
15276: .byte $85
15277: LF88E: .byte $9D
15278: .byte ",),#("
15279: LF894: .byte "$Y"
15280: .byte $00
15281: .byte "X$$"
15282: .byte $00
15283: LF89B: .byte $1C,$8A,$1C
15284: .byte "#]"
15285: .byte $8B,$1B,$A1,$9D,$8A,$1D
15286: .byte "#"
15287: .byte $9D,$8B,$1D,$A1,$00
15288: .byte ")"
15289: .byte $19,$AE
15290: .byte "i"
15291: .byte $A8,$19
15292: .byte "#$S"
15293: .byte $1B
15294: .byte "#$S"
15295: .byte $19,$A1,$00,$1A
15296: .byte "[["
15297: .byte $A5
15298: .byte "i$$"
15299: .byte $AE,$AE,$A8,$AD
15300: .byte ")"
15301: .byte $00
15302: .byte "|"
15303: .byte $00,$15,$9C
15304: .byte "m"
15305: .byte $9C,$A5
15306: .byte "i)S"
15307: .byte $84,$13
15308: .byte "4"
15309: .byte $11,$A5
15310: .byte "i#"
15311: .byte $A0
15312: LF8DB: .byte $D8
15313: .byte "bZH&b"
15314: .byte $94,$88
15315: .byte "TD"
15316: .byte $C8
15317: .byte "ThD"
15318: .byte $E8,$94,$00,$B4,$08,$84
15319: .byte "t"
15320: .byte $B4
15321: .byte "(nt"
15322: .byte $F4,$CC
15323: .byte "Jr"
15324: .byte $F2,$A4,$8A,$00,$AA,$A2,$A2
15325: .byte "tttrDh"
15326: .byte $B2
15327: .byte "2"
15328: .byte $B2,$00,$22,$00,$1A,$1A
15329: .byte "&&rr"
15330: .byte $88,$C8,$C4,$CA
15331: .byte "&HDD"
15332: .byte $A2,$C8,$0D
15333: .byte " "
15334: LF91F: bcc LF924
15335: jmp LF492
15336:
15337: LF924: jsr LFB5B
15338: LF927: ldx #$00
15339: stx $78
15340: LF92B: jsr LFB3F
15341: bne LF937
15342: cpx #$00
15343: bne LF937
15344: jmp LF495
15345:
15346: LF937: cmp #$20
15347: beq LF927
15348: sta MSAL,x
15349: inx
15350: cpx #$03
15351: bne LF92B
15352: LF943: dex
15353: bmi LF958
15354: lda MSAL,x
15355: sec
15356: sbc #$3F
15357: ldy #$05
15358: LF94E: lsr a
15359: ror $78
15360: ror $77
15361: dey
15362: bne LF94E
15363: beq LF943
15364: LF958: ldx #$02
15365: LF95A: jsr LFB3F
15366: beq LF97D
15367: cmp #$20
15368: beq LF95A
15369: jsr LFA7D
15370: bcs LF976
15371: jsr LFA8B
15372: ldy T0
15373: sty $F2
15374: sta T0
15375: lda #$30
15376: sta $77,x
15377: inx
15378: LF976: sta $77,x
15379: inx
15380: .if CompileComputer >= PLUS4_03
15381: cpx #$0A
15382: .else
15383: cpx #$1E
15384: .endif
15385: bcc LF95A
15386: LF97D: stx T1
15387: ldx #$00
15388: stx WRAP
15389: LF984: ldx #$00
15390: stx TMPC
15391: lda WRAP
15392: jsr LF7D4
15393: ldx FORMAT
15394: stx $A0
15395: tax
15396: lda LF8DB,x
15397: jsr LFA5E
15398: lda LF89B,x
15399: jsr LFA5E
15400: ldx #$06
15401: LF9A3: cpx #$03
15402: bne LF9BA
15403: ldy LENGTH
15404: beq LF9BA
15405: LF9AB: lda FORMAT
15406: cmp #$E8
15407: lda #$30
15408: bcs LF9D2
15409: jsr LFA5B
15410: dey
15411: bne LF9AB
15412: LF9BA: asl FORMAT
15413: bcc LF9CD
15414: lda LF88E,x
15415: jsr LFA5E
15416: lda LF894,x
15417: beq LF9CD
15418: jsr LFA5E
15419: LF9CD: dex
15420: bne LF9A3
15421: beq LF9D8
15422: LF9D2: jsr LFA5B
15423: jsr LFA5B
15424: LF9D8: lda T1
15425: cmp TMPC
15426: beq LF9E2
15427: jmp LFA6A
15428:
15429: LF9E2: ldy LENGTH
15430: beq LFA1A
15431: lda $A0
15432: cmp #$9D
15433: bne LFA12
15434: lda T0
15435: sbc T2
15436: sta DIFF
15437: lda $F2
15438: sbc $A2
15439: bcc LFA02
15440: bne LFA72
15441: ldx DIFF
15442: bmi LFA72
15443: bpl LFA0B
15444: LFA02: tay
15445: iny
15446: bne LFA72
15447: ldx DIFF
15448: bpl LFA72
15449: LFA0B: dex
15450: dex
15451: txa
15452: ldy LENGTH
15453: bne LFA15
15454: LFA12: lda STPFLG,y
15455: LFA15: sta (T2),y
15456: dey
15457: bne LFA12
15458: LFA1A: lda WRAP
15459: sta (T2),y
15460: jsr LFB35
15461: ldx #$28
15462: jsr LCF66
15463: jsr LF75A
15464: inc LENGTH
15465: lda LENGTH
15466: jsr LFB96
15467: lda #$41
15468: sta KEYD
15469: lda #$20
15470: sta $0528
15471: sta $052D
15472: lda $A2
15473: jsr LFB20
15474: sta $0529
15475: stx $052A
15476: lda T2
15477: jsr LFB20
15478: sta $052B
15479: stx $052C
15480: lda #$07
15481: sta NDX
15482: jmp LF495
15483:
15484: LFA5B: jsr LFA5E
15485: LFA5E: stx SXREG
15486: ldx TMPC
15487: cmp $77,x
15488: beq LFA75
15489: pla
15490: pla
15491: LFA6A: inc WRAP
15492: beq LFA72
15493: jmp LF984
15494:
15495: LFA72: jmp LF492
15496:
15497: LFA75: inx
15498: stx TMPC
15499: ldx SXREG
15500: rts
15501:
15502: LFA7D: cmp #$41
15503: bcc LFA84
15504: cmp #$47
15505: rts
15506:
15507: LFA84: cmp #$30
15508: bcc LFA9E
15509: cmp #$3A
15510: rts
15511:
15512: LFA8B: jsr LFAA0
15513: asl a
15514: asl a
15515: asl a
15516: asl a
15517: sta BAD
15518: jsr LFB3F
15519: jsr LFAA0
15520: ora BAD
15521: LFA9E: sec
15522: rts
15523:
15524: LFAA0: cmp #$3A
15525: php
15526: and #$0F
15527: plp
15528: bcc LFAAA
15529: adc #$08
15530: LFAAA: rts
15531:
15532: LFAAB: dec CHRPTR
15533: LFAAD: lda #$00
15534: sta T0
15535: sta $F2
15536: sta SYREG
15537: LFAB6: jsr LFB3F
15538: beq LFAF5
15539: cmp #$20
15540: beq LFAB6
15541: LFABF: cmp #$20
15542: beq LFAF1
15543: cmp #$2C
15544: beq LFAF1
15545: cmp #$30
15546: bcc LFAF6
15547: cmp #$47
15548: bcs LFAF6
15549: cmp #$3A
15550: bcc LFAD9
15551: cmp #$41
15552: bcc LFAF6
15553: sbc #$08
15554: LFAD9: sbc #$2F
15555: asl a
15556: asl a
15557: asl a
15558: asl a
15559: ldx #$04
15560: LFAE1: asl a
15561: rol T0
15562: rol $F2
15563: dex
15564: bne LFAE1
15565: inc SYREG
15566: jsr LFB3F
15567: bne LFABF
15568: LFAF1: lda SYREG
15569: clc
15570: LFAF5: rts
15571:
15572: LFAF6: pla
15573: pla
15574: jmp LF492
15575:
15576: LFAFB: lda T2
15577: ldx $A2
15578: LFAFF: pha
15579: txa
15580: jsr LFB10
15581: pla
15582: LFB05: jsr LFB10
15583: LFB08: lda #$20
15584: .byte $2C
15585: LFB0B: lda #$3F
15586: jmp kCHROUT
15587:
15588: LFB10: stx SXREG
15589: jsr LFB20
15590: jsr kCHROUT
15591: txa
15592: ldx SXREG
15593: jmp kCHROUT
15594:
15595: LFB20: pha
15596: jsr LFB2A
15597: tax
15598: pla
15599: lsr a
15600: lsr a
15601: lsr a
15602: lsr a
15603: LFB2A: and #$0F
15604: cmp #$0A
15605: bcc LFB32
15606: adc #$06
15607: LFB32: adc #$30
15608: rts
15609:
15610: LFB35: lda #$91
15611: jsr kCHROUT
15612: LFB3A: lda #$0D
15613: jmp kCHROUT
15614:
15615: LFB3F: stx SXREG
15616: ldx CHRPTR
15617: cpx BUFEND
15618: bcs LFB57
15619: lda BUF,x
15620: cmp #$3A
15621: beq LFB57
15622: inc CHRPTR
15623: LFB51: php
15624: ldx SXREG
15625: plp
15626: rts
15627:
15628: LFB57: lda #$00
15629: beq LFB51
15630: LFB5B: lda T0
15631: sta T2
15632: lda $F2
15633: sta $A2
15634: rts
15635:
15636: LFB64: sec
15637: lda T0
15638: sbc T2
15639: sta T0
15640: lda $F2
15641: sbc $A2
15642: sta $F2
15643: rts
15644:
15645: LFB72: lda #$01
15646: LFB74: sta SXREG
15647: sec
15648: lda T0
15649: sbc SXREG
15650: sta T0
15651: lda $F2
15652: sbc #$00
15653: sta $F2
15654: rts
15655:
15656: LFB86: sec
15657: lda T1
15658: sbc #$01
15659: sta T1
15660: lda $A0
15661: sbc #$00
15662: sta $A0
15663: rts
15664:
15665: LFB94: lda #$01
15666: LFB96: clc
15667: adc T2
15668: sta T2
15669: bcc LFB9F
15670: inc $A2
15671: LFB9F: rts
15672:
15673: LFBA0: bcs LFBB6
15674: jsr LFB5B
15675: jsr LFAAD
15676: bcs LFBB6
15677: jsr LFB64
15678: lda T0
15679: sta T1
15680: lda $F2
15681: sta $A0
15682: clc
15683: LFBB6: rts
15684:
15685: LFBB7: sta SAVEA
15686: LFBBA: stx $0112
15687: sty SAVEY
15688: rts
15689:
15690: LFBC1: lda SAVEA
15691: LFBC4: ldx $0112
15692: ldy SAVEY
15693: rts
15694:
15695: LFBCB: stx XSTOP
15696: jsr LCF11
15697: ldx XSTOP
15698: eor #$80
15699: asl a
15700: lda #$00
15701: rts
15702:
15703: LFBD8: pha
15704: tya
15705: pha
15706: txa
15707: pha
15708: tsx
15709: inx
15710: inx
15711: inx
15712: inx
15713: lda FBUFFER,x
15714: sta IMPARM
15715: inx
15716: lda FBUFFER,x
15717: sta $BD
15718: inc IMPARM
15719: bne LFBF3
15720: inc $BD
15721: LFBF3: ldy #$00
15722: LFBF5: lda (IMPARM),y
15723: beq LFBFF
15724: jsr kCHROUT
15725: iny
15726: bne LFBF5
15727: LFBFF: tya
15728: tsx
15729: inx
15730: inx
15731: inx
15732: inx
15733: clc
15734: adc IMPARM
15735: sta FBUFFER,x
15736: lda #$00
15737: adc $BD
15738: inx
15739: sta FBUFFER,x
15740: pla
15741: tax
15742: pla
15743: tay
15744: pla
15745: rts
15746:
15747: iIOBASE:ldx #<ACIA
15748: ldy #>ACIA
15749: rts
15750:
15751: LFC1E: ldx #$03
15752: stx RSAV
15753: lda #$00
15754: LFC24: sta PAT,x
15755: dex
15756: bpl LFC24
15757: LFC2A: ldx RSAV
15758: lda LFC7B,x
15759: tax
15760: sta LFDD0,x
15761: ldy #$02
15762: LFC35: lda L8007,y
15763: cmp LFC56,y
15764: bne LFC51
15765: dey
15766: bpl LFC35
15767: lda L8006
15768: ldx RSAV
15769: sta PAT,x
15770: cmp #$01
15771: bne LFC51
15772: stx CURBNK
15773: jsr L8000
15774: LFC51: dec RSAV
15775: bpl LFC2A
15776: rts
15777:
15778: LFC56: .byte "CBM"
15779: LFC59: sei
15780: ldx #$03
15781: LFC5C: lda PAT,x
15782: beq LFC71
15783: txa
15784: pha
15785: lda LFC7B,x
15786: tax
15787: sta LFDD0,x
15788: stx CURBNK
15789: jsr L8000
15790: pla
15791: tax
15792: LFC71: dex
15793: bne LFC5C
15794: sta LFDD0
15795: stx CURBNK
15796: cli
15797: rts
15798:
15799: LFC7B: .byte $00,$05,$0A,$0F
15800: LFC7F: sta LFDD0,x
15801: tax
15802: lda (FETPTR),y
15803: sta LFDD0,x
15804: rts
15805:
15806: LFC89: pha
15807: stx CURBNK
15808: sta LFDD0,x
15809: ldx FETXRG
15810: lda FETSRG
15811: pha
15812: lda FETARG
15813: plp
15814: jsr LFCB0
15815: sta FETARG
15816: php
15817: pla
15818: sta FETSRG
15819: stx FETXRG
15820: pla
15821: sta CURBNK
15822: tax
15823: sta LFDD0,x
15824: rts
15825:
15826: LFCB0: jmp (LNGJMP)
15827:
15828: IRQ: pha
15829: txa
15830: pha
15831: tya
15832: pha
15833: LFCB8: sta LFDD0
15834: jmp LCE00
15835:
15836: LFCBE: ldx CURBNK
15837: sta LFDD0,x
15838: pla
15839: tay
15840: pla
15841: tax
15842: pla
15843: rti
15844:
15845: LFCC9: ldx CURBNK
15846: sta LFDD0,x
15847: jmp (BNKVEC)
15848:
15849: .if CompileComputer = PLUS4_01
15850: .byte $1E,$B0,$6F,$E0,$0F,$F1,$4F,$F0
15851: .byte $0F,$D0,$0F,$30,$0F,$B0,$0F,$82
15852: .byte $3F,$32,$FB,$D6,$FD,$85,$FD,$38
15853: .byte $EF,$0D,$B7,$0D,$DB,$42,$3D,$0F
15854: .elseif CompileComputer = PLUS4_BETA_0203 .OR CompileComputer = PLUS4_BETA_0119
15855: .byte $FE,$39,$F5,$EF,$77,$B5,$4A,$85
15856: .byte $4F,$41,$2E,$1A,$F6,$30,$4F,$86
15857: .byte $1F,$3B,$7B,$D6,$FC,$A5,$5D,$38
15858: .byte $6E,$CD,$97,$2D,$5B,$53,$1D,$54
15859: .endif
15860:
15861: FillUntil $FCF1,$FF
15862:
15863: jmp LFCC9
15864:
15865: LFCF4: jmp LFC59
15866:
15867: jmp LFC7F
15868:
15869: jmp LFC89
15870:
15871: jmp LFCB8
15872:
15873: ACIA: .byte FILLER_FD00
15874: LFD01: .byte FILLER_FD00
15875: LFD02: .byte FILLER_FD00
15876: LFD03: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15877: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15878: SPI6529:.byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15879: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15880: LFD20: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15881: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15882: LFD30: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15883: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15884: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15885: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15886: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15887: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15888: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15889: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15890: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15891: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15892: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15893: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15894: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15895: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15896: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15897: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15898: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15899: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15900: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15901: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15902: LFDD0: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15903: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15904: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15905: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15906: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15907: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15908: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15909: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15910: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15911: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15912: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15913: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15914: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15915: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15916: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15917: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15918: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15919: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15920: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15921: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15922: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15923: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15924: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15925: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15926: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15927: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15928: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15929: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15930: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15931: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15932: LFEC0: .byte FILLER_FD00
15933: LFEC1: .byte FILLER_FD00
15934: LFEC2: .byte FILLER_FD00
15935: LFEC3: .byte FILLER_FD00
15936: LFEC4: .byte FILLER_FD00
15937: LFEC5: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15938: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15939: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15940: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15941: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15942: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00
15943: LFEF0: .byte FILLER_FD00
15944: LFEF1: .byte FILLER_FD00
15945: LFEF2: .byte FILLER_FD00
15946: LFEF3: .byte FILLER_FD00
15947: LFEF4: .byte FILLER_FD00
15948: LFEF5: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
15949: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00
15950: TEDT1RL:.byte FILLER_FD00
15951: TEDT1RH:.byte FILLER_FD00
15952: TEDT2L: .byte FILLER_FD00
15953: TEDT2H: .byte FILLER_FD00
15954: TEDT3L: .byte FILLER_FD00
15955: TEDT3H: .byte FILLER_FD00
15956: TEDVSP: .byte FILLER_FD00
15957: TEDHSP: .byte FILLER_FD00
15958: TEDKEYB:.byte FILLER_FD00
15959: TEDIFR: .byte FILLER_FD00
15960: TEDIER: .byte FILLER_FD00
15961: TEDRASTER:
15962: .byte FILLER_FD00
15963: TEDCRSRPOSHI:
15964: .byte FILLER_FD00
15965: TEDCRSRPOSLO:
15966: .byte FILLER_FD00
15967: TEDFREQV1LO:
15968: .byte FILLER_FD00
15969: TEDFREQV2LO:
15970: .byte FILLER_FD00
15971: TEDFREQV2HI:
15972: .byte FILLER_FD00
15973: TEDVOL: .byte FILLER_FD00
15974: TEDFREQV1HI:
15975: .byte FILLER_FD00
15976: TEDROMSTATUS:
15977: .byte FILLER_FD00
15978: TEDVIDEORAM:
15979: .byte FILLER_FD00
15980: TEDCOLBG0:
15981: .byte FILLER_FD00
15982: TEDCOLBG1:
15983: .byte FILLER_FD00
15984: TEDCOLBG2:
15985: .byte FILLER_FD00
15986: TEDCOLBG3:
15987: .byte FILLER_FD00
15988: TEDCOLFRAME:
15989: .byte FILLER_FD00
15990: TEDBMRHI:
15991: .byte FILLER_FD00
15992: TEDBMRLO:
15993: .byte FILLER_FD00
15994: TEDRASTERROWHi:
15995: .byte FILLER_FD00
15996: TEDRASTERROWLO:
15997: .byte FILLER_FD00
15998: TEDRASTERCOL:
15999: .byte FILLER_FD00
16000: TEDVERTSUBADDRESS:
16001: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
16002: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
16003: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
16004: .byte FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00,FILLER_FD00
16005: TEDRAMSEL:
16006: .byte FILLER_FD00
16007: TEDROMSEL:
16008: .byte FILLER_FD00
16009:
16010: .byte FILLER_FF40
16011:
16012: LFF41:
16013:
16014: .if CompileComputer = PLUS4_BETA_0203 .or CompileComputer = PLUS4_BETA_0119
16015: .byte $5C,$D0,$C5,$9B,$B2,$F8,$DB,$00
16016: .elseif CompileComputer = PLUS4_01
16017: .byte $5F,$D0,$8D,$99,$1A,$A0,$DB,$00
16018: .endif
16019:
16020: FillUntil $FF49,$FF
16021:
16022: kDEFFNKEY:
16023: jmp LB7C2
16024:
16025: kPRINT: jmp LDC49
16026:
16027: LFF4F: jmp LFBD8
16028:
16029: kMLMONITOR:
16030: jmp LF445
16031:
16032: .if CompileComputer = PLUS4_BETA_0203 .or CompileComputer = PLUS4_BETA_0119
16033: .byte $68,$77,$07,$C8,$C7,$25,$7E,$6F
16034: .byte $BE,$B0,$4E,$B7,$D8,$1C,$2D,$18
16035: .byte $DF,$73,$F7,$20,$77,$84,$64,$D8
16036: .byte $7B,$30,$E3,$0A,$79,$42,$B3,$AB
16037: .byte $3A,$5E,$E2,$3F,$87,$4F,$7C,$36
16038: .byte $7D,$A0
16039: .elseif CompileComputer = PLUS4_01
16040: .byte $2D,$F0,$0F,$F0,$8F,$F0,$2F,$61
16041: .byte $2F,$F0,$4F,$A7,$D9,$8C,$AD,$18
16042: .byte $DD,$73,$F7,$08,$57,$04,$75,$C8
16043: .byte $7B,$62,$E5,$0A,$F8,$03,$F1,$0B
16044: .byte $FA,$0E,$F0,$0F,$F1,$4F,$F8,$06
16045: .byte $FC,$0C
16046: .endif
16047:
16048: FillUntil $FF7F,$FF
16049:
16050: .byte ROM_CHECKSUM,ROM_VERSION
16051:
16052: kCINT: jmp iCINT
16053:
16054: kIOINIT:jmp iIOINIT
16055:
16056: kRAMTAS:jmp iRAMTAS
16057:
16058: kRESTOR:jmp iRESTOR
16059:
16060: kVECTOR:jmp iVECTOR
16061:
16062: kSETMSF:jmp iSETMSF
16063:
16064: kSECOND:jmp iSECOND
16065:
16066: kTKSA: jmp iTKSA
16067:
16068: kMEMTOP:jmp iMEMTOP
16069:
16070: kMEMBOT:jmp iMEMBOT
16071:
16072: kSCNKEY:jmp iSCNKEY
16073:
16074: kSETTMO:jmp iSETTMO
16075:
16076: kACPTR: jmp iACPTR
16077:
16078: kCIOUT: jmp iCIOUT
16079:
16080: kUNTLK: jmp iUNTLK
16081:
16082: kUNLSN: jmp iUNLSN
16083:
16084: kLISTEN:jmp iLISTEN
16085:
16086: kTALK: jmp iTALK
16087:
16088: kREADST:jmp iREADST
16089:
16090: kSETLFS:jmp iSETLFS
16091:
16092: kSETNAM:jmp iSETNAM
16093:
16094: kOPEN: jmp (lIOPEN)
16095:
16096: kCLOSE: jmp (lICLOSE)
16097:
16098: kCHKIN: jmp (lICHKIN)
16099:
16100: kCHKOUT:jmp (lICHKOUT)
16101:
16102: kCLRCHN:jmp (lICLRCHN)
16103:
16104: kCHRIN: jmp (lICHRIN)
16105:
16106: kCHROUT:jmp (lICHROUT)
16107:
16108: kLOAD: jmp iLOAD
16109:
16110: kSAVE: jmp iSAVE
16111:
16112: kSETTIM:jmp iSETTIM
16113:
16114: kRDTIM: jmp iRDTIM
16115:
16116: kSTOP: jmp (lISTOP)
16117:
16118: kGETIN: jmp (lIGETIN)
16119:
16120: kCLALL: jmp (lICLALL)
16121:
16122: kUDTIM: jmp iUDTIM
16123:
16124: kSCREEN:jmp iSCREEN
16125:
16126: kPLOT: jmp iPLOT
16127:
16128: kIOBASE:jmp iIOBASE
16129:
16130: RESET: sta TEDRAMSEL
16131: jmp NMI
16132:
16133: .addr RESET
16134: .addr IRQ

plus4.a65.html; generated on Fri Sep 18 21:44:53 2015 by ca65html
uz@cc65.org