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

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