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