Commodore 128 ROM Disassembly

done for The IDE64 Project by Soci/Singular (Kajtár Zsolt)
Version 4 (Jan 2002) Still preview!
Modified and with extended comments by Johann Klasek

Used firmware:
$4000-$7FFF: 318018-04
$8000-$BFFF: 318019-04
$C000-$FFFF: 318077-01
Send bugreports for the original version to <soci at c64.rulez.org>
Send bugreports to this version to <j+c64 at klasek DOT at>

See also C128 zero page (german)

               * = $4000


; Cold Entry

4000: 4C 23 40	JMP $4023	; Basic Cold Start

; Warm Entry

4003: 4C 09 40	JMP $4009	; Basic Restart

; IRQ Entry

4006: 4C 4D A8	JMP $A84D	; IRQ Work

; Basic Restart

4009: 20 CC FF	JSR $FFCC	; (iclrch)      Restore I/O Vector [F226]
400C: 20 7A 41	JSR $417A	; Set Preconfig Registers
400F: 20 8D 41	JSR $418D	; Init Sprite Movement Tabs
4012: 20 12 41	JSR $4112	; Chime
4015: 20 38 52	JSR $5238	; Clear Stack & Work Area
4018: A9 00	LDA #$00
401A: 85 15	STA $15 	; Current I/O prompt flag

401C: 58	CLI
401D: 4C 37 4D	JMP $4D37	; Error or Ready

; Unused

4020: 00 FF FF               	; '{0}..'

; Basic Cold Start

4023: 20 7A 41	JSR $417A	; Set Preconfig Registers
4026: 20 51 42	JSR $4251	; Set Basic Links
4029: 20 45 40	JSR $4045	; Set-Up Basic Constants
402C: 20 9B 41	JSR $419B	; Print Startup Message
402F: AD 04 0A	LDA $0A04
4032: 09 01	ORA #$01
4034: 8D 04 0A	STA $0A04
4037: A2 03	LDX #$03
4039: 8E 00 0A	STX $0A00	; Restart System (BASIC Warm) [4000]
403C: A2 FB	LDX #$FB
403E: 9A	TXS
403F: 20 56 FF	JSR $FF56	; foenix
4042: 4C 1C 40	JMP $401C

; Set-Up Basic Constants

4045: A9 4C	LDA #$4C
4047: 85 56	STA $56
4049: 8D 18 12	STA $1218	; USR Program Jump [7D28]
404C: A9 28	LDA #$28
404E: A0 7D	LDY #$7D
4050: 8D 19 12	STA $1219
4053: 8C 1A 12	STY $121A
4056: A9 9F	LDA #$9F
4058: A0 84	LDY #$84
405A: 8D 7A 11	STA $117A	; Float-fixed Vector [849F]
405D: 8C 7B 11	STY $117B
4060: A9 3C	LDA #$3C
4062: A0 79	LDY #$79
4064: 8D 7C 11	STA $117C	; Fixed-float Vector [793C]
4067: 8C 7D 11	STY $117D
406A: A2 55	LDX #$55

406C: BD 78 42	LDA $4278,X
406F: 9D 7F 03	STA $037F,X
4072: CA	DEX
4073: D0 F7	BNE $406C
4075: 8E DF 03	STX $03DF	; FAC#1 Overflow
4078: 86 15	STX $15 	; Current I/O prompt flag
407A: 86 1A	STX $1A
407C: 8E 6F 11	STX $116F	; Trace Mode: FF = on
407F: 8E 00 1C	STX $1C00
4082: 86 76	STX $76 	; Graphics flag: FF = Graphics allocated
4084: 86 74	STX $74 	; Auto line number increment
4086: 86 75	STX $75
4088: 8E 6B 11	STX $116B	; Double Width Flag
408B: 8E 6A 11	STX $116A	; SCALE Mode Flag
408E: 8E 6C 11	STX $116C	; Box Fill Flag
4091: 8E 1B 12	STX $121B
4094: 8E 1C 01	STX $011C
4097: 8E 76 12	STX $1276	; Collision IRQ Task Table
409A: 8E 77 12	STX $1277
409D: 8E 78 12	STX $1278
40A0: 8E 7F 12	STX $127F	; Collision Mask
40A3: A0 58	LDY #$58

40A5: 99 7E 11	STA $117E,Y	; Sprite Motion Tables (8 x 11 bytes)
40A8: 88	DEY
40A9: 10 FA	BPL $40A5
40AB: E8	INX
40AC: 8E FD 01	STX $01FD
40AF: 8E FC 01	STX $01FC
40B2: A2 0F	LDX #$0F
40B4: 8E D5 03	STX $03D5	; Current Bank For SYS, POKE, PEEK
40B7: A2 0D	LDX #$0D
40B9: 86 86	STX $86 	; Graphic foreground color (13)
40BB: A2 01	LDX #$01
40BD: 86 84	STX $84 	; Multicolor 1 (1)
40BF: A2 02	LDX #$02
40C1: 86 85	STX $85 	; Multicolor 2 (2)
40C3: 20 5C 6A	JSR $6A5C	; Log Current Colors
40C6: A2 1B	LDX #$1B
40C8: 86 18	STX $18
40CA: A2 01	LDX #$01
40CC: A0 1C	LDY #$1C
40CE: 86 2D	STX $2D 	; Pointer: Start-of-BASIC (bank 0)
40D0: 84 2E	STY $2E
40D2: A9 00	LDA #$00
40D4: A0 04	LDY #$04
40D6: 85 2F	STA $2F 	; Pointer: Start-of-variables (bank 1)
40D8: 84 30	STY $30
40DA: A9 00	LDA #$00
40DC: A0 FF	LDY #$FF
40DE: 8D 12 12	STA $1212	; Basic Program Limit [FF00]
40E1: 8C 13 12	STY $1213
40E4: A9 00	LDA #$00
40E6: A0 FF	LDY #$FF
40E8: 85 39	STA $39 	; Pointer: Limit-of-memory (bank 1)
40EA: 84 3A	STY $3A
40EC: A2 3F	LDX #$3F
40EE: A0 07	LDY #$07

40F0: 8A	TXA
40F1: 99 F8 07	STA $07F8,Y
40F4: CA	DEX
40F5: 88	DEY
40F6: 10 F8	BPL $40F0
40F8: A9 00	LDA #$00
40FA: A2 6C	LDX #$6C

40FC: 9D 7E 11	STA $117E,X	; Sprite Motion Tables (8 x 11 bytes)
40FF: CA	DEX
4100: 10 FA	BPL $40FC
4102: 20 12 41	JSR $4112	; Chime
4105: A9 D0	LDA #$D0
4107: 8D EC 11	STA $11EC	; CHRGEN ROM Page, Graphics Mode [D0]
410A: A9 D8	LDA #$D8
410C: 8D EB 11	STA $11EB	; CHRGEN ROM Page, Text Mode [D8]
410F: 4C D9 51	JMP $51D9

; Chime

4112: A9 20	LDA #$20
4114: A0 01	LDY #$01
4116: 8D 29 12	STA $1229
4119: 8C 2A 12	STY $122A
411C: A9 04	LDA #$04
411E: 8D 2B 12	STA $122B
4121: A9 10	LDA #$10
4123: 8D 22 12	STA $1222
4126: A9 00	LDA #$00
4128: 8D 04 D4	STA $D404
412B: 8D 0B D4	STA $D40B
412E: 8D 12 D4	STA $D412
4131: 8D FD 12	STA $12FD
4134: A9 0F	LDA #$0F
4136: 8D 74 12	STA $1274
4139: 8D 75 12	STA $1275
413C: 8D 18 D4	STA $D418
413F: A0 1D	LDY #$1D

4141: B9 11 70	LDA $7011,Y	; Envelope A/D Patterns
4144: 99 3F 12	STA $123F,Y
4147: 88	DEY
4148: 10 F7	BPL $4141
414A: A2 09	LDX #$09

414C: BD 2F 70	LDA $702F,X	; Chime Seq
414F: 9D 67 12	STA $1267,X
4152: CA	DEX
4153: 10 F7	BPL $414C
4155: 8E 85 12	STX $1285
4158: 8E 86 12	STX $1286
415B: 8E 87 12	STX $1287
415E: 8E 24 12	STX $1224
4161: 8E 26 12	STX $1226
4164: 8E 28 12	STX $1228
4167: A0 02	LDY #$02
4169: 8C 2F 12	STY $122F

416C: A2 00	LDX #$00
416E: 20 B2 6E	JSR $6EB2	; Set SID Sound
4171: CE 2F 12	DEC $122F
4174: 10 F6	BPL $416C
4176: EE 2F 12	INC $122F
4179: 60	RTS

; Set Preconfig Registers

417A: 20 45 A8	JSR $A845	; Set Bank 15
417D: A2 03	LDX #$03

417F: BD 89 41	LDA $4189,X	; Registers For $D501
4182: 9D 01 D5	STA $D501,X
4185: CA	DEX
4186: 10 F7	BPL $417F
4188: 60	RTS

; Registers For $D501

4189: 3F 7F 01 41            	; '?..a'

; Init Sprite Movement Tabs

418D: A9 00	LDA #$00
418F: A0 07	LDY #$07

4191: BE D9 6D	LDX $6DD9,Y	; Sprite Motion Table Offsets
4194: 9D 7E 11	STA $117E,X	; Sprite Motion Tables (8 x 11 bytes)
4197: 88	DEY
4198: 10 F7	BPL $4191
419A: 60	RTS

; Print Startup Message

419B: A0 00	LDY #$00

419D: B9 BB 41	LDA $41BB,Y	; Startup Message
41A0: C9 40	CMP #$40
41A2: D0 0E	BNE $41B2
41A4: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
41A6: 10 0D	BPL $41B5
41A8: A2 13	LDX #$13

41AA: A9 20	LDA #$20
41AC: 20 69 92	JSR $9269	; Call 'chrout'
41AF: CA	DEX
41B0: D0 F8	BNE $41AA

41B2: 20 69 92	JSR $9269	; Call 'chrout'

41B5: C8	INY
41B6: C0 96	CPY #$96
41B8: D0 E3	BNE $419D
41BA: 60	RTS

; Startup Message

41BB: 93 0D 40 20 43 4F 4D 4D	; '{CLR}{CR}@ comm'
41C3: 4F 44 4F 52 45 20 42 41	; 'odore ba'
41CB: 53 49 43 20 56 37 2E 30	; 'sic v7.0'
41D3: 20 31 32 32 33 36 35 20	; ' 122365 '
41DB: 42 59 54 45 53 20 46 52	; 'bytes fr'
41E3: 45 45 0D 40 20 20 20 28	; 'ee{CR}@   ('
41EB: 43 29 31 39 38 36 20 43	; 'c)1986 c'
41F3: 4F 4D 4D 4F 44 4F 52 45	; 'ommodore'
41FB: 20 45 4C 45 43 54 52 4F	; ' electro'
4203: 4E 49 43 53 2C 20 4C 54	; 'nics, lt'
420B: 44 2E 0D 40 20 20 20 20	; 'd.{CR}@    '
4213: 20 20 20 20 20 28 43 29	; '     (c)'
421B: 31 39 37 37 20 4D 49 43	; '1977 mic'
4223: 52 4F 53 4F 46 54 20 43	; 'rosoft c'
422B: 4F 52 50 2E 0D 40 20 20	; 'orp.{CR}@  '
4233: 20 20 20 20 20 20 20 20	; '        '
423B: 20 41 4C 4C 20 52 49 47	; ' all rig'
4243: 48 54 53 20 52 45 53 45	; 'hts rese'
424B: 52 56 45 44 0D 00      	; 'rved{CR}{0}'

; Set Basic Links

4251: A2 11	LDX #$11

4253: BD 67 42	LDA $4267,X	; Basic Links for $0300
4256: 9D 00 03	STA $0300,X	; Error Message Link [4D3F]
4259: CA	DEX
425A: 10 F7	BPL $4253
425C: A9 78	LDA #$78
425E: 8D FC 02	STA $02FC	; Function Execute Hook [4C78]
4261: A9 4C	LDA #$4C
4263: 8D FD 02	STA $02FD
4266: 60	RTS

; Basic Links for $0300

4267: 3F 4D	.WORD $4D3F	; Error Message
4269: C6 4D	.WORD $4DC6	; BASIC Warm Start
426B: 0D 43	.WORD $430D	; Crunch BASIC Tokens
426D: 51 51	.WORD $5151	; Print Tokens
426F: A2 4A	.WORD $4AA2	; Start New BASIC Code
4271: DA 78	.WORD $78DA	; Get Arithmetic Element
4273: 21 43	.WORD $4321	; Crunch FE
4275: CD 51	.WORD $51CD	; List FE
4277: A9 4B	.WORD $4BA9	; Execute FE

; Chrget for $0380

4279: E6 3D	INC $3D 	; Textpointer: BASIC work point (chrget)
427B: D0 02	BNE $427F
427D: E6 3E	INC $3E

427F: 8D 01 FF	STA $FF01
4282: A0 00	LDY #$00
4284: B1 3D	LDA ($3D),Y	; Textpointer: BASIC work point (chrget)
4286: 8D 03 FF	STA $FF03
4289: C9 3A	CMP #$3A
428B: B0 0A	BCS $4297
428D: C9 20	CMP #$20
428F: F0 E8	BEQ $4279	; Chrget for $0380
4291: 38	SEC
4292: E9 30	SBC #$30
4294: 38	SEC
4295: E9 D0	SBC #$D0

4297: 60	RTS

; Fetch From RAM Bank 0 for $039F

4298: 8D A6 03	STA $03A6
429B: 8D 01 FF	STA $FF01
429E: B1 00	LDA ($00),Y
42A0: 8D 03 FF	STA $FF03
42A3: 60	RTS

; Fetch From RAM Bank 1 for $03AB

42A4: 8D B2 03	STA $03B2
42A7: 8D 02 FF	STA $FF02
42AA: B1 00	LDA ($00),Y
42AC: 8D 04 FF	STA $FF04
42AF: 60	RTS

; Index1 Indirect Fetch From RAM Bank 1 for $03B7

42B0: 8D 02 FF	STA $FF02
42B3: B1 24	LDA ($24),Y
42B5: 8D 04 FF	STA $FF04
42B8: 60	RTS

; Index2 Indirect Fetch From RAM Bank 0 for $03C0

42B9: 8D 01 FF	STA $FF01
42BC: B1 26	LDA ($26),Y
42BE: 8D 03 FF	STA $FF03
42C1: 60	RTS

; Txtptr Fetch From RAM Bank 0 for $03C9

42C2: 8D 01 FF	STA $FF01
42C5: B1 3D	LDA ($3D),Y	; Textpointer: BASIC work point (chrget)
42C7: 8D 03 FF	STA $FF03
42CA: 60	RTS

; Fills $03D2-$03D4 with $00 (Numeric Constant For BASIC?)

42CB: 00 00 00               	; '{0}{0}{0}'

; Get From ($50) Bank1

42CE: A9 50	LDA #$50
42D0: 4C AB 03	JMP $03AB	; Fetch From RAM Bank 1

; Get From ($3f) Bank1

42D3: A9 3F	LDA #$3F
42D5: 4C AB 03	JMP $03AB	; Fetch From RAM Bank 1

; Get From ($52) Bank1

42D8: A9 52	LDA #$52
42DA: 4C AB 03	JMP $03AB	; Fetch From RAM Bank 1

; Get From ($5c) Bank0

42DD: A9 5C	LDA #$5C
42DF: 4C 9F 03	JMP $039F	; Fetch From RAM Bank 0

; Get From ($5c) Bank1

42E2: A9 5C	LDA #$5C
42E4: 4C AB 03	JMP $03AB	; Fetch From RAM Bank 1

; Get From ($66) Bank1

42E7: A9 66	LDA #$66
42E9: 4C AB 03	JMP $03AB	; Fetch From RAM Bank 1

; Get From ($61) Bank0

42EC: A9 61	LDA #$61
42EE: 4C 9F 03	JMP $039F	; Fetch From RAM Bank 0

; Get From ($70) Bank0

42F1: A9 70	LDA #$70
42F3: 4C 9F 03	JMP $039F	; Fetch From RAM Bank 0

; Get From ($70) Bank1

42F6: A9 70	LDA #$70
42F8: 4C AB 03	JMP $03AB	; Fetch From RAM Bank 1

; Get From ($50) Bank1

42FB: A9 50	LDA #$50
42FD: 4C AB 03	JMP $03AB	; Fetch From RAM Bank 1

; Get From ($61) Bank1

4300: A9 61	LDA #$61
4302: 4C AB 03	JMP $03AB	; Fetch From RAM Bank 1

; Get From ($24) Bank0

4305: A9 24	LDA #$24
4307: 4C 9F 03	JMP $039F	; Fetch From RAM Bank 0

; Crunch Tokens

430A: 6C 04 03	JMP ($0304)	; Crunch BASIC Tokens Link [430D]

; Crunch BASIC Tokens

430D: A5 3D	LDA $3D 	; Textpointer: BASIC work point (chrget)
430F: 48	PHA
4310: A5 3E	LDA $3E
4312: 48	PHA

4313: 20 86 03	JSR $0386	; CHRGOT entry
4316: 4C 1C 43	JMP $431C

4319: 20 80 03	JSR $0380	; CHRGET

431C: 90 FB	BCC $4319
431E: 6C 0C 03	JMP ($030C)	; Crunch FE Hook [4321]

; Crunch FE

4321: B0 03	BCS $4326
4323: 4C B2 43	JMP $43B2

4326: C9 00	CMP #$00
4328: F0 77	BEQ $43A1
432A: C9 3A	CMP #$3A
432C: F0 EB	BEQ $4319
432E: C9 3F	CMP #$3F
4330: D0 04	BNE $4336
4332: A9 99	LDA #$99
4334: D0 50	BNE $4386

4336: C9 80	CMP #$80
4338: 90 0B	BCC $4345
433A: C9 FF	CMP #$FF
433C: F0 DB	BEQ $4319
433E: A0 01	LDY #$01
4340: 20 CC 43	JSR $43CC	; Move Down Input Buffer
4343: F0 CE	BEQ $4313

4345: C9 22	CMP #$22
4347: D0 0D	BNE $4356

4349: 20 80 03	JSR $0380	; CHRGET
434C: C9 00	CMP #$00
434E: F0 51	BEQ $43A1
4350: C9 22	CMP #$22
4352: F0 C5	BEQ $4319
4354: D0 F3	BNE $4349

4356: A9 46	LDA #$46
4358: A0 09	LDY #$09
435A: 20 E2 43	JSR $43E2	; Check Keyword Match
435D: 90 06	BCC $4365
435F: A9 81	LDA #$81
4361: A2 00	LDX #$00
4363: F0 4B	BEQ $43B0

4365: A9 46	LDA #$46
4367: A0 C9	LDY #$C9
4369: 20 E2 43	JSR $43E2	; Check Keyword Match
436C: 90 06	BCC $4374
436E: A9 81	LDA #$81
4370: A2 FF	LDX #$FF
4372: D0 3C	BNE $43B0

4374: A9 44	LDA #$44
4376: A0 17	LDY #$17
4378: 20 E2 43	JSR $43E2	; Check Keyword Match
437B: 90 9C	BCC $4319
437D: C0 00	CPY #$00
437F: F0 03	BEQ $4384
4381: 20 CC 43	JSR $43CC	; Move Down Input Buffer

4384: A5 0D	LDA $0D

4386: A0 00	LDY #$00
4388: 91 3D	STA ($3D),Y	; Textpointer: BASIC work point (chrget)
438A: C9 8F	CMP #$8F
438C: F0 0D	BEQ $439B
438E: C9 83	CMP #$83
4390: D0 87	BNE $4319
4392: 20 80 03	JSR $0380	; CHRGET
4395: 20 8F 52	JSR $528F	; Perform [data/bend]
4398: 4C 13 43	JMP $4313

439B: 20 80 03	JSR $0380	; CHRGET
439E: 20 9D 52	JSR $529D	; Perform [rem]

43A1: A6 3D	LDX $3D 	; Textpointer: BASIC work point (chrget)
43A3: 68	PLA
43A4: 85 3E	STA $3E
43A6: 68	PLA
43A7: 85 3D	STA $3D 	; Textpointer: BASIC work point (chrget)
43A9: 38	SEC
43AA: 8A	TXA
43AB: E5 3D	SBC $3D 	; Textpointer: BASIC work point (chrget)
43AD: A8	TAY
43AE: C8	INY
43AF: 60	RTS

43B0: 65 0D	ADC $0D

43B2: 48	PHA
43B3: 88	DEY
43B4: 20 CC 43	JSR $43CC	; Move Down Input Buffer
43B7: A9 FE	LDA #$FE
43B9: E8	INX
43BA: D0 02	BNE $43BE
43BC: A9 CE	LDA #$CE

43BE: A0 00	LDY #$00
43C0: 91 3D	STA ($3D),Y	; Textpointer: BASIC work point (chrget)
43C2: C8	INY
43C3: 68	PLA
43C4: 91 3D	STA ($3D),Y	; Textpointer: BASIC work point (chrget)
43C6: 20 80 03	JSR $0380	; CHRGET
43C9: 4C 19 43	JMP $4319

; Move Down Input Buffer

43CC: 18	CLC
43CD: 98	TYA
43CE: 65 3D	ADC $3D 	; Textpointer: BASIC work point (chrget)
43D0: 85 24	STA $24
43D2: A5 3E	LDA $3E
43D4: 69 00	ADC #$00
43D6: 85 25	STA $25
43D8: A0 FF	LDY #$FF

43DA: C8	INY
43DB: B1 24	LDA ($24),Y
43DD: 91 3D	STA ($3D),Y	; Textpointer: BASIC work point (chrget)
43DF: D0 F9	BNE $43DA
43E1: 60	RTS

; Check Keyword Match

43E2: 85 25	STA $25
43E4: 84 24	STY $24
43E6: A0 00	LDY #$00
43E8: 84 0D	STY $0D
43EA: 88	DEY

43EB: C8	INY

43EC: B1 3D	LDA ($3D),Y	; Textpointer: BASIC work point (chrget)
43EE: 38	SEC
43EF: F1 24	SBC ($24),Y
43F1: F0 F8	BEQ $43EB
43F3: C9 80	CMP #$80
43F5: F0 1B	BEQ $4412

43F7: B1 24	LDA ($24),Y
43F9: 30 03	BMI $43FE
43FB: C8	INY
43FC: D0 F9	BNE $43F7

43FE: C8	INY
43FF: E6 0D	INC $0D
4401: 18	CLC
4402: 98	TYA
4403: 65 24	ADC $24
4405: 85 24	STA $24
4407: 90 02	BCC $440B
4409: E6 25	INC $25

440B: 18	CLC
440C: A0 00	LDY #$00
440E: B1 24	LDA ($24),Y
4410: D0 DA	BNE $43EC

4412: 05 0D	ORA $0D
4414: 85 0D	STA $0D
4416: 60	RTS

; Keywords - Non prefixed

4417: 45 4E C4 46 4F D2 4E 45	; 'enDfoRne'
441F: 58 D4 44 41 54 C1 49 4E	; 'xTdatAin'
4427: 50 55 54 A3 49 4E 50 55	; 'put.inpu'
442F: D4 44 49 CD 52 45 41 C4	; 'TdiMreaD'
4437: 4C 45 D4 47 4F 54 CF 52	; 'leTgotOr'
443F: 55 CE 49 C6 52 45 53 54	; 'uNiFrest'
4447: 4F 52 C5 47 4F 53 55 C2	; 'orEgosuB'
444F: 52 45 54 55 52 CE 52 45	; 'returNre'
4457: CD 53 54 4F D0 4F CE 57	; 'MstoPoNw'
445F: 41 49 D4 4C 4F 41 C4 53	; 'aiTloaDs'
4467: 41 56 C5 56 45 52 49 46	; 'avEverif'
446F: D9 44 45 C6 50 4F 4B C5	; 'YdeFpokE'
4477: 50 52 49 4E 54 A3 50 52	; 'print.pr'
447F: 49 4E D4 43 4F 4E D4 4C	; 'inTconTl'
4487: 49 53 D4 43 4C D2 43 4D	; 'isTclRcm'
448F: C4 53 59 D3 4F 50 45 CE	; 'DsySopeN'
4497: 43 4C 4F 53 C5 47 45 D4	; 'closEgeT'
449F: 4E 45 D7 54 41 42 A8 54	; 'neWtab.t'
44A7: CF 46 CE 53 50 43 A8 54	; 'OfNspc.t'
44AF: 48 45 CE 4E 4F D4 53 54	; 'heNnoTst'
44B7: 45 D0 AB AD AA AF DE 41	; 'eP.....a'
44BF: 4E C4 4F D2 BE BD BC 53	; 'nDoR...s'
44C7: 47 CE 49 4E D4 41 42 D3	; 'gNinTabS'
44CF: 55 53 D2 46 52 C5 50 4F	; 'usRfrEpo'
44D7: D3 53 51 D2 52 4E C4 4C	; 'SsqRrnDl'
44DF: 4F C7 45 58 D0 43 4F D3	; 'oGexPcoS'
44E7: 53 49 CE 54 41 CE 41 54	; 'siNtaNat'
44EF: CE 50 45 45 CB 4C 45 CE	; 'NpeeKleN'
44F7: 53 54 52 A4 56 41 CC 41	; 'str.vaLa'
44FF: 53 C3 43 48 52 A4 4C 45	; 'sCchr.le'
4507: 46 54 A4 52 49 47 48 54	; 'ft.right'
450F: A4 4D 49 44 A4 47 CF 52	; '.mid.gOr'
4517: 47 D2 52 43 4C D2 80 4A	; 'gRrclR.j'
451F: 4F D9 52 44 4F D4 44 45	; 'oYrdoTde'
4527: C3 48 45 58 A4 45 52 52	; 'Chex.err'
452F: A4 49 4E 53 54 D2 45 4C	; '.instRel'
4537: 53 C5 52 45 53 55 4D C5	; 'sEresumE'
453F: 54 52 41 D0 54 52 4F CE	; 'traPtroN'
4547: 54 52 4F 46 C6 53 4F 55	; 'trofFsou'
454F: 4E C4 56 4F CC 41 55 54	; 'nDvoLaut'
4557: CF 50 55 44 45 C6 47 52	; 'OpudeFgr'
455F: 41 50 48 49 C3 50 41 49	; 'aphiCpai'
4567: 4E D4 43 48 41 D2 42 4F	; 'nTchaRbo'
456F: D8 43 49 52 43 4C C5 47	; 'XcirclEg'
4577: 53 48 41 50 C5 53 53 48	; 'shapEssh'
457F: 41 50 C5 44 52 41 D7 4C	; 'apEdraWl'
4587: 4F 43 41 54 C5 43 4F 4C	; 'ocatEcol'
458F: 4F D2 53 43 4E 43 4C D2	; 'oRscnclR'
4597: 53 43 41 4C C5 48 45 4C	; 'scalEhel'
459F: D0 44 CF 4C 4F 4F D0 45	; 'PdOlooPe'
45A7: 58 49 D4 44 49 52 45 43	; 'xiTdirec'
45AF: 54 4F 52 D9 44 53 41 56	; 'torYdsav'
45B7: C5 44 4C 4F 41 C4 48 45	; 'EdloaDhe'
45BF: 41 44 45 D2 53 43 52 41	; 'adeRscra'
45C7: 54 43 C8 43 4F 4C 4C 45	; 'tcHcolle'
45CF: 43 D4 43 4F 50 D9 52 45	; 'cTcopYre'
45D7: 4E 41 4D C5 42 41 43 4B	; 'namEback'
45DF: 55 D0 44 45 4C 45 54 C5	; 'uPdeletE'
45E7: 52 45 4E 55 4D 42 45 D2	; 'renumbeR'
45EF: 4B 45 D9 4D 4F 4E 49 54	; 'keYmonit'
45F7: 4F D2 55 53 49 4E C7 55	; 'oRusinGu'
45FF: 4E 54 49 CC 57 48 49 4C	; 'ntiLwhil'
4607: C5 00                  	; 'E{0}'

; Keywords - Prefix FE

4609: 42 41 4E CB 46 49 4C 54	; 'banKfilt'
4611: 45 D2 50 4C 41 D9 54 45	; 'eRplaYte'
4619: 4D 50 CF 4D 4F 56 53 50	; 'mpOmovsp'
4621: D2 53 50 52 49 54 C5 53	; 'RspritEs'
4629: 50 52 43 4F 4C 4F D2 52	; 'prcoloRr'
4631: 52 45 C7 45 4E 56 45 4C	; 'reGenvel'
4639: 4F 50 C5 53 4C 45 45 D0	; 'opEsleeP'
4641: 43 41 54 41 4C 4F C7 44	; 'cataloGd'
4649: 4F 50 45 CE 41 50 50 45	; 'opeNappe'
4651: 4E C4 44 43 4C 4F 53 C5	; 'nDdclosE'
4659: 42 53 41 56 C5 42 4C 4F	; 'bsavEblo'
4661: 41 C4 52 45 43 4F 52 C4	; 'aDrecorD'
4669: 43 4F 4E 43 41 D4 44 56	; 'concaTdv'
4671: 45 52 49 46 D9 44 43 4C	; 'erifYdcl'
4679: 45 41 D2 53 50 52 53 41	; 'eaRsprsa'
4681: D6 43 4F 4C 4C 49 53 49	; 'Vcollisi'
4689: 4F CE 42 45 47 49 CE 42	; 'oNbegiNb'
4691: 45 4E C4 57 49 4E 44 4F	; 'enDwindo'
4699: D7 42 4F 4F D4 57 49 44	; 'WbooTwid'
46A1: 54 C8 53 50 52 44 45 C6	; 'tHsprdeF'
46A9: 51 55 49 D4 53 54 41 53	; 'quiTstas'
46B1: C8 A0 46 45 54 43 C8 A0	; 'H.fetcH.'
46B9: 53 57 41 D0 4F 46 C6 46	; 'swaPofFf'
46C1: 41 53 D4 53 4C 4F D7 00	; 'asTsloW{0}'

; Keywords - Prefix CE

46C9: 50 4F D4 42 55 4D D0 50	; 'poTbumPp'
46D1: 45 CE 52 53 50 50 4F D3	; 'eNrsppoS'
46D9: 52 53 50 52 49 54 C5 52	; 'rspritEr'
46E1: 53 50 43 4F 4C 4F D2 58	; 'spcoloRx'
46E9: 4F D2 52 57 49 4E 44 4F	; 'oRrwindo'
46F1: D7 50 4F 49 4E 54 45 D2	; 'WpointeR'
46F9: 00                     	; '{0}'

; Unused

46FA: 00 00                  	; '{0}{0}'

; Action Vectors

46FC: CC 4B	.WORD $4BCD-1	; Perform [end]
46FE: F8 5D	.WORD $5DF9-1	; Perform [for]
4700: F3 57	.WORD $57F4-1	; Perform [next]
4702: 8E 52	.WORD $528F-1	; Perform [data/bend]
4704: 47 56	.WORD $5648-1	; Perform [input#]
4706: 61 56	.WORD $5662-1	; Perform [input]
4708: 7A 58	.WORD $587B-1	; Perform [dim]
470A: A8 56	.WORD $56A9-1	; Perform [read]
470C: C5 53	.WORD $53C6-1	; Perform [let]
470E: DA 59	.WORD $59DB-1	; Perform [goto]
4710: 9A 5A	.WORD $5A9B-1	; Perform [run]
4712: C4 52	.WORD $52C5-1	; Perform [if]
4714: C9 5A	.WORD $5ACA-1	; Perform [restore]
4716: CE 59	.WORD $59CF-1	; Perform [gosub]
4718: 61 52	.WORD $5262-1	; Perform [return]
471A: 9C 52	.WORD $529D-1	; Perform [rem]
471C: CA 4B	.WORD $4BCB-1	; Perform [stop]
471E: A2 53	.WORD $53A3-1	; Perform [on]
4720: 2C 6C	.WORD $6C2D-1	; Perform [wait]
4722: 2B 91	.WORD $912C-1	; Perform [load]
4724: 11 91	.WORD $9112-1	; Perform [save]
4726: 28 91	.WORD $9129-1	; Perform [verify]
4728: F9 84	.WORD $84FA-1	; Perform [def]
472A: E4 80	.WORD $80E5-1	; Perform [poke]
472C: 39 55	.WORD $553A-1	; Perform [print#]
472E: 59 55	.WORD $555A-1	; Perform [print]
4730: 5F 5A	.WORD $5A60-1	; Perform [cont]
4732: E1 50	.WORD $50E2-1	; Perform [list]
4734: F7 51	.WORD $51F8-1	; Perform [clr]
4736: 3F 55	.WORD $5540-1	; Perform [cmd]
4738: 84 58	.WORD $5885-1	; Perform [sys]
473A: 8C 91	.WORD $918D-1	; Perform [open]
473C: 99 91	.WORD $919A-1	; Perform [close]
473E: 11 56	.WORD $5612-1	; Perform [get]
4740: D5 51	.WORD $51D6-1	; Perform [new]
4742: 90 53	.WORD $5391-1	; Perform [else]
4744: 61 5F	.WORD $5F62-1	; Perform [resume]
4746: 4C 5F	.WORD $5F4D-1	; Perform [trap]
4748: B3 58	.WORD $58B4-1	; Perform [tron]
474A: B6 58	.WORD $58B7-1	; Perform [troff]
474C: EB 71	.WORD $71EC-1	; Perform [sound]
474E: C4 71	.WORD $71C5-1	; Perform [vol]
4750: 74 59	.WORD $5975-1	; Perform [auto]
4752: 33 5F	.WORD $5F34-1	; Perform [pudef]
4754: 59 6B	.WORD $6B5A-1	; Perform [graphic]
4756: A7 61	.WORD $61A8-1	; Perform [paint]
4758: D6 67	.WORD $67D7-1	; Perform [char]
475A: B6 62	.WORD $62B7-1	; Perform [box]
475C: 8D 66	.WORD $668E-1	; Perform [circle]
475E: 8C 65	.WORD $658D-1	; Perform [gshape]
4760: 2A 64	.WORD $642B-1	; Perform [sshape]
4762: 96 67	.WORD $6797-1	; Perform [draw]
4764: 54 69	.WORD $6955-1	; Perform [locate]
4766: E1 69	.WORD $69E2-1	; Perform [color]
4768: 78 6A	.WORD $6A79-1	; Perform [scnclr]
476A: 5F 69	.WORD $6960-1	; Perform [scale]
476C: 85 59	.WORD $5986-1	; Perform [help]
476E: DF 5F	.WORD $5FE0-1	; Perform [do]
4770: 89 60	.WORD $608A-1	; Perform [loop]
4772: 38 60	.WORD $6039-1	; Perform [exit]
4774: 7D A0	.WORD $A07E-1	; Perform [catalog/directory]
4776: 8B A1	.WORD $A18C-1	; Perform [dsave]
4778: A6 A1	.WORD $A1A7-1	; Perform [dload]
477A: 66 A2	.WORD $A267-1	; Perform [header]
477C: A0 A2	.WORD $A2A1-1	; Perform [scratch]
477E: 2E A3	.WORD $A32F-1	; Perform [collect]
4780: 45 A3	.WORD $A346-1	; Perform [copy]
4782: 6D A3	.WORD $A36E-1	; Perform [rename]
4784: 7B A3	.WORD $A37C-1	; Perform [backup]
4786: 86 5E	.WORD $5E87-1	; Perform [delete]
4788: F7 5A	.WORD $5AF8-1	; Perform [renumber]
478A: 09 61	.WORD $610A-1	; Perform [key]
478C: FF AF	.WORD $B000-1	; Perform [monitor]
478E: C8 6B	.WORD $6BC9-1	; Perform [bank]
4790: 45 70	.WORD $7046-1	; Perform [filter]
4792: E0 6D	.WORD $6DE1-1	; Perform [play]
4794: D6 6F	.WORD $6FD7-1	; Perform [tempo]
4796: C5 6C	.WORD $6CC6-1	; Perform [movspr]
4798: 4E 6C	.WORD $6C4F-1	; Perform [sprite]
479A: 8F 71	.WORD $7190-1	; Perform [sprcolor]
479C: BC 58	.WORD $58BD-1	; Perform [rreg]
479E: C0 70	.WORD $70C1-1	; Perform [envelope]
47A0: D6 6B	.WORD $6BD7-1	; Perform [sleep]
47A2: 7D A0	.WORD $A07E-1	; Perform [catalog/directory]
47A4: 1C A1	.WORD $A11D-1	; Perform [dopen]
47A6: 33 A1	.WORD $A134-1	; Perform [append]
47A8: 6E A1	.WORD $A16F-1	; Perform [dclose]
47AA: C7 A1	.WORD $A1C8-1	; Perform [bsave]
47AC: 17 A2	.WORD $A218-1	; Perform [bload]
47AE: D6 A2	.WORD $A2D7-1	; Perform [record]
47B0: 61 A3	.WORD $A362-1	; Perform [concat]
47B2: A3 A1	.WORD $A1A4-1	; Perform [dverify]
47B4: 21 A3	.WORD $A322-1	; Perform [dclear]
47B6: EB 76	.WORD $76EC-1	; Perform [sprsav]
47B8: 63 71	.WORD $7164-1	; Perform [collision]
47BA: 6B 79	.WORD $796C-1	; Syntax Error
47BC: 8E 52	.WORD $528F-1	; Perform [data/bend]
47BE: CB 72	.WORD $72CC-1	; Perform [window]
47C0: 34 73	.WORD $7335-1	; Perform [boot]
47C2: B5 71	.WORD $71B6-1	; Perform [width]
47C4: 71 73	.WORD $7372-1	; Perform [sprdef]
47C6: 45 48	.WORD $4846-1	; Unimplemented Commands
47C8: 1E AA	.WORD $AA1F-1	; Perform [stash]
47CA: 00 00	.WORD $0000	; Unused
47CC: 23 AA	.WORD $AA24-1	; Perform [fetch]
47CE: 00 00	.WORD $0000	; Unused
47D0: 28 AA	.WORD $AA29-1	; Perform [swap]
47D2: 45 48	.WORD $4846-1	; Unimplemented Commands
47D4: B2 77	.WORD $77B3-1	; Perform [fast]
47D6: C3 77	.WORD $77C4-1	; Perform [slow]

; Function Vectors

47D8: 65 8C	.WORD $8C65	; Evaluate <sgn>
47DA: FB 8C	.WORD $8CFB	; Evaluate <int>
47DC: 84 8C	.WORD $8C84	; Evaluate <abs>
47DE: 18 12	.WORD $1218	; USR Program Jump [7D28]
47E0: 00 80	.WORD $8000	; Evaluate <fre>
47E2: D0 84	.WORD $84D0	; Evaluate <pos>
47E4: B7 8F	.WORD $8FB7	; Evaluate <sqr>
47E6: 34 84	.WORD $8434	; Evaluate <rnd>
47E8: CA 89	.WORD $89CA	; Evaluate <log>
47EA: 33 90	.WORD $9033	; Evaluate <exp>
47EC: 09 94	.WORD $9409	; Evaluate <cos>
47EE: 10 94	.WORD $9410	; Evaluate <sin>
47F0: 59 94	.WORD $9459	; Evaluate <tan>
47F2: B3 94	.WORD $94B3	; Evaluate <atn>
47F4: C5 80	.WORD $80C5	; Evaluate <peek>
47F6: 68 86	.WORD $8668	; Evaluate <len>
47F8: AE 85	.WORD $85AE	; Evaluate <str$>
47FA: 4A 80	.WORD $804A	; Evaluate <val>
47FC: 77 86	.WORD $8677	; Evaluate <asc>
47FE: BF 85	.WORD $85BF	; Evaluate <chr$>
4800: D6 85	.WORD $85D6	; Evaluate <left$>
4802: 0A 86	.WORD $860A	; Evaluate <right$>
4804: 1C 86	.WORD $861C	; Evaluate <mid$>
4806: 82 81	.WORD $8182	; Evaluate <rgr>
4808: 9B 81	.WORD $819B	; Evaluate <rclr>
480A: 00 00	.WORD $0000	; $CE prefix
480C: 03 82	.WORD $8203	; Evaluate <joy>
480E: 0C 9B	.WORD $9B0C	; Evaluate <rdot>
4810: 76 80	.WORD $8076	; Evaluate <dec>
4812: 42 81	.WORD $8142	; Evaluate <hex$>
4814: F6 80	.WORD $80F6	; Evaluate <err$>
4816: 4D 82	.WORD $824D	; Evaluate <pot>
4818: 7C 83	.WORD $837C	; Evaluate <bump>
481A: AE 82	.WORD $82AE	; Evaluate <pen>
481C: 97 83	.WORD $8397	; Evaluate <rspos>
481E: 1E 83	.WORD $831E	; Evaluate <rsprite>
4820: 61 83	.WORD $8361	; Evaluate <rspcolor>
4822: E1 83	.WORD $83E1	; Evaluate <xor>
4824: 07 84	.WORD $8407	; Evaluate <rwindow>
4826: FA 82	.WORD $82FA	; Evaluate <pointer>

; Defunct Vectors

4828: 79 47 88	.BYTE $79,<($8848-1),>($8848-1)	; Evaluate <add>
482B: 79 30 88	.BYTE $79,<($8831-1),>($8831-1)	; Evaluate <subtract>
482E: 7B 26 8A	.BYTE $7B,<($8A27-1),>($8A27-1)	; Evaluate <multiply>
4831: 7B 4B 8B	.BYTE $7B,<($8B4C-1),>($8B4C-1)	; Evaluate <divide>
4834: 7F C0 8F	.BYTE $7F,<($8FC1-1),>($8FC1-1)	; Evaluate <power>
4837: 50 88 4C	.BYTE $50,<($4C89-1),>($4C89-1)	; Evaluate <and>
483A: 46 85 4C	.BYTE $46,<($4C86-1),>($4C86-1)	; Evaluate <or>
483D: 7D F9 8F	.BYTE $7D,<($8FFA-1),>($8FFA-1)	; Evaluate <negate>
4840: 5A 2F 79	.BYTE $5A,<($7930-1),>($7930-1)	; Evaluate <equal>
4843: 64 B5 4C	.BYTE $64,<($4CB6-1),>($4CB6-1)	; Evaluate <compare>

; Unimplemented Commands

4846: A2 28	LDX #$28
4848: 4C 3C 4D	JMP $4D3C	; Error

; Error Messages

484B: 54 4F 4F 20 4D 41 4E 59	; 'too many'	; 0: too many files
4853: 20 46 49 4C 45 D3 46 49	; ' fileSfi'	; 1: file open
485B: 4C 45 20 4F 50 45 CE 46	; 'le opeNf'	; 2: file not open
4863: 49 4C 45 20 4E 4F 54 20	; 'ile not '
486B: 4F 50 45 CE 46 49 4C 45	; 'opeNfile'	; 3: file not found
4873: 20 4E 4F 54 20 46 4F 55	; ' not fou'
487B: 4E C4 44 45 56 49 43 45	; 'nDdevice'	; 4: device not present
4883: 20 4E 4F 54 20 50 52 45	; ' not pre'
488B: 53 45 4E D4 4E 4F 54 20	; 'senTnot '	; 5: not input file
4893: 49 4E 50 55 54 20 46 49	; 'input fi'
489B: 4C C5 4E 4F 54 20 4F 55	; 'lEnot ou'	; 6: not output file
48A3: 54 50 55 54 20 46 49 4C	; 'tput fil'
48AB: C5 4D 49 53 53 49 4E 47	; 'Emissing'	; 7: missing filename
48B3: 20 46 49 4C 45 20 4E 41	; ' file na'
48BB: 4D C5 49 4C 4C 45 47 41	; 'mEillega'	; 8: illegal device
48C3: 4C 20 44 45 56 49 43 45	; 'l device'
48CB: 20 4E 55 4D 42 45 D2 4E	; ' numbeRn'	; 9: next without for
48D3: 45 58 54 20 57 49 54 48	; 'ext with'
48DB: 4F 55 54 20 46 4F D2 53	; 'out foRs'	; 0A: syntax
48E3: 59 4E 54 41 D8 52 45 54	; 'yntaXret'	; 0B: return without gosub
48EB: 55 52 4E 20 57 49 54 48	; 'urn with'
48F3: 4F 55 54 20 47 4F 53 55	; 'out gosu'
48FB: C2 4F 55 54 20 4F 46 20	; 'Bout of '	; 0C: out of data
4903: 44 41 54 C1 49 4C 4C 45	; 'datAille'	; 0D: illegal quantity
490B: 47 41 4C 20 51 55 41 4E	; 'gal quan'
4913: 54 49 54 D9 4F 56 45 52	; 'titYover'	; 0E overflow
491B: 46 4C 4F D7 4F 55 54 20	; 'floWout '	; 0F out of memory
4923: 4F 46 20 4D 45 4D 4F 52	; 'of memor'
492B: D9 55 4E 44 45 46 27 44	; 'Yundef'd'	; 10 undef'd statement
4933: 20 53 54 41 54 45 4D 45	; ' stateme'
493B: 4E D4 42 41 44 20 53 55	; 'nTbad su'	; 11 bad subscript
4943: 42 53 43 52 49 50 D4 52	; 'bscripTr'	; 12 redim'd array
494B: 45 44 49 4D 27 44 20 41	; 'edim'd a'
4953: 52 52 41 D9 44 49 56 49	; 'rraYdivi'	; 13 division by zero
495B: 53 49 4F 4E 20 42 59 20	; 'sion by '
4963: 5A 45 52 CF 49 4C 4C 45	; 'zerOille'	; 14 illegal direct
496B: 47 41 4C 20 44 49 52 45	; 'gal dire'
4973: 43 D4 54 59 50 45 20 4D	; 'cTtype m'	; 15 type mismatch
497B: 49 53 4D 41 54 43 C8 53	; 'ismatcHs'	; 16  string to long
4983: 54 52 49 4E 47 20 54 4F	; 'tring to'
498B: 4F 20 4C 4F 4E C7 46 49	; 'o lonGfi'	; 17 file data
4993: 4C 45 20 44 41 54 C1 46	; 'le datAf'	; 18 formula to complex
499B: 4F 52 4D 55 4C 41 20 54	; 'ormula t'
49A3: 4F 4F 20 43 4F 4D 50 4C	; 'oo compl'
49AB: 45 D8 43 41 4E 27 54 20	; 'eXcan't '	; 1A can't continue
49B3: 43 4F 4E 54 49 4E 55 C5	; 'continuE'
49BB: 55 4E 44 45 46 27 44 20	; 'undef'd '	; 1B undef'd function
49C3: 46 55 4E 43 54 49 4F CE	; 'functioN'
49CB: 56 45 52 49 46 D9 4C 4F	; 'verifYlo'	; 1C verify
49D3: 41 C4 42 52 45 41 4B 00	; 'aDbreak{0}'	; 1D load
49DB: A0 43 41 4E 27 54 20 52	; '.can't r'	; 1E break
49E3: 45 53 55 4D C5 4C 4F 4F	; 'esumEloo'	; 1F cant't resume
49EB: 50 20 4E 4F 54 20 46 4F	; 'p not fo'	; 20 loop not found
49F3: 55 4E C4 4C 4F 4F 50 20	; 'unDloop '	; 21 loop without do
49FB: 57 49 54 48 4F 55 54 20	; 'without '
4A03: 44 CF 44 49 52 45 43 54	; 'dOdirect'	; 22 direct mode only
4A0B: 20 4D 4F 44 45 20 4F 4E	; ' mode on'
4A13: 4C D9 4E 4F 20 47 52 41	; 'lYno gra'	; 23 no graphics area
4A1B: 50 48 49 43 53 20 41 52	; 'phics ar'
4A23: 45 C1 42 41 44 20 44 49	; 'eAbad di'	; 24 bad disk
4A2B: 53 CB 42 45 4E 44 20 4E	; 'sKbend n'	; 25 bend not found
4A33: 4F 54 20 46 4F 55 4E C4	; 'ot founD'
4A3B: 4C 49 4E 45 20 4E 55 4D	; 'line num'	; 26 line number too large
4A43: 42 45 52 20 54 4F 4F 20	; 'ber too '
4A4B: 4C 41 52 47 C5 55 4E 52	; 'largEunr'	; 27 unresolved reference
4A53: 45 53 4F 4C 56 45 44 20	; 'esolved '
4A5B: 52 45 46 45 52 45 4E 43	; 'referenc'
4A63: C5 55 4E 49 4D 50 4C 45	; 'Eunimple'	; 28 unimplemented command
4A6B: 4D 45 4E 54 45 44 20 43	; 'mented c'
4A73: 4F 4D 4D 41 4E C4 46 49	; 'ommanDfi'	; 29 file read
4A7B: 4C 45 20 52 45 41 C4   	; 'le reaD'

; Find Message

4A82: AA	TAX
4A83: A0 00	LDY #$00
4A85: A9 4B	LDA #$4B
4A87: 85 26	STA $26
4A89: A9 48	LDA #$48
4A8B: 85 27	STA $27

4A8D: CA	DEX
4A8E: 30 0E	BMI $4A9E

4A90: B1 26	LDA ($26),Y
4A92: 48	PHA
4A93: E6 26	INC $26
4A95: D0 02	BNE $4A99
4A97: E6 27	INC $27

4A99: 68	PLA
4A9A: 10 F4	BPL $4A90
4A9C: 30 EF	BMI $4A8D

4A9E: 60	RTS

; Start New Basic Code

4A9F: 6C 08 03	JMP ($0308)	; Start New BASIC Code Link [4AA2]

; Start New BASIC Code

4AA2: 24 7F	BIT $7F
4AA4: 10 4A	BPL $4AF0
4AA6: AD 7F 12	LDA $127F	; Collision Mask
4AA9: 30 45	BMI $4AF0
4AAB: A2 02	LDX #$02

4AAD: BD 76 12	LDA $1276,X	; Collision IRQ Task Table
4AB0: F0 3B	BEQ $4AED
4AB2: A9 00	LDA #$00
4AB4: 9D 76 12	STA $1276,X	; Collision IRQ Task Table
4AB7: BD 79 12	LDA $1279,X	; Collision IRQ Address Tables
4ABA: 85 16	STA $16
4ABC: BD 7C 12	LDA $127C,X
4ABF: 85 17	STA $17
4AC1: 8A	TXA
4AC2: 48	PHA
4AC3: A5 3D	LDA $3D 	; Textpointer: BASIC work point (chrget)
4AC5: 48	PHA
4AC6: A5 3E	LDA $3E
4AC8: 48	PHA
4AC9: AD 7F 12	LDA $127F	; Collision Mask
4ACC: 09 80	ORA #$80
4ACE: 8D 7F 12	STA $127F	; Collision Mask
4AD1: 20 80 03	JSR $0380	; CHRGET
4AD4: 20 1D 5A	JSR $5A1D	; Put Sub To B-Stack
4AD7: 20 E2 59	JSR $59E2
4ADA: 20 F6 4A	JSR $4AF6
4ADD: AD 7F 12	LDA $127F	; Collision Mask
4AE0: 29 7F	AND #$7F
4AE2: 8D 7F 12	STA $127F	; Collision Mask
4AE5: 68	PLA
4AE6: 85 3E	STA $3E
4AE8: 68	PLA
4AE9: 85 3D	STA $3D 	; Textpointer: BASIC work point (chrget)
4AEB: 68	PLA
4AEC: AA	TAX

4AED: CA	DEX
4AEE: 10 BD	BPL $4AAD

4AF0: 20 80 03	JSR $0380	; CHRGET

4AF3: 20 3F 4B	JSR $4B3F	; Execute/Trace Statement

4AF6: 20 B5 4B	JSR $4BB5	; ?
4AF9: 24 7F	BIT $7F
4AFB: 10 06	BPL $4B03
4AFD: 20 34 4B	JSR $4B34	; Update Continue Pointer
4B00: BA	TSX
4B01: 86 82	STX $82

4B03: A0 00	LDY #$00
4B05: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0
4B08: F0 03	BEQ $4B0D
4B0A: 4C AE 4B	JMP $4BAE

4B0D: 24 7F	BIT $7F
4B0F: 10 20	BPL $4B31
4B11: A0 02	LDY #$02
4B13: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0
4B16: F0 19	BEQ $4B31
4B18: C8	INY
4B19: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0
4B1C: 85 3B	STA $3B
4B1E: C8	INY
4B1F: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0
4B22: 85 3C	STA $3C
4B24: 98	TYA
4B25: 18	CLC
4B26: 65 3D	ADC $3D 	; Textpointer: BASIC work point (chrget)
4B28: 85 3D	STA $3D 	; Textpointer: BASIC work point (chrget)
4B2A: 90 02	BCC $4B2E
4B2C: E6 3E	INC $3E

4B2E: 4C 9F 4A	JMP $4A9F	; Start New Basic Code

4B31: 4C 37 4D	JMP $4D37	; Error or Ready

; Update Continue Pointer

4B34: A5 3D	LDA $3D 	; Textpointer: BASIC work point (chrget)
4B36: A4 3E	LDY $3E
4B38: 8D 02 12	STA $1202
4B3B: 8C 03 12	STY $1203

4B3E: 60	RTS

; Execute/Trace Statement

4B3F: F0 FD	BEQ $4B3E
4B41: 2C 6F 11	BIT $116F	; Trace Mode: FF = on
4B44: 10 13	BPL $4B59
4B46: 24 7F	BIT $7F
4B48: 10 0F	BPL $4B59
4B4A: 48	PHA
4B4B: A9 5B	LDA #$5B
4B4D: 20 0C 56	JSR $560C
4B50: 20 2E 8E	JSR $8E2E
4B53: A9 5D	LDA #$5D
4B55: 20 0C 56	JSR $560C
4B58: 68	PLA

4B59: C9 FE	CMP #$FE
4B5B: F0 37	BEQ $4B94
4B5D: C9 CB	CMP #$CB
4B5F: D0 03	BNE $4B64
4B61: 4C 3D 5A	JMP $5A3D	; Perform [go]

4B64: C9 CA	CMP #$CA
4B66: F0 23	BEQ $4B8B
4B68: C9 FB	CMP #$FB
4B6A: B0 3F	BCS $4BAB
4B6C: C9 A3	CMP #$A3
4B6E: 90 06	BCC $4B76
4B70: C9 D5	CMP #$D5
4B72: 90 37	BCC $4BAB
4B74: E9 32	SBC #$32

4B76: 38	SEC
4B77: E9 80	SBC #$80
4B79: B0 03	BCS $4B7E
4B7B: 4C C6 53	JMP $53C6	; Perform [let]

4B7E: 0A	ASL A
4B7F: A8	TAY
4B80: B9 FD 46	LDA $46FD,Y
4B83: 48	PHA
4B84: B9 FC 46	LDA $46FC,Y	; Action Vectors
4B87: 48	PHA
4B88: 4C 80 03	JMP $0380	; CHRGET

4B8B: A9 59	LDA #$59
4B8D: 48	PHA
4B8E: A9 00	LDA #$00
4B90: 48	PHA

4B91: 4C 80 03	JMP $0380	; CHRGET

4B94: 20 80 03	JSR $0380	; CHRGET
4B97: F0 12	BEQ $4BAB
4B99: C9 02	CMP #$02
4B9B: 90 08	BCC $4BA5
4B9D: C9 27	CMP #$27
4B9F: B0 04	BCS $4BA5
4BA1: 69 47	ADC #$47
4BA3: D0 D9	BNE $4B7E

4BA5: 38	SEC
4BA6: 6C 10 03	JMP ($0310)	; Execute FE Hook [4BA9]

; Execute FE

4BA9: 90 E6	BCC $4B91

4BAB: 4C 6C 79	JMP $796C	; Syntax Error

4BAE: C9 3A	CMP #$3A
4BB0: D0 F9	BNE $4BAB
4BB2: 4C 9F 4A	JMP $4A9F	; Start New Basic Code

; ?

4BB5: 20 93 92	JSR $9293	; Call 'test stop'
4BB8: F0 01	BEQ $4BBB
4BBA: 60	RTS

4BBB: AC 0C 12	LDY $120C
4BBE: C8	INY
4BBF: F0 0F	BEQ $4BD0

4BC1: 20 93 92	JSR $9293	; Call 'test stop'
4BC4: F0 FB	BEQ $4BC1
4BC6: A2 1E	LDX #$1E
4BC8: 4C 3C 4D	JMP $4D3C	; Error

; Perform [stop]

4BCB: B0 01	BCS $4BCE

; Perform [end]

4BCD: 18	CLC

4BCE: D0 26	BNE $4BF6

4BD0: 24 7F	BIT $7F
4BD2: 10 0D	BPL $4BE1
4BD4: 20 34 4B	JSR $4B34	; Update Continue Pointer
4BD7: A5 3B	LDA $3B
4BD9: A4 3C	LDY $3C
4BDB: 8D 00 12	STA $1200
4BDE: 8C 01 12	STY $1201

4BE1: 68	PLA
4BE2: 68	PLA
4BE3: 90 0E	BCC $4BF3
4BE5: 20 81 92	JSR $9281	; Print Following Text
4BE8: 0D 0A 42 52 45 41 4B 00	; '{CR}{LF}break{0}'
4BF0: 4C AF 4D	JMP $4DAF	; Break Entry

4BF3: 4C 37 4D	JMP $4D37	; Error or Ready

4BF6: 60	RTS

; Setup FN Reference

4BF7: C9 CE	CMP #$CE
4BF9: F0 59	BEQ $4C54
4BFB: C9 D5	CMP #$D5
4BFD: B0 AC	BCS $4BAB
4BFF: C9 CB	CMP #$CB
4C01: 90 02	BCC $4C05
4C03: E9 01	SBC #$01

4C05: 48	PHA
4C06: AA	TAX
4C07: 20 80 03	JSR $0380	; CHRGET
4C0A: E0 D3	CPX #$D3
4C0C: F0 08	BEQ $4C16
4C0E: E0 CB	CPX #$CB
4C10: B0 29	BCS $4C3B
4C12: E0 C8	CPX #$C8
4C14: 90 25	BCC $4C3B

4C16: 20 59 79	JSR $7959	; -Check Left Parenthesis
4C19: 20 EF 77	JSR $77EF	; Evaluate Expression
4C1C: 20 5C 79	JSR $795C	; -Check Comma
4C1F: 20 DD 77	JSR $77DD	; Confirm String
4C22: 68	PLA
4C23: C9 D3	CMP #$D3
4C25: F0 59	BEQ $4C80
4C27: AA	TAX
4C28: A5 67	LDA $67
4C2A: 48	PHA
4C2B: A5 66	LDA $66
4C2D: 48	PHA
4C2E: 8A	TXA
4C2F: 48	PHA
4C30: 20 F4 87	JSR $87F4	; -Eval Byte Parameter
4C33: 68	PLA
4C34: A8	TAY
4C35: 8A	TXA
4C36: 48	PHA
4C37: 98	TYA
4C38: 4C 3F 4C	JMP $4C3F

4C3B: 20 50 79	JSR $7950	; Eval Within Parens
4C3E: 68	PLA

4C3F: 38	SEC
4C40: E9 B4	SBC #$B4
4C42: 0A	ASL A
4C43: A8	TAY
4C44: B9 D9 47	LDA $47D9,Y
4C47: 85 58	STA $58
4C49: B9 D8 47	LDA $47D8,Y	; Function Vectors
4C4C: 85 57	STA $57
4C4E: 20 56 00	JSR $56
4C51: 4C DA 77	JMP $77DA	; Confirm Numeric

4C54: 20 80 03	JSR $0380	; CHRGET
4C57: F0 2A	BEQ $4C83
4C59: C9 0A	CMP #$0A
4C5B: F0 0B	BEQ $4C68
4C5D: 48	PHA
4C5E: 20 80 03	JSR $0380	; CHRGET
4C61: 20 59 79	JSR $7959	; -Check Left Parenthesis
4C64: 20 EF 77	JSR $77EF	; Evaluate Expression
4C67: 68	PLA

4C68: C9 02	CMP #$02
4C6A: 90 08	BCC $4C74
4C6C: C9 0B	CMP #$0B
4C6E: B0 04	BCS $4C74
4C70: 69 D1	ADC #$D1
4C72: D0 CB	BNE $4C3F

4C74: 38	SEC
4C75: 20 7D 4C	JSR $4C7D

4C78: B0 09	BCS $4C83
4C7A: 4C DA 77	JMP $77DA	; Confirm Numeric

4C7D: 6C FC 02	JMP ($02FC)	; Function Execute Hook [4C78]

4C80: 4C C1 99	JMP $99C1	; Evaluate <instr>

4C83: 4C 6C 79	JMP $796C	; Syntax Error

; Evaluate <or>

4C86: A0 FF	LDY #$FF
4C88: 2C	.BYTE $2C

; Evaluate <and>

4C89: A0 00	LDY #$00
4C8B: 84 0D	STY $0D
4C8D: 20 B4 84	JSR $84B4
4C90: A5 66	LDA $66
4C92: 45 0D	EOR $0D
4C94: 85 09	STA $09 	; SYS and MLM register save (SP)
4C96: A5 67	LDA $67
4C98: 45 0D	EOR $0D
4C9A: 85 0A	STA $0A
4C9C: 20 28 8C	JSR $8C28	; FAC#2 to FAC#1
4C9F: 20 B4 84	JSR $84B4
4CA2: A5 67	LDA $67
4CA4: 45 0D	EOR $0D
4CA6: 25 0A	AND $0A
4CA8: 45 0D	EOR $0D
4CAA: A8	TAY
4CAB: A5 66	LDA $66
4CAD: 45 0D	EOR $0D
4CAF: 25 09	AND $09 	; SYS and MLM register save (SP)
4CB1: 45 0D	EOR $0D
4CB3: 4C 3C 79	JMP $793C	; Fixed-Float

; Evaluate <compare>

4CB6: 20 DE 77	JSR $77DE
4CB9: B0 13	BCS $4CCE
4CBB: A5 6F	LDA $6F
4CBD: 09 7F	ORA #$7F
4CBF: 25 6B	AND $6B
4CC1: 85 6B	STA $6B
4CC3: A9 6A	LDA #$6A
4CC5: A0 00	LDY #$00
4CC7: 20 87 8C	JSR $8C87	; Compare FAC#1 to Memory
4CCA: AA	TAX
4CCB: 4C 01 4D	JMP $4D01

4CCE: A9 00	LDA #$00
4CD0: 85 0F	STA $0F
4CD2: C6 4F	DEC $4F
4CD4: 20 81 87	JSR $8781
4CD7: 85 63	STA $63
4CD9: 86 64	STX $64
4CDB: 84 65	STY $65
4CDD: A5 6D	LDA $6D
4CDF: A4 6E	LDY $6E
4CE1: 20 85 87	JSR $8785
4CE4: 86 6D	STX $6D
4CE6: 84 6E	STY $6E
4CE8: AA	TAX
4CE9: 38	SEC
4CEA: E5 63	SBC $63
4CEC: F0 08	BEQ $4CF6
4CEE: A9 01	LDA #$01
4CF0: 90 04	BCC $4CF6
4CF2: A6 63	LDX $63
4CF4: A9 FF	LDA #$FF

4CF6: 85 68	STA $68
4CF8: A0 FF	LDY #$FF
4CFA: E8	INX

4CFB: C8	INY
4CFC: CA	DEX
4CFD: D0 07	BNE $4D06
4CFF: A6 68	LDX $68

4D01: 30 1B	BMI $4D1E
4D03: 18	CLC
4D04: 90 18	BCC $4D1E

4D06: A9 6D	LDA #$6D
4D08: 20 AB 03	JSR $03AB	; Fetch From RAM Bank 1
4D0B: 48	PHA
4D0C: A9 64	LDA #$64
4D0E: 20 AB 03	JSR $03AB	; Fetch From RAM Bank 1
4D11: 85 79	STA $79
4D13: 68	PLA
4D14: C5 79	CMP $79
4D16: F0 E3	BEQ $4CFB
4D18: A2 FF	LDX #$FF
4D1A: B0 02	BCS $4D1E
4D1C: A2 01	LDX #$01

4D1E: E8	INX
4D1F: 8A	TXA
4D20: 2A	ROL A
4D21: 25 14	AND $14
4D23: F0 02	BEQ $4D27
4D25: A9 FF	LDA #$FF

4D27: 4C 68 8C	JMP $8C68	; Byte Fixed-Float

; Print 'ready'

4D2A: 20 81 92	JSR $9281	; Print Following Text
4D2D: 0D 52 45 41 44 59 2E 0D	; '{CR}ready.{CR}'
4D35: 00 60                  	; '{0}`'

; Error or Ready

4D37: A2 80	LDX #$80
4D39: 2C	.BYTE $2C

; Print 'out of memory'

4D3A: A2 10	LDX #$10

; Error

4D3C: 6C 00 03	JMP ($0300)	; Error Message Link [4D3F]

; Error Message

4D3F: 8D 03 FF	STA $FF03
4D42: 8A	TXA
4D43: 30 72	BMI $4DB7
4D45: 8E 08 12	STX $1208
4D48: 24 7F	BIT $7F
4D4A: 10 30	BPL $4D7C
4D4C: A0 01	LDY #$01

4D4E: B9 3B 00	LDA $3B,Y
4D51: 99 09 12	STA $1209,Y
4D54: B9 02 12	LDA $1202,Y
4D57: 99 0E 12	STA $120E,Y
4D5A: 88	DEY
4D5B: 10 F1	BPL $4D4E
4D5D: AC 0C 12	LDY $120C
4D60: C8	INY
4D61: F0 19	BEQ $4D7C
4D63: 88	DEY
4D64: 84 17	STY $17
4D66: 8C 0D 12	STY $120D
4D69: AC 0B 12	LDY $120B
4D6C: 84 16	STY $16
4D6E: A2 FF	LDX #$FF
4D70: 20 D1 7E	JSR $7ED1	; String Stack patch for Error
4D73: A6 82	LDX $82
4D75: 9A	TXS
4D76: 20 FB 59	JSR $59FB
4D79: 4C F6 4A	JMP $4AF6

4D7C: CA	DEX
4D7D: 8A	TXA
4D7E: 20 82 4A	JSR $4A82	; Find Message
4D81: 20 6F 92	JSR $926F	; Call 'clrchn'
4D84: A9 00	LDA #$00
4D86: 85 15	STA $15 	; Current I/O prompt flag
4D88: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
4D8A: 30 02	BMI $4D8E
4D8C: 85 D8	STA $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)

4D8E: 20 98 55	JSR $5598
4D91: 20 0A 56	JSR $560A	; -print '?'-
4D94: A0 00	LDY #$00

4D96: B1 26	LDA ($26),Y
4D98: 48	PHA
4D99: 29 7F	AND #$7F
4D9B: 20 0C 56	JSR $560C
4D9E: C8	INY
4D9F: 68	PLA
4DA0: 10 F4	BPL $4D96
4DA2: 20 38 52	JSR $5238	; Clear Stack & Work Area
4DA5: 20 81 92	JSR $9281	; Print Following Text
4DA8: 20 45 52 52 4F 52 00   	; ' error{0}'

; Break Entry

4DAF: A4 3C	LDY $3C
4DB1: C8	INY
4DB2: F0 03	BEQ $4DB7
4DB4: 20 26 8E	JSR $8E26	; Print 'in...'

4DB7: 20 2A 4D	JSR $4D2A	; Print 'ready'
4DBA: A9 80	LDA #$80
4DBC: 20 90 FF	JSR $FF90	; setmsg        Control OS Messages
4DBF: A9 00	LDA #$00
4DC1: 85 7F	STA $7F

; Ready For Basic

4DC3: 6C 02 03	JMP ($0302)	; BASIC Warm Start Link [4DC6]

; BASIC Warm Start

4DC6: A2 FF	LDX #$FF
4DC8: 86 3C	STX $3C
4DCA: 20 93 4F	JSR $4F93	; Receive Input Line

4DCD: 86 3D	STX $3D 	; Textpointer: BASIC work point (chrget)
4DCF: 84 3E	STY $3E
4DD1: 20 80 03	JSR $0380	; CHRGET
4DD4: AA	TAX

4DD5: F0 EC	BEQ $4DC3	; Ready For Basic
4DD7: 90 09	BCC $4DE2	; Handle New Line
4DD9: 20 0A 43	JSR $430A	; Crunch Tokens
4DDC: 20 86 03	JSR $0386	; CHRGOT entry
4DDF: 4C F3 4A	JMP $4AF3

; Handle New Line

4DE2: 20 A0 50	JSR $50A0	; Get Fixed Pt Number
4DE5: 20 0A 43	JSR $430A	; Crunch Tokens
4DE8: 84 0D	STY $0D
4DEA: 20 64 50	JSR $5064	; Find Basic Line
4DED: 90 7B	BCC $4E6A
4DEF: A0 00	LDY #$00
4DF1: 20 EC 42	JSR $42EC	; Get From ($61) Bank0
4DF4: 38	SEC
4DF5: E5 61	SBC $61
4DF7: 38	SEC
4DF8: E9 04	SBC #$04
4DFA: E5 0D	SBC $0D
4DFC: B0 1C	BCS $4E1A
4DFE: 49 FF	EOR #$FF
4E00: 69 01	ADC #$01
4E02: AC 11 12	LDY $1211
4E05: 6D 10 12	ADC $1210	; End of Basic, Bank 0
4E08: 90 01	BCC $4E0B
4E0A: C8	INY

4E0B: CC 13 12	CPY $1213
4E0E: 90 0A	BCC $4E1A
4E10: D0 05	BNE $4E17
4E12: CD 12 12	CMP $1212	; Basic Program Limit [FF00]
4E15: 90 03	BCC $4E1A

4E17: 4C 3A 4D	JMP $4D3A	; Print 'out of memory'

4E1A: A0 01	LDY #$01
4E1C: 20 EC 42	JSR $42EC	; Get From ($61) Bank0
4E1F: 85 25	STA $25
4E21: AD 10 12	LDA $1210	; End of Basic, Bank 0
4E24: 85 24	STA $24
4E26: A5 62	LDA $62
4E28: 85 27	STA $27
4E2A: 88	DEY
4E2B: 20 EC 42	JSR $42EC	; Get From ($61) Bank0
4E2E: 18	CLC
4E2F: E5 61	SBC $61
4E31: 49 FF	EOR #$FF
4E33: 18	CLC
4E34: 6D 10 12	ADC $1210	; End of Basic, Bank 0
4E37: 8D 10 12	STA $1210	; End of Basic, Bank 0
4E3A: 85 26	STA $26
4E3C: AD 11 12	LDA $1211
4E3F: 69 FF	ADC #$FF
4E41: 8D 11 12	STA $1211
4E44: E5 62	SBC $62
4E46: AA	TAX
4E47: 38	SEC
4E48: A5 61	LDA $61
4E4A: ED 10 12	SBC $1210	; End of Basic, Bank 0
4E4D: A8	TAY
4E4E: B0 03	BCS $4E53
4E50: E8	INX
4E51: C6 27	DEC $27

4E53: 18	CLC
4E54: 65 24	ADC $24
4E56: 90 03	BCC $4E5B
4E58: C6 25	DEC $25
4E5A: 18	CLC

4E5B: 20 05 43	JSR $4305	; Get From ($24) Bank0
4E5E: 91 26	STA ($26),Y
4E60: C8	INY
4E61: D0 F8	BNE $4E5B
4E63: E6 25	INC $25
4E65: E6 27	INC $27
4E67: CA	DEX
4E68: D0 F1	BNE $4E5B

4E6A: 20 38 52	JSR $5238	; Clear Stack & Work Area
4E6D: 20 4F 4F	JSR $4F4F	; Rechain Lines
4E70: A0 00	LDY #$00
4E72: B1 3D	LDA ($3D),Y	; Textpointer: BASIC work point (chrget)
4E74: D0 03	BNE $4E79
4E76: 4C D5 4D	JMP $4DD5

4E79: 18	CLC
4E7A: AD 10 12	LDA $1210	; End of Basic, Bank 0
4E7D: AC 11 12	LDY $1211
4E80: 85 5C	STA $5C
4E82: 84 5D	STY $5D
4E84: 65 0D	ADC $0D
4E86: 90 01	BCC $4E89
4E88: C8	INY

4E89: 18	CLC
4E8A: 69 04	ADC #$04
4E8C: 90 01	BCC $4E8F
4E8E: C8	INY

4E8F: 85 5A	STA $5A
4E91: 84 5B	STY $5B
4E93: CC 13 12	CPY $1213
4E96: 90 0A	BCC $4EA2
4E98: D0 05	BNE $4E9F
4E9A: CD 12 12	CMP $1212	; Basic Program Limit [FF00]
4E9D: 90 03	BCC $4EA2

4E9F: 4C 3A 4D	JMP $4D3A	; Print 'out of memory'

4EA2: 8D 10 12	STA $1210	; End of Basic, Bank 0
4EA5: 8C 11 12	STY $1211
4EA8: 38	SEC
4EA9: A5 5C	LDA $5C
4EAB: E5 61	SBC $61
4EAD: 85 24	STA $24
4EAF: A8	TAY
4EB0: A5 5D	LDA $5D
4EB2: E5 62	SBC $62
4EB4: AA	TAX
4EB5: E8	INX
4EB6: 98	TYA
4EB7: F0 25	BEQ $4EDE
4EB9: A5 5C	LDA $5C
4EBB: 38	SEC
4EBC: E5 24	SBC $24
4EBE: 85 5C	STA $5C
4EC0: B0 03	BCS $4EC5
4EC2: C6 5D	DEC $5D
4EC4: 38	SEC

4EC5: A5 5A	LDA $5A
4EC7: E5 24	SBC $24
4EC9: 85 5A	STA $5A
4ECB: B0 09	BCS $4ED6
4ECD: C6 5B	DEC $5B
4ECF: 90 05	BCC $4ED6

4ED1: 20 DD 42	JSR $42DD	; Get From ($5c) Bank0
4ED4: 91 5A	STA ($5A),Y

4ED6: 88	DEY
4ED7: D0 F8	BNE $4ED1
4ED9: 20 DD 42	JSR $42DD	; Get From ($5c) Bank0
4EDC: 91 5A	STA ($5A),Y

4EDE: C6 5D	DEC $5D
4EE0: C6 5B	DEC $5B
4EE2: CA	DEX
4EE3: D0 F1	BNE $4ED6
4EE5: A0 00	LDY #$00
4EE7: A9 01	LDA #$01
4EE9: 91 61	STA ($61),Y
4EEB: C8	INY
4EEC: 91 61	STA ($61),Y
4EEE: C8	INY
4EEF: A5 16	LDA $16
4EF1: 91 61	STA ($61),Y
4EF3: A5 17	LDA $17
4EF5: C8	INY
4EF6: 91 61	STA ($61),Y
4EF8: 18	CLC
4EF9: A5 61	LDA $61
4EFB: 69 04	ADC #$04
4EFD: 85 61	STA $61
4EFF: 90 02	BCC $4F03
4F01: E6 62	INC $62

4F03: A4 0D	LDY $0D
4F05: 88	DEY

4F06: B1 3D	LDA ($3D),Y	; Textpointer: BASIC work point (chrget)
4F08: 91 61	STA ($61),Y
4F0A: 88	DEY
4F0B: C0 FF	CPY #$FF
4F0D: D0 F7	BNE $4F06
4F0F: 20 4F 4F	JSR $4F4F	; Rechain Lines
4F12: 20 54 52	JSR $5254	; Textptr to BASIC start minus 1
4F15: A5 74	LDA $74 	; Auto line number increment
4F17: 05 75	ORA $75
4F19: F0 31	BEQ $4F4C
4F1B: A5 16	LDA $16
4F1D: 18	CLC
4F1E: 65 74	ADC $74 	; Auto line number increment
4F20: 85 65	STA $65
4F22: A5 17	LDA $17
4F24: 65 75	ADC $75
4F26: B0 24	BCS $4F4C
4F28: C9 FA	CMP #$FA
4F2A: B0 20	BCS $4F4C
4F2C: 85 64	STA $64
4F2E: A2 90	LDX #$90
4F30: 38	SEC
4F31: 20 75 8C	JSR $8C75	; Fixed-Float
4F34: 20 42 8E	JSR $8E42	; Float to Ascii
4F37: A2 00	LDX #$00

4F39: BD 01 01	LDA $0101,X
4F3C: F0 06	BEQ $4F44
4F3E: 9D 4A 03	STA $034A,X	; IRQ Keyboard Buffer (10 Bytes)
4F41: E8	INX
4F42: D0 F5	BNE $4F39

4F44: A9 1D	LDA #$1D
4F46: 9D 4A 03	STA $034A,X	; IRQ Keyboard Buffer (10 Bytes)
4F49: E8	INX
4F4A: 86 D0	STX $D0 	; Number of characters in keyboard buffer

4F4C: 4C C3 4D	JMP $4DC3	; Ready For Basic

; Rechain Lines

4F4F: A5 2D	LDA $2D 	; Pointer: Start-of-BASIC (bank 0)
4F51: A4 2E	LDY $2E
4F53: 85 24	STA $24
4F55: 84 25	STY $25
4F57: 18	CLC

4F58: A0 00	LDY #$00
4F5A: 20 05 43	JSR $4305	; Get From ($24) Bank0
4F5D: D0 06	BNE $4F65
4F5F: C8	INY
4F60: 20 05 43	JSR $4305	; Get From ($24) Bank0
4F63: F0 2D	BEQ $4F92

4F65: A0 04	LDY #$04

4F67: C8	INY
4F68: 20 05 43	JSR $4305	; Get From ($24) Bank0
4F6B: D0 FA	BNE $4F67
4F6D: C8	INY
4F6E: 98	TYA
4F6F: 65 24	ADC $24
4F71: AA	TAX
4F72: A0 00	LDY #$00
4F74: 91 24	STA ($24),Y
4F76: 98	TYA
4F77: 65 25	ADC $25
4F79: C8	INY
4F7A: 91 24	STA ($24),Y
4F7C: 86 24	STX $24
4F7E: 85 25	STA $25
4F80: 90 D6	BCC $4F58

; Reset End-of-Basic

4F82: 18	CLC
4F83: A5 24	LDA $24
4F85: A4 25	LDY $25
4F87: 69 02	ADC #$02
4F89: 90 01	BCC $4F8C
4F8B: C8	INY

4F8C: 8D 10 12	STA $1210	; End of Basic, Bank 0
4F8F: 8C 11 12	STY $1211

4F92: 60	RTS

; Receive Input Line

4F93: A2 00	LDX #$00

4F95: 20 E5 90	JSR $90E5	; Basic 'input'
4F98: C9 0D	CMP #$0D
4F9A: D0 03	BNE $4F9F
4F9C: 4C 8B 55	JMP $558B

4F9F: 9D 00 02	STA $0200,X
4FA2: E8	INX
4FA3: E0 A1	CPX #$A1
4FA5: 90 EE	BCC $4F95
4FA7: 4C ED A5	JMP $A5ED	; Print 'string too long'

; Search B-Stack For Match

4FAA: 85 02	STA $02 	; Bank Number, Jump to SYS Address
4FAC: 20 47 50	JSR $5047	; Copy B-Stack Pointer

4FAF: A5 3F	LDA $3F
4FB1: C9 FF	CMP #$FF
4FB3: D0 06	BNE $4FBB
4FB5: A5 40	LDA $40
4FB7: C9 09	CMP #$09
4FB9: F0 40	BEQ $4FFB

4FBB: 8D 03 FF	STA $FF03
4FBE: A0 00	LDY #$00
4FC0: A5 02	LDA $02 	; Bank Number, Jump to SYS Address
4FC2: C9 81	CMP #$81
4FC4: D0 1B	BNE $4FE1
4FC6: D1 3F	CMP ($3F),Y
4FC8: D0 33	BNE $4FFD
4FCA: A0 02	LDY #$02
4FCC: A5 4C	LDA $4C
4FCE: C9 FF	CMP #$FF
4FD0: F0 2B	BEQ $4FFD
4FD2: D1 3F	CMP ($3F),Y
4FD4: D0 07	BNE $4FDD
4FD6: 88	DEY
4FD7: A5 4B	LDA $4B
4FD9: D1 3F	CMP ($3F),Y
4FDB: F0 20	BEQ $4FFD

4FDD: A2 12	LDX #$12
4FDF: D0 0E	BNE $4FEF

4FE1: B1 3F	LDA ($3F),Y
4FE3: C5 02	CMP $02 	; Bank Number, Jump to SYS Address
4FE5: F0 16	BEQ $4FFD
4FE7: A2 12	LDX #$12
4FE9: C9 81	CMP #$81
4FEB: F0 02	BEQ $4FEF
4FED: A2 05	LDX #$05

4FEF: 8A	TXA
4FF0: 18	CLC
4FF1: 65 3F	ADC $3F
4FF3: 85 3F	STA $3F
4FF5: 90 B8	BCC $4FAF
4FF7: E6 40	INC $40
4FF9: D0 B4	BNE $4FAF

4FFB: A0 01	LDY #$01

4FFD: 60	RTS

; Move B-Stack Down

4FFE: 49 FF	EOR #$FF
5000: 38	SEC
5001: 65 7D	ADC $7D
5003: 85 7D	STA $7D
5005: A4 7E	LDY $7E
5007: B0 01	BCS $500A
5009: 88	DEY

500A: 84 7E	STY $7E
500C: C0 08	CPY #$08
500E: 90 34	BCC $5044
5010: D0 04	BNE $5016
5012: C5 7D	CMP $7D
5014: 90 2E	BCC $5044

5016: 60	RTS

; Check Memory Space

5017: C4 36	CPY $36
5019: 90 28	BCC $5043
501B: D0 04	BNE $5021
501D: C5 35	CMP $35
501F: 90 22	BCC $5043

5021: 48	PHA
5022: A2 09	LDX #$09
5024: 98	TYA

5025: 48	PHA
5026: B5 59	LDA $59,X
5028: CA	DEX
5029: 10 FA	BPL $5025
502B: 20 EA 92	JSR $92EA	; Garbage Collection
502E: A2 F7	LDX #$F7

5030: 68	PLA
5031: 95 63	STA $63,X
5033: E8	INX
5034: 30 FA	BMI $5030
5036: 68	PLA
5037: A8	TAY
5038: 68	PLA
5039: C4 36	CPY $36
503B: 90 06	BCC $5043
503D: D0 05	BNE $5044
503F: C5 35	CMP $35
5041: B0 01	BCS $5044

5043: 60	RTS

5044: 4C 3A 4D	JMP $4D3A	; Print 'out of memory'

; Copy B-Stack Pointer

5047: A5 7D	LDA $7D
5049: 85 3F	STA $3F
504B: A5 7E	LDA $7E
504D: 85 40	STA $40
504F: 60	RTS

; Set B-Stack Pointer

5050: A5 3F	LDA $3F
5052: 85 7D	STA $7D
5054: A5 40	LDA $40
5056: 85 7E	STA $7E
5058: 60	RTS

; Move B-Stack Up

5059: 98	TYA
505A: 18	CLC
505B: 65 7D	ADC $7D
505D: 85 7D	STA $7D
505F: 90 02	BCC $5063
5061: E6 7E	INC $7E

5063: 60	RTS

; Find Basic Line

5064: A5 2D	LDA $2D 	; Pointer: Start-of-BASIC (bank 0)
5066: A6 2E	LDX $2E

5068: A0 01	LDY #$01
506A: 85 61	STA $61
506C: 86 62	STX $62
506E: 20 EC 42	JSR $42EC	; Get From ($61) Bank0
5071: F0 2B	BEQ $509E
5073: C8	INY
5074: C8	INY
5075: 20 EC 42	JSR $42EC	; Get From ($61) Bank0
5078: 85 79	STA $79
507A: A5 17	LDA $17
507C: C5 79	CMP $79
507E: 90 1F	BCC $509F
5080: F0 03	BEQ $5085
5082: 88	DEY
5083: D0 0E	BNE $5093

5085: 88	DEY
5086: 20 EC 42	JSR $42EC	; Get From ($61) Bank0
5089: 85 79	STA $79
508B: A5 16	LDA $16
508D: C5 79	CMP $79
508F: 90 0E	BCC $509F
5091: F0 0C	BEQ $509F

5093: 88	DEY
5094: 20 EC 42	JSR $42EC	; Get From ($61) Bank0
5097: AA	TAX
5098: 88	DEY
5099: 20 EC 42	JSR $42EC	; Get From ($61) Bank0
509C: B0 CA	BCS $5068

509E: 18	CLC

509F: 60	RTS

; Get Fixed Pt Number

50A0: A2 00	LDX #$00
50A2: 86 0A	STX $0A
50A4: 86 16	STX $16
50A6: 86 17	STX $17

50A8: B0 37	BCS $50E1
50AA: E6 0A	INC $0A
50AC: E9 2F	SBC #$2F
50AE: 85 09	STA $09 	; SYS and MLM register save (SP)
50B0: A5 17	LDA $17
50B2: 85 24	STA $24
50B4: C9 19	CMP #$19
50B6: 90 03	BCC $50BB
50B8: 4C 6C 79	JMP $796C	; Syntax Error

50BB: A5 16	LDA $16
50BD: 0A	ASL A
50BE: 26 24	ROL $24
50C0: 0A	ASL A
50C1: 26 24	ROL $24
50C3: 65 16	ADC $16
50C5: 85 16	STA $16
50C7: A5 24	LDA $24
50C9: 65 17	ADC $17
50CB: 85 17	STA $17
50CD: 06 16	ASL $16
50CF: 26 17	ROL $17
50D1: A5 16	LDA $16
50D3: 65 09	ADC $09 	; SYS and MLM register save (SP)
50D5: 85 16	STA $16
50D7: 90 02	BCC $50DB
50D9: E6 17	INC $17

50DB: 20 80 03	JSR $0380	; CHRGET
50DE: 4C A8 50	JMP $50A8

50E1: 60	RTS

; Perform [list]

50E2: 20 FB 5E	JSR $5EFB	; Get Line Number Range

50E5: A0 01	LDY #$01
50E7: 20 EC 42	JSR $42EC	; Get From ($61) Bank0
50EA: D0 06	BNE $50F2
50EC: 88	DEY
50ED: 20 EC 42	JSR $42EC	; Get From ($61) Bank0
50F0: F0 2E	BEQ $5120

50F2: 20 B5 4B	JSR $4BB5	; ?
50F5: 20 98 55	JSR $5598
50F8: A0 02	LDY #$02
50FA: 20 EC 42	JSR $42EC	; Get From ($61) Bank0
50FD: AA	TAX
50FE: C8	INY
50FF: 20 EC 42	JSR $42EC	; Get From ($61) Bank0
5102: C5 17	CMP $17
5104: D0 04	BNE $510A
5106: E4 16	CPX $16
5108: F0 02	BEQ $510C

510A: B0 14	BCS $5120

510C: 20 23 51	JSR $5123	; List Subroutine
510F: A0 00	LDY #$00
5111: 20 EC 42	JSR $42EC	; Get From ($61) Bank0
5114: AA	TAX
5115: C8	INY
5116: 20 EC 42	JSR $42EC	; Get From ($61) Bank0
5119: 86 61	STX $61
511B: 85 62	STA $62
511D: 4C E5 50	JMP $50E5

5120: 4C 98 55	JMP $5598

; List Subroutine

5123: A0 03	LDY #$03
5125: 84 4B	STY $4B
5127: 84 11	STY $11
5129: 20 32 8E	JSR $8E32	; Print Integer
512C: A9 20	LDA #$20

512E: A4 4B	LDY $4B
5130: 29 7F	AND #$7F

5132: 20 0C 56	JSR $560C
5135: C9 22	CMP #$22
5137: D0 06	BNE $513F
5139: A5 11	LDA $11
513B: 49 FF	EOR #$FF
513D: 85 11	STA $11

513F: C8	INY
5140: F0 DE	BEQ $5120
5142: 24 55	BIT $55
5144: 10 03	BPL $5149
5146: 20 AC 59	JSR $59AC	; Insert Help Marker

5149: 20 EC 42	JSR $42EC	; Get From ($61) Bank0
514C: F0 3D	BEQ $518B
514E: 6C 06 03	JMP ($0306)	; Print Tokens Link [5151]

; Print Tokens

5151: 10 DF	BPL $5132
5153: C9 FF	CMP #$FF
5155: F0 DB	BEQ $5132
5157: 24 11	BIT $11
5159: 30 D7	BMI $5132
515B: C9 FE	CMP #$FE
515D: F0 2D	BEQ $518C
515F: C9 CE	CMP #$CE
5161: F0 43	BEQ $51A6
5163: AA	TAX
5164: 84 4B	STY $4B
5166: A9 44	LDA #$44
5168: A0 17	LDY #$17

516A: 85 25	STA $25
516C: 84 24	STY $24
516E: A0 00	LDY #$00

5170: CA	DEX
5171: 10 0F	BPL $5182

5173: B1 24	LDA ($24),Y
5175: 48	PHA
5176: E6 24	INC $24
5178: D0 02	BNE $517C
517A: E6 25	INC $25

517C: 68	PLA
517D: 10 F4	BPL $5173
517F: 30 EF	BMI $5170

5181: C8	INY

5182: B1 24	LDA ($24),Y
5184: 30 A8	BMI $512E
5186: 20 0C 56	JSR $560C
5189: D0 F6	BNE $5181

518B: 60	RTS

518C: AA	TAX
518D: C8	INY
518E: 20 EC 42	JSR $42EC	; Get From ($61) Bank0
5191: F0 9F	BEQ $5132
5193: 84 4B	STY $4B
5195: C9 02	CMP #$02
5197: 90 27	BCC $51C0
5199: C9 27	CMP #$27
519B: B0 23	BCS $51C0
519D: 69 7E	ADC #$7E
519F: AA	TAX
51A0: A0 09	LDY #$09
51A2: A9 46	LDA #$46
51A4: D0 C4	BNE $516A

51A6: AA	TAX
51A7: C8	INY
51A8: 20 EC 42	JSR $42EC	; Get From ($61) Bank0
51AB: F0 85	BEQ $5132
51AD: 84 4B	STY $4B
51AF: C9 02	CMP #$02
51B1: 90 0D	BCC $51C0
51B3: C9 0B	CMP #$0B
51B5: B0 09	BCS $51C0
51B7: 69 7E	ADC #$7E
51B9: AA	TAX
51BA: A0 C9	LDY #$C9
51BC: A9 46	LDA #$46
51BE: D0 AA	BNE $516A

51C0: E0 FE	CPX #$FE
51C2: D0 03	BNE $51C7
51C4: A2 00	LDX #$00
51C6: 2C	.BYTE $2C

51C7: A2 FF	LDX #$FF
51C9: 38	SEC
51CA: 6C 0E 03	JMP ($030E)	; List FE Hook [51CD]

; List FE

51CD: B0 04	BCS $51D3
51CF: A0 00	LDY #$00
51D1: F0 AF	BEQ $5182

51D3: 4C 32 51	JMP $5132

; Perform [new]

51D6: F0 01	BEQ $51D9
51D8: 60	RTS

51D9: A9 00	LDA #$00
51DB: A8	TAY
51DC: 91 2D	STA ($2D),Y	; Pointer: Start-of-BASIC (bank 0)
51DE: C8	INY
51DF: 91 2D	STA ($2D),Y	; Pointer: Start-of-BASIC (bank 0)
51E1: 8D 6F 11	STA $116F	; Trace Mode: FF = on
51E4: A5 2D	LDA $2D 	; Pointer: Start-of-BASIC (bank 0)
51E6: 18	CLC
51E7: 69 02	ADC #$02
51E9: 8D 10 12	STA $1210	; End of Basic, Bank 0
51EC: A5 2E	LDA $2E
51EE: 69 00	ADC #$00
51F0: 8D 11 12	STA $1211

; Set Up Run

51F3: 20 54 52	JSR $5254	; Textptr to BASIC start minus 1
51F6: A9 00	LDA #$00

; Perform [clr]

51F8: D0 55	BNE $524F

51FA: 20 7B 92	JSR $927B	; Call 'clall'
51FD: A0 00	LDY #$00
51FF: 84 7A	STY $7A
5201: 88	DEY
5202: 8C 0C 12	STY $120C
5205: 8C 09 12	STY $1209
5208: 8C 0A 12	STY $120A
520B: 8C 08 12	STY $1208
520E: A5 39	LDA $39 	; Pointer: Limit-of-memory (bank 1)
5210: A4 3A	LDY $3A
5212: 85 35	STA $35
5214: 84 36	STY $36
5216: A9 FF	LDA #$FF
5218: A0 09	LDY #$09
521A: 85 7D	STA $7D
521C: 84 7E	STY $7E
521E: A5 2F	LDA $2F 	; Pointer: Start-of-variables (bank 1)
5220: A4 30	LDY $30
5222: 85 31	STA $31
5224: 84 32	STY $32
5226: 85 33	STA $33
5228: 84 34	STY $34
522A: A2 03	LDX #$03

522C: BD 50 52	LDA $5250,X	; Pudef Characters
522F: 9D 04 12	STA $1204,X
5232: CA	DEX
5233: 10 F7	BPL $522C

5235: 20 E1 5A	JSR $5AE1

; Clear Stack & Work Area

5238: A2 1B	LDX #$1B
523A: 86 18	STX $18
523C: 68	PLA
523D: A8	TAY
523E: 68	PLA
523F: A2 FA	LDX #$FA
5241: 9A	TXS
5242: 48	PHA
5243: 98	TYA
5244: 48	PHA
5245: A9 00	LDA #$00
5247: 8D 03 12	STA $1203
524A: 85 12	STA $12
524C: 8D DF 03	STA $03DF	; FAC#1 Overflow

524F: 60	RTS

; Pudef Characters

5250: 20 2C 2E 24            	; ' ,.$'

; Textptr to BASIC start minus 1

5254: 18	CLC
5255: A5 2D	LDA $2D 	; Pointer: Start-of-BASIC (bank 0)
5257: 69 FF	ADC #$FF
5259: 85 3D	STA $3D 	; Textpointer: BASIC work point (chrget)
525B: A5 2E	LDA $2E
525D: 69 FF	ADC #$FF
525F: 85 3E	STA $3E
5261: 60	RTS

; Perform [return]

5262: 68	PLA
5263: 68	PLA
5264: A9 8D	LDA #$8D
5266: 20 AA 4F	JSR $4FAA	; Search B-Stack For Match
5269: F0 05	BEQ $5270
526B: A2 0C	LDX #$0C
526D: 4C 3C 4D	JMP $4D3C	; Error

5270: 20 50 50	JSR $5050	; Set B-Stack Pointer
5273: A0 05	LDY #$05
5275: 20 59 50	JSR $5059	; Move B-Stack Up
5278: 88	DEY
5279: B1 3F	LDA ($3F),Y
527B: 85 3E	STA $3E
527D: 88	DEY
527E: B1 3F	LDA ($3F),Y
5280: 85 3D	STA $3D 	; Textpointer: BASIC work point (chrget)
5282: 88	DEY
5283: B1 3F	LDA ($3F),Y
5285: 20 3B A8	JSR $A83B	; ?
5288: B1 3F	LDA ($3F),Y
528A: 85 3B	STA $3B
528C: 4C 8F 52	JMP $528F	; Perform [data/bend]

; Perform [data/bend]

528F: 20 A2 52	JSR $52A2	; Scan To Next Statement

5292: 98	TYA
5293: 18	CLC
5294: 65 3D	ADC $3D 	; Textpointer: BASIC work point (chrget)
5296: 85 3D	STA $3D 	; Textpointer: BASIC work point (chrget)
5298: 90 02	BCC $529C
529A: E6 3E	INC $3E

529C: 60	RTS

; Perform [rem]

529D: 20 A5 52	JSR $52A5	; Scan To Next Line
52A0: F0 F0	BEQ $5292

; Scan To Next Statement

52A2: A2 3A	LDX #$3A
52A4: 2C	.BYTE $2C

; Scan To Next Line

52A5: A2 00	LDX #$00
52A7: 86 09	STX $09 	; SYS and MLM register save (SP)
52A9: A0 00	LDY #$00
52AB: 84 0A	STY $0A

52AD: A5 0A	LDA $0A
52AF: A6 09	LDX $09 	; SYS and MLM register save (SP)
52B1: 85 09	STA $09 	; SYS and MLM register save (SP)
52B3: 86 0A	STX $0A

52B5: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0
52B8: F0 E2	BEQ $529C
52BA: C5 0A	CMP $0A
52BC: F0 DE	BEQ $529C
52BE: C8	INY
52BF: C9 22	CMP #$22
52C1: D0 F2	BNE $52B5
52C3: F0 E8	BEQ $52AD

; Perform [if]

52C5: 20 EF 77	JSR $77EF	; Evaluate Expression
52C8: 20 86 03	JSR $0386	; CHRGOT entry
52CB: C9 89	CMP #$89
52CD: F0 05	BEQ $52D4
52CF: A9 A7	LDA #$A7
52D1: 20 5E 79	JSR $795E

52D4: A5 63	LDA $63
52D6: D0 26	BNE $52FE
52D8: 20 86 03	JSR $0386	; CHRGOT entry
52DB: C9 FE	CMP #$FE
52DD: D0 0B	BNE $52EA
52DF: C8	INY
52E0: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0
52E3: C9 18	CMP #$18
52E5: D0 03	BNE $52EA
52E7: 20 20 53	JSR $5320	; Search/Skip Begin/Bend

52EA: 20 8F 52	JSR $528F	; Perform [data/bend]
52ED: A0 00	LDY #$00
52EF: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0
52F2: F0 A9	BEQ $529D	; Perform [rem]
52F4: 20 80 03	JSR $0380	; CHRGET
52F7: C9 D5	CMP #$D5
52F9: D0 EF	BNE $52EA
52FB: 20 80 03	JSR $0380	; CHRGET

52FE: 20 86 03	JSR $0386	; CHRGOT entry
5301: F0 17	BEQ $531A
5303: B0 03	BCS $5308
5305: 4C DB 59	JMP $59DB	; Perform [goto]

5308: C9 FE	CMP #$FE
530A: D0 0E	BNE $531A
530C: C8	INY
530D: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0
5310: C9 18	CMP #$18
5312: D0 06	BNE $531A
5314: 20 80 03	JSR $0380	; CHRGET
5317: 20 80 03	JSR $0380	; CHRGET

531A: 20 86 03	JSR $0386	; CHRGOT entry
531D: 4C 3F 4B	JMP $4B3F	; Execute/Trace Statement

; Search/Skip Begin/Bend

5320: 20 80 03	JSR $0380	; CHRGET
5323: D0 27	BNE $534C

5325: C9 3A	CMP #$3A
5327: F0 F7	BEQ $5320	; Search/Skip Begin/Bend

5329: 24 7F	BIT $7F
532B: 10 4A	BPL $5377
532D: A0 02	LDY #$02
532F: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0
5332: F0 43	BEQ $5377
5334: C8	INY
5335: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0
5338: 85 3B	STA $3B
533A: C8	INY
533B: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0
533E: 85 3C	STA $3C
5340: 98	TYA
5341: 18	CLC
5342: 65 3D	ADC $3D 	; Textpointer: BASIC work point (chrget)
5344: 85 3D	STA $3D 	; Textpointer: BASIC work point (chrget)
5346: 90 D8	BCC $5320	; Search/Skip Begin/Bend
5348: E6 3E	INC $3E
534A: D0 D4	BNE $5320	; Search/Skip Begin/Bend

534C: C9 22	CMP #$22
534E: D0 07	BNE $5357
5350: 20 7C 53	JSR $537C	; Skip String Constant
5353: F0 D0	BEQ $5325
5355: D0 C9	BNE $5320	; Search/Skip Begin/Bend

5357: C9 8F	CMP #$8F
5359: D0 06	BNE $5361
535B: 20 9D 52	JSR $529D	; Perform [rem]
535E: 4C 29 53	JMP $5329

5361: C9 FE	CMP #$FE
5363: D0 BB	BNE $5320	; Search/Skip Begin/Bend
5365: 20 80 03	JSR $0380	; CHRGET
5368: C9 19	CMP #$19
536A: F0 0A	BEQ $5376
536C: C9 18	CMP #$18
536E: D0 B0	BNE $5320	; Search/Skip Begin/Bend
5370: 20 20 53	JSR $5320	; Search/Skip Begin/Bend
5373: 4C 20 53	JMP $5320	; Search/Skip Begin/Bend

5376: 60	RTS

5377: A2 25	LDX #$25
5379: 4C 3C 4D	JMP $4D3C	; Error

; Skip String Constant

537C: A0 00	LDY #$00

537E: E6 3D	INC $3D 	; Textpointer: BASIC work point (chrget)
5380: D0 02	BNE $5384
5382: E6 3E	INC $3E

5384: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0
5387: F0 07	BEQ $5390
5389: C9 22	CMP #$22
538B: D0 F1	BNE $537E
538D: 4C 80 03	JMP $0380	; CHRGET

5390: 60	RTS

; Perform [else]

5391: C9 FE	CMP #$FE
5393: D0 0B	BNE $53A0
5395: C8	INY
5396: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0
5399: C9 18	CMP #$18
539B: D0 03	BNE $53A0
539D: 20 20 53	JSR $5320	; Search/Skip Begin/Bend

53A0: 4C 9D 52	JMP $529D	; Perform [rem]

; Perform [on]

53A3: 20 F4 87	JSR $87F4	; -Eval Byte Parameter
53A6: 48	PHA
53A7: C9 8D	CMP #$8D
53A9: F0 07	BEQ $53B2
53AB: C9 89	CMP #$89
53AD: F0 03	BEQ $53B2
53AF: 4C 6C 79	JMP $796C	; Syntax Error

53B2: C6 67	DEC $67
53B4: D0 04	BNE $53BA
53B6: 68	PLA
53B7: 4C 59 4B	JMP $4B59

53BA: 20 80 03	JSR $0380	; CHRGET
53BD: 20 A0 50	JSR $50A0	; Get Fixed Pt Number
53C0: C9 2C	CMP #$2C
53C2: F0 EE	BEQ $53B2
53C4: 68	PLA
53C5: 60	RTS

; Perform [let]

53C6: 20 AF 7A	JSR $7AAF	; Locate Variable
53C9: 85 4B	STA $4B
53CB: 84 4C	STY $4C
53CD: A9 B2	LDA #$B2
53CF: 20 5E 79	JSR $795E
53D2: A5 10	LDA $10
53D4: 48	PHA
53D5: A5 0F	LDA $0F
53D7: 48	PHA
53D8: 20 EF 77	JSR $77EF	; Evaluate Expression
53DB: 68	PLA
53DC: 2A	ROL A
53DD: 20 DE 77	JSR $77DE
53E0: D0 22	BNE $5404
53E2: 68	PLA

53E3: 10 15	BPL $53FA
53E5: 20 47 8C	JSR $8C47	; Round FAC#1
53E8: 20 B4 84	JSR $84B4
53EB: A0 00	LDY #$00
53ED: A5 66	LDA $66
53EF: 8D 04 FF	STA $FF04
53F2: 91 4B	STA ($4B),Y
53F4: C8	INY
53F5: A5 67	LDA $67
53F7: 91 4B	STA ($4B),Y
53F9: 60	RTS

53FA: A6 4B	LDX $4B
53FC: A4 4C	LDY $4C
53FE: 8D 04 FF	STA $FF04
5401: 4C 00 8C	JMP $8C00	; Pack FAC#1 to RAM1

5404: 68	PLA

5405: A4 4C	LDY $4C		; variable string descriptor address high byte
5407: C0 03	CPY #$03	; system descriptor?
5409: D0 72	BNE $547D	; assign to variable
540B: 20 81 87	JSR $8781	; get string, remove it from heap
540E: C9 06	CMP #$06	; length not 6 (time string)
5410: D0 3E	BNE $5450	; error "?ILLEGAL QUANTITITY"
5412: A0 00	LDY #$00
5414: 84 63	STY $63
5416: 84 68	STY $68

5418: 84 72	STY $72
541A: 20 48 54	JSR $5448	; get digit
541D: 20 17 8B	JSR $8B17	; Multiply By 10
5420: E6 72	INC $72
5422: A4 72	LDY $72
5424: 20 48 54	JSR $5448	; get digit
5427: 20 38 8C	JSR $8C38	; FAC#1 to FAC#2
542A: AA	TAX
542B: F0 05	BEQ $5432
542D: E8	INX
542E: 8A	TXA
542F: 20 22 8B	JSR $8B22

5432: A4 72	LDY $72
5434: C8	INY
5435: C0 06	CPY #$06
5437: D0 DF	BNE $5418
5439: 20 17 8B	JSR $8B17	; Multiply By 10
543C: 20 C7 8C	JSR $8CC7	; Float-Fixed
543F: A6 66	LDX $66
5441: A4 65	LDY $65
5443: A5 67	LDA $67
5445: 4C DB FF	JMP $FFDB	; settim        Set Real-Time Clock

5448: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
544B: 20 90 03	JSR $0390
544E: 90 03	BCC $5453

5450: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

5453: E9 2F	SBC #$2F
5455: 4C B0 8D	JMP $8DB0	; Get Ascii Digit

5458: 68	PLA
5459: C8	INY

545A: C5 36	CMP $36
545C: 90 18	BCC $5476
545E: D0 08	BNE $5468
5460: 88	DEY
5461: 20 E7 42	JSR $42E7	; Get From ($66) Bank1
5464: C5 35	CMP $35
5466: 90 0E	BCC $5476

5468: A4 67	LDY $67
546A: C4 30	CPY $30
546C: 90 08	BCC $5476
546E: D0 24	BNE $5494
5470: A5 66	LDA $66
5472: C5 2F	CMP $2F 	; Pointer: Start-of-variables (bank 1)
5474: B0 1E	BCS $5494

5476: A5 66	LDA $66
5478: A4 67	LDY $67
547A: 4C B2 54	JMP $54B2

547D: A0 02	LDY #$02
547F: 20 E7 42	JSR $42E7	; Get From ($66) Bank1
5482: C5 7C	CMP $7C
5484: D0 D4	BNE $545A
5486: 48	PHA
5487: 88	DEY
5488: 20 E7 42	JSR $42E7	; Get From ($66) Bank1
548B: C5 7B	CMP $7B
548D: D0 C9	BNE $5458
548F: A5 7A	LDA $7A
5491: F0 C5	BEQ $5458
5493: 68	PLA

5494: A0 00	LDY #$00
5496: 20 E7 42	JSR $42E7	; Get From ($66) Bank1
5499: 20 88 86	JSR $8688	; Calc String Vector
549C: A5 52	LDA $52
549E: A4 53	LDY $53
54A0: 85 70	STA $70
54A2: 84 71	STY $71
54A4: 20 4E 87	JSR $874E	; Build String to Memory
54A7: A5 70	LDA $70
54A9: A4 71	LDY $71
54AB: 20 E0 87	JSR $87E0	; Clean Descriptor Stack
54AE: A9 63	LDA #$63
54B0: A0 00	LDY #$00

54B2: 85 52	STA $52
54B4: 84 53	STY $53
54B6: 85 24	STA $24
54B8: 84 25	STY $25
54BA: 20 E0 87	JSR $87E0	; Clean Descriptor Stack
54BD: 20 F6 54	JSR $54F6	; Check String Location
54C0: 90 0E	BCC $54D0
54C2: A0 00	LDY #$00
54C4: A5 4B	LDA $4B
54C6: 8D 04 FF	STA $FF04
54C9: 91 24	STA ($24),Y
54CB: C8	INY
54CC: A5 4C	LDA $4C
54CE: 91 24	STA ($24),Y

54D0: A5 4B	LDA $4B
54D2: 85 24	STA $24
54D4: A5 4C	LDA $4C
54D6: 85 25	STA $25
54D8: 20 F6 54	JSR $54F6	; Check String Location
54DB: 90 0C	BCC $54E9
54DD: 88	DEY
54DE: A9 FF	LDA #$FF
54E0: 8D 04 FF	STA $FF04
54E3: 91 24	STA ($24),Y
54E5: 88	DEY
54E6: 8A	TXA
54E7: 91 24	STA ($24),Y

54E9: A0 02	LDY #$02

54EB: A9 52	LDA #$52
54ED: 20 AB 03	JSR $03AB	; Fetch From RAM Bank 1
54F0: 91 4B	STA ($4B),Y
54F2: 88	DEY
54F3: 10 F6	BPL $54EB
54F5: 60	RTS

; Check String Location

54F6: A0 00	LDY #$00
54F8: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
54FB: 48	PHA
54FC: F0 39	BEQ $5537
54FE: C8	INY
54FF: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
5502: AA	TAX
5503: C8	INY
5504: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
5507: C5 3A	CMP $3A
5509: 90 06	BCC $5511
550B: D0 2A	BNE $5537
550D: E4 39	CPX $39 	; Pointer: Limit-of-memory (bank 1)
550F: B0 26	BCS $5537

5511: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
5514: C5 36	CMP $36
5516: 90 1F	BCC $5537
5518: D0 04	BNE $551E
551A: E4 35	CPX $35
551C: 90 19	BCC $5537

551E: C5 7C	CMP $7C
5520: D0 04	BNE $5526
5522: E4 7B	CPX $7B
5524: F0 11	BEQ $5537

5526: 86 24	STX $24
5528: 85 25	STA $25
552A: 68	PLA
552B: AA	TAX
552C: 18	CLC
552D: 65 24	ADC $24
552F: 85 24	STA $24
5531: 90 02	BCC $5535
5533: E6 25	INC $25

5535: 38	SEC
5536: 60	RTS

5537: 68	PLA
5538: 18	CLC
5539: 60	RTS

; Perform [print#]

553A: 20 40 55	JSR $5540	; Perform [cmd]
553D: 4C 58 56	JMP $5658

; Perform [cmd]

5540: 20 F4 87	JSR $87F4	; -Eval Byte Parameter
5543: F0 05	BEQ $554A
5545: A9 2C	LDA #$2C
5547: 20 5E 79	JSR $795E

554A: 08	PHP
554B: 86 15	STX $15 	; Current I/O prompt flag
554D: 20 EB 90	JSR $90EB	; Redirect Output
5550: 28	PLP
5551: 4C 5A 55	JMP $555A	; Perform [print]

5554: 20 E5 55	JSR $55E5

5557: 20 86 03	JSR $0386	; CHRGOT entry

; Perform [print]

555A: F0 3C	BEQ $5598
555C: C9 FB	CMP #$FB
555E: D0 03	BNE $5563
5560: 4C 20 95	JMP $9520	; Print Using

5563: F0 43	BEQ $55A8
5565: C9 A3	CMP #$A3
5567: F0 50	BEQ $55B9
5569: C9 A6	CMP #$A6
556B: 18	CLC
556C: F0 4B	BEQ $55B9
556E: C9 2C	CMP #$2C
5570: F0 37	BEQ $55A9
5572: C9 3B	CMP #$3B
5574: F0 5E	BEQ $55D4
5576: 20 EF 77	JSR $77EF	; Evaluate Expression
5579: 24 0F	BIT $0F
557B: 30 D7	BMI $5554
557D: 20 42 8E	JSR $8E42	; Float to Ascii
5580: 20 9A 86	JSR $869A	; Set Up String
5583: 20 E5 55	JSR $55E5
5586: 20 00 56	JSR $5600	; Print Format Char
5589: D0 CC	BNE $5557

558B: A9 00	LDA #$00
558D: 9D 00 02	STA $0200,X
5590: A2 FF	LDX #$FF
5592: A0 01	LDY #$01
5594: A5 15	LDA $15 	; Current I/O prompt flag
5596: D0 10	BNE $55A8

5598: A9 0D	LDA #$0D
559A: 20 0C 56	JSR $560C
559D: 24 15	BIT $15 	; Current I/O prompt flag
559F: 10 05	BPL $55A6
55A1: A9 0A	LDA #$0A
55A3: 20 0C 56	JSR $560C

55A6: 49 FF	EOR #$FF

55A8: 60	RTS

55A9: 38	SEC
55AA: 20 8D 92	JSR $928D	; Call 'plot'
55AD: 98	TYA
55AE: 38	SEC

55AF: E9 0A	SBC #$0A
55B1: B0 FC	BCS $55AF
55B3: 49 FF	EOR #$FF
55B5: 69 01	ADC #$01
55B7: D0 16	BNE $55CF

55B9: 08	PHP
55BA: 38	SEC
55BB: 20 8D 92	JSR $928D	; Call 'plot'
55BE: 84 0B	STY $0B
55C0: 20 F1 87	JSR $87F1	; Input Byte Parameter
55C3: C9 29	CMP #$29
55C5: D0 13	BNE $55DA
55C7: 28	PLP
55C8: 90 06	BCC $55D0
55CA: 8A	TXA
55CB: E5 0B	SBC $0B
55CD: 90 05	BCC $55D4

55CF: AA	TAX

55D0: E8	INX

55D1: CA	DEX
55D2: D0 09	BNE $55DD

55D4: 20 80 03	JSR $0380	; CHRGET
55D7: 4C 63 55	JMP $5563

55DA: 4C 6C 79	JMP $796C	; Syntax Error

55DD: 20 00 56	JSR $5600	; Print Format Char
55E0: D0 EF	BNE $55D1

55E2: 20 9A 86	JSR $869A	; Set Up String

55E5: 20 81 87	JSR $8781
55E8: AA	TAX
55E9: A0 00	LDY #$00
55EB: E8	INX

55EC: CA	DEX
55ED: F0 B9	BEQ $55A8
55EF: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
55F2: 20 0C 56	JSR $560C
55F5: C8	INY
55F6: C9 0D	CMP #$0D
55F8: D0 F2	BNE $55EC
55FA: 20 A6 55	JSR $55A6
55FD: 4C EC 55	JMP $55EC

; Print Format Char

5600: A5 15	LDA $15 	; Current I/O prompt flag
5602: F0 03	BEQ $5607	; -print '<cursor right>'-

; -print space-

5604: A9 20	LDA #$20
5606: 2C	.BYTE $2C

; -print '<cursor right>'-

5607: A9 1D	LDA #$1D
5609: 2C	.BYTE $2C

; -print '?'-

560A: A9 3F	LDA #$3F

560C: 20 DF 90	JSR $90DF	; Basic 'chrout'
560F: 29 FF	AND #$FF
5611: 60	RTS

; Perform [get]

5612: 20 D9 84	JSR $84D9	; Check Direct
5615: 85 77	STA $77
5617: C9 23	CMP #$23
5619: F0 0A	BEQ $5625
561B: C9 F9	CMP #$F9
561D: D0 16	BNE $5635	; Getkey
561F: 20 80 03	JSR $0380	; CHRGET
5622: 4C 35 56	JMP $5635	; Getkey

5625: 20 80 03	JSR $0380	; CHRGET
5628: 20 F4 87	JSR $87F4	; -Eval Byte Parameter
562B: A9 2C	LDA #$2C
562D: 20 5E 79	JSR $795E
5630: 86 15	STX $15 	; Current I/O prompt flag
5632: 20 FD 90	JSR $90FD	; Redirect Input

; Getkey

5635: A2 01	LDX #$01
5637: A0 02	LDY #$02
5639: A9 00	LDA #$00
563B: 8D 01 02	STA $0201
563E: A9 40	LDA #$40
5640: 20 B2 56	JSR $56B2
5643: A6 15	LDX $15 	; Current I/O prompt flag
5645: D0 13	BNE $565A
5647: 60	RTS

; Perform [input#]

5648: 20 F4 87	JSR $87F4	; -Eval Byte Parameter
564B: A9 2C	LDA #$2C
564D: 20 5E 79	JSR $795E
5650: 86 15	STX $15 	; Current I/O prompt flag
5652: 20 FD 90	JSR $90FD	; Redirect Input
5655: 20 71 56	JSR $5671

5658: A5 15	LDA $15 	; Current I/O prompt flag

565A: 20 6F 92	JSR $926F	; Call 'clrchn'
565D: A2 00	LDX #$00
565F: 86 15	STX $15 	; Current I/O prompt flag
5661: 60	RTS

; Perform [input]

5662: C9 22	CMP #$22
5664: D0 0B	BNE $5671
5666: 20 13 79	JSR $7913
5669: A9 3B	LDA #$3B
566B: 20 5E 79	JSR $795E
566E: 20 E5 55	JSR $55E5

5671: 20 D9 84	JSR $84D9	; Check Direct
5674: A9 2C	LDA #$2C
5676: 8D FF 01	STA $01FF

5679: 20 9C 56	JSR $569C	; Prompt & Input
567C: A5 15	LDA $15 	; Current I/O prompt flag
567E: F0 0D	BEQ $568D
5680: 20 51 92	JSR $9251	; Call 'status'
5683: 29 02	AND #$02
5685: F0 06	BEQ $568D
5687: 20 58 56	JSR $5658
568A: 4C 8F 52	JMP $528F	; Perform [data/bend]

568D: AD 00 02	LDA $0200
5690: D0 1E	BNE $56B0
5692: A5 15	LDA $15 	; Current I/O prompt flag
5694: D0 E3	BNE $5679
5696: 20 A2 52	JSR $52A2	; Scan To Next Statement
5699: 4C 92 52	JMP $5292

; Prompt & Input

569C: A5 15	LDA $15 	; Current I/O prompt flag
569E: D0 06	BNE $56A6
56A0: 20 0A 56	JSR $560A	; -print '?'-
56A3: 20 04 56	JSR $5604	; -print space-

56A6: 4C 93 4F	JMP $4F93	; Receive Input Line

; Perform [read]

56A9: A6 43	LDX $43
56AB: A4 44	LDY $44
56AD: A9 98	LDA #$98
56AF: 2C	.BYTE $2C

56B0: A9 00	LDA #$00

56B2: 85 13	STA $13
56B4: 86 45	STX $45
56B6: 84 46	STY $46

56B8: 20 AF 7A	JSR $7AAF	; Locate Variable
56BB: 85 4B	STA $4B
56BD: 84 4C	STY $4C
56BF: A2 01	LDX #$01

56C1: B5 3D	LDA $3D,X	; Textpointer: BASIC work point (chrget)
56C3: 95 4D	STA $4D,X
56C5: B5 45	LDA $45,X
56C7: 95 3D	STA $3D,X	; Textpointer: BASIC work point (chrget)
56C9: CA	DEX
56CA: 10 F5	BPL $56C1
56CC: 20 86 03	JSR $0386	; CHRGOT entry
56CF: D0 31	BNE $5702
56D1: 24 13	BIT $13
56D3: 50 1A	BVC $56EF
56D5: A5 77	LDA $77
56D7: C9 F9	CMP #$F9
56D9: D0 08	BNE $56E3

56DB: 20 09 91	JSR $9109
56DE: AA	TAX
56DF: F0 FA	BEQ $56DB
56E1: D0 03	BNE $56E6

56E3: 20 09 91	JSR $9109

56E6: 8D 00 02	STA $0200
56E9: A2 FF	LDX #$FF
56EB: A0 01	LDY #$01
56ED: D0 0F	BNE $56FE

56EF: 10 03	BPL $56F4
56F1: 4C CA 57	JMP $57CA

56F4: A5 15	LDA $15 	; Current I/O prompt flag
56F6: D0 03	BNE $56FB
56F8: 20 0A 56	JSR $560A	; -print '?'-

56FB: 20 9C 56	JSR $569C	; Prompt & Input

56FE: 86 3D	STX $3D 	; Textpointer: BASIC work point (chrget)
5700: 84 3E	STY $3E

5702: 20 80 03	JSR $0380	; CHRGET
5705: 24 0F	BIT $0F
5707: 10 31	BPL $573A
5709: 24 13	BIT $13
570B: 50 09	BVC $5716
570D: E8	INX
570E: 86 3D	STX $3D 	; Textpointer: BASIC work point (chrget)
5710: A9 00	LDA #$00
5712: 85 09	STA $09 	; SYS and MLM register save (SP)
5714: F0 0C	BEQ $5722

5716: 85 09	STA $09 	; SYS and MLM register save (SP)
5718: C9 22	CMP #$22
571A: F0 07	BEQ $5723
571C: A9 3A	LDA #$3A
571E: 85 09	STA $09 	; SYS and MLM register save (SP)
5720: A9 2C	LDA #$2C

5722: 18	CLC

5723: 85 0A	STA $0A
5725: A5 3D	LDA $3D 	; Textpointer: BASIC work point (chrget)
5727: A4 3E	LDY $3E
5729: 69 00	ADC #$00
572B: 90 01	BCC $572E
572D: C8	INY

572E: 20 A0 86	JSR $86A0
5731: 20 1F 79	JSR $791F
5734: 20 05 54	JSR $5405
5737: 4C 44 57	JMP $5744

573A: A2 00	LDX #$00
573C: 20 22 8D	JSR $8D22	; String to FAC#1
573F: A5 10	LDA $10
5741: 20 E3 53	JSR $53E3

5744: 20 86 03	JSR $0386	; CHRGOT entry
5747: F0 3B	BEQ $5784
5749: C9 2C	CMP #$2C
574B: F0 37	BEQ $5784
574D: A5 13	LDA $13
574F: F0 0A	BEQ $575B
5751: 30 04	BMI $5757
5753: A6 15	LDX $15 	; Current I/O prompt flag
5755: D0 08	BNE $575F

5757: A2 16	LDX #$16
5759: D0 06	BNE $5761

575B: A5 15	LDA $15 	; Current I/O prompt flag
575D: F0 05	BEQ $5764

575F: A2 18	LDX #$18

5761: 4C 3C 4D	JMP $4D3C	; Error

5764: 20 81 92	JSR $9281	; Print Following Text
5767: 3F 52 45 44 4F 20 46 52	; '?redo fr'
576F: 4F 4D 20 53 54 41 52 54	; 'om start'
5777: 0D 00                  	; '{CR}{0}'
5779: AD 02 12	LDA $1202
577C: AC 03 12	LDY $1203
577F: 85 3D	STA $3D 	; Textpointer: BASIC work point (chrget)
5781: 84 3E	STY $3E
5783: 60	RTS

5784: A2 01	LDX #$01

5786: B5 3D	LDA $3D,X	; Textpointer: BASIC work point (chrget)
5788: 95 45	STA $45,X
578A: B5 4D	LDA $4D,X
578C: 95 3D	STA $3D,X	; Textpointer: BASIC work point (chrget)
578E: CA	DEX
578F: 10 F5	BPL $5786
5791: 20 86 03	JSR $0386	; CHRGOT entry
5794: F0 06	BEQ $579C
5796: 20 5C 79	JSR $795C	; -Check Comma
5799: 4C B8 56	JMP $56B8

579C: A5 45	LDA $45
579E: A4 46	LDY $46
57A0: A6 13	LDX $13
57A2: 10 05	BPL $57A9
57A4: 85 43	STA $43
57A6: 84 44	STY $44
57A8: 60	RTS

57A9: A0 00	LDY #$00
57AB: A9 45	LDA #$45
57AD: 20 9F 03	JSR $039F	; Fetch From RAM Bank 0
57B0: F0 17	BEQ $57C9
57B2: A5 15	LDA $15 	; Current I/O prompt flag
57B4: D0 13	BNE $57C9
57B6: 20 81 92	JSR $9281	; Print Following Text
57B9: 3F 45 58 54 52 41 20 49	; '?extra i'
57C1: 47 4E 4F 52 45 44 0D 00	; 'gnored{CR}{0}'

57C9: 60	RTS

57CA: 20 A2 52	JSR $52A2	; Scan To Next Statement
57CD: C8	INY
57CE: AA	TAX
57CF: D0 15	BNE $57E6
57D1: A2 0D	LDX #$0D
57D3: C8	INY
57D4: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0
57D7: F0 40	BEQ $5819
57D9: C8	INY
57DA: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0
57DD: 85 41	STA $41
57DF: C8	INY
57E0: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0
57E3: C8	INY
57E4: 85 42	STA $42

57E6: 20 92 52	JSR $5292
57E9: 20 86 03	JSR $0386	; CHRGOT entry
57EC: AA	TAX
57ED: E0 83	CPX #$83
57EF: D0 D9	BNE $57CA
57F1: 4C 02 57	JMP $5702

; Perform [next]

57F4: D0 13	BNE $5809
57F6: A0 FF	LDY #$FF
57F8: D0 14	BNE $580E

57FA: A0 12	LDY #$12
57FC: 20 59 50	JSR $5059	; Move B-Stack Up
57FF: 20 86 03	JSR $0386	; CHRGOT entry
5802: C9 2C	CMP #$2C
5804: D0 71	BNE $5877
5806: 20 80 03	JSR $0380	; CHRGET

5809: 20 AF 7A	JSR $7AAF	; Locate Variable
580C: 85 4B	STA $4B

580E: 84 4C	STY $4C
5810: A9 81	LDA #$81
5812: 20 AA 4F	JSR $4FAA	; Search B-Stack For Match
5815: F0 05	BEQ $581C
5817: A2 0A	LDX #$0A

5819: 4C 3C 4D	JMP $4D3C	; Error

581C: 20 50 50	JSR $5050	; Set B-Stack Pointer
581F: A5 3F	LDA $3F
5821: 18	CLC
5822: 69 03	ADC #$03
5824: A4 40	LDY $40
5826: 90 01	BCC $5829
5828: C8	INY

5829: 20 D4 8B	JSR $8BD4	; Unpack ROM to FAC#1
582C: A0 08	LDY #$08
582E: B1 3F	LDA ($3F),Y
5830: 85 68	STA $68
5832: A0 01	LDY #$01
5834: B1 3F	LDA ($3F),Y
5836: 48	PHA
5837: AA	TAX
5838: C8	INY
5839: B1 3F	LDA ($3F),Y
583B: 48	PHA
583C: A8	TAY
583D: 8A	TXA
583E: 20 45 88	JSR $8845	; Add Memory
5841: 68	PLA
5842: A8	TAY
5843: 68	PLA
5844: AA	TAX
5845: 8D 04 FF	STA $FF04
5848: 20 00 8C	JSR $8C00	; Pack FAC#1 to RAM1
584B: A5 3F	LDA $3F
584D: 18	CLC
584E: 69 09	ADC #$09
5850: A4 40	LDY $40
5852: 90 01	BCC $5855
5854: C8	INY

5855: 8D 03 FF	STA $FF03
5858: 20 87 8C	JSR $8C87	; Compare FAC#1 to Memory
585B: A0 08	LDY #$08
585D: 38	SEC
585E: F1 3F	SBC ($3F),Y
5860: F0 98	BEQ $57FA
5862: A0 11	LDY #$11
5864: B1 3F	LDA ($3F),Y
5866: 85 3D	STA $3D 	; Textpointer: BASIC work point (chrget)
5868: 88	DEY
5869: B1 3F	LDA ($3F),Y
586B: 85 3E	STA $3E
586D: 88	DEY
586E: B1 3F	LDA ($3F),Y
5870: 85 3C	STA $3C
5872: 88	DEY
5873: B1 3F	LDA ($3F),Y
5875: 85 3B	STA $3B

5877: 60	RTS

5878: 20 5C 79	JSR $795C	; -Check Comma

; Perform [dim]

587B: AA	TAX
587C: 20 B4 7A	JSR $7AB4
587F: 20 86 03	JSR $0386	; CHRGOT entry
5882: D0 F4	BNE $5878
5884: 60	RTS

; Perform [sys]

5885: 20 12 88	JSR $8812	; -Input Float/Fixed Value
5888: A5 16	LDA $16
588A: 85 04	STA $04 	; SYS address high, MLM register PC
588C: A5 17	LDA $17
588E: 85 03	STA $03 	; SYS address low, MLM register PC
5890: AD D5 03	LDA $03D5	; Current Bank For SYS, POKE, PEEK
5893: 85 02	STA $02 	; Bank Number, Jump to SYS Address
5895: 20 1E 9E	JSR $9E1E
5898: 90 02	BCC $589C
589A: 86 06	STX $06 	; SYS and MLM register save (A)

589C: 20 1E 9E	JSR $9E1E
589F: 90 02	BCC $58A3
58A1: 86 07	STX $07 	; SYS and MLM register save (X)

58A3: 20 1E 9E	JSR $9E1E
58A6: 90 02	BCC $58AA
58A8: 86 08	STX $08 	; SYS and MLM register save (Y)

58AA: 20 1E 9E	JSR $9E1E
58AD: 90 02	BCC $58B1
58AF: 86 05	STX $05 	; SYS and MLM register save (SR)

58B1: 4C 6E FF	JMP $FF6E	; jsrfar

; Perform [tron]

58B4: A9 FF	LDA #$FF
58B6: 2C	.BYTE $2C

; Perform [troff]

58B7: A9 00	LDA #$00
58B9: 8D 6F 11	STA $116F	; Trace Mode: FF = on
58BC: 60	RTS

; Perform [rreg]

58BD: A9 00	LDA #$00
58BF: 85 0D	STA $0D

58C1: 20 86 03	JSR $0386	; CHRGOT entry
58C4: F0 37	BEQ $58FD
58C6: C9 2C	CMP #$2C
58C8: F0 21	BEQ $58EB
58CA: 20 AF 7A	JSR $7AAF	; Locate Variable
58CD: 85 4B	STA $4B
58CF: 84 4C	STY $4C
58D1: A5 0F	LDA $0F
58D3: D0 29	BNE $58FE
58D5: A4 0D	LDY $0D
58D7: B9 06 00	LDA $06,Y	; SYS and MLM register save (A)
58DA: C0 03	CPY #$03
58DC: D0 02	BNE $58E0
58DE: A5 05	LDA $05 	; SYS and MLM register save (SR)

58E0: A8	TAY
58E1: A9 00	LDA #$00
58E3: 20 3C 79	JSR $793C	; Fixed-Float
58E6: A5 10	LDA $10
58E8: 20 E3 53	JSR $53E3

58EB: E6 0D	INC $0D
58ED: A5 0D	LDA $0D
58EF: C9 04	CMP #$04
58F1: B0 0A	BCS $58FD
58F3: 20 86 03	JSR $0386	; CHRGOT entry
58F6: F0 05	BEQ $58FD
58F8: 20 80 03	JSR $0380	; CHRGET
58FB: D0 C4	BNE $58C1

58FD: 60	RTS

58FE: 4C E7 77	JMP $77E7	; Print 'type mismatch'

; Assign <mid$>

5901: 20 59 79	JSR $7959	; -Check Left Parenthesis
5904: 20 AF 7A	JSR $7AAF	; Locate Variable
5907: 85 4B	STA $4B
5909: 84 4C	STY $4C
590B: 20 DD 77	JSR $77DD	; Confirm String
590E: 20 09 88	JSR $8809
5911: CA	DEX
5912: 86 78	STX $78
5914: C9 29	CMP #$29
5916: F0 04	BEQ $591C
5918: 20 09 88	JSR $8809
591B: 2C	.BYTE $2C

591C: A2 FF	LDX #$FF
591E: 86 77	STX $77
5920: 20 56 79	JSR $7956	; -Check Right Parenthesis
5923: A9 B2	LDA #$B2
5925: 20 5E 79	JSR $795E
5928: 20 EF 77	JSR $77EF	; Evaluate Expression
592B: 20 DD 77	JSR $77DD	; Confirm String
592E: A0 02	LDY #$02

5930: A9 4B	LDA #$4B
5932: 20 AB 03	JSR $03AB	; Fetch From RAM Bank 1
5935: 99 5D 00	STA $5D,Y
5938: 20 E7 42	JSR $42E7	; Get From ($66) Bank1
593B: 99 60 00	STA $60,Y
593E: 88	DEY
593F: 10 EF	BPL $5930
5941: 38	SEC
5942: A5 61	LDA $61
5944: E5 78	SBC $78
5946: 85 61	STA $61
5948: B0 02	BCS $594C
594A: C6 62	DEC $62

594C: A5 77	LDA $77
594E: C5 60	CMP $60
5950: 90 02	BCC $5954
5952: A5 60	LDA $60

5954: AA	TAX
5955: F0 18	BEQ $596F
5957: 18	CLC
5958: 65 78	ADC $78
595A: B0 16	BCS $5972
595C: C5 5D	CMP $5D
595E: 90 02	BCC $5962
5960: D0 10	BNE $5972

5962: A4 78	LDY $78

5964: A9 61	LDA #$61
5966: 20 AB 03	JSR $03AB	; Fetch From RAM Bank 1
5969: 91 5E	STA ($5E),Y
596B: C8	INY
596C: CA	DEX
596D: D0 F5	BNE $5964

596F: 4C 81 87	JMP $8781

5972: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

; Perform [auto]

5975: 20 F0 84	JSR $84F0	; Check Direct
5978: 20 A0 50	JSR $50A0	; Get Fixed Pt Number
597B: A5 16	LDA $16
597D: 85 74	STA $74 	; Auto line number increment
597F: A5 17	LDA $17
5981: 85 75	STA $75
5983: 4C 37 4D	JMP $4D37	; Error or Ready

; Perform [help]

5986: AE 08 12	LDX $1208
5989: E8	INX
598A: F0 1D	BEQ $59A9
598C: AD 09 12	LDA $1209
598F: AC 0A 12	LDY $120A
5992: 85 16	STA $16
5994: 84 17	STY $17
5996: 20 64 50	JSR $5064	; Find Basic Line
5999: 90 0E	BCC $59A9
599B: 66 55	ROR $55
599D: 20 98 55	JSR $5598
59A0: A6 16	LDX $16
59A2: A5 17	LDA $17
59A4: 20 23 51	JSR $5123	; List Subroutine
59A7: 46 55	LSR $55

59A9: 4C 98 55	JMP $5598

; Insert Help Marker

59AC: A6 62	LDX $62
59AE: 98	TYA
59AF: 18	CLC
59B0: 65 61	ADC $61
59B2: 90 01	BCC $59B5
59B4: E8	INX

59B5: EC 0F 12	CPX $120F
59B8: D0 14	BNE $59CE
59BA: CD 0E 12	CMP $120E
59BD: 90 0F	BCC $59CE
59BF: F0 0D	BEQ $59CE
59C1: 46 55	LSR $55
59C3: A9 12	LDA #$12
59C5: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
59C7: 10 02	BPL $59CB
59C9: A9 02	LDA #$02

59CB: 4C 0C 56	JMP $560C

59CE: 60	RTS

; Perform [gosub]

59CF: 20 1D 5A	JSR $5A1D	; Put Sub To B-Stack
59D2: 20 86 03	JSR $0386	; CHRGOT entry
59D5: 20 DB 59	JSR $59DB	; Perform [goto]
59D8: 4C F6 4A	JMP $4AF6

; Perform [goto]

59DB: 20 A0 50	JSR $50A0	; Get Fixed Pt Number
59DE: A5 0A	LDA $0A
59E0: F0 38	BEQ $5A1A

59E2: 20 A5 52	JSR $52A5	; Scan To Next Line
59E5: 38	SEC
59E6: A5 3B	LDA $3B
59E8: E5 16	SBC $16
59EA: A5 3C	LDA $3C
59EC: E5 17	SBC $17
59EE: B0 0B	BCS $59FB
59F0: 98	TYA
59F1: 38	SEC
59F2: 65 3D	ADC $3D 	; Textpointer: BASIC work point (chrget)
59F4: A6 3E	LDX $3E
59F6: 90 07	BCC $59FF
59F8: E8	INX
59F9: B0 04	BCS $59FF

59FB: A5 2D	LDA $2D 	; Pointer: Start-of-BASIC (bank 0)
59FD: A6 2E	LDX $2E

59FF: 20 68 50	JSR $5068
5A02: 90 11	BCC $5A15	; Undef'd Statement
5A04: A5 61	LDA $61
5A06: E9 01	SBC #$01
5A08: 85 3D	STA $3D 	; Textpointer: BASIC work point (chrget)
5A0A: A5 62	LDA $62
5A0C: E9 00	SBC #$00
5A0E: 85 3E	STA $3E
5A10: 24 7F	BIT $7F
5A12: 10 6D	BPL $5A81
5A14: 60	RTS

; Undef'd Statement

5A15: A2 11	LDX #$11
5A17: 4C 3C 4D	JMP $4D3C	; Error

5A1A: 4C 6C 79	JMP $796C	; Syntax Error

; Put Sub To B-Stack

5A1D: A9 05	LDA #$05
5A1F: 20 FE 4F	JSR $4FFE	; Move B-Stack Down
5A22: A0 04	LDY #$04
5A24: A5 3E	LDA $3E
5A26: 91 7D	STA ($7D),Y
5A28: 88	DEY
5A29: A5 3D	LDA $3D 	; Textpointer: BASIC work point (chrget)
5A2B: 91 7D	STA ($7D),Y
5A2D: 88	DEY
5A2E: A5 3C	LDA $3C
5A30: 91 7D	STA ($7D),Y
5A32: 88	DEY
5A33: A5 3B	LDA $3B
5A35: 91 7D	STA ($7D),Y
5A37: 88	DEY
5A38: A9 8D	LDA #$8D
5A3A: 91 7D	STA ($7D),Y
5A3C: 60	RTS

; Perform [go]

5A3D: 20 80 03	JSR $0380	; CHRGET
5A40: C9 A4	CMP #$A4
5A42: D0 06	BNE $5A4A
5A44: 20 80 03	JSR $0380	; CHRGET
5A47: 4C DB 59	JMP $59DB	; Perform [goto]

5A4A: 20 F4 87	JSR $87F4	; -Eval Byte Parameter
5A4D: E0 40	CPX #$40
5A4F: F0 03	BEQ $5A54
5A51: 4C 6C 79	JMP $796C	; Syntax Error

5A54: 20 E1 A7	JSR $A7E1	; Print 'are you sure'
5A57: D0 06	BNE $5A5F
5A59: 20 45 A8	JSR $A845	; Set Bank 15
5A5C: 4C 4D FF	JMP $FF4D	; 64mode

5A5F: 60	RTS

; Perform [cont]

5A60: D0 38	BNE $5A9A
5A62: 24 7F	BIT $7F
5A64: 30 34	BMI $5A9A
5A66: A2 1A	LDX #$1A
5A68: AC 03 12	LDY $1203
5A6B: D0 03	BNE $5A70
5A6D: 4C 3C 4D	JMP $4D3C	; Error

5A70: AD 02 12	LDA $1202
5A73: 85 3D	STA $3D 	; Textpointer: BASIC work point (chrget)
5A75: 84 3E	STY $3E
5A77: AD 00 12	LDA $1200
5A7A: AC 01 12	LDY $1201
5A7D: 85 3B	STA $3B
5A7F: 84 3C	STY $3C

5A81: A9 80	LDA #$80
5A83: 85 7F	STA $7F
5A85: 0A	ASL A
5A86: 85 74	STA $74 	; Auto line number increment
5A88: 85 75	STA $75
5A8A: 8D 7F 12	STA $127F	; Collision Mask
5A8D: 85 F6	STA $F6 	; Auto-Insert Mode Flag
5A8F: A2 02	LDX #$02

5A91: 9D 76 12	STA $1276,X	; Collision IRQ Task Table
5A94: CA	DEX
5A95: 10 FA	BPL $5A91
5A97: 4C 90 FF	JMP $FF90	; setmsg        Control OS Messages

5A9A: 60	RTS

; Perform [run]

5A9B: F0 18	BEQ $5AB5
5A9D: 90 1C	BCC $5ABB
5A9F: A9 40	LDA #$40
5AA1: 85 7F	STA $7F
5AA3: 20 A7 A1	JSR $A1A7	; Perform [dload]

5AA6: 20 81 5A	JSR $5A81
5AA9: 20 F3 51	JSR $51F3	; Set Up Run
5AAC: 20 4F 4F	JSR $4F4F	; Rechain Lines
5AAF: 20 98 55	JSR $5598
5AB2: 4C F6 4A	JMP $4AF6

5AB5: 20 81 5A	JSR $5A81
5AB8: 4C F3 51	JMP $51F3	; Set Up Run

5ABB: 20 FA 51	JSR $51FA
5ABE: 20 86 03	JSR $0386	; CHRGOT entry
5AC1: 20 DB 59	JSR $59DB	; Perform [goto]
5AC4: 20 81 5A	JSR $5A81
5AC7: 4C F6 4A	JMP $4AF6

; Perform [restore]

5ACA: F0 15	BEQ $5AE1
5ACC: 20 12 88	JSR $8812	; -Input Float/Fixed Value
5ACF: 84 16	STY $16
5AD1: 85 17	STA $17
5AD3: 20 64 50	JSR $5064	; Find Basic Line
5AD6: B0 03	BCS $5ADB
5AD8: 4C 15 5A	JMP $5A15	; Undef'd Statement

5ADB: A5 61	LDA $61
5ADD: A4 62	LDY $62
5ADF: B0 05	BCS $5AE6

5AE1: 38	SEC
5AE2: A5 2D	LDA $2D 	; Pointer: Start-of-BASIC (bank 0)
5AE4: A4 2E	LDY $2E

5AE6: E9 01	SBC #$01
5AE8: B0 01	BCS $5AEB
5AEA: 88	DEY

5AEB: 85 43	STA $43
5AED: 84 44	STY $44

5AEF: 60	RTS

; Keywords To Renumber

5AF0: 89 8A 8D A7 8C D6 D7 D5	; '..{SHCR}..VWU'
; GOTO, RUN, GOSUB, THEN, RESTORE, RESUME, TRAP, ELSE

; Perform [renumber]

5AF8: 20 F0 84	JSR $84F0	; Check Direct
5AFB: A9 00	LDA #$00
5AFD: A2 0A	LDX #$0A	; default value =10
5AFF: 8E 70 11	STX $1170	; for start
5B02: 8D 71 11	STA $1171
5B05: 8E 72 11	STX $1172	; and step!
5B08: 8D 73 11	STA $1173
5B0B: 85 5C	STA $5C
5B0D: 85 5D	STA $5D
5B0F: 20 86 03	JSR $0386	; CHRGOT entry
5B12: F0 54	BEQ $5B68       ; no parameters
5B14: 20 A0 50	JSR $50A0	; 1st parameter Start: Get Fixed Pt Number -> $16/$17
5B17: A5 0A	LDA $0A
5B19: F0 0A	BEQ $5B25
5B1B: A5 16	LDA $16
5B1D: A6 17	LDX $17
5B1F: 8D 70 11	STA $1170	; save new start value
5B22: 8E 71 11	STX $1171

5B25: 20 06 9E	JSR $9E06	; 2nd parameter Step: Optional Float/Fixed Parameter
5B28: 90 0E	BCC $5B38       ; No value?
5B2A: 8C 72 11	STY $1172
5B2D: 8D 73 11	STA $1173	; is new value =0?
5B30: 0D 72 11	ORA $1172
5B33: D0 03	BNE $5B38

5B35: 4C 28 7D	JMP $7D28	; Error 'illegal quantity'

5B38: 20 06 9E	JSR $9E06	; 3rd parameter Oldstart: Optional Float/Fixed Parameter
5B3B: 90 2B	BCC $5B68       ; No value?
5B3D: 84 5C	STY $5C		; line to start of (old start)
5B3F: 84 16	STY $16
5B41: 85 5D	STA $5D
5B43: 85 17	STA $17
5B45: 20 64 50	JSR $5064	; Find Basic Line ($16/$17)
5B48: A5 61	LDA $61
5B4A: A6 62	LDX $62
5B4C: 85 5A	STA $5A		; Pointer to first line
5B4E: 86 5B	STX $5B
5B50: AD 70 11	LDA $1170	; New start line
5B53: AE 71 11	LDX $1171
5B56: 85 16	STA $16
5B58: 86 17	STX $17
5B5A: 20 64 50	JSR $5064	; Find Basic Line
5B5D: 38	SEC
5B5E: A5 61	LDA $61		; Old start line address (O3) - new start line address (N1)
5B60: E5 5A	SBC $5A		; O1   O2 O3  (old line numbering)
5B62: A5 62	LDA $62		; |----|--|=|=======|
5B64: E5 5B	SBC $5B		;           N1      N2
				; "-" untouched area, "=" changed area
				; A line with the number range N1 N2 must not lay inside
				; the untouched area, otherwise the line number would
				; appear twice!
5B66: 90 CD	BCC $5B35       ; < -> illegal quantity error


; Start of pass 1: check if new linenumbers are in a valid range (does not exceed 63999)

5B68: 20 68 5D	JSR $5D68	; Get Renumber Start
				; ($1170/$1171) -> ($64/$65), textptr to BASIC start ($2D/$2E)-1 -> $3D/$3E
5B6B: 20 9C 5D	JSR $5D9C       ; Scan ahead ($3D/$3E)++, Y=0, link low
5B6E: C8	INY		; Y=1	
5B6F: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0 with offset 1: link high
5B72: F0 3A	BEQ $5BAE	; Start real pass 1

; Advance to old start line loop:
5B74: C8	INY		; Y=2 (Y=1 if coming from $5886)
5B75: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0 with offset 2: number low
5B78: 38	SEC
5B79: E5 5C	SBC $5C
5B7B: C8	INY		; Y=3
5B7C: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0 with offset 3: number high
5B7F: E5 5D	SBC $5D
5B81: B0 07	BCS $5B8A       ; current line >= old start line
5B83: 20 9D 5B	JSR $5B9D       ; advance to next line (textptr at link high)
5B86: D0 EC	BNE $5B74       ; loop
5B88: F0 24	BEQ $5BAE	; Start real pass 1

; Step through new lines loop:
5B8A: 20 9D 5B	JSR $5B9D       ; advance to next line (textptr at link high)
5B8D: F0 1F	BEQ $5BAE	; End of text Start real pass 1
5B8F: 20 89 5D	JSR $5D89	; line number += step ($65/$64) += ($1172/$1173)
5B92: B0 04	BCS $5B98
5B94: C9 F9	CMP #$F9	; Line number passed 63999?
5B96: 90 F2	BCC $5B8A

5B98: A2 26	LDX #$26	; Yes, lLine number too large error
5B9A: 4C 3C 4D	JMP $4D3C	; Error


; Advance to next line traversing the link pointer

5B9D: A0 00	LDY #$00	
5B9F: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0: Link low
5BA2: AA	TAX
5BA3: C8	INY
5BA4: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0: Link high
5BA7: F0 04	BEQ $5BAD
5BA9: 86 3D	STX $3D 	; Textpointer: BASIC work point (chrget)
5BAB: 85 3E	STA $3E

5BAD: 60	RTS

; Real pass 1

5BAE: A9 01	LDA #$01
5BB0: 85 77	STA $77		; Pass down counter = 1
5BB2: AD 10 12	LDA $1210	; End of Basic, Bank 0
5BB5: AE 11 12	LDX $1211
5BB8: 85 3F	STA $3F		; Block move end pointer
5BBA: 86 40	STX $40
5BBC: 20 FB 5B	JSR $5BFB	; Renumber Scan, first pass
5BBF: C6 77	DEC $77
5BC1: 20 FB 5B	JSR $5BFB	; Renumber Scan, second pass


; Change all line numbers:
5BC4: 20 99 5D	JSR $5D99	; Scan Ahead, link high
5BC7: F0 2F	BEQ $5BF8       ; Exit with "Rechain lines" if end of text
5BC9: 20 9C 5D	JSR $5D9C       ; Scan ahead ($3D/$3E)++, Y=0, line number low
5BCC: 85 16	STA $16
5BCE: C8	INY		; Y=1
5BCF: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0 Offset 1, line number high
5BD2: 38	SEC
5BD3: E5 5D	SBC $5D		; compare high byte with old start line
5BD5: 90 19	BCC $5BF0
5BD7: D0 06	BNE $5BDF
5BD9: A5 16	LDA $16		; compare low byte with old start line
5BDB: E5 5C	SBC $5C
5BDD: 90 11	BCC $5BF0       ; Start found

5BDF: A5 64	LDA $64		; Set new line number high
5BE1: 91 3D	STA ($3D),Y	; Textpointer: BASIC work point (chrget)
5BE3: 88	DEY
5BE4: A5 65	LDA $65		; Set new line number low
5BE6: 91 3D	STA ($3D),Y	; Textpointer: BASIC work point (chrget)
5BE8: 20 9C 5D	JSR $5D9C       ; Scan ahead ($3D/$3E)++, Y=0, link low
5BEB: 20 80 5D	JSR $5D80       ; Add step to new line number ($65/$64), advance to end of line
5BEE: F0 D4	BEQ $5BC4       ; Branch always, looping line number change


5BF0: 20 9C 5D	JSR $5D9C       ; Scan ahead ($3D/$3E)++, Y=0, link low
5BF3: 20 83 5D	JSR $5D83       ; Read to end of line
5BF6: F0 CC	BEQ $5BC4       ; Branch always, Looping line number change

5BF8: 4C E5 5E	JMP $5EE5       ; Rechain lines

; Renumber Scan

5BFB: 20 54 52	JSR $5254	; Textptr to BASIC start minus 1

5BFE: 20 99 5D	JSR $5D99	; Skip 2 bytes
5C01: D0 03	BNE $5C06       ; Continue with scan
5C03: 4C 68 5D	JMP $5D68	; End of text -> Get Renumber Start

5C06: 20 9C 5D	JSR $5D9C       ; Scan ahead ($3D/$3E)++, Y=0, line number low
5C09: 85 4B	STA $4B
5C0B: 20 9C 5D	JSR $5D9C       ; Scan ahead ($3D/$3E)++, Y=0, line number high
5C0E: 85 4C	STA $4C

5C10: 20 9C 5D	JSR $5D9C       ; Scan ahead ($3D/$3E)++, Y=0, line text

5C13: C9 22	CMP #$22	; Quote, in string?
5C15: D0 0B	BNE $5C22

5C17: 20 9C 5D	JSR $5D9C       ; Scan ahead ($3D/$3E)++, Y=0, string byte
5C1A: F0 E2	BEQ $5BFE       ; End of text?
5C1C: C9 22	CMP #$22	; End of string?
5C1E: D0 F7	BNE $5C17       ; Continue in string
5C20: F0 EE	BEQ $5C10       ; End of string

5C22: AA	TAX		; BASIC text byte (not in string)
5C23: F0 D9	BEQ $5BFE       ; End of line, continue with next line
5C25: 10 E9	BPL $5C10       ; Not a token, continue scan
5C27: A2 08	LDX #$08	; Check for 8 tokens ...

5C29: DD EF 5A	CMP $5AEF,X     ; Check for line number command token
5C2C: F0 28	BEQ $5C56
5C2E: CA	DEX
5C2F: D0 F8	BNE $5C29       ; Check for next token in list
5C31: C9 CB	CMP #$CB	; GO token
5C33: D0 0B	BNE $5C40

5C35: 20 80 03	JSR $0380	; CHRGET
5C38: F0 C4	BEQ $5BFE       ; End of line, continue with next line
5C3A: C9 A4	CMP #$A4	; TO token
5C3C: F0 18	BEQ $5C56       ; Handle line number
5C3E: D0 D0	BNE $5C10       ; Loop through text

5C40: C9 FE	CMP #$FE	; Token extension prefix
5C42: D0 CC	BNE $5C10
5C44: 20 80 03	JSR $0380	; CHRGET
5C47: F0 EC	BEQ $5C35
5C49: C9 17	CMP #$17	; COLLISION command?
5C4B: D0 C3	BNE $5C10

5C4D: 20 80 03	JSR $0380	; CHRGET
5C50: F0 E3	BEQ $5C35       ; End of line
5C52: C9 2C	CMP #$2C	; search for ","
5C54: D0 F7	BNE $5C4D       ; No COLLISION with line number argument

; Renumber scan: handle line number

5C56: A5 3D	LDA $3D 	; Textpointer: BASIC work point (chrget)
5C58: 8D 00 12	STA $1200	; save current textptr to $1200/$1201
5C5B: A5 3E	LDA $3E
5C5D: 8D 01 12	STA $1201
5C60: 20 80 03	JSR $0380	; CHRGET, get line number digit
5C63: B0 AE	BCS $5C13       ; no digit, contine scan line text
5C65: 20 A0 50	JSR $50A0	; Get Fixed Pt Number: line number old
5C68: 20 19 5D	JSR $5D19	; Convert Line Number: to line number new
5C6B: AD 00 12	LDA $1200	; restore textptr (start of line number)
5C6E: 85 3D	STA $3D 	; Textpointer: BASIC work point (chrget)
5C70: AD 01 12	LDA $1201
5C73: 85 3E	STA $3E
5C75: 20 80 03	JSR $0380	; CHRGET
5C78: A5 3D	LDA $3D 	; Decrement Textpointer
5C7A: D0 02	BNE $5C7E
5C7C: C6 3E	DEC $3E

5C7E: C6 3D	DEC $3D 	; Textpointer: BASIC work point (chrget)
5C80: A2 FF	LDX #$FF
5C82: A5 77	LDA $77
5C84: F0 41	BEQ $5CC7       ; 2nd pass handler

; Scan during first pass:
5C86: 20 8E 7E	JSR $7E8E	; Patch for Renumber Scan: $5C8F+CHRGOT

5C89: C9 2C	CMP #$2C	; ","?
5C8B: F0 C9	BEQ $5C56       ; Handle next line number
5C8D: D0 84	BNE $5C13       ; Contine scan line text


5C8F: E8	INX
5C90: BD 01 01	LDA $0101,X	; New line number
5C93: F0 1F	BEQ $5CB4       ; End of new line number? new line number is shorter!
5C95: 20 80 03	JSR $0380	; CHRGET      ; Old line number digit
5C98: 90 F5	BCC $5C8F       ; Loop as long old and new number has a digit

; longer line number

5C9A: E6 3F	INC $3F		; Increment end of text pointer
5C9C: D0 02	BNE $5CA0
5C9E: E6 40	INC $40

5CA0: 38	SEC
5CA1: A5 3F	LDA $3F		; End of text greater or equal than
5CA3: ED 12 12	SBC $1212	; Basic Program Limit [FF00]?
5CA6: A5 40	LDA $40
5CA8: ED 13 12	SBC $1213
5CAB: B0 17	BCS $5CC4       ; Yes -> out of memory error!
5CAD: E8	INX		; Next byte in new line number
5CAE: BD 01 01	LDA $0101,X	; New line number digit
5CB1: D0 E7	BNE $5C9A       ; still longer, loop
5CB3: 60	RTS


; Shorter line number:
5CB4: 20 80 03	JSR $0380	; CHRGET      ; Get digit?
5CB7: B0 0A	BCS $5CC3       ; Exit loop if not a digit
5CB9: A5 3F	LDA $3F		; Decrement end of text pointer
5CBB: D0 02	BNE $5CBF
5CBD: C6 40	DEC $40

5CBF: C6 3F	DEC $3F
5CC1: 90 F1	BCC $5CB4        ; Branch always, next digit loop

5CC3: 60	RTS


5CC4: 4C 3A 4D	JMP $4D3A	; Print 'out of memory'

; Renumber scan: 2nd pass handler: fill in new line number including to adjust room for it

5CC7: E8	INX

5CC8: BD 01 01	LDA $0101,X	; New line number digit
5CCB: F0 2C	BEQ $5CF9       ; Shorter: move block down
5CCD: 48	PHA		; Save new number's digit
5CCE: 20 9C 5D	JSR $5D9C       ; Scan ahead ($3D/$3E)++, Y=0, line number digit
5CD1: C9 3A	CMP #$3A	; ":" -> block move
5CD3: B0 0C	BCS $5CE1
5CD5: C9 20	CMP #$20	; " " -> block move
5CD7: F0 08	BEQ $5CE1
5CD9: 38	SEC		; Check for digit ...
5CDA: E9 30	SBC #$30
5CDC: 38	SEC
5CDD: E9 D0	SBC #$D0
5CDF: 90 10	BCC $5CF1       ; Digit -> write new number into text

5CE1: 20 A7 5D	JSR $5DA7	; Set Up Block Move
5CE4: E6 6D	INC $6D		; Move up
5CE6: 20 DF 5D	JSR $5DDF	; Block Move Up
5CE9: EE 10 12	INC $1210	; Increment End of Basic, Bank 0, low byte
5CEC: D0 03	BNE $5CF1
5CEE: EE 11 12	INC $1211	; High byte

5CF1: 68	PLA		; New line number digit
5CF2: A0 00	LDY #$00
5CF4: 91 3D	STA ($3D),Y	; Write it to the BASIC text, overwrites old number
5CF6: E8	INX
5CF7: D0 CF	BNE $5CC8       ; Next digit of new line number

5CF9: 20 80 03	JSR $0380	; CHRGET, old line number digit
5CFC: B0 8B	BCS $5C89       ; No digit!

5CFE: 20 A7 5D	JSR $5DA7	; Set Up Block Move
5D01: C6 6D	DEC $6D		; Move down (new number is shorter)
5D03: 20 C6 5D	JSR $5DC6	; Block Move Down
5D06: AD 10 12	LDA $1210	; Decrement End of Basic, Bank 0
5D09: D0 03	BNE $5D0E
5D0B: CE 11 12	DEC $1211

5D0E: CE 10 12	DEC $1210	; End of Basic, Bank 0, low byte
5D11: 20 86 03	JSR $0386	; CHRGOT entry
5D14: 90 E8	BCC $5CFE       ; Still a digit, move block down
5D16: 4C 89 5C	JMP $5C89       ; Continue to scan text

; Convert Line Number (find jump destination line $16/$17)

5D19: 20 68 5D	JSR $5D68	; Get Renumber Start -> $65/$64


5D1C: 20 99 5D	JSR $5D99	; loop start: scan Ahead +2
5D1F: D0 0D	BNE $5D2E	; process line ...
5D21: A2 27	LDX #$27	; program end, line not found, error number into X
5D23: A5 4B	LDA $4B		; restore Basic text pointer
5D25: 85 3B	STA $3B
5D27: A5 4C	LDA $4C
5D29: 85 3C	STA $3C
5D2B: 4C 3C 4D	JMP $4D3C	; unresolved reference Error


5D2E: 20 9C 5D	JSR $5D9C	; program line number low
5D31: 85 5A	STA $5A
5D33: C5 16	CMP $16		; equal line searched for?
5D35: D0 27	BNE $5D5E	; fetch line number high and to next line
5D37: 20 9C 5D	JSR $5D9C	; scan ahead
5D3A: 85 5B	STA $5B		; program line number high
5D3C: C5 17	CMP $17		; equal line searched for?
5D3E: D0 23	BNE $5D63	; to next line

; Line number found, check if in new line number range:
5D40: 38	SEC		; destination line 
5D41: E5 5D	SBC $5D		; below old startline?
5D43: 90 08	BCC $5D4D	; below, no conversion needed
5D45: D0 0E	BNE $5D55	; greater, do conversion
5D47: A5 16	LDA $16
5D49: E5 5C	SBC $5C		; check low byte if high is same
5D4B: B0 08	BCS $5D55	; greater, do conversion

5D4D: A5 16	LDA $16		; in old line area, keep line number
5D4F: 85 65	STA $65		; (new line number overwritten with old one)
5D51: A5 17	LDA $17
5D53: 85 64	STA $64

; Convert line number $65/$64 to text into $0100

5D55: A2 90	LDX #$90	; float exponent ($90-$80= $10 = 2^16)
5D57: 38	SEC
5D58: 20 75 8C	JSR $8C75	; Fixed-Float (from $65/64)
5D5B: 4C 42 8E	JMP $8E42	; Float to ASCII (to $0100) and return


5D5E: 20 9C 5D	JSR $5D9C	; scan ahead
5D61: 85 5B	STA $5B		; basic text line number high

5D63: 20 75 5D	JSR $5D75	; Count Off Lines
5D66: F0 B4	BEQ $5D1C	; Branch always, next line

; Get Renumber Start

5D68: AD 70 11	LDA $1170	; Renumber start line low byte
5D6B: 85 65	STA $65
5D6D: AD 71 11	LDA $1171	; Renumber start line high byte
5D70: 85 64	STA $64
5D72: 4C 54 52	JMP $5254	; Textptr to BASIC start minus 1

; Count Off Lines

5D75: A5 5A	LDA $5A		; current line comparing
5D77: 38	SEC
5D78: E5 5C	SBC $5C		; to old startline ...
5D7A: A5 5B	LDA $5B
5D7C: E5 5D	SBC $5D
5D7E: 90 03	BCC $5D83       ; ... below (skip counting)

5D80: 20 89 5D	JSR $5D89	; add renumber increment to $65/$64

5D83: 20 9C 5D	JSR $5D9C	; read basic text byte
5D86: D0 FB	BNE $5D83	; until end of line
5D88: 60	RTS

; Add Renumber Increment

5D89: A5 65	LDA $65		; new line numbers counted up so far
5D8B: 18	CLC
5D8C: 6D 72 11	ADC $1172	; add step parameter
5D8F: 85 65	STA $65
5D91: A5 64	LDA $64
5D93: 6D 73 11	ADC $1173
5D96: 85 64	STA $64
5D98: 60	RTS

; Scan Ahead 2 Bytes

5D99: 20 9C 5D	JSR $5D9C	; scan ahead 2 bytes in basic text

 ; Scan Ahead 1 Byte

5D9C: A0 00	LDY #$00	; scan ahead one byte in basic text
5D9E: E6 3D	INC $3D 	; Textpointer: BASIC work point (chrget)
5DA0: D0 02	BNE $5DA4
5DA2: E6 3E	INC $3E		; pre-increment

5DA4: 4C C9 03	JMP $03C9	; Txtptr Fetch From RAM Bank 0

; Set Up Block Move

5DA7: A5 3D	LDA $3D 	; Textpointer: BASIC work point (chrget)
5DA9: 85 24	STA $24
5DAB: A5 3E	LDA $3E
5DAD: 85 25	STA $25
5DAF: AD 10 12	LDA $1210	; End of Basic, Bank 0
5DB2: 85 26	STA $26
5DB4: AD 11 12	LDA $1211
5DB7: 85 27	STA $27
5DB9: A0 00	LDY #$00
5DBB: 84 0D	STY $0D
5DBD: 84 6D	STY $6D
5DBF: 60	RTS

5DC0: E6 24	INC $24
5DC2: D0 02	BNE $5DC6	; Block Move Down
5DC4: E6 25	INC $25

; Block Move Down

5DC6: A4 0D	LDY $0D
5DC8: C8	INY
5DC9: 20 05 43	JSR $4305	; Get From ($24) Bank0
5DCC: A4 6D	LDY $6D
5DCE: C8	INY
5DCF: 91 24	STA ($24),Y
5DD1: 20 EE 5D	JSR $5DEE	; Check Block Limit
5DD4: D0 EA	BNE $5DC0
5DD6: 60	RTS

5DD7: A5 26	LDA $26
5DD9: D0 02	BNE $5DDD
5DDB: C6 27	DEC $27

5DDD: C6 26	DEC $26

; Block Move Up

5DDF: A4 0D	LDY $0D
5DE1: 20 C0 03	JSR $03C0	; Index2 Indirect Fetch From RAM Bank 0
5DE4: A4 6D	LDY $6D
5DE6: 91 26	STA ($26),Y
5DE8: 20 EE 5D	JSR $5DEE	; Check Block Limit
5DEB: D0 EA	BNE $5DD7
5DED: 60	RTS

; Check Block Limit

5DEE: A5 24	LDA $24
5DF0: C5 26	CMP $26
5DF2: D0 04	BNE $5DF8
5DF4: A5 25	LDA $25
5DF6: C5 27	CMP $27

5DF8: 60	RTS

; Perform [for]

5DF9: A9 80	LDA #$80
5DFB: 85 12	STA $12
5DFD: 20 C6 53	JSR $53C6	; Perform [let]
5E00: A9 81	LDA #$81
5E02: 20 AA 4F	JSR $4FAA	; Search B-Stack For Match
5E05: F0 08	BEQ $5E0F
5E07: A9 12	LDA #$12
5E09: 20 FE 4F	JSR $4FFE	; Move B-Stack Down
5E0C: 20 47 50	JSR $5047	; Copy B-Stack Pointer

5E0F: 20 50 50	JSR $5050	; Set B-Stack Pointer
5E12: 20 A2 52	JSR $52A2	; Scan To Next Statement
5E15: 98	TYA
5E16: A0 11	LDY #$11
5E18: 18	CLC
5E19: 65 3D	ADC $3D 	; Textpointer: BASIC work point (chrget)
5E1B: 91 7D	STA ($7D),Y
5E1D: A5 3E	LDA $3E
5E1F: 69 00	ADC #$00
5E21: 88	DEY
5E22: 91 7D	STA ($7D),Y
5E24: A5 3C	LDA $3C
5E26: 88	DEY
5E27: 91 7D	STA ($7D),Y
5E29: A5 3B	LDA $3B
5E2B: 88	DEY
5E2C: 91 7D	STA ($7D),Y
5E2E: A9 A4	LDA #$A4
5E30: 20 5E 79	JSR $795E
5E33: 20 DA 77	JSR $77DA	; Confirm Numeric
5E36: 20 D7 77	JSR $77D7	; Type Match Check
5E39: A5 68	LDA $68
5E3B: 09 7F	ORA #$7F
5E3D: 25 64	AND $64
5E3F: 85 64	STA $64
5E41: A2 04	LDX #$04
5E43: A0 0D	LDY #$0D

5E45: B5 63	LDA $63,X
5E47: 91 7D	STA ($7D),Y
5E49: CA	DEX
5E4A: 88	DEY
5E4B: 10 F8	BPL $5E45
5E4D: A9 9C	LDA #$9C
5E4F: A0 89	LDY #$89
5E51: 20 D4 8B	JSR $8BD4	; Unpack ROM to FAC#1
5E54: 20 86 03	JSR $0386	; CHRGOT entry
5E57: C9 A9	CMP #$A9
5E59: D0 06	BNE $5E61
5E5B: 20 80 03	JSR $0380	; CHRGET
5E5E: 20 D7 77	JSR $77D7	; Type Match Check

5E61: 20 57 8C	JSR $8C57	; Get Sign
5E64: 48	PHA
5E65: 20 47 8C	JSR $8C47	; Round FAC#1
5E68: 68	PLA
5E69: A0 08	LDY #$08
5E6B: A2 05	LDX #$05

5E6D: 91 7D	STA ($7D),Y
5E6F: B5 62	LDA $62,X
5E71: 88	DEY
5E72: CA	DEX
5E73: 10 F8	BPL $5E6D
5E75: A5 4C	LDA $4C
5E77: 91 7D	STA ($7D),Y
5E79: A5 4B	LDA $4B
5E7B: 88	DEY
5E7C: 91 7D	STA ($7D),Y
5E7E: A9 81	LDA #$81
5E80: 88	DEY
5E81: 91 7D	STA ($7D),Y
5E83: 60	RTS

5E84: 4C 6C 79	JMP $796C	; Syntax Error

; Perform [delete]

5E87: 20 F0 84	JSR $84F0	; Check Direct
5E8A: 20 86 03	JSR $0386	; CHRGOT entry
5E8D: F0 F5	BEQ $5E84
5E8F: 20 FB 5E	JSR $5EFB	; Get Line Number Range
5E92: A5 61	LDA $61
5E94: A6 62	LDX $62
5E96: 85 26	STA $26
5E98: 86 27	STX $27
5E9A: 20 64 50	JSR $5064	; Find Basic Line
5E9D: 90 15	BCC $5EB4
5E9F: A0 01	LDY #$01
5EA1: 20 EC 42	JSR $42EC	; Get From ($61) Bank0
5EA4: 88	DEY
5EA5: AA	TAX
5EA6: D0 05	BNE $5EAD
5EA8: 20 EC 42	JSR $42EC	; Get From ($61) Bank0
5EAB: F0 07	BEQ $5EB4

5EAD: 20 EC 42	JSR $42EC	; Get From ($61) Bank0
5EB0: 85 61	STA $61
5EB2: 86 62	STX $62

5EB4: A5 26	LDA $26
5EB6: 38	SEC
5EB7: E5 61	SBC $61
5EB9: AA	TAX
5EBA: A5 27	LDA $27
5EBC: E5 62	SBC $62
5EBE: A8	TAY
5EBF: B0 24	BCS $5EE5
5EC1: 8A	TXA
5EC2: 18	CLC
5EC3: 6D 10 12	ADC $1210	; End of Basic, Bank 0
5EC6: 8D 10 12	STA $1210	; End of Basic, Bank 0
5EC9: 98	TYA
5ECA: 6D 11 12	ADC $1211
5ECD: 8D 11 12	STA $1211
5ED0: A0 00	LDY #$00

5ED2: 20 EC 42	JSR $42EC	; Get From ($61) Bank0
5ED5: 91 26	STA ($26),Y
5ED7: E6 61	INC $61
5ED9: D0 02	BNE $5EDD
5EDB: E6 62	INC $62

5EDD: 20 94 7E	JSR $7E94	; Patch for [delete]
5EE0: 90 F0	BCC $5ED2
5EE2: EA	NOP
5EE3: EA	NOP
5EE4: EA	NOP

5EE5: 20 4F 4F	JSR $4F4F	; Rechain Lines
5EE8: A5 24	LDA $24
5EEA: A6 25	LDX $25
5EEC: 18	CLC
5EED: 69 02	ADC #$02
5EEF: 8D 10 12	STA $1210	; End of Basic, Bank 0
5EF2: 90 01	BCC $5EF5
5EF4: E8	INX

5EF5: 8E 11 12	STX $1211
5EF8: 60	RTS

; Unused

5EF9: 00 00                  	; '{0}{0}'

; Get Line Number Range

5EFB: F0 12	BEQ $5F0F
5EFD: 90 10	BCC $5F0F
5EFF: C9 AB	CMP #$AB
5F01: D0 2E	BNE $5F31
5F03: A0 01	LDY #$01
5F05: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0
5F08: F0 27	BEQ $5F31
5F0A: C9 3A	CMP #$3A
5F0C: F0 23	BEQ $5F31
5F0E: 38	SEC

5F0F: 20 A0 50	JSR $50A0	; Get Fixed Pt Number
5F12: 20 64 50	JSR $5064	; Find Basic Line
5F15: 20 86 03	JSR $0386	; CHRGOT entry
5F18: F0 0C	BEQ $5F26
5F1A: C9 AB	CMP #$AB
5F1C: D0 13	BNE $5F31
5F1E: 20 80 03	JSR $0380	; CHRGET
5F21: 20 A0 50	JSR $50A0	; Get Fixed Pt Number
5F24: D0 0B	BNE $5F31

5F26: A5 0A	LDA $0A
5F28: D0 06	BNE $5F30
5F2A: A9 FF	LDA #$FF
5F2C: 85 16	STA $16
5F2E: 85 17	STA $17

5F30: 60	RTS

5F31: 4C 6C 79	JMP $796C	; Syntax Error

; Perform [pudef]

5F34: 20 7B 87	JSR $877B	; Evaluate String
5F37: A8	TAY
5F38: 88	DEY
5F39: C0 04	CPY #$04
5F3B: 90 03	BCC $5F40
5F3D: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

5F40: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
5F43: 8D 03 FF	STA $FF03
5F46: 99 04 12	STA $1204,Y
5F49: 88	DEY
5F4A: 10 F4	BPL $5F40
5F4C: 60	RTS

; Perform [trap]

5F4D: 20 D9 84	JSR $84D9	; Check Direct
5F50: 20 86 03	JSR $0386	; CHRGOT entry
5F53: F0 07	BEQ $5F5C
5F55: 20 12 88	JSR $8812	; -Input Float/Fixed Value
5F58: 8C 0B 12	STY $120B
5F5B: 2C	.BYTE $2C

5F5C: A9 FF	LDA #$FF
5F5E: 8D 0C 12	STA $120C
5F61: 60	RTS

; Perform [resume]

5F62: 20 D9 84	JSR $84D9	; Check Direct
5F65: AE 0A 12	LDX $120A
5F68: E8	INX
5F69: F0 70	BEQ $5FDB	; Print 'can't resume'
5F6B: 20 86 03	JSR $0386	; CHRGOT entry
5F6E: F0 47	BEQ $5FB7	; Reinstate Trap Point
5F70: 90 3A	BCC $5FAC
5F72: C9 82	CMP #$82
5F74: D0 62	BNE $5FD8	; Syntax Exit
5F76: 20 B7 5F	JSR $5FB7	; Reinstate Trap Point
5F79: A0 00	LDY #$00
5F7B: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0
5F7E: D0 26	BNE $5FA6
5F80: C8	INY
5F81: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0
5F84: D0 09	BNE $5F8F
5F86: C8	INY
5F87: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0
5F8A: D0 03	BNE $5F8F
5F8C: 4C 37 4D	JMP $4D37	; Error or Ready

5F8F: A0 03	LDY #$03
5F91: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0
5F94: 85 3B	STA $3B
5F96: C8	INY
5F97: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0
5F9A: 85 3C	STA $3C
5F9C: 98	TYA
5F9D: 18	CLC
5F9E: 65 3D	ADC $3D 	; Textpointer: BASIC work point (chrget)
5FA0: 85 3D	STA $3D 	; Textpointer: BASIC work point (chrget)
5FA2: 90 02	BCC $5FA6
5FA4: E6 3E	INC $3E

5FA6: 20 80 03	JSR $0380	; CHRGET
5FA9: 4C 8F 52	JMP $528F	; Perform [data/bend]

5FAC: 20 12 88	JSR $8812	; -Input Float/Fixed Value
5FAF: 85 17	STA $17
5FB1: 20 C6 5F	JSR $5FC6
5FB4: 4C FB 59	JMP $59FB

; Reinstate Trap Point

5FB7: A2 01	LDX #$01

5FB9: BD 09 12	LDA $1209,X
5FBC: 95 3B	STA $3B,X
5FBE: BD 0E 12	LDA $120E,X
5FC1: 95 3D	STA $3D,X	; Textpointer: BASIC work point (chrget)
5FC3: CA	DEX
5FC4: 10 F3	BPL $5FB9

5FC6: A2 FF	LDX #$FF
5FC8: 8E 08 12	STX $1208
5FCB: 8E 09 12	STX $1209
5FCE: 8E 0A 12	STX $120A
5FD1: AE 0D 12	LDX $120D
5FD4: 8E 0C 12	STX $120C
5FD7: 60	RTS

; Syntax Exit

5FD8: 4C 6C 79	JMP $796C	; Syntax Error

; Print 'can't resume'

5FDB: A2 1F	LDX #$1F
5FDD: 4C 3C 4D	JMP $4D3C	; Error

; Perform [do]

5FE0: A0 01	LDY #$01

5FE2: B9 3D 00	LDA $3D,Y	; Textpointer: BASIC work point (chrget)
5FE5: 99 14 12	STA $1214,Y
5FE8: B9 3B 00	LDA $3B,Y
5FEB: 99 16 12	STA $1216,Y
5FEE: 88	DEY
5FEF: 10 F1	BPL $5FE2
5FF1: 20 86 03	JSR $0386	; CHRGOT entry
5FF4: F0 1C	BEQ $6012
5FF6: C9 FC	CMP #$FC
5FF8: F0 11	BEQ $600B
5FFA: C9 FD	CMP #$FD
5FFC: D0 43	BNE $6041
5FFE: 20 DB 60	JSR $60DB	; Eval While/Until Argument
6001: A5 63	LDA $63
6003: D0 0D	BNE $6012

6005: 20 86 03	JSR $0386	; CHRGOT entry
6008: 4C 47 60	JMP $6047

600B: 20 DB 60	JSR $60DB	; Eval While/Until Argument
600E: A5 63	LDA $63
6010: D0 F3	BNE $6005

6012: A9 05	LDA #$05
6014: 20 FE 4F	JSR $4FFE	; Move B-Stack Down
6017: 8D 03 FF	STA $FF03
601A: A0 04	LDY #$04
601C: AD 15 12	LDA $1215
601F: 91 7D	STA ($7D),Y
6021: 88	DEY
6022: AD 14 12	LDA $1214
6025: 91 7D	STA ($7D),Y
6027: 88	DEY
6028: AD 17 12	LDA $1217
602B: 91 7D	STA ($7D),Y
602D: 88	DEY
602E: AD 16 12	LDA $1216
6031: 91 7D	STA ($7D),Y
6033: 88	DEY
6034: A9 EB	LDA #$EB
6036: 91 7D	STA ($7D),Y
6038: 60	RTS

; Perform [exit]

6039: 20 9B 60	JSR $609B
603C: 20 86 03	JSR $0386	; CHRGOT entry
603F: F0 06	BEQ $6047

6041: 4C 6C 79	JMP $796C	; Syntax Error

6044: 20 80 03	JSR $0380	; CHRGET

6047: F0 17	BEQ $6060
6049: C9 EC	CMP #$EC
604B: F0 3A	BEQ $6087
604D: C9 22	CMP #$22
604F: F0 0A	BEQ $605B
6051: C9 EB	CMP #$EB
6053: D0 EF	BNE $6044
6055: 20 44 60	JSR $6044
6058: 4C 05 60	JMP $6005

605B: 20 7C 53	JSR $537C	; Skip String Constant
605E: D0 E4	BNE $6044

6060: C9 3A	CMP #$3A
6062: F0 E0	BEQ $6044
6064: 24 7F	BIT $7F
6066: 10 42	BPL $60AA
6068: A0 02	LDY #$02
606A: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0
606D: F0 3B	BEQ $60AA
606F: C8	INY
6070: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0
6073: 85 3B	STA $3B
6075: C8	INY
6076: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0
6079: 85 3C	STA $3C
607B: 98	TYA
607C: 18	CLC
607D: 65 3D	ADC $3D 	; Textpointer: BASIC work point (chrget)
607F: 85 3D	STA $3D 	; Textpointer: BASIC work point (chrget)
6081: 90 C1	BCC $6044
6083: E6 3E	INC $3E
6085: D0 BD	BNE $6044

6087: 4C 8F 52	JMP $528F	; Perform [data/bend]

; Perform [loop]

608A: F0 35	BEQ $60C1
608C: C9 FD	CMP #$FD
608E: F0 2C	BEQ $60BC
6090: C9 FC	CMP #$FC
6092: D0 AD	BNE $6041
6094: 20 DB 60	JSR $60DB	; Eval While/Until Argument
6097: A5 63	LDA $63
6099: F0 26	BEQ $60C1

609B: A9 EB	LDA #$EB
609D: 20 AA 4F	JSR $4FAA	; Search B-Stack For Match
60A0: D0 15	BNE $60B7	; Print 'loop without do'
60A2: 20 50 50	JSR $5050	; Set B-Stack Pointer
60A5: A0 05	LDY #$05
60A7: 4C 59 50	JMP $5059	; Move B-Stack Up

60AA: AD 16 12	LDA $1216
60AD: AE 17 12	LDX $1217
60B0: 85 3B	STA $3B
60B2: 86 3C	STX $3C

; Print 'loop not found'

60B4: A2 20	LDX #$20
60B6: 2C	.BYTE $2C

; Print 'loop without do'

60B7: A2 21	LDX #$21
60B9: 4C 3C 4D	JMP $4D3C	; Error

60BC: 20 DB 60	JSR $60DB	; Eval While/Until Argument
60BF: F0 DA	BEQ $609B

60C1: 20 9B 60	JSR $609B
60C4: 88	DEY
60C5: B1 3F	LDA ($3F),Y
60C7: 85 3E	STA $3E
60C9: 88	DEY
60CA: B1 3F	LDA ($3F),Y
60CC: 85 3D	STA $3D 	; Textpointer: BASIC work point (chrget)
60CE: 88	DEY
60CF: B1 3F	LDA ($3F),Y
60D1: 20 3B A8	JSR $A83B	; ?
60D4: B1 3F	LDA ($3F),Y
60D6: 85 3B	STA $3B
60D8: 4C E0 5F	JMP $5FE0	; Perform [do]

; Eval While/Until Argument

60DB: 20 80 03	JSR $0380	; CHRGET
60DE: 4C EF 77	JMP $77EF	; Evaluate Expression

; Define Programmed Key

60E1: 20 F4 87	JSR $87F4	; -Eval Byte Parameter
60E4: CA	DEX
60E5: E0 08	CPX #$08
60E7: 90 03	BCC $60EC
60E9: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

60EC: 86 77	STX $77
60EE: 20 5C 79	JSR $795C	; -Check Comma
60F1: 20 7B 87	JSR $877B	; Evaluate String
60F4: A8	TAY
60F5: A9 01	LDA #$01
60F7: 85 26	STA $26
60F9: A9 24	LDA #$24
60FB: A6 77	LDX $77
60FD: E8	INX
60FE: 20 45 A8	JSR $A845	; Set Bank 15
6101: 20 65 FF	JSR $FF65	; pfkey         Prog Function Key
6104: B0 01	BCS $6107
6106: 60	RTS

6107: 4C 3A 4D	JMP $4D3A	; Print 'out of memory'

; Perform [key]

610A: F0 15	BEQ $6121
610C: C9 91	CMP #$91
610E: F0 0E	BEQ $611E
6110: C9 FE	CMP #$FE
6112: D0 CD	BNE $60E1	; Define Programmed Key
6114: 20 80 03	JSR $0380	; CHRGET
6117: C9 24	CMP #$24
6119: F0 03	BEQ $611E
611B: 4C 6C 79	JMP $796C	; Syntax Error

611E: 4C 46 48	JMP $4846	; Unimplemented Commands

6121: A2 00	LDX #$00
6123: A0 00	LDY #$00

6125: E8	INX
6126: BD FF 0F	LDA $0FFF,X
6129: F0 53	BEQ $617E
612B: 85 78	STA $78
612D: 86 77	STX $77
612F: A2 05	LDX #$05

6131: BD 2A A8	LDA $A82A,X	; 'key 0,'
6134: CA	DEX
6135: D0 02	BNE $6139
6137: 05 77	ORA $77

6139: 20 69 92	JSR $9269	; Call 'chrout'
613C: 8A	TXA
613D: 10 F2	BPL $6131
613F: A2 07	LDX #$07

6141: B9 0A 10	LDA $100A,Y
6144: C8	INY
6145: 48	PHA
6146: 86 79	STX $79
6148: A2 04	LDX #$04

614A: DD A3 61	CMP $61A3,X
614D: F0 34	BEQ $6183
614F: CA	DEX
6150: D0 F8	BNE $614A
6152: A6 79	LDX $79
6154: E0 08	CPX #$08
6156: 90 07	BCC $615F
6158: D0 0A	BNE $6164
615A: A9 2B	LDA #$2B
615C: 20 69 92	JSR $9269	; Call 'chrout'

615F: A9 22	LDA #$22
6161: 20 69 92	JSR $9269	; Call 'chrout'

6164: 68	PLA
6165: 20 69 92	JSR $9269	; Call 'chrout'
6168: A2 09	LDX #$09

616A: C6 78	DEC $78
616C: D0 D3	BNE $6141
616E: E0 09	CPX #$09
6170: 90 05	BCC $6177
6172: A9 22	LDA #$22
6174: 20 69 92	JSR $9269	; Call 'chrout'

6177: A9 8D	LDA #$8D
6179: 20 69 92	JSR $9269	; Call 'chrout'
617C: A6 77	LDX $77

617E: E0 08	CPX #$08
6180: D0 A3	BNE $6125
6182: 60	RTS

6183: A6 79	LDX $79

6185: BD 9A 61	LDA $619A,X
6188: 20 69 92	JSR $9269	; Call 'chrout'
618B: CA	DEX
618C: E0 03	CPX #$03
618E: B0 F5	BCS $6185
6190: 68	PLA
6191: 20 30 A8	JSR $A830	; ?
6194: A9 29	LDA #$29
6196: 20 69 92	JSR $9269	; Call 'chrout'
6199: A2 08	LDX #$08
619B: D0 CD	BNE $616A

; '+chr$('

619D: 28 24 52 48 43 2B      	; '($rhc+'

61A3: 22 0D 8D 22 1B         	; '"{CR}{SHCR}"{ESC}'

; Perform [paint]

61A8: 20 2F 9E	JSR $9E2F	; Parse Graphics Command
61AB: A2 04	LDX #$04
61AD: 20 52 9E	JSR $9E52
61B0: 20 F2 9D	JSR $9DF2	; Restore Pixel Cursor
61B3: 20 1C 9E	JSR $9E1C	; Input Optional Byte Parameter   -Check Byte Parameter in List
61B6: E0 02	CPX #$02
61B8: 90 03	BCC $61BD
61BA: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

61BD: 8A	TXA
61BE: 4A	LSR A
61BF: 6A	ROR A
61C0: 85 8B	STA $8B
61C2: 10 04	BPL $61C8
61C4: A5 83	LDA $83
61C6: F0 07	BEQ $61CF

61C8: 20 49 9C	JSR $9C49	; Examine Pixel
61CB: B0 02	BCS $61CF
61CD: D0 01	BNE $61D0

61CF: 60	RTS

61D0: 20 EA 92	JSR $92EA	; Garbage Collection
61D3: 8D 03 FF	STA $FF03
61D6: A5 33	LDA $33
61D8: 85 24	STA $24
61DA: A5 34	LDA $34
61DC: 85 25	STA $25
61DE: 38	SEC
61DF: A5 35	LDA $35
61E1: E9 03	SBC #$03
61E3: 85 1B	STA $1B
61E5: A5 36	LDA $36
61E7: E9 00	SBC #$00
61E9: 85 1C	STA $1C

61EB: A2 00	LDX #$00
61ED: 86 63	STX $63
61EF: 86 64	STX $64

61F1: AE 33 11	LDX $1133
61F4: D0 03	BNE $61F9
61F6: CE 34 11	DEC $1134

61F9: CE 33 11	DEC $1133
61FC: 20 49 9C	JSR $9C49	; Examine Pixel
61FF: B0 02	BCS $6203
6201: D0 EE	BNE $61F1

6203: EE 33 11	INC $1133
6206: D0 03	BNE $620B
6208: EE 34 11	INC $1134

620B: 20 19 9C	JSR $9C19
620E: AE 31 11	LDX $1131
6211: D0 03	BNE $6216
6213: CE 32 11	DEC $1132

6216: CE 31 11	DEC $1131
6219: A5 63	LDA $63
621B: 20 7C 62	JSR $627C	; Check Painting Split
621E: 85 63	STA $63
6220: 18	CLC
6221: AD 31 11	LDA $1131
6224: 69 02	ADC #$02
6226: 8D 31 11	STA $1131
6229: 90 03	BCC $622E
622B: EE 32 11	INC $1132

622E: A5 64	LDA $64
6230: 20 7C 62	JSR $627C	; Check Painting Split
6233: 85 64	STA $64
6235: AE 31 11	LDX $1131
6238: D0 03	BNE $623D
623A: CE 32 11	DEC $1132

623D: CE 31 11	DEC $1131
6240: EE 33 11	INC $1133
6243: D0 03	BNE $6248
6245: EE 34 11	INC $1134

6248: 20 49 9C	JSR $9C49	; Examine Pixel
624B: B0 02	BCS $624F
624D: D0 BC	BNE $620B

624F: A2 03	LDX #$03
6251: A0 00	LDY #$00
6253: A5 25	LDA $25
6255: C5 34	CMP $34
6257: D0 06	BNE $625F
6259: A5 24	LDA $24
625B: C5 33	CMP $33
625D: F0 1A	BEQ $6279

625F: A5 24	LDA $24
6261: D0 02	BNE $6265
6263: C6 25	DEC $25

6265: C6 24	DEC $24
6267: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
626A: 8D 03 FF	STA $FF03
626D: 9D 31 11	STA $1131,X
6270: CA	DEX
6271: 10 EC	BPL $625F
6273: 20 B5 4B	JSR $4BB5	; ?
6276: 4C EB 61	JMP $61EB

6279: 4C F2 9D	JMP $9DF2	; Restore Pixel Cursor

; Check Painting Split

627C: 48	PHA
627D: 20 49 9C	JSR $9C49	; Examine Pixel
6280: B0 18	BCS $629A
6282: F0 16	BEQ $629A
6284: 68	PLA
6285: D0 16	BNE $629D
6287: AA	TAX
6288: A8	TAY
6289: A5 25	LDA $25
628B: C5 1C	CMP $1C
628D: 90 0F	BCC $629E
628F: D0 06	BNE $6297
6291: A5 24	LDA $24
6293: C5 1B	CMP $1B
6295: 90 07	BCC $629E

6297: 4C 3A 4D	JMP $4D3A	; Print 'out of memory'

629A: 68	PLA
629B: A9 00	LDA #$00

629D: 60	RTS

629E: BD 31 11	LDA $1131,X
62A1: 8D 04 FF	STA $FF04
62A4: 91 24	STA ($24),Y
62A6: 8D 03 FF	STA $FF03
62A9: E6 24	INC $24
62AB: D0 02	BNE $62AF
62AD: E6 25	INC $25

62AF: E8	INX
62B0: E0 04	CPX #$04
62B2: D0 EA	BNE $629E
62B4: A9 80	LDA #$80
62B6: 60	RTS

; Perform [box]

62B7: 20 2F 9E	JSR $9E2F	; Parse Graphics Command
62BA: A2 1F	LDX #$1F
62BC: 20 6D 9E	JSR $9E6D
62BF: A2 2B	LDX #$2B
62C1: 20 52 9E	JSR $9E52
62C4: 20 06 9E	JSR $9E06	; Check Optional Float/Fixed Parameter
62C7: 8C 54 11	STY $1154
62CA: 8D 55 11	STA $1155
62CD: 20 1C 9E	JSR $9E1C	; Input Optional Byte Parameter   -Check Byte Parameter in List
62D0: E0 02	CPX #$02
62D2: 90 03	BCC $62D7
62D4: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

62D7: 8E 6C 11	STX $116C	; Box Fill Flag
62DA: 8A	TXA
62DB: 48	PHA
62DC: 20 89 63	JSR $6389
62DF: 68	PLA
62E0: D0 1C	BNE $62FE
62E2: F0 03	BEQ $62E7

62E4: 20 0B 64	JSR $640B	; ?

62E7: 20 30 9B	JSR $9B30	; Draw Line
62EA: AD 4E 11	LDA $114E
62ED: D0 F5	BNE $62E4

62EF: A2 04	LDX #$04

62F1: BD 5B 11	LDA $115B,X
62F4: 9D 30 11	STA $1130,X
62F7: CA	DEX
62F8: D0 F7	BNE $62F1
62FA: 8E 6C 11	STX $116C	; Box Fill Flag
62FD: 60	RTS

62FE: A2 00	LDX #$00
6300: AD 49 11	LDA $1149
6303: 4A	LSR A
6304: 90 02	BCC $6308
6306: A2 02	LDX #$02

6308: BD 60 11	LDA $1160,X
630B: 8D 5A 11	STA $115A
630E: BD 61 11	LDA $1161,X
6311: 8D 5B 11	STA $115B
6314: A9 00	LDA #$00
6316: A2 03	LDX #$03

6318: 9D 56 11	STA $1156,X
631B: CA	DEX
631C: 10 FA	BPL $6318

631E: A2 07	LDX #$07

6320: BD 31 11	LDA $1131,X
6323: 48	PHA
6324: CA	DEX
6325: 10 F9	BPL $6320
6327: 20 30 9B	JSR $9B30	; Draw Line
632A: A2 00	LDX #$00

632C: 68	PLA
632D: 9D 31 11	STA $1131,X
6330: E8	INX
6331: E0 08	CPX #$08
6333: D0 F7	BNE $632C

6335: AD 5A 11	LDA $115A
6338: D0 05	BNE $633F
633A: CE 5B 11	DEC $115B
633D: 30 B0	BMI $62EF

633F: CE 5A 11	DEC $115A
6342: A2 25	LDX #$25
6344: A0 1B	LDY #$1B
6346: AD 49 11	LDA $1149
6349: 4A	LSR A
634A: 90 02	BCC $634E
634C: A0 19	LDY #$19

634E: A9 00	LDA #$00

6350: 4A	LSR A
6351: 48	PHA
6352: 20 6D 9D	JSR $9D6D	; Add Graphics Coordinate
6355: 9D 31 11	STA $1131,X
6358: 98	TYA
6359: 9D 32 11	STA $1132,X
635C: 68	PLA
635D: 90 02	BCC $6361
635F: 09 A0	ORA #$A0

6361: E8	INX
6362: E8	INX
6363: A0 19	LDY #$19
6365: 4E 49 11	LSR $1149
6368: 90 02	BCC $636C
636A: A0 1B	LDY #$1B

636C: 2E 49 11	ROL $1149
636F: E0 27	CPX #$27
6371: F0 DD	BEQ $6350
6373: A2 06	LDX #$06
6375: 0A	ASL A
6376: F0 BD	BEQ $6335

6378: 90 08	BCC $6382
637A: FE 31 11	INC $1131,X
637D: D0 03	BNE $6382
637F: FE 32 11	INC $1132,X

6382: 0A	ASL A
6383: CA	DEX
6384: CA	DEX
6385: 10 F1	BPL $6378
6387: 30 95	BMI $631E

6389: A0 23	LDY #$23
638B: 20 74 9A	JSR $9A74	; ?
638E: A2 1F	LDX #$1F
6390: A0 2B	LDY #$2B

6392: 98	TYA
6393: 48	PHA
6394: 20 99 9D	JSR $9D99	; ?
6397: 9D 35 11	STA $1135,X
639A: 9D 39 11	STA $1139,X
639D: 9D 41 11	STA $1141,X
63A0: 98	TYA
63A1: 9D 36 11	STA $1136,X
63A4: 9D 3A 11	STA $113A,X
63A7: 9D 42 11	STA $1142,X
63AA: 68	PLA
63AB: A8	TAY
63AC: 20 6D 9D	JSR $9D6D	; Add Graphics Coordinate
63AF: 9D 31 11	STA $1131,X
63B2: 98	TYA
63B3: 9D 32 11	STA $1132,X
63B6: A0 2D	LDY #$2D
63B8: E8	INX
63B9: E8	INX
63BA: E0 21	CPX #$21
63BC: F0 D4	BEQ $6392
63BE: A9 90	LDA #$90
63C0: 20 F3 9A	JSR $9AF3	; ?
63C3: AD 49 11	LDA $1149
63C6: 29 03	AND #$03
63C8: 8D 49 11	STA $1149
63CB: AA	TAX
63CC: BD ED 63	LDA $63ED,X	; ?
63CF: 20 0B 64	JSR $640B	; ?
63D2: 20 F2 9D	JSR $9DF2	; Restore Pixel Cursor
63D5: AD 4E 11	LDA $114E
63D8: 20 0B 64	JSR $640B	; ?
63DB: AE 49 11	LDX $1149
63DE: BD ED 63	LDA $63ED,X	; ?
63E1: 29 F0	AND #$F0
63E3: 8D 4F 11	STA $114F
63E6: BD F1 63	LDA $63F1,X
63E9: 8D 4E 11	STA $114E
63EC: 60	RTS

; ?

63ED: BE E4 41 1B            	; '..a{ESC}'

63F1: 41 1B BE E4            	; 'a{ESC}..'

; Authors

63F5: 46 52 45 44 20 42 0D 54	; 'fred b{CR}t'
63FD: 45 52 52 59 20 52 0D 4D	; 'erry r{CR}m'
6405: 49 4B 45 20 49 0D      	; 'ike i{CR}'

; ?

640B: 20 67 67	JSR $6767
640E: A2 04	LDX #$04

6410: BD 32 11	LDA $1132,X
6413: 0A	ASL A
6414: 7E 32 11	ROR $1132,X
6417: 7E 31 11	ROR $1131,X
641A: 90 08	BCC $6424
641C: FE 31 11	INC $1131,X
641F: D0 03	BNE $6424
6421: FE 32 11	INC $1132,X

6424: E8	INX
6425: E8	INX
6426: E0 06	CPX #$06
6428: F0 E6	BEQ $6410
642A: 60	RTS

; Perform [sshape]

642B: 20 74 A0	JSR $A074
642E: 20 AF 7A	JSR $7AAF	; Locate Variable
6431: 8D 03 FF	STA $FF03
6434: 8D 5F 11	STA $115F
6437: 8C 60 11	STY $1160
643A: 24 0F	BIT $0F
643C: 30 03	BMI $6441
643E: 4C E7 77	JMP $77E7	; Print 'type mismatch'

6441: A2 28	LDX #$28
6443: 20 6D 9E	JSR $9E6D
6446: A2 04	LDX #$04
6448: 20 52 9E	JSR $9E52
644B: A2 2A	LDX #$2A
644D: A0 06	LDY #$06
644F: A9 02	LDA #$02
6451: 85 8E	STA $8E

6453: 20 99 9D	JSR $9D99	; ?
6456: AA	TAX
6457: 98	TYA
6458: 48	PHA
6459: A4 8E	LDY $8E
645B: 20 F9 9D	JSR $9DF9
645E: 90 0C	BCC $646C
6460: B9 59 11	LDA $1159,Y
6463: 99 31 11	STA $1131,Y
6466: B9 5A 11	LDA $115A,Y
6469: 99 32 11	STA $1132,Y

646C: 8A	TXA
646D: 99 59 11	STA $1159,Y
6470: 99 DB 03	STA $03DB,Y
6473: 68	PLA
6474: 99 5A 11	STA $115A,Y
6477: 99 DC 03	STA $03DC,Y
647A: A2 28	LDX #$28
647C: A0 04	LDY #$04
647E: C6 8E	DEC $8E
6480: C6 8E	DEC $8E
6482: F0 CF	BEQ $6453
6484: A0 FF	LDY #$FF
6486: 8C 55 11	STY $1155
6489: AD 31 11	LDA $1131
648C: 8D 5D 11	STA $115D
648F: AD 32 11	LDA $1132
6492: 8D 5E 11	STA $115E
6495: 98	TYA
6496: 20 90 86	JSR $8690
6499: 8D 03 FF	STA $FF03

649C: 20 E3 9C	JSR $9CE3	; Position Pixel
649F: B1 8C	LDA ($8C),Y
64A1: 90 0E	BCC $64B1
64A3: AD 31 11	LDA $1131
64A6: 24 D8	BIT $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
64A8: 10 02	BPL $64AC
64AA: 38	SEC
64AB: 2A	ROL A

64AC: 29 07	AND #$07
64AE: AA	TAX
64AF: A9 00	LDA #$00

64B1: 24 D8	BIT $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
64B3: 10 01	BPL $64B6
64B5: CA	DEX

64B6: 8E 61 11	STX $1161

64B9: 0A	ASL A
64BA: CA	DEX
64BB: 10 FC	BPL $64B9
64BD: 6A	ROR A
64BE: 85 8E	STA $8E
64C0: A9 08	LDA #$08
64C2: 24 D8	BIT $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
64C4: 10 01	BPL $64C7
64C6: 4A	LSR A

64C7: 18	CLC
64C8: 6D 31 11	ADC $1131
64CB: 8D 31 11	STA $1131
64CE: 90 03	BCC $64D3
64D0: EE 32 11	INC $1132

64D3: 20 E3 9C	JSR $9CE3	; Position Pixel
64D6: A9 00	LDA #$00
64D8: B0 02	BCS $64DC
64DA: B1 8C	LDA ($8C),Y

64DC: 85 8F	STA $8F
64DE: AE 61 11	LDX $1161

64E1: 4A	LSR A
64E2: E8	INX
64E3: E0 08	CPX #$08
64E5: D0 FA	BNE $64E1
64E7: 05 8E	ORA $8E
64E9: EE 55 11	INC $1155
64EC: AC 55 11	LDY $1155
64EF: C0 FC	CPY #$FC
64F1: 90 03	BCC $64F6
64F3: 4C ED A5	JMP $A5ED	; Print 'string too long'

64F6: 8D 04 FF	STA $FF04
64F9: 91 64	STA ($64),Y
64FB: 8D 03 FF	STA $FF03
64FE: AE 61 11	LDX $1161
6501: AD 59 11	LDA $1159
6504: 38	SEC
6505: 24 D8	BIT $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
6507: 10 03	BPL $650C
6509: E9 04	SBC #$04
650B: 2C	.BYTE $2C

650C: E9 08	SBC #$08
650E: 8D 59 11	STA $1159
6511: A5 8F	LDA $8F
6513: B0 A4	BCS $64B9
6515: CE 5A 11	DEC $115A
6518: 10 9F	BPL $64B9
651A: AE 5B 11	LDX $115B
651D: D0 48	BNE $6567
651F: CE 5C 11	DEC $115C
6522: 10 43	BPL $6567
6524: 24 D8	BIT $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
6526: 10 06	BPL $652E
6528: 0E DB 03	ASL $03DB
652B: 2E DC 03	ROL $03DC

652E: A2 00	LDX #$00

6530: BD DB 03	LDA $03DB,X
6533: C8	INY
6534: 8D 04 FF	STA $FF04
6537: 91 64	STA ($64),Y
6539: 8D 03 FF	STA $FF03
653C: E8	INX
653D: E0 04	CPX #$04
653F: D0 EF	BNE $6530
6541: C8	INY
6542: 8C DB 03	STY $03DB
6545: A5 64	LDA $64
6547: 8D DC 03	STA $03DC
654A: A5 65	LDA $65
654C: 8D DD 03	STA $03DD
654F: A9 DB	LDA #$DB
6551: 85 66	STA $66
6553: A9 03	LDA #$03
6555: 85 67	STA $67
6557: AD 5F 11	LDA $115F
655A: 85 4B	STA $4B
655C: AD 60 11	LDA $1160
655F: 85 4C	STA $4C
6561: 20 94 54	JSR $5494
6564: 4C F2 9D	JMP $9DF2	; Restore Pixel Cursor

6567: CE 5B 11	DEC $115B
656A: EE 33 11	INC $1133
656D: D0 03	BNE $6572
656F: EE 34 11	INC $1134

6572: AD 5D 11	LDA $115D
6575: 8D 31 11	STA $1131
6578: AD 5E 11	LDA $115E
657B: 8D 32 11	STA $1132
657E: AD DB 03	LDA $03DB
6581: 8D 59 11	STA $1159
6584: AD DC 03	LDA $03DC
6587: 8D 5A 11	STA $115A
658A: 4C 9C 64	JMP $649C

; Perform [gshape]

658D: 20 74 A0	JSR $A074
6590: 20 7B 87	JSR $877B	; Evaluate String
6593: 8D 03 FF	STA $FF03
6596: 8D 53 11	STA $1153
6599: 86 26	STX $26
659B: 84 27	STY $27
659D: A2 04	LDX #$04
659F: 20 52 9E	JSR $9E52
65A2: 20 1C 9E	JSR $9E1C	; Input Optional Byte Parameter   -Check Byte Parameter in List
65A5: E0 05	CPX #$05
65A7: 90 03	BCC $65AC
65A9: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

65AC: 8E 54 11	STX $1154
65AF: A2 03	LDX #$03
65B1: AC 53 11	LDY $1153
65B4: C0 05	CPY #$05
65B6: B0 01	BCS $65B9
65B8: 60	RTS

65B9: 88	DEY
65BA: A9 26	LDA #$26
65BC: 20 AB 03	JSR $03AB	; Fetch From RAM Bank 1
65BF: 8D 03 FF	STA $FF03
65C2: 9D 59 11	STA $1159,X
65C5: CA	DEX
65C6: 10 F1	BPL $65B9
65C8: 8E 55 11	STX $1155
65CB: 20 F2 9D	JSR $9DF2	; Restore Pixel Cursor
65CE: AD 59 11	LDA $1159
65D1: 8D 5D 11	STA $115D
65D4: AD 5A 11	LDA $115A
65D7: 8D 5E 11	STA $115E

65DA: A9 08	LDA #$08
65DC: 8D 69 11	STA $1169
65DF: EE 55 11	INC $1155
65E2: AC 55 11	LDY $1155
65E5: A9 26	LDA #$26
65E7: 20 AB 03	JSR $03AB	; Fetch From RAM Bank 1
65EA: 8D 03 FF	STA $FF03
65ED: 8D 57 11	STA $1157

65F0: 20 49 9C	JSR $9C49	; Examine Pixel
65F3: 8D 56 11	STA $1156
65F6: 0E 57 11	ASL $1157
65F9: 2A	ROL A
65FA: CE 69 11	DEC $1169
65FD: 24 D8	BIT $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
65FF: 10 07	BPL $6608
6601: 0E 57 11	ASL $1157
6604: 2A	ROL A
6605: CE 69 11	DEC $1169

6608: AE 54 11	LDX $1154
660B: E0 03	CPX #$03
660D: 90 0C	BCC $661B
660F: F0 05	BEQ $6616
6611: 4D 56 11	EOR $1156
6614: B0 11	BCS $6627

6616: 2D 56 11	AND $1156
6619: B0 0C	BCS $6627

661B: E0 01	CPX #$01
661D: 90 08	BCC $6627
661F: F0 04	BEQ $6625
6621: 0D 56 11	ORA $1156
6624: 2C	.BYTE $2C

6625: 49 FF	EOR #$FF

6627: 29 03	AND #$03
6629: 24 D8	BIT $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
662B: 30 02	BMI $662F
662D: 29 01	AND #$01

662F: 85 83	STA $83
6631: 20 19 9C	JSR $9C19
6634: EE 31 11	INC $1131
6637: D0 03	BNE $663C
6639: EE 32 11	INC $1132

663C: 38	SEC
663D: AD 5D 11	LDA $115D
6640: 24 D8	BIT $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
6642: 10 03	BPL $6647
6644: E9 02	SBC #$02
6646: 2C	.BYTE $2C

6647: E9 01	SBC #$01
6649: 8D 5D 11	STA $115D
664C: AD 5E 11	LDA $115E
664F: E9 00	SBC #$00
6651: 8D 5E 11	STA $115E
6654: B0 2D	BCS $6683
6656: A2 01	LDX #$01

6658: BD 59 11	LDA $1159,X
665B: 9D 5D 11	STA $115D,X
665E: BD 35 11	LDA $1135,X
6661: 9D 31 11	STA $1131,X
6664: CA	DEX
6665: 10 F1	BPL $6658
6667: EE 33 11	INC $1133
666A: D0 03	BNE $666F
666C: EE 34 11	INC $1134

666F: 38	SEC
6670: AD 5B 11	LDA $115B
6673: E9 01	SBC #$01
6675: 8D 5B 11	STA $115B
6678: AD 5C 11	LDA $115C
667B: E9 00	SBC #$00
667D: 8D 5C 11	STA $115C
6680: B0 09	BCS $668B
6682: 60	RTS

6683: AD 69 11	LDA $1169
6686: F0 03	BEQ $668B
6688: 4C F0 65	JMP $65F0

668B: 4C DA 65	JMP $65DA

; Perform [circle]

668E: 20 2F 9E	JSR $9E2F	; Parse Graphics Command
6691: A2 1F	LDX #$1F
6693: 20 52 9E	JSR $9E52
6696: 20 06 9E	JSR $9E06	; Check Optional Float/Fixed Parameter
6699: 8C 54 11	STY $1154
669C: 8D 55 11	STA $1155
669F: 20 06 9E	JSR $9E06	; Check Optional Float/Fixed Parameter
66A2: 8C 56 11	STY $1156
66A5: B0 11	BCS $66B8
66A7: AD 54 11	LDA $1154
66AA: 8D 56 11	STA $1156
66AD: AD 55 11	LDA $1155
66B0: 24 D8	BIT $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
66B2: 10 04	BPL $66B8
66B4: 0E 56 11	ASL $1156
66B7: 2A	ROL A

66B8: 8D 57 11	STA $1157
66BB: A2 23	LDX #$23
66BD: 20 4A 9D	JSR $9D4A	; ?
66C0: EA	NOP
66C1: EA	NOP
66C2: EA	NOP
66C3: EA	NOP
66C4: EA	NOP
66C5: 20 06 9E	JSR $9E06	; Check Optional Float/Fixed Parameter
66C8: 8C 5C 11	STY $115C
66CB: 8D 5D 11	STA $115D
66CE: 20 06 9E	JSR $9E06	; Check Optional Float/Fixed Parameter
66D1: 8C 5E 11	STY $115E
66D4: 8D 5F 11	STA $115F
66D7: 20 06 9E	JSR $9E06	; Check Optional Float/Fixed Parameter
66DA: 85 77	STA $77
66DC: 98	TYA
66DD: A4 77	LDY $77
66DF: 20 77 9A	JSR $9A77
66E2: A2 2D	LDX #$2D
66E4: A0 2B	LDY #$2B
66E6: 20 7C 9D	JSR $9D7C	; Subtract Graphics Coordinate
66E9: 90 0E	BCC $66F9
66EB: A9 68	LDA #$68
66ED: A0 01	LDY #$01
66EF: 20 70 9D	JSR $9D70
66F2: 9D 31 11	STA $1131,X
66F5: 98	TYA
66F6: 9D 32 11	STA $1132,X

66F9: A2 03	LDX #$03

66FB: BD 54 11	LDA $1154,X
66FE: 9D 58 11	STA $1158,X
6701: CA	DEX
6702: 10 F7	BPL $66FB
6704: A9 90	LDA #$90
6706: 20 F3 9A	JSR $9AF3	; ?
6709: A2 07	LDX #$07

670B: BD 54 11	LDA $1154,X
670E: 9D 60 11	STA $1160,X
6711: CA	DEX
6712: 10 F7	BPL $670B
6714: 20 50 67	JSR $6750	; Draw Circle
6717: 20 F2 9D	JSR $9DF2	; Restore Pixel Cursor
671A: A2 02	LDX #$02
671C: 20 1E 9E	JSR $9E1E
671F: 8A	TXA
6720: D0 03	BNE $6725
6722: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

6725: 8E 20 12	STX $1220
6728: 18	CLC

6729: AD 20 12	LDA $1220
672C: 6D 5C 11	ADC $115C
672F: 8D 5C 11	STA $115C
6732: 90 03	BCC $6737
6734: EE 5D 11	INC $115D

6737: A2 2D	LDX #$2D
6739: A0 2B	LDY #$2B
673B: 20 7C 9D	JSR $9D7C	; Subtract Graphics Coordinate
673E: B0 08	BCS $6748
6740: 20 50 67	JSR $6750	; Draw Circle
6743: 20 30 9B	JSR $9B30	; Draw Line
6746: 90 E1	BCC $6729

6748: A0 2D	LDY #$2D
674A: 20 52 67	JSR $6752
674D: 4C 30 9B	JMP $9B30	; Draw Line

; Draw Circle

6750: A0 2B	LDY #$2B

6752: 20 74 9A	JSR $9A74	; ?
6755: A2 07	LDX #$07

6757: BD 60 11	LDA $1160,X
675A: 9D 54 11	STA $1154,X
675D: CA	DEX
675E: 10 F7	BPL $6757
6760: A9 50	LDA #$50
6762: 20 F3 9A	JSR $9AF3	; ?
6765: A9 10	LDA #$10

6767: 8D 4E 11	STA $114E
676A: A0 1F	LDY #$1F
676C: A2 23	LDX #$23

676E: 0E 4F 11	ASL $114F
6771: 2E 4E 11	ROL $114E
6774: 20 6B 9D	JSR $9D6B
6777: E8	INX
6778: E8	INX
6779: 0E 4F 11	ASL $114F
677C: 2E 4E 11	ROL $114E
677F: 20 67 9D	JSR $9D67	; Calculate Graphics Coordinates
6782: 48	PHA
6783: 98	TYA
6784: 48	PHA
6785: A0 21	LDY #$21
6787: E8	INX
6788: E8	INX
6789: E0 27	CPX #$27
678B: F0 E1	BEQ $676E
678D: A2 03	LDX #$03

678F: 68	PLA
6790: 9D 35 11	STA $1135,X
6793: CA	DEX
6794: 10 F9	BPL $678F
6796: 60	RTS

; Perform [draw]

6797: 20 74 A0	JSR $A074
679A: A2 01	LDX #$01
679C: 86 83	STX $83
679E: 20 86 03	JSR $0386	; CHRGOT entry
67A1: C9 A4	CMP #$A4
67A3: F0 0B	BEQ $67B0
67A5: 20 32 9E	JSR $9E32	; Get Color Source Param
67A8: 20 86 03	JSR $0386	; CHRGOT entry
67AB: D0 03	BNE $67B0
67AD: 4C FB 9B	JMP $9BFB	; Plot Pixel

67B0: 20 86 03	JSR $0386	; CHRGOT entry
67B3: C9 2C	CMP #$2C
67B5: F0 05	BEQ $67BC
67B7: C9 A4	CMP #$A4
67B9: F0 01	BEQ $67BC
67BB: 60	RTS

67BC: 48	PHA
67BD: 20 80 03	JSR $0380	; CHRGET
67C0: A2 04	LDX #$04
67C2: 20 70 9E	JSR $9E70
67C5: 68	PLA
67C6: 10 06	BPL $67CE
67C8: 20 30 9B	JSR $9B30	; Draw Line
67CB: 4C B0 67	JMP $67B0

67CE: 20 F2 9D	JSR $9DF2	; Restore Pixel Cursor
67D1: 20 FB 9B	JSR $9BFB	; Plot Pixel
67D4: 4C B0 67	JMP $67B0

; Perform [char]

67D7: 20 32 9E	JSR $9E32	; Get Color Source Param
67DA: A2 29	LDX #$29
67DC: A0 1A	LDY #$1A
67DE: A5 D8	LDA $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
67E0: D0 05	BNE $67E7
67E2: 20 ED FF	JSR $FFED	; scrorg        Return Screen Organization
67E5: E8	INX
67E6: C8	INY

67E7: 8E 5E 11	STX $115E
67EA: 8C 5F 11	STY $115F
67ED: 20 09 88	JSR $8809
67F0: EC 5E 11	CPX $115E
67F3: B0 0B	BCS $6800
67F5: 8E 5E 11	STX $115E
67F8: 20 09 88	JSR $8809
67FB: EC 5F 11	CPX $115F
67FE: 90 03	BCC $6803

6800: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

6803: 8E 5F 11	STX $115F
6806: 20 86 03	JSR $0386	; CHRGOT entry
6809: D0 04	BNE $680F
680B: A9 00	LDA #$00
680D: F0 06	BEQ $6815

680F: 20 5C 79	JSR $795C	; -Check Comma
6812: 20 7B 87	JSR $877B	; Evaluate String

6815: 8D 03 FF	STA $FF03
6818: 8D 6E 11	STA $116E
681B: 98	TYA
681C: 48	PHA
681D: 8A	TXA
681E: 48	PHA
681F: 20 1C 9E	JSR $9E1C	; Input Optional Byte Parameter   -Check Byte Parameter in List
6822: 8A	TXA
6823: 6A	ROR A
6824: 6E 3D 11	ROR $113D
6827: 68	PLA
6828: 85 24	STA $24
682A: 68	PLA
682B: 85 25	STA $25
682D: A5 D8	LDA $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
682F: D0 32	BNE $6863
6831: AE 5F 11	LDX $115F
6834: AC 5E 11	LDY $115E
6837: 18	CLC
6838: 20 82 7E	JSR $7E82	; Set Bank patch for [char]
683B: A0 00	LDY #$00
683D: 2C 3D 11	BIT $113D
6840: 10 05	BPL $6847
6842: A9 12	LDA #$12
6844: 20 88 7E	JSR $7E88	; Set Bank patch for Screen Print Link

6847: CC 6E 11	CPY $116E
684A: F0 0C	BEQ $6858
684C: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
684F: 20 45 A8	JSR $A845	; Set Bank 15
6852: 20 0C C0	JSR $C00C	; Screen Print Link
6855: C8	INY
6856: D0 EF	BNE $6847

6858: 2C 3D 11	BIT $113D
685B: 10 05	BPL $6862
685D: A9 92	LDA #$92
685F: 20 88 7E	JSR $7E88	; Set Bank patch for Screen Print Link

6862: 60	RTS

6863: 20 74 A0	JSR $A074
6866: AD EC 11	LDA $11EC	; CHRGEN ROM Page, Graphics Mode [D0]
6869: 8D 68 11	STA $1168
686C: A5 86	LDA $86 	; Graphic foreground color (13)
686E: AA	TAX
686F: 48	PHA
6870: A5 83	LDA $83
6872: 48	PHA
6873: 24 D8	BIT $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
6875: 10 0E	BPL $6885
6877: 68	PLA
6878: F0 16	BEQ $6890
687A: 4A	LSR A
687B: F0 13	BEQ $6890
687D: A6 84	LDX $84 	; Multicolor 1 (1)
687F: 90 0F	BCC $6890
6881: A6 85	LDX $85 	; Multicolor 2 (2)
6883: B0 0B	BCS $6890

6885: A6 86	LDX $86 	; Graphic foreground color (13)
6887: 68	PLA
6888: D0 06	BNE $6890
688A: 20 45 A8	JSR $A845	; Set Bank 15
688D: AE 21 D0	LDX $D021

6890: 86 86	STX $86 	; Graphic foreground color (13)
6892: AE 5F 11	LDX $115F
6895: A0 00	LDY #$00
6897: 8C 60 11	STY $1160

689A: AC 60 11	LDY $1160
689D: EE 60 11	INC $1160
68A0: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
68A3: 8D 03 FF	STA $FF03
68A6: CE 6E 11	DEC $116E
68A9: 30 2C	BMI $68D7
68AB: C9 0E	CMP #$0E
68AD: D0 05	BNE $68B4
68AF: AD EB 11	LDA $11EB	; CHRGEN ROM Page, Text Mode [D8]
68B2: D0 07	BNE $68BB

68B4: C9 8E	CMP #$8E
68B6: D0 08	BNE $68C0
68B8: AD EC 11	LDA $11EC	; CHRGEN ROM Page, Graphics Mode [D0]

68BB: 8D 68 11	STA $1168
68BE: D0 09	BNE $68C9

68C0: AC 5E 11	LDY $115E
68C3: 20 DB 68	JSR $68DB	; ?
68C6: EE 5E 11	INC $115E

68C9: C0 27	CPY #$27
68CB: 90 CD	BCC $689A
68CD: A0 00	LDY #$00
68CF: 8C 5E 11	STY $115E
68D2: E8	INX
68D3: E0 18	CPX #$18
68D5: 90 C3	BCC $689A

68D7: 68	PLA
68D8: 85 86	STA $86 	; Graphic foreground color (13)
68DA: 60	RTS

; ?

68DB: 48	PHA
68DC: 20 70 9C	JSR $9C70	; Set Hi-Res Color Cell
68DF: 98	TYA
68E0: 18	CLC
68E1: 7D 33 C0	ADC $C033,X	; Screen Address Low
68E4: 85 8C	STA $8C
68E6: BD 4C C0	LDA $C04C,X	; Screen Address High
68E9: 69 00	ADC #$00
68EB: 06 8C	ASL $8C
68ED: 2A	ROL A
68EE: 06 8C	ASL $8C
68F0: 2A	ROL A
68F1: 06 8C	ASL $8C
68F3: 2A	ROL A
68F4: 85 8D	STA $8D
68F6: 8D 03 FF	STA $FF03
68F9: A9 00	LDA #$00
68FB: 85 77	STA $77
68FD: 68	PLA
68FE: 48	PHA
68FF: 0A	ASL A
6900: 26 77	ROL $77
6902: 0A	ASL A
6903: 0A	ASL A
6904: 26 77	ROL $77
6906: 85 26	STA $26
6908: A5 77	LDA $77
690A: 6D 68 11	ADC $1168
690D: 85 27	STA $27
690F: 98	TYA
6910: 48	PHA
6911: A0 07	LDY #$07

6913: AD 3D 11	LDA $113D
6916: 0A	ASL A
6917: B1 26	LDA ($26),Y
6919: 90 02	BCC $691D
691B: 49 FF	EOR #$FF

691D: 24 D8	BIT $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
691F: 10 2B	BPL $694C
6921: 29 AA	AND #$AA
6923: 85 77	STA $77
6925: A5 83	LDA $83
6927: D0 0F	BNE $6938
6929: A5 77	LDA $77
692B: B0 07	BCS $6934
692D: 4A	LSR A
692E: 45 77	EOR $77
6930: 49 AA	EOR #$AA
6932: D0 18	BNE $694C

6934: 09 55	ORA #$55
6936: D0 14	BNE $694C

6938: C9 02	CMP #$02
693A: D0 04	BNE $6940
693C: A5 77	LDA $77
693E: B0 0C	BCS $694C

6940: 90 07	BCC $6949
6942: A5 77	LDA $77
6944: 4A	LSR A
6945: 45 77	EOR $77
6947: 90 03	BCC $694C

6949: A5 77	LDA $77
694B: 4A	LSR A

694C: 91 8C	STA ($8C),Y
694E: 88	DEY
694F: 10 C2	BPL $6913
6951: 68	PLA
6952: A8	TAY
6953: 68	PLA
6954: 60	RTS

; Perform [locate]

6955: 20 74 A0	JSR $A074
6958: A2 04	LDX #$04
695A: 20 70 9E	JSR $9E70
695D: 4C F2 9D	JMP $9DF2	; Restore Pixel Cursor

; Perform [scale]

6960: 20 F4 87	JSR $87F4	; -Eval Byte Parameter
6963: E0 02	CPX #$02
6965: 90 03	BCC $696A
6967: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

696A: 8E 6A 11	STX $116A	; SCALE Mode Flag
696D: 20 86 03	JSR $0386	; CHRGOT entry
6970: D0 14	BNE $6986
6972: A2 00	LDX #$00
6974: A9 50	LDA #$50
6976: A0 32	LDY #$32
6978: 24 D8	BIT $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
697A: 10 01	BPL $697D
697C: 4A	LSR A

697D: 86 87	STX $87
697F: 85 88	STA $88
6981: 86 89	STX $89
6983: 84 8A	STY $8A
6985: 60	RTS

6986: 20 C4 69	JSR $69C4
6989: A9 D8	LDA #$D8
698B: A0 69	LDY #$69
698D: 20 89 8A	JSR $8A89	; Unpack ROM to FAC#2
6990: 20 4C 8B	JSR $8B4C	; Evaluate <divide>
6993: 20 15 88	JSR $8815	; Float/Fixed
6996: C9 00	CMP #$00
6998: D0 04	BNE $699E
699A: C0 00	CPY #$00
699C: F0 37	BEQ $69D5

699E: 48	PHA
699F: 98	TYA
69A0: 48	PHA
69A1: 20 C4 69	JSR $69C4
69A4: A9 DD	LDA #$DD
69A6: A0 69	LDY #$69
69A8: 20 89 8A	JSR $8A89	; Unpack ROM to FAC#2
69AB: 20 4C 8B	JSR $8B4C	; Evaluate <divide>
69AE: 20 15 88	JSR $8815	; Float/Fixed
69B1: C9 00	CMP #$00
69B3: D0 04	BNE $69B9
69B5: C0 00	CPY #$00
69B7: F0 1C	BEQ $69D5

69B9: 84 89	STY $89
69BB: 85 8A	STA $8A
69BD: 68	PLA
69BE: 85 87	STA $87
69C0: 68	PLA
69C1: 85 88	STA $88
69C3: 60	RTS

69C4: 20 5C 79	JSR $795C	; -Check Comma
69C7: 20 D7 77	JSR $77D7	; Type Match Check
69CA: A5 68	LDA $68
69CC: 30 07	BMI $69D5
69CE: A5 63	LDA $63
69D0: C9 90	CMP #$90
69D2: B0 01	BCS $69D5
69D4: 60	RTS

69D5: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

; Scale Factor Constants

69D8: 99 1F FF 60 00 98 47 FF	; '{LTGREEN}{BLUE}.`{0}{GRAY2}g.'
69E0: 38 00                  	; '8{0}'

; Perform [color]

69E2: 20 F4 87	JSR $87F4	; -Eval Byte Parameter
69E5: E0 07	CPX #$07
69E7: B0 60	BCS $6A49
69E9: 86 77	STX $77
69EB: 20 09 88	JSR $8809
69EE: CA	DEX
69EF: E0 10	CPX #$10
69F1: B0 56	BCS $6A49
69F3: 20 45 A8	JSR $A845	; Set Bank 15
69F6: 8A	TXA
69F7: A6 77	LDX $77
69F9: E0 01	CPX #$01
69FB: F0 07	BEQ $6A04
69FD: B0 09	BCS $6A08
69FF: 8D 21 D0	STA $D021
6A02: D0 3F	BNE $6A43

6A04: 85 86	STA $86 	; Graphic foreground color (13)
6A06: F0 3B	BEQ $6A43

6A08: E0 03	CPX #$03
6A0A: F0 06	BEQ $6A12
6A0C: B0 08	BCS $6A16
6A0E: 85 84	STA $84 	; Multicolor 1 (1)
6A10: D0 31	BNE $6A43

6A12: 85 85	STA $85 	; Multicolor 2 (2)
6A14: F0 2D	BEQ $6A43

6A16: E0 05	CPX #$05
6A18: F0 07	BEQ $6A21
6A1A: B0 16	BCS $6A32
6A1C: 8D 20 D0	STA $D020
6A1F: D0 22	BNE $6A43

6A21: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
6A23: 10 08	BPL $6A2D
6A25: AA	TAX
6A26: A5 F1	LDA $F1 	; Curr Attribute to Print (Default FGND Color)
6A28: 29 F0	AND #$F0
6A2A: 1D 4C 6A	ORA $6A4C,X	; Color Codes

6A2D: 85 F1	STA $F1 	; Curr Attribute to Print (Default FGND Color)
6A2F: 4C 43 6A	JMP $6A43

6A32: AA	TAX
6A33: A9 1A	LDA #$1A
6A35: 8D 00 D6	STA $D600
6A38: AD 01 D6	LDA $D601
6A3B: 29 F0	AND #$F0
6A3D: 1D 4C 6A	ORA $6A4C,X	; Color Codes
6A40: 8D 01 D6	STA $D601

6A43: 20 5C 6A	JSR $6A5C	; Log Current Colors
6A46: 4C 1E 9E	JMP $9E1E

6A49: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

; Color Codes

6A4C: 00 0F 08 07 0B 04 02 0D	; '{0}{FLSHON}.{BELL}{LOCK}.{ULON}{CR}'
6A54: 0A 0C 09 06 01 05 03 0E	; '{LF}{UNLOCK}{TAB}..{WHITE}{STOP}{LOWTEXT}'

; Log Current Colors

6A5C: A5 86	LDA $86 	; Graphic foreground color (13)
6A5E: 0A	ASL A
6A5F: 0A	ASL A
6A60: 0A	ASL A
6A61: 0A	ASL A
6A62: 85 77	STA $77
6A64: 20 45 A8	JSR $A845	; Set Bank 15
6A67: AD 21 D0	LDA $D021
6A6A: 29 0F	AND #$0F
6A6C: 05 77	ORA $77
6A6E: 8D E2 03	STA $03E2
6A71: A5 84	LDA $84 	; Multicolor 1 (1)
6A73: 05 77	ORA $77
6A75: 8D E3 03	STA $03E3
6A78: 60	RTS

; Perform [scnclr]

6A79: D0 14	BNE $6A8F
6A7B: 20 8C 81	JSR $818C	; Get Graphics Mode
6A7E: C9 05	CMP #$05
6A80: 90 09	BCC $6A8B
6A82: E9 05	SBC #$05
6A84: F0 58	BEQ $6ADE
6A86: 48	PHA
6A87: 20 DE 6A	JSR $6ADE
6A8A: 68	PLA

6A8B: AA	TAX
6A8C: 4C 9B 6A	JMP $6A9B

6A8F: 20 F4 87	JSR $87F4	; -Eval Byte Parameter

6A92: E0 05	CPX #$05
6A94: F0 48	BEQ $6ADE
6A96: 90 03	BCC $6A9B
6A98: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

6A9B: 8A	TXA
6A9C: F0 54	BEQ $6AF2
6A9E: 20 74 A0	JSR $A074
6AA1: 8A	TXA
6AA2: 48	PHA
6AA3: 29 01	AND #$01
6AA5: D0 21	BNE $6AC8
6AA7: 20 F2 6A	JSR $6AF2
6AAA: A5 D7	LDA $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
6AAC: 48	PHA
6AAD: 10 03	BPL $6AB2
6AAF: 20 5F FF	JSR $FF5F	; swapper       40/80 swap

6AB2: AD 34 0A	LDA $0A34	; VIC Split Screen Raster Value
6AB5: 38	SEC
6AB6: E9 30	SBC #$30
6AB8: 4A	LSR A
6AB9: 4A	LSR A
6ABA: 4A	LSR A
6ABB: AA	TAX
6ABC: A0 00	LDY #$00
6ABE: 18	CLC
6ABF: 20 8D 92	JSR $928D	; Call 'plot'
6AC2: 68	PLA
6AC3: 10 03	BPL $6AC8
6AC5: 20 5F FF	JSR $FF5F	; swapper       40/80 swap

6AC8: 68	PLA
6AC9: 29 02	AND #$02
6ACB: F0 03	BEQ $6AD0
6ACD: 20 17 6B	JSR $6B17	; Set Screen Color

6AD0: 20 30 6B	JSR $6B30
6AD3: A9 00	LDA #$00
6AD5: A2 03	LDX #$03

6AD7: 9D 31 11	STA $1131,X
6ADA: CA	DEX
6ADB: 10 FA	BPL $6AD7
6ADD: 60	RTS

6ADE: A5 D7	LDA $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
6AE0: 48	PHA
6AE1: 30 03	BMI $6AE6
6AE3: 20 5F FF	JSR $FF5F	; swapper       40/80 swap

6AE6: A9 93	LDA #$93
6AE8: 20 69 92	JSR $9269	; Call 'chrout'
6AEB: 68	PLA
6AEC: 30 03	BMI $6AF1
6AEE: 20 5F FF	JSR $FF5F	; swapper       40/80 swap

6AF1: 60	RTS

6AF2: A5 D7	LDA $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
6AF4: 48	PHA
6AF5: 10 03	BPL $6AFA
6AF7: 20 5F FF	JSR $FF5F	; swapper       40/80 swap

6AFA: A9 93	LDA #$93
6AFC: 20 69 92	JSR $9269	; Call 'chrout'
6AFF: 68	PLA
6B00: 10 03	BPL $6B05
6B02: 20 5F FF	JSR $FF5F	; swapper       40/80 swap

6B05: 60	RTS

; Fill Memory Page

6B06: 84 8D	STY $8D
6B08: A0 00	LDY #$00
6B0A: 84 8C	STY $8C

6B0C: 91 8C	STA ($8C),Y
6B0E: 88	DEY
6B0F: D0 FB	BNE $6B0C
6B11: E6 8D	INC $8D
6B13: CA	DEX
6B14: D0 F6	BNE $6B0C
6B16: 60	RTS

; Set Screen Color

6B17: 20 45 A8	JSR $A845	; Set Bank 15
6B1A: 78	SEI
6B1B: A5 01	LDA $01
6B1D: 48	PHA
6B1E: 29 FE	AND #$FE
6B20: 85 01	STA $01
6B22: A5 85	LDA $85 	; Multicolor 2 (2)
6B24: A0 D8	LDY #$D8
6B26: A2 04	LDX #$04
6B28: 20 06 6B	JSR $6B06	; Fill Memory Page
6B2B: 68	PLA
6B2C: 85 01	STA $01
6B2E: 58	CLI
6B2F: 60	RTS

6B30: A9 00	LDA #$00
6B32: A0 20	LDY #$20
6B34: A2 20	LDX #$20
6B36: 20 06 6B	JSR $6B06	; Fill Memory Page
6B39: AD E2 03	LDA $03E2
6B3C: 24 D8	BIT $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
6B3E: 10 03	BPL $6B43
6B40: AD E3 03	LDA $03E3

6B43: 20 45 A8	JSR $A845	; Set Bank 15
6B46: A0 1C	LDY #$1C
6B48: A2 04	LDX #$04
6B4A: 20 06 6B	JSR $6B06	; Fill Memory Page
6B4D: A2 3F	LDX #$3F
6B4F: A0 07	LDY #$07

6B51: 8A	TXA
6B52: 99 F8 1F	STA $1FF8,Y
6B55: CA	DEX
6B56: 88	DEY
6B57: 10 F8	BPL $6B51
6B59: 60	RTS

; Perform [graphic]

6B5A: C9 9C	CMP #$9C
6B5C: D0 0B	BNE $6B69
6B5E: 20 22 A0	JSR $A022	; Move Basic to $1c01
6B61: 20 80 03	JSR $0380	; CHRGET
6B64: A9 00	LDA #$00
6B66: 85 D8	STA $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
6B68: 60	RTS

6B69: 20 F4 87	JSR $87F4	; -Eval Byte Parameter
6B6C: 8A	TXA
6B6D: 48	PHA
6B6E: E0 05	CPX #$05
6B70: F0 42	BEQ $6BB4
6B72: B0 4D	BCS $6BC1
6B74: BD C4 6B	LDA $6BC4,X	; Graphic modes
6B77: 85 D8	STA $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
6B79: F0 07	BEQ $6B82
6B7B: 20 4F 9F	JSR $9F4F	; Allocate 9K Graphics Area for graphic/sprdef
6B7E: 24 D8	BIT $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
6B80: 50 07	BVC $6B89

6B82: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
6B84: 10 03	BPL $6B89

6B86: 20 5F FF	JSR $FF5F	; swapper       40/80 swap

6B89: 20 1C 9E	JSR $9E1C	; Input Optional Byte Parameter   -Check Byte Parameter in List
6B8C: E0 02	CPX #$02
6B8E: B0 31	BCS $6BC1
6B90: 8A	TXA
6B91: 48	PHA
6B92: A2 14	LDX #$14
6B94: 20 1E 9E	JSR $9E1E
6B97: E0 1A	CPX #$1A
6B99: B0 26	BCS $6BC1
6B9B: 8A	TXA
6B9C: 0A	ASL A
6B9D: 0A	ASL A
6B9E: 0A	ASL A
6B9F: 69 30	ADC #$30
6BA1: 8D 34 0A	STA $0A34	; VIC Split Screen Raster Value
6BA4: 68	PLA
6BA5: A8	TAY
6BA6: 68	PLA
6BA7: AA	TAX
6BA8: 98	TYA
6BA9: F0 03	BEQ $6BAE
6BAB: 20 92 6A	JSR $6A92

6BAE: A9 00	LDA #$00
6BB0: 8D 6A 11	STA $116A	; SCALE Mode Flag
6BB3: 60	RTS

6BB4: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
6BB6: 30 D1	BMI $6B89
6BB8: A5 D8	LDA $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
6BBA: 29 BF	AND #$BF
6BBC: 85 D8	STA $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
6BBE: 4C 86 6B	JMP $6B86

6BC1: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

; Graphic modes

6BC4: 00 20 60 A0 E0         	; '{0} `..'

; Perform [bank]

6BC9: 20 F4 87	JSR $87F4	; -Eval Byte Parameter
6BCC: E0 10	CPX #$10
6BCE: B0 04	BCS $6BD4
6BD0: 8E D5 03	STX $03D5	; Current Bank For SYS, POKE, PEEK
6BD3: 60	RTS

6BD4: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

; Perform [sleep]

6BD7: 20 12 88	JSR $8812	; -Input Float/Fixed Value
6BDA: A2 00	LDX #$00
6BDC: 78	SEI
6BDD: 8C 1D 0A	STY $0A1D
6BE0: 8D 1E 0A	STA $0A1E
6BE3: 8E 1F 0A	STX $0A1F
6BE6: 20 0C 6C	JSR $6C0C
6BE9: 20 16 6C	JSR $6C16
6BEC: 20 09 6C	JSR $6C09	; Multiply Sleep Time
6BEF: AC 1D 0A	LDY $0A1D
6BF2: AD 1E 0A	LDA $0A1E
6BF5: AE 1F 0A	LDX $0A1F
6BF8: 20 09 6C	JSR $6C09	; Multiply Sleep Time
6BFB: 20 16 6C	JSR $6C16
6BFE: 58	CLI

6BFF: 20 B5 4B	JSR $4BB5	; ?
6C02: AE 1F 0A	LDX $0A1F
6C05: E8	INX
6C06: D0 F7	BNE $6BFF
6C08: 60	RTS

; Multiply Sleep Time

6C09: 20 0C 6C	JSR $6C0C

6C0C: 0E 1D 0A	ASL $0A1D
6C0F: 2E 1E 0A	ROL $0A1E
6C12: 2E 1F 0A	ROL $0A1F
6C15: 60	RTS

6C16: 48	PHA
6C17: 98	TYA
6C18: 6D 1D 0A	ADC $0A1D
6C1B: 8D 1D 0A	STA $0A1D
6C1E: 68	PLA
6C1F: 6D 1E 0A	ADC $0A1E
6C22: 8D 1E 0A	STA $0A1E
6C25: 8A	TXA
6C26: 6D 1F 0A	ADC $0A1F
6C29: 8D 1F 0A	STA $0A1F
6C2C: 60	RTS

; Perform [wait]

6C2D: 20 03 88	JSR $8803	; Params For Poke/Wait
6C30: 86 4B	STX $4B
6C32: A2 00	LDX #$00
6C34: 20 86 03	JSR $0386	; CHRGOT entry
6C37: F0 03	BEQ $6C3C
6C39: 20 09 88	JSR $8809

6C3C: 86 4C	STX $4C

6C3E: A0 00	LDY #$00
6C40: AE D5 03	LDX $03D5	; Current Bank For SYS, POKE, PEEK
6C43: A9 16	LDA #$16
6C45: 20 74 FF	JSR $FF74	; indfet        Bank LDA (fetchvec),y
6C48: 45 4C	EOR $4C
6C4A: 25 4B	AND $4B
6C4C: F0 F0	BEQ $6C3E
6C4E: 60	RTS

; Perform [sprite]

6C4F: 20 BB 6C	JSR $6CBB	; ?
6C52: 20 1E 9E	JSR $9E1E
6C55: 90 05	BCC $6C5C
6C57: A0 15	LDY #$15
6C59: 20 9B 6C	JSR $6C9B	; ?

6C5C: 20 1E 9E	JSR $9E1E
6C5F: 90 0E	BCC $6C6F
6C61: CA	DEX
6C62: E0 10	CPX #$10
6C64: B0 32	BCS $6C98
6C66: 8A	TXA
6C67: A6 77	LDX $77
6C69: 20 45 A8	JSR $A845	; Set Bank 15
6C6C: 9D 27 D0	STA $D027,X

6C6F: 20 1E 9E	JSR $9E1E
6C72: 90 05	BCC $6C79
6C74: A0 1B	LDY #$1B
6C76: 20 9B 6C	JSR $6C9B	; ?

6C79: 20 1E 9E	JSR $9E1E
6C7C: 90 05	BCC $6C83
6C7E: A0 1D	LDY #$1D
6C80: 20 9B 6C	JSR $6C9B	; ?

6C83: 20 1E 9E	JSR $9E1E
6C86: 90 05	BCC $6C8D
6C88: A0 17	LDY #$17
6C8A: 20 9B 6C	JSR $6C9B	; ?

6C8D: 20 1E 9E	JSR $9E1E
6C90: 90 05	BCC $6C97
6C92: A0 1C	LDY #$1C
6C94: 20 9B 6C	JSR $6C9B	; ?

6C97: 60	RTS

6C98: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

; ?

6C9B: 8A	TXA
6C9C: 4A	LSR A
6C9D: D0 F9	BNE $6C98
6C9F: A6 77	LDX $77
6CA1: BD B3 6C	LDA $6CB3,X	; Bit Masks
6CA4: 20 45 A8	JSR $A845	; Set Bank 15
6CA7: 19 00 D0	ORA $D000,Y
6CAA: B0 03	BCS $6CAF
6CAC: 5D B3 6C	EOR $6CB3,X	; Bit Masks

6CAF: 99 00 D0	STA $D000,Y
6CB2: 60	RTS

; Bit Masks

6CB3: 01 02 04 08            	; '.{ULON}..'

6CB7: 10 20 40 80            	; '. @.'

; ?

6CBB: 20 F4 87	JSR $87F4	; -Eval Byte Parameter
6CBE: CA	DEX
6CBF: E0 08	CPX #$08
6CC1: B0 D5	BCS $6C98
6CC3: 86 77	STX $77
6CC5: 60	RTS

; Perform [movspr]

6CC6: 20 BB 6C	JSR $6CBB	; ?
6CC9: 20 9E 6D	JSR $6D9E	; ?
6CCC: 2C 6E 11	BIT $116E
6CCF: 50 03	BVC $6CD4
6CD1: 4C 6C 79	JMP $796C	; Syntax Error

6CD4: 8C 35 11	STY $1135
6CD7: 8C 37 11	STY $1137
6CDA: 8D 36 11	STA $1136
6CDD: 8D 38 11	STA $1138
6CE0: 20 9E 6D	JSR $6D9E	; ?
6CE3: 2C 6E 11	BIT $116E
6CE6: 50 61	BVC $6D49
6CE8: 30 3A	BMI $6D24
6CEA: 98	TYA
6CEB: 48	PHA
6CEC: A0 04	LDY #$04
6CEE: 20 74 9A	JSR $9A74	; ?
6CF1: A6 77	LDX $77
6CF3: BC D9 6D	LDY $6DD9,X	; Sprite Motion Table Offsets
6CF6: A9 00	LDA #$00
6CF8: 99 7E 11	STA $117E,Y	; Sprite Motion Tables (8 x 11 bytes)
6CFB: C8	INY
6CFC: A2 03	LDX #$03

6CFE: 5E 4A 11	LSR $114A,X
6D01: CA	DEX
6D02: 7E 4A 11	ROR $114A,X
6D05: CA	DEX
6D06: 10 F6	BPL $6CFE

6D08: E8	INX
6D09: BD 49 11	LDA $1149,X
6D0C: C8	INY
6D0D: 99 7E 11	STA $117E,Y	; Sprite Motion Tables (8 x 11 bytes)
6D10: E0 04	CPX #$04
6D12: D0 F4	BNE $6D08
6D14: A9 00	LDA #$00

6D16: C8	INY
6D17: 99 7E 11	STA $117E,Y	; Sprite Motion Tables (8 x 11 bytes)
6D1A: CA	DEX
6D1B: D0 F9	BNE $6D16
6D1D: 68	PLA
6D1E: 29 0F	AND #$0F
6D20: 99 74 11	STA $1174,Y
6D23: 60	RTS

6D24: 20 39 81	JSR $8139	; Swap x With y
6D27: A8	TAY
6D28: 8A	TXA
6D29: 20 77 9A	JSR $9A77
6D2C: A2 04	LDX #$04
6D2E: 20 4A 9D	JSR $9D4A	; ?
6D31: A2 04	LDX #$04
6D33: 18	CLC

6D34: 20 CE 9A	JSR $9ACE	; ?
6D37: 9D 31 11	STA $1131,X
6D3A: 98	TYA
6D3B: 9D 32 11	STA $1132,X
6D3E: E8	INX
6D3F: E8	INX
6D40: E0 06	CPX #$06
6D42: F0 F0	BEQ $6D34
6D44: 6E 6E 11	ROR $116E
6D47: 30 0B	BMI $6D54

6D49: 8C 37 11	STY $1137
6D4C: 8D 38 11	STA $1138
6D4F: A2 04	LDX #$04
6D51: 20 4A 9D	JSR $9D4A	; ?

6D54: A5 77	LDA $77
6D56: AA	TAX
6D57: 0A	ASL A
6D58: A8	TAY
6D59: AD 37 11	LDA $1137
6D5C: 0E 6E 11	ASL $116E
6D5F: 90 09	BCC $6D6A
6D61: 18	CLC
6D62: 10 03	BPL $6D67
6D64: 49 FF	EOR #$FF
6D66: 38	SEC

6D67: 79 D7 11	ADC $11D7,Y

6D6A: 78	SEI
6D6B: 99 D7 11	STA $11D7,Y
6D6E: AD 35 11	LDA $1135
6D71: 0E 6E 11	ASL $116E
6D74: 10 12	BPL $6D88
6D76: 18	CLC
6D77: 79 D6 11	ADC $11D6,Y
6D7A: 99 D6 11	STA $11D6,Y
6D7D: B0 03	BCS $6D82
6D7F: EE 36 11	INC $1136

6D82: AD E6 11	LDA $11E6
6D85: 4C 91 6D	JMP $6D91

6D88: 99 D6 11	STA $11D6,Y
6D8B: AD E6 11	LDA $11E6
6D8E: 1D B3 6C	ORA $6CB3,X	; Bit Masks

6D91: 4E 36 11	LSR $1136
6D94: B0 03	BCS $6D99
6D96: 5D B3 6C	EOR $6CB3,X	; Bit Masks

6D99: 8D E6 11	STA $11E6
6D9C: 58	CLI
6D9D: 60	RTS

; Parse Sprite Parameter 

6D9E: 20 C6 6D	JSR $6DC6	; Check for comma
6DA1: 6E 6E 11	ROR $116E
6DA4: 10 0B	BPL $6DB1
6DA6: C9 3B	CMP #$3B	; ";"
6DA8: F0 13	BEQ $6DBD
6DAA: C9 23	CMP #$23	; "#"
6DAC: F0 0E	BEQ $6DBC
6DAE: 4C 6C 79	JMP $796C	; Syntax Error

6DB1: 20 86 03	JSR $0386	; CHRGOT entry
6DB4: C9 AA	CMP #$AA	; Token +
6DB6: F0 05	BEQ $6DBD
6DB8: C9 AB	CMP #$AB	; Token -
6DBA: F0 01	BEQ $6DBD

6DBC: 18	CLC

6DBD: 6E 6E 11	ROR $116E

6DC0: 20 D7 77	JSR $77D7	; Type Match Check
6DC3: 4C 19 88	JMP $8819	; Get Signed Integer

; ?

6DC6: 20 86 03	JSR $0386	; CHRGOT entry
6DC9: F0 0D	BEQ $6DD8
6DCB: C9 2C	CMP #$2C
6DCD: 18	CLC
6DCE: F0 01	BEQ $6DD1
6DD0: 38	SEC

6DD1: 08	PHP
6DD2: 48	PHA
6DD3: 20 80 03	JSR $0380	; CHRGET
6DD6: 68	PLA
6DD7: 28	PLP

6DD8: 60	RTS

; Sprite Motion Table Offsets

6DD9: 00 0B 16 21 2C 37 42 4D	; '{0}{LOCK}.!,7bm'

; Perform [play]

6DE1: 20 7B 87	JSR $877B	; Evaluate String
6DE4: 8D 03 FF	STA $FF03
6DE7: 85 77	STA $77
6DE9: 20 CE 6F	JSR $6FCE
6DEC: 85 78	STA $78

6DEE: A4 78	LDY $78
6DF0: C4 77	CPY $77
6DF2: F0 0D	BEQ $6E01
6DF4: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
6DF7: 8D 03 FF	STA $FF03
6DFA: 20 02 6E	JSR $6E02	; Analyze Play Character
6DFD: E6 78	INC $78
6DFF: D0 ED	BNE $6DEE

6E01: 60	RTS

; Analyze Play Character

6E02: C9 20	CMP #$20
6E04: D0 01	BNE $6E07
6E06: 60	RTS

6E07: C9 41	CMP #$41
6E09: 90 07	BCC $6E12
6E0B: C9 48	CMP #$48
6E0D: B0 03	BCS $6E12
6E0F: 4C 1E 6F	JMP $6F1E	; Note A-G

6E12: A2 04	LDX #$04

6E14: DD E7 6F	CMP $6FE7,X	; Length Characters
6E17: D0 03	BNE $6E1C
6E19: 4C 07 6F	JMP $6F07	; Note Length Char

6E1C: CA	DEX
6E1D: 10 F5	BPL $6E14
6E1F: C9 52	CMP #$52
6E21: D0 03	BNE $6E26
6E23: 4C 78 6F	JMP $6F78	; Rest

6E26: C9 2E	CMP #$2E
6E28: D0 03	BNE $6E2D
6E2A: 4C 03 6F	JMP $6F03	; Dotted Note

6E2D: A2 05	LDX #$05

6E2F: DD EC 6F	CMP $6FEC,X	; Command Characters
6E32: D0 03	BNE $6E37
6E34: 4C 52 6F	JMP $6F52	; ...votxum...

6E37: CA	DEX
6E38: 10 F5	BPL $6E2F
6E3A: C9 23	CMP #$23
6E3C: D0 03	BNE $6E41
6E3E: 4C 69 6F	JMP $6F69	; Sharp

6E41: C9 24	CMP #$24
6E43: D0 03	BNE $6E48
6E45: 4C 6C 6F	JMP $6F6C	; Flat

6E48: 38	SEC
6E49: E9 30	SBC #$30
6E4B: C9 0A	CMP #$0A
6E4D: 90 03	BCC $6E52
6E4F: 4C FD 6E	JMP $6EFD	; Play Error

6E52: 0E 26 01	ASL $0126
6E55: B0 46	BCS $6E9D	; -Voice
6E57: 0E 26 01	ASL $0126
6E5A: B0 4C	BCS $6EA8	; -Octave
6E5C: 0E 26 01	ASL $0126
6E5F: B0 50	BCS $6EB1
6E61: 0E 26 01	ASL $0126
6E64: 90 77	BCC $6EDD	; -Volume

; -Filter

6E66: C9 02	CMP #$02
6E68: 90 03	BCC $6E6D
6E6A: 4C FD 6E	JMP $6EFD	; Play Error

6E6D: 4A	LSR A
6E6E: AC 2F 12	LDY $122F
6E71: BE E4 6F	LDX $6FE4,Y	; Voice Times Two

6E74: BD 24 12	LDA $1224,X
6E77: 10 FB	BPL $6E74
6E79: B9 B3 6C	LDA $6CB3,Y	; Bit Masks
6E7C: 0D 73 12	ORA $1273
6E7F: B0 03	BCS $6E84
6E81: 59 B3 6C	EOR $6CB3,Y	; Bit Masks

6E84: 8D 73 12	STA $1273
6E87: AD 74 12	LDA $1274
6E8A: 8D 75 12	STA $1275
6E8D: A2 03	LDX #$03

6E8F: BD 71 12	LDA $1271,X
6E92: 20 45 A8	JSR $A845	; Set Bank 15
6E95: 9D 15 D4	STA $D415,X
6E98: CA	DEX
6E99: 10 F4	BPL $6E8F
6E9B: 30 5A	BMI $6EF7

; -Voice

6E9D: AA	TAX
6E9E: CA	DEX
6E9F: E0 03	CPX #$03
6EA1: B0 5A	BCS $6EFD	; Play Error
6EA3: 8E 2F 12	STX $122F
6EA6: 90 4F	BCC $6EF7

; -Octave

6EA8: C9 07	CMP #$07
6EAA: B0 51	BCS $6EFD	; Play Error
6EAC: 8D 2B 12	STA $122B
6EAF: 90 46	BCC $6EF7

6EB1: AA	TAX

; Set SID Sound

6EB2: 20 45 A8	JSR $A845	; Set Bank 15
6EB5: AC 2F 12	LDY $122F
6EB8: BD 53 12	LDA $1253,X
6EBB: 99 30 12	STA $1230,Y
6EBE: B9 39 70	LDA $7039,Y	; SID Voice Offsets
6EC1: A8	TAY
6EC2: BD 3F 12	LDA $123F,X
6EC5: 99 05 D4	STA $D405,Y
6EC8: BD 49 12	LDA $1249,X
6ECB: 99 06 D4	STA $D406,Y
6ECE: BD 5D 12	LDA $125D,X
6ED1: 99 02 D4	STA $D402,Y
6ED4: BD 67 12	LDA $1267,X
6ED7: 99 03 D4	STA $D403,Y
6EDA: 4C F7 6E	JMP $6EF7

; -Volume

6EDD: AA	TAX
6EDE: AD 74 12	LDA $1274
6EE1: 29 F0	AND #$F0
6EE3: 1D 3C 70	ORA $703C,X	; SID Volume Scale
6EE6: 8D 74 12	STA $1274
6EE9: AD 75 12	LDA $1275
6EEC: 29 F0	AND #$F0
6EEE: 1D 3C 70	ORA $703C,X	; SID Volume Scale
6EF1: 20 45 A8	JSR $A845	; Set Bank 15
6EF4: 8D 18 D4	STA $D418

6EF7: A9 00	LDA #$00
6EF9: 8D 26 01	STA $0126
6EFC: 60	RTS

; Play Error

6EFD: 20 F7 6E	JSR $6EF7
6F00: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

; Dotted Note

6F03: 8D 33 12	STA $1233
6F06: 60	RTS

; Note Length Char

6F07: A0 80	LDY #$80
6F09: 8C 29 12	STY $1229
6F0C: A0 04	LDY #$04
6F0E: 8C 2A 12	STY $122A

6F11: CA	DEX
6F12: 30 09	BMI $6F1D
6F14: 4E 2A 12	LSR $122A
6F17: 6E 29 12	ROR $1229
6F1A: 4C 11 6F	JMP $6F11

6F1D: 60	RTS

; Note A-G

6F1E: 38	SEC
6F1F: E9 41	SBC #$41
6F21: AA	TAX
6F22: BD F2 6F	LDA $6FF2,X	; Indexes for Note Symbols
6F25: AA	TAX
6F26: A9 06	LDA #$06
6F28: 38	SEC
6F29: ED 2B 12	SBC $122B
6F2C: A8	TAY
6F2D: 8A	TXA
6F2E: 18	CLC
6F2F: 6D 2C 12	ADC $122C
6F32: 10 03	BPL $6F37
6F34: A9 0B	LDA #$0B
6F36: C8	INY

6F37: C9 0C	CMP #$0C
6F39: 90 03	BCC $6F3E
6F3B: A9 00	LDA #$00
6F3D: 88	DEY

6F3E: AA	TAX
6F3F: BD F9 6F	LDA $6FF9,X	; Pitch LO -- NTSC
6F42: 8D 2D 12	STA $122D
6F45: 20 A6 7E	JSR $7EA6	; Patch for Note A-G

6F48: 88	DEY
6F49: 30 27	BMI $6F72
6F4B: 4A	LSR A
6F4C: 6E 2D 12	ROR $122D
6F4F: 4C 48 6F	JMP $6F48

; ...votxum...

6F52: C9 4D	CMP #$4D
6F54: F0 07	BEQ $6F5D
6F56: BD 1C 9D	LDA $9D1C,X	; Bit Masks
6F59: 8D 26 01	STA $0126
6F5C: 60	RTS

6F5D: A0 05	LDY #$05

6F5F: B9 23 12	LDA $1223,Y
6F62: 10 FB	BPL $6F5F
6F64: 88	DEY
6F65: 88	DEY
6F66: 10 F7	BPL $6F5F
6F68: 60	RTS

; Sharp

6F69: A9 01	LDA #$01
6F6B: 2C	.BYTE $2C

; Flat

6F6C: A9 FF	LDA #$FF
6F6E: 8D 2C 12	STA $122C
6F71: 60	RTS

6F72: 8D 2E 12	STA $122E
6F75: A9 00	LDA #$00
6F77: 2C	.BYTE $2C

; Rest

6F78: A9 FF	LDA #$FF
6F7A: 48	PHA
6F7B: AE 2F 12	LDX $122F
6F7E: BC E4 6F	LDY $6FE4,X	; Voice Times Two

6F81: B9 24 12	LDA $1224,Y
6F84: 10 FB	BPL $6F81
6F86: AD 29 12	LDA $1229
6F89: 99 23 12	STA $1223,Y
6F8C: AD 2A 12	LDA $122A
6F8F: 99 24 12	STA $1224,Y
6F92: AD 33 12	LDA $1233
6F95: F0 17	BEQ $6FAE
6F97: AD 2A 12	LDA $122A
6F9A: 4A	LSR A
6F9B: 48	PHA
6F9C: AD 29 12	LDA $1229
6F9F: 6A	ROR A
6FA0: 18	CLC
6FA1: 79 23 12	ADC $1223,Y
6FA4: 99 23 12	STA $1223,Y
6FA7: 68	PLA
6FA8: 79 24 12	ADC $1224,Y
6FAB: 99 24 12	STA $1224,Y

6FAE: 68	PLA
6FAF: 30 1D	BMI $6FCE
6FB1: 20 45 A8	JSR $A845	; Set Bank 15
6FB4: BC 39 70	LDY $7039,X	; SID Voice Offsets
6FB7: AD 2D 12	LDA $122D
6FBA: 99 00 D4	STA $D400,Y
6FBD: AD 2E 12	LDA $122E
6FC0: 99 01 D4	STA $D401,Y
6FC3: A9 08	LDA #$08
6FC5: 99 04 D4	STA $D404,Y
6FC8: BD 30 12	LDA $1230,X
6FCB: 99 04 D4	STA $D404,Y

6FCE: A9 00	LDA #$00
6FD0: 8D 2C 12	STA $122C
6FD3: 8D 33 12	STA $1233
6FD6: 60	RTS

; Perform [tempo]

6FD7: 20 F4 87	JSR $87F4	; -Eval Byte Parameter
6FDA: 8A	TXA
6FDB: F0 04	BEQ $6FE1
6FDD: 8E 22 12	STX $1222
6FE0: 60	RTS

6FE1: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

; Voice Times Two

6FE4: 00 02 04               	; '{0}{ULON}.'

; Length Characters

6FE7: 57 48 51 49 53         	; 'whqis'

; Command Characters

6FEC: 56 4F 54 58 55 4D      	; 'votxum'

; Indexes for Note Symbols

6FF2: 09 0B 00 02 04 05 07   	; '{TAB}{LOCK}{0}{ULON}.{WHITE}{BELL}'

; Pitch LO -- NTSC

6FF9: 0F 0C 45 BF 7D 83 D6 79	; '{FLSHON}{UNLOCK}e...VY'
7001: 73 C7 7C 97            	; 'SG.{GRAY1}'

; Pitch HI -- NTSC

7005: 43 47 4B 4F 54 59 5E 64	; 'cgkoty^d'
700D: 6A 70 77 7E            	; 'jPW.'

; Envelope A/D Patterns

7011: 09 C0 00 05 94 09 09 09	; '{TAB}.{0}{WHITE}{INS}{TAB}{TAB}{TAB}'
7019: 89 09 00 C0 F0 50 40 21	; '.{TAB}{0}..p@!'
7021: 00 90 41 00 41 21 11 81	; '{0}{BLACK}a{0}a!{DOWN}{ORANGE}'
7029: 11 21 41 41 41 11      	; '{DOWN}!aaa{DOWN}'

; Chime Seq

702F: 06 00 00 00 00 00 02 08	; '.{0}{0}{0}{0}{0}{ULON}.'
7037: 02 00                  	; '{ULON}{0}'

; SID Voice Offsets

7039: 00 07 0E               	; '{0}{BELL}{LOWTEXT}'

; SID Volume Scale

703C: 00 01 03 05 07 08 0A 0C	; '{0}.{STOP}{WHITE}{BELL}.{LF}{UNLOCK}'
7044: 0E 0F                  	; '{LOWTEXT}{FLSHON}'

; Perform [filter]

7046: 48	PHA
7047: A0 03	LDY #$03

7049: B9 71 12	LDA $1271,Y
704C: 99 34 12	STA $1234,Y
704F: 88	DEY
7050: 10 F7	BPL $7049
7052: 68	PLA
7053: C9 2C	CMP #$2C
7055: F0 19	BEQ $7070
7057: 20 12 88	JSR $8812	; -Input Float/Fixed Value
705A: C9 08	CMP #$08
705C: B0 60	BCS $70BE
705E: 8C 34 12	STY $1234
7061: 8C 35 12	STY $1235
7064: 4A	LSR A
7065: 6E 35 12	ROR $1235
7068: 4A	LSR A
7069: 6E 35 12	ROR $1235
706C: 4A	LSR A
706D: 6E 35 12	ROR $1235

7070: A9 10	LDA #$10
7072: 8D 38 12	STA $1238

7075: 20 1E 9E	JSR $9E1E
7078: 90 17	BCC $7091
707A: E0 01	CPX #$01
707C: 90 05	BCC $7083
707E: F0 03	BEQ $7083
7080: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

7083: AD 37 12	LDA $1237
7086: 0D 38 12	ORA $1238
7089: B0 03	BCS $708E
708B: 4D 38 12	EOR $1238

708E: 8D 37 12	STA $1237

7091: 0E 38 12	ASL $1238
7094: 10 DF	BPL $7075
7096: 20 1E 9E	JSR $9E1E
7099: 90 17	BCC $70B2
709B: E0 10	CPX #$10
709D: B0 1F	BCS $70BE
709F: 8A	TXA
70A0: 0A	ASL A
70A1: 0A	ASL A
70A2: 0A	ASL A
70A3: 0A	ASL A
70A4: 8D 39 12	STA $1239
70A7: AD 36 12	LDA $1236
70AA: 29 0F	AND #$0F
70AC: 0D 39 12	ORA $1239
70AF: 8D 36 12	STA $1236

70B2: A0 03	LDY #$03

70B4: B9 34 12	LDA $1234,Y
70B7: 99 71 12	STA $1271,Y
70BA: 88	DEY
70BB: 10 F7	BPL $70B4
70BD: 60	RTS

70BE: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

; Perform [envelope]

70C1: 20 F4 87	JSR $87F4	; -Eval Byte Parameter
70C4: E0 0A	CPX #$0A
70C6: 90 03	BCC $70CB

70C8: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

70CB: 8E 3A 12	STX $123A
70CE: BD 3F 12	LDA $123F,X
70D1: 8D 3B 12	STA $123B
70D4: BD 49 12	LDA $1249,X
70D7: 8D 3C 12	STA $123C
70DA: BD 53 12	LDA $1253,X
70DD: 8D 3D 12	STA $123D
70E0: A2 00	LDX #$00

70E2: 8E 3E 12	STX $123E
70E5: 20 1E 9E	JSR $9E1E
70E8: 90 16	BCC $7100
70EA: 8A	TXA
70EB: 0A	ASL A
70EC: 0A	ASL A
70ED: 0A	ASL A
70EE: 0A	ASL A
70EF: 8D 39 12	STA $1239
70F2: AE 3E 12	LDX $123E
70F5: BD 3B 12	LDA $123B,X
70F8: 29 0F	AND #$0F
70FA: 0D 39 12	ORA $1239
70FD: 9D 3B 12	STA $123B,X

7100: 20 1E 9E	JSR $9E1E
7103: 90 14	BCC $7119
7105: 8A	TXA
7106: 29 0F	AND #$0F
7108: 8D 39 12	STA $1239
710B: AE 3E 12	LDX $123E
710E: BD 3B 12	LDA $123B,X
7111: 29 F0	AND #$F0
7113: 0D 39 12	ORA $1239
7116: 9D 3B 12	STA $123B,X

7119: AE 3E 12	LDX $123E
711C: E8	INX
711D: E0 01	CPX #$01
711F: F0 C1	BEQ $70E2
7121: 20 1E 9E	JSR $9E1E
7124: 90 10	BCC $7136
7126: A9 15	LDA #$15
7128: E0 04	CPX #$04
712A: F0 07	BEQ $7133
712C: B0 9A	BCS $70C8
712E: BD B7 6C	LDA $6CB7,X
7131: 09 01	ORA #$01

7133: 8D 3D 12	STA $123D

7136: 20 06 9E	JSR $9E06	; Check Optional Float/Fixed Parameter
7139: 90 13	BCC $714E
713B: AA	TAX
713C: AD 3D 12	LDA $123D
713F: 29 40	AND #$40
7141: F0 0B	BEQ $714E
7143: 8A	TXA
7144: AE 3A 12	LDX $123A
7147: 9D 67 12	STA $1267,X
714A: 98	TYA
714B: 9D 5D 12	STA $125D,X

714E: AE 3A 12	LDX $123A
7151: AD 3B 12	LDA $123B
7154: 9D 3F 12	STA $123F,X
7157: AD 3C 12	LDA $123C
715A: 9D 49 12	STA $1249,X
715D: AD 3D 12	LDA $123D
7160: 9D 53 12	STA $1253,X
7163: 60	RTS

; Perform [collision]

7164: 20 F4 87	JSR $87F4	; -Eval Byte Parameter
7167: CA	DEX
7168: E0 03	CPX #$03
716A: B0 21	BCS $718D
716C: 8E 80 12	STX $1280
716F: 20 06 9E	JSR $9E06	; Check Optional Float/Fixed Parameter
7172: 08	PHP
7173: AE 80 12	LDX $1280
7176: 9D 7C 12	STA $127C,X
7179: 98	TYA
717A: 9D 79 12	STA $1279,X	; Collision IRQ Address Tables
717D: AD 7F 12	LDA $127F	; Collision Mask
7180: 1D B3 6C	ORA $6CB3,X	; Bit Masks
7183: 28	PLP
7184: B0 03	BCS $7189
7186: 5D B3 6C	EOR $6CB3,X	; Bit Masks

7189: 8D 7F 12	STA $127F	; Collision Mask
718C: 60	RTS

718D: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

; Perform [sprcolor]

7190: C9 2C	CMP #$2C
7192: F0 0E	BEQ $71A2
7194: 20 F4 87	JSR $87F4	; -Eval Byte Parameter
7197: CA	DEX
7198: E0 10	CPX #$10
719A: B0 17	BCS $71B3
719C: 20 45 A8	JSR $A845	; Set Bank 15
719F: 8E 25 D0	STX $D025

71A2: 20 1E 9E	JSR $9E1E
71A5: 90 0B	BCC $71B2
71A7: CA	DEX
71A8: E0 10	CPX #$10
71AA: B0 07	BCS $71B3
71AC: 20 45 A8	JSR $A845	; Set Bank 15
71AF: 8E 26 D0	STX $D026

71B2: 60	RTS

71B3: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

; Perform [width]

71B6: 20 F4 87	JSR $87F4	; -Eval Byte Parameter
71B9: CA	DEX
71BA: E0 02	CPX #$02
71BC: B0 04	BCS $71C2
71BE: 8E 6B 11	STX $116B	; Double Width Flag
71C1: 60	RTS

71C2: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

; Perform [vol]

71C5: 20 F4 87	JSR $87F4	; -Eval Byte Parameter
71C8: E0 10	CPX #$10
71CA: B0 1D	BCS $71E9
71CC: 86 77	STX $77
71CE: AD 74 12	LDA $1274
71D1: 29 F0	AND #$F0
71D3: 05 77	ORA $77
71D5: 8D 74 12	STA $1274
71D8: AD 75 12	LDA $1275
71DB: 29 F0	AND #$F0
71DD: 05 77	ORA $77
71DF: 8D 75 12	STA $1275
71E2: 20 45 A8	JSR $A845	; Set Bank 15
71E5: 8D 18 D4	STA $D418
71E8: 60	RTS

71E9: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

; Perform [sound]

71EC: 20 F4 87	JSR $87F4	; -Eval Byte Parameter
71EF: CA	DEX
71F0: E0 03	CPX #$03
71F2: 90 03	BCC $71F7

71F4: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

71F7: 8E 81 12	STX $1281
71FA: 20 0F 88	JSR $880F	; Input Next Float/Fixed Value
71FD: 8C A5 12	STY $12A5
7200: 8D A6 12	STA $12A6
7203: 8C AC 12	STY $12AC
7206: 8D AD 12	STA $12AD
7209: 20 0F 88	JSR $880F	; Input Next Float/Fixed Value
720C: C9 80	CMP #$80
720E: B0 E4	BCS $71F4
7210: 8C A3 12	STY $12A3
7213: 8D A4 12	STA $12A4
7216: 20 1C 9E	JSR $9E1C	; Input Optional Byte Parameter   -Check Byte Parameter in List
7219: E0 03	CPX #$03

721B: B0 D7	BCS $71F4
721D: 8A	TXA
721E: 8D A9 12	STA $12A9
7221: 29 01	AND #$01
7223: 08	PHP
7224: 20 06 9E	JSR $9E06	; Check Optional Float/Fixed Parameter
7227: 8C A7 12	STY $12A7
722A: 8D A8 12	STA $12A8
722D: 20 06 9E	JSR $9E06	; Check Optional Float/Fixed Parameter
7230: 28	PLP
7231: F0 0D	BEQ $7240
7233: 48	PHA
7234: 98	TYA
7235: 49 FF	EOR #$FF
7237: 18	CLC
7238: 69 01	ADC #$01
723A: A8	TAY
723B: 68	PLA
723C: 49 FF	EOR #$FF
723E: 69 00	ADC #$00

7240: 8D AB 12	STA $12AB
7243: 98	TYA
7244: 8D AA 12	STA $12AA
7247: A2 02	LDX #$02
7249: 20 1E 9E	JSR $9E1E
724C: E0 04	CPX #$04
724E: B0 CB	BCS $721B
7250: BD B7 6C	LDA $6CB7,X
7253: 09 01	ORA #$01
7255: 8D B0 12	STA $12B0
7258: 20 06 9E	JSR $9E06	; Check Optional Float/Fixed Parameter
725B: B0 04	BCS $7261
725D: A9 08	LDA #$08
725F: A0 00	LDY #$00

7261: C9 10	CMP #$10
7263: B0 8F	BCS $71F4
7265: 8C AE 12	STY $12AE
7268: 8D AF 12	STA $12AF
726B: AD A3 12	LDA $12A3
726E: 0D A4 12	ORA $12A4
7271: F0 46	BEQ $72B9
7273: AE 81 12	LDX $1281
7276: 8A	TXA
7277: 0A	ASL A
7278: A8	TAY

7279: B9 24 12	LDA $1224,Y
727C: 10 FB	BPL $7279

727E: BD 85 12	LDA $1285,X
7281: 10 FB	BPL $727E
7283: A0 00	LDY #$00

7285: B9 A5 12	LDA $12A5,Y
7288: 9D 88 12	STA $1288,X
728B: E8	INX
728C: E8	INX
728D: E8	INX
728E: C8	INY
728F: C0 09	CPY #$09
7291: D0 F2	BNE $7285
7293: AE 81 12	LDX $1281
7296: BC 39 70	LDY $7039,X	; SID Voice Offsets
7299: 20 45 A8	JSR $A845	; Set Bank 15
729C: A9 08	LDA #$08
729E: 99 04 D4	STA $D404,Y
72A1: A9 00	LDA #$00
72A3: 99 05 D4	STA $D405,Y
72A6: A9 F0	LDA #$F0
72A8: 99 06 D4	STA $D406,Y
72AB: A2 00	LDX #$00

72AD: BD AC 12	LDA $12AC,X
72B0: 99 00 D4	STA $D400,Y
72B3: C8	INY
72B4: E8	INX
72B5: E0 05	CPX #$05
72B7: D0 F4	BNE $72AD

72B9: AE 81 12	LDX $1281
72BC: AC A3 12	LDY $12A3
72BF: AD A4 12	LDA $12A4
72C2: 78	SEI
72C3: 9D 85 12	STA $1285,X
72C6: 98	TYA
72C7: 9D 82 12	STA $1282,X
72CA: 58	CLI
72CB: 60	RTS

; Perform [window]

72CC: 20 F4 87	JSR $87F4	; -Eval Byte Parameter
72CF: E0 28	CPX #$28
72D1: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
72D3: 10 02	BPL $72D7
72D5: E0 50	CPX #$50

72D7: B0 59	BCS $7332
72D9: 8E B3 12	STX $12B3
72DC: 20 09 88	JSR $8809
72DF: E0 19	CPX #$19
72E1: B0 4F	BCS $7332
72E3: 8E B4 12	STX $12B4
72E6: 20 09 88	JSR $8809
72E9: E0 28	CPX #$28
72EB: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
72ED: 10 02	BPL $72F1
72EF: E0 50	CPX #$50

72F1: B0 3F	BCS $7332
72F3: 8E B5 12	STX $12B5
72F6: EC B3 12	CPX $12B3
72F9: 90 37	BCC $7332
72FB: 20 09 88	JSR $8809
72FE: E0 19	CPX #$19
7300: B0 30	BCS $7332
7302: 8E B6 12	STX $12B6
7305: EC B4 12	CPX $12B4
7308: 90 28	BCC $7332
730A: 20 1C 9E	JSR $9E1C	; Input Optional Byte Parameter   -Check Byte Parameter in List
730D: E0 02	CPX #$02
730F: B0 21	BCS $7332
7311: 8A	TXA
7312: 48	PHA
7313: AE B3 12	LDX $12B3
7316: AD B4 12	LDA $12B4
7319: 18	CLC
731A: 20 2D C0	JSR $C02D	; Set Window
731D: AE B5 12	LDX $12B5
7320: AD B6 12	LDA $12B6
7323: 38	SEC
7324: 20 2D C0	JSR $C02D	; Set Window
7327: A2 13	LDX #$13
7329: 68	PLA
732A: F0 02	BEQ $732E
732C: A2 93	LDX #$93

732E: 8A	TXA
732F: 4C 69 92	JMP $9269	; Call 'chrout'

7332: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

; Perform [boot]

7335: A9 E6	LDA #$E6
7337: A2 FC	LDX #$FC
7339: 20 C3 A3	JSR $A3C3
733C: A5 80	LDA $80
733E: 4A	LSR A
733F: 90 1D	BCC $735E
7341: 20 1F A2	JSR $A21F
7344: B0 29	BCS $736F
7346: AE D5 03	LDX $03D5	; Current Bank For SYS, POKE, PEEK
7349: A5 81	LDA $81
734B: 4A	LSR A
734C: 90 03	BCC $7351
734E: AE 1F 01	LDX $011F

7351: 86 02	STX $02 	; Bank Number, Jump to SYS Address
7353: A5 AC	LDA $AC
7355: 85 04	STA $04 	; SYS address high, MLM register PC
7357: A5 AD	LDA $AD
7359: 85 03	STA $03 	; SYS address low, MLM register PC
735B: 4C 6E FF	JMP $FF6E	; jsrfar

735E: AD 12 01	LDA $0112
7361: 09 30	ORA #$30
7363: AE 1C 01	LDX $011C
7366: 20 45 A8	JSR $A845	; Set Bank 15
7369: 20 53 FF	JSR $FF53	; boot call
736C: B0 01	BCS $736F
736E: 60	RTS

736F: 4C D0 90	JMP $90D0	; I/O Error Message

; Perform [sprdef]

7372: 20 4F 9F	JSR $9F4F	; Allocate 9K Graphics Area for graphic/sprdef
7375: 20 45 A8	JSR $A845	; Set Bank 15
7378: A9 D0	LDA #$D0
737A: 8D 68 11	STA $1168
737D: A9 20	LDA #$20
737F: 85 D8	STA $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
7381: 20 30 6B	JSR $6B30
7384: A0 80	LDY #$80
7386: 8C 3D 11	STY $113D
7389: A0 18	LDY #$18
738B: A9 20	LDA #$20
738D: A2 00	LDX #$00

738F: 20 DB 68	JSR $68DB	; ?
7392: E8	INX
7393: E0 15	CPX #$15
7395: 90 F8	BCC $738F

7397: 20 DB 68	JSR $68DB	; ?
739A: 88	DEY
739B: 10 FA	BPL $7397
739D: 20 45 A8	JSR $A845	; Set Bank 15
73A0: A5 F1	LDA $F1 	; Curr Attribute to Print (Default FGND Color)
73A2: 48	PHA
73A3: AD 21 D0	LDA $D021
73A6: 85 F1	STA $F1 	; Curr Attribute to Print (Default FGND Color)
73A8: A9 2B	LDA #$2B
73AA: A2 00	LDX #$00
73AC: 8E 3D 11	STX $113D

73AF: A0 00	LDY #$00

73B1: 20 DB 68	JSR $68DB	; ?
73B4: C8	INY
73B5: C0 18	CPY #$18
73B7: 90 F8	BCC $73B1
73B9: E8	INX
73BA: E0 15	CPX #$15
73BC: 90 F1	BCC $73AF
73BE: 68	PLA
73BF: 85 F1	STA $F1 	; Curr Attribute to Print (Default FGND Color)
73C1: 20 D4 76	JSR $76D4	; ?

73C4: A0 02	LDY #$02
73C6: A2 17	LDX #$17

73C8: B9 6C 76	LDA $766C,Y
73CB: F0 06	BEQ $73D3
73CD: 20 DB 68	JSR $68DB	; ?
73D0: C8	INY
73D1: D0 F5	BNE $73C8

73D3: 20 45 A8	JSR $A845	; Set Bank 15

73D6: 20 E4 FF	JSR $FFE4	; (igetin)      Get Vector [EEEB]
73D9: F0 FB	BEQ $73D6
73DB: C9 0D	CMP #$0D
73DD: D0 08	BNE $73E7
73DF: 20 30 6B	JSR $6B30
73E2: A9 00	LDA #$00
73E4: 85 D8	STA $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
73E6: 60	RTS

73E7: 38	SEC
73E8: E9 31	SBC #$31
73EA: 8D FC 12	STA $12FC
73ED: C9 08	CMP #$08
73EF: B0 E5	BCS $73D6
73F1: AA	TAX
73F2: 0A	ASL A
73F3: A8	TAY
73F4: BD B3 6C	LDA $6CB3,X	; Bit Masks
73F7: 8D 6D 11	STA $116D
73FA: 2D 1C D0	AND $D01C
73FD: F0 02	BEQ $7401
73FF: A9 80	LDA #$80

7401: 8D FA 12	STA $12FA
7404: A9 08	LDA #$08
7406: 99 D6 11	STA $11D6,Y
7409: A9 4A	LDA #$4A
740B: 99 D7 11	STA $11D7,Y
740E: AD 6D 11	LDA $116D
7411: 0D E6 11	ORA $11E6
7414: 8D E6 11	STA $11E6
7417: AD 6D 11	LDA $116D
741A: 8D 15 D0	STA $D015
741D: AE FC 12	LDX $12FC
7420: BC D9 6D	LDY $6DD9,X	; Sprite Motion Table Offsets
7423: A9 00	LDA #$00
7425: 99 7E 11	STA $117E,Y	; Sprite Motion Tables (8 x 11 bytes)
7428: 8A	TXA
7429: A0 11	LDY #$11
742B: A2 17	LDX #$17
742D: 18	CLC
742E: 69 31	ADC #$31
7430: 20 DB 68	JSR $68DB	; ?
7433: 20 45 A8	JSR $A845	; Set Bank 15
7436: AD FC 12	LDA $12FC
7439: 4A	LSR A
743A: 6A	ROR A
743B: 6A	ROR A
743C: 85 4B	STA $4B
743E: A0 0E	LDY #$0E
7440: 90 01	BCC $7443
7442: C8	INY

7443: 84 4C	STY $4C
7445: 20 D1 75	JSR $75D1	; -?
7448: A0 3F	LDY #$3F

744A: B1 4B	LDA ($4B),Y
744C: 99 B7 12	STA $12B7,Y
744F: 88	DEY
7450: 10 F8	BPL $744A

; -Perform [home]

7452: A2 00	LDX #$00
7454: 8E 5F 11	STX $115F
7457: 8E 5E 11	STX $115E

745A: 20 4A 76	JSR $764A	; -?

745D: 20 E4 FF	JSR $FFE4	; (igetin)      Get Vector [EEEB]
7460: F0 FB	BEQ $745D
7462: 48	PHA
7463: 20 4A 76	JSR $764A	; -?
7466: 68	PLA
7467: A2 10	LDX #$10

7469: DD B4 76	CMP $76B4,X
746C: D0 0D	BNE $747B
746E: CA	DEX
746F: 8A	TXA
7470: AE FC 12	LDX $12FC
7473: 9D 27 D0	STA $D027,X
7476: 20 D1 75	JSR $75D1	; -?
7479: B0 DF	BCS $745A

747B: CA	DEX
747C: D0 EB	BNE $7469
747E: A2 11	LDX #$11

7480: DD 7F 76	CMP $767F,X	; SPRDEF Commands
7483: F0 05	BEQ $748A
7485: CA	DEX
7486: 10 F8	BPL $7480
7488: 30 D0	BMI $745A

748A: 8A	TXA
748B: A8	TAY
748C: 0A	ASL A
748D: AA	TAX
748E: BD 91 76	LDA $7691,X	; SPRDEF Command Vectors HI/LO
7491: 48	PHA
7492: BD 92 76	LDA $7692,X
7495: 48	PHA
7496: 60	RTS

; -Perform [1234]

7497: 98	TYA
7498: 85 8F	STA $8F
749A: 20 10 76	JSR $7610	; -?
749D: 48	PHA
749E: AC 5E 11	LDY $115E
74A1: AE 5F 11	LDX $115F
74A4: 20 C5 76	JSR $76C5	; ?
74A7: 68	PLA
74A8: 20 3F 76	JSR $763F	; -?
74AB: AC 5E 11	LDY $115E
74AE: 98	TYA
74AF: 29 07	AND #$07
74B1: AA	TAX
74B2: 98	TYA
74B3: 4A	LSR A
74B4: 4A	LSR A
74B5: 4A	LSR A
74B6: 18	CLC
74B7: 6D 5F 11	ADC $115F
74BA: 6D 5F 11	ADC $115F
74BD: 6D 5F 11	ADC $115F
74C0: A8	TAY
74C1: B1 4B	LDA ($4B),Y
74C3: 2C FA 12	BIT $12FA
74C6: 10 18	BPL $74E0
74C8: 85 8E	STA $8E
74CA: BD 1C 9D	LDA $9D1C,X	; Bit Masks
74CD: 1D 1D 9D	ORA $9D1D,X
74D0: 48	PHA
74D1: 05 8E	ORA $8E
74D3: 85 8E	STA $8E
74D5: 68	PLA
74D6: A6 8F	LDX $8F
74D8: 3D 25 9F	AND $9F25,X	; Multicolor Pixel Masks
74DB: 45 8E	EOR $8E
74DD: 4C EA 74	JMP $74EA

74E0: 1D 1C 9D	ORA $9D1C,X	; Bit Masks
74E3: 06 8F	ASL $8F
74E5: D0 03	BNE $74EA
74E7: 5D 1C 9D	EOR $9D1C,X	; Bit Masks

74EA: 91 4B	STA ($4B),Y
74EC: 2C FA 12	BIT $12FA
74EF: 50 4E	BVC $753F	; -Perform [right]
74F1: 4C 5A 74	JMP $745A

; -Perform [stop]

74F4: A0 3F	LDY #$3F

74F6: B9 B7 12	LDA $12B7,Y
74F9: 91 4B	STA ($4B),Y
74FB: 88	DEY
74FC: 10 F8	BPL $74F6

; -Perform [shift-return]

74FE: A9 00	LDA #$00
7500: 8D 15 D0	STA $D015
7503: 4C C4 73	JMP $73C4

; -Perform [m]

7506: AD FA 12	LDA $12FA
7509: 49 80	EOR #$80
750B: 8D FA 12	STA $12FA
750E: 20 D1 75	JSR $75D1	; -?
7511: AD 5E 11	LDA $115E
7514: 29 FE	AND #$FE
7516: 8D 5E 11	STA $115E
7519: A0 1C	LDY #$1C
751B: 2C	.BYTE $2C

; -Perform [y]

751C: A0 17	LDY #$17
751E: 2C	.BYTE $2C

; -Perform [x]

751F: A0 1D	LDY #$1D
7521: B9 00 D0	LDA $D000,Y
7524: AE FC 12	LDX $12FC
7527: 5D B3 6C	EOR $6CB3,X	; Bit Masks
752A: 99 00 D0	STA $D000,Y
752D: 4C 5A 74	JMP $745A

; -Perform [clr]

7530: A0 3F	LDY #$3F
7532: A9 00	LDA #$00

7534: 91 4B	STA ($4B),Y
7536: 88	DEY
7537: 10 FB	BPL $7534
7539: 20 D4 76	JSR $76D4	; ?
753C: 4C 52 74	JMP $7452	; -Perform [home]

; -Perform [right]

753F: A9 01	LDA #$01
7541: 2C	.BYTE $2C

; -Perform [left]

7542: A9 FF	LDA #$FF
7544: 2C FA 12	BIT $12FA
7547: 10 01	BPL $754A
7549: 0A	ASL A

754A: 18	CLC
754B: 6D 5E 11	ADC $115E
754E: 30 09	BMI $7559
7550: C9 18	CMP #$18
7552: B0 2D	BCS $7581	; -Perform [return]
7554: 8D 5E 11	STA $115E
7557: 90 25	BCC $757E

7559: A2 17	LDX #$17
755B: 2C FA 12	BIT $12FA
755E: 10 01	BPL $7561
7560: CA	DEX

7561: 8E 5E 11	STX $115E

; -Perform [up]

7564: A9 FF	LDA #$FF
7566: 2C	.BYTE $2C

; -Perform [down]

7567: A9 01	LDA #$01
7569: 18	CLC
756A: 6D 5F 11	ADC $115F
756D: C9 15	CMP #$15
756F: B0 0D	BCS $757E
7571: 8D 5F 11	STA $115F
7574: 90 08	BCC $757E

; -Perform [a]

7576: AD FA 12	LDA $12FA
7579: 49 40	EOR #$40
757B: 8D FA 12	STA $12FA

757E: 4C 5A 74	JMP $745A

; -Perform [return]

7581: A9 00	LDA #$00
7583: 8D 5E 11	STA $115E
7586: F0 DF	BEQ $7567	; -Perform [down]

; -Perform [c]

7588: A0 02	LDY #$02
758A: A2 18	LDX #$18

758C: B9 61 76	LDA $7661,Y
758F: F0 06	BEQ $7597
7591: 20 DB 68	JSR $68DB	; ?
7594: C8	INY
7595: D0 F5	BNE $758C

7597: 20 45 A8	JSR $A845	; Set Bank 15

759A: 20 E4 FF	JSR $FFE4	; (igetin)      Get Vector [EEEB]
759D: F0 FB	BEQ $759A
759F: C9 0D	CMP #$0D
75A1: F0 1F	BEQ $75C2
75A3: 38	SEC
75A4: E9 31	SBC #$31
75A6: C9 08	CMP #$08
75A8: B0 F0	BCS $759A
75AA: 4A	LSR A
75AB: 6A	ROR A
75AC: 6A	ROR A
75AD: 85 8E	STA $8E
75AF: A0 0E	LDY #$0E
75B1: 90 01	BCC $75B4
75B3: C8	INY

75B4: 84 8F	STY $8F
75B6: A0 3F	LDY #$3F

75B8: B1 8E	LDA ($8E),Y
75BA: 91 4B	STA ($4B),Y
75BC: 88	DEY
75BD: 10 F9	BPL $75B8
75BF: 20 D1 75	JSR $75D1	; -?

75C2: A9 00	LDA #$00
75C4: A8	TAY

75C5: 99 00 3E	STA $3E00,Y
75C8: 88	DEY
75C9: D0 FA	BNE $75C5
75CB: 4C 5A 74	JMP $745A

; Unused

75CE: FF FF FF               	; '...'

; -?

75D1: A2 00	LDX #$00
75D3: 8E 60 11	STX $1160

75D6: 8E FB 12	STX $12FB
75D9: 20 C5 76	JSR $76C5	; ?
75DC: A0 00	LDY #$00

75DE: A2 08	LDX #$08
75E0: 8C 6E 11	STY $116E
75E3: AC 60 11	LDY $1160
75E6: B1 4B	LDA ($4B),Y
75E8: EE 60 11	INC $1160
75EB: AC 6E 11	LDY $116E

75EE: 0A	ASL A
75EF: 2C FA 12	BIT $12FA
75F2: 10 02	BPL $75F6
75F4: 2A	ROL A
75F5: CA	DEX

75F6: 48	PHA
75F7: 2A	ROL A
75F8: 20 10 76	JSR $7610	; -?
75FB: 20 3F 76	JSR $763F	; -?
75FE: C8	INY
75FF: 68	PLA
7600: CA	DEX
7601: D0 EB	BNE $75EE
7603: C0 18	CPY #$18
7605: 90 D7	BCC $75DE
7607: AE FB 12	LDX $12FB
760A: E8	INX
760B: E0 15	CPX #$15
760D: 90 C7	BCC $75D6
760F: 60	RTS

; -?

7610: 29 03	AND #$03
7612: 4A	LSR A
7613: 6A	ROR A
7614: F0 0F	BEQ $7625
7616: 2C FA 12	BIT $12FA
7619: 10 0F	BPL $762A
761B: AD 25 D0	LDA $D025
761E: 90 14	BCC $7634
7620: AD 26 D0	LDA $D026
7623: B0 0F	BCS $7634

7625: AD 21 D0	LDA $D021
7628: 90 0A	BCC $7634

762A: 86 8E	STX $8E
762C: AE FC 12	LDX $12FC
762F: BD 27 D0	LDA $D027,X
7632: A6 8E	LDX $8E

7634: 29 0F	AND #$0F
7636: 85 8E	STA $8E
7638: 0A	ASL A
7639: 0A	ASL A
763A: 0A	ASL A
763B: 0A	ASL A
763C: 05 8E	ORA $8E
763E: 60	RTS

; -?

763F: 91 8C	STA ($8C),Y
7641: 2C FA 12	BIT $12FA
7644: 10 03	BPL $7649
7646: C8	INY
7647: 91 8C	STA ($8C),Y

7649: 60	RTS

; -?

764A: AE 5F 11	LDX $115F
764D: 20 C5 76	JSR $76C5	; ?
7650: AC 5E 11	LDY $115E
7653: 2C FA 12	BIT $12FA
7656: 10 03	BPL $765B
7658: 20 5B 76	JSR $765B

765B: B1 8C	LDA ($8C),Y
765D: 49 80	EOR #$80
765F: 91 8C	STA ($8C),Y

7661: C8	INY
7662: 60	RTS

; ?

7663: 43 4F 50 59 20 46 52 4F	; 'copy fro'
766B: 4D                     	; 'm'

766C: 3F 00 53 50 52 49 54 45	; '?{0}sprite'
7674: 20 4E 55 4D 42 45 52 3F	; ' number?'
767C: 20 20 00               	; '  {0}'

; SPRDEF Commands

767F: 31 32 33 34 03 8D 58 59	; '1234{STOP}{SHCR}xy'
7687: 4D 9D 1D 91 11 93 13 41	; 'm{LEFT}{RIGHT}{UP}{DOWN}{CLR}{HOME}a'
768F: 0D 43                  	; '{CR}c'

; SPRDEF Command Vectors HI/LO

7691: 74 96	.BYTE >($7497-1),<($7497-1)	; -Perform [1234]
7693: 74 96	.BYTE >($7497-1),<($7497-1)	; -Perform [1234]
7695: 74 96	.BYTE >($7497-1),<($7497-1)	; -Perform [1234]
7697: 74 96	.BYTE >($7497-1),<($7497-1)	; -Perform [1234]
7699: 74 F3	.BYTE >($74F4-1),<($74F4-1)	; -Perform [stop]
769B: 74 FD	.BYTE >($74FE-1),<($74FE-1)	; -Perform [shift-return]
769D: 75 1E	.BYTE >($751F-1),<($751F-1)	; -Perform [x]
769F: 75 1B	.BYTE >($751C-1),<($751C-1)	; -Perform [y]
76A1: 75 05	.BYTE >($7506-1),<($7506-1)	; -Perform [m]
76A3: 75 41	.BYTE >($7542-1),<($7542-1)	; -Perform [left]
76A5: 75 3E	.BYTE >($753F-1),<($753F-1)	; -Perform [right]
76A7: 75 63	.BYTE >($7564-1),<($7564-1)	; -Perform [up]
76A9: 75 66	.BYTE >($7567-1),<($7567-1)	; -Perform [down]
76AB: 75 2F	.BYTE >($7530-1),<($7530-1)	; -Perform [clr]
76AD: 74 51	.BYTE >($7452-1),<($7452-1)	; -Perform [home]
76AF: 75 75	.BYTE >($7576-1),<($7576-1)	; -Perform [a]
76B1: 75 80	.BYTE >($7581-1),<($7581-1)	; -Perform [return]
76B3: 75 87	.BYTE >($7588-1),<($7588-1)	; -Perform [c]

; SPRDEF Color Commands

76B5: 90 05 1C 9F 9C 1E 1F 9E	; '{BLACK}{WHITE}{RED}{CYAN}{PURPLE}{GREEN}{BLUE}{YELLOW}'
76BD: 81 95 96 97 98 99 9A 9B	; '{ORANGE}{BROWN}{LTRED}{GRAY1}{GRAY2}{LTGREEN}{LTBLUE}{GRAY3}'

; ?

76C5: BD 33 C0	LDA $C033,X	; Screen Address Low
76C8: 85 8C	STA $8C
76CA: BD 4C C0	LDA $C04C,X	; Screen Address High
76CD: 29 03	AND #$03
76CF: 09 1C	ORA #$1C
76D1: 85 8D	STA $8D
76D3: 60	RTS

; ?

76D4: AD 21 D0	LDA $D021
76D7: 20 34 76	JSR $7634
76DA: A2 14	LDX #$14

76DC: 48	PHA
76DD: 20 C5 76	JSR $76C5	; ?
76E0: 68	PLA
76E1: A0 17	LDY #$17

76E3: 91 8C	STA ($8C),Y
76E5: 88	DEY
76E6: 10 FB	BPL $76E3
76E8: CA	DEX
76E9: 10 F1	BPL $76DC
76EB: 60	RTS

; Perform [sprsav]

76EC: 20 7C 77	JSR $777C	; get expression first argument
76EF: B0 2F	BCS $7720	; got string
76F1: 85 4B	STA $4B		; sprite address low
76F3: 84 4C	STY $4C		; sprite address high
76F5: A0 3E	LDY #$3E	; 3x21 bytes of sprite data

76F7: B1 4B	LDA ($4B),Y	; copy from sprite
76F9: 99 B7 12	STA $12B7,Y	; to buffer for shape data structure
76FC: 88	DEY
76FD: 10 F8	BPL $76F7
76FF: C8	INY
7700: 8C F7 12	STY $12F7	; finalize shape data structure: X,Y
7703: 8C F9 12	STY $12F9	; high bytes are 0
7706: A9 17	LDA #$17	; shape X dimension - 1
7708: 8D F6 12	STA $12F6
770B: A9 14	LDA #$14	; shape Y dimension - 1
770D: 8D F8 12	STA $12F8
7710: A2 B7	LDX #$B7
7712: A0 12	LDY #$12	; sprite data buffer
7714: 86 70	STX $70		; -> ($70)
7716: 84 71	STY $71
7718: A9 43	LDA #$43	; $3F (data) + $04 (dimension data)
771A: 20 CC 86	JSR $86CC	; allocate string space and fill from ($70)
771D: 20 99 77	JSR $7799	; pull string from top of SDS

7720: 8E DB 03	STX $03DB	; descriptor: string length
7723: 8D DC 03	STA $03DC	; descriptor: address low
7726: 8C DD 03	STY $03DD	; descriptor: address high
7729: 20 5C 79	JSR $795C	; -Check Comma
772C: A5 3D	LDA $3D 	; Textpointer: BASIC work point (chrget)
772E: 8D E0 03	STA $03E0	; keep textpointer for later variable search
7731: A5 3E	LDA $3E
7733: 8D E1 03	STA $03E1
7736: 20 7C 77	JSR $777C	; get 2nd argument
7739: B0 25	BCS $7760	; got string result
773B: 85 8C	STA $8C		; sprite address low
773D: 84 8D	STY $8D		; sprite address high
773F: AD DC 03	LDA $03DC	; source shape address low
7742: 85 4B	STA $4B
7744: AD DD 03	LDA $03DD	; source shape address high
7747: 85 4C	STA $4C
7749: A0 00	LDY #$00	; init. index

774B: CC DB 03	CPY $03DB	; max. string length
774E: F0 0F	BEQ $775F
7750: A9 4B	LDA #$4B
7752: 20 AB 03	JSR $03AB	; Fetch From RAM Bank 1 ($4B)
7755: 8D 03 FF	STA $FF03	
7758: 91 8C	STA ($8C),Y	; copy source to sprite
775A: C8	INY
775B: C0 3F	CPY #$3F	; sprite length
775D: D0 EC	BNE $774B

775F: 60	RTS

7760: AD E0 03	LDA $03E0	; saved textpointer restore ...
7763: 85 3D	STA $3D 	; Textpointer: BASIC work point (chrget)
7765: AD E1 03	LDA $03E1
7768: 85 3E	STA $3E
776A: 20 AF 7A	JSR $7AAF	; Locate Variable
776D: 85 4B	STA $4B
776F: 84 4C	STY $4C
7771: A9 DB	LDA #$DB	; $03DB (source descriptor)
7773: 85 66	STA $66		; into ($66) as descriptor pointer
7775: A9 03	LDA #$03
7777: 85 67	STA $67
7779: 4C 05 54	JMP $5405	; assign to variable

; get sprite data (sprite number or string shape)

777C: 20 EF 77	JSR $77EF	; Evaluate Expression
777F: 24 0F	BIT $0F		; expression type?
7781: 30 16	BMI $7799	; string value
7783: 20 F7 87	JSR $87F7	; get integer byte
7786: CA	DEX		; -1
7787: E0 08	CPX #$08
7789: B0 0B	BCS $7796	; >=8 -> error "?ILL. QUAN."
778B: 8A	TXA
778C: 4A	LSR A		; times 64 (per sprite)
778D: 6A	ROR A
778E: 6A	ROR A
778F: A0 0E	LDY #$0E	; $0Exx (sprite 1 to 4)
7791: 90 01	BCC $7794
7793: C8	INY		; $0Fxx (sprite 5 to 8)

7794: 18	CLC		; mark for "from sprite"
7795: 60	RTS

7796: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

7799: A5 66	LDA $66
779B: A4 67	LDY $67
779D: 20 E0 87	JSR $87E0	; Clean Descriptor Stack
77A0: A0 00	LDY #$00
77A2: 20 E7 42	JSR $42E7	; Get From ($66) Bank1
77A5: AA	TAX
77A6: C8	INY
77A7: 20 E7 42	JSR $42E7	; Get From ($66) Bank1
77AA: 48	PHA
77AB: C8	INY
77AC: 20 E7 42	JSR $42E7	; Get From ($66) Bank1
77AF: A8	TAY
77B0: 68	PLA
77B1: 38	SEC
77B2: 60	RTS

; Perform [fast]

77B3: 20 45 A8	JSR $A845	; Set Bank 15
77B6: AD 11 D0	LDA $D011
77B9: 29 6F	AND #$6F
77BB: 8D 11 D0	STA $D011
77BE: A9 01	LDA #$01
77C0: 8D 30 D0	STA $D030
77C3: 60	RTS

; Perform [slow]

77C4: 20 45 A8	JSR $A845	; Set Bank 15
77C7: A9 00	LDA #$00
77C9: 8D 30 D0	STA $D030
77CC: AD 11 D0	LDA $D011
77CF: 29 7F	AND #$7F
77D1: 09 10	ORA #$10
77D3: 8D 11 D0	STA $D011
77D6: 60	RTS

; Type Match Check

77D7: 20 EF 77	JSR $77EF	; Evaluate Expression

; Confirm Numeric

77DA: 18	CLC
77DB: 90 01	BCC $77DE

; Confirm String

77DD: 38	SEC

77DE: 24 0F	BIT $0F
77E0: 30 03	BMI $77E5
77E2: B0 03	BCS $77E7	; Print 'type mismatch'

77E4: 60	RTS

77E5: B0 FD	BCS $77E4

; Print 'type mismatch'

77E7: A2 16	LDX #$16
77E9: 2C	.BYTE $2C

; Print 'formula too complex'

77EA: A2 19	LDX #$19
77EC: 4C 3C 4D	JMP $4D3C	; Error

; Evaluate Expression

77EF: A6 3D	LDX $3D 	; Textpointer: BASIC work point (chrget)
77F1: D0 02	BNE $77F5
77F3: C6 3E	DEC $3E

77F5: C6 3D	DEC $3D 	; Textpointer: BASIC work point (chrget)
77F7: A2 00	LDX #$00
77F9: 24	.BYTE $24

77FA: 48	PHA
77FB: 8A	TXA
77FC: 48	PHA
77FD: BA	TSX
77FE: E0 63	CPX #$63
7800: 90 E8	BCC $77EA	; Print 'formula too complex'
7802: 20 D7 78	JSR $78D7	; Evaluate Item
7805: A9 00	LDA #$00
7807: 85 4F	STA $4F

7809: 20 86 03	JSR $0386	; CHRGOT entry

780C: 38	SEC
780D: E9 B1	SBC #$B1
780F: 90 17	BCC $7828
7811: C9 03	CMP #$03
7813: B0 13	BCS $7828
7815: C9 01	CMP #$01
7817: 2A	ROL A
7818: 49 01	EOR #$01
781A: 45 4F	EOR $4F
781C: C5 4F	CMP $4F
781E: 90 61	BCC $7881
7820: 85 4F	STA $4F
7822: 20 80 03	JSR $0380	; CHRGET
7825: 4C 0C 78	JMP $780C

7828: A6 4F	LDX $4F
782A: D0 2C	BNE $7858
782C: B0 7E	BCS $78AC
782E: 69 07	ADC #$07
7830: 90 7A	BCC $78AC
7832: 65 0F	ADC $0F
7834: D0 03	BNE $7839
7836: 4C 0D 87	JMP $870D

7839: 69 FF	ADC #$FF
783B: 85 24	STA $24
783D: 0A	ASL A
783E: 65 24	ADC $24
7840: A8	TAY

7841: 68	PLA
7842: D9 28 48	CMP $4828,Y	; Defunct Vectors
7845: B0 6A	BCS $78B1
7847: 20 DA 77	JSR $77DA	; Confirm Numeric

784A: 48	PHA

784B: 20 71 78	JSR $7871
784E: 68	PLA
784F: A4 4D	LDY $4D
7851: 10 17	BPL $786A
7853: AA	TAX
7854: F0 59	BEQ $78AF
7856: D0 62	BNE $78BA

7858: 46 0F	LSR $0F
785A: 8A	TXA
785B: 2A	ROL A
785C: A6 3D	LDX $3D 	; Textpointer: BASIC work point (chrget)
785E: D0 02	BNE $7862
7860: C6 3E	DEC $3E

7862: C6 3D	DEC $3D 	; Textpointer: BASIC work point (chrget)
7864: A0 1B	LDY #$1B
7866: 85 4F	STA $4F
7868: D0 D7	BNE $7841

786A: D9 28 48	CMP $4828,Y	; Defunct Vectors
786D: B0 4B	BCS $78BA
786F: 90 D9	BCC $784A

7871: B9 2A 48	LDA $482A,Y
7874: 48	PHA
7875: B9 29 48	LDA $4829,Y
7878: 48	PHA
7879: 20 84 78	JSR $7884
787C: A5 4F	LDA $4F
787E: 4C FA 77	JMP $77FA

7881: 4C 6C 79	JMP $796C	; Syntax Error

7884: A5 68	LDA $68
7886: BE 28 48	LDX $4828,Y	; Defunct Vectors
7889: A8	TAY
788A: 18	CLC
788B: 68	PLA
788C: 69 01	ADC #$01
788E: 85 24	STA $24
7890: 68	PLA
7891: 69 00	ADC #$00
7893: 85 25	STA $25
7895: 98	TYA
7896: 48	PHA
7897: 20 47 8C	JSR $8C47	; Round FAC#1
789A: A5 67	LDA $67
789C: 48	PHA
789D: A5 66	LDA $66
789F: 48	PHA
78A0: A5 65	LDA $65
78A2: 48	PHA
78A3: A5 64	LDA $64
78A5: 48	PHA
78A6: A5 63	LDA $63
78A8: 48	PHA
78A9: 6C 24 00	JMP ($24)

78AC: A0 FF	LDY #$FF
78AE: 68	PLA

78AF: F0 23	BEQ $78D4

78B1: C9 64	CMP #$64
78B3: F0 03	BEQ $78B8
78B5: 20 DA 77	JSR $77DA	; Confirm Numeric

78B8: 84 4D	STY $4D

78BA: 68	PLA
78BB: 4A	LSR A
78BC: 85 14	STA $14
78BE: 68	PLA
78BF: 85 6A	STA $6A
78C1: 68	PLA
78C2: 85 6B	STA $6B
78C4: 68	PLA
78C5: 85 6C	STA $6C
78C7: 68	PLA
78C8: 85 6D	STA $6D
78CA: 68	PLA
78CB: 85 6E	STA $6E
78CD: 68	PLA
78CE: 85 6F	STA $6F
78D0: 45 68	EOR $68
78D2: 85 70	STA $70

78D4: A5 63	LDA $63
78D6: 60	RTS

; Evaluate Item

78D7: 6C 0A 03	JMP ($030A)	; Get Arithmetic Element Link [78DA]

; Get Arithmetic Element

78DA: A9 00	LDA #$00
78DC: 85 0F	STA $0F

78DE: 20 80 03	JSR $0380	; CHRGET
78E1: B0 05	BCS $78E8

78E3: A2 00	LDX #$00
78E5: 4C 22 8D	JMP $8D22	; String to FAC#1

78E8: 20 3C 7B	JSR $7B3C	; Check Alphabetic
78EB: 90 03	BCC $78F0
78ED: 4C 78 79	JMP $7978	; Search For Variable

78F0: C9 FF	CMP #$FF
78F2: D0 0F	BNE $7903	; Continue Expression
78F4: A9 FE	LDA #$FE
78F6: A0 78	LDY #$78
78F8: 20 D4 8B	JSR $8BD4	; Unpack ROM to FAC#1
78FB: 4C 80 03	JMP $0380	; CHRGET

; Constant PI

78FE: 82 49 0F DA A1         	; '{ULOFF}i{FLSHON}Z.'

; Continue Expression

7903: C9 2E	CMP #$2E
7905: F0 DC	BEQ $78E3
7907: C9 AB	CMP #$AB
7909: F0 66	BEQ $7971
790B: C9 AA	CMP #$AA
790D: F0 CF	BEQ $78DE
790F: C9 22	CMP #$22
7911: D0 15	BNE $7928

7913: A5 3D	LDA $3D 	; Textpointer: BASIC work point (chrget)
7915: A4 3E	LDY $3E
7917: 69 00	ADC #$00
7919: 90 01	BCC $791C
791B: C8	INY

791C: 20 9A 86	JSR $869A	; Set Up String

791F: A6 72	LDX $72
7921: A4 73	LDY $73
7923: 86 3D	STX $3D 	; Textpointer: BASIC work point (chrget)
7925: 84 3E	STY $3E
7927: 60	RTS

7928: C9 A8	CMP #$A8
792A: D0 16	BNE $7942	; ?
792C: A0 18	LDY #$18
792E: D0 43	BNE $7973

; Evaluate <equal>

7930: 20 B4 84	JSR $84B4
7933: A5 67	LDA $67
7935: 49 FF	EOR #$FF
7937: A8	TAY
7938: A5 66	LDA $66
793A: 49 FF	EOR #$FF

; Fixed-Float

793C: 20 E5 84	JSR $84E5	; Set Up 16 Bit Fix-Float
793F: 4C 70 8C	JMP $8C70

; ?

7942: C9 A5	CMP #$A5
7944: D0 03	BNE $7949
7946: 4C 3B 85	JMP $853B	; Perform [fn]

7949: C9 B4	CMP #$B4
794B: 90 03	BCC $7950	; Eval Within Parens
794D: 4C F7 4B	JMP $4BF7	; Setup FN Reference

; Eval Within Parens

7950: 20 59 79	JSR $7959	; -Check Left Parenthesis
7953: 20 EF 77	JSR $77EF	; Evaluate Expression

; -Check Right Parenthesis

7956: A9 29	LDA #$29
7958: 2C	.BYTE $2C

; -Check Left Parenthesis

7959: A9 28	LDA #$28
795B: 2C	.BYTE $2C

; -Check Comma

795C: A9 2C	LDA #$2C

795E: A0 00	LDY #$00
7960: 85 79	STA $79
7962: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0
7965: C5 79	CMP $79
7967: D0 03	BNE $796C	; Syntax Error
7969: 4C 80 03	JMP $0380	; CHRGET

; Syntax Error

796C: A2 0B	LDX #$0B
796E: 4C 3C 4D	JMP $4D3C	; Error

7971: A0 15	LDY #$15

7973: 68	PLA
7974: 68	PLA
7975: 4C 4B 78	JMP $784B

; Search For Variable

7978: 20 AF 7A	JSR $7AAF	; Locate Variable
797B: 85 66	STA $66
797D: 84 67	STY $67
797F: A6 47	LDX $47
7981: A4 48	LDY $48
7983: A5 0F	LDA $0F
7985: F0 63	BEQ $79EA
7987: A9 00	LDA #$00
7989: 85 71	STA $71
798B: E0 54	CPX #$54	; "T"
798D: D0 25	BNE $79B4
798F: C0 C9	CPY #$C9	; "I" (string) -> TI$
7991: D0 20	BNE $79B3
7993: A5 66	LDA $66
7995: C9 D2	CMP #$D2
7997: D0 1A	BNE $79B3
7999: A5 67	LDA $67
799B: C9 03	CMP #$03
799D: D0 14	BNE $79B3
799F: 20 1A 7A	JSR $7A1A
79A2: 84 60	STY $60
79A4: 88	DEY
79A5: 84 72	STY $72
79A7: A0 06	LDY #$06
79A9: 84 5F	STY $5F
79AB: A0 24	LDY #$24
79AD: 20 CD 8E	JSR $8ECD
79B0: 4C B8 85	JMP $85B8

79B3: 60	RTS

79B4: E0 44	CPX #$44	; "D"
79B6: D0 FB	BNE $79B3
79B8: C0 D3	CPY #$D3	; "S" (string) -> DS$
79BA: D0 F7	BNE $79B3
79BC: 20 E3 79	JSR $79E3	; get floppy channel
79BF: A0 FF	LDY #$FF

79C1: C8	INY
79C2: A9 7B	LDA #$7B
79C4: 20 AB 03	JSR $03AB	; Fetch From RAM Bank 1
79C7: C9 00	CMP #$00
79C9: D0 F6	BNE $79C1
79CB: 98	TYA
79CC: 20 88 86	JSR $8688	; Calc String Vector
79CF: A8	TAY
79D0: F0 0E	BEQ $79E0

79D2: 88	DEY
79D3: A9 7B	LDA #$7B
79D5: 20 AB 03	JSR $03AB	; Fetch From RAM Bank 1
79D8: 91 37	STA ($37),Y
79DA: 98	TYA
79DB: D0 F5	BNE $79D2
79DD: 20 71 87	JSR $8771

79E0: 4C E3 86	JMP $86E3

79E3: A5 7A	LDA $7A		; already read?
79E5: D0 40	BNE $7A27	; exit
79E7: 4C 78 A7	JMP $A778	; Get Floppy Channel

79EA: 24 10	BIT $10
79EC: 10 0F	BPL $79FD
79EE: A0 00	LDY #$00
79F0: 20 E7 42	JSR $42E7	; Get From ($66) Bank1
79F3: AA	TAX
79F4: C8	INY
79F5: 20 E7 42	JSR $42E7	; Get From ($66) Bank1
79F8: A8	TAY
79F9: 8A	TXA
79FA: 4C 3C 79	JMP $793C	; Fixed-Float

79FD: A5 67	LDA $67
79FF: C9 03	CMP #$03
7A01: D0 7E	BNE $7A81
7A03: A5 66	LDA $66
7A05: C9 D2	CMP #$D2
7A07: D0 78	BNE $7A81
7A09: E0 54	CPX #$54	; "T"
7A0B: D0 1B	BNE $7A28
7A0D: C0 49	CPY #$49	; "I" -> TI
7A0F: D0 70	BNE $7A81
7A11: 20 1A 7A	JSR $7A1A
7A14: 98	TYA
7A15: A2 A0	LDX #$A0
7A17: 4C 7B 8C	JMP $8C7B

7A1A: 20 DE FF	JSR $FFDE	; rdtim         Read Real-Time Clock
7A1D: 86 66	STX $66
7A1F: 84 65	STY $65
7A21: 85 67	STA $67
7A23: A0 00	LDY #$00
7A25: 84 64	STY $64

7A27: 60	RTS

7A28: E0 53	CPX #$53	; "S"
7A2A: D0 0A	BNE $7A36
7A2C: C0 54	CPY #$54	; "T"
7A2E: D0 51	BNE $7A81
7A30: 20 51 92	JSR $9251	; Call 'status'
7A33: 4C 68 8C	JMP $8C68	; Byte Fixed-Float

7A36: E0 44	CPX #$44	; "E"
7A38: D0 26	BNE $7A60
7A3A: C0 53	CPY #$53	; "R"
7A3C: D0 43	BNE $7A81
7A3E: 20 E3 79	JSR $79E3
7A41: A0 00	LDY #$00
7A43: A9 7B	LDA #$7B
7A45: 20 AB 03	JSR $03AB	; Fetch From RAM Bank 1
7A48: 29 0F	AND #$0F
7A4A: 0A	ASL A
7A4B: 85 11	STA $11
7A4D: 0A	ASL A
7A4E: 0A	ASL A
7A4F: 65 11	ADC $11
7A51: 85 11	STA $11
7A53: C8	INY
7A54: A9 7B	LDA #$7B
7A56: 20 AB 03	JSR $03AB	; Fetch From RAM Bank 1
7A59: 29 0F	AND #$0F
7A5B: 65 11	ADC $11
7A5D: 4C 68 8C	JMP $8C68	; Byte Fixed-Float

7A60: E0 45	CPX #$45	; "E"
7A62: D0 1D	BNE $7A81
7A64: C0 52	CPY #$52	; "R"
7A66: F0 10	BEQ $7A78
7A68: C0 4C	CPY #$4C	; "L"
7A6A: D0 15	BNE $7A81
7A6C: 8D 03 FF	STA $FF03
7A6F: AD 0A 12	LDA $120A	; systemvariable EL: last error line
7A72: AC 09 12	LDY $1209
7A75: 4C C9 84	JMP $84C9	; Float (.y, .a)

7A78: 8D 03 FF	STA $FF03
7A7B: AD 08 12	LDA $1208	; systemvariable ER: last error number
7A7E: 4C 68 8C	JMP $8C68	; Byte Fixed-Float

7A81: A5 66	LDA $66
7A83: A4 67	LDY $67

; Unpack RAM1 to FAC#1

7A85: 85 24	STA $24
7A87: 84 25	STY $25
7A89: A0 00	LDY #$00
7A8B: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
7A8E: 85 63	STA $63
7A90: 84 71	STY $71
7A92: C8	INY
7A93: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
7A96: 85 68	STA $68
7A98: 09 80	ORA #$80
7A9A: 85 64	STA $64
7A9C: C8	INY
7A9D: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
7AA0: 85 65	STA $65
7AA2: C8	INY
7AA3: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
7AA6: 85 66	STA $66
7AA8: C8	INY
7AA9: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
7AAC: 85 67	STA $67
7AAE: 60	RTS

; Locate Variable

7AAF: A2 00	LDX #$00
7AB1: 20 86 03	JSR $0386	; CHRGOT entry

7AB4: 86 0E	STX $0E

7AB6: 85 47	STA $47
7AB8: 20 86 03	JSR $0386	; CHRGOT entry
7ABB: 20 3C 7B	JSR $7B3C	; Check Alphabetic
7ABE: B0 03	BCS $7AC3

7AC0: 4C 6C 79	JMP $796C	; Syntax Error

7AC3: A2 00	LDX #$00
7AC5: 86 0F	STX $0F
7AC7: 86 10	STX $10
7AC9: 20 80 03	JSR $0380	; CHRGET
7ACC: 90 05	BCC $7AD3
7ACE: 20 3C 7B	JSR $7B3C	; Check Alphabetic
7AD1: 90 0B	BCC $7ADE

7AD3: AA	TAX

7AD4: 20 80 03	JSR $0380	; CHRGET
7AD7: 90 FB	BCC $7AD4
7AD9: 20 3C 7B	JSR $7B3C	; Check Alphabetic
7ADC: B0 F6	BCS $7AD4

7ADE: C9 24	CMP #$24
7AE0: D0 06	BNE $7AE8
7AE2: A9 FF	LDA #$FF
7AE4: 85 0F	STA $0F
7AE6: D0 10	BNE $7AF8

7AE8: C9 25	CMP #$25
7AEA: D0 13	BNE $7AFF
7AEC: A5 12	LDA $12
7AEE: D0 D0	BNE $7AC0
7AF0: A9 80	LDA #$80
7AF2: 85 10	STA $10
7AF4: 05 47	ORA $47
7AF6: 85 47	STA $47

7AF8: 8A	TXA
7AF9: 09 80	ORA #$80
7AFB: AA	TAX
7AFC: 20 80 03	JSR $0380	; CHRGET

7AFF: 86 48	STX $48
7B01: 38	SEC
7B02: 05 12	ORA $12
7B04: E9 28	SBC #$28
7B06: D0 03	BNE $7B0B
7B08: 4C AB 7C	JMP $7CAB	; Set Up Array

7B0B: A0 00	LDY #$00
7B0D: 84 12	STY $12
7B0F: A5 2F	LDA $2F 	; Pointer: Start-of-variables (bank 1)
7B11: A6 30	LDX $30

7B13: 86 62	STX $62

7B15: 85 61	STA $61
7B17: E4 32	CPX $32
7B19: D0 04	BNE $7B1F
7B1B: C5 31	CMP $31
7B1D: F0 27	BEQ $7B46	; Create Variable

7B1F: 20 00 43	JSR $4300	; Get From ($61) Bank1
7B22: C5 47	CMP $47
7B24: D0 0C	BNE $7B32
7B26: C8	INY
7B27: 20 00 43	JSR $4300	; Get From ($61) Bank1
7B2A: C5 48	CMP $48
7B2C: D0 03	BNE $7B31
7B2E: 4C 57 7C	JMP $7C57

7B31: 88	DEY

7B32: 18	CLC
7B33: A5 61	LDA $61
7B35: 69 07	ADC #$07
7B37: 90 DC	BCC $7B15
7B39: E8	INX
7B3A: D0 D7	BNE $7B13

; Check Alphabetic

7B3C: C9 41	CMP #$41
7B3E: 90 05	BCC $7B45
7B40: E9 5B	SBC #$5B
7B42: 38	SEC
7B43: E9 A5	SBC #$A5

7B45: 60	RTS

; Create Variable

7B46: BA	TSX
7B47: BD 02 01	LDA $0102,X
7B4A: C9 83	CMP #$83
7B4C: F0 04	BEQ $7B52
7B4E: C9 79	CMP #$79
7B50: D0 2A	BNE $7B7C

7B52: A9 D2	LDA #$D2
7B54: A0 03	LDY #$03
7B56: 60	RTS

7B57: C0 C9	CPY #$C9
7B59: F0 F7	BEQ $7B52
7B5B: C0 49	CPY #$49
7B5D: D0 31	BNE $7B90
7B5F: F0 18	BEQ $7B79

7B61: C0 D3	CPY #$D3
7B63: F0 14	BEQ $7B79
7B65: C0 53	CPY #$53
7B67: D0 27	BNE $7B90
7B69: F0 0E	BEQ $7B79

7B6B: C0 54	CPY #$54
7B6D: D0 21	BNE $7B90
7B6F: F0 08	BEQ $7B79

7B71: C0 52	CPY #$52
7B73: F0 04	BEQ $7B79
7B75: C0 4C	CPY #$4C
7B77: D0 17	BNE $7B90

7B79: 4C 6C 79	JMP $796C	; Syntax Error

7B7C: A5 47	LDA $47
7B7E: A4 48	LDY $48
7B80: C9 54	CMP #$54
7B82: F0 D3	BEQ $7B57
7B84: C9 53	CMP #$53
7B86: F0 E3	BEQ $7B6B
7B88: C9 45	CMP #$45
7B8A: F0 E5	BEQ $7B71
7B8C: C9 44	CMP #$44
7B8E: F0 D1	BEQ $7B61

7B90: A5 31	LDA $31
7B92: A4 32	LDY $32
7B94: 85 61	STA $61
7B96: 84 62	STY $62
7B98: A5 33	LDA $33
7B9A: A4 34	LDY $34
7B9C: 85 5C	STA $5C
7B9E: 84 5D	STY $5D
7BA0: 18	CLC
7BA1: 69 07	ADC #$07
7BA3: 90 01	BCC $7BA6
7BA5: C8	INY

7BA6: 85 5A	STA $5A
7BA8: 84 5B	STY $5B
7BAA: 20 66 7C	JSR $7C66
7BAD: A5 5A	LDA $5A
7BAF: A4 5B	LDY $5B
7BB1: C8	INY
7BB2: 85 31	STA $31
7BB4: 84 32	STY $32
7BB6: 85 5A	STA $5A
7BB8: 84 5B	STY $5B

7BBA: A5 5A	LDA $5A
7BBC: A6 5B	LDX $5B

7BBE: E4 34	CPX $34
7BC0: D0 06	BNE $7BC8
7BC2: C5 33	CMP $33
7BC4: D0 02	BNE $7BC8
7BC6: F0 78	BEQ $7C40

7BC8: 85 24	STA $24
7BCA: 86 25	STX $25
7BCC: A0 00	LDY #$00
7BCE: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
7BD1: AA	TAX
7BD2: C8	INY
7BD3: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
7BD6: 08	PHP
7BD7: C8	INY
7BD8: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
7BDB: 65 5A	ADC $5A
7BDD: 85 5A	STA $5A
7BDF: C8	INY
7BE0: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
7BE3: 65 5B	ADC $5B
7BE5: 85 5B	STA $5B
7BE7: 28	PLP
7BE8: 10 D0	BPL $7BBA
7BEA: 8A	TXA
7BEB: 30 CD	BMI $7BBA
7BED: C8	INY
7BEE: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
7BF1: A0 00	LDY #$00
7BF3: 0A	ASL A
7BF4: 69 05	ADC #$05
7BF6: 65 24	ADC $24
7BF8: 85 24	STA $24
7BFA: 90 02	BCC $7BFE
7BFC: E6 25	INC $25

7BFE: A6 25	LDX $25
7C00: E4 5B	CPX $5B
7C02: D0 04	BNE $7C08
7C04: C5 5A	CMP $5A
7C06: F0 B6	BEQ $7BBE

7C08: A0 00	LDY #$00
7C0A: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
7C0D: F0 24	BEQ $7C33
7C0F: 85 79	STA $79
7C11: C8	INY
7C12: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
7C15: 18	CLC
7C16: 65 79	ADC $79
7C18: 85 5C	STA $5C
7C1A: C8	INY
7C1B: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
7C1E: 69 00	ADC #$00
7C20: 85 5D	STA $5D
7C22: A0 00	LDY #$00
7C24: 20 E2 42	JSR $42E2	; Get From ($5c) Bank1
7C27: 69 07	ADC #$07
7C29: 91 5C	STA ($5C),Y
7C2B: C8	INY
7C2C: 20 E2 42	JSR $42E2	; Get From ($5c) Bank1
7C2F: 69 00	ADC #$00
7C31: 91 5C	STA ($5C),Y

7C33: A9 03	LDA #$03
7C35: 18	CLC
7C36: 65 24	ADC $24
7C38: 85 24	STA $24
7C3A: 90 C2	BCC $7BFE
7C3C: E6 25	INC $25
7C3E: D0 BE	BNE $7BFE

7C40: A0 00	LDY #$00
7C42: A5 47	LDA $47
7C44: 8D 04 FF	STA $FF04
7C47: 91 61	STA ($61),Y
7C49: C8	INY
7C4A: A5 48	LDA $48
7C4C: 91 61	STA ($61),Y
7C4E: A9 00	LDA #$00

7C50: C8	INY
7C51: 91 61	STA ($61),Y
7C53: C0 06	CPY #$06
7C55: D0 F9	BNE $7C50

7C57: A5 61	LDA $61
7C59: 18	CLC
7C5A: 69 02	ADC #$02
7C5C: A4 62	LDY $62
7C5E: 90 01	BCC $7C61
7C60: C8	INY

7C61: 85 49	STA $49
7C63: 84 4A	STY $4A
7C65: 60	RTS

7C66: 20 17 50	JSR $5017	; Check Memory Space
7C69: 85 33	STA $33
7C6B: 84 34	STY $34
7C6D: 38	SEC
7C6E: A5 5C	LDA $5C
7C70: E5 61	SBC $61
7C72: 85 24	STA $24
7C74: A8	TAY
7C75: A5 5D	LDA $5D
7C77: E5 62	SBC $62
7C79: AA	TAX
7C7A: E8	INX
7C7B: 98	TYA
7C7C: F0 25	BEQ $7CA3
7C7E: A5 5C	LDA $5C
7C80: 38	SEC
7C81: E5 24	SBC $24
7C83: 85 5C	STA $5C
7C85: B0 03	BCS $7C8A
7C87: C6 5D	DEC $5D
7C89: 38	SEC

7C8A: A5 5A	LDA $5A
7C8C: E5 24	SBC $24
7C8E: 85 5A	STA $5A
7C90: B0 09	BCS $7C9B
7C92: C6 5B	DEC $5B
7C94: 90 05	BCC $7C9B

7C96: 20 E2 42	JSR $42E2	; Get From ($5c) Bank1
7C99: 91 5A	STA ($5A),Y

7C9B: 88	DEY
7C9C: D0 F8	BNE $7C96
7C9E: 20 E2 42	JSR $42E2	; Get From ($5c) Bank1
7CA1: 91 5A	STA ($5A),Y

7CA3: C6 5D	DEC $5D
7CA5: C6 5B	DEC $5B
7CA7: CA	DEX
7CA8: D0 F1	BNE $7C9B
7CAA: 60	RTS

; Set Up Array

7CAB: A5 0E	LDA $0E
7CAD: 05 10	ORA $10
7CAF: 48	PHA
7CB0: A5 0F	LDA $0F
7CB2: 48	PHA
7CB3: A0 00	LDY #$00

7CB5: 98	TYA
7CB6: 48	PHA
7CB7: A5 48	LDA $48
7CB9: 48	PHA
7CBA: A5 47	LDA $47
7CBC: 48	PHA
7CBD: 20 A7 84	JSR $84A7	; Evaluate Fixed Number
7CC0: 68	PLA
7CC1: 85 47	STA $47
7CC3: 68	PLA
7CC4: 85 48	STA $48
7CC6: 68	PLA
7CC7: A8	TAY
7CC8: BA	TSX
7CC9: BD 02 01	LDA $0102,X
7CCC: 48	PHA
7CCD: BD 01 01	LDA $0101,X
7CD0: 48	PHA
7CD1: A5 66	LDA $66
7CD3: 9D 02 01	STA $0102,X
7CD6: A5 67	LDA $67
7CD8: 9D 01 01	STA $0101,X
7CDB: C8	INY
7CDC: 84 0D	STY $0D
7CDE: 20 86 03	JSR $0386	; CHRGOT entry
7CE1: A4 0D	LDY $0D
7CE3: C9 2C	CMP #$2C
7CE5: F0 CE	BEQ $7CB5
7CE7: 20 56 79	JSR $7956	; -Check Right Parenthesis
7CEA: 68	PLA
7CEB: 85 0F	STA $0F
7CED: 68	PLA
7CEE: 85 10	STA $10
7CF0: 29 7F	AND #$7F
7CF2: 85 0E	STA $0E
7CF4: A6 31	LDX $31
7CF6: A5 32	LDA $32

7CF8: 86 61	STX $61
7CFA: 85 62	STA $62
7CFC: C5 34	CMP $34
7CFE: D0 04	BNE $7D04
7D00: E4 33	CPX $33
7D02: F0 42	BEQ $7D46	; ?

7D04: A0 00	LDY #$00
7D06: 20 00 43	JSR $4300	; Get From ($61) Bank1
7D09: C8	INY
7D0A: C5 47	CMP $47
7D0C: D0 07	BNE $7D15
7D0E: 20 00 43	JSR $4300	; Get From ($61) Bank1
7D11: C5 48	CMP $48
7D13: F0 18	BEQ $7D2D	; ?

7D15: C8	INY
7D16: 20 00 43	JSR $4300	; Get From ($61) Bank1
7D19: 18	CLC
7D1A: 65 61	ADC $61
7D1C: AA	TAX
7D1D: C8	INY
7D1E: 20 00 43	JSR $4300	; Get From ($61) Bank1
7D21: 65 62	ADC $62
7D23: 90 D3	BCC $7CF8

; Print 'bad subscript'

7D25: A2 12	LDX #$12
7D27: 2C	.BYTE $2C

; Print 'illegal quantity'

7D28: A2 0E	LDX #$0E

7D2A: 4C 3C 4D	JMP $4D3C	; Error

; ?

7D2D: A2 13	LDX #$13
7D2F: A5 0E	LDA $0E
7D31: D0 F7	BNE $7D2A
7D33: 20 71 7E	JSR $7E71	; Array Pointer Subroutine
7D36: A0 04	LDY #$04
7D38: 20 00 43	JSR $4300	; Get From ($61) Bank1
7D3B: 85 79	STA $79
7D3D: A5 0D	LDA $0D
7D3F: C5 79	CMP $79
7D41: D0 E2	BNE $7D25	; Print 'bad subscript'
7D43: 4C D2 7D	JMP $7DD2

; ?

7D46: 20 71 7E	JSR $7E71	; Array Pointer Subroutine
7D49: 20 17 50	JSR $5017	; Check Memory Space
7D4C: A0 00	LDY #$00
7D4E: 84 73	STY $73
7D50: A2 05	LDX #$05
7D52: A5 47	LDA $47
7D54: 8D 04 FF	STA $FF04
7D57: 91 61	STA ($61),Y
7D59: 10 01	BPL $7D5C
7D5B: CA	DEX

7D5C: C8	INY
7D5D: A5 48	LDA $48
7D5F: 91 61	STA ($61),Y
7D61: 10 02	BPL $7D65
7D63: CA	DEX
7D64: CA	DEX

7D65: 86 72	STX $72
7D67: A5 0D	LDA $0D
7D69: C8	INY
7D6A: C8	INY
7D6B: C8	INY
7D6C: 91 61	STA ($61),Y

7D6E: A2 0B	LDX #$0B
7D70: A9 00	LDA #$00
7D72: 24 0E	BIT $0E
7D74: 50 08	BVC $7D7E
7D76: 68	PLA
7D77: 18	CLC
7D78: 69 01	ADC #$01
7D7A: AA	TAX
7D7B: 68	PLA
7D7C: 69 00	ADC #$00

7D7E: C8	INY
7D7F: 91 61	STA ($61),Y
7D81: C8	INY
7D82: 8A	TXA
7D83: 91 61	STA ($61),Y
7D85: 20 3E 7E	JSR $7E3E	; Compute Array Size
7D88: 86 72	STX $72
7D8A: 85 73	STA $73
7D8C: A4 24	LDY $24
7D8E: C6 0D	DEC $0D
7D90: D0 DC	BNE $7D6E
7D92: 65 5B	ADC $5B
7D94: B0 67	BCS $7DFD
7D96: 85 5B	STA $5B
7D98: A8	TAY
7D99: 8A	TXA
7D9A: 65 5A	ADC $5A
7D9C: 90 03	BCC $7DA1
7D9E: C8	INY
7D9F: F0 5C	BEQ $7DFD

7DA1: 20 17 50	JSR $5017	; Check Memory Space
7DA4: 85 33	STA $33
7DA6: 84 34	STY $34
7DA8: A9 00	LDA #$00
7DAA: E6 73	INC $73
7DAC: A4 72	LDY $72
7DAE: F0 05	BEQ $7DB5

7DB0: 88	DEY
7DB1: 91 5A	STA ($5A),Y
7DB3: D0 FB	BNE $7DB0

7DB5: C6 5B	DEC $5B
7DB7: C6 73	DEC $73
7DB9: D0 F5	BNE $7DB0
7DBB: E6 5B	INC $5B
7DBD: 38	SEC
7DBE: A5 33	LDA $33
7DC0: E5 61	SBC $61
7DC2: A0 02	LDY #$02
7DC4: 91 61	STA ($61),Y
7DC6: A5 34	LDA $34
7DC8: C8	INY
7DC9: E5 62	SBC $62
7DCB: 91 61	STA ($61),Y
7DCD: A5 0E	LDA $0E
7DCF: D0 6C	BNE $7E3D
7DD1: C8	INY

7DD2: 20 00 43	JSR $4300	; Get From ($61) Bank1
7DD5: 85 0D	STA $0D
7DD7: A9 00	LDA #$00
7DD9: 85 72	STA $72

7DDB: 85 73	STA $73
7DDD: C8	INY
7DDE: 68	PLA
7DDF: AA	TAX
7DE0: 85 66	STA $66
7DE2: 20 00 43	JSR $4300	; Get From ($61) Bank1
7DE5: 85 79	STA $79
7DE7: 68	PLA
7DE8: 85 67	STA $67
7DEA: C5 79	CMP $79
7DEC: 90 12	BCC $7E00
7DEE: D0 0A	BNE $7DFA
7DF0: C8	INY
7DF1: 20 00 43	JSR $4300	; Get From ($61) Bank1
7DF4: 85 79	STA $79
7DF6: E4 79	CPX $79
7DF8: 90 07	BCC $7E01

7DFA: 4C 25 7D	JMP $7D25	; Print 'bad subscript'

7DFD: 4C 3A 4D	JMP $4D3A	; Print 'out of memory'

7E00: C8	INY

7E01: A5 73	LDA $73
7E03: 05 72	ORA $72
7E05: 18	CLC
7E06: F0 0A	BEQ $7E12
7E08: 20 3E 7E	JSR $7E3E	; Compute Array Size
7E0B: 8A	TXA
7E0C: 65 66	ADC $66
7E0E: AA	TAX
7E0F: 98	TYA
7E10: A4 24	LDY $24

7E12: 65 67	ADC $67
7E14: 86 72	STX $72
7E16: C6 0D	DEC $0D
7E18: D0 C1	BNE $7DDB
7E1A: 85 73	STA $73
7E1C: A2 05	LDX #$05
7E1E: A5 47	LDA $47
7E20: 10 01	BPL $7E23
7E22: CA	DEX

7E23: A5 48	LDA $48
7E25: 10 02	BPL $7E29
7E27: CA	DEX
7E28: CA	DEX

7E29: 86 2A	STX $2A
7E2B: A9 00	LDA #$00
7E2D: 20 49 7E	JSR $7E49
7E30: 8A	TXA
7E31: 65 5A	ADC $5A
7E33: 85 49	STA $49
7E35: 98	TYA
7E36: 65 5B	ADC $5B
7E38: 85 4A	STA $4A
7E3A: A8	TAY
7E3B: A5 49	LDA $49

7E3D: 60	RTS

; Compute Array Size

7E3E: 84 24	STY $24
7E40: 20 00 43	JSR $4300	; Get From ($61) Bank1
7E43: 85 2A	STA $2A
7E45: 88	DEY
7E46: 20 00 43	JSR $4300	; Get From ($61) Bank1

7E49: 85 2B	STA $2B
7E4B: A9 10	LDA #$10
7E4D: 85 5F	STA $5F
7E4F: A2 00	LDX #$00
7E51: A0 00	LDY #$00

7E53: 8A	TXA
7E54: 0A	ASL A
7E55: AA	TAX
7E56: 98	TYA
7E57: 2A	ROL A
7E58: A8	TAY
7E59: B0 A2	BCS $7DFD
7E5B: 06 72	ASL $72
7E5D: 26 73	ROL $73
7E5F: 90 0B	BCC $7E6C
7E61: 18	CLC
7E62: 8A	TXA
7E63: 65 2A	ADC $2A
7E65: AA	TAX
7E66: 98	TYA
7E67: 65 2B	ADC $2B
7E69: A8	TAY
7E6A: B0 91	BCS $7DFD

7E6C: C6 5F	DEC $5F
7E6E: D0 E3	BNE $7E53
7E70: 60	RTS

; Array Pointer Subroutine

7E71: A5 0D	LDA $0D
7E73: 0A	ASL A
7E74: 69 05	ADC #$05
7E76: 65 61	ADC $61
7E78: A4 62	LDY $62
7E7A: 90 01	BCC $7E7D
7E7C: C8	INY

7E7D: 85 5A	STA $5A
7E7F: 84 5B	STY $5B
7E81: 60	RTS

; Set Bank patch for [char]

7E82: 20 45 A8	JSR $A845	; Set Bank 15
7E85: 4C F0 FF	JMP $FFF0	; plot          Read / Set Cursor X/Y Position

; Set Bank patch for Screen Print Link

7E88: 20 45 A8	JSR $A845	; Set Bank 15
7E8B: 4C 0C C0	JMP $C00C	; Screen Print Link

; Patch for Renumber Scan

7E8E: 20 8F 5C	JSR $5C8F
7E91: 4C 86 03	JMP $0386	; CHRGOT entry

; Patch for [delete]

7E94: E6 26	INC $26
7E96: D0 02	BNE $7E9A
7E98: E6 27	INC $27

7E9A: 38	SEC
7E9B: A5 26	LDA $26
7E9D: ED 10 12	SBC $1210	; End of Basic, Bank 0
7EA0: A5 27	LDA $27
7EA2: ED 11 12	SBC $1211
7EA5: 60	RTS

; Patch for Note A-G

7EA6: 2C 03 0A	BIT $0A03	; PAL/NTSC System Flag
7EA9: 30 04	BMI $7EAF
7EAB: BD 05 70	LDA $7005,X	; Pitch HI -- NTSC
7EAE: 60	RTS

7EAF: BD B9 7E	LDA $7EB9,X	; Pitch LO -- PAL
7EB2: 8D 2D 12	STA $122D
7EB5: BD C5 7E	LDA $7EC5,X	; Pitch HI -- PAL
7EB8: 60	RTS

; Pitch LO -- PAL

7EB9: 9C BF 22 C8 B4 EB 71 4C	; '{PURPLE}."H..Ql'
7EC1: 7F 12 08 68            	; '.{RVSON}.h'

; Pitch HI -- PAL

7EC5: 45 49 4E 52 57 5C 62 68	; 'einrw\bh'
7ECD: 6E 75 7C 83            	; 'nU..'

; String Stack patch for Error

7ED1: 8E 0C 12	STX $120C
7ED4: A2 1B	LDX #$1B
7ED6: 86 18	STX $18
7ED8: 60	RTS

; Unused

7ED9: FF FF FF FF FF FF FF FF	; '........'
7EE1: FF FF FF FF FF FF FF FF	; '........'
7EE9: FF FF FF FF FF FF FF FF	; '........'
7EF1: FF FF FF FF FF FF FF FF	; '........'
7EF9: FF FF FF FF FF FF FF FF	; '........'
7F01: FF FF FF FF FF FF FF FF	; '........'
7F09: FF FF FF FF FF FF FF FF	; '........'
7F11: FF FF FF FF FF FF FF FF	; '........'
7F19: FF FF FF FF FF FF FF FF	; '........'
7F21: FF FF FF FF FF FF FF FF	; '........'
7F29: FF FF FF FF FF FF FF FF	; '........'
7F31: FF FF FF FF FF FF FF FF	; '........'
7F39: FF FF FF FF FF FF FF FF	; '........'
7F41: FF FF FF FF FF FF FF FF	; '........'
7F49: FF FF FF FF FF FF FF FF	; '........'
7F51: FF FF FF FF FF FF FF FF	; '........'
7F59: FF FF FF FF FF FF FF FF	; '........'
7F61: FF FF FF FF FF FF FF FF	; '........'
7F69: FF FF FF FF FF FF FF FF	; '........'
7F71: FF FF FF FF FF FF FF FF	; '........'
7F79: FF FF FF FF FF FF FF FF	; '........'
7F81: FF FF FF FF FF FF FF FF	; '........'
7F89: FF FF FF FF FF FF FF FF	; '........'
7F91: FF FF FF FF FF FF FF FF	; '........'
7F99: FF FF FF FF FF FF FF FF	; '........'
7FA1: FF FF FF FF FF FF FF FF	; '........'
7FA9: FF FF FF FF FF FF FF FF	; '........'
7FB1: FF FF FF FF FF FF FF FF	; '........'
7FB9: FF FF FF FF FF FF FF   	; '.......'

; Copyright notice

7FC0: 28 43 29 31 39 38 36 20	; '(c)1986 '
7FC8: 43 4F 4D 4D 4F 44 4F 52	; 'commodor'
7FD0: 45 20 45 4C 45 43 54 52	; 'e electr'
7FD8: 4F 4E 49 43 53 2C 20 4C	; 'onics, l'
7FE0: 54 44 2E 20 41 4C 4C 20	; 'td. all '
7FE8: 52 49 47 48 54 53 20 52	; 'rights r'
7FF0: 45 53 45 52 56 45 44 2E	; 'eserved.'

; ?

7FF8: FF FF FF FF EF 8D 01 61	; '.....{SHCR}.a'

; Evaluate <fre>

8000: 20 F7 87	JSR $87F7
8003: E0 01	CPX #$01
8005: 90 05	BCC $800C
8007: F0 31	BEQ $803A	; -Free in Bank 1
8009: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

800C: 38	SEC
800D: AD 12 12	LDA $1212	; Basic Program Limit [FF00]
8010: ED 10 12	SBC $1210	; End of Basic, Bank 0
8013: A8	TAY
8014: AD 13 12	LDA $1213
8017: ED 11 12	SBC $1211
801A: B0 2B	BCS $8047
801C: A6 35	LDX $35
801E: E8	INX
801F: C8	INY

; Decrypt Message

8020: 85 70	STA $70
8022: 98	TYA
8023: 38	SEC
8024: E9 05	SBC #$05
8026: 85 71	STA $71

8028: A5 71	LDA $71
802A: 5D 37 AE	EOR $AE37,X
802D: 45 70	EOR $70
802F: F0 44	BEQ $8075
8031: 20 D2 FF	JSR $FFD2	; (ibsout)      Output Vector, chrout [EF79]
8034: E6 71	INC $71
8036: E8	INX
8037: D0 EF	BNE $8028
8039: 60	RTS

; -Free in Bank 1

803A: 20 EA 92	JSR $92EA	; Garbage Collection
803D: 38	SEC
803E: A5 35	LDA $35
8040: E5 33	SBC $33
8042: A8	TAY
8043: A5 36	LDA $36
8045: E5 34	SBC $34

8047: 4C C9 84	JMP $84C9	; Float (.y, .a)

; Evaluate <val>

804A: 20 6E 86	JSR $866E	; Exit String Mode
804D: D0 03	BNE $8052	; String to Float
804F: 4C D6 88	JMP $88D6	; Zero Both Accuymulators

; String to Float

8052: 18	CLC
8053: 65 24	ADC $24
8055: 85 72	STA $72
8057: A5 25	LDA $25
8059: 69 00	ADC #$00
805B: 85 73	STA $73
805D: A0 00	LDY #$00
805F: A9 72	LDA #$72
8061: 20 AB 03	JSR $03AB	; Fetch From RAM Bank 1
8064: 48	PHA
8065: 98	TYA
8066: 91 72	STA ($72),Y
8068: 20 03 8E	JSR $8E03
806B: A2 01	LDX #$01
806D: 20 22 8D	JSR $8D22	; String to FAC#1
8070: 68	PLA
8071: A0 00	LDY #$00
8073: 91 72	STA ($72),Y

8075: 60	RTS

; Evaluate <dec>

8076: 20 6E 86	JSR $866E	; Exit String Mode
8079: 85 26	STA $26
807B: A0 00	LDY #$00
807D: 84 27	STY $27
807F: 84 72	STY $72
8081: 84 73	STY $73

8083: C4 26	CPY $26
8085: F0 34	BEQ $80BB
8087: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
808A: C8	INY
808B: C9 20	CMP #$20
808D: F0 F4	BEQ $8083
808F: E6 27	INC $27
8091: A6 27	LDX $27
8093: E0 05	CPX #$05
8095: F0 2B	BEQ $80C2
8097: C9 30	CMP #$30
8099: 90 27	BCC $80C2
809B: C9 3A	CMP #$3A
809D: 90 0A	BCC $80A9
809F: C9 41	CMP #$41
80A1: 90 1F	BCC $80C2
80A3: C9 47	CMP #$47
80A5: B0 1B	BCS $80C2
80A7: E9 07	SBC #$07

80A9: E9 2F	SBC #$2F
80AB: 0A	ASL A
80AC: 0A	ASL A
80AD: 0A	ASL A
80AE: 0A	ASL A
80AF: A2 04	LDX #$04

80B1: 0A	ASL A
80B2: 26 72	ROL $72
80B4: 26 73	ROL $73
80B6: CA	DEX
80B7: D0 F8	BNE $80B1
80B9: F0 C8	BEQ $8083

80BB: A4 72	LDY $72
80BD: A5 73	LDA $73
80BF: 4C C9 84	JMP $84C9	; Float (.y, .a)

80C2: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

; Evaluate <peek>

80C5: A5 17	LDA $17
80C7: 48	PHA
80C8: A5 16	LDA $16
80CA: 48	PHA
80CB: 20 DA 77	JSR $77DA	; Confirm Numeric
80CE: 20 15 88	JSR $8815	; Float/Fixed
80D1: AE D5 03	LDX $03D5	; Current Bank For SYS, POKE, PEEK
80D4: A0 00	LDY #$00
80D6: A9 16	LDA #$16
80D8: 20 74 FF	JSR $FF74	; indfet        Bank LDA (fetchvec),y
80DB: A8	TAY
80DC: 68	PLA
80DD: 85 16	STA $16
80DF: 68	PLA
80E0: 85 17	STA $17
80E2: 4C D4 84	JMP $84D4	; Byte To Float

; Perform [poke]

80E5: 20 03 88	JSR $8803	; Params For Poke/Wait
80E8: 8A	TXA
80E9: A0 00	LDY #$00
80EB: A2 16	LDX #$16
80ED: 8E B9 02	STX $02B9
80F0: AE D5 03	LDX $03D5	; Current Bank For SYS, POKE, PEEK
80F3: 4C 77 FF	JMP $FF77	; indsta        Bank STA (stavec),y

; Evaluate <err$>

80F6: 20 F7 87	JSR $87F7
80F9: CA	DEX
80FA: 8A	TXA
80FB: C9 29	CMP #$29
80FD: B0 37	BCS $8136
80FF: 20 82 4A	JSR $4A82	; Find Message
8102: A0 FF	LDY #$FF
8104: A2 00	LDX #$00

8106: E8	INX

8107: C8	INY
8108: B1 26	LDA ($26),Y
810A: 30 06	BMI $8112
810C: C9 20	CMP #$20
810E: 90 F7	BCC $8107
8110: B0 F4	BCS $8106

8112: 8A	TXA
8113: 20 90 86	JSR $8690
8116: A2 00	LDX #$00
8118: A0 FF	LDY #$FF
811A: 8D 04 FF	STA $FF04

811D: C8	INY
811E: B1 26	LDA ($26),Y
8120: C9 20	CMP #$20
8122: 90 F9	BCC $811D
8124: 20 39 81	JSR $8139	; Swap x With y
8127: 48	PHA
8128: 29 7F	AND #$7F
812A: 91 64	STA ($64),Y
812C: 20 39 81	JSR $8139	; Swap x With y
812F: E8	INX
8130: 68	PLA
8131: 10 EA	BPL $811D
8133: 4C D1 85	JMP $85D1

8136: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

; Swap x With y

8139: 48	PHA
813A: 8A	TXA
813B: 48	PHA
813C: 98	TYA
813D: AA	TAX
813E: 68	PLA
813F: A8	TAY
8140: 68	PLA
8141: 60	RTS

; Evaluate <hex$>

8142: 20 DA 77	JSR $77DA	; Confirm Numeric
8145: A5 16	LDA $16
8147: 48	PHA
8148: A5 17	LDA $17
814A: 48	PHA
814B: 20 15 88	JSR $8815	; Float/Fixed
814E: A9 04	LDA #$04
8150: 20 90 86	JSR $8690
8153: A0 00	LDY #$00
8155: A5 17	LDA $17
8157: 8D 04 FF	STA $FF04
815A: 20 6B 81	JSR $816B	; Byte to Hex
815D: A5 16	LDA $16
815F: 20 6B 81	JSR $816B	; Byte to Hex
8162: 68	PLA
8163: 85 17	STA $17
8165: 68	PLA
8166: 85 16	STA $16
8168: 4C D1 85	JMP $85D1

; Byte to Hex

816B: 48	PHA
816C: 4A	LSR A
816D: 4A	LSR A
816E: 4A	LSR A
816F: 4A	LSR A
8170: 20 74 81	JSR $8174
8173: 68	PLA

8174: 29 0F	AND #$0F
8176: C9 0A	CMP #$0A
8178: 90 02	BCC $817C
817A: 69 06	ADC #$06

817C: 69 30	ADC #$30
817E: 91 64	STA ($64),Y
8180: C8	INY
8181: 60	RTS

; Evaluate <rgr>

8182: 20 DA 77	JSR $77DA	; Confirm Numeric
8185: 20 8C 81	JSR $818C	; Get Graphics Mode
8188: A8	TAY
8189: 4C D4 84	JMP $84D4	; Byte To Float

; Get Graphics Mode

818C: A5 D8	LDA $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
818E: 18	CLC
818F: 2A	ROL A
8190: 2A	ROL A
8191: 2A	ROL A
8192: 69 00	ADC #$00
8194: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
8196: 10 02	BPL $819A
8198: 69 05	ADC #$05

819A: 60	RTS

; Evaluate <rclr>

819B: 20 F7 87	JSR $87F7
819E: 20 45 A8	JSR $A845	; Set Bank 15
81A1: CA	DEX
81A2: 30 15	BMI $81B9
81A4: CA	DEX
81A5: 30 1A	BMI $81C1
81A7: CA	DEX
81A8: 30 1C	BMI $81C6
81AA: CA	DEX
81AB: 30 1E	BMI $81CB
81AD: CA	DEX
81AE: 30 20	BMI $81D0
81B0: CA	DEX
81B1: 30 23	BMI $81D6
81B3: CA	DEX
81B4: 30 28	BMI $81DE
81B6: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

81B9: AD 21 D0	LDA $D021
81BC: 29 7F	AND #$7F
81BE: 4C EC 81	JMP $81EC

81C1: A5 86	LDA $86 	; Graphic foreground color (13)
81C3: 4C EC 81	JMP $81EC

81C6: A5 84	LDA $84 	; Multicolor 1 (1)
81C8: 4C EC 81	JMP $81EC

81CB: A5 85	LDA $85 	; Multicolor 2 (2)
81CD: 4C EC 81	JMP $81EC

81D0: AD 20 D0	LDA $D020
81D3: 4C EC 81	JMP $81EC

81D6: A5 F1	LDA $F1 	; Curr Attribute to Print (Default FGND Color)
81D8: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
81DA: 10 10	BPL $81EC
81DC: 30 08	BMI $81E6

81DE: A9 1A	LDA #$1A
81E0: 8D 00 D6	STA $D600
81E3: AD 01 D6	LDA $D601

81E6: 29 0F	AND #$0F
81E8: AA	TAX
81E9: BD F3 81	LDA $81F3,X	; CRTC Color Codes

81EC: 29 0F	AND #$0F
81EE: A8	TAY
81EF: C8	INY
81F0: 4C D4 84	JMP $84D4	; Byte To Float

; CRTC Color Codes

81F3: 00 0C 06 0E 05 0D 0B 03	; '{0}{UNLOCK}.{LOWTEXT}{WHITE}{CR}{LOCK}{STOP}'
81FB: 02 0A 08 04 09 07 0F 01	; '{ULON}{LF}..{TAB}{BELL}{FLSHON}.'

; Evaluate <joy>

8203: 20 F7 87	JSR $87F7
8206: CA	DEX
8207: E0 02	CPX #$02
8209: B0 34	BCS $823F
820B: 8A	TXA
820C: 49 01	EOR #$01
820E: AA	TAX
820F: 08	PHP
8210: 20 45 A8	JSR $A845	; Set Bank 15
8213: 78	SEI
8214: AD 00 DC	LDA $DC00
8217: 48	PHA
8218: A0 FF	LDY #$FF
821A: 8C 00 DC	STY $DC00

821D: BD 00 DC	LDA $DC00,X
8220: DD 00 DC	CMP $DC00,X
8223: D0 F8	BNE $821D
8225: AA	TAX
8226: 68	PLA
8227: 8D 00 DC	STA $DC00
822A: 8A	TXA
822B: 28	PLP
822C: 29 0F	AND #$0F
822E: A8	TAY
822F: B9 3D 82	LDA $823D,Y
8232: A8	TAY
8233: 8A	TXA
8234: 29 10	AND #$10
8236: D0 04	BNE $823C
8238: 98	TYA
8239: 09 80	ORA #$80
823B: A8	TAY

823C: 4C D4 84	JMP $84D4	; Byte To Float

823F: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

; Joystick Values

8242: 04 02 03 00 06 08 07 00	; '.{ULON}{STOP}{0}..{BELL}{0}'
824A: 05 01 00               	; '{WHITE}.{0}'

; Evaluate <pot>

824D: 20 56 79	JSR $7956	; -Check Right Parenthesis
8250: 20 F7 87	JSR $87F7
8253: CA	DEX
8254: E0 04	CPX #$04
8256: B0 53	BCS $82AB
8258: 20 45 A8	JSR $A845	; Set Bank 15
825B: A0 00	LDY #$00
825D: 8A	TXA
825E: A2 40	LDX #$40
8260: 4A	LSR A
8261: 90 01	BCC $8264
8263: C8	INY

8264: 4A	LSR A
8265: 90 02	BCC $8269
8267: A2 80	LDX #$80

8269: 8E B1 12	STX $12B1
826C: 08	PHP
826D: 78	SEI
826E: AD 00 DC	LDA $DC00
8271: 48	PHA
8272: 8E 00 DC	STX $DC00
8275: A2 00	LDX #$00

8277: E8	INX
8278: D0 FD	BNE $8277

827A: B9 19 D4	LDA $D419,Y
827D: D9 19 D4	CMP $D419,Y
8280: D0 F8	BNE $827A
8282: 8D B2 12	STA $12B2
8285: A2 00	LDX #$00
8287: 2C B1 12	BIT $12B1
828A: 30 01	BMI $828D
828C: E8	INX

828D: A9 04	LDA #$04
828F: 88	DEY
8290: 30 01	BMI $8293
8292: 0A	ASL A

8293: A0 FF	LDY #$FF
8295: 8C 00 DC	STY $DC00
8298: C8	INY
8299: 3D 00 DC	AND $DC00,X
829C: D0 01	BNE $829F
829E: C8	INY

829F: 68	PLA
82A0: 8D 00 DC	STA $DC00
82A3: 98	TYA
82A4: AC B2 12	LDY $12B2
82A7: 28	PLP
82A8: 4C C9 84	JMP $84C9	; Float (.y, .a)

82AB: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

; Evaluate <pen>

82AE: 20 56 79	JSR $7956	; -Check Right Parenthesis
82B1: 20 F7 87	JSR $87F7
82B4: E0 05	CPX #$05
82B6: B0 F3	BCS $82AB
82B8: E0 02	CPX #$02
82BA: B0 1A	BCS $82D6
82BC: BC E9 11	LDY $11E9,X
82BF: 8C B1 12	STY $12B1
82C2: A9 00	LDA #$00
82C4: 9D E9 11	STA $11E9,X
82C7: E0 00	CPX #$00
82C9: D0 05	BNE $82D0
82CB: 0E B1 12	ASL $12B1
82CE: 69 00	ADC #$00

82D0: AC B1 12	LDY $12B1
82D3: 4C C9 84	JMP $84C9	; Float (.y, .a)

82D6: 20 45 A8	JSR $A845	; Set Bank 15
82D9: E0 04	CPX #$04
82DB: F0 10	BEQ $82ED
82DD: A0 11	LDY #$11
82DF: E0 02	CPX #$02
82E1: F0 01	BEQ $82E4
82E3: 88	DEY

82E4: 8C 00 D6	STY $D600
82E7: AC 01 D6	LDY $D601
82EA: 4C D4 84	JMP $84D4	; Byte To Float

82ED: AD 00 D6	LDA $D600
82F0: A0 00	LDY #$00
82F2: 29 40	AND #$40
82F4: F0 01	BEQ $82F7
82F6: C8	INY

82F7: 4C D4 84	JMP $84D4	; Byte To Float

; Evaluate <pointer>

82FA: 20 80 03	JSR $0380	; CHRGET
82FD: 20 59 79	JSR $7959	; -Check Left Parenthesis
8300: 20 3C 7B	JSR $7B3C	; Check Alphabetic
8303: 90 16	BCC $831B
8305: 20 AF 7A	JSR $7AAF	; Locate Variable
8308: AA	TAX
8309: 98	TYA
830A: 48	PHA
830B: 20 56 79	JSR $7956	; -Check Right Parenthesis
830E: 8A	TXA
830F: A8	TAY
8310: 68	PLA
8311: C9 03	CMP #$03
8313: D0 03	BNE $8318
8315: A9 00	LDA #$00
8317: A8	TAY

8318: 4C C9 84	JMP $84C9	; Float (.y, .a)

831B: 4C 6C 79	JMP $796C	; Syntax Error

; Evaluate <rsprite>

831E: 20 F7 87	JSR $87F7
8321: CA	DEX
8322: E0 08	CPX #$08
8324: B0 32	BCS $8358
8326: 8A	TXA
8327: 48	PHA
8328: 20 5C 79	JSR $795C	; -Check Comma
832B: 20 F4 87	JSR $87F4	; -Eval Byte Parameter
832E: 20 56 79	JSR $7956	; -Check Right Parenthesis
8331: E0 06	CPX #$06
8333: B0 23	BCS $8358
8335: 68	PLA
8336: A8	TAY
8337: 20 45 A8	JSR $A845	; Set Bank 15
833A: B9 27 D0	LDA $D027,Y
833D: 29 0F	AND #$0F
833F: 18	CLC
8340: 69 01	ADC #$01
8342: E0 01	CPX #$01
8344: F0 0E	BEQ $8354
8346: BD 5B 83	LDA $835B,X	; VIC Sprite Register Numbers
8349: AA	TAX
834A: B9 B3 6C	LDA $6CB3,Y	; Bit Masks
834D: 3D 00 D0	AND $D000,X
8350: F0 02	BEQ $8354
8352: A9 01	LDA #$01

8354: A8	TAY
8355: 4C D4 84	JMP $84D4	; Byte To Float

8358: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

; VIC Sprite Register Numbers

835B: 15 27 1B 1D 17 1C      	; '.'{ESC}{RIGHT}.{RED}'

; Evaluate <rspcolor>

8361: 20 56 79	JSR $7956	; -Check Right Parenthesis
8364: 20 F7 87	JSR $87F7
8367: CA	DEX
8368: E0 02	CPX #$02
836A: B0 0D	BCS $8379
836C: 20 45 A8	JSR $A845	; Set Bank 15
836F: BD 25 D0	LDA $D025,X
8372: 29 0F	AND #$0F
8374: A8	TAY
8375: C8	INY
8376: 4C D4 84	JMP $84D4	; Byte To Float

8379: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

; Evaluate <bump>

837C: 20 56 79	JSR $7956	; -Check Right Parenthesis
837F: 20 F7 87	JSR $87F7
8382: CA	DEX
8383: E0 02	CPX #$02
8385: B0 0D	BCS $8394
8387: 78	SEI
8388: BC E7 11	LDY $11E7,X
838B: A9 00	LDA #$00
838D: 9D E7 11	STA $11E7,X
8390: 58	CLI
8391: 4C D4 84	JMP $84D4	; Byte To Float

8394: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

; Evaluate <rspos>

8397: 20 F7 87	JSR $87F7
839A: CA	DEX
839B: E0 08	CPX #$08
839D: B0 3F	BCS $83DE
839F: 8A	TXA
83A0: 48	PHA
83A1: 20 5C 79	JSR $795C	; -Check Comma
83A4: 20 F4 87	JSR $87F4	; -Eval Byte Parameter
83A7: 20 56 79	JSR $7956	; -Check Right Parenthesis
83AA: E0 03	CPX #$03
83AC: B0 30	BCS $83DE
83AE: 68	PLA
83AF: A8	TAY
83B0: E0 02	CPX #$02
83B2: D0 09	BNE $83BD
83B4: BE D9 6D	LDX $6DD9,Y	; Sprite Motion Table Offsets
83B7: BC 7E 11	LDY $117E,X	; Sprite Motion Tables (8 x 11 bytes)
83BA: 4C D4 84	JMP $84D4	; Byte To Float

83BD: 78	SEI
83BE: B9 B3 6C	LDA $6CB3,Y	; Bit Masks
83C1: 2D E6 11	AND $11E6
83C4: F0 02	BEQ $83C8
83C6: A9 01	LDA #$01

83C8: 48	PHA
83C9: 98	TYA
83CA: 0A	ASL A
83CB: A8	TAY
83CC: 8A	TXA
83CD: 4A	LSR A
83CE: 90 05	BCC $83D5
83D0: C8	INY
83D1: 68	PLA
83D2: A9 00	LDA #$00
83D4: 48	PHA

83D5: B9 D6 11	LDA $11D6,Y
83D8: 58	CLI
83D9: A8	TAY
83DA: 68	PLA
83DB: 4C C9 84	JMP $84C9	; Float (.y, .a)

83DE: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

; Evaluate <xor>

83E1: A5 16	LDA $16
83E3: 48	PHA
83E4: A5 17	LDA $17
83E6: 48	PHA
83E7: 20 DA 77	JSR $77DA	; Confirm Numeric
83EA: 20 15 88	JSR $8815	; Float/Fixed
83ED: 48	PHA
83EE: 98	TYA
83EF: 48	PHA
83F0: 20 0F 88	JSR $880F	; Input Next Float/Fixed Value
83F3: 20 56 79	JSR $7956	; -Check Right Parenthesis
83F6: 68	PLA
83F7: 45 16	EOR $16
83F9: A8	TAY
83FA: 68	PLA
83FB: 45 17	EOR $17
83FD: 20 C9 84	JSR $84C9	; Float (.y, .a)
8400: 68	PLA
8401: 85 17	STA $17
8403: 68	PLA
8404: 85 16	STA $16
8406: 60	RTS

; Evaluate <rwindow>

8407: 20 56 79	JSR $7956	; -Check Right Parenthesis
840A: 20 F7 87	JSR $87F7
840D: E0 02	CPX #$02
840F: F0 14	BEQ $8425
8411: B0 1E	BCS $8431
8413: E0 00	CPX #$00
8415: D0 07	BNE $841E
8417: A5 E4	LDA $E4 	; Window Lower Limit
8419: 38	SEC
841A: E5 E5	SBC $E5 	; Window Upper Limit
841C: B0 0F	BCS $842D

841E: A5 E7	LDA $E7 	; Window Right Margin
8420: 38	SEC
8421: E5 E6	SBC $E6 	; Window Left Margin
8423: B0 08	BCS $842D

8425: A9 28	LDA #$28
8427: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
8429: 10 02	BPL $842D
842B: A9 50	LDA #$50

842D: A8	TAY
842E: 4C D4 84	JMP $84D4	; Byte To Float

8431: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

; Evaluate <rnd>

8434: 20 57 8C	JSR $8C57	; Get Sign

8437: 30 31	BMI $846A
8439: D0 1A	BNE $8455
843B: 20 45 A8	JSR $A845	; Set Bank 15
843E: AD 06 DC	LDA $DC06
8441: 85 64	STA $64
8443: AD 07 DC	LDA $DC07
8446: 85 66	STA $66
8448: AD 04 DC	LDA $DC04
844B: 85 65	STA $65
844D: AD 05 DC	LDA $DC05
8450: 85 67	STA $67
8452: 4C 7A 84	JMP $847A

8455: A9 1B	LDA #$1B
8457: A0 12	LDY #$12
8459: 20 D4 8B	JSR $8BD4	; Unpack ROM to FAC#1
845C: A9 90	LDA #$90
845E: A0 84	LDY #$84
8460: 20 08 8A	JSR $8A08
8463: A9 95	LDA #$95
8465: A0 84	LDY #$84
8467: 20 12 8A	JSR $8A12	; Add Memory At A/Y

846A: A6 67	LDX $67
846C: A5 64	LDA $64
846E: 85 67	STA $67
8470: 86 64	STX $64
8472: A6 65	LDX $65
8474: A5 66	LDA $66
8476: 85 65	STA $65
8478: 86 66	STX $66

847A: A9 00	LDA #$00
847C: 85 68	STA $68
847E: A5 63	LDA $63
8480: 85 71	STA $71
8482: A9 80	LDA #$80
8484: 85 63	STA $63
8486: 20 B6 88	JSR $88B6
8489: A2 1B	LDX #$1B
848B: A0 12	LDY #$12
848D: 4C 00 8C	JMP $8C00	; Pack FAC#1 to RAM1

; Rnd Multiplier

8490: 98 35 44 7A 00 68 28 B1	; '{GRAY2}5dZ{0}h(.'
8498: 46 00                  	; 'f{0}'

; Value -32768

849A: 90 80 00 00 00         	; '{BLACK}.{0}{0}{0}'

; Float-Fixed Signed -32768 - 32767

849F: 20 B4 84	JSR $84B4
84A2: A5 66	LDA $66
84A4: A4 67	LDY $67
84A6: 60	RTS

; Evaluate Fixed Unsigned Number 0 - 32767

84A7: 20 80 03	JSR $0380	; CHRGET
84AA: 20 EF 77	JSR $77EF	; Evaluate Expression

; Float-Fixed Unsigned 0 - 32767

84AD: 20 DA 77	JSR $77DA	; Confirm Numeric
84B0: A5 68	LDA $68
84B2: 30 0D	BMI $84C1

84B4: A5 63	LDA $63
84B6: C9 90	CMP #$90
84B8: 90 0C	BCC $84C6
84BA: A9 9A	LDA #$9A
84BC: A0 84	LDY #$84
84BE: 20 87 8C	JSR $8C87	; Compare FAC#1 to Memory

84C1: F0 03	BEQ $84C6
84C3: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

84C6: 4C C7 8C	JMP $8CC7	; Float-Fixed

; Float (.y, .a)

84C9: 20 E5 84	JSR $84E5	; Set Up 16 Bit Fix-Float
84CC: 38	SEC
84CD: 4C 75 8C	JMP $8C75	; Fixed-Float

; Evaluate <pos>

84D0: 38	SEC
84D1: 20 8D 92	JSR $928D	; Call 'plot'

; Byte To Float

84D4: A9 00	LDA #$00
84D6: 4C 3C 79	JMP $793C	; Fixed-Float

; Check Direct

84D9: 24 7F	BIT $7F
84DB: 30 12	BMI $84EF

; Print 'illegal direct'

84DD: A2 15	LDX #$15
84DF: 2C	.BYTE $2C

; Print 'undef'd function'

84E0: A2 1B	LDX #$1B
84E2: 4C 3C 4D	JMP $4D3C	; Error

; Set Up 16 Bit Fix-Float

84E5: A2 00	LDX #$00
84E7: 86 0F	STX $0F
84E9: 85 64	STA $64
84EB: 84 65	STY $65
84ED: A2 90	LDX #$90

84EF: 60	RTS

; Check Direct

84F0: 24 7F	BIT $7F
84F2: 30 01	BMI $84F5	; Print 'direct mode only'
84F4: 60	RTS

; Print 'direct mode only'

84F5: A2 22	LDX #$22
84F7: 4C 3C 4D	JMP $4D3C	; Error

; Perform [def]

84FA: 20 28 85	JSR $8528	; Check FN Syntax
84FD: 20 D9 84	JSR $84D9	; Check Direct
8500: 20 59 79	JSR $7959	; -Check Left Parenthesis
8503: A9 80	LDA #$80
8505: 85 12	STA $12
8507: 20 AF 7A	JSR $7AAF	; Locate Variable
850A: 20 DA 77	JSR $77DA	; Confirm Numeric
850D: 20 56 79	JSR $7956	; -Check Right Parenthesis
8510: A9 B2	LDA #$B2
8512: 20 5E 79	JSR $795E
8515: 48	PHA
8516: A5 4A	LDA $4A
8518: 48	PHA
8519: A5 49	LDA $49
851B: 48	PHA
851C: A5 3E	LDA $3E
851E: 48	PHA
851F: A5 3D	LDA $3D 	; Textpointer: BASIC work point (chrget)
8521: 48	PHA
8522: 20 8F 52	JSR $528F	; Perform [data/bend]
8525: 4C A0 85	JMP $85A0

; Check FN Syntax

8528: A9 A5	LDA #$A5
852A: 20 5E 79	JSR $795E
852D: 09 80	ORA #$80
852F: 85 12	STA $12
8531: 20 B6 7A	JSR $7AB6
8534: 85 50	STA $50
8536: 84 51	STY $51
8538: 4C DA 77	JMP $77DA	; Confirm Numeric

; Perform [fn]

853B: 20 28 85	JSR $8528	; Check FN Syntax
853E: A5 51	LDA $51
8540: 48	PHA
8541: A5 50	LDA $50
8543: 48	PHA
8544: 20 50 79	JSR $7950	; Eval Within Parens
8547: 20 DA 77	JSR $77DA	; Confirm Numeric
854A: 68	PLA
854B: 85 50	STA $50
854D: 68	PLA
854E: 85 51	STA $51
8550: A0 02	LDY #$02
8552: 20 CE 42	JSR $42CE	; Get From ($50) Bank1
8555: 85 49	STA $49
8557: AA	TAX
8558: C8	INY
8559: 20 CE 42	JSR $42CE	; Get From ($50) Bank1
855C: F0 82	BEQ $84E0	; Print 'undef'd function'
855E: 85 4A	STA $4A
8560: C8	INY

8561: A9 49	LDA #$49
8563: 20 AB 03	JSR $03AB	; Fetch From RAM Bank 1
8566: 48	PHA
8567: 88	DEY
8568: 10 F7	BPL $8561
856A: A4 4A	LDY $4A
856C: 8D 04 FF	STA $FF04
856F: 20 00 8C	JSR $8C00	; Pack FAC#1 to RAM1
8572: A5 3E	LDA $3E
8574: 48	PHA
8575: A5 3D	LDA $3D 	; Textpointer: BASIC work point (chrget)
8577: 48	PHA
8578: 20 CE 42	JSR $42CE	; Get From ($50) Bank1
857B: 85 3D	STA $3D 	; Textpointer: BASIC work point (chrget)
857D: C8	INY
857E: 20 CE 42	JSR $42CE	; Get From ($50) Bank1
8581: 85 3E	STA $3E
8583: A5 4A	LDA $4A
8585: 48	PHA
8586: A5 49	LDA $49
8588: 48	PHA
8589: 20 D7 77	JSR $77D7	; Type Match Check
858C: 68	PLA
858D: 85 50	STA $50
858F: 68	PLA
8590: 85 51	STA $51
8592: 20 86 03	JSR $0386	; CHRGOT entry
8595: F0 03	BEQ $859A
8597: 4C 6C 79	JMP $796C	; Syntax Error

859A: 68	PLA
859B: 85 3D	STA $3D 	; Textpointer: BASIC work point (chrget)
859D: 68	PLA
859E: 85 3E	STA $3E

85A0: A0 00	LDY #$00
85A2: 8D 04 FF	STA $FF04

85A5: 68	PLA
85A6: 91 50	STA ($50),Y
85A8: C8	INY
85A9: C0 05	CPY #$05
85AB: D0 F8	BNE $85A5
85AD: 60	RTS

; Evaluate <str$>

85AE: 20 DA 77	JSR $77DA	; Confirm Numeric
85B1: A0 00	LDY #$00
85B3: 20 44 8E	JSR $8E44
85B6: 68	PLA
85B7: 68	PLA

85B8: A9 FF	LDA #$FF
85BA: A0 00	LDY #$00
85BC: 4C 9A 86	JMP $869A	; Set Up String

; Evaluate <chr$>

85BF: 20 F7 87	JSR $87F7
85C2: 8A	TXA
85C3: 48	PHA
85C4: A9 01	LDA #$01
85C6: 20 90 86	JSR $8690
85C9: 68	PLA
85CA: A0 00	LDY #$00
85CC: 8D 04 FF	STA $FF04
85CF: 91 64	STA ($64),Y

85D1: 68	PLA
85D2: 68	PLA
85D3: 4C E3 86	JMP $86E3

; Evaluate <left$>

85D6: 20 4D 86	JSR $864D	; Pull String Parameters
85D9: 48	PHA
85DA: 20 D8 42	JSR $42D8	; Get From ($52) Bank1
85DD: 85 79	STA $79
85DF: 68	PLA
85E0: C5 79	CMP $79
85E2: 98	TYA

85E3: 90 05	BCC $85EA
85E5: 20 D8 42	JSR $42D8	; Get From ($52) Bank1
85E8: AA	TAX
85E9: 98	TYA

85EA: 48	PHA

85EB: 8A	TXA

85EC: 48	PHA
85ED: 20 90 86	JSR $8690
85F0: A5 52	LDA $52
85F2: A4 53	LDY $53
85F4: 20 85 87	JSR $8785
85F7: 68	PLA
85F8: A8	TAY
85F9: 68	PLA
85FA: 18	CLC
85FB: 65 24	ADC $24
85FD: 85 24	STA $24
85FF: 90 02	BCC $8603
8601: E6 25	INC $25

8603: 98	TYA
8604: 20 63 87	JSR $8763
8607: 4C E3 86	JMP $86E3

; Evaluate <right$>

860A: 20 4D 86	JSR $864D	; Pull String Parameters
860D: 48	PHA
860E: 20 D8 42	JSR $42D8	; Get From ($52) Bank1
8611: 85 79	STA $79
8613: 68	PLA
8614: 18	CLC
8615: E5 79	SBC $79
8617: 49 FF	EOR #$FF
8619: 4C E3 85	JMP $85E3

; Evaluate <mid$>

861C: A9 FF	LDA #$FF
861E: 85 67	STA $67
8620: 20 86 03	JSR $0386	; CHRGOT entry
8623: C9 29	CMP #$29
8625: F0 06	BEQ $862D
8627: 20 5C 79	JSR $795C	; -Check Comma
862A: 20 F4 87	JSR $87F4	; -Eval Byte Parameter

862D: 20 4D 86	JSR $864D	; Pull String Parameters
8630: F0 53	BEQ $8685
8632: CA	DEX
8633: 8A	TXA
8634: 48	PHA
8635: A2 00	LDX #$00
8637: 48	PHA
8638: 20 D8 42	JSR $42D8	; Get From ($52) Bank1
863B: 85 79	STA $79
863D: 68	PLA
863E: 18	CLC
863F: E5 79	SBC $79
8641: B0 A8	BCS $85EB
8643: 49 FF	EOR #$FF
8645: C5 67	CMP $67
8647: 90 A3	BCC $85EC
8649: A5 67	LDA $67
864B: B0 9F	BCS $85EC

; Pull String Parameters

864D: 20 56 79	JSR $7956	; -Check Right Parenthesis
8650: 68	PLA
8651: A8	TAY
8652: 68	PLA
8653: 85 57	STA $57
8655: 68	PLA
8656: 68	PLA
8657: 68	PLA
8658: AA	TAX
8659: 68	PLA
865A: 85 52	STA $52
865C: 68	PLA
865D: 85 53	STA $53
865F: A5 57	LDA $57
8661: 48	PHA
8662: 98	TYA
8663: 48	PHA
8664: A0 00	LDY #$00
8666: 8A	TXA
8667: 60	RTS

; Evaluate <len>

8668: 20 6E 86	JSR $866E	; Exit String Mode
866B: 4C D4 84	JMP $84D4	; Byte To Float

; Exit String Mode

866E: 20 7E 87	JSR $877E
8671: A2 00	LDX #$00
8673: 86 0F	STX $0F
8675: A8	TAY
8676: 60	RTS

; Evaluate <asc>

8677: 20 6E 86	JSR $866E	; Exit String Mode
867A: F0 06	BEQ $8682
867C: A0 00	LDY #$00
867E: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
8681: A8	TAY

8682: 4C D4 84	JMP $84D4	; Byte To Float

8685: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

; Calc String Vector

8688: A6 66	LDX $66
868A: A4 67	LDY $67
868C: 86 52	STX $52
868E: 84 53	STY $53

8690: 20 99 92	JSR $9299	; Make Room For String
8693: 86 64	STX $64
8695: 84 65	STY $65
8697: 85 63	STA $63
8699: 60	RTS

; Set Up String

869A: A2 22	LDX #$22
869C: 86 09	STX $09 	; SYS and MLM register save (SP)
869E: 86 0A	STX $0A

86A0: 85 70	STA $70
86A2: 84 71	STY $71
86A4: 85 64	STA $64
86A6: 84 65	STY $65
86A8: A0 FF	LDY #$FF

86AA: C8	INY
86AB: 20 F1 42	JSR $42F1	; Get From ($70) Bank0
86AE: F0 0C	BEQ $86BC
86B0: C5 09	CMP $09 	; SYS and MLM register save (SP)
86B2: F0 04	BEQ $86B8
86B4: C5 0A	CMP $0A
86B6: D0 F2	BNE $86AA

86B8: C9 22	CMP #$22
86BA: F0 01	BEQ $86BD

86BC: 18	CLC

86BD: 84 63	STY $63
86BF: 98	TYA
86C0: 65 70	ADC $70
86C2: 85 72	STA $72
86C4: A6 71	LDX $71
86C6: 90 01	BCC $86C9
86C8: E8	INX

86C9: 86 73	STX $73
86CB: 98	TYA

86CC: 20 88 86	JSR $8688	; Calc String Vector
86CF: A8	TAY		; descriptor $63/$64/$65, allocated string length
86D0: F0 11	BEQ $86E3
86D2: 48	PHA

86D3: 88	DEY		; in string index
86D4: 20 F1 42	JSR $42F1	; Get From ($70) Bank0
86D7: 8D 04 FF	STA $FF04
86DA: 91 37	STA ($37),Y	; copy to new allocated string
86DC: 98	TYA
86DD: D0 F4	BNE $86D3	; copy loop
86DF: 68	PLA
86E0: 20 71 87	JSR $8771	; ($37) += A, backlink pointer

86E3: A6 18	LDX $18		; string descriptor stack
86E5: E0 24	CPX #$24	; full?
86E7: D0 05	BNE $86EE
86E9: A2 19	LDX #$19	; "?FORMULA TOO COMPLEX"
86EB: 4C 3C 4D	JMP $4D3C	; Error

86EE: A5 63	LDA $63		; string length from descriptor
86F0: 95 00	STA $00,X	; push descriptor on string descriptor stack
86F2: A5 64	LDA $64
86F4: 95 01	STA $01,X	; addr low
86F6: A5 65	LDA $65
86F8: 95 02	STA $02,X	; addr high
86FA: A0 00	LDY #$00
86FC: 86 66	STX $66		; ($66) = descriptor pointer
86FE: 84 67	STY $67
8700: 84 71	STY $71
8702: 88	DEY
8703: 84 0F	STY $0F		; set expression type to string
8705: 86 19	STX $19		; string desc. stack top element
8707: E8	INX
8708: E8	INX
8709: E8	INX
870A: 86 18	STX $18		; string desc. stack pointer (next free)
870C: 60	RTS

870D: A5 67	LDA $67
870F: 48	PHA
8710: A5 66	LDA $66
8712: 48	PHA
8713: 20 D7 78	JSR $78D7	; Evaluate Item
8716: 20 DD 77	JSR $77DD	; Confirm String
8719: 68	PLA
871A: 85 70	STA $70
871C: 68	PLA
871D: 85 71	STA $71
871F: A0 00	LDY #$00
8721: 20 F6 42	JSR $42F6	; Get From ($70) Bank1
8724: 85 79	STA $79
8726: 20 E7 42	JSR $42E7	; Get From ($66) Bank1
8729: 18	CLC
872A: 65 79	ADC $79
872C: 90 03	BCC $8731
872E: 4C ED A5	JMP $A5ED	; Print 'string too long'

8731: 20 88 86	JSR $8688	; Calc String Vector
8734: 20 4E 87	JSR $874E	; Build String to Memory
8737: A5 52	LDA $52
8739: A4 53	LDY $53
873B: 20 85 87	JSR $8785
873E: 20 63 87	JSR $8763
8741: A5 70	LDA $70
8743: A4 71	LDY $71
8745: 20 85 87	JSR $8785
8748: 20 E3 86	JSR $86E3
874B: 4C 09 78	JMP $7809

; Build String to Memory

874E: A0 00	LDY #$00
8750: 20 F6 42	JSR $42F6	; Get From ($70) Bank1
8753: 48	PHA
8754: C8	INY
8755: 20 F6 42	JSR $42F6	; Get From ($70) Bank1
8758: AA	TAX
8759: C8	INY
875A: 20 F6 42	JSR $42F6	; Get From ($70) Bank1
875D: A8	TAY
875E: 68	PLA
875F: 86 24	STX $24
8761: 84 25	STY $25

8763: A8	TAY
8764: F0 0B	BEQ $8771
8766: 48	PHA

8767: 88	DEY
8768: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
876B: 91 37	STA ($37),Y
876D: 98	TYA
876E: D0 F7	BNE $8767
8770: 68	PLA

8771: 18	CLC
8772: 65 37	ADC $37
8774: 85 37	STA $37
8776: 90 02	BCC $877A
8778: E6 38	INC $38

877A: 60	RTS

; Evaluate String

877B: 20 EF 77	JSR $77EF	; Evaluate Expression

877E: 20 DD 77	JSR $77DD	; Confirm String

8781: A5 66	LDA $66
8783: A4 67	LDY $67

8785: 85 24	STA $24
8787: 84 25	STY $25
8789: 20 E0 87	JSR $87E0	; Clean Descriptor Stack
878C: D0 3C	BNE $87CA	; Not on SDS -> addr ($24), length in A
878E: 20 F6 54	JSR $54F6	; Check String Location, Y=2 on exit
8791: 90 37	BCC $87CA	; Not on heap
; *** return string 
8793: 88	DEY		; Mark string unused (Y=1)
8794: A9 FF	LDA #$FF	; Gap mark value
8796: 8D 04 FF	STA $FF04	; Bank 1
8799: 91 24	STA ($24),Y	; Backlink high: free mark $FF
879B: 88	DEY		; Y=0
879C: 8A	TXA		; String length
879D: 91 24	STA ($24),Y	; Backlink low: length
879F: 48	PHA		; Save length
87A0: 49 FF	EOR #$FF	; negate
87A2: 38	SEC		; length
87A3: 65 24	ADC $24
87A5: A4 25	LDY $25
87A7: B0 01	BCS $87AA
87A9: 88	DEY

87AA: 85 24	STA $24		; ($24/$25) -= length
87AC: 84 25	STY $25
87AE: AA	TAX		; Address in X/Y
87AF: 68	PLA		; Restore length in A
87B0: C4 36	CPY $36		; Top of heap high
87B2: D0 3C	BNE $87F0	; Exit
87B4: E4 35	CPX $35		; Top of heap low
87B6: D0 38	BNE $87F0	; Exit
				; Remove from top of heap ...
87B8: 48	PHA		; Save length
87B9: 38	SEC		; ($35)+= (1 + length)
87BA: 65 35	ADC $35
87BC: 85 35	STA $35
87BE: 90 02	BCC $87C2
87C0: E6 36	INC $36

87C2: E6 35	INC $35		; ($35) += 1
87C4: D0 02	BNE $87C8
87C6: E6 36	INC $36		; Finally string data an backlink disposed

87C8: 68	PLA		; Restore length in A
87C9: 60	RTS		; returns X/Y adress of disposed string and length in A

87CA: A0 00	LDY #$00	; Get string address ($24) and length A
87CC: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
87CF: 48	PHA		; Descriptor: length
87D0: C8	INY
87D1: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
87D4: AA	TAX		; Descriptor: string address low
87D5: C8	INY
87D6: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
87D9: A8	TAY		; Descriptor: string address high
87DA: 86 24	STX $24		; $24/$25 = string address
87DC: 84 25	STY $25
87DE: 68	PLA		; Length
87DF: 60	RTS		; returns X/Y string address, A length

; Clean Descriptor Stack

87E0: C4 1A	CPY $1A		; Remove descriptor from SDS if A/Y is on top
87E2: D0 0C	BNE $87F0	; No
87E4: C5 19	CMP $19		; Low byte in A
87E6: D0 08	BNE $87F0	; No
87E8: 85 18	STA $18		; New next free SDS position
87EA: E9 03	SBC #$03	; Descriptor size, C-flag is alway set (from CMP above)
87EC: 85 19	STA $19		; Adjust last descriptor pointer
87EE: A0 00	LDY #$00	; High byte (always 0)

87F0: 60	RTS		; returns A/Y, Z-flag 1 means cleaned up, 0 otherwise

; Input Byte Parameter

87F1: 20 80 03	JSR $0380	; CHRGET

; -Eval Byte Parameter

87F4: 20 D7 77	JSR $77D7	; Type Match Check

87F7: 20 AD 84	JSR $84AD	; Float-Fixed Signed
87FA: A6 66	LDX $66
87FC: D0 2D	BNE $882B
87FE: A6 67	LDX $67
8800: 4C 86 03	JMP $0386	; CHRGOT entry

; Params For Poke/Wait

8803: 20 D7 77	JSR $77D7	; Type Match Check
8806: 20 15 88	JSR $8815	; Float/Fixed

8809: 20 5C 79	JSR $795C	; -Check Comma
880C: 4C F4 87	JMP $87F4	; -Eval Byte Parameter

; Input Next Float/Fixed Value

880F: 20 5C 79	JSR $795C	; -Check Comma

; -Input Float/Fixed Value

8812: 20 D7 77	JSR $77D7	; Type Match Check

; Float/Fixed

8815: A5 68	LDA $68		; Sign
8817: 30 12	BMI $882B	; negative?

8819: A5 63	LDA $63		; Exponent
881B: C9 91	CMP #$91	; 16 Bit -> 0 - 65535
881D: B0 0C	BCS $882B
881F: 20 C7 8C	JSR $8CC7	; Float-Fixed
8822: A5 66	LDA $66
8824: A4 67	LDY $67
8826: 84 16	STY $16
8828: 85 17	STA $17
882A: 60	RTS

882B: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

; Subtract From Memory

882E: 20 B4 8A	JSR $8AB4	; Unpack RAM1 to FAC#2

; Evaluate <subtract>

8831: A5 68	LDA $68
8833: 49 FF	EOR #$FF
8835: 85 68	STA $68
8837: 45 6F	EOR $6F
8839: 85 70	STA $70
883B: A5 63	LDA $63
883D: 4C 48 88	JMP $8848	; Evaluate <add>

8840: 20 79 89	JSR $8979
8843: 90 3D	BCC $8882

; Add Memory

8845: 20 B4 8A	JSR $8AB4	; Unpack RAM1 to FAC#2

; Evaluate <add>

8848: D0 03	BNE $884D
884A: 4C 28 8C	JMP $8C28	; FAC#2 to FAC#1

884D: A6 71	LDX $71
884F: 86 58	STX $58
8851: A2 6A	LDX #$6A
8853: A5 6A	LDA $6A

8855: A8	TAY
8856: D0 01	BNE $8859
8858: 60	RTS

8859: 38	SEC
885A: E5 63	SBC $63
885C: F0 24	BEQ $8882
885E: 90 12	BCC $8872
8860: 84 63	STY $63
8862: A4 6F	LDY $6F
8864: 84 68	STY $68
8866: 49 FF	EOR #$FF
8868: 69 00	ADC #$00
886A: A0 00	LDY #$00
886C: 84 58	STY $58
886E: A2 63	LDX #$63
8870: D0 04	BNE $8876

8872: A0 00	LDY #$00
8874: 84 71	STY $71

8876: C9 F9	CMP #$F9
8878: 30 C6	BMI $8840
887A: A8	TAY
887B: A5 71	LDA $71
887D: 56 01	LSR $01,X
887F: 20 90 89	JSR $8990

8882: 24 70	BIT $70
8884: 10 57	BPL $88DD
8886: A0 63	LDY #$63
8888: E0 6A	CPX #$6A
888A: F0 02	BEQ $888E
888C: A0 6A	LDY #$6A

888E: 38	SEC
888F: 49 FF	EOR #$FF
8891: 65 58	ADC $58
8893: 85 71	STA $71
8895: B9 04 00	LDA $04,Y	; SYS address high, MLM register PC
8898: F5 04	SBC $04,X	; SYS address high, MLM register PC
889A: 85 67	STA $67
889C: B9 03 00	LDA $03,Y	; SYS address low, MLM register PC
889F: F5 03	SBC $03,X	; SYS address low, MLM register PC
88A1: 85 66	STA $66
88A3: B9 02 00	LDA $02,Y	; Bank Number, Jump to SYS Address
88A6: F5 02	SBC $02,X	; Bank Number, Jump to SYS Address
88A8: 85 65	STA $65
88AA: B9 01 00	LDA $01,Y
88AD: F5 01	SBC $01,X
88AF: 85 64	STA $64

88B1: B0 03	BCS $88B6
88B3: 20 26 89	JSR $8926	; Negate FAC#1

88B6: A0 00	LDY #$00
88B8: 98	TYA
88B9: 18	CLC

88BA: A6 64	LDX $64
88BC: D0 4A	BNE $8908
88BE: A6 65	LDX $65
88C0: 86 64	STX $64
88C2: A6 66	LDX $66
88C4: 86 65	STX $65
88C6: A6 67	LDX $67
88C8: 86 66	STX $66
88CA: A6 71	LDX $71
88CC: 86 67	STX $67
88CE: 84 71	STY $71
88D0: 69 08	ADC #$08
88D2: C9 20	CMP #$20
88D4: D0 E4	BNE $88BA

; Zero Both Accuymulators

88D6: A9 00	LDA #$00

88D8: 85 63	STA $63

88DA: 85 68	STA $68
88DC: 60	RTS

88DD: 65 58	ADC $58
88DF: 85 71	STA $71
88E1: A5 67	LDA $67
88E3: 65 6E	ADC $6E
88E5: 85 67	STA $67
88E7: A5 66	LDA $66
88E9: 65 6D	ADC $6D
88EB: 85 66	STA $66
88ED: A5 65	LDA $65
88EF: 65 6C	ADC $6C
88F1: 85 65	STA $65
88F3: A5 64	LDA $64
88F5: 65 6B	ADC $6B
88F7: 85 64	STA $64
88F9: 4C 15 89	JMP $8915

88FC: 69 01	ADC #$01
88FE: 06 71	ASL $71
8900: 26 67	ROL $67
8902: 26 66	ROL $66
8904: 26 65	ROL $65
8906: 26 64	ROL $64

8908: 10 F2	BPL $88FC
890A: 38	SEC
890B: E5 63	SBC $63
890D: B0 C7	BCS $88D6	; Zero Both Accuymulators
890F: 49 FF	EOR #$FF
8911: 69 01	ADC #$01
8913: 85 63	STA $63

8915: 90 0E	BCC $8925

; Trim FAC#1 Left

8917: E6 63	INC $63
8919: F0 42	BEQ $895D	; Print 'overflow'
891B: 66 64	ROR $64
891D: 66 65	ROR $65
891F: 66 66	ROR $66
8921: 66 67	ROR $67
8923: 66 71	ROR $71

8925: 60	RTS

; Negate FAC#1

8926: A5 68	LDA $68
8928: 49 FF	EOR #$FF
892A: 85 68	STA $68

892C: A5 64	LDA $64
892E: 49 FF	EOR #$FF
8930: 85 64	STA $64
8932: A5 65	LDA $65
8934: 49 FF	EOR #$FF
8936: 85 65	STA $65
8938: A5 66	LDA $66
893A: 49 FF	EOR #$FF
893C: 85 66	STA $66
893E: A5 67	LDA $67
8940: 49 FF	EOR #$FF
8942: 85 67	STA $67
8944: A5 71	LDA $71
8946: 49 FF	EOR #$FF
8948: 85 71	STA $71
894A: E6 71	INC $71
894C: D0 0E	BNE $895C

; Round Up FAC#1

894E: E6 67	INC $67
8950: D0 0A	BNE $895C
8952: E6 66	INC $66
8954: D0 06	BNE $895C
8956: E6 65	INC $65
8958: D0 02	BNE $895C
895A: E6 64	INC $64

895C: 60	RTS

; Print 'overflow'

895D: A2 0F	LDX #$0F
895F: 4C 3C 4D	JMP $4D3C	; Error

; ?

8962: A2 27	LDX #$27

8964: B4 04	LDY $04,X	; SYS address high, MLM register PC
8966: 84 71	STY $71
8968: B4 03	LDY $03,X	; SYS address low, MLM register PC
896A: 94 04	STY $04,X	; SYS address high, MLM register PC
896C: B4 02	LDY $02,X	; Bank Number, Jump to SYS Address
896E: 94 03	STY $03,X	; SYS address low, MLM register PC
8970: B4 01	LDY $01,X
8972: 94 02	STY $02,X	; Bank Number, Jump to SYS Address
8974: AC DF 03	LDY $03DF	; FAC#1 Overflow
8977: 94 01	STY $01,X

8979: 69 08	ADC #$08
897B: 30 E7	BMI $8964
897D: F0 E5	BEQ $8964
897F: E9 08	SBC #$08
8981: A8	TAY
8982: A5 71	LDA $71
8984: B0 14	BCS $899A

8986: 16 01	ASL $01,X
8988: 90 02	BCC $898C
898A: F6 01	INC $01,X

898C: 76 01	ROR $01,X
898E: 76 01	ROR $01,X

8990: 76 02	ROR $02,X	; Bank Number, Jump to SYS Address
8992: 76 03	ROR $03,X	; SYS address low, MLM register PC
8994: 76 04	ROR $04,X	; SYS address high, MLM register PC
8996: 6A	ROR A
8997: C8	INY
8998: D0 EC	BNE $8986

899A: 18	CLC
899B: 60	RTS

; 1.00

899C: 81 00 00 00 00         	; '{ORANGE}{0}{0}{0}{0}'

; #03             (counter)

89A1: 03                     	; '{STOP}'

; 0.434255942

89A2: 7F 5E 56 CB 79         	; '.^vKY'

; 0.57658454

89A7: 80 13 9B 0B 64         	; '.{HOME}{GRAY3}{LOCK}d'

; 0.961800759

89AC: 80 76 38 93 16         	; '.V8{CLR}.'

; 2.885390073

89B1: 82 38 AA 3B 20         	; '{ULOFF}8.; '

; 0.707106781     SQR(0.5)

89B6: 80 35 04 F3 34         	; '.5..4'

; 1.41421356      SRQ(2)

89BB: 81 35 04 F3 34         	; '{ORANGE}5..4'

; -0.5

89C0: 80 80 00 00 00         	; '..{0}{0}{0}'

; 0.693147181     LOG(2)

89C5: 80 31 72 17 F8         	; '.1R..'

; Evaluate <log>

89CA: 20 57 8C	JSR $8C57	; Get Sign
89CD: F0 02	BEQ $89D1
89CF: 10 03	BPL $89D4

89D1: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

89D4: A5 63	LDA $63
89D6: E9 7F	SBC #$7F
89D8: 48	PHA
89D9: A9 80	LDA #$80
89DB: 85 63	STA $63
89DD: A9 B6	LDA #$B6
89DF: A0 89	LDY #$89
89E1: 20 12 8A	JSR $8A12	; Add Memory At A/Y
89E4: A9 BB	LDA #$BB
89E6: A0 89	LDY #$89
89E8: 20 1E 8A	JSR $8A1E	; Divide By Memory
89EB: A9 9C	LDA #$9C
89ED: A0 89	LDY #$89
89EF: 20 18 8A	JSR $8A18	; Subtract Memory At A/Y
89F2: A9 A1	LDA #$A1
89F4: A0 89	LDY #$89
89F6: 20 86 90	JSR $9086
89F9: A9 C0	LDA #$C0
89FB: A0 89	LDY #$89
89FD: 20 12 8A	JSR $8A12	; Add Memory At A/Y
8A00: 68	PLA
8A01: 20 B0 8D	JSR $8DB0	; Get Ascii Digit
8A04: A9 C5	LDA #$C5
8A06: A0 89	LDY #$89

8A08: 20 89 8A	JSR $8A89	; Unpack ROM to FAC#2
8A0B: 4C 27 8A	JMP $8A27	; Evaluate <multiply>

; Add 0.5

8A0E: A9 76	LDA #$76
8A10: A0 8F	LDY #$8F

; Add Memory At A/Y

8A12: 20 89 8A	JSR $8A89	; Unpack ROM to FAC#2
8A15: 4C 48 88	JMP $8848	; Evaluate <add>

; Subtract Memory At A/Y

8A18: 20 89 8A	JSR $8A89	; Unpack ROM to FAC#2
8A1B: 4C 31 88	JMP $8831	; Evaluate <subtract>

; Divide By Memory

8A1E: 20 89 8A	JSR $8A89	; Unpack ROM to FAC#2
8A21: 4C 4C 8B	JMP $8B4C	; Evaluate <divide>

; Multiply By Memory

8A24: 20 B4 8A	JSR $8AB4	; Unpack RAM1 to FAC#2

; Evaluate <multiply>

8A27: D0 03	BNE $8A2C
8A29: 4C 88 8A	JMP $8A88

8A2C: 20 EC 8A	JSR $8AEC	; Test Both Accumulators
8A2F: A9 00	LDA #$00
8A31: 85 28	STA $28
8A33: 85 29	STA $29
8A35: 85 2A	STA $2A
8A37: 85 2B	STA $2B
8A39: A5 71	LDA $71
8A3B: 20 5B 8A	JSR $8A5B
8A3E: A5 67	LDA $67
8A40: 20 55 8A	JSR $8A55
8A43: A5 66	LDA $66
8A45: 20 55 8A	JSR $8A55
8A48: A5 65	LDA $65
8A4A: 20 5B 8A	JSR $8A5B
8A4D: A5 64	LDA $64
8A4F: 20 5B 8A	JSR $8A5B
8A52: 4C C1 8B	JMP $8BC1

8A55: D0 04	BNE $8A5B
8A57: EA	NOP
8A58: 4C 62 89	JMP $8962	; ?

8A5B: 4A	LSR A
8A5C: 09 80	ORA #$80

8A5E: A8	TAY
8A5F: 90 19	BCC $8A7A
8A61: 18	CLC
8A62: A5 2B	LDA $2B
8A64: 65 6E	ADC $6E
8A66: 85 2B	STA $2B
8A68: A5 2A	LDA $2A
8A6A: 65 6D	ADC $6D
8A6C: 85 2A	STA $2A
8A6E: A5 29	LDA $29
8A70: 65 6C	ADC $6C
8A72: 85 29	STA $29
8A74: A5 28	LDA $28
8A76: 65 6B	ADC $6B
8A78: 85 28	STA $28

8A7A: 66 28	ROR $28
8A7C: 66 29	ROR $29
8A7E: 66 2A	ROR $2A
8A80: 66 2B	ROR $2B
8A82: 66 71	ROR $71
8A84: 98	TYA
8A85: 4A	LSR A
8A86: D0 D6	BNE $8A5E

8A88: 60	RTS

; Unpack ROM to FAC#2

8A89: 85 24	STA $24
8A8B: 84 25	STY $25
8A8D: A0 04	LDY #$04
8A8F: B1 24	LDA ($24),Y
8A91: 85 6E	STA $6E
8A93: 88	DEY
8A94: B1 24	LDA ($24),Y
8A96: 85 6D	STA $6D
8A98: 88	DEY
8A99: B1 24	LDA ($24),Y
8A9B: 85 6C	STA $6C
8A9D: 88	DEY
8A9E: B1 24	LDA ($24),Y
8AA0: 85 6F	STA $6F
8AA2: 45 68	EOR $68
8AA4: 85 70	STA $70
8AA6: A5 6F	LDA $6F
8AA8: 09 80	ORA #$80
8AAA: 85 6B	STA $6B
8AAC: 88	DEY
8AAD: B1 24	LDA ($24),Y
8AAF: 85 6A	STA $6A
8AB1: A5 63	LDA $63
8AB3: 60	RTS

; Unpack RAM1 to FAC#2

8AB4: 85 24	STA $24
8AB6: 84 25	STY $25
8AB8: AD 00 FF	LDA $FF00	; MMU Configuration Register
8ABB: 48	PHA
8ABC: A0 04	LDY #$04
8ABE: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
8AC1: 85 6E	STA $6E
8AC3: 88	DEY
8AC4: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
8AC7: 85 6D	STA $6D
8AC9: 88	DEY
8ACA: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
8ACD: 85 6C	STA $6C
8ACF: 88	DEY
8AD0: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
8AD3: 85 6F	STA $6F
8AD5: 45 68	EOR $68
8AD7: 85 70	STA $70
8AD9: A5 6F	LDA $6F
8ADB: 09 80	ORA #$80
8ADD: 85 6B	STA $6B
8ADF: 88	DEY
8AE0: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
8AE3: 85 6A	STA $6A
8AE5: 68	PLA
8AE6: 8D 00 FF	STA $FF00	; MMU Configuration Register
8AE9: A5 63	LDA $63
8AEB: 60	RTS

; Test Both Accumulators

8AEC: A5 6A	LDA $6A

8AEE: F0 1F	BEQ $8B0F
8AF0: 18	CLC
8AF1: 65 63	ADC $63
8AF3: 90 04	BCC $8AF9
8AF5: 30 1D	BMI $8B14
8AF7: 18	CLC
8AF8: 2C	.BYTE $2C

8AF9: 10 14	BPL $8B0F
8AFB: 69 80	ADC #$80
8AFD: 85 63	STA $63
8AFF: D0 03	BNE $8B04
8B01: 4C DA 88	JMP $88DA

8B04: A5 70	LDA $70
8B06: 85 68	STA $68
8B08: 60	RTS

; Overflow/Underflow

8B09: A5 68	LDA $68
8B0B: 49 FF	EOR #$FF
8B0D: 30 05	BMI $8B14

8B0F: 68	PLA
8B10: 68	PLA
8B11: 4C D6 88	JMP $88D6	; Zero Both Accuymulators

8B14: 4C 5D 89	JMP $895D	; Print 'overflow'

; Multiply By 10

8B17: 20 38 8C	JSR $8C38	; FAC#1 to FAC#2
8B1A: AA	TAX
8B1B: F0 10	BEQ $8B2D
8B1D: 18	CLC
8B1E: 69 02	ADC #$02
8B20: B0 F2	BCS $8B14

8B22: A2 00	LDX #$00
8B24: 86 70	STX $70
8B26: 20 55 88	JSR $8855
8B29: E6 63	INC $63
8B2B: F0 E7	BEQ $8B14

8B2D: 60	RTS

; +10

8B2E: 84 20 00 00 00         	; '. {0}{0}{0}'

; Print 'division by zero'

8B33: A2 14	LDX #$14
8B35: 4C 3C 4D	JMP $4D3C	; Error

; Divide By 10

8B38: 20 38 8C	JSR $8C38	; FAC#1 to FAC#2
8B3B: A9 2E	LDA #$2E
8B3D: A0 8B	LDY #$8B
8B3F: A2 00	LDX #$00

8B41: 86 70	STX $70
8B43: 20 D4 8B	JSR $8BD4	; Unpack ROM to FAC#1
8B46: 4C 4C 8B	JMP $8B4C	; Evaluate <divide>

; Divide Into Memory

8B49: 20 B4 8A	JSR $8AB4	; Unpack RAM1 to FAC#2

; Evaluate <divide>

8B4C: F0 E5	BEQ $8B33	; Print 'division by zero'
8B4E: 20 47 8C	JSR $8C47	; Round FAC#1
8B51: A9 00	LDA #$00
8B53: 38	SEC
8B54: E5 63	SBC $63
8B56: 85 63	STA $63
8B58: 20 EC 8A	JSR $8AEC	; Test Both Accumulators
8B5B: E6 63	INC $63
8B5D: F0 B5	BEQ $8B14
8B5F: A2 FC	LDX #$FC
8B61: A9 01	LDA #$01

8B63: A4 6B	LDY $6B
8B65: C4 64	CPY $64
8B67: D0 10	BNE $8B79
8B69: A4 6C	LDY $6C
8B6B: C4 65	CPY $65
8B6D: D0 0A	BNE $8B79
8B6F: A4 6D	LDY $6D
8B71: C4 66	CPY $66
8B73: D0 04	BNE $8B79
8B75: A4 6E	LDY $6E
8B77: C4 67	CPY $67

8B79: 08	PHP
8B7A: 2A	ROL A
8B7B: 90 09	BCC $8B86
8B7D: E8	INX
8B7E: 95 2B	STA $2B,X
8B80: F0 32	BEQ $8BB4
8B82: 10 34	BPL $8BB8
8B84: A9 01	LDA #$01

8B86: 28	PLP
8B87: B0 0E	BCS $8B97

8B89: 06 6E	ASL $6E
8B8B: 26 6D	ROL $6D
8B8D: 26 6C	ROL $6C
8B8F: 26 6B	ROL $6B
8B91: B0 E6	BCS $8B79
8B93: 30 CE	BMI $8B63
8B95: 10 E2	BPL $8B79

8B97: A8	TAY
8B98: A5 6E	LDA $6E
8B9A: E5 67	SBC $67
8B9C: 85 6E	STA $6E
8B9E: A5 6D	LDA $6D
8BA0: E5 66	SBC $66
8BA2: 85 6D	STA $6D
8BA4: A5 6C	LDA $6C
8BA6: E5 65	SBC $65
8BA8: 85 6C	STA $6C
8BAA: A5 6B	LDA $6B
8BAC: E5 64	SBC $64
8BAE: 85 6B	STA $6B
8BB0: 98	TYA
8BB1: 4C 89 8B	JMP $8B89

8BB4: A9 40	LDA #$40
8BB6: D0 CE	BNE $8B86

8BB8: 0A	ASL A
8BB9: 0A	ASL A
8BBA: 0A	ASL A
8BBB: 0A	ASL A
8BBC: 0A	ASL A
8BBD: 0A	ASL A
8BBE: 85 71	STA $71
8BC0: 28	PLP

8BC1: A5 28	LDA $28
8BC3: 85 64	STA $64
8BC5: A5 29	LDA $29
8BC7: 85 65	STA $65
8BC9: A5 2A	LDA $2A
8BCB: 85 66	STA $66
8BCD: A5 2B	LDA $2B
8BCF: 85 67	STA $67
8BD1: 4C B6 88	JMP $88B6

; Unpack ROM to FAC#1

8BD4: 85 24	STA $24
8BD6: 84 25	STY $25
8BD8: A0 04	LDY #$04
8BDA: B1 24	LDA ($24),Y
8BDC: 85 67	STA $67
8BDE: 88	DEY
8BDF: B1 24	LDA ($24),Y
8BE1: 85 66	STA $66
8BE3: 88	DEY
8BE4: B1 24	LDA ($24),Y
8BE6: 85 65	STA $65
8BE8: 88	DEY
8BE9: B1 24	LDA ($24),Y
8BEB: 85 68	STA $68
8BED: 09 80	ORA #$80
8BEF: 85 64	STA $64
8BF1: 88	DEY
8BF2: B1 24	LDA ($24),Y
8BF4: 85 63	STA $63
8BF6: 84 71	STY $71
8BF8: 60	RTS

; Pack FAC#1 to $5e

8BF9: A2 5E	LDX #$5E
8BFB: 2C	.BYTE $2C

; Pack FAC#1 to $59

8BFC: A2 59	LDX #$59
8BFE: A0 00	LDY #$00

; Pack FAC#1 to RAM1

8C00: 20 47 8C	JSR $8C47	; Round FAC#1
8C03: 86 24	STX $24
8C05: 84 25	STY $25
8C07: A0 04	LDY #$04
8C09: A5 67	LDA $67
8C0B: 91 24	STA ($24),Y
8C0D: 88	DEY
8C0E: A5 66	LDA $66
8C10: 91 24	STA ($24),Y
8C12: 88	DEY
8C13: A5 65	LDA $65
8C15: 91 24	STA ($24),Y
8C17: 88	DEY
8C18: A5 68	LDA $68
8C1A: 09 7F	ORA #$7F
8C1C: 25 64	AND $64
8C1E: 91 24	STA ($24),Y
8C20: 88	DEY
8C21: A5 63	LDA $63
8C23: 91 24	STA ($24),Y
8C25: 84 71	STY $71
8C27: 60	RTS

; FAC#2 to FAC#1

8C28: A5 6F	LDA $6F

8C2A: 85 68	STA $68
8C2C: A2 05	LDX #$05

8C2E: B5 69	LDA $69,X
8C30: 95 62	STA $62,X
8C32: CA	DEX
8C33: D0 F9	BNE $8C2E
8C35: 86 71	STX $71
8C37: 60	RTS

; FAC#1 to FAC#2

8C38: 20 47 8C	JSR $8C47	; Round FAC#1

8C3B: A2 06	LDX #$06

8C3D: B5 62	LDA $62,X
8C3F: 95 69	STA $69,X
8C41: CA	DEX
8C42: D0 F9	BNE $8C3D
8C44: 86 71	STX $71

8C46: 60	RTS

; Round FAC#1

8C47: A5 63	LDA $63
8C49: F0 FB	BEQ $8C46
8C4B: 06 71	ASL $71
8C4D: 90 F7	BCC $8C46

8C4F: 20 4E 89	JSR $894E	; Round Up FAC#1
8C52: D0 F2	BNE $8C46
8C54: 4C 17 89	JMP $8917	; Trim FAC#1 Left

; Get Sign

8C57: A5 63	LDA $63
8C59: F0 09	BEQ $8C64

8C5B: A5 68	LDA $68

8C5D: 2A	ROL A
8C5E: A9 FF	LDA #$FF
8C60: B0 02	BCS $8C64
8C62: A9 01	LDA #$01

8C64: 60	RTS

; Evaluate <sgn>

8C65: 20 57 8C	JSR $8C57	; Get Sign

; Byte Fixed-Float

8C68: 85 64	STA $64
8C6A: A9 00	LDA #$00
8C6C: 85 65	STA $65
8C6E: A2 88	LDX #$88

8C70: A5 64	LDA $64
8C72: 49 FF	EOR #$FF
8C74: 2A	ROL A

; Fixed-Float

8C75: A9 00	LDA #$00
8C77: 85 67	STA $67
8C79: 85 66	STA $66

8C7B: 86 63	STX $63
8C7D: 85 71	STA $71
8C7F: 85 68	STA $68
8C81: 4C B1 88	JMP $88B1

; Evaluate <abs>

8C84: 46 68	LSR $68
8C86: 60	RTS

; Compare FAC#1 to Memory

8C87: 85 26	STA $26
8C89: 84 27	STY $27
8C8B: A0 00	LDY #$00
8C8D: B1 26	LDA ($26),Y
8C8F: C8	INY
8C90: AA	TAX
8C91: F0 C4	BEQ $8C57	; Get Sign
8C93: B1 26	LDA ($26),Y
8C95: 45 68	EOR $68
8C97: 30 C2	BMI $8C5B
8C99: E4 63	CPX $63
8C9B: D0 21	BNE $8CBE
8C9D: B1 26	LDA ($26),Y
8C9F: 09 80	ORA #$80
8CA1: C5 64	CMP $64
8CA3: D0 19	BNE $8CBE
8CA5: C8	INY
8CA6: B1 26	LDA ($26),Y
8CA8: C5 65	CMP $65
8CAA: D0 12	BNE $8CBE
8CAC: C8	INY
8CAD: B1 26	LDA ($26),Y
8CAF: C5 66	CMP $66
8CB1: D0 0B	BNE $8CBE
8CB3: C8	INY
8CB4: A9 7F	LDA #$7F
8CB6: C5 71	CMP $71
8CB8: B1 26	LDA ($26),Y
8CBA: E5 67	SBC $67
8CBC: F0 2A	BEQ $8CE8

8CBE: A5 68	LDA $68
8CC0: 90 02	BCC $8CC4
8CC2: 49 FF	EOR #$FF

8CC4: 4C 5D 8C	JMP $8C5D

; Float-Fixed

8CC7: A5 63	LDA $63
8CC9: F0 4D	BEQ $8D18
8CCB: 38	SEC
8CCC: E9 A0	SBC #$A0
8CCE: 24 68	BIT $68
8CD0: 10 0A	BPL $8CDC
8CD2: AA	TAX
8CD3: A9 FF	LDA #$FF
8CD5: 8D DF 03	STA $03DF	; FAC#1 Overflow
8CD8: 20 2C 89	JSR $892C
8CDB: 8A	TXA

8CDC: A2 63	LDX #$63
8CDE: C9 F9	CMP #$F9
8CE0: 10 07	BPL $8CE9
8CE2: 20 79 89	JSR $8979
8CE5: 8C DF 03	STY $03DF	; FAC#1 Overflow

8CE8: 60	RTS

8CE9: A8	TAY
8CEA: A5 68	LDA $68
8CEC: 29 80	AND #$80
8CEE: 46 64	LSR $64
8CF0: 05 64	ORA $64
8CF2: 85 64	STA $64
8CF4: 20 90 89	JSR $8990
8CF7: 8C DF 03	STY $03DF	; FAC#1 Overflow
8CFA: 60	RTS

; Evaluate <int>

8CFB: A5 63	LDA $63
8CFD: C9 A0	CMP #$A0
8CFF: B0 20	BCS $8D21
8D01: 20 68 AA	JSR $AA68
8D04: 84 71	STY $71
8D06: A5 68	LDA $68
8D08: 84 68	STY $68
8D0A: 49 80	EOR #$80
8D0C: 2A	ROL A
8D0D: A9 A0	LDA #$A0
8D0F: 85 63	STA $63
8D11: A5 67	LDA $67
8D13: 85 09	STA $09 	; SYS and MLM register save (SP)
8D15: 4C B1 88	JMP $88B1

8D18: 85 64	STA $64
8D1A: 85 65	STA $65
8D1C: 85 66	STA $66
8D1E: 85 67	STA $67
8D20: A8	TAY

8D21: 60	RTS

; String to FAC#1

8D22: 8E DA 03	STX $03DA
8D25: A0 00	LDY #$00
8D27: A2 0A	LDX #$0A

8D29: 94 5F	STY $5F,X
8D2B: CA	DEX
8D2C: 10 FB	BPL $8D29
8D2E: 90 0F	BCC $8D3F
8D30: C9 2D	CMP #$2D
8D32: D0 04	BNE $8D38
8D34: 86 69	STX $69
8D36: F0 04	BEQ $8D3C

8D38: C9 2B	CMP #$2B
8D3A: D0 05	BNE $8D41

8D3C: 20 F5 8D	JSR $8DF5

8D3F: 90 5B	BCC $8D9C

8D41: C9 2E	CMP #$2E
8D43: F0 2E	BEQ $8D73
8D45: C9 45	CMP #$45
8D47: D0 30	BNE $8D79
8D49: 20 F5 8D	JSR $8DF5
8D4C: 90 17	BCC $8D65
8D4E: C9 AB	CMP #$AB
8D50: F0 0E	BEQ $8D60
8D52: C9 2D	CMP #$2D
8D54: F0 0A	BEQ $8D60
8D56: C9 AA	CMP #$AA
8D58: F0 08	BEQ $8D62
8D5A: C9 2B	CMP #$2B
8D5C: F0 04	BEQ $8D62
8D5E: D0 07	BNE $8D67

8D60: 66 62	ROR $62

8D62: 20 F5 8D	JSR $8DF5

8D65: 90 5C	BCC $8DC3

8D67: 24 62	BIT $62
8D69: 10 0E	BPL $8D79
8D6B: A9 00	LDA #$00
8D6D: 38	SEC
8D6E: E5 60	SBC $60
8D70: 4C 7B 8D	JMP $8D7B

8D73: 66 61	ROR $61
8D75: 24 61	BIT $61
8D77: 50 C3	BVC $8D3C

8D79: A5 60	LDA $60

8D7B: 38	SEC
8D7C: E5 5F	SBC $5F
8D7E: 85 60	STA $60
8D80: F0 12	BEQ $8D94
8D82: 10 09	BPL $8D8D

8D84: 20 38 8B	JSR $8B38	; Divide By 10
8D87: E6 60	INC $60
8D89: D0 F9	BNE $8D84
8D8B: F0 07	BEQ $8D94

8D8D: 20 17 8B	JSR $8B17	; Multiply By 10
8D90: C6 60	DEC $60
8D92: D0 F9	BNE $8D8D

8D94: A5 69	LDA $69
8D96: 30 01	BMI $8D99
8D98: 60	RTS

8D99: 4C FA 8F	JMP $8FFA	; Evaluate <negate>

8D9C: 48	PHA
8D9D: 24 61	BIT $61
8D9F: 10 02	BPL $8DA3
8DA1: E6 5F	INC $5F

8DA3: 20 17 8B	JSR $8B17	; Multiply By 10
8DA6: 68	PLA
8DA7: 38	SEC
8DA8: E9 30	SBC #$30
8DAA: 20 B0 8D	JSR $8DB0	; Get Ascii Digit
8DAD: 4C 3C 8D	JMP $8D3C

; Get Ascii Digit

8DB0: 48	PHA
8DB1: 20 38 8C	JSR $8C38	; FAC#1 to FAC#2
8DB4: 68	PLA
8DB5: 20 68 8C	JSR $8C68	; Byte Fixed-Float
8DB8: A5 6F	LDA $6F
8DBA: 45 68	EOR $68
8DBC: 85 70	STA $70
8DBE: A6 63	LDX $63
8DC0: 4C 48 88	JMP $8848	; Evaluate <add>

8DC3: A5 60	LDA $60
8DC5: C9 0A	CMP #$0A
8DC7: 90 09	BCC $8DD2
8DC9: A9 64	LDA #$64
8DCB: 24 62	BIT $62
8DCD: 30 21	BMI $8DF0
8DCF: 4C 5D 89	JMP $895D	; Print 'overflow'

8DD2: 0A	ASL A
8DD3: 0A	ASL A
8DD4: 18	CLC
8DD5: 65 60	ADC $60
8DD7: 0A	ASL A
8DD8: 18	CLC
8DD9: A0 00	LDY #$00
8DDB: 85 79	STA $79
8DDD: AD DA 03	LDA $03DA
8DE0: D0 06	BNE $8DE8
8DE2: 20 C9 03	JSR $03C9	; Txtptr Fetch From RAM Bank 0
8DE5: 4C EB 8D	JMP $8DEB

8DE8: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y

8DEB: 65 79	ADC $79
8DED: 38	SEC
8DEE: E9 30	SBC #$30

8DF0: 85 60	STA $60
8DF2: 4C 62 8D	JMP $8D62

8DF5: AD DA 03	LDA $03DA
8DF8: D0 03	BNE $8DFD
8DFA: 4C 80 03	JMP $0380	; CHRGET

8DFD: E6 24	INC $24
8DFF: D0 02	BNE $8E03
8E01: E6 25	INC $25

8E03: A0 00	LDY #$00
8E05: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
8E08: C9 3A	CMP #$3A
8E0A: B0 0A	BCS $8E16
8E0C: C9 20	CMP #$20
8E0E: F0 ED	BEQ $8DFD
8E10: 38	SEC
8E11: E9 30	SBC #$30
8E13: 38	SEC
8E14: E9 D0	SBC #$D0

8E16: 60	RTS

;   99999999.9

8E17: 9B 3E BC 1F FD         	; '{GRAY3}>.{BLUE}.'

;  999999999

8E1C: 9E 6E 6B 27 FD         	; '{YELLOW}nk'.'

; 1000000000

8E21: 9E 6E 6B 28 00         	; '{YELLOW}nk({0}'

; Print 'in...'

8E26: 20 81 92	JSR $9281	; Print Following Text
8E29: 20 49 4E 20 00         	; ' in {0}'

8E2E: A5 3C	LDA $3C
8E30: A6 3B	LDX $3B

; Print Integer

8E32: 85 64	STA $64
8E34: 86 65	STX $65
8E36: A2 90	LDX #$90
8E38: 38	SEC
8E39: 20 75 8C	JSR $8C75	; Fixed-Float
8E3C: 20 44 8E	JSR $8E44
8E3F: 4C E2 55	JMP $55E2

; Float to Ascii

8E42: A0 01	LDY #$01

8E44: A9 20	LDA #$20
8E46: 24 68	BIT $68
8E48: 10 02	BPL $8E4C
8E4A: A9 2D	LDA #$2D

8E4C: 99 FF 00	STA $FF,Y
8E4F: 85 68	STA $68
8E51: 84 72	STY $72
8E53: C8	INY
8E54: A9 30	LDA #$30
8E56: A6 63	LDX $63
8E58: D0 03	BNE $8E5D
8E5A: 4C 69 8F	JMP $8F69

8E5D: A9 00	LDA #$00
8E5F: E0 80	CPX #$80
8E61: F0 02	BEQ $8E65
8E63: B0 09	BCS $8E6E

8E65: A9 21	LDA #$21
8E67: A0 8E	LDY #$8E
8E69: 20 08 8A	JSR $8A08
8E6C: A9 F7	LDA #$F7

8E6E: 85 5F	STA $5F

8E70: A9 1C	LDA #$1C
8E72: A0 8E	LDY #$8E
8E74: 20 87 8C	JSR $8C87	; Compare FAC#1 to Memory
8E77: F0 1E	BEQ $8E97
8E79: 10 12	BPL $8E8D

8E7B: A9 17	LDA #$17
8E7D: A0 8E	LDY #$8E
8E7F: 20 87 8C	JSR $8C87	; Compare FAC#1 to Memory
8E82: F0 02	BEQ $8E86
8E84: 10 0E	BPL $8E94

8E86: 20 17 8B	JSR $8B17	; Multiply By 10
8E89: C6 5F	DEC $5F
8E8B: D0 EE	BNE $8E7B

8E8D: 20 38 8B	JSR $8B38	; Divide By 10
8E90: E6 5F	INC $5F
8E92: D0 DC	BNE $8E70

8E94: 20 0E 8A	JSR $8A0E	; Add 0.5

8E97: 20 C7 8C	JSR $8CC7	; Float-Fixed
8E9A: A2 01	LDX #$01
8E9C: A5 5F	LDA $5F
8E9E: 18	CLC
8E9F: 69 0A	ADC #$0A
8EA1: 30 09	BMI $8EAC
8EA3: C9 0B	CMP #$0B
8EA5: B0 06	BCS $8EAD
8EA7: 69 FF	ADC #$FF
8EA9: AA	TAX
8EAA: A9 02	LDA #$02

8EAC: 38	SEC

8EAD: E9 02	SBC #$02
8EAF: 85 60	STA $60
8EB1: 86 5F	STX $5F
8EB3: 8A	TXA
8EB4: F0 02	BEQ $8EB8
8EB6: 10 13	BPL $8ECB

8EB8: A4 72	LDY $72
8EBA: A9 2E	LDA #$2E
8EBC: C8	INY
8EBD: 99 FF 00	STA $FF,Y
8EC0: 8A	TXA
8EC1: F0 06	BEQ $8EC9
8EC3: A9 30	LDA #$30
8EC5: C8	INY
8EC6: 99 FF 00	STA $FF,Y

8EC9: 84 72	STY $72

8ECB: A0 00	LDY #$00

8ECD: A2 80	LDX #$80

8ECF: A5 67	LDA $67
8ED1: 18	CLC
8ED2: 79 7E 8F	ADC $8F7E,Y
8ED5: 85 67	STA $67
8ED7: A5 66	LDA $66
8ED9: 79 7D 8F	ADC $8F7D,Y
8EDC: 85 66	STA $66
8EDE: A5 65	LDA $65
8EE0: 79 7C 8F	ADC $8F7C,Y
8EE3: 85 65	STA $65
8EE5: A5 64	LDA $64
8EE7: 79 7B 8F	ADC $8F7B,Y	; Decimal Constants
8EEA: 85 64	STA $64
8EEC: E8	INX
8EED: B0 04	BCS $8EF3
8EEF: 10 DE	BPL $8ECF
8EF1: 30 02	BMI $8EF5

8EF3: 30 DA	BMI $8ECF

8EF5: 8A	TXA
8EF6: 90 04	BCC $8EFC
8EF8: 49 FF	EOR #$FF
8EFA: 69 0A	ADC #$0A

8EFC: 69 2F	ADC #$2F
8EFE: C8	INY
8EFF: C8	INY
8F00: C8	INY
8F01: C8	INY
8F02: 84 49	STY $49
8F04: A4 72	LDY $72
8F06: C8	INY
8F07: AA	TAX
8F08: 29 7F	AND #$7F
8F0A: 99 FF 00	STA $FF,Y
8F0D: C6 5F	DEC $5F
8F0F: D0 06	BNE $8F17
8F11: A9 2E	LDA #$2E
8F13: C8	INY
8F14: 99 FF 00	STA $FF,Y

8F17: 84 72	STY $72
8F19: A4 49	LDY $49
8F1B: 8A	TXA
8F1C: 49 FF	EOR #$FF
8F1E: 29 80	AND #$80
8F20: AA	TAX
8F21: C0 24	CPY #$24
8F23: F0 04	BEQ $8F29
8F25: C0 3C	CPY #$3C
8F27: D0 A6	BNE $8ECF

8F29: A4 72	LDY $72

8F2B: B9 FF 00	LDA $FF,Y
8F2E: 88	DEY
8F2F: C9 30	CMP #$30
8F31: F0 F8	BEQ $8F2B
8F33: C9 2E	CMP #$2E
8F35: F0 01	BEQ $8F38
8F37: C8	INY

8F38: A9 2B	LDA #$2B
8F3A: A6 60	LDX $60
8F3C: F0 2E	BEQ $8F6C
8F3E: 10 08	BPL $8F48
8F40: A9 00	LDA #$00
8F42: 38	SEC
8F43: E5 60	SBC $60
8F45: AA	TAX
8F46: A9 2D	LDA #$2D

8F48: 99 01 01	STA $0101,Y
8F4B: A9 45	LDA #$45
8F4D: 99 00 01	STA $0100,Y
8F50: 8A	TXA
8F51: A2 2F	LDX #$2F
8F53: 38	SEC

8F54: E8	INX
8F55: E9 0A	SBC #$0A
8F57: B0 FB	BCS $8F54
8F59: 69 3A	ADC #$3A
8F5B: 99 03 01	STA $0103,Y
8F5E: 8A	TXA
8F5F: 99 02 01	STA $0102,Y
8F62: A9 00	LDA #$00
8F64: 99 04 01	STA $0104,Y
8F67: F0 08	BEQ $8F71

8F69: 99 FF 00	STA $FF,Y

8F6C: A9 00	LDA #$00
8F6E: 99 00 01	STA $0100,Y

8F71: A9 00	LDA #$00
8F73: A0 01	LDY #$01
8F75: 60	RTS

; +0.5

8F76: 80 00 00 00 00         	; '.{0}{0}{0}{0}'

; Decimal Constants

8F7B: FA                     	; '.'

8F7C: 0A                     	; '{LF}'

8F7D: 1F                     	; '{BLUE}'

8F7E: 00 00 98 96 80 FF F0 BD	; '{0}{0}{GRAY2}{LTRED}....'
8F86: C0 00 01 86 A0 FF FF D8	; '.{0}.....X'
8F8E: F0 00 00 03 E8 FF FF FF	; '.{0}{0}{STOP}....'
8F96: 9C 00 00 00 0A FF FF FF	; '{PURPLE}{0}{0}{0}{LF}...'
8F9E: FF                     	; '.'

; TI Constants

8F9F: FF DF 0A 80 00 03 4B C0	; '..{LF}.{0}{STOP}k.'
8FA7: FF FF 73 60 00 00 0E 10	; '..S`{0}{0}{LOWTEXT}.'
8FAF: FF FF FD A8 00 00 00 3C	; '....{0}{0}{0}<'

; Evaluate <sqr>

8FB7: 20 38 8C	JSR $8C38	; FAC#1 to FAC#2
8FBA: A9 76	LDA #$76
8FBC: A0 8F	LDY #$8F

; Raise to Memory Power

8FBE: 20 D4 8B	JSR $8BD4	; Unpack ROM to FAC#1

; Evaluate <power>

8FC1: F0 70	BEQ $9033	; Evaluate <exp>
8FC3: A5 6A	LDA $6A
8FC5: D0 03	BNE $8FCA
8FC7: 4C D8 88	JMP $88D8

8FCA: A2 50	LDX #$50
8FCC: A0 00	LDY #$00
8FCE: 20 00 8C	JSR $8C00	; Pack FAC#1 to RAM1
8FD1: A5 6F	LDA $6F
8FD3: 10 0F	BPL $8FE4
8FD5: 20 FB 8C	JSR $8CFB	; Evaluate <int>
8FD8: A9 50	LDA #$50
8FDA: A0 00	LDY #$00
8FDC: 20 87 8C	JSR $8C87	; Compare FAC#1 to Memory
8FDF: D0 03	BNE $8FE4
8FE1: 98	TYA
8FE2: A4 09	LDY $09 	; SYS and MLM register save (SP)

8FE4: 20 2A 8C	JSR $8C2A
8FE7: 98	TYA
8FE8: 48	PHA
8FE9: 20 CA 89	JSR $89CA	; Evaluate <log>
8FEC: A9 50	LDA #$50
8FEE: A0 00	LDY #$00
8FF0: 20 24 8A	JSR $8A24	; Multiply By Memory
8FF3: 20 33 90	JSR $9033	; Evaluate <exp>
8FF6: 68	PLA
8FF7: 4A	LSR A
8FF8: 90 0A	BCC $9004

; Evaluate <negate>

8FFA: A5 63	LDA $63
8FFC: F0 06	BEQ $9004
8FFE: A5 68	LDA $68
9000: 49 FF	EOR #$FF
9002: 85 68	STA $68

9004: 60	RTS

; 1.44269504      (1/LOG to base 2 e)

9005: 81 38 AA 3B 29         	; '{ORANGE}8.;)'

; #07             (counter)

900A: 07                     	; '{BELL}'

; 2.149875 E-5

900B: 71 34 58 3E 56         	; 'Q4x>v'

; 1.435231 E-4

9010: 74 16 7E B3 1B         	; 'T...{ESC}'

; 1.342263 E-3

9015: 77 2F EE E3 85         	; 'W/...'

; 9.6414017 E-3

901A: 7A 1D 84 1C 2A         	; 'Z{RIGHT}.{RED}*'

; 5.550513 E-2

901F: 7C 63 59 58 0A         	; '.cyx{LF}'

; 2.402263 E-4

9024: 7E 75 FD E7 C6         	; '.U..F'

; 6.931471 E-1

9029: 80 31 72 18 10         	; '.1R{TABT}.'

; 1.00

902E: 81 00 00 00 00         	; '{ORANGE}{0}{0}{0}{0}'

; Evaluate <exp>

9033: A9 05	LDA #$05
9035: A0 90	LDY #$90
9037: 20 08 8A	JSR $8A08
903A: A5 71	LDA $71
903C: 69 50	ADC #$50
903E: 90 03	BCC $9043
9040: 20 4F 8C	JSR $8C4F

9043: 85 58	STA $58
9045: 20 3B 8C	JSR $8C3B
9048: A5 63	LDA $63
904A: C9 88	CMP #$88
904C: 90 03	BCC $9051

904E: 20 09 8B	JSR $8B09	; Overflow/Underflow

9051: 20 FB 8C	JSR $8CFB	; Evaluate <int>
9054: A5 09	LDA $09 	; SYS and MLM register save (SP)
9056: 18	CLC
9057: 69 81	ADC #$81
9059: F0 F3	BEQ $904E
905B: 38	SEC
905C: E9 01	SBC #$01
905E: 48	PHA
905F: A2 05	LDX #$05

9061: B5 6A	LDA $6A,X
9063: B4 63	LDY $63,X
9065: 95 63	STA $63,X
9067: 94 6A	STY $6A,X
9069: CA	DEX
906A: 10 F5	BPL $9061
906C: A5 58	LDA $58
906E: 85 71	STA $71
9070: 20 31 88	JSR $8831	; Evaluate <subtract>
9073: 20 FA 8F	JSR $8FFA	; Evaluate <negate>
9076: A9 0A	LDA #$0A
9078: A0 90	LDY #$90
907A: 20 9C 90	JSR $909C
907D: A9 00	LDA #$00
907F: 85 70	STA $70
9081: 68	PLA
9082: 20 EE 8A	JSR $8AEE
9085: 60	RTS

9086: 85 72	STA $72
9088: 84 73	STY $73
908A: 20 FC 8B	JSR $8BFC	; Pack FAC#1 to $59
908D: A9 59	LDA #$59
908F: 20 24 8A	JSR $8A24	; Multiply By Memory
9092: 20 A0 90	JSR $90A0
9095: A9 59	LDA #$59
9097: A0 00	LDY #$00
9099: 4C 24 8A	JMP $8A24	; Multiply By Memory

909C: 85 72	STA $72
909E: 84 73	STY $73

90A0: 20 F9 8B	JSR $8BF9	; Pack FAC#1 to $5e
90A3: B1 72	LDA ($72),Y
90A5: 85 69	STA $69
90A7: A4 72	LDY $72
90A9: C8	INY
90AA: 98	TYA
90AB: D0 02	BNE $90AF
90AD: E6 73	INC $73

90AF: 85 72	STA $72
90B1: A4 73	LDY $73

90B3: 20 08 8A	JSR $8A08
90B6: A5 72	LDA $72
90B8: A4 73	LDY $73
90BA: 18	CLC
90BB: 69 05	ADC #$05
90BD: 90 01	BCC $90C0
90BF: C8	INY

90C0: 85 72	STA $72
90C2: 84 73	STY $73
90C4: 20 12 8A	JSR $8A12	; Add Memory At A/Y
90C7: A9 5E	LDA #$5E
90C9: A0 00	LDY #$00
90CB: C6 69	DEC $69
90CD: D0 E4	BNE $90B3
90CF: 60	RTS

; I/O Error Message

90D0: AA	TAX
90D1: D0 02	BNE $90D5

90D3: A2 1E	LDX #$1E

90D5: 4C 3C 4D	JMP $4D3C	; Error

; Basic 'open'

90D8: 20 45 A8	JSR $A845	; Set Bank 15
90DB: 20 C0 FF	JSR $FFC0	; (iopen)       Open Vector [EFBD]
90DE: 60	RTS

; Basic 'chrout'

90DF: 20 69 92	JSR $9269	; Call 'chrout'
90E2: B0 EC	BCS $90D0	; I/O Error Message
90E4: 60	RTS

; Basic 'input'

90E5: 20 63 92	JSR $9263	; Call 'getin'
90E8: B0 E6	BCS $90D0	; I/O Error Message
90EA: 60	RTS

; Redirect Output

90EB: 48	PHA
90EC: 20 45 A8	JSR $A845	; Set Bank 15
90EF: 20 C9 FF	JSR $FFC9	; (ichkout)     Set Output [F14C]
90F2: 20 43 92	JSR $9243	; Release I/O String
90F5: AA	TAX
90F6: 68	PLA
90F7: 90 03	BCC $90FC
90F9: 8A	TXA
90FA: B0 D4	BCS $90D0	; I/O Error Message

90FC: 60	RTS

; Redirect Input

90FD: 20 45 A8	JSR $A845	; Set Bank 15
9100: 20 C6 FF	JSR $FFC6	; (ichkin)      Set Input [F106]
9103: 20 43 92	JSR $9243	; Release I/O String
9106: B0 C8	BCS $90D0	; I/O Error Message
9108: 60	RTS

9109: 20 45 A8	JSR $A845	; Set Bank 15
910C: 20 E4 FF	JSR $FFE4	; (igetin)      Get Vector [EEEB]
910F: B0 C2	BCS $90D3
9111: 60	RTS

; Perform [save]

9112: 20 AE 91	JSR $91AE	; Get Load/Save Parameters

9115: AE 10 12	LDX $1210	; End of Basic, Bank 0
9118: AC 11 12	LDY $1211
911B: A9 2D	LDA #$2D

911D: 20 45 A8	JSR $A845	; Set Bank 15
9120: 20 D8 FF	JSR $FFD8	; savesp        Save RAM To Device
9123: 20 43 92	JSR $9243	; Release I/O String
9126: B0 A8	BCS $90D0	; I/O Error Message
9128: 60	RTS

; Perform [verify]

9129: A9 01	LDA #$01
912B: 2C	.BYTE $2C

; Perform [load]

912C: A9 00	LDA #$00
912E: 85 0C	STA $0C
9130: 20 AE 91	JSR $91AE	; Get Load/Save Parameters

9133: 20 45 A8	JSR $A845	; Set Bank 15
9136: A5 0C	LDA $0C
9138: A6 2D	LDX $2D 	; Pointer: Start-of-BASIC (bank 0)
913A: A4 2E	LDY $2E
913C: 20 D5 FF	JSR $FFD5	; loadsp        Load RAM From Device
913F: 08	PHP
9140: 20 43 92	JSR $9243	; Release I/O String
9143: 28	PLP
9144: B0 65	BCS $91AB
9146: A5 0C	LDA $0C
9148: F0 16	BEQ $9160
914A: A2 1C	LDX #$1C
914C: 20 51 92	JSR $9251	; Call 'status'
914F: 29 10	AND #$10
9151: D0 16	BNE $9169
9153: 24 7F	BIT $7F
9155: 30 08	BMI $915F
9157: 20 81 92	JSR $9281	; Print Following Text
915A: 0D 4F 4B 0D 00         	; '{CR}ok{CR}{0}'

915F: 60	RTS

9160: 20 51 92	JSR $9251	; Call 'status'
9163: 29 BF	AND #$BF
9165: F0 05	BEQ $916C

9167: A2 1D	LDX #$1D	; "load error"

9169: 4C 3C 4D	JMP $4D3C	; Error

916C: 8E 10 12	STX $1210	; End of Basic, Bank 0
916F: 8C 11 12	STY $1211
9172: 24 7F	BIT $7F
9174: 30 0E	BMI $9184
9176: 70 E7	BVS $915F
9178: 20 2A 4D	JSR $4D2A	; Print 'ready'
917B: 20 4F 4F	JSR $4F4F	; Rechain Lines
917E: 20 F3 51	JSR $51F3	; Set Up Run
9181: 4C C3 4D	JMP $4DC3	; Ready For Basic

9184: 20 54 52	JSR $5254	; Textptr to BASIC start minus 1
9187: 20 4F 4F	JSR $4F4F	; Rechain Lines
918A: 4C 35 52	JMP $5235

; Perform [open]

918D: 20 F6 91	JSR $91F6	; Get Open/Close Parameters
9190: 18	CLC
9191: 20 D8 90	JSR $90D8	; Basic 'open'
9194: 20 43 92	JSR $9243	; Release I/O String
9197: B0 12	BCS $91AB
9199: 60	RTS

; Perform [close]

919A: 20 F6 91	JSR $91F6	; Get Open/Close Parameters
919D: 20 45 A8	JSR $A845	; Set Bank 15
91A0: A5 4B	LDA $4B
91A2: 18	CLC
91A3: 20 75 92	JSR $9275	; Call 'close'
91A6: 20 43 92	JSR $9243	; Release I/O String
91A9: 90 B4	BCC $915F

91AB: 4C D0 90	JMP $90D0	; I/O Error Message

; Get Load/Save Parameters

91AE: A9 00	LDA #$00
91B0: 20 5D 92	JSR $925D	; Call 'setnam'
91B3: A2 01	LDX #$01
91B5: A0 00	LDY #$00
91B7: 20 57 92	JSR $9257	; Call 'setlfs'
91BA: 20 87 92	JSR $9287	; Set Load/Save Bank
91BD: 20 E3 91	JSR $91E3	; Get Character or Abort
91C0: 20 39 92	JSR $9239
91C3: 20 E3 91	JSR $91E3	; Get Character or Abort
91C6: 20 DD 91	JSR $91DD	; Get Next Byte Value
91C9: A0 00	LDY #$00
91CB: 86 4B	STX $4B
91CD: 20 57 92	JSR $9257	; Call 'setlfs'
91D0: 20 E3 91	JSR $91E3	; Get Character or Abort
91D3: 20 DD 91	JSR $91DD	; Get Next Byte Value
91D6: 8A	TXA
91D7: A8	TAY
91D8: A6 4B	LDX $4B
91DA: 4C 57 92	JMP $9257	; Call 'setlfs'

; Get Next Byte Value

91DD: 20 EB 91	JSR $91EB	; Move to Next Parameter
91E0: 4C F4 87	JMP $87F4	; -Eval Byte Parameter

; Get Character or Abort

91E3: 20 86 03	JSR $0386	; CHRGOT entry
91E6: D0 02	BNE $91EA
91E8: 68	PLA
91E9: 68	PLA

91EA: 60	RTS

; Move to Next Parameter

91EB: 20 5C 79	JSR $795C	; -Check Comma

91EE: 20 86 03	JSR $0386	; CHRGOT entry
91F1: D0 F7	BNE $91EA
91F3: 4C 6C 79	JMP $796C	; Syntax Error

; Get Open/Close Parameters

91F6: A9 00	LDA #$00
91F8: A2 01	LDX #$01
91FA: 20 87 92	JSR $9287	; Set Load/Save Bank
91FD: 20 5D 92	JSR $925D	; Call 'setnam'
9200: 20 EE 91	JSR $91EE
9203: 20 F4 87	JSR $87F4	; -Eval Byte Parameter
9206: 86 4B	STX $4B
9208: 8A	TXA
9209: A2 01	LDX #$01
920B: A0 00	LDY #$00
920D: 20 57 92	JSR $9257	; Call 'setlfs'
9210: 20 E3 91	JSR $91E3	; Get Character or Abort
9213: 20 DD 91	JSR $91DD	; Get Next Byte Value
9216: 86 4C	STX $4C
9218: A0 00	LDY #$00
921A: A5 4B	LDA $4B
921C: E0 03	CPX #$03
921E: 90 01	BCC $9221
9220: 88	DEY

9221: 20 57 92	JSR $9257	; Call 'setlfs'
9224: 20 E3 91	JSR $91E3	; Get Character or Abort
9227: 20 DD 91	JSR $91DD	; Get Next Byte Value
922A: 8A	TXA
922B: A8	TAY
922C: A6 4C	LDX $4C
922E: A5 4B	LDA $4B
9230: 20 57 92	JSR $9257	; Call 'setlfs'
9233: 20 E3 91	JSR $91E3	; Get Character or Abort
9236: 20 EB 91	JSR $91EB	; Move to Next Parameter

9239: 20 7B 87	JSR $877B	; Evaluate String
923C: A6 24	LDX $24
923E: A4 25	LDY $25
9240: 4C 5D 92	JMP $925D	; Call 'setnam'

; Release I/O String

9243: 08	PHP
9244: 48	PHA
9245: A5 BA	LDA $BA 	; Current device
9247: C9 04	CMP #$04
9249: 90 03	BCC $924E
924B: 20 0D A8	JSR $A80D	; Release String

924E: 68	PLA
924F: 28	PLP
9250: 60	RTS

; Call 'status'

9251: 20 45 A8	JSR $A845	; Set Bank 15
9254: 4C B7 FF	JMP $FFB7	; readss        Read I/O Status Word

; Call 'setlfs'

9257: 20 45 A8	JSR $A845	; Set Bank 15
925A: 4C BA FF	JMP $FFBA	; setlfs        Set Logical File Parameters

; Call 'setnam'

925D: 20 45 A8	JSR $A845	; Set Bank 15
9260: 4C BD FF	JMP $FFBD	; setnam        Set Filename

; Call 'getin'

9263: 20 45 A8	JSR $A845	; Set Bank 15
9266: 4C CF FF	JMP $FFCF	; (ibasin)      Input Vector, chrin [EF06]

; Call 'chrout'

9269: 20 45 A8	JSR $A845	; Set Bank 15
926C: 4C D2 FF	JMP $FFD2	; (ibsout)      Output Vector, chrout [EF79]

; Call 'clrchn'

926F: 20 45 A8	JSR $A845	; Set Bank 15
9272: 4C CC FF	JMP $FFCC	; (iclrch)      Restore I/O Vector [F226]

; Call 'close'

9275: 20 45 A8	JSR $A845	; Set Bank 15
9278: 4C C3 FF	JMP $FFC3	; (iclose)      Close Vector [F188]

; Call 'clall'

927B: 20 45 A8	JSR $A845	; Set Bank 15
927E: 4C E7 FF	JMP $FFE7	; (iclall)      Close All Channels And Files [F222]

; Print Following Text

9281: 20 45 A8	JSR $A845	; Set Bank 15
9284: 4C 7D FF	JMP $FF7D	; primm         Print Immediate

; Set Load/Save Bank

9287: 20 45 A8	JSR $A845	; Set Bank 15
928A: 4C 68 FF	JMP $FF68	; setbnk

; Call 'plot'

928D: 8D 03 FF	STA $FF03
9290: 4C F0 FF	JMP $FFF0	; plot          Read / Set Cursor X/Y Position

; Call 'test stop'

9293: 20 45 A8	JSR $A845	; Set Bank 15
9296: 4C E1 FF	JMP $FFE1	; (istop)       Test-Stop Vector [F66E]

; Make Room For String

9299: 46 11	LSR $11		; Clear flag "collected"

929B: AA	TAX		; Byte count
929C: F0 3B	BEQ $92D9	; Skip on 0 request
929E: 48	PHA		; Save for later
929F: A5 35	LDA $35		; Make room back-link
92A1: 38	SEC		; Borrow
92A2: E9 02	SBC #$02	; Subtract 2 from
92A4: A4 36	LDY $36		; heap top (FRETOP)
92A6: B0 01	BCS $92A9
92A8: 88	DEY		; Underflow in high byte

92A9: 85 24	STA $24		; Save back-link address
92AB: 84 25	STY $25		; New heap pointer in A/Y
92AD: 8A	TXA		; Byte count
92AE: 49 FF	EOR #$FF	; negate it
92B0: 38	SEC		; (=complement + 1)
92B1: 65 24	ADC $24		; Add negative count
92B3: B0 01	BCS $92B6	; Underflow?
92B5: 88	DEY		; High byte

92B6: C4 34	CPY $34		; Bottom of strings reached (STREND)?
92B8: 90 20	BCC $92DA	; No memory, try collect 
92BA: D0 04	BNE $92C0	; Higher
92BC: C5 33	CMP $33		; Low Byte
92BE: 90 1A	BCC $92DA	; No memory, try collect 

92C0: 85 37	STA $37		; Temporary save (FRESPC)
92C2: 84 38	STY $38
92C4: A0 01	LDY #$01	; Offset back-link high byte 
92C6: A9 FF	LDA #$FF	; Gap mark
92C8: 8D 04 FF	STA $FF04	; Switch to bank 1
92CB: 91 24	STA ($24),Y	; Store back-link high byte
92CD: 88	DEY		; Y=0
92CE: 68	PLA		; Byte count
92CF: 91 24	STA ($24),Y	; Store back-link low byte
92D1: A6 37	LDX $37		; Temporary pointer
92D3: A4 38	LDY $38		; as
92D5: 86 35	STX $35		; new heap top
92D7: 84 36	STY $36		; (FRETOP)

92D9: 60	RTS		; return address in X/Y, length in A

92DA: A5 11	LDA $11		; Retry after a garbage collection
92DC: 30 09	BMI $92E7	; Already tried, if bit 7 set
92DE: 20 EA 92	JSR $92EA	; Try Garbage Collection
92E1: 38	SEC		; Set flag "collected"
92E2: 66 11	ROR $11		; Carry into bit 7
92E4: 68	PLA		; Byte count from stack
92E5: D0 B4	BNE $929B	; Retry 

92E7: 4C 3A 4D	JMP $4D3A	; Print 'out of memory'

; Garbage Collection

92EA: A6 18	LDX $18 	; String-Descriptor-Stack-Pointer

92EC: E0 1B	CPX #$1B 	; At bottom of SDS, empty?
92EE: F0 13	BEQ $9303 	; start heap walk
92F0: 20 F0 93	JSR $93F0 	; next SDS element
92F3: F0 F7	BEQ $92EC 	; next if zero-length string
92F5: 8A	TXA 		; String low byte
92F6: A0 00	LDY #$00 	; Index on back-link part
92F8: 8D 04 FF	STA $FF04 	; Switch bank
92FB: 91 5E	STA ($5E),Y 	; Back-link low byte
92FD: 98	TYA 		; =0
92FE: C8	INY 		; Index back-link part
92FF: 91 5E	STA ($5E),Y 	; Back-link high byte = 0
9301: D0 E9	BNE $92EC 	; always, loop through SDS

9303: A0 00	LDY #$00 	; Heap walk
9305: 84 5A	STY $5A 	; Clear not-in-gap flag  (opt.: LSR $5A)
9307: A6 39	LDX $39 	; Pointer: Limit-of-memory (bank 1)
9309: A4 3A	LDY $3A 	; initializes ...
930B: 86 61	STX $61 	; New heap pointer low
930D: 86 50	STX $50 	; Old heap pointer low
930F: 86 37	STX $37 	; Temporary bottom of string space low 
9311: 84 62	STY $62 	; New heap pointer high
9313: 84 51	STY $51 	; Old heap pointer low
9315: 84 38	STY $38 	; Temporary bottom of string space high
9317: 8A	TXA 		; 

9318: 20 83 93	JSR $9383 	; Get next heap element from A/Y
931B: D0 0C	BNE $9329 	; Z=0: got a string

931D: 88	DEY 		; Gap, Y=0
931E: 20 FB 42	JSR $42FB	; Get length From ($50),Y Bank1< (old heap)
9321: 20 D2 93	JSR $93D2 	; old heap -= length 
9324: 38	SEC 		; Set flag: gap encountered
9325: 66 5A	ROR $5A 	; 
9327: D0 EF	BNE $9318 	; always, loop heap

9329: 24 5A	BIT $5A 	; Ever saw a gap?
932B: 10 42	BPL $936F 	; no, to next element without copy 
932D: A2 00	LDX #$00 	; Reset flag
932F: 86 5A	STX $5A 	; not-in-gap

9331: A9 02	LDA #$02 	; Obsolete code (not needed) 

9333: A0 01	LDY #$01 	; Get back-link high byte
9335: 20 FB 42	JSR $42FB	; Get From ($50),Y Bank1
9338: 91 61	STA ($61),Y 	; Copy to new heap
933A: 88	DEY 		; Y=0
933B: 20 FB 42	JSR $42FB	; Get From ($50),Y Bank1
933E: 91 61	STA ($61),Y 	; Back-link low byte: copy to new heap

9340: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1, ($24),Y
9343: AA	TAX 		; String length from descriptor
9344: 20 E1 93	JSR $93E1 	; $61/$62 -= length (new heap pointer) 
9347: 85 37	STA $37 	; Store as new ... 
9349: 84 38	STY $38 	; top of heap

934B: 8A	TXA 		; String length
934C: 20 D2 93	JSR $93D2 	; $50/$51 -= length (old heap pointer) 
934F: 8A	TXA 		; String length (used as count) ...
9350: A8	TAY 		; to Y as index

9351: 88	DEY 		; String copy loop: Pre-decrement index 
9352: 20 FB 42	JSR $42FB	; Get From ($50),Y Bank1: from old heap
9355: 91 61	STA ($61),Y 	; to new heap
9357: CA	DEX 		; Decrement count
9358: D0 F7	BNE $9351 	; next byte to copy

935A: A0 02	LDY #$02 	; Copy two bytes

935C: B9 60 00	LDA $60,Y 	; New string pointer $61, $62
935F: 91 24	STA ($24),Y 	; stored into descriptor (offset 1,2)
9361: 88	DEY 		; Index
9362: D0 F8	BNE $935C 	; Loop 

9364: A5 50	LDA $50 	; New heap pointer
9366: A4 51	LDY $51 	; to A/Y
9368: 20 83 93	JSR $9383 	; Get next heap element from A/Y
936B: F0 B0	BEQ $931D 	; process string
936D: D0 C4	BNE $9333 	; process gap

936F: A0 00	LDY #$00 	; Step to next element without copy 
9371: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1, ($24),Y (old heap)
9374: AA	TAX 		; String length
9375: 20 E1 93	JSR $93E1 	; $61/$62 -= length (new heap pointer) 
9378: 85 37	STA $37 	; Store as temporary ...
937A: 84 38	STY $38 	; top of heap
937C: 8A	TXA 		; String length
937D: 20 D2 93	JSR $93D2 	; $50/$51 -= length (old heap pointer) 
9380: 4C 18 93	JMP $9318 	; Loop through heap

9383: C4 36	CPY $36 	; Get next heap element (A/Y)
9385: 90 2A	BCC $93B1 	; If A/Y below or equal FRETOP, finished 
9387: D0 06	BNE $938F 	; 
9389: C5 35	CMP $35 	; Low byte of FRETOP
938B: F0 24	BEQ $93B1 	; Equal, finished 
938D: 90 22	BCC $93B1 	; Below, finished 

938F: 24 5A	BIT $5A 	; no-gap-flag ...
9391: 30 05	BMI $9398 	; set, process string
9393: A9 02	LDA #$02 	; Subtract 2
9395: 20 E1 93	JSR $93E1 	; $61/$62 -= 2 (new heap pointer) 

9398: A9 02	LDA #$02 	; Subtract 2
939A: 20 D2 93	JSR $93D2 	; $50/$51 -= 2 (old heap pointer) 
939D: A0 01	LDY #$01 	; Back-link high byte
939F: 20 FB 42	JSR $42FB	; Get From ($50) Bank1
93A2: C9 FF	CMP #$FF 	; Marked as gap?
93A4: D0 01	BNE $93A7 	; No gap
93A6: 60	RTS 		; Return a gap (Z=0) 
 		; Not a gap ... (Y=1)
93A7: 20 FB 42	JSR $42FB	; Get From ($50),Y Bank1
93AA: 99 24 00	STA $24,Y 	; Store Back-link as descriptor pointer
93AD: 88	DEY 	; Decremente index (Y: 1 to 0)
93AE: 10 F7	BPL $93A7 	; Loop through 2 bytes
93B0: 60	RTS 		; Leave

93B1: A6 18	LDX $18 	; Mark SDS strings as gap

93B3: E0 1B	CPX #$1B 	; Current SDS on bottom (empty)?
93B5: F0 10	BEQ $93C7 	; SDS empty
93B7: 20 F0 93	JSR $93F0 	; Process SDS element
93BA: F0 F7	BEQ $93B3 	; Empty, next SDS element
93BC: A0 00	LDY #$00 	; Non-empty, mark back-link as gap
93BE: 91 5E	STA ($5E),Y 	; Gap length
93C0: C8	INY 		; Y=1
93C1: A9 FF	LDA #$FF 	; Gap mark to
93C3: 91 5E	STA ($5E),Y 	; back-link high
93C5: D0 EC	BNE $93B3 	; branch always

93C7: 68	PLA	 	; Remove caller's address
93C8: 68	PLA 		; from stack
93C9: A5 37	LDA $37 	; Temporary top of heap
93CB: A4 38	LDY $38 	; 
93CD: 85 35	STA $35 	; set FRETOP
93CF: 84 36	STY $36 	; 
93D1: 60	RTS 		; GC finished

93D2: 49 FF	EOR #$FF 	; Subtract A from $50/$51
93D4: 38	SEC 		; Negate value in A
93D5: 65 50	ADC $50 	; and subtract
93D7: A4 51	LDY $51 	; High byte ...
93D9: B0 01	BCS $93DC 	; if underflow
93DB: 88	DEY 		; correct high byte

93DC: 85 50	STA $50 	; Save back to
93DE: 84 51	STY $51 	; $50/51 
93E0: 60	RTS 		; and return

93E1: 49 FF	EOR #$FF 	; Subtract A from $61/$62
93E3: 38	SEC 		; Negate value in A
93E4: 65 61	ADC $61 	; and subtract
93E6: A4 62	LDY $62 	; High byte ...
93E8: B0 01	BCS $93EB 	; if underflow
93EA: 88	DEY 		; correct high byte

93EB: 85 61	STA $61 	; Save back to
93ED: 84 62	STY $62 	; $61/$62
93EF: 60	RTS 		; and return

93F0: CA	DEX 		; Get SDS element
93F1: B5 00	LDA $00,X 	; String address high
93F3: 85 5F	STA $5F 	; Descriptor pointer
93F5: CA	DEX 		; Index
93F6: B5 00	LDA $00,X 	; String address low
93F8: 85 5E	STA $5E 	; Descriptor pointer
93FA: CA	DEX 		; Index 
93FB: B5 00	LDA $00,X 	; Get length
93FD: 48	PHA 		; Save length
93FE: 18	CLC 		; Prepare addition
93FF: 65 5E	ADC $5E 	; $5E/$5F += length
9401: 85 5E	STA $5E 	; Low byte
9403: 90 02	BCC $9407 	; Overflow
9405: E6 5F	INC $5F 	; Adjust high byte

9407: 68	PLA 		; Restore length into A
9408: 60	RTS 		; Back

; Evaluate <cos>

9409: A9 85	LDA #$85
940B: A0 94	LDY #$94
940D: 20 12 8A	JSR $8A12	; Add Memory At A/Y

; Evaluate <sin>

9410: 20 38 8C	JSR $8C38	; FAC#1 to FAC#2
9413: A9 8A	LDA #$8A
9415: A0 94	LDY #$94
9417: A6 6F	LDX $6F
9419: 20 41 8B	JSR $8B41
941C: 20 38 8C	JSR $8C38	; FAC#1 to FAC#2
941F: 20 FB 8C	JSR $8CFB	; Evaluate <int>
9422: A9 00	LDA #$00
9424: 85 70	STA $70
9426: 20 31 88	JSR $8831	; Evaluate <subtract>
9429: A9 8F	LDA #$8F
942B: A0 94	LDY #$94
942D: 20 18 8A	JSR $8A18	; Subtract Memory At A/Y
9430: A5 68	LDA $68
9432: 48	PHA
9433: 10 0D	BPL $9442
9435: 20 0E 8A	JSR $8A0E	; Add 0.5
9438: A5 68	LDA $68
943A: 30 09	BMI $9445
943C: A5 14	LDA $14
943E: 49 FF	EOR #$FF
9440: 85 14	STA $14

9442: 20 FA 8F	JSR $8FFA	; Evaluate <negate>

9445: A9 8F	LDA #$8F
9447: A0 94	LDY #$94
9449: 20 12 8A	JSR $8A12	; Add Memory At A/Y
944C: 68	PLA
944D: 10 03	BPL $9452
944F: 20 FA 8F	JSR $8FFA	; Evaluate <negate>

9452: A9 94	LDA #$94
9454: A0 94	LDY #$94
9456: 4C 86 90	JMP $9086

; Evaluate <tan>

9459: 20 FC 8B	JSR $8BFC	; Pack FAC#1 to $59
945C: A9 00	LDA #$00
945E: 85 14	STA $14
9460: 20 10 94	JSR $9410	; Evaluate <sin>
9463: A2 50	LDX #$50
9465: A0 00	LDY #$00
9467: 20 00 8C	JSR $8C00	; Pack FAC#1 to RAM1
946A: A9 59	LDA #$59
946C: A0 00	LDY #$00
946E: 20 D4 8B	JSR $8BD4	; Unpack ROM to FAC#1
9471: A9 00	LDA #$00
9473: 85 68	STA $68
9475: A5 14	LDA $14
9477: 20 81 94	JSR $9481
947A: A9 50	LDA #$50
947C: A0 00	LDY #$00
947E: 4C 49 8B	JMP $8B49	; Divide Into Memory

9481: 48	PHA
9482: 4C 42 94	JMP $9442

; 1.570796327     pi/2

9485: 81 49 0F DA A2         	; '{ORANGE}i{FLSHON}Z.'

; 6.28318531      pi*2

948A: 83 49 0F DA A2         	; '.i{FLSHON}Z.'

; 0.25

948F: 7F 00 00 00 00         	; '.{0}{0}{0}{0}'

; #05     (counter)

9494: 05                     	; '{WHITE}'

; -14.3813907

9495: 84 E6 1A 2D 1B         	; '...-{ESC}'

;  42.0077971

949A: 86 28 07 FB F8         	; '.({BELL}..'

; -76.7041703

949F: 87 99 68 89 01         	; '.{LTGREEN}h..'

;  81.6052237

94A4: 87 23 35 DF E1         	; '.#5..'

; -41.3417021

94A9: 86 A5 5D E7 28         	; '..].('

;  6.28318531

94AE: 83 49 0F DA A2         	; '.i{FLSHON}Z.'

; Evaluate <atn>

94B3: A5 68	LDA $68
94B5: 48	PHA
94B6: 10 03	BPL $94BB
94B8: 20 FA 8F	JSR $8FFA	; Evaluate <negate>

94BB: A5 63	LDA $63
94BD: 48	PHA
94BE: C9 81	CMP #$81
94C0: 90 07	BCC $94C9
94C2: A9 9C	LDA #$9C
94C4: A0 89	LDY #$89
94C6: 20 1E 8A	JSR $8A1E	; Divide By Memory

94C9: A9 E3	LDA #$E3
94CB: A0 94	LDY #$94
94CD: 20 86 90	JSR $9086
94D0: 68	PLA
94D1: C9 81	CMP #$81
94D3: 90 07	BCC $94DC
94D5: A9 85	LDA #$85
94D7: A0 94	LDY #$94
94D9: 20 18 8A	JSR $8A18	; Subtract Memory At A/Y

94DC: 68	PLA
94DD: 10 03	BPL $94E2
94DF: 4C FA 8F	JMP $8FFA	; Evaluate <negate>

94E2: 60	RTS

; #0b     (counter)

94E3: 0B                     	; '{LOCK}'

; -0.000684793912

94E4: 76 B3 83 BD D3         	; 'V...S'

;  0.00485094216

94E9: 79 1E F4 A6 F5         	; 'Y{GREEN}...'

; -0.161117018

94EE: 7B 83 FC B0 10         	; '.....'

;  0.034209638

94F3: 7C 0C 1F 67 CA         	; '.{UNLOCK}{BLUE}gJ'

; -0.0542791328

94F8: 7C DE 53 CB C1         	; '..sKA'

;  0.0724571965

94FD: 7D 14 64 70 4C         	; '.{DEL}dPl'

; -0.0898023954

9502: 7D B7 EA 51 7A         	; '...qZ'

;  0.110932413

9507: 7D 63 30 88 7E         	; '.c0..'

; -0.142839808

950C: 7E 92 44 99 3A         	; '.{RVSOFF}d{LTGREEN}:'

;  0.19999912

9511: 7E 4C CC 91 C7         	; '.lL{UP}G'

; -0.333333316

9516: 7F AA AA AA 13         	; '....{HOME}'

;  1.00

951B: 81 00 00 00 00         	; '{ORANGE}{0}{0}{0}{0}'

; Print Using

9520: A2 FF	LDX #$FF
9522: 8E 36 01	STX $0136
9525: 20 80 03	JSR $0380	; CHRGET
9528: 20 EF 77	JSR $77EF	; Evaluate Expression
952B: 20 DD 77	JSR $77DD	; Confirm String
952E: A5 66	LDA $66
9530: 48	PHA
9531: A5 67	LDA $67
9533: 48	PHA
9534: A0 02	LDY #$02

9536: 20 E7 42	JSR $42E7	; Get From ($66) Bank1
9539: 88	DEY
953A: 99 3F 00	STA $3F,Y
953D: D0 F7	BNE $9536
953F: 20 E7 42	JSR $42E7	; Get From ($66) Bank1
9542: 8D 35 01	STA $0135
9545: A8	TAY
9546: F0 0B	BEQ $9553

9548: 88	DEY
9549: 20 D3 42	JSR $42D3	; Get From ($3f) Bank1
954C: C9 23	CMP #$23
954E: F0 06	BEQ $9556
9550: 98	TYA
9551: D0 F5	BNE $9548

9553: 4C 6C 79	JMP $796C	; Syntax Error

9556: A9 3B	LDA #$3B

9558: 20 5E 79	JSR $795E
955B: 84 77	STY $77
955D: 8C 23 01	STY $0123
9560: 20 EF 77	JSR $77EF	; Evaluate Expression
9563: 24 0F	BIT $0F
9565: 10 39	BPL $95A0
9567: 20 9F 97	JSR $979F
956A: 20 F2 98	JSR $98F2	; ?
956D: AE 2B 01	LDX $012B
9570: F0 15	BEQ $9587
9572: A2 00	LDX #$00
9574: 38	SEC
9575: AD 31 01	LDA $0131
9578: E5 78	SBC $78
957A: 90 0B	BCC $9587
957C: A2 3D	LDX #$3D
957E: EC 2B 01	CPX $012B
9581: D0 03	BNE $9586
9583: 4A	LSR A
9584: 69 00	ADC #$00

9586: AA	TAX

9587: A0 00	LDY #$00

9589: 8A	TXA
958A: F0 05	BEQ $9591
958C: CA	DEX

958D: A9 20	LDA #$20
958F: D0 08	BNE $9599

9591: C4 78	CPY $78
9593: B0 F8	BCS $958D
9595: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
9598: C8	INY

9599: 20 EB 98	JSR $98EB	; ?
959C: D0 EB	BNE $9589
959E: F0 27	BEQ $95C7

95A0: 20 42 8E	JSR $8E42	; Float to Ascii
95A3: A0 FF	LDY #$FF

95A5: C8	INY
95A6: B9 00 01	LDA $0100,Y
95A9: D0 FA	BNE $95A5
95AB: 98	TYA
95AC: 20 90 86	JSR $8690
95AF: A0 00	LDY #$00
95B1: 8D 04 FF	STA $FF04

95B4: B9 00 01	LDA $0100,Y
95B7: F0 05	BEQ $95BE
95B9: 91 64	STA ($64),Y
95BB: C8	INY
95BC: D0 F6	BNE $95B4

95BE: 20 E3 86	JSR $86E3
95C1: 20 9F 97	JSR $979F
95C4: 20 E7 95	JSR $95E7

95C7: 20 86 03	JSR $0386	; CHRGOT entry
95CA: C9 2C	CMP #$2C
95CC: F0 8A	BEQ $9558
95CE: 38	SEC
95CF: 66 77	ROR $77
95D1: 20 F2 98	JSR $98F2	; ?
95D4: 68	PLA
95D5: A8	TAY
95D6: 68	PLA
95D7: 20 85 87	JSR $8785
95DA: 20 86 03	JSR $0386	; CHRGOT entry
95DD: C9 3B	CMP #$3B
95DF: F0 03	BEQ $95E4
95E1: 4C 98 55	JMP $5598

95E4: 4C 80 03	JMP $0380	; CHRGET

95E7: 8D 03 FF	STA $FF03
95EA: AD 04 12	LDA $1204
95ED: 8D 33 01	STA $0133
95F0: A9 FF	LDA #$FF

95F2: 8D 32 01	STA $0132
95F5: 4C FA 95	JMP $95FA

95F8: 86 80	STX $80

95FA: C4 78	CPY $78
95FC: F0 33	BEQ $9631
95FE: B9 00 01	LDA $0100,Y
9601: C8	INY
9602: C9 20	CMP #$20
9604: F0 F4	BEQ $95FA
9606: C9 2D	CMP #$2D
9608: F0 E8	BEQ $95F2
960A: C9 2E	CMP #$2E
960C: F0 EA	BEQ $95F8
960E: C9 45	CMP #$45
9610: F0 11	BEQ $9623
9612: 9D 00 01	STA $0100,X
9615: 8E 24 01	STX $0124
9618: E8	INX
9619: 24 80	BIT $80
961B: 10 DD	BPL $95FA
961D: EE 2A 01	INC $012A
9620: 4C FA 95	JMP $95FA

9623: B9 00 01	LDA $0100,Y
9626: C9 2D	CMP #$2D
9628: D0 03	BNE $962D
962A: 6E 28 01	ROR $0128

962D: C8	INY
962E: 8C 29 01	STY $0129

9631: A5 80	LDA $80
9633: 10 02	BPL $9637
9635: 86 80	STX $80

9637: 20 F2 98	JSR $98F2	; ?
963A: AD 2C 01	LDA $012C
963D: C9 FF	CMP #$FF
963F: F0 29	BEQ $966A
9641: AD 2F 01	LDA $012F
9644: F0 3F	BEQ $9685
9646: AD 29 01	LDA $0129
9649: D0 12	BNE $965D
964B: AE 24 01	LDX $0124
964E: 20 74 97	JSR $9774
9651: DE 02 01	DEC $0102,X
9654: E8	INX
9655: 8E 29 01	STX $0129
9658: 20 FB 97	JSR $97FB	; ?
965B: F0 25	BEQ $9682

965D: AC 2E 01	LDY $012E
9660: D0 17	BNE $9679
9662: AC 32 01	LDY $0132
9665: 30 12	BMI $9679
9667: AD 2C 01	LDA $012C

966A: F0 6A	BEQ $96D6
966C: CE 2C 01	DEC $012C
966F: D0 05	BNE $9676
9671: AD 2D 01	LDA $012D
9674: F0 60	BEQ $96D6

9676: EE 27 01	INC $0127

9679: 20 EE 96	JSR $96EE	; ?
967C: 20 B9 97	JSR $97B9	; ?
967F: 20 EE 96	JSR $96EE	; ?

9682: 4C 1C 98	JMP $981C	; ?

9685: AC 29 01	LDY $0129
9688: F0 16	BEQ $96A0
968A: 85 78	STA $78
968C: 38	SEC
968D: 6E 30 01	ROR $0130
9690: A4 80	LDY $80
9692: AD 28 01	LDA $0128
9695: 10 06	BPL $969D
9697: 20 27 97	JSR $9727
969A: 4C A9 96	JMP $96A9

969D: 20 08 97	JSR $9708

96A0: A4 80	LDY $80
96A2: F0 05	BEQ $96A9
96A4: 20 FF 97	JSR $97FF
96A7: F0 06	BEQ $96AF

96A9: 20 B9 97	JSR $97B9	; ?
96AC: 4C B2 96	JMP $96B2

96AF: CE 2A 01	DEC $012A

96B2: 38	SEC
96B3: AD 2C 01	LDA $012C
96B6: ED 2A 01	SBC $012A
96B9: 90 1B	BCC $96D6
96BB: 8D 27 01	STA $0127
96BE: AC 2E 01	LDY $012E
96C1: D0 1B	BNE $96DE
96C3: AC 32 01	LDY $0132
96C6: 30 16	BMI $96DE
96C8: A8	TAY
96C9: F0 0B	BEQ $96D6
96CB: 88	DEY
96CC: D0 13	BNE $96E1
96CE: AD 2D 01	LDA $012D
96D1: 0D 2A 01	ORA $012A
96D4: D0 AC	BNE $9682

96D6: A9 2A	LDA #$2A

96D8: 20 EB 98	JSR $98EB	; ?
96DB: D0 FB	BNE $96D8
96DD: 60	RTS

96DE: A8	TAY
96DF: F0 A1	BEQ $9682

96E1: AD 2A 01	LDA $012A
96E4: D0 9C	BNE $9682
96E6: CE 27 01	DEC $0127
96E9: E6 77	INC $77
96EB: 4C 82 96	JMP $9682

; ?

96EE: 38	SEC
96EF: AD 2C 01	LDA $012C
96F2: ED 2A 01	SBC $012A
96F5: F0 39	BEQ $9730
96F7: A4 80	LDY $80
96F9: 90 16	BCC $9711
96FB: 85 78	STA $78

96FD: CC 24 01	CPY $0124
9700: F0 02	BEQ $9704
9702: B0 01	BCS $9705

9704: C8	INY

9705: EE 2A 01	INC $012A

9708: 20 3D 97	JSR $973D
970B: C6 78	DEC $78
970D: D0 EE	BNE $96FD
970F: F0 1D	BEQ $972E

9711: 49 FF	EOR #$FF
9713: 69 01	ADC #$01
9715: 85 78	STA $78

9717: CC 23 01	CPY $0123
971A: F0 07	BEQ $9723
971C: 88	DEY
971D: CE 2A 01	DEC $012A
9720: 4C 25 97	JMP $9725

9723: E6 77	INC $77

9725: A9 80	LDA #$80

9727: 20 3F 97	JSR $973F
972A: C6 78	DEC $78
972C: D0 E9	BNE $9717

972E: 84 80	STY $80

9730: 60	RTS

9731: D0 39	BNE $976C
9733: 49 09	EOR #$09
9735: 9D 00 01	STA $0100,X
9738: CA	DEX
9739: EC 29 01	CPX $0129
973C: 60	RTS

973D: A9 00	LDA #$00

973F: AE 29 01	LDX $0129
9742: E8	INX
9743: 2C 30 01	BIT $0130
9746: 30 10	BMI $9758
9748: 4D 28 01	EOR $0128
974B: F0 0B	BEQ $9758

974D: 20 82 97	JSR $9782
9750: 20 31 97	JSR $9731
9753: B0 F8	BCS $974D
9755: 4C 5D 89	JMP $895D	; Print 'overflow'

9758: BD 00 01	LDA $0100,X
975B: DE 00 01	DEC $0100,X
975E: C9 30	CMP #$30
9760: 20 31 97	JSR $9731
9763: B0 F3	BCS $9758
9765: 2C 30 01	BIT $0130
9768: 10 05	BPL $976F
976A: 84 80	STY $80

976C: 68	PLA
976D: 68	PLA
976E: 60	RTS

976F: AD 28 01	LDA $0128
9772: 49 80	EOR #$80

9774: 8D 28 01	STA $0128
9777: A9 30	LDA #$30
9779: 9D 01 01	STA $0101,X
977C: A9 31	LDA #$31
977E: 9D 02 01	STA $0102,X
9781: 60	RTS

9782: BD 00 01	LDA $0100,X
9785: FE 00 01	INC $0100,X
9788: C9 39	CMP #$39
978A: 60	RTS

978B: 18	CLC
978C: C8	INY
978D: F0 05	BEQ $9794
978F: CC 35 01	CPY $0135
9792: 90 04	BCC $9798

9794: A4 77	LDY $77
9796: D0 D4	BNE $976C

9798: 20 D3 42	JSR $42D3	; Get From ($3f) Bank1
979B: EE 31 01	INC $0131
979E: 60	RTS

979F: 20 81 87	JSR $8781
97A2: 85 78	STA $78
97A4: A2 0A	LDX #$0A
97A6: A9 00	LDA #$00

97A8: 9D 27 01	STA $0127,X
97AB: CA	DEX
97AC: 10 FA	BPL $97A8
97AE: 8E 26 01	STX $0126
97B1: 86 80	STX $80
97B3: 8E 25 01	STX $0125
97B6: AA	TAX
97B7: A8	TAY
97B8: 60	RTS

; ?

97B9: 18	CLC
97BA: A5 80	LDA $80
97BC: 6D 2D 01	ADC $012D
97BF: B0 39	BCS $97FA
97C1: 38	SEC
97C2: E5 77	SBC $77
97C4: 90 34	BCC $97FA
97C6: CD 24 01	CMP $0124
97C9: F0 02	BEQ $97CD
97CB: B0 2D	BCS $97FA

97CD: CD 23 01	CMP $0123
97D0: 90 28	BCC $97FA
97D2: AA	TAX
97D3: BD 00 01	LDA $0100,X
97D6: C9 35	CMP #$35
97D8: 90 20	BCC $97FA

97DA: EC 23 01	CPX $0123
97DD: F0 0A	BEQ $97E9
97DF: CA	DEX
97E0: 20 82 97	JSR $9782
97E3: 8E 24 01	STX $0124
97E6: F0 F2	BEQ $97DA
97E8: 60	RTS

97E9: A9 31	LDA #$31
97EB: 9D 00 01	STA $0100,X
97EE: E8	INX
97EF: 86 80	STX $80
97F1: C6 77	DEC $77
97F3: 10 05	BPL $97FA
97F5: E6 77	INC $77
97F7: EE 2A 01	INC $012A

97FA: 60	RTS

; ?

97FB: A4 80	LDY $80
97FD: F0 17	BEQ $9816

97FF: AC 23 01	LDY $0123

9802: B9 00 01	LDA $0100,Y
9805: C9 30	CMP #$30
9807: 60	RTS

9808: E6 80	INC $80
980A: 20 3D 97	JSR $973D
980D: EE 23 01	INC $0123
9810: CC 24 01	CPY $0124
9813: F0 E5	BEQ $97FA
9815: C8	INY

9816: 20 02 98	JSR $9802
9819: F0 ED	BEQ $9808
981B: 60	RTS

; ?

981C: AD 25 01	LDA $0125
981F: 30 02	BMI $9823
9821: E6 77	INC $77

9823: AE 23 01	LDX $0123
9826: CA	DEX
9827: AC 34 01	LDY $0134

982A: 20 D3 42	JSR $42D3	; Get From ($3f) Bank1
982D: C8	INY
982E: C9 2C	CMP #$2C
9830: D0 14	BNE $9846
9832: 2C 26 01	BIT $0126
9835: 30 09	BMI $9840
9837: 8D 03 FF	STA $FF03
983A: AD 05 12	LDA $1205
983D: 4C AB 98	JMP $98AB

9840: AD 33 01	LDA $0133
9843: 4C AB 98	JMP $98AB

9846: C9 2E	CMP #$2E
9848: D0 09	BNE $9853
984A: 8D 03 FF	STA $FF03
984D: AD 06 12	LDA $1206
9850: 4C AB 98	JMP $98AB

9853: C9 2B	CMP #$2B
9855: F0 3B	BEQ $9892
9857: C9 2D	CMP #$2D
9859: F0 32	BEQ $988D
985B: C9 5E	CMP #$5E
985D: D0 69	BNE $98C8
985F: A9 45	LDA #$45
9861: 20 EB 98	JSR $98EB	; ?
9864: AC 29 01	LDY $0129
9867: 20 02 98	JSR $9802
986A: D0 06	BNE $9872
986C: C8	INY
986D: 20 02 98	JSR $9802
9870: F0 07	BEQ $9879

9872: A9 2D	LDA #$2D
9874: 2C 28 01	BIT $0128
9877: 30 02	BMI $987B

9879: A9 2B	LDA #$2B

987B: 20 EB 98	JSR $98EB	; ?
987E: AE 29 01	LDX $0129
9881: BD 00 01	LDA $0100,X
9884: 20 EB 98	JSR $98EB	; ?
9887: AC 36 01	LDY $0136
988A: 4C A1 98	JMP $98A1

988D: AD 32 01	LDA $0132
9890: 30 AE	BMI $9840

9892: AD 32 01	LDA $0132
9895: 4C AB 98	JMP $98AB

9898: A5 77	LDA $77
989A: D0 18	BNE $98B4
989C: EC 24 01	CPX $0124
989F: F0 05	BEQ $98A6

98A1: E8	INX
98A2: BD 00 01	LDA $0100,X
98A5: 2C	.BYTE $2C

98A6: A9 30	LDA #$30

98A8: 4E 26 01	LSR $0126

98AB: 20 EB 98	JSR $98EB	; ?
98AE: F0 03	BEQ $98B3
98B0: 4C 2A 98	JMP $982A

98B3: 60	RTS

98B4: C6 77	DEC $77
98B6: AD 25 01	LDA $0125
98B9: 30 EB	BMI $98A6
98BB: 20 6E AA	JSR $AA6E	; Patch for Print Using
98BE: EA	NOP
98BF: 8D 03 FF	STA $FF03
98C2: AD 07 12	LDA $1207
98C5: 4C A8 98	JMP $98A8

98C8: AD 27 01	LDA $0127
98CB: F0 CB	BEQ $9898
98CD: CE 27 01	DEC $0127

98D0: F0 03	BEQ $98D5
98D2: 4C 40 98	JMP $9840

98D5: AD 2E 01	LDA $012E
98D8: 30 F6	BMI $98D0

98DA: 20 D3 42	JSR $42D3	; Get From ($3f) Bank1
98DD: C9 2C	CMP #$2C
98DF: D0 AC	BNE $988D
98E1: AD 33 01	LDA $0133
98E4: 20 EB 98	JSR $98EB	; ?
98E7: C8	INY
98E8: 4C DA 98	JMP $98DA

; ?

98EB: 20 0C 56	JSR $560C
98EE: CE 31 01	DEC $0131
98F1: 60	RTS

; ?

98F2: AC 36 01	LDY $0136

98F5: 20 8B 97	JSR $978B
98F8: 20 A7 99	JSR $99A7
98FB: D0 14	BNE $9911
98FD: 8C 34 01	STY $0134
9900: 90 1A	BCC $991C
9902: AA	TAX

9903: 20 8B 97	JSR $978B
9906: B0 05	BCS $990D
9908: 20 AF 99	JSR $99AF
990B: F0 0A	BEQ $9917

990D: AC 34 01	LDY $0134
9910: 8A	TXA

9911: 20 0C 56	JSR $560C
9914: 4C F5 98	JMP $98F5

9917: B0 EA	BCS $9903
9919: AC 34 01	LDY $0134

991C: A6 77	LDX $77
991E: D0 7A	BNE $999A
9920: 8E 31 01	STX $0131
9923: 88	DEY

9924: CE 31 01	DEC $0131

9927: 20 8B 97	JSR $978B
992A: B0 74	BCS $99A0
992C: C9 2C	CMP #$2C
992E: F0 F7	BEQ $9927
9930: 20 7E 99	JSR $997E
9933: 90 EF	BCC $9924
9935: C9 2E	CMP #$2E
9937: D0 08	BNE $9941
9939: E8	INX
993A: E0 02	CPX #$02
993C: 90 E9	BCC $9927

993E: 4C 6C 79	JMP $796C	; Syntax Error

9941: 20 B3 99	JSR $99B3
9944: D0 0B	BNE $9951
9946: 90 03	BCC $994B
9948: 8D 2B 01	STA $012B

994B: FE 2C 01	INC $012C,X
994E: 4C 27 99	JMP $9927

9951: C9 24	CMP #$24
9953: D0 0F	BNE $9964
9955: 2C 25 01	BIT $0125
9958: 10 F1	BPL $994B
995A: 18	CLC
995B: 6E 25 01	ROR $0125
995E: CE 2C 01	DEC $012C
9961: 4C 4B 99	JMP $994B

9964: C9 5E	CMP #$5E
9966: D0 16	BNE $997E
9968: A2 02	LDX #$02

996A: 20 8B 97	JSR $978B
996D: B0 CF	BCS $993E
996F: C9 5E	CMP #$5E
9971: D0 CB	BNE $993E
9973: CA	DEX
9974: 10 F4	BPL $996A
9976: EE 2F 01	INC $012F
9979: 20 8B 97	JSR $978B
997C: B0 22	BCS $99A0

997E: C9 2B	CMP #$2B
9980: D0 19	BNE $999B
9982: AD 32 01	LDA $0132
9985: 10 05	BPL $998C
9987: A9 2B	LDA #$2B
9989: 8D 32 01	STA $0132

998C: AD 2E 01	LDA $012E
998F: D0 AD	BNE $993E
9991: 6E 2E 01	ROR $012E
9994: 8C 36 01	STY $0136
9997: EE 31 01	INC $0131

999A: 60	RTS

999B: C9 2D	CMP #$2D
999D: F0 ED	BEQ $998C
999F: 38	SEC

99A0: 8C 36 01	STY $0136
99A3: CE 36 01	DEC $0136
99A6: 60	RTS

99A7: C9 2B	CMP #$2B
99A9: F0 15	BEQ $99C0
99AB: C9 2D	CMP #$2D
99AD: F0 11	BEQ $99C0

99AF: C9 2E	CMP #$2E
99B1: F0 0D	BEQ $99C0

99B3: C9 3D	CMP #$3D
99B5: F0 09	BEQ $99C0
99B7: C9 3E	CMP #$3E
99B9: F0 05	BEQ $99C0
99BB: C9 23	CMP #$23
99BD: D0 01	BNE $99C0
99BF: 18	CLC

99C0: 60	RTS

; Evaluate <instr>

99C1: A5 66	LDA $66
99C3: 8D D6 03	STA $03D6
99C6: A5 67	LDA $67
99C8: 8D D7 03	STA $03D7
99CB: 20 EF 77	JSR $77EF	; Evaluate Expression
99CE: 20 DD 77	JSR $77DD	; Confirm String
99D1: A5 66	LDA $66
99D3: 8D D8 03	STA $03D8
99D6: A5 67	LDA $67
99D8: 8D D9 03	STA $03D9
99DB: A2 01	LDX #$01
99DD: 86 67	STX $67
99DF: 20 86 03	JSR $0386	; CHRGOT entry
99E2: C9 29	CMP #$29
99E4: F0 03	BEQ $99E9
99E6: 20 09 88	JSR $8809

99E9: 20 56 79	JSR $7956	; -Check Right Parenthesis
99EC: A6 67	LDX $67
99EE: D0 03	BNE $99F3
99F0: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

99F3: CA	DEX
99F4: 86 63	STX $63
99F6: A2 03	LDX #$03

99F8: BD D6 03	LDA $03D6,X
99FB: 95 59	STA $59,X
99FD: CA	DEX
99FE: 10 F8	BPL $99F8
9A00: A0 02	LDY #$02

9A02: A9 59	LDA #$59
9A04: 20 AB 03	JSR $03AB	; Fetch From RAM Bank 1
9A07: 99 5D 00	STA $5D,Y
9A0A: A9 5B	LDA #$5B
9A0C: 20 AB 03	JSR $03AB	; Fetch From RAM Bank 1
9A0F: 99 60 00	STA $60,Y
9A12: 88	DEY
9A13: 10 ED	BPL $9A02
9A15: A5 60	LDA $60
9A17: F0 3B	BEQ $9A54

9A19: A9 00	LDA #$00
9A1B: 85 64	STA $64
9A1D: 18	CLC
9A1E: A5 60	LDA $60
9A20: 65 63	ADC $63
9A22: B0 30	BCS $9A54
9A24: C5 5D	CMP $5D
9A26: 90 02	BCC $9A2A
9A28: D0 2A	BNE $9A54

9A2A: A4 64	LDY $64
9A2C: C4 60	CPY $60
9A2E: F0 1F	BEQ $9A4F
9A30: 98	TYA
9A31: 18	CLC
9A32: 65 63	ADC $63
9A34: A8	TAY
9A35: A9 5E	LDA #$5E
9A37: 20 AB 03	JSR $03AB	; Fetch From RAM Bank 1
9A3A: 85 79	STA $79
9A3C: A4 64	LDY $64
9A3E: A9 61	LDA #$61
9A40: 20 AB 03	JSR $03AB	; Fetch From RAM Bank 1
9A43: C5 79	CMP $79
9A45: F0 04	BEQ $9A4B
9A47: E6 63	INC $63
9A49: D0 CE	BNE $9A19

9A4B: E6 64	INC $64
9A4D: D0 DB	BNE $9A2A

9A4F: E6 63	INC $63
9A51: A5 63	LDA $63
9A53: 2C	.BYTE $2C

9A54: A9 00	LDA #$00
9A56: 8D 03 FF	STA $FF03
9A59: 48	PHA
9A5A: AD D8 03	LDA $03D8
9A5D: AC D9 03	LDY $03D9
9A60: 20 85 87	JSR $8785
9A63: 8D 03 FF	STA $FF03
9A66: AD D6 03	LDA $03D6
9A69: AC D7 03	LDY $03D7
9A6C: 20 85 87	JSR $8785
9A6F: 68	PLA
9A70: A8	TAY
9A71: 4C D4 84	JMP $84D4	; Byte To Float

; ?

9A74: 20 8F 9D	JSR $9D8F	; Read Current X Position to A/Y

9A77: A2 00	LDX #$00

9A79: E8	INX
9A7A: 38	SEC
9A7B: E9 5A	SBC #$5A
9A7D: B0 FA	BCS $9A79
9A7F: 88	DEY
9A80: 10 F7	BPL $9A79
9A82: 8E 49 11	STX $1149
9A85: 48	PHA
9A86: 69 5A	ADC #$5A
9A88: 20 94 9A	JSR $9A94
9A8B: 68	PLA
9A8C: 18	CLC
9A8D: 49 FF	EOR #$FF
9A8F: 69 01	ADC #$01
9A91: CE 49 11	DEC $1149

9A94: A2 FF	LDX #$FF

9A96: E8	INX
9A97: 38	SEC
9A98: E9 0A	SBC #$0A
9A9A: B0 FA	BCS $9A96
9A9C: 69 0A	ADC #$0A
9A9E: 85 8E	STA $8E
9AA0: 8A	TXA
9AA1: 0A	ASL A
9AA2: AA	TAX
9AA3: BD 2A 9F	LDA $9F2A,X
9AA6: BC 29 9F	LDY $9F29,X	; Conv Words Hi

9AA9: 18	CLC
9AAA: C6 8E	DEC $8E
9AAC: 30 0C	BMI $9ABA
9AAE: 7D 3E 9F	ADC $9F3E,X
9AB1: 48	PHA
9AB2: 98	TYA
9AB3: 7D 3D 9F	ADC $9F3D,X	; Conv Words Lo
9AB6: A8	TAY
9AB7: 68	PLA
9AB8: 90 EF	BCC $9AA9

9ABA: 48	PHA
9ABB: A2 00	LDX #$00
9ABD: AD 49 11	LDA $1149
9AC0: 4A	LSR A
9AC1: B0 02	BCS $9AC5
9AC3: A2 02	LDX #$02

9AC5: 68	PLA
9AC6: 9D 4A 11	STA $114A,X
9AC9: 98	TYA
9ACA: 9D 4B 11	STA $114B,X
9ACD: 60	RTS

; ?

9ACE: A0 19	LDY #$19
9AD0: 90 02	BCC $9AD4
9AD2: A0 1B	LDY #$1B

9AD4: AD 49 11	LDA $1149
9AD7: 69 02	ADC #$02
9AD9: 4A	LSR A
9ADA: 4A	LSR A
9ADB: 08	PHP
9ADC: 20 8F 9D	JSR $9D8F	; Read Current X Position to A/Y
9ADF: C0 FF	CPY #$FF
9AE1: 90 07	BCC $9AEA
9AE3: 8A	TXA
9AE4: A8	TAY
9AE5: 20 8F 9D	JSR $9D8F	; Read Current X Position to A/Y
9AE8: B0 03	BCS $9AED

9AEA: 20 AE 9D	JSR $9DAE	; ?

9AED: 28	PLP
9AEE: B0 1B	BCS $9B0B
9AF0: 4C 9E 9D	JMP $9D9E

; ?

9AF3: 8D 4E 11	STA $114E
9AF6: A2 23	LDX #$23

9AF8: 0E 4E 11	ASL $114E
9AFB: 20 CE 9A	JSR $9ACE	; ?
9AFE: 9D 31 11	STA $1131,X
9B01: 98	TYA
9B02: 9D 32 11	STA $1132,X
9B05: E8	INX
9B06: E8	INX
9B07: E0 2B	CPX #$2B
9B09: 90 ED	BCC $9AF8

9B0B: 60	RTS

; Evaluate <rdot>

9B0C: 20 F7 87	JSR $87F7
9B0F: E0 02	CPX #$02
9B11: 90 10	BCC $9B23
9B13: F0 03	BEQ $9B18
9B15: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

9B18: 20 49 9C	JSR $9C49	; Examine Pixel
9B1B: A8	TAY
9B1C: 90 02	BCC $9B20
9B1E: A0 00	LDY #$00

9B20: 4C D4 84	JMP $84D4	; Byte To Float

9B23: 8A	TXA
9B24: 0A	ASL A
9B25: AA	TAX
9B26: BD 31 11	LDA $1131,X
9B29: A8	TAY
9B2A: BD 32 11	LDA $1132,X
9B2D: 4C 3C 79	JMP $793C	; Fixed-Float

; Draw Line

9B30: A2 02	LDX #$02
9B32: A0 06	LDY #$06

9B34: A9 00	LDA #$00
9B36: 9D 3D 11	STA $113D,X
9B39: 9D 3E 11	STA $113E,X
9B3C: 20 99 9D	JSR $9D99	; ?
9B3F: 10 08	BPL $9B49
9B41: DE 3D 11	DEC $113D,X
9B44: DE 3E 11	DEC $113E,X
9B47: D0 0B	BNE $9B54

9B49: C9 00	CMP #$00
9B4B: D0 04	BNE $9B51
9B4D: C0 00	CPY #$00
9B4F: F0 03	BEQ $9B54

9B51: FE 3D 11	INC $113D,X

9B54: 9D 39 11	STA $1139,X
9B57: 0A	ASL A
9B58: 9D 41 11	STA $1141,X
9B5B: 98	TYA
9B5C: 9D 3A 11	STA $113A,X
9B5F: 2A	ROL A
9B60: 9D 42 11	STA $1142,X
9B63: CA	DEX
9B64: CA	DEX
9B65: A0 04	LDY #$04
9B67: E0 00	CPX #$00
9B69: F0 C9	BEQ $9B34
9B6B: A2 0A	LDX #$0A
9B6D: A0 08	LDY #$08
9B6F: 20 7C 9D	JSR $9D7C	; Subtract Graphics Coordinate
9B72: A9 00	LDA #$00
9B74: 2A	ROL A
9B75: 2A	ROL A
9B76: 8D 47 11	STA $1147
9B79: 49 02	EOR #$02
9B7B: 8D 48 11	STA $1148
9B7E: 18	CLC
9B7F: A9 10	LDA #$10
9B81: 6D 47 11	ADC $1147
9B84: A8	TAY
9B85: 48	PHA
9B86: 49 02	EOR #$02
9B88: AA	TAX
9B89: 20 7C 9D	JSR $9D7C	; Subtract Graphics Coordinate
9B8C: 9D 31 11	STA $1131,X
9B8F: 98	TYA
9B90: 9D 32 11	STA $1132,X
9B93: 68	PLA
9B94: A8	TAY
9B95: 18	CLC
9B96: A9 08	LDA #$08
9B98: 6D 48 11	ADC $1148
9B9B: AA	TAX
9B9C: 20 7C 9D	JSR $9D7C	; Subtract Graphics Coordinate
9B9F: 8D 45 11	STA $1145
9BA2: 8C 46 11	STY $1146

9BA5: 20 FB 9B	JSR $9BFB	; Plot Pixel
9BA8: AC 48 11	LDY $1148
9BAB: 38	SEC
9BAC: B9 39 11	LDA $1139,Y
9BAF: E9 01	SBC #$01
9BB1: 99 39 11	STA $1139,Y
9BB4: B0 0B	BCS $9BC1
9BB6: B9 3A 11	LDA $113A,Y
9BB9: E9 00	SBC #$00
9BBB: 99 3A 11	STA $113A,Y
9BBE: B0 01	BCS $9BC1
9BC0: 60	RTS

9BC1: AE 47 11	LDX $1147
9BC4: AD 46 11	LDA $1146
9BC7: 30 06	BMI $9BCF
9BC9: 20 EA 9B	JSR $9BEA
9BCC: AE 48 11	LDX $1148

9BCF: 18	CLC
9BD0: AD 45 11	LDA $1145
9BD3: 7D 41 11	ADC $1141,X
9BD6: 8D 45 11	STA $1145
9BD9: AD 46 11	LDA $1146
9BDC: 7D 42 11	ADC $1142,X
9BDF: 8D 46 11	STA $1146
9BE2: AE 48 11	LDX $1148
9BE5: 20 EA 9B	JSR $9BEA
9BE8: F0 BB	BEQ $9BA5

9BEA: A0 02	LDY #$02
9BEC: 18	CLC

9BED: BD 31 11	LDA $1131,X
9BF0: 7D 3D 11	ADC $113D,X
9BF3: 9D 31 11	STA $1131,X
9BF6: E8	INX
9BF7: 88	DEY
9BF8: D0 F3	BNE $9BED
9BFA: 60	RTS

; Plot Pixel

9BFB: AD 6C 11	LDA $116C	; Box Fill Flag
9BFE: 0D 6B 11	ORA $116B	; Double Width Flag
9C01: F0 16	BEQ $9C19
9C03: EE 31 11	INC $1131
9C06: D0 03	BNE $9C0B
9C08: EE 32 11	INC $1132

9C0B: 20 19 9C	JSR $9C19
9C0E: AE 31 11	LDX $1131
9C11: D0 03	BNE $9C16
9C13: CE 32 11	DEC $1132

9C16: CE 31 11	DEC $1131

9C19: 20 24 9D	JSR $9D24	; Calc Hi-Res Row/Column
9C1C: B0 24	BCS $9C42
9C1E: 20 70 9C	JSR $9C70	; Set Hi-Res Color Cell
9C21: 20 E8 9C	JSR $9CE8
9C24: 8D 6D 11	STA $116D
9C27: B1 8C	LDA ($8C),Y
9C29: 0D 6D 11	ORA $116D
9C2C: 24 D8	BIT $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
9C2E: 10 13	BPL $9C43
9C30: 48	PHA
9C31: A6 83	LDX $83
9C33: AD 6D 11	LDA $116D
9C36: 3D 25 9F	AND $9F25,X	; Multicolor Pixel Masks
9C39: 8D 6D 11	STA $116D
9C3C: 68	PLA

9C3D: 4D 6D 11	EOR $116D

9C40: 91 8C	STA ($8C),Y

9C42: 60	RTS

9C43: A6 83	LDX $83
9C45: D0 F9	BNE $9C40
9C47: F0 F4	BEQ $9C3D

; Examine Pixel

9C49: 20 E3 9C	JSR $9CE3	; Position Pixel
9C4C: B0 21	BCS $9C6F
9C4E: 8D 6D 11	STA $116D
9C51: B1 8C	LDA ($8C),Y
9C53: 2D 6D 11	AND $116D

9C56: 2A	ROL A
9C57: CA	DEX
9C58: 10 FC	BPL $9C56
9C5A: 2A	ROL A
9C5B: 24 8B	BIT $8B
9C5D: 30 06	BMI $9C65
9C5F: 29 03	AND #$03
9C61: C5 83	CMP $83
9C63: 18	CLC
9C64: 60	RTS

9C65: 18	CLC
9C66: 29 03	AND #$03
9C68: F0 03	BEQ $9C6D
9C6A: A2 00	LDX #$00
9C6C: 60	RTS

9C6D: A2 FF	LDX #$FF

9C6F: 60	RTS

; Set Hi-Res Color Cell

9C70: BD 33 C0	LDA $C033,X	; Screen Address Low
9C73: 85 8C	STA $8C
9C75: BD CA 9C	LDA $9CCA,X	; Video Matrix Lines Hi
9C78: 85 8D	STA $8D
9C7A: A5 83	LDA $83
9C7C: D0 08	BNE $9C86
9C7E: AD E2 03	LDA $03E2
9C81: 24 D8	BIT $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
9C83: 10 08	BPL $9C8D
9C85: 60	RTS

9C86: C9 02	CMP #$02
9C88: D0 10	BNE $9C9A
9C8A: AD E3 03	LDA $03E3

9C8D: 29 0F	AND #$0F
9C8F: 85 77	STA $77
9C91: B1 8C	LDA ($8C),Y
9C93: 29 F0	AND #$F0
9C95: 05 77	ORA $77
9C97: 91 8C	STA ($8C),Y
9C99: 60	RTS

9C9A: B0 10	BCS $9CAC
9C9C: AD E2 03	LDA $03E2
9C9F: 29 F0	AND #$F0
9CA1: 85 77	STA $77
9CA3: B1 8C	LDA ($8C),Y
9CA5: 29 0F	AND #$0F
9CA7: 05 77	ORA $77
9CA9: 91 8C	STA ($8C),Y
9CAB: 60	RTS

9CAC: A5 8D	LDA $8D
9CAE: 29 03	AND #$03
9CB0: 09 D8	ORA #$D8
9CB2: 85 8D	STA $8D
9CB4: A9 00	LDA #$00
9CB6: 8D 00 FF	STA $FF00	; MMU Configuration Register
9CB9: 78	SEI
9CBA: A5 01	LDA $01
9CBC: 48	PHA
9CBD: 29 FE	AND #$FE
9CBF: 85 01	STA $01
9CC1: A5 85	LDA $85 	; Multicolor 2 (2)
9CC3: 91 8C	STA ($8C),Y
9CC5: 68	PLA
9CC6: 85 01	STA $01
9CC8: 58	CLI
9CC9: 60	RTS

; Video Matrix Lines Hi

9CCA: 1C 1C 1C 1C 1C 1C 1C 1D	; '{RED}{RED}{RED}{RED}{RED}{RED}{RED}{RIGHT}'
9CD2: 1D 1D 1D 1D 1D 1E 1E 1E	; '{RIGHT}{RIGHT}{RIGHT}{RIGHT}{RIGHT}{GREEN}{GREEN}{GREEN}'
9CDA: 1E 1E 1E 1E 1F 1F 1F 1F	; '{GREEN}{GREEN}{GREEN}{GREEN}{BLUE}{BLUE}{BLUE}{BLUE}'
9CE2: 1F                     	; '{BLUE}'

; Position Pixel

9CE3: 20 24 9D	JSR $9D24	; Calc Hi-Res Row/Column
9CE6: B0 33	BCS $9D1B

9CE8: 98	TYA
9CE9: 18	CLC
9CEA: 7D 33 C0	ADC $C033,X	; Screen Address Low
9CED: 85 8C	STA $8C
9CEF: BD 4C C0	LDA $C04C,X	; Screen Address High
9CF2: 69 00	ADC #$00
9CF4: 06 8C	ASL $8C
9CF6: 2A	ROL A
9CF7: 06 8C	ASL $8C
9CF9: 2A	ROL A
9CFA: 06 8C	ASL $8C
9CFC: 2A	ROL A
9CFD: 85 8D	STA $8D
9CFF: AD 33 11	LDA $1133
9D02: 29 07	AND #$07
9D04: A8	TAY
9D05: AD 31 11	LDA $1131
9D08: 24 D8	BIT $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
9D0A: 08	PHP
9D0B: 10 01	BPL $9D0E
9D0D: 0A	ASL A

9D0E: 29 07	AND #$07
9D10: AA	TAX
9D11: BD 1C 9D	LDA $9D1C,X	; Bit Masks
9D14: 28	PLP
9D15: 10 04	BPL $9D1B
9D17: E8	INX
9D18: 1D 1C 9D	ORA $9D1C,X	; Bit Masks

9D1B: 60	RTS

; Bit Masks

9D1C: 80                     	; '.'

9D1D: 40 20 10 08 04 02 01   	; '@ ...{ULON}.'

; Calc Hi-Res Row/Column

9D24: AD 32 11	LDA $1132
9D27: 4A	LSR A
9D28: D0 1E	BNE $9D48
9D2A: AD 31 11	LDA $1131
9D2D: 6A	ROR A
9D2E: 4A	LSR A
9D2F: 24 D8	BIT $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
9D31: 30 01	BMI $9D34
9D33: 4A	LSR A

9D34: A8	TAY
9D35: C0 28	CPY #$28
9D37: B0 0F	BCS $9D48
9D39: AD 34 11	LDA $1134
9D3C: D0 0A	BNE $9D48
9D3E: AD 33 11	LDA $1133
9D41: 4A	LSR A
9D42: 4A	LSR A
9D43: 4A	LSR A
9D44: AA	TAX
9D45: C9 19	CMP #$19
9D47: 60	RTS

9D48: 38	SEC
9D49: 60	RTS

; ?

9D4A: AD 6A 11	LDA $116A	; SCALE Mode Flag
9D4D: F0 17	BEQ $9D66
9D4F: A5 87	LDA $87
9D51: A4 88	LDY $88
9D53: 20 5A 9D	JSR $9D5A
9D56: A5 89	LDA $89
9D58: A4 8A	LDY $8A

9D5A: 20 AE 9D	JSR $9DAE	; ?
9D5D: 9D 31 11	STA $1131,X
9D60: 98	TYA
9D61: E8	INX
9D62: 9D 31 11	STA $1131,X
9D65: E8	INX

9D66: 60	RTS

; Calculate Graphics Coordinates

9D67: 90 07	BCC $9D70
9D69: B0 14	BCS $9D7F

9D6B: B0 0F	BCS $9D7C	; Subtract Graphics Coordinate

; Add Graphics Coordinate

9D6D: 20 8F 9D	JSR $9D8F	; Read Current X Position to A/Y

9D70: 18	CLC
9D71: 7D 31 11	ADC $1131,X
9D74: 48	PHA
9D75: 98	TYA
9D76: 7D 32 11	ADC $1132,X
9D79: A8	TAY
9D7A: 68	PLA
9D7B: 60	RTS

; Subtract Graphics Coordinate

9D7C: 20 8F 9D	JSR $9D8F	; Read Current X Position to A/Y

9D7F: 38	SEC
9D80: FD 31 11	SBC $1131,X
9D83: 85 59	STA $59
9D85: 98	TYA
9D86: FD 32 11	SBC $1132,X
9D89: A8	TAY
9D8A: 08	PHP
9D8B: A5 59	LDA $59
9D8D: 28	PLP
9D8E: 60	RTS

; Read Current X Position to A/Y

9D8F: B9 31 11	LDA $1131,Y
9D92: 48	PHA
9D93: B9 32 11	LDA $1132,Y
9D96: A8	TAY
9D97: 68	PLA
9D98: 60	RTS

; ?

9D99: 20 7C 9D	JSR $9D7C	; Subtract Graphics Coordinate

9D9C: 10 0F	BPL $9DAD

9D9E: 08	PHP
9D9F: 18	CLC
9DA0: 49 FF	EOR #$FF
9DA2: 69 01	ADC #$01
9DA4: 48	PHA
9DA5: 98	TYA
9DA6: 49 FF	EOR #$FF
9DA8: 69 00	ADC #$00
9DAA: A8	TAY
9DAB: 68	PLA
9DAC: 28	PLP

9DAD: 60	RTS

; ?

9DAE: 84 8E	STY $8E
9DB0: 85 8F	STA $8F
9DB2: BD 31 11	LDA $1131,X
9DB5: BC 32 11	LDY $1132,X
9DB8: 08	PHP
9DB9: 20 9C 9D	JSR $9D9C
9DBC: 9D 31 11	STA $1131,X
9DBF: 98	TYA
9DC0: 9D 32 11	STA $1132,X
9DC3: A9 00	LDA #$00
9DC5: 8D 77 11	STA $1177
9DC8: A0 10	LDY #$10

9DCA: 46 8E	LSR $8E
9DCC: 66 8F	ROR $8F
9DCE: 90 0F	BCC $9DDF
9DD0: 18	CLC
9DD1: 7D 31 11	ADC $1131,X
9DD4: 48	PHA
9DD5: AD 77 11	LDA $1177
9DD8: 7D 32 11	ADC $1132,X
9DDB: 8D 77 11	STA $1177
9DDE: 68	PLA

9DDF: 4E 77 11	LSR $1177
9DE2: 6A	ROR A
9DE3: 88	DEY
9DE4: D0 E4	BNE $9DCA
9DE6: 69 00	ADC #$00
9DE8: AC 77 11	LDY $1177
9DEB: 90 01	BCC $9DEE
9DED: C8	INY

9DEE: 28	PLP
9DEF: 4C 9C 9D	JMP $9D9C

; Restore Pixel Cursor

9DF2: A0 00	LDY #$00
9DF4: 20 F9 9D	JSR $9DF9
9DF7: A0 02	LDY #$02

9DF9: B9 35 11	LDA $1135,Y
9DFC: 99 31 11	STA $1131,Y
9DFF: B9 36 11	LDA $1136,Y
9E02: 99 32 11	STA $1132,Y
9E05: 60	RTS

; Check Optional Float/Fixed Parameter

9E06: 20 86 03	JSR $0386	; CHRGOT entry
9E09: F0 0C	BEQ $9E17
9E0B: 20 5C 79	JSR $795C	; -Check Comma
9E0E: C9 2C	CMP #$2C
9E10: F0 05	BEQ $9E17
9E12: 20 12 88	JSR $8812	; -Input Float/Fixed Value
9E15: 38	SEC
9E16: 60	RTS

9E17: A9 00	LDA #$00
9E19: A8	TAY

9E1A: 18	CLC
9E1B: 60	RTS

; Input Optional Byte Parameter   -Check Byte Parameter in List

9E1C: A2 00	LDX #$00

9E1E: 20 86 03	JSR $0386	; CHRGOT entry
9E21: F0 F7	BEQ $9E1A
9E23: 20 5C 79	JSR $795C	; -Check Comma
9E26: C9 2C	CMP #$2C
9E28: F0 F0	BEQ $9E1A
9E2A: 20 F4 87	JSR $87F4	; -Eval Byte Parameter
9E2D: 38	SEC
9E2E: 60	RTS

; Parse Graphics Command

9E2F: 20 74 A0	JSR $A074

; Get Color Source Param

9E32: A2 01	LDX #$01
9E34: 20 86 03	JSR $0386	; CHRGOT entry
9E37: F0 13	BEQ $9E4C
9E39: C9 2C	CMP #$2C
9E3B: F0 0F	BEQ $9E4C
9E3D: 20 F4 87	JSR $87F4	; -Eval Byte Parameter
9E40: E0 04	CPX #$04
9E42: B0 0B	BCS $9E4F
9E44: E0 02	CPX #$02
9E46: 24 D8	BIT $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
9E48: 30 02	BMI $9E4C
9E4A: B0 03	BCS $9E4F

9E4C: 86 83	STX $83
9E4E: 60	RTS

9E4F: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

9E52: 20 86 03	JSR $0386	; CHRGOT entry
9E55: F0 07	BEQ $9E5E
9E57: 20 5C 79	JSR $795C	; -Check Comma
9E5A: C9 2C	CMP #$2C
9E5C: D0 12	BNE $9E70

9E5E: A0 00	LDY #$00

9E60: B9 31 11	LDA $1131,Y
9E63: 9D 31 11	STA $1131,X
9E66: E8	INX
9E67: C8	INY
9E68: C0 04	CPY #$04
9E6A: D0 F4	BNE $9E60
9E6C: 60	RTS

9E6D: 20 5C 79	JSR $795C	; -Check Comma

9E70: 8E 78 11	STX $1178
9E73: 20 08 9F	JSR $9F08
9E76: 20 86 03	JSR $0386	; CHRGOT entry
9E79: C9 2C	CMP #$2C
9E7B: F0 56	BEQ $9ED3
9E7D: C9 3B	CMP #$3B
9E7F: F0 03	BEQ $9E84
9E81: 4C 6C 79	JMP $796C	; Syntax Error

9E84: 20 80 03	JSR $0380	; CHRGET
9E87: 20 12 88	JSR $8812	; -Input Float/Fixed Value
9E8A: 85 77	STA $77
9E8C: 98	TYA
9E8D: A4 77	LDY $77
9E8F: 20 77 9A	JSR $9A77
9E92: AE 78 11	LDX $1178
9E95: BD 31 11	LDA $1131,X
9E98: 9D 33 11	STA $1133,X
9E9B: BD 32 11	LDA $1132,X
9E9E: 9D 34 11	STA $1134,X
9EA1: 20 4A 9D	JSR $9D4A	; ?
9EA4: A9 0E	LDA #$0E
9EA6: 8D 79 11	STA $1179
9EA9: 18	CLC
9EAA: AE 78 11	LDX $1178

9EAD: 20 CE 9A	JSR $9ACE	; ?
9EB0: 9D 31 11	STA $1131,X
9EB3: 98	TYA
9EB4: 9D 32 11	STA $1132,X
9EB7: A0 00	LDY #$00
9EB9: 4E 79 11	LSR $1179
9EBC: 90 02	BCC $9EC0
9EBE: A0 02	LDY #$02

9EC0: 20 6B 9D	JSR $9D6B
9EC3: 9D 31 11	STA $1131,X
9EC6: 98	TYA
9EC7: 9D 32 11	STA $1132,X
9ECA: E8	INX
9ECB: E8	INX
9ECC: 4E 79 11	LSR $1179
9ECF: D0 DC	BNE $9EAD
9ED1: 18	CLC
9ED2: 60	RTS

9ED3: 20 80 03	JSR $0380	; CHRGET
9ED6: EE 78 11	INC $1178
9ED9: EE 78 11	INC $1178
9EDC: 20 08 9F	JSR $9F08
9EDF: AE 78 11	LDX $1178
9EE2: CA	DEX
9EE3: CA	DEX
9EE4: 20 4A 9D	JSR $9D4A	; ?
9EE7: A0 02	LDY #$02
9EE9: AE 78 11	LDX $1178
9EEC: E8	INX
9EED: E8	INX

9EEE: CA	DEX
9EEF: CA	DEX
9EF0: 4E 79 11	LSR $1179
9EF3: 90 0A	BCC $9EFF
9EF5: 20 6D 9D	JSR $9D6D	; Add Graphics Coordinate
9EF8: 9D 31 11	STA $1131,X
9EFB: 98	TYA
9EFC: 9D 32 11	STA $1132,X

9EFF: A0 00	LDY #$00
9F01: EC 78 11	CPX $1178
9F04: F0 E8	BEQ $9EEE
9F06: 18	CLC
9F07: 60	RTS

9F08: 20 86 03	JSR $0386	; CHRGOT entry
9F0B: C9 AA	CMP #$AA
9F0D: F0 05	BEQ $9F14
9F0F: C9 AB	CMP #$AB
9F11: F0 01	BEQ $9F14
9F13: 18	CLC

9F14: 2E 79 11	ROL $1179
9F17: 20 C0 6D	JSR $6DC0
9F1A: AE 78 11	LDX $1178
9F1D: 9D 32 11	STA $1132,X
9F20: 98	TYA
9F21: 9D 31 11	STA $1131,X
9F24: 60	RTS

; Multicolor Pixel Masks

9F25: FF AA 55 00            	; '..u{0}'

; Conv Words Hi

9F29: 00                     	; '{0}'

9F2A: 00 2C 71 57 8D 80 00 A4	; '{0},Qw{SHCR}.{0}.'
9F32: 8F C4 19 DD B2 F0 90 FC	; '{FLSHOFF}D....{BLACK}.'
9F3A: 1C                     	; '{RED}'

; Unused

9F3B: FF FF                  	; '..'

; Conv Words Lo

9F3D: 04                     	; '.'

9F3E: 72 04 50 04 0B 03 A8 03	; 'R.p.{LOCK}{STOP}.{STOP}'
9F46: 28 02 90 01 E3 01 28 00	; '({ULON}{BLACK}...({0}'
9F4E: 63                     	; 'c'

; Allocate 9K Graphics Area for graphic/sprdef

9F4F: A5 76	LDA $76 	; Graphics flag: FF = Graphics allocated
9F51: F0 01	BEQ $9F54
9F53: 60	RTS

9F54: AD 11 12	LDA $1211
9F57: 18	CLC
9F58: 69 24	ADC #$24
9F5A: B0 0E	BCS $9F6A
9F5C: 85 62	STA $62
9F5E: CD 13 12	CMP $1213
9F61: 90 0A	BCC $9F6D
9F63: D0 05	BNE $9F6A
9F65: CC 12 12	CPY $1212	; Basic Program Limit [FF00]
9F68: 90 03	BCC $9F6D

9F6A: 4C 3A 4D	JMP $4D3A	; Print 'out of memory'

9F6D: C6 76	DEC $76 	; Graphics flag: FF = Graphics allocated
9F6F: AD 10 12	LDA $1210	; End of Basic, Bank 0
9F72: 85 24	STA $24
9F74: A5 62	LDA $62
9F76: 85 25	STA $25
9F78: AE 10 12	LDX $1210	; End of Basic, Bank 0
9F7B: 86 26	STX $26
9F7D: AD 11 12	LDA $1211
9F80: 85 27	STA $27
9F82: 38	SEC
9F83: E9 1C	SBC #$1C
9F85: A8	TAY
9F86: 8A	TXA
9F87: 49 FF	EOR #$FF
9F89: 85 50	STA $50
9F8B: 98	TYA
9F8C: 49 FF	EOR #$FF
9F8E: 85 51	STA $51
9F90: A0 00	LDY #$00

9F92: E6 50	INC $50
9F94: D0 04	BNE $9F9A
9F96: E6 51	INC $51
9F98: F0 18	BEQ $9FB2

9F9A: A5 24	LDA $24
9F9C: D0 02	BNE $9FA0
9F9E: C6 25	DEC $25

9FA0: C6 24	DEC $24
9FA2: A5 26	LDA $26
9FA4: D0 02	BNE $9FA8
9FA6: C6 27	DEC $27

9FA8: C6 26	DEC $26
9FAA: 20 C0 03	JSR $03C0	; Index2 Indirect Fetch From RAM Bank 0
9FAD: 91 24	STA ($24),Y
9FAF: 4C 92 9F	JMP $9F92

9FB2: 18	CLC
9FB3: AD 11 12	LDA $1211
9FB6: 69 24	ADC #$24
9FB8: 8D 11 12	STA $1211
9FBB: A5 2E	LDA $2E
9FBD: 69 24	ADC #$24
9FBF: 85 2E	STA $2E
9FC1: A5 44	LDA $44
9FC3: 69 24	ADC #$24
9FC5: 85 44	STA $44

9FC7: 20 4F 4F	JSR $4F4F	; Rechain Lines
9FCA: 20 82 4F	JSR $4F82	; Reset End-of-Basic
9FCD: 24 7F	BIT $7F
9FCF: 10 2D	BPL $9FFE
9FD1: A2 24	LDX #$24
9FD3: 24 76	BIT $76 	; Graphics flag: FF = Graphics allocated
9FD5: 30 02	BMI $9FD9
9FD7: A2 DC	LDX #$DC

9FD9: 8A	TXA
9FDA: 18	CLC
9FDB: 65 3E	ADC $3E
9FDD: 85 3E	STA $3E
9FDF: 8A	TXA
9FE0: 18	CLC
9FE1: 6D 03 12	ADC $1203
9FE4: 8D 03 12	STA $1203
9FE7: 8A	TXA
9FE8: 18	CLC
9FE9: 6D 0F 12	ADC $120F
9FEC: 8D 0F 12	STA $120F
9FEF: 20 47 50	JSR $5047	; Copy B-Stack Pointer

9FF2: A5 3F	LDA $3F
9FF4: C9 FF	CMP #$FF
9FF6: D0 07	BNE $9FFF
9FF8: A5 40	LDA $40
9FFA: C9 09	CMP #$09
9FFC: D0 01	BNE $9FFF

9FFE: 60	RTS

9FFF: A0 00	LDY #$00
A001: B1 3F	LDA ($3F),Y
A003: C9 81	CMP #$81
A005: D0 09	BNE $A010
A007: A0 10	LDY #$10
A009: 20 62 A0	JSR $A062
A00C: A9 12	LDA #$12
A00E: D0 07	BNE $A017

A010: A0 04	LDY #$04
A012: 20 62 A0	JSR $A062
A015: A9 05	LDA #$05

A017: 18	CLC
A018: 65 3F	ADC $3F
A01A: 85 3F	STA $3F
A01C: 90 D4	BCC $9FF2
A01E: E6 40	INC $40
A020: D0 D0	BNE $9FF2

; Move Basic to $1c01

A022: A5 76	LDA $76 	; Graphics flag: FF = Graphics allocated
A024: D0 01	BNE $A027
A026: 60	RTS

A027: A0 00	LDY #$00
A029: 84 76	STY $76 	; Graphics flag: FF = Graphics allocated
A02B: 84 24	STY $24
A02D: 84 26	STY $26
A02F: A9 1C	LDA #$1C
A031: 85 25	STA $25
A033: A9 40	LDA #$40
A035: 85 27	STA $27

A037: 20 C0 03	JSR $03C0	; Index2 Indirect Fetch From RAM Bank 0
A03A: 91 24	STA ($24),Y
A03C: C8	INY
A03D: D0 F8	BNE $A037
A03F: E6 25	INC $25
A041: E6 27	INC $27
A043: AD 11 12	LDA $1211
A046: C5 27	CMP $27
A048: B0 ED	BCS $A037
A04A: 38	SEC
A04B: A5 2E	LDA $2E
A04D: E9 24	SBC #$24
A04F: 85 2E	STA $2E
A051: AD 11 12	LDA $1211
A054: E9 24	SBC #$24
A056: 8D 11 12	STA $1211
A059: A5 44	LDA $44
A05B: E9 24	SBC #$24
A05D: 85 44	STA $44
A05F: 4C C7 9F	JMP $9FC7

A062: B1 3F	LDA ($3F),Y
A064: 24 76	BIT $76 	; Graphics flag: FF = Graphics allocated
A066: D0 06	BNE $A06E
A068: 38	SEC
A069: E9 24	SBC #$24
A06B: 91 3F	STA ($3F),Y
A06D: 60	RTS

A06E: 18	CLC
A06F: 69 24	ADC #$24
A071: 91 3F	STA ($3F),Y
A073: 60	RTS

A074: A5 76	LDA $76 	; Graphics flag: FF = Graphics allocated
A076: F0 01	BEQ $A079
A078: 60	RTS

A079: A2 23	LDX #$23
A07B: 4C 3C 4D	JMP $4D3C	; Error

; Perform [catalog/directory]

A07E: 20 BF A3	JSR $A3BF	; Parse DOS Commands
A081: A5 80	LDA $80
A083: 29 E6	AND #$E6
A085: F0 03	BEQ $A08A
A087: 4C 6C 79	JMP $796C	; Syntax Error

A08A: A0 01	LDY #$01
A08C: A2 01	LDX #$01
A08E: A5 80	LDA $80
A090: 29 11	AND #$11
A092: F0 06	BEQ $A09A
A094: 4A	LSR A
A095: 90 02	BCC $A099
A097: E8	INX
A098: E8	INX

A099: E8	INX

A09A: 8A	TXA
A09B: 20 67 A6	JSR $A667	; Set DOS Parameters
A09E: A9 00	LDA #$00
A0A0: AA	TAX
A0A1: 20 87 92	JSR $9287	; Set Load/Save Bank
A0A4: A0 60	LDY #$60
A0A6: AE 1C 01	LDX $011C
A0A9: A9 00	LDA #$00
A0AB: 20 57 92	JSR $9257	; Call 'setlfs'
A0AE: 38	SEC
A0AF: 20 D8 90	JSR $90D8	; Basic 'open'
A0B2: 90 09	BCC $A0BD
A0B4: 48	PHA
A0B5: 20 14 A1	JSR $A114
A0B8: 68	PLA
A0B9: AA	TAX
A0BA: 4C 3C 4D	JMP $4D3C	; Error

A0BD: A2 00	LDX #$00
A0BF: 20 45 A8	JSR $A845	; Set Bank 15
A0C2: 20 C6 FF	JSR $FFC6	; (ichkin)      Set Input [F106]
A0C5: A0 03	LDY #$03

A0C7: 8C 74 11	STY $1174

A0CA: 20 63 92	JSR $9263	; Call 'getin'
A0CD: 8D 75 11	STA $1175
A0D0: 20 51 92	JSR $9251	; Call 'status'
A0D3: D0 3F	BNE $A114
A0D5: 20 63 92	JSR $9263	; Call 'getin'
A0D8: 8D 76 11	STA $1176
A0DB: 20 51 92	JSR $9251	; Call 'status'
A0DE: D0 34	BNE $A114
A0E0: CE 74 11	DEC $1174
A0E3: D0 E5	BNE $A0CA
A0E5: AE 75 11	LDX $1175
A0E8: AD 76 11	LDA $1176
A0EB: 20 32 8E	JSR $8E32	; Print Integer
A0EE: A9 20	LDA #$20
A0F0: 20 69 92	JSR $9269	; Call 'chrout'

A0F3: 20 63 92	JSR $9263	; Call 'getin'
A0F6: 48	PHA
A0F7: 20 51 92	JSR $9251	; Call 'status'
A0FA: D0 17	BNE $A113
A0FC: 68	PLA
A0FD: F0 06	BEQ $A105
A0FF: 20 69 92	JSR $9269	; Call 'chrout'
A102: 4C F3 A0	JMP $A0F3

A105: A9 0D	LDA #$0D
A107: 20 69 92	JSR $9269	; Call 'chrout'
A10A: 20 93 92	JSR $9293	; Call 'test stop'
A10D: F0 05	BEQ $A114
A10F: A0 02	LDY #$02
A111: D0 B4	BNE $A0C7

A113: 68	PLA

A114: 20 6F 92	JSR $926F	; Call 'clrchn'
A117: A9 00	LDA #$00
A119: 18	CLC
A11A: 4C 75 92	JMP $9275	; Call 'close'

; Perform [dopen]

A11D: A9 22	LDA #$22	; allowed params: File,#,U,D,@,W
A11F: 20 C1 A3	JSR $A3C1
A122: 20 6F A7	JSR $A76F
A125: 20 57 A1	JSR $A157	; Find Spare SA
A128: A0 05	LDY #$05	; mask offset
A12A: A2 04	LDX #$04	; mask length
A12C: 24 80	BIT $80
A12E: 50 13	BVC $A143	; no write flag
A130: A2 08	LDX #$08
A132: D0 0F	BNE $A143

; Perform [append]

A134: A9 E2	LDA #$E2	; allowed params: File,#,U,D
A136: 20 C1 A3	JSR $A3C1
A139: 20 6F A7	JSR $A76F
A13C: 20 57 A1	JSR $A157	; Find Spare SA
A13F: A0 16	LDY #$16	; mask offset
A141: A2 05	LDX #$05	; mask length

A143: 8A	TXA
A144: 20 67 A6	JSR $A667	; Set DOS Parameters
A147: 20 6F 92	JSR $926F	; Call 'clrchn'
A14A: A9 00	LDA #$00
A14C: AA	TAX
A14D: 20 87 92	JSR $9287	; Set Load/Save Bank
A150: 20 D8 90	JSR $90D8	; Basic 'open'
A153: EA	NOP
A154: 4C B2 A3	JMP $A3B2

; Find Spare SA

A157: A0 61	LDY #$61

A159: C8	INY
A15A: C0 6F	CPY #$6F
A15C: F0 0C	BEQ $A16A
A15E: 20 45 A8	JSR $A845	; Set Bank 15
A161: 20 5C FF	JSR $FF5C	; lkupsa        (second addr)
A164: 90 F3	BCC $A159
A166: 8C 1D 01	STY $011D
A169: 60	RTS

A16A: A2 01	LDX #$01
A16C: 4C 3C 4D	JMP $4D3C	; Error

; Perform [dclose]

A16F: A9 F3	LDA #$F3
A171: 20 C1 A3	JSR $A3C1
A174: 20 0D A8	JSR $A80D	; Release String
A177: A5 80	LDA $80
A179: 29 04	AND #$04
A17B: F0 06	BEQ $A183
A17D: AD 1B 01	LDA $011B
A180: 4C 75 92	JMP $9275	; Call 'close'

A183: AD 1C 01	LDA $011C
A186: 20 45 A8	JSR $A845	; Set Bank 15
A189: 4C 4A FF	JMP $FF4A	; close all

; Perform [dsave]

A18C: A9 66	LDA #$66
A18E: 20 C1 A3	JSR $A3C1	; parse disk command parameters
A191: 20 50 A7	JSR $A750	; filename given?
A194: A0 05	LDY #$05
A196: A9 04	LDA #$04
A198: 20 67 A6	JSR $A667	; Set DOS Parameters
A19B: A9 00	LDA #$00
A19D: AA	TAX
A19E: 20 87 92	JSR $9287	; Set Load/Save Bank
A1A1: 4C 15 91	JMP $9115

; Perform [dverify]

A1A4: A9 01	LDA #$01
A1A6: 2C	.BYTE $2C

; Perform [dload]

A1A7: A9 00	LDA #$00
A1A9: 85 0C	STA $0C		; load/verify flag
A1AB: A9 E6	LDA #$E6	; allow only filename,D,U
A1AD: 20 C1 A3	JSR $A3C1	; parse disk command parameters
A1B0: 20 50 A7	JSR $A750	; filename given?
A1B3: A9 00	LDA #$00
A1B5: 8D 1D 01	STA $011D
A1B8: A0 05	LDY #$05
A1BA: A9 04	LDA #$04
A1BC: 20 67 A6	JSR $A667	; Set DOS Parameters
A1BF: A9 00	LDA #$00
A1C1: AA	TAX
A1C2: 20 87 92	JSR $9287	; Set Load/Save Bank
A1C5: 4C 33 91	JMP $9133

; Perform [bsave]

A1C8: A9 66	LDA #$66	; allowed params: filename,@,U,D
A1CA: A2 F8	LDX #$F8	; allowed ext. params: begin addr., end addr., bank number
A1CC: 20 C3 A3	JSR $A3C3	; parse disk command parameters
A1CF: 20 50 A7	JSR $A750
A1D2: A5 81	LDA $81		; ext. param. mask
A1D4: 29 06	AND #$06
A1D6: C9 06	CMP #$06	; begin and end addr. must be given
A1D8: F0 03	BEQ $A1DD
A1DA: 4C 6C 79	JMP $796C	; Syntax Error

A1DD: AD 1A 01	LDA $011A	; end addr. high less or equal than
A1E0: CD 18 01	CMP $0118	; begin addr. high
A1E3: 90 30	BCC $A215	; illegal quantity
A1E5: D0 0A	BNE $A1F1
A1E7: AD 19 01	LDA $0119	; end addr. low less or equal than
A1EA: CD 17 01	CMP $0117	; begin addr. low
A1ED: 90 26	BCC $A215	; illegal quantity
A1EF: F0 24	BEQ $A215	

A1F1: A0 05	LDY #$05	; begin addr. < end addr.
A1F3: A9 04	LDA #$04
A1F5: 20 67 A6	JSR $A667	; Set DOS Parameters
A1F8: AD 1F 01	LDA $011F
A1FB: A2 00	LDX #$00
A1FD: 20 87 92	JSR $9287	; Set Load/Save Bank
A200: AE 17 01	LDX $0117	; begin addr.
A203: AC 18 01	LDY $0118
A206: A9 5A	LDA #$5A	; pointer to begin addr.
A208: 86 5A	STX $5A
A20A: 84 5B	STY $5B
A20C: AE 19 01	LDX $0119	; end addr.
A20F: AC 1A 01	LDY $011A
A212: 4C 1D 91	JMP $911D

A215: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

; Perform [bload]

A218: A9 E6	LDA #$E6	; allowed params: filename,U,D
A21A: A2 FC	LDX #$FC	; allowed ext. params: begin addr., bank number
A21C: 20 C3 A3	JSR $A3C3	; parse disk command parameters

A21F: 20 50 A7	JSR $A750
A222: AE 17 01	LDX $0117	; start addr.
A225: AC 18 01	LDY $0118
A228: A9 00	LDA #$00
A22A: E0 FF	CPX #$FF
A22C: D0 06	BNE $A234
A22E: C0 FF	CPY #$FF
A230: D0 02	BNE $A234
A232: A9 FF	LDA #$FF

A234: 8D 1D 01	STA $011D
A237: A0 05	LDY #$05
A239: A9 04	LDA #$04
A23B: 20 67 A6	JSR $A667	; Set DOS Parameters
A23E: AD 1F 01	LDA $011F
A241: A2 00	LDX #$00
A243: 20 87 92	JSR $9287	; Set Load/Save Bank
A246: A9 00	LDA #$00
A248: AE 17 01	LDX $0117
A24B: AC 18 01	LDY $0118
A24E: 20 D5 FF	JSR $FFD5	; loadsp        Load RAM From Device
A251: 08	PHP
A252: 20 43 92	JSR $9243	; Release I/O String
A255: 28	PLP
A256: 90 03	BCC $A25B
A258: 4C D0 90	JMP $90D0	; I/O Error Message

A25B: 20 51 92	JSR $9251	; Call 'status'
A25E: 29 BF	AND #$BF
A260: F0 03	BEQ $A265
A262: 4C 67 91	JMP $9167

A265: 18	CLC
A266: 60	RTS

; Perform [header]

A267: 20 BF A3	JSR $A3BF	; Parse DOS Commands
A26A: 20 49 A7	JSR $A749
A26D: 29 01	AND #$01
A26F: C9 01	CMP #$01
A271: D0 61	BNE $A2D4
A273: 20 7B 92	JSR $927B	; Call 'clall'
A276: 20 E1 A7	JSR $A7E1	; Print 'are you sure'
A279: D0 25	BNE $A2A0
A27B: A0 1B	LDY #$1B
A27D: A9 04	LDA #$04
A27F: AE 20 01	LDX $0120
A282: F0 02	BEQ $A286
A284: A9 06	LDA #$06

A286: 20 97 A3	JSR $A397
A289: 20 78 A7	JSR $A778	; Get Floppy Channel
A28C: 24 7F	BIT $7F
A28E: 30 10	BMI $A2A0
A290: A0 00	LDY #$00
A292: A9 7B	LDA #$7B
A294: 20 AB 03	JSR $03AB	; Fetch From RAM Bank 1
A297: C9 32	CMP #$32
A299: 90 05	BCC $A2A0
A29B: A2 24	LDX #$24	; 'bad disk'
A29D: 4C 3C 4D	JMP $4D3C	; Error

A2A0: 60	RTS

; Perform [scratch]

A2A1: 20 BF A3	JSR $A3BF	; Parse DOS Commands
A2A4: 20 49 A7	JSR $A749
A2A7: 20 E1 A7	JSR $A7E1	; Print 'are you sure'
A2AA: D0 27	BNE $A2D3
A2AC: A0 37	LDY #$37
A2AE: A9 04	LDA #$04
A2B0: 20 97 A3	JSR $A397
A2B3: 20 78 A7	JSR $A778	; Get Floppy Channel
A2B6: 24 7F	BIT $7F
A2B8: 30 19	BMI $A2D3
A2BA: A9 0D	LDA #$0D
A2BC: 20 69 92	JSR $9269	; Call 'chrout'
A2BF: A0 00	LDY #$00

A2C1: A9 7B	LDA #$7B
A2C3: 20 AB 03	JSR $03AB	; Fetch From RAM Bank 1
A2C6: F0 06	BEQ $A2CE
A2C8: 20 69 92	JSR $9269	; Call 'chrout'
A2CB: C8	INY
A2CC: D0 F3	BNE $A2C1

A2CE: A9 0D	LDA #$0D
A2D0: 20 DF 90	JSR $90DF	; Basic 'chrout'

A2D3: 60	RTS

A2D4: 4C 6C 79	JMP $796C	; Syntax Error

; Perform [record]

A2D7: A9 23	LDA #$23	; "#"
A2D9: 20 5E 79	JSR $795E
A2DC: 20 F4 87	JSR $87F4	; -Eval Byte Parameter
A2DF: E0 00	CPX #$00
A2E1: F0 37	BEQ $A31A	; "illegal quantity"
A2E3: 8E 1B 01	STX $011B	; logical filenumber
A2E6: 20 0F 88	JSR $880F	; checkt comma, Input Next Float/Fixed Value, $16/$17
A2E9: A2 01	LDX #$01	; default =1 (in record position)
A2EB: 20 1E 9E	JSR $9E1E	; check comma, get byte value
A2EE: E0 00	CPX #$00
A2F0: F0 28	BEQ $A31A	; "illegal quantity"
A2F2: E0 FF	CPX #$FF
A2F4: F0 24	BEQ $A31A	; "illegal quantity"
A2F6: 8E 1E 01	STX $011E
A2F9: AD 1B 01	LDA $011B	; filenumber (for lkupla call)
A2FC: 20 45 A8	JSR $A845	; Set Bank 15 (regs unchanged)
A2FF: 20 59 FF	JSR $FF59	; lkupla (logical addr)
A302: B0 19	BCS $A31D	; C=1 -> file not found
A304: 8C ED 11	STY $11ED	; channel number
A307: 8E 1C 01	STX $011C	; device number
A30A: A9 00	LDA #$00
A30C: 8D 1B 01	STA $011B	; filenumber (special: 0)
A30F: A9 6F	LDA #$6F	; channel: $60+$0F (command channel)
A311: 8D 1D 01	STA $011D	; secondary address
A314: A0 3B	LDY #$3B	; index in command pattern table
A316: A9 04	LDA #$04	; length of pattern
A318: D0 7D	BNE $A397	; expand command pattern

A31A: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

A31D: A2 04	LDX #$04
A31F: 4C 3C 4D	JMP $4D3C	; file not found error

; Perform [dclear]

A322: 20 BF A3	JSR $A3BF	; Parse DOS Commands
A325: A0 FF	LDY #$FF
A327: A9 02	LDA #$02
A329: 20 97 A3	JSR $A397
A32C: 4C 83 A1	JMP $A183

; Perform [collect]

A32F: 20 BF A3	JSR $A3BF	; Parse DOS Commands
A332: 20 5B A7	JSR $A75B
A335: 20 7B 92	JSR $927B	; Call 'clall'
A338: A0 21	LDY #$21
A33A: A2 01	LDX #$01
A33C: A5 80	LDA $80
A33E: 29 10	AND #$10	; drive number given?
A340: F0 01	BEQ $A343
A342: E8	INX

A343: 8A	TXA
A344: D0 51	BNE $A397

; Perform [copy]

A346: 20 BF A3	JSR $A3BF	; Parse DOS Commands
A349: 29 30	AND #$30
A34B: C9 30	CMP #$30
A34D: D0 06	BNE $A355
A34F: A5 80	LDA $80
A351: 29 C7	AND #$C7
A353: F0 07	BEQ $A35C

A355: A5 80	LDA $80
A357: 20 60 A7	JSR $A760
A35A: A5 80	LDA $80

A35C: A0 27	LDY #$27
A35E: A9 08	LDA #$08
A360: D0 35	BNE $A397

; Perform [concat]

A362: 20 BF A3	JSR $A3BF	; Parse DOS Commands
A365: 20 60 A7	JSR $A760
A368: A0 0D	LDY #$0D
A36A: A9 0C	LDA #$0C
A36C: D0 29	BNE $A397

; Perform [rename]

A36E: A9 E4	LDA #$E4
A370: 20 C1 A3	JSR $A3C1
A373: 20 66 A7	JSR $A766
A376: A0 2F	LDY #$2F
A378: A9 08	LDA #$08
A37A: D0 1B	BNE $A397

; Perform [backup]

A37C: A9 C7	LDA #$C7
A37E: 20 C1 A3	JSR $A3C1
A381: 29 30	AND #$30
A383: C9 30	CMP #$30
A385: F0 03	BEQ $A38A
A387: 4C 6C 79	JMP $796C	; Syntax Error

A38A: 20 E1 A7	JSR $A7E1	; Print 'are you sure'
A38D: F0 01	BEQ $A390
A38F: 60	RTS

A390: 20 83 A1	JSR $A183
A393: A0 23	LDY #$23
A395: A9 04	LDA #$04

A397: 20 67 A6	JSR $A667	; Set DOS Parameters
A39A: 20 6F 92	JSR $926F	; Call 'clrchn'
A39D: A9 00	LDA #$00
A39F: AA	TAX
A3A0: 20 87 92	JSR $9287	; Set Load/Save Bank
A3A3: 38	SEC
A3A4: 20 D8 90	JSR $90D8	; Basic 'open'
A3A7: 08	PHP
A3A8: 48	PHA
A3A9: AD 1B 01	LDA $011B
A3AC: 38	SEC
A3AD: 20 75 92	JSR $9275	; Call 'close'
A3B0: 68	PLA
A3B1: 28	PLP

A3B2: B0 01	BCS $A3B5
A3B4: 60	RTS

A3B5: 4C D0 90	JMP $90D0	; I/O Error Message

; Default DOS Disk Unit (U8 D0)

A3B8: FF FF FF FF            	; '....'

; DOS Logical Address

A3BC: 00                     	; '{0}'

; DOS Physical Address

A3BD: 08                     	; '.'

; DOS Secondary Address

A3BE: 6F                     	; 'o'

; Parse DOS Commands

A3BF: A9 00	LDA #$00

A3C1: A2 FF	LDX #$FF

A3C3: 48	PHA
A3C4: 8A	TXA
A3C5: 48	PHA
A3C6: A9 00	LDA #$00
A3C8: 85 80	STA $80
A3CA: 85 81	STA $81
A3CC: A2 22	LDX #$22

A3CE: 9D 00 01	STA $0100,X
A3D1: CA	DEX
A3D2: D0 FA	BNE $A3CE
A3D4: A2 06	LDX #$06

A3D6: BD B8 A3	LDA $A3B8,X	; Default DOS Disk Unit (U8 D0)
A3D9: 9D 17 01	STA $0117,X
A3DC: CA	DEX
A3DD: 10 F7	BPL $A3D6
A3DF: AE D5 03	LDX $03D5	; Current Bank For SYS, POKE, PEEK
A3E2: 8E 1F 01	STX $011F
A3E5: 20 86 03	JSR $0386	; CHRGOT entry
A3E8: D0 0E	BNE $A3F8

A3EA: 68	PLA
A3EB: 25 81	AND $81
A3ED: D0 6B	BNE $A45A
A3EF: 68	PLA
A3F0: 20 1D A6	JSR $A61D
A3F3: A5 80	LDA $80
A3F5: A6 81	LDX $81
A3F7: 60	RTS

A3F8: C9 23	CMP #$23	; "#"
A3FA: F0 4B	BEQ $A447	; Filenumber
A3FC: C9 57	CMP #$57	; "W"
A3FE: F0 5D	BEQ $A45D	; Write mode
A400: C9 4C	CMP #$4C	; "L"
A402: F0 59	BEQ $A45D	; Record length
A404: C9 52	CMP #$52	; "R"
A406: F0 29	BEQ $A431
A408: C9 44	CMP #$44	; "D"		; Drive
A40A: F0 73	BEQ $A47F
A40C: C9 91	CMP #$91	; ON-Token
A40E: F0 27	BEQ $A437
A410: C9 42	CMP #$42	; "B"
A412: F0 2E	BEQ $A442	; Bank
A414: C9 55	CMP #$55	; "U"
A416: F0 25	BEQ $A43D	; Device
A418: C9 50	CMP #$50	; "P"
A41A: D0 03	BNE $A41F	
A41C: 4C B4 A4	JMP $A4B4	; Address

A41F: C9 49	CMP #$49	; "I"
A421: F0 75	BEQ $A498	; Format ID
A423: C9 22	CMP #$22	; '"'
A425: F0 07	BEQ $A42E
A427: C9 28	CMP #$28	; "("
A429: F0 03	BEQ $A42E
A42B: 4C 6C 79	JMP $796C	; Syntax Error

A42E: 4C DC A4	JMP $A4DC	; get string (filename)

A431: 20 80 03	JSR $0380	; CHRGET
A434: 4C FB A4	JMP $A4FB	; continue parsing

A437: 20 82 A5	JSR $A582	; get byte B or U value

A43A: 4C F7 A4	JMP $A4F7	; mark parameter

; get device number
A43D: 20 8D A5	JSR $A58D	; get device value
A440: D0 F8	BNE $A43A	; mark parameter

; get bank number
A442: 20 9E A5	JSR $A59E	; get byte number
A445: F0 F3	BEQ $A43A

; get filenumber
A447: A9 04	LDA #$04
A449: 20 1D A6	JSR $A61D	; has ... parameter?
A44C: 20 F2 A5	JSR $A5F2	; get byte value
A44F: E0 00	CPX #$00
A451: F0 42	BEQ $A495	; illegal quantity if =0
A453: 8E 1B 01	STX $011B
A456: A9 04	LDA #$04	; mark parameter
A458: D0 E0	BNE $A43A

A45A: 4C 6C 79	JMP $796C	; Syntax Error

; get record length, write mode
A45D: AA	TAX
A45E: A9 40	LDA #$40
A460: 20 1D A6	JSR $A61D	; check if para. exists
A463: E0 57	CPX #$57	; "W"
A465: D0 06	BNE $A46D	; get record length value
A467: 20 80 03	JSR $0380	; CHRGET
A46A: 4C 7B A4	JMP $A47B	; mark parameter (write flag)

A46D: 20 F2 A5	JSR $A5F2	; get byte value
A470: E0 00	CPX #$00
A472: F0 21	BEQ $A495	; record length
A474: E0 FF	CPX #$FF			; >0 and < 255
A476: F0 1D	BEQ $A495	; otherwise illegal quantity
A478: 8E 1E 01	STX $011E

A47B: A9 40	LDA #$40	; mark got write flag
A47D: D0 14	BNE $A493

; get drive
A47F: A9 10	LDA #$10
A481: 20 1D A6	JSR $A61D	; check if para. exists
A484: 20 F2 A5	JSR $A5F2	; get byte value
A487: E0 02	CPX #$02
A489: B0 0A	BCS $A495	; >=2 illegal quantitity
A48B: 8E 12 01	STX $0112	; set source and
A48E: 8E 14 01	STX $0114	; destination drive!
A491: A9 10	LDA #$10

A493: D0 62	BNE $A4F7	; mark parameter

A495: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

; get format ID
A498: AD 22 01	LDA $0122	; already set?
A49B: D0 BD	BNE $A45A	; yes, syntax error
A49D: 20 80 03	JSR $0380	; CHRGET, get 2 constant chars (no variable!)
A4A0: 8D 20 01	STA $0120	; ID first character
A4A3: 20 80 03	JSR $0380	; CHRGET
A4A6: 8D 21 01	STA $0121	; ID second characer
A4A9: A9 FF	LDA #$FF
A4AB: 8D 22 01	STA $0122	; mark ID as set
A4AE: 20 80 03	JSR $0380	; CHRGET
A4B1: 4C FB A4	JMP $A4FB	; continue parsing


; get address
A4B4: A9 02	LDA #$02
A4B6: 20 22 A6	JSR $A622	; check extented parameter
A4B9: 20 05 A6	JSR $A605	; get value
A4BC: 8C 17 01	STY $0117	; 16-bit address
A4BF: 8D 18 01	STA $0118
A4C2: A9 02	LDA #$02	; mark extented parameter

A4C4: 05 81	ORA $81
A4C6: 85 81	STA $81
A4C8: D0 31	BNE $A4FB	; continue parsing

A4CA: A9 04	LDA #$04
A4CC: 20 22 A6	JSR $A622	; check extented parameter
A4CF: 20 05 A6	JSR $A605	; get value
A4D2: 8C 19 01	STY $0119
A4D5: 8D 1A 01	STA $011A
A4D8: A9 04	LDA #$04
A4DA: D0 E8	BNE $A4C4	; mark extented parameter

A4DC: A9 01	LDA #$01
A4DE: 20 B9 A5	JSR $A5B9	; get string
A4E1: 8D 11 01	STA $0111	; save string length
A4E4: A0 00	LDY #$00

A4E6: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
A4E9: 8D 03 FF	STA $FF03
A4EC: 99 B7 12	STA $12B7,Y	; copy filename string
A4EF: C8	INY
A4F0: CC 11 01	CPY $0111	; until length reached
A4F3: 90 F1	BCC $A4E6
A4F5: A9 01	LDA #$01	; mark parameter

A4F7: 05 80	ORA $80
A4F9: 85 80	STA $80

A4FB: 20 86 03	JSR $0386	; CHRGOT entry
A4FE: D0 19	BNE $A519	; get next parameter

A500: 4C EA A3	JMP $A3EA

A503: C9 91	CMP #$91	; ON-Token
A505: D0 03	BNE $A50A
A507: 4C 37 A4	JMP $A437	; get B or U value

A50A: C9 A4	CMP #$A4	; TO-Token
A50C: F0 02	BEQ $A510	; check for expected "P"
A50E: D0 6D	BNE $A57D	; continue with destination parameters

A510: 20 80 03	JSR $0380	; CHRGET ; parse destination parameters
A513: C9 50	CMP #$50	; "P"
A515: D0 0F	BNE $A526	; continue parsing
A517: F0 B1	BEQ $A4CA	; "TO P...", get address

; get next parameter
A519: C9 2C	CMP #$2C	; ","
A51B: D0 E6	BNE $A503
A51D: 20 80 03	JSR $0380	; CHRGET
A520: 4C F8 A3	JMP $A3F8	; get next parameter

A523: 20 80 03	JSR $0380	; CHRGET

A526: C9 44	CMP #$44	; "D"
A528: F0 10	BEQ $A53A	; Drive number
A52A: C9 91	CMP #$91	; ON-Token
A52C: F0 1F	BEQ $A54D
A52E: C9 55	CMP #$55	; "U"
A530: F0 21	BEQ $A553	; Device number
A532: C9 22	CMP #$22	; '"'
A534: F0 22	BEQ $A558	; get constant string
A536: C9 28	CMP #$28	; "("		; without prefix is filename string
A538: F0 1E	BEQ $A558

; get destination drive
A53A: A9 20	LDA #$20
A53C: 20 1D A6	JSR $A61D	; check if parameter set
A53F: 20 F2 A5	JSR $A5F2	; get byte value
A542: E0 02	CPX #$02
A544: B0 39	BCS $A57F
A546: 8E 14 01	STX $0114
A549: A9 20	LDA #$20
A54B: D0 1B	BNE $A568	; mark parameter

A54D: 20 82 A5	JSR $A582
A550: 4C 68 A5	JMP $A568	; mark parameter

A553: 20 8D A5	JSR $A58D	; get B or U value
A556: D0 10	BNE $A568	; mark parameter

A558: A9 02	LDA #$02
A55A: 20 B9 A5	JSR $A5B9	; get destination sring (filename)
A55D: 8D 13 01	STA $0113	; destination string length
A560: 8E 15 01	STX $0115	; destination string address
A563: 8C 16 01	STY $0116
A566: A9 02	LDA #$02	; mark parameter

A568: 05 80	ORA $80
A56A: 85 80	STA $80
A56C: 20 86 03	JSR $0386	; CHRGOT entry
A56F: F0 8F	BEQ $A500
A571: C9 2C	CMP #$2C	; ","
A573: F0 AE	BEQ $A523
A575: C9 91	CMP #$91	; ON-Token
A577: F0 D4	BEQ $A54D
A579: C9 55	CMP #$55	; "U"
A57B: F0 D6	BEQ $A553	; get device value

A57D: D0 37	BNE $A5B6	; Print 'syntax error'

A57F: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

A582: 20 80 03	JSR $0380	; CHRGET
A585: C9 42	CMP #$42	; "B"
A587: F0 15	BEQ $A59E	; ON B...
A589: C9 55	CMP #$55	; "U"
A58B: D0 29	BNE $A5B6	; Print 'syntax error'

A58D: 20 F2 A5	JSR $A5F2	; ON U...
A590: E0 1F	CPX #$1F	; device number over limit: 31
A592: B0 56	BCS $A5EA	; Print 'illegal device number'
A594: E0 04	CPX #$04	; lowest device number: 4
A596: 90 52	BCC $A5EA	; Print 'illegal device number'
A598: 8E 1C 01	STX $011C
A59B: A9 08	LDA #$08	; default device number
A59D: 60	RTS

A59E: A9 01	LDA #$01
A5A0: 20 22 A6	JSR $A622	; bank number already read?
A5A3: 20 F2 A5	JSR $A5F2	; Get byte value
A5A6: E0 10	CPX #$10			; Bank number >16
A5A8: B0 D5	BCS $A57F	; illegal quantity
A5AA: 8E 1F 01	STX $011F
A5AD: A9 01	LDA #$01			; mark bank number
A5AF: 05 81	ORA $81
A5B1: 85 81	STA $81
A5B3: A9 00	LDA #$00
A5B5: 60	RTS

A5B6: 4C 6C 79	JMP $796C	; Syntax Error

; get string (filename)
A5B9: 20 1D A6	JSR $A61D
A5BC: 20 7B 87	JSR $877B	; Evaluate String
A5BF: AA	TAX
A5C0: F0 25	BEQ $A5E7	; Print 'missing file name'
A5C2: A0 00	LDY #$00
A5C4: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
A5C7: C9 40	CMP #$40	; first char. "@"
A5C9: D0 12	BNE $A5DD
A5CB: A9 80	LDA #$80	; skip char., mark overwrite
A5CD: 20 1D A6	JSR $A61D
A5D0: A5 80	LDA $80
A5D2: 09 80	ORA #$80
A5D4: 85 80	STA $80
A5D6: CA	DEX	; decrement length
A5D7: E6 24	INC $24	; adjust string pointer
A5D9: D0 02	BNE $A5DD
A5DB: E6 25	INC $25

A5DD: 8A	TXA
A5DE: C9 11	CMP #$11	; >16 characters?
A5E0: B0 0B	BCS $A5ED	; Print 'string too long'
A5E2: A6 24	LDX $24		; filename/string address
A5E4: A4 25	LDY $25
A5E6: 60	RTS

; Print 'missing file name'

A5E7: A2 08	LDX #$08
A5E9: 2C	.BYTE $2C

; Print 'illegal device number'

A5EA: A2 09	LDX #$09
A5EC: 2C	.BYTE $2C

; Print 'string too long'

A5ED: A2 17	LDX #$17
A5EF: 4C 3C 4D	JMP $4D3C	; Error

A5F2: 20 80 03	JSR $0380	; CHRGET
A5F5: F0 BF	BEQ $A5B6
A5F7: 90 09	BCC $A602
A5F9: 20 59 79	JSR $7959	; -Check Left Parenthesis
A5FC: 20 F4 87	JSR $87F4	; -Eval Byte Parameter
A5FF: 4C 56 79	JMP $7956	; -Check Right Parenthesis

A602: 4C F4 87	JMP $87F4	; -Eval Byte Parameter

A605: 20 80 03	JSR $0380	; CHRGET
A608: F0 AC	BEQ $A5B6
A60A: 90 0E	BCC $A61A
A60C: 20 59 79	JSR $7959	; -Check Left Parenthesis
A60F: 20 12 88	JSR $8812	; -Input Float/Fixed Value
A612: 20 56 79	JSR $7956	; -Check Right Parenthesis
A615: A4 16	LDY $16
A617: A5 17	LDA $17
A619: 60	RTS

A61A: 4C 12 88	JMP $8812	; -Input Float/Fixed Value

A61D: 25 80	AND $80		; check parameter already set?
A61F: D0 95	BNE $A5B6	; Print 'syntax error'
A621: 60	RTS

A622: 25 81	AND $81		; check extented paramaeter already set?
A624: D0 90	BNE $A5B6	; Print 'syntax error'
A626: 60	RTS

; DOS Command Masks

A627: 49 D1 24 D1 3A F1 F0 D1	; 'iQ$Q:..Q'	; I<D1>		dclear
						; $<D1>:<F1>	directory
						; <F0>		dload,dsave,open,bload,bsave,boot,run
						; <D1>:<F1>,<E1>,<E0>	open
A62F: 3A F1 2C E1 2C E0 43 D2	; ':.,.,.cR'	; C<D2>:<F2>=<D2>:<F2>,<D1>:<F1>	concat
A637: 3A F2 3D D2 3A F2 2C D1	; ':.=R:.,Q'	;                      <D1>:<F1>,A	append
A63F: 3A F1 2C 41 4E D1 3A F1	; ':.,anQ:.'	; N<D1>:<F1>,<D0>	header
A647: 2C D0 56 D1 44 D2 3D D1	; ',PvQdR=Q'	; V<D1>			collect
						; D<D2>=<D1>		backup
A64F: 43 D2 3A F2 3D D1 3A F1	; 'cR:.=Q:.'	; C<D2>:<F2>=<D1>:<F1>	copy
A657: 52 D1 3A F2 3D D1 3A F1	; 'rQ:.=Q:.'	; R<D1>:<F2>=<D1>:<F1>	rename
A65F: 53 D1 3A F1 50 C2 E2 E0	; 'sQ:.pB..'	; S<D1>:<F1>		scratch
						; P<C2><E2><E0>		record

; Set DOS Parameters

A667: 8D 10 01	STA $0110	; A: command mask length
A66A: 98	TYA		; Y: command mask start index
A66B: 48	PHA
A66C: 20 0D A8	JSR $A80D	; Release String
A66F: A2 00	LDX #$00

A671: 68	PLA
A672: CE 10 01	DEC $0110
A675: 30 48	BMI $A6BF	; set file parameters
A677: A8	TAY		; increment mask index
A678: C8	INY
A679: 98	TYA
A67A: 48	PHA
A67B: B9 27 A6	LDA $A627,Y	; DOS Command Masks
A67E: 10 37	BPL $A6B7	; simple character, otherwise placeholder
A680: C9 C2	CMP #$C2	; channel number placeholder
A682: F0 52	BEQ $A6D6	channel number expand
A684: C9 D0	CMP #$D0	; drive number
A686: F0 5D	BEQ $A6E5
A688: C9 E2	CMP #$E2	; record number
A68A: F0 77	BEQ $A703
A68C: C9 E1	CMP #$E1	; file extension
A68E: F0 61	BEQ $A6F1
A690: C9 F0	CMP #$F0	; filename
A692: F0 47	BEQ $A6DB
A694: C9 F1	CMP #$F1	; source file
A696: F0 75	BEQ $A70D
A698: C9 F2	CMP #$F2	; destination file
A69A: F0 21	BEQ $A6BD
A69C: C9 E0	CMP #$E0	; record size
A69E: D0 05	BNE $A6A5
A6A0: AD 1E 01	LDA $011E	; insert record size (or other char.)
A6A3: D0 12	BNE $A6B7

A6A5: C9 D1	CMP #$D1	; source drive number
A6A7: D0 05	BNE $A6AE
A6A9: AD 12 01	LDA $0112	; get source drive number
A6AC: 10 07	BPL $A6B5	; branch always

A6AE: C9 D2	CMP #$D2	; destination drive number
A6B0: D0 BF	BNE $A671
A6B2: AD 14 01	LDA $0114	; get destination drive number

A6B5: 09 30	ORA #$30	; "0", digit base for drive number


A6B7: 9D 00 11	STA $1100,X	; store to buffer with DOS command
A6BA: E8	INX
A6BB: D0 B4	BNE $A671	; branch always

A6BD: F0 64	BEQ $A723	; prolonge processing destination file


; setup file parameters

A6BF: 8A	TXA
A6C0: 48	PHA		; filename length
A6C1: A2 00	LDX #$00
A6C3: A0 11	LDY #$11	; address $1100 (filename buffer)
A6C5: 20 5D 92	JSR $925D	; Call 'setnam'
A6C8: AD 1B 01	LDA $011B	; filenumber
A6CB: AE 1C 01	LDX $011C	; device
A6CE: AC 1D 01	LDY $011D	; secondary address
A6D1: 20 57 92	JSR $9257	; Call 'setlfs'
A6D4: 68	PLA
A6D5: 60	RTS

Placeholder expand actions

A6D6: AD ED 11	LDA $11ED	; channelnumber [C2]
A6D9: D0 DC	BNE $A6B7	; store to command buffer
		; filename [F0], [F2]
A6DB: 24 80	BIT $80		; rewrite flag for '@'
A6DD: 30 02	BMI $A6E1
A6DF: 10 90	BPL $A671	; fill in filename

A6E1: A9 40	LDA #$40	; '@' rewrite prefix for filename
A6E3: D0 D2	BNE $A6B7	; store to command buffer

A6E5: AD 20 01	LDA $0120	; disk ID  [D0]
A6E8: 9D 00 11	STA $1100,X
A6EB: E8	INX
A6EC: AD 21 01	LDA $0121
A6EF: D0 C6	BNE $A6B7	; store to command buffer

A6F1: AD 1E 01	LDA $011E	; file extension [E1] (record length?)
A6F4: F0 04	BEQ $A6FA
A6F6: A9 4C	LDA #$4C	; "L" -> ",L,<len>"
A6F8: D0 BD	BNE $A6B7	; store to command buffer

A6FA: A9 53	LDA #$53	; "S"
A6FC: 8D 1E 01	STA $011E
A6FF: A9 57	LDA #$57	; "W" -> ",W,S"
A701: D0 B4	BNE $A6B7	; store to command buffer

A703: A5 16	LDA $16		; record number [E2]
A705: 9D 00 11	STA $1100,X
A708: A5 17	LDA $17
A70A: E8	INX
A70B: D0 AA	BNE $A6B7	; store to command buffer

A70D: AC 11 01	LDY $0111	; filename source [F1]
A710: F0 33	BEQ $A745
A712: A0 00	LDY #$00

A714: B9 B7 12	LDA $12B7,Y	; copy filename to command buffer
A717: 9D 00 11	STA $1100,X
A71A: E8	INX
A71B: C8	INY
A71C: CC 11 01	CPY $0111
A71F: D0 F3	BNE $A714
A721: F0 23	BEQ $A746

A723: AD 15 01	LDA $0115
A726: 85 24	STA $24
A728: AD 16 01	LDA $0116
A72B: 85 25	STA $25
A72D: AC 13 01	LDY $0113
A730: F0 13	BEQ $A745
A732: A0 00	LDY #$00

A734: 20 B7 03	JSR $03B7	; Index1 Indirect Fetch From RAM Bank 1 ($24),Y
A737: 8D 03 FF	STA $FF03
A73A: 9D 00 11	STA $1100,X
A73D: E8	INX
A73E: C8	INY
A73F: CC 13 01	CPY $0113
A742: D0 F0	BNE $A734
A744: 24	.BYTE $24

A745: CA	DEX

A746: 4C 71 A6	JMP $A671

A749: 29 E6	AND #$E6
A74B: F0 03	BEQ $A750

A74D: 4C 6C 79	JMP $796C	; Syntax Error


; check for filename given

A750: A5 80	LDA $80
A752: 29 01	AND #$01
A754: C9 01	CMP #$01
A756: D0 F5	BNE $A74D	; syntax error: filename missing
A758: A5 80	LDA $80
A75A: 60	RTS

A75B: 29 E7	AND #$E7
A75D: D0 EE	BNE $A74D	; syntax error
A75F: 60	RTS

A760: 29 C4	AND #$C4
A762: D0 E9	BNE $A74D
A764: A5 80	LDA $80

A766: 29 03	AND #$03
A768: C9 03	CMP #$03
A76A: D0 E1	BNE $A74D
A76C: A5 80	LDA $80
A76E: 60	RTS

A76F: 29 05	AND #$05
A771: C9 05	CMP #$05
A773: D0 D8	BNE $A74D
A775: A5 80	LDA $80
A777: 60	RTS

; Get floppy error channel

A778: A5 7A	LDA $7A		; $7A/$7B/$7C DS$ string descriptor
A77A: D0 19	BNE $A795
A77C: A9 28	LDA #$28	; default 40 characters
A77E: 85 7A	STA $7A
A780: 20 99 92	JSR $9299	; Make Room For String
A783: 86 7B	STX $7B		; string address into
A785: 84 7C	STY $7C		; descriptor
A787: A0 28	LDY #$28	; string backlink offset
A789: 8D 04 FF	STA $FF04	; ???
A78C: A9 7A	LDA #$7A	; backlink to descriptor $007A
A78E: 91 7B	STA ($7B),Y	; backlink low
A790: C8	INY
A791: A9 00	LDA #$00
A793: 91 7B	STA ($7B),Y	; backlink high, string marked as used on heap

A795: AE 1C 01	LDX $011C	; device number
A798: D0 05	BNE $A79F
A79A: A2 08	LDX #$08	; defaults to 8
A79C: 8E 1C 01	STX $011C

A79F: A9 00	LDA #$00	; internal filenumber 0
A7A1: A0 6F	LDY #$6F	; channel $0F (+$60)
A7A3: 20 57 92	JSR $9257	; Call 'setlfs'
A7A6: A9 00	LDA #$00
A7A8: 20 5D 92	JSR $925D	; Call 'setnam'
A7AB: 20 D8 90	JSR $90D8	; Basic 'open'
A7AE: A2 00	LDX #$00
A7B0: 20 C6 FF	JSR $FFC6	; (ichkin)      Set Input [F106]
A7B3: B0 20	BCS $A7D5
A7B5: A0 FF	LDY #$FF

A7B7: C8	INY		; read channel
A7B8: 20 63 92	JSR $9263	; Call 'getin'
A7BB: 8D 04 FF	STA $FF04
A7BE: C9 0D	CMP #$0D
A7C0: F0 06	BEQ $A7C8
A7C2: 91 7B	STA ($7B),Y	; save into string
A7C4: C0 28	CPY #$28	; max . 40 chars
A7C6: 90 EF	BCC $A7B7

A7C8: A9 00	LDA #$00
A7CA: 91 7B	STA ($7B),Y	; terminate with NULL
A7CC: 20 6F 92	JSR $926F	; Call 'clrchn'
A7CF: A9 00	LDA #$00
A7D1: 38	SEC
A7D2: 4C 75 92	JMP $9275	; Call 'close'

A7D5: 48	PHA
A7D6: 20 C8 A7	JSR $A7C8
A7D9: 20 0D A8	JSR $A80D	; Release String
A7DC: 68	PLA
A7DD: AA	TAX
A7DE: 4C 3C 4D	JMP $4D3C	; Error

; Print 'are you sure'

A7E1: 24 7F	BIT $7F
A7E3: 30 25	BMI $A80A
A7E5: 20 81 92	JSR $9281	; Print Following Text
A7E8: 41 52 45 20 59 4F 55 20	; 'are you '
A7F0: 53 55 52 45 3F 00      	; 'sure?{0}'
A7F6: 20 6F 92	JSR $926F	; Call 'clrchn'
A7F9: 20 63 92	JSR $9263	; Call 'getin'
A7FC: 48	PHA

A7FD: C9 0D	CMP #$0D
A7FF: F0 05	BEQ $A806
A801: 20 63 92	JSR $9263	; Call 'getin'
A804: D0 F7	BNE $A7FD

A806: 68	PLA
A807: C9 59	CMP #$59
A809: 60	RTS

A80A: A9 00	LDA #$00
A80C: 60	RTS

; Release String

A80D: 98	TYA
A80E: 48	PHA
A80F: A5 7A	LDA $7A
A811: F0 0D	BEQ $A820
A813: A0 28	LDY #$28
A815: 98	TYA
A816: 8D 04 FF	STA $FF04
A819: 91 7B	STA ($7B),Y
A81B: C8	INY
A81C: A9 FF	LDA #$FF
A81E: 91 7B	STA ($7B),Y

A820: A9 00	LDA #$00
A822: 8D 03 FF	STA $FF03
A825: 85 7A	STA $7A
A827: 68	PLA
A828: A8	TAY
A829: 60	RTS

; 'key 0,'

A82A: 2C 30 20 59 45 4B      	; ',0 yek'

; ?

A830: AA	TAX
A831: 98	TYA
A832: 48	PHA
A833: A9 00	LDA #$00
A835: 20 32 8E	JSR $8E32	; Print Integer
A838: 68	PLA
A839: A8	TAY
A83A: 60	RTS

; ?

A83B: 85 3C	STA $3C
A83D: 88	DEY
A83E: AA	TAX
A83F: E8	INX
A840: D0 02	BNE $A844
A842: 86 7F	STX $7F

A844: 60	RTS

; Set Bank 15

A845: 48	PHA
A846: A9 00	LDA #$00
A848: 8D 00 FF	STA $FF00	; MMU Configuration Register
A84B: 68	PLA
A84C: 60	RTS

; IRQ Work

A84D: AD FD 12	LDA $12FD
A850: F0 01	BEQ $A853
A852: 60	RTS

A853: EE FD 12	INC $12FD
A856: A2 10	LDX #$10

A858: BD D6 11	LDA $11D6,X
A85B: 9D 00 D0	STA $D000,X
A85E: CA	DEX
A85F: 10 F7	BPL $A858
A861: A0 07	LDY #$07

A863: AD 15 D0	LDA $D015
A866: 39 B3 6C	AND $6CB3,Y	; Bit Masks
A869: F0 38	BEQ $A8A3
A86B: BE D9 6D	LDX $6DD9,Y	; Sprite Motion Table Offsets
A86E: BD 7E 11	LDA $117E,X	; Sprite Motion Tables (8 x 11 bytes)
A871: F0 30	BEQ $A8A3
A873: 9D 7F 11	STA $117F,X

A876: 98	TYA
A877: 0A	ASL A
A878: A8	TAY
A879: BD 80 11	LDA $1180,X
A87C: 38	SEC
A87D: E9 01	SBC #$01
A87F: E8	INX
A880: E8	INX
A881: C8	INY
A882: 20 F4 A9	JSR $A9F4
A885: CA	DEX
A886: CA	DEX
A887: 88	DEY
A888: BD 80 11	LDA $1180,X
A88B: 20 F4 A9	JSR $A9F4
A88E: 08	PHP
A88F: 98	TYA
A890: 4A	LSR A
A891: A8	TAY
A892: 28	PLP
A893: 90 09	BCC $A89E
A895: AD E6 11	LDA $11E6
A898: 59 B3 6C	EOR $6CB3,Y	; Bit Masks
A89B: 8D E6 11	STA $11E6

A89E: DE 7F 11	DEC $117F,X
A8A1: D0 D3	BNE $A876

A8A3: 88	DEY
A8A4: 10 BD	BPL $A863
A8A6: AD 19 D0	LDA $D019
A8A9: 8D 19 D0	STA $D019
A8AC: 29 0E	AND #$0E
A8AE: F0 44	BEQ $A8F4
A8B0: 4A	LSR A
A8B1: A0 01	LDY #$01

A8B3: 4A	LSR A
A8B4: 90 20	BCC $A8D6
A8B6: 48	PHA
A8B7: B9 1E D0	LDA $D01E,Y
A8BA: 19 E7 11	ORA $11E7,Y
A8BD: 99 E7 11	STA $11E7,Y
A8C0: A9 00	LDA #$00
A8C2: 99 1E D0	STA $D01E,Y
A8C5: AD 7F 12	LDA $127F	; Collision Mask
A8C8: C0 00	CPY #$00
A8CA: F0 01	BEQ $A8CD
A8CC: 4A	LSR A

A8CD: 4A	LSR A
A8CE: 90 05	BCC $A8D5
A8D0: A9 FF	LDA #$FF
A8D2: 99 76 12	STA $1276,Y	; Collision IRQ Task Table

A8D5: 68	PLA

A8D6: 88	DEY
A8D7: 10 DA	BPL $A8B3
A8D9: 4A	LSR A
A8DA: 90 18	BCC $A8F4
A8DC: AD 13 D0	LDA $D013
A8DF: 8D E9 11	STA $11E9
A8E2: AD 14 D0	LDA $D014
A8E5: 8D EA 11	STA $11EA
A8E8: AD 7F 12	LDA $127F	; Collision Mask
A8EB: 29 04	AND #$04
A8ED: F0 05	BEQ $A8F4
A8EF: A9 FF	LDA #$FF
A8F1: 8D 78 12	STA $1278

A8F4: A2 00	LDX #$00

A8F6: BD 24 12	LDA $1224,X
A8F9: 30 27	BMI $A922
A8FB: BD 23 12	LDA $1223,X
A8FE: 38	SEC
A8FF: ED 22 12	SBC $1222
A902: 9D 23 12	STA $1223,X
A905: B0 1B	BCS $A922
A907: BD 24 12	LDA $1224,X
A90A: E9 00	SBC #$00
A90C: 9D 24 12	STA $1224,X
A90F: B0 11	BCS $A922
A911: 8A	TXA
A912: 4A	LSR A
A913: A8	TAY
A914: B9 30 12	LDA $1230,Y
A917: 29 FE	AND #$FE
A919: 48	PHA
A91A: B9 39 70	LDA $7039,Y	; SID Voice Offsets
A91D: A8	TAY
A91E: 68	PLA
A91F: 99 04 D4	STA $D404,Y

A922: E8	INX
A923: E8	INX
A924: E0 06	CPX #$06
A926: D0 CE	BNE $A8F6
A928: A0 02	LDY #$02

A92A: B9 85 12	LDA $1285,Y
A92D: 10 06	BPL $A935

A92F: 88	DEY
A930: 10 F8	BPL $A92A
A932: 4C F0 A9	JMP $A9F0

A935: 18	CLC
A936: B9 9D 12	LDA $129D,Y
A939: 79 97 12	ADC $1297,Y
A93C: 99 9D 12	STA $129D,Y
A93F: B9 A0 12	LDA $12A0,Y
A942: 79 9A 12	ADC $129A,Y
A945: 99 A0 12	STA $12A0,Y
A948: B9 94 12	LDA $1294,Y
A94B: AA	TAX
A94C: 29 01	AND #$01
A94E: F0 2E	BEQ $A97E
A950: 90 0F	BCC $A961
A952: 38	SEC
A953: B9 9D 12	LDA $129D,Y
A956: F9 8E 12	SBC $128E,Y
A959: B9 A0 12	LDA $12A0,Y
A95C: F9 91 12	SBC $1291,Y
A95F: B0 4D	BCS $A9AE

A961: E0 02	CPX #$02
A963: 90 0A	BCC $A96F
A965: 20 DA A9	JSR $A9DA
A968: A9 02	LDA #$02
A96A: 99 94 12	STA $1294,Y
A96D: D0 33	BNE $A9A2

A96F: B9 88 12	LDA $1288,Y
A972: 99 9D 12	STA $129D,Y
A975: B9 8B 12	LDA $128B,Y
A978: 99 A0 12	STA $12A0,Y
A97B: 4C AE A9	JMP $A9AE

A97E: B0 14	BCS $A994
A980: B9 A0 12	LDA $12A0,Y
A983: D9 8B 12	CMP $128B,Y
A986: 90 26	BCC $A9AE
A988: D0 0A	BNE $A994
A98A: B9 9D 12	LDA $129D,Y
A98D: D9 88 12	CMP $1288,Y
A990: 90 1C	BCC $A9AE
A992: F0 1A	BEQ $A9AE

A994: E0 02	CPX #$02
A996: 90 0A	BCC $A9A2
A998: 20 DA A9	JSR $A9DA
A99B: A9 03	LDA #$03
A99D: 99 94 12	STA $1294,Y
A9A0: D0 CD	BNE $A96F

A9A2: B9 8E 12	LDA $128E,Y
A9A5: 99 9D 12	STA $129D,Y
A9A8: B9 91 12	LDA $1291,Y
A9AB: 99 A0 12	STA $12A0,Y

A9AE: BE 39 70	LDX $7039,Y	; SID Voice Offsets
A9B1: B9 9D 12	LDA $129D,Y
A9B4: 9D 00 D4	STA $D400,X
A9B7: B9 A0 12	LDA $12A0,Y
A9BA: 9D 01 D4	STA $D401,X
A9BD: 98	TYA
A9BE: AA	TAX
A9BF: BD 82 12	LDA $1282,X
A9C2: D0 03	BNE $A9C7
A9C4: DE 85 12	DEC $1285,X

A9C7: DE 82 12	DEC $1282,X
A9CA: BD 85 12	LDA $1285,X
A9CD: 10 08	BPL $A9D7
A9CF: A9 08	LDA #$08
A9D1: BE 39 70	LDX $7039,Y	; SID Voice Offsets
A9D4: 9D 04 D4	STA $D404,X

A9D7: 4C 2F A9	JMP $A92F

A9DA: B9 97 12	LDA $1297,Y
A9DD: 49 FF	EOR #$FF
A9DF: 18	CLC
A9E0: 69 01	ADC #$01
A9E2: 99 97 12	STA $1297,Y
A9E5: B9 9A 12	LDA $129A,Y
A9E8: 49 FF	EOR #$FF
A9EA: 69 00	ADC #$00
A9EC: 99 9A 12	STA $129A,Y
A9EF: 60	RTS

A9F0: CE FD 12	DEC $12FD
A9F3: 60	RTS

A9F4: 48	PHA
A9F5: 18	CLC
A9F6: BD 81 11	LDA $1181,X
A9F9: 7D 85 11	ADC $1185,X
A9FC: 9D 85 11	STA $1185,X
A9FF: BD 82 11	LDA $1182,X
AA02: 7D 86 11	ADC $1186,X
AA05: 9D 86 11	STA $1186,X
AA08: 68	PLA
AA09: 90 13	BCC $AA1E
AA0B: 4A	LSR A
AA0C: 4A	LSR A
AA0D: B9 D6 11	LDA $11D6,Y
AA10: B0 05	BCS $AA17
AA12: 69 01	ADC #$01
AA14: 4C 1B AA	JMP $AA1B

AA17: E9 01	SBC #$01
AA19: C9 FF	CMP #$FF

AA1B: 99 D6 11	STA $11D6,Y

AA1E: 60	RTS

; Perform [stash]

AA1F: A9 84	LDA #$84
AA21: 4C 2B AA	JMP $AA2B

; Perform [fetch]

AA24: A9 85	LDA #$85
AA26: 4C 2B AA	JMP $AA2B

; Perform [swap]

AA29: A9 86	LDA #$86

AA2B: 48	PHA
AA2C: 20 12 88	JSR $8812	; -Input Float/Fixed Value
AA2F: 20 45 A8	JSR $A845	; Set Bank 15
AA32: 8C 07 DF	STY $DF07
AA35: 8D 08 DF	STA $DF08
AA38: 20 0F 88	JSR $880F	; Input Next Float/Fixed Value
AA3B: 20 45 A8	JSR $A845	; Set Bank 15
AA3E: 8C 02 DF	STY $DF02
AA41: 8D 03 DF	STA $DF03
AA44: 20 0F 88	JSR $880F	; Input Next Float/Fixed Value
AA47: 20 45 A8	JSR $A845	; Set Bank 15
AA4A: 8C 04 DF	STY $DF04
AA4D: 8D 05 DF	STA $DF05
AA50: 20 09 88	JSR $8809
AA53: E0 10	CPX #$10
AA55: B0 0E	BCS $AA65
AA57: 20 45 A8	JSR $A845	; Set Bank 15
AA5A: 8E 06 DF	STX $DF06
AA5D: 68	PLA
AA5E: A8	TAY
AA5F: AE D5 03	LDX $03D5	; Current Bank For SYS, POKE, PEEK
AA62: 4C 50 FF	JMP $FF50	; dma call

AA65: 4C 28 7D	JMP $7D28	; Print 'illegal quantity'

AA68: 20 47 8C	JSR $8C47	; Round FAC#1
AA6B: 4C C7 8C	JMP $8CC7	; Float-Fixed

; Patch for Print Using

AA6E: 20 D3 42	JSR $42D3	; Get From ($3f) Bank1
AA71: C9 2C	CMP #$2C
AA73: D0 07	BNE $AA7C
AA75: AD 33 01	LDA $0133
AA78: 20 EB 98	JSR $98EB	; ?
AA7B: C8	INY

AA7C: 38	SEC
AA7D: 6E 25 01	ROR $0125
AA80: 60	RTS

; Unused

AA81: FF FF FF FF FF FF FF FF	; '........'
AA89: FF FF FF FF FF FF FF FF	; '........'
AA91: FF FF FF FF FF FF FF FF	; '........'
AA99: FF FF FF FF FF FF FF FF	; '........'
AAA1: FF FF FF FF FF FF FF FF	; '........'
AAA9: FF FF FF FF FF FF FF FF	; '........'
AAB1: FF FF FF FF FF FF FF FF	; '........'
AAB9: FF FF FF FF FF FF FF FF	; '........'
AAC1: FF FF FF FF FF FF FF FF	; '........'
AAC9: FF FF FF FF FF FF FF FF	; '........'
AAD1: FF FF FF FF FF FF FF FF	; '........'
AAD9: FF FF FF FF FF FF FF FF	; '........'
AAE1: FF FF FF FF FF FF FF FF	; '........'
AAE9: FF FF FF FF FF FF FF FF	; '........'
AAF1: FF FF FF FF FF FF FF FF	; '........'
AAF9: FF FF FF FF FF FF FF FF	; '........'
AB01: FF FF FF FF FF FF FF FF	; '........'
AB09: FF FF FF FF FF FF FF FF	; '........'
AB11: FF FF FF FF FF FF FF FF	; '........'
AB19: FF FF FF FF FF FF FF FF	; '........'
AB21: FF FF FF FF FF FF FF FF	; '........'
AB29: FF FF FF FF FF FF FF FF	; '........'
AB31: FF FF FF FF FF FF FF FF	; '........'
AB39: FF FF FF FF FF FF FF FF	; '........'
AB41: FF FF FF FF FF FF FF FF	; '........'
AB49: FF FF FF FF FF FF FF FF	; '........'
AB51: FF FF FF FF FF FF FF FF	; '........'
AB59: FF FF FF FF FF FF FF FF	; '........'
AB61: FF FF FF FF FF FF FF FF	; '........'
AB69: FF FF FF FF FF FF FF FF	; '........'
AB71: FF FF FF FF FF FF FF FF	; '........'
AB79: FF FF FF FF FF FF FF FF	; '........'
AB81: FF FF FF FF FF FF FF FF	; '........'
AB89: FF FF FF FF FF FF FF FF	; '........'
AB91: FF FF FF FF FF FF FF FF	; '........'
AB99: FF FF FF FF FF FF FF FF	; '........'
ABA1: FF FF FF FF FF FF FF FF	; '........'
ABA9: FF FF FF FF FF FF FF FF	; '........'
ABB1: FF FF FF FF FF FF FF FF	; '........'
ABB9: FF FF FF FF FF FF FF FF	; '........'
ABC1: FF FF FF FF FF FF FF FF	; '........'
ABC9: FF FF FF FF FF FF FF FF	; '........'
ABD1: FF FF FF FF FF FF FF FF	; '........'
ABD9: FF FF FF FF FF FF FF FF	; '........'
ABE1: FF FF FF FF FF FF FF FF	; '........'
ABE9: FF FF FF FF FF FF FF FF	; '........'
ABF1: FF FF FF FF FF FF FF FF	; '........'
ABF9: FF FF FF FF FF FF FF FF	; '........'
AC01: FF FF FF FF FF FF FF FF	; '........'
AC09: FF FF FF FF FF FF FF FF	; '........'
AC11: FF FF FF FF FF FF FF FF	; '........'
AC19: FF FF FF FF FF FF FF FF	; '........'
AC21: FF FF FF FF FF FF FF FF	; '........'
AC29: FF FF FF FF FF FF FF FF	; '........'
AC31: FF FF FF FF FF FF FF FF	; '........'
AC39: FF FF FF FF FF FF FF FF	; '........'
AC41: FF FF FF FF FF FF FF FF	; '........'
AC49: FF FF FF FF FF FF FF FF	; '........'
AC51: FF FF FF FF FF FF FF FF	; '........'
AC59: FF FF FF FF FF FF FF FF	; '........'
AC61: FF FF FF FF FF FF FF FF	; '........'
AC69: FF FF FF FF FF FF FF FF	; '........'
AC71: FF FF FF FF FF FF FF FF	; '........'
AC79: FF FF FF FF FF FF FF FF	; '........'
AC81: FF FF FF FF FF FF FF FF	; '........'
AC89: FF FF FF FF FF FF FF FF	; '........'
AC91: FF FF FF FF FF FF FF FF	; '........'
AC99: FF FF FF FF FF FF FF FF	; '........'
ACA1: FF FF FF FF FF FF FF FF	; '........'
ACA9: FF FF FF FF FF FF FF FF	; '........'
ACB1: FF FF FF FF FF FF FF FF	; '........'
ACB9: FF FF FF FF FF FF FF FF	; '........'
ACC1: FF FF FF FF FF FF FF FF	; '........'
ACC9: FF FF FF FF FF FF FF FF	; '........'
ACD1: FF FF FF FF FF FF FF FF	; '........'
ACD9: FF FF FF FF FF FF FF FF	; '........'
ACE1: FF FF FF FF FF FF FF FF	; '........'
ACE9: FF FF FF FF FF FF FF FF	; '........'
ACF1: FF FF FF FF FF FF FF FF	; '........'
ACF9: FF FF FF FF FF FF FF FF	; '........'
AD01: FF FF FF FF FF FF FF FF	; '........'
AD09: FF FF FF FF FF FF FF FF	; '........'
AD11: FF FF FF FF FF FF FF FF	; '........'
AD19: FF FF FF FF FF FF FF FF	; '........'
AD21: FF FF FF FF FF FF FF FF	; '........'
AD29: FF FF FF FF FF FF FF FF	; '........'
AD31: FF FF FF FF FF FF FF FF	; '........'
AD39: FF FF FF FF FF FF FF FF	; '........'
AD41: FF FF FF FF FF FF FF FF	; '........'
AD49: FF FF FF FF FF FF FF FF	; '........'
AD51: FF FF FF FF FF FF FF FF	; '........'
AD59: FF FF FF FF FF FF FF FF	; '........'
AD61: FF FF FF FF FF FF FF FF	; '........'
AD69: FF FF FF FF FF FF FF FF	; '........'
AD71: FF FF FF FF FF FF FF FF	; '........'
AD79: FF FF FF FF FF FF FF FF	; '........'
AD81: FF FF FF FF FF FF FF FF	; '........'
AD89: FF FF FF FF FF FF FF FF	; '........'
AD91: FF FF FF FF FF FF FF FF	; '........'
AD99: FF FF FF FF FF FF FF FF	; '........'
ADA1: FF FF FF FF FF FF FF FF	; '........'
ADA9: FF FF FF FF FF FF FF FF	; '........'
ADB1: FF FF FF FF FF FF FF FF	; '........'
ADB9: FF FF FF FF FF FF FF FF	; '........'
ADC1: FF FF FF FF FF FF FF FF	; '........'
ADC9: FF FF FF FF FF FF FF FF	; '........'
ADD1: FF FF FF FF FF FF FF FF	; '........'
ADD9: FF FF FF FF FF FF FF FF	; '........'
ADE1: FF FF FF FF FF FF FF FF	; '........'
ADE9: FF FF FF FF FF FF FF FF	; '........'
ADF1: FF FF FF FF FF FF FF FF	; '........'
ADF9: FF FF FF FF FF FF FF FF	; '........'
AE01: FF FF FF FF FF FF FF FF	; '........'
AE09: FF FF FF FF FF FF FF FF	; '........'
AE11: FF FF FF FF FF FF FF FF	; '........'
AE19: FF FF FF FF FF FF FF FF	; '........'
AE21: FF FF FF FF FF FF FF FF	; '........'
AE29: FF FF FF FF FF FF FF FF	; '........'
AE31: FF FF FF FF FF FF      	; '......'

AE37: FF FF FF FF FF FF FF FF	; '........'
AE3F: FF FF FF FF FF FF FF FF	; '........'
AE47: FF FF FF FF FF FF FF FF	; '........'
AE4F: FF FF FF FF FF FF FF FF	; '........'
AE57: FF FF FF FF FF FF FF FF	; '........'
AE5F: FF FF FF FF            	; '....'

; Encryption key

AE63: 7B                     	; '.'

; Encrypted Message

AE64: E9 77 6A 5F 5E 5D BE 21	; '.Wj_^].!'
AE6C: 3D 24 37 3F 22 55 20 24	; '=$7?"u $'
AE74: 4A 30 27 3A 4E 2F 35 4D	; 'j0':n/5m'
AE7C: 4C 4F 40 47 46 68 69 88	; 'lo@gfhi.'
AE84: 15 1F 0C 08 1F 0F 19 69	; '.{BLUE}{UNLOCK}.{BLUE}{FLSHON}.i'
AE8C: 5F 71 96 05 13 11 74 89	; '_Q{LTRED}{WHITE}{HOME}{DOWN}T.'
AE94: 05 1E 0D 01 43 6D 98 06	; '{WHITE}{GREEN}{CR}.cm{GRAY2}.'
AE9C: 10 13 19 67 94 1C 05 75	; '.{HOME}.g{INS}{RED}{WHITE}U'
AEA4: 37 19 EE 70 70 1D F9 61	; '7..PP{RIGHT}.a'
AEAC: 66 66 79 79 73 38 39 E3	; 'ffYYS89.'
AEB4: 6F 7B 6C 78 6F 7F 69 19	; 'o.lXo.i.'
AEBC: 2F 01 E2 6E 6A 05 EC 5E	; '/..nj{WHITE}.^'
AEC4: 48 5D 15 3F DA 5C 4A 56	; 'h].?Z\jv'
AECC: 32 D9 51 4E 58 5C 51 06	; '2Yqnx\q.'
AED4: 2A CF 5A 4E 40 46 2C D3	; '*Ozn@f,S'
AEDC: 43 4D 41 4E 47 08 09 E9	; 'cmang.{TAB}.'
AEE4: 36 B0 B6 B4 DE BC AE BE	; '6.......'
AEEC: A1 DD B4 B8 B8 D2 A0 CB	; '.....R.K'
AEF4: A7 A8 A3 AA CE B9 A4 A6	; '....N...'
AEFC: AF CF ED E7            	; '.O..'

; JMP $84B4 ; Convert F.P. to Integer

AF00: 4C B4 84	JMP $84B4

; JMP $793C ; Convert Integer to F.P.

AF03: 4C 3C 79	JMP $793C	; Fixed-Float

; JMP $8E42 ; Float to Ascii

AF06: 4C 42 8E	JMP $8E42	; Float to Ascii

; JMP $8052 ; String to Float

AF09: 4C 52 80	JMP $8052	; String to Float

; JMP $8815 ; Float/Fixed

AF0C: 4C 15 88	JMP $8815	; Float/Fixed

; JMP $8C75 ; Fixed-Float

AF0F: 4C 75 8C	JMP $8C75	; Fixed-Float

; JMP $882E ; Subtract From Memory

AF12: 4C 2E 88	JMP $882E	; Subtract From Memory

; JMP $8831 ; Evaluate <subtract>

AF15: 4C 31 88	JMP $8831	; Evaluate <subtract>

; JMP $8845 ; Add Memory

AF18: 4C 45 88	JMP $8845	; Add Memory

; JMP $8848 ; Evaluate <add>

AF1B: 4C 48 88	JMP $8848	; Evaluate <add>

; JMP $8A24 ; Multiply By Memory

AF1E: 4C 24 8A	JMP $8A24	; Multiply By Memory

; JMP $8A27 ; Evaluate <multiply>

AF21: 4C 27 8A	JMP $8A27	; Evaluate <multiply>

; JMP $8B49 ; Divide Into Memory

AF24: 4C 49 8B	JMP $8B49	; Divide Into Memory

; JMP $8B4C ; Evaluate <divide>

AF27: 4C 4C 8B	JMP $8B4C	; Evaluate <divide>

; JMP $89CA ; Evaluate <log>

AF2A: 4C CA 89	JMP $89CA	; Evaluate <log>

; JMP $8CFB ; Evaluate <int>

AF2D: 4C FB 8C	JMP $8CFB	; Evaluate <int>

; JMP $8FB7 ; Evaluate <sqr>

AF30: 4C B7 8F	JMP $8FB7	; Evaluate <sqr>

; JMP $8FFA ; Evaluate <negate>

AF33: 4C FA 8F	JMP $8FFA	; Evaluate <negate>

; JMP $8FBE ; Raise to Memory Power

AF36: 4C BE 8F	JMP $8FBE	; Raise to Memory Power

; JMP $8FC1 ; Evaluate <power>

AF39: 4C C1 8F	JMP $8FC1	; Evaluate <power>

; JMP $9033 ; Evaluate <exp>

AF3C: 4C 33 90	JMP $9033	; Evaluate <exp>

; JMP $9409 ; Evaluate <cos>

AF3F: 4C 09 94	JMP $9409	; Evaluate <cos>

; JMP $9410 ; Evaluate <sin>

AF42: 4C 10 94	JMP $9410	; Evaluate <sin>

; JMP $9459 ; Evaluate <tan>

AF45: 4C 59 94	JMP $9459	; Evaluate <tan>

; JMP $94B3 ; Evaluate <atn>

AF48: 4C B3 94	JMP $94B3	; Evaluate <atn>

; JMP $8C47 ; Round FAC#1

AF4B: 4C 47 8C	JMP $8C47	; Round FAC#1

; JMP $8C84 ; Evaluate <abs>

AF4E: 4C 84 8C	JMP $8C84	; Evaluate <abs>

; JMP $8C57 ; Get Sign

AF51: 4C 57 8C	JMP $8C57	; Get Sign

; JMP $8C87 ; Compare FAC#1 to Memory

AF54: 4C 87 8C	JMP $8C87	; Compare FAC#1 to Memory

; JMP $8437 ; Generate Random F.P. Number

AF57: 4C 37 84	JMP $8437

; JMP $8AB4 ; Unpack RAM1 to FAC#2

AF5A: 4C B4 8A	JMP $8AB4	; Unpack RAM1 to FAC#2

; JMP $8A89 ; Unpack ROM to FAC#2

AF5D: 4C 89 8A	JMP $8A89	; Unpack ROM to FAC#2

; JMP $7A85 ; Unpack RAM1 to FAC#1

AF60: 4C 85 7A	JMP $7A85	; Unpack RAM1 to FAC#1

; JMP $8BD4 ; Unpack ROM to FAC#1

AF63: 4C D4 8B	JMP $8BD4	; Unpack ROM to FAC#1

; JMP $8C00 ; Pack FAC#1 to RAM1

AF66: 4C 00 8C	JMP $8C00	; Pack FAC#1 to RAM1

; JMP $8C28 ; FAC#2 to FAC#1

AF69: 4C 28 8C	JMP $8C28	; FAC#2 to FAC#1

; JMP $8C38 ; FAC#1 to FAC#2

AF6C: 4C 38 8C	JMP $8C38	; FAC#1 to FAC#2

; JMP $4828 ; Defunct Vectors

AF6F: 4C 28 48	JMP $4828	; Defunct Vectors

; JMP $9B30 ; Draw Line

AF72: 4C 30 9B	JMP $9B30	; Draw Line

; JMP $9BFB ; Plot Pixel

AF75: 4C FB 9B	JMP $9BFB	; Plot Pixel

; JMP $6750 ; Draw Circle

AF78: 4C 50 67	JMP $6750	; Draw Circle

; JMP $5A9B ; Perform [run]

AF7B: 4C 9B 5A	JMP $5A9B	; Perform [run]

; JMP $51F3 ; Set Up Run

AF7E: 4C F3 51	JMP $51F3	; Set Up Run

; JMP $51F8 ; Perform [clr]

AF81: 4C F8 51	JMP $51F8	; Perform [clr]

; JMP $51D6 ; Perform [new]

AF84: 4C D6 51	JMP $51D6	; Perform [new]

; JMP $4F4F ; Rechain Lines

AF87: 4C 4F 4F	JMP $4F4F	; Rechain Lines

; JMP $430A ; Crunch Tokens

AF8A: 4C 0A 43	JMP $430A	; Crunch Tokens

; JMP $5064 ; Find Basic Line

AF8D: 4C 64 50	JMP $5064	; Find Basic Line

; JMP $4AF6

AF90: 4C F6 4A	JMP $4AF6

; JMP $78D7 ; Evaluate Item

AF93: 4C D7 78	JMP $78D7	; Evaluate Item

; JMP $77EF ; Evaluate Expression

AF96: 4C EF 77	JMP $77EF	; Evaluate Expression

; JMP $5AA6

AF99: 4C A6 5A	JMP $5AA6

; JMP $5A81

AF9C: 4C 81 5A	JMP $5A81

; JMP $50A0 ; Get Fixed Pt Number

AF9F: 4C A0 50	JMP $50A0	; Get Fixed Pt Number

; JMP $92EA ; Garbage Collection

AFA2: 4C EA 92	JMP $92EA	; Garbage Collection

; JMP $4DCD

AFA5: 4C CD 4D	JMP $4DCD

; Unused

AFA8: FF FF FF FF FF FF FF FF	; '........'
AFB0: FF FF FF FF FF FF FF FF	; '........'
AFB8: FF FF FF FF FF FF FF FF	; '........'
AFC0: FF FF FF FF FF FF FF FF	; '........'
AFC8: FF FF FF FF FF FF FF FF	; '........'
AFD0: FF FF FF FF FF FF FF FF	; '........'
AFD8: FF FF FF FF FF FF FF FF	; '........'
AFE0: FF FF FF FF FF FF FF FF	; '........'
AFE8: FF FF FF FF FF FF FF FF	; '........'
AFF0: FF FF FF FF FF FF FF FF	; '........'
AFF8: FF FF FF FF FF FF FF FF	; '........'

; Perform [monitor]

B000: 4C 21 B0	JMP $B021	; Print 'call' entry

; -brk- monitor entry

B003: 4C 09 B0	JMP $B009	; Break Entry

; Monitor command entry

B006: 4C B2 B0	JMP $B0B2	; Monitor command

; Break Entry

B009: 20 7D FF	JSR $FF7D	; primm         Print Immediate
B00C: 0D 42 52 45 41 4B 07 00	; '{CR}break{BELL}{0}'
B014: 68	PLA
B015: 85 02	STA $02 	; Bank Number, Jump to SYS Address
B017: A2 05	LDX #$05

B019: 68	PLA
B01A: 95 03	STA $03,X	; SYS address low, MLM register PC
B01C: CA	DEX
B01D: 10 FA	BPL $B019
B01F: 30 25	BMI $B046

; Print 'call' entry

B021: A9 00	LDA #$00
B023: 8D 00 FF	STA $FF00	; MMU Configuration Register
B026: 85 06	STA $06 	; SYS and MLM register save (A)
B028: 85 07	STA $07 	; SYS and MLM register save (X)
B02A: 85 08	STA $08 	; SYS and MLM register save (Y)
B02C: 85 05	STA $05 	; SYS and MLM register save (SR)
B02E: A9 00	LDA #$00
B030: A0 B0	LDY #$B0
B032: 85 04	STA $04 	; SYS address high, MLM register PC
B034: 84 03	STY $03 	; SYS address low, MLM register PC
B036: A9 0F	LDA #$0F
B038: 85 02	STA $02 	; Bank Number, Jump to SYS Address

; Print 'monitor'

B03A: 20 7D FF	JSR $FF7D	; primm         Print Immediate
B03D: 0D 4D 4F 4E 49 54 4F 52	; '{CR}monitor'
B045: 00                     	; '{0}'

B046: D8	CLD
B047: BA	TSX
B048: 86 09	STX $09 	; SYS and MLM register save (SP)
B04A: A9 C0	LDA #$C0
B04C: 20 90 FF	JSR $FF90	; setmsg        Control OS Messages
B04F: 58	CLI

; Perform [r]

B050: 20 7D FF	JSR $FF7D	; primm         Print Immediate
B053: 0D 20 20 20 20 50 43 20	; '{CR}    pc '
B05B: 20 53 52 20 41 43 20 58	; ' sr ac x'
B063: 52 20 59 52 20 53 50 0D	; 'r yr sp{CR}'
B06B: 3B 20 1B 51 00         	; '; {ESC}q{0}'
B070: A5 02	LDA $02 	; Bank Number, Jump to SYS Address
B072: 20 D2 B8	JSR $B8D2	; Byte to 2 Ascii
B075: 8A	TXA
B076: 20 D2 FF	JSR $FFD2	; (ibsout)      Output Vector, chrout [EF79]
B079: A5 03	LDA $03 	; SYS address low, MLM register PC
B07B: 20 C2 B8	JSR $B8C2	; Output 2-Digit Byte
B07E: A0 02	LDY #$02

B080: B9 02 00	LDA $02,Y	; Bank Number, Jump to SYS Address
B083: 20 A5 B8	JSR $B8A5	; Display 2-digit Byte
B086: C8	INY
B087: C0 08	CPY #$08
B089: 90 F5	BCC $B080

; Get Command

B08B: 20 B4 B8	JSR $B8B4	; New Line
B08E: A2 00	LDX #$00
B090: 86 7A	STX $7A

B092: 20 CF FF	JSR $FFCF	; (ibasin)      Input Vector, chrin [EF06]
B095: 9D 00 02	STA $0200,X
B098: E8	INX
B099: E0 A1	CPX #$A1
B09B: B0 1F	BCS $B0BC	; Error
B09D: C9 0D	CMP #$0D
B09F: D0 F1	BNE $B092
B0A1: A9 00	LDA #$00
B0A3: 9D FF 01	STA $01FF,X

B0A6: 20 E9 B8	JSR $B8E9	; Get Character
B0A9: F0 E0	BEQ $B08B	; Get Command
B0AB: C9 20	CMP #$20
B0AD: F0 F7	BEQ $B0A6
B0AF: 6C 2E 03	JMP ($032E)	; Machine Lang Monitor Link [B006]

; Monitor command

B0B2: A2 15	LDX #$15

B0B4: DD E6 B0	CMP $B0E6,X	; Commands
B0B7: F0 0C	BEQ $B0C5
B0B9: CA	DEX
B0BA: 10 F8	BPL $B0B4

; Error

B0BC: 20 7D FF	JSR $FF7D	; primm         Print Immediate
B0BF: 1D 3F 00               	; '{RIGHT}?{0}'
B0C2: 4C 8B B0	JMP $B08B	; Get Command

B0C5: E0 13	CPX #$13
B0C7: B0 12	BCS $B0DB
B0C9: E0 0F	CPX #$0F
B0CB: B0 13	BCS $B0E0
B0CD: 8A	TXA
B0CE: 0A	ASL A
B0CF: AA	TAX
B0D0: BD FD B0	LDA $B0FD,X
B0D3: 48	PHA
B0D4: BD FC B0	LDA $B0FC,X	; Vectors
B0D7: 48	PHA
B0D8: 4C A7 B7	JMP $B7A7

B0DB: 85 93	STA $93 	; Work value, monitor, LOAD / SAVE 0 = LOAD, 1 = VERIFY
B0DD: 4C 37 B3	JMP $B337	; Perform [lsv]

B0E0: 4C B1 B9	JMP $B9B1	; Perform [$+&%]

; Perform [x]

B0E3: 6C 00 0A	JMP ($0A00)	; Restart System (BASIC Warm) [4000]

; Commands

B0E6: 41 43 44 46 47 48 4A 4D	; 'acdfghjm'
B0EE: 52 54 58 40 2E 3E 3B   	; 'rtx@.>;'

B0F5: 24 2B 26 25 4C 53 56   	; '$+&%lsv'

; Vectors

B0FC: 05 B4	.WORD $B406-1	; Perform [a]
B0FE: 30 B2	.WORD $B231-1	; Perform [c]
B100: 98 B5	.WORD $B599-1	; Perform [d]
B102: DA B3	.WORD $B3DB-1	; Perform [f]
B104: D5 B1	.WORD $B1D6-1	; Perform [g]
B106: CD B2	.WORD $B2CE-1	; Perform [h]
B108: DE B1	.WORD $B1DF-1	; Perform [j]
B10A: 51 B1	.WORD $B152-1	; Perform [m]
B10C: 4F B0	.WORD $B050-1	; Perform [r]
B10E: 33 B2	.WORD $B234-1	; Perform [t]
B110: E2 B0	.WORD $B0E3-1	; Perform [x]
B112: 8F BA	.WORD $BA90-1	; Perform [@]
B114: 05 B4	.WORD $B406-1	; Perform [a]
B116: AA B1	.WORD $B1AB-1	; Perform [>]
B118: 93 B1	.WORD $B194-1	; Perform [:]

; Read Banked Memory

B11A: 8E B2 0A	STX $0AB2
B11D: A6 68	LDX $68
B11F: A9 66	LDA #$66
B121: 78	SEI
B122: 20 74 FF	JSR $FF74	; indfet        Bank LDA (fetchvec),y
B125: 58	CLI
B126: AE B2 0A	LDX $0AB2
B129: 60	RTS

; Write Banked Memory

B12A: 8E B2 0A	STX $0AB2
B12D: A2 66	LDX #$66
B12F: 8E B9 02	STX $02B9
B132: A6 68	LDX $68
B134: 78	SEI
B135: 20 77 FF	JSR $FF77	; indsta        Bank STA (stavec),y
B138: 58	CLI
B139: AE B2 0A	LDX $0AB2
B13C: 60	RTS

; Compare Banked Memory

B13D: 8E B2 0A	STX $0AB2
B140: A2 66	LDX #$66
B142: 8E C8 02	STX $02C8
B145: A6 68	LDX $68
B147: 78	SEI
B148: 20 7A FF	JSR $FF7A	; indcmp        Bank CMP (cmpvec),y
B14B: 58	CLI
B14C: 08	PHP
B14D: AE B2 0A	LDX $0AB2
B150: 28	PLP
B151: 60	RTS

; Perform [m]

B152: B0 08	BCS $B15C
B154: 20 01 B9	JSR $B901	; Copy Add0 to Add2
B157: 20 A7 B7	JSR $B7A7
B15A: 90 06	BCC $B162

B15C: A9 0B	LDA #$0B
B15E: 85 60	STA $60
B160: D0 15	BNE $B177

B162: 20 0E B9	JSR $B90E	; Calculate Add2 - Add0
B165: 90 2A	BCC $B191
B167: A2 03	LDX #$03
B169: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
B16B: 10 01	BPL $B16E
B16D: E8	INX

B16E: 46 62	LSR $62
B170: 66 61	ROR $61
B172: 66 60	ROR $60
B174: CA	DEX
B175: D0 F7	BNE $B16E

B177: 20 E1 FF	JSR $FFE1	; (istop)       Test-Stop Vector [F66E]
B17A: F0 12	BEQ $B18E
B17C: 20 E8 B1	JSR $B1E8	; Display Memory
B17F: A9 08	LDA #$08
B181: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
B183: 10 01	BPL $B186
B185: 0A	ASL A

B186: 20 52 B9	JSR $B952
B189: 20 22 B9	JSR $B922	; Subtract Add0
B18C: B0 E9	BCS $B177

B18E: 4C 8B B0	JMP $B08B	; Get Command

B191: 4C BC B0	JMP $B0BC	; Error

; Perform [:]

B194: 20 74 B9	JSR $B974	; Copy to Register Area
B197: A0 00	LDY #$00

B199: 20 A7 B7	JSR $B7A7
B19C: B0 0A	BCS $B1A8
B19E: A5 60	LDA $60
B1A0: 99 05 00	STA $05,Y	; SYS and MLM register save (SR)
B1A3: C8	INY
B1A4: C0 05	CPY #$05
B1A6: 90 F1	BCC $B199

B1A8: 4C 8B B0	JMP $B08B	; Get Command

; Perform [>]

B1AB: B0 1C	BCS $B1C9	; Print 'esc-o-up'
B1AD: 20 01 B9	JSR $B901	; Copy Add0 to Add2
B1B0: A0 00	LDY #$00

B1B2: 20 A7 B7	JSR $B7A7
B1B5: B0 12	BCS $B1C9	; Print 'esc-o-up'
B1B7: A5 60	LDA $60
B1B9: 20 2A B1	JSR $B12A	; Write Banked Memory
B1BC: C8	INY
B1BD: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
B1BF: 10 04	BPL $B1C5
B1C1: C0 10	CPY #$10
B1C3: 90 ED	BCC $B1B2

B1C5: C0 08	CPY #$08
B1C7: 90 E9	BCC $B1B2

; Print 'esc-o-up'

B1C9: 20 7D FF	JSR $FF7D	; primm         Print Immediate
B1CC: 1B 4F 91 00            	; '{ESC}o{UP}{0}'
B1D0: 20 E8 B1	JSR $B1E8	; Display Memory
B1D3: 4C 8B B0	JMP $B08B	; Get Command

; Perform [g]

B1D6: 20 74 B9	JSR $B974	; Copy to Register Area
B1D9: A6 09	LDX $09 	; SYS and MLM register save (SP)
B1DB: 9A	TXS
B1DC: 4C 71 FF	JMP $FF71	; jmpfar

; Perform [j]

B1DF: 20 74 B9	JSR $B974	; Copy to Register Area
B1E2: 20 6E FF	JSR $FF6E	; jsrfar
B1E5: 4C 8B B0	JMP $B08B	; Get Command

; Display Memory

B1E8: 20 B4 B8	JSR $B8B4	; New Line
B1EB: A9 3E	LDA #$3E
B1ED: 20 D2 FF	JSR $FFD2	; (ibsout)      Output Vector, chrout [EF79]
B1F0: 20 92 B8	JSR $B892	; Display 5-Digit Address
B1F3: A0 00	LDY #$00
B1F5: F0 03	BEQ $B1FA

B1F7: 20 A8 B8	JSR $B8A8	; Print Space

B1FA: 20 1A B1	JSR $B11A	; Read Banked Memory
B1FD: 20 C2 B8	JSR $B8C2	; Output 2-Digit Byte
B200: C8	INY
B201: C0 08	CPY #$08
B203: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
B205: 10 02	BPL $B209
B207: C0 10	CPY #$10

B209: 90 EC	BCC $B1F7

; Print ':<rvs-on>'

B20B: 20 7D FF	JSR $FF7D	; primm         Print Immediate
B20E: 3A 12 00               	; ':{RVSON}{0}'
B211: A0 00	LDY #$00

B213: 20 1A B1	JSR $B11A	; Read Banked Memory
B216: 48	PHA
B217: 29 7F	AND #$7F
B219: C9 20	CMP #$20
B21B: 68	PLA
B21C: B0 02	BCS $B220
B21E: A9 2E	LDA #$2E

B220: 20 D2 FF	JSR $FFD2	; (ibsout)      Output Vector, chrout [EF79]
B223: C8	INY
B224: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
B226: 10 04	BPL $B22C
B228: C0 10	CPY #$10
B22A: 90 E7	BCC $B213

B22C: C0 08	CPY #$08
B22E: 90 E3	BCC $B213
B230: 60	RTS

; Perform [c]

B231: A9 00	LDA #$00
B233: 2C	.BYTE $2C

; Perform [t]

B234: A9 80	LDA #$80
B236: 85 93	STA $93 	; Work value, monitor, LOAD / SAVE 0 = LOAD, 1 = VERIFY
B238: A9 00	LDA #$00
B23A: 8D B3 0A	STA $0AB3
B23D: 20 83 B9	JSR $B983	; Calculate Step/Area
B240: B0 05	BCS $B247
B242: 20 A7 B7	JSR $B7A7
B245: 90 03	BCC $B24A

B247: 4C BC B0	JMP $B0BC	; Error

B24A: 24 93	BIT $93 	; Work value, monitor, LOAD / SAVE 0 = LOAD, 1 = VERIFY
B24C: 10 2C	BPL $B27A
B24E: 38	SEC
B24F: A5 66	LDA $66
B251: E5 60	SBC $60
B253: A5 67	LDA $67
B255: E5 61	SBC $61
B257: B0 21	BCS $B27A
B259: A5 63	LDA $63
B25B: 65 60	ADC $60
B25D: 85 60	STA $60
B25F: A5 64	LDA $64
B261: 65 61	ADC $61
B263: 85 61	STA $61
B265: A5 65	LDA $65
B267: 65 62	ADC $62
B269: 85 62	STA $62
B26B: A2 02	LDX #$02

B26D: BD B7 0A	LDA $0AB7,X
B270: 95 66	STA $66,X
B272: CA	DEX
B273: 10 F8	BPL $B26D
B275: A9 80	LDA #$80
B277: 8D B3 0A	STA $0AB3

B27A: 20 B4 B8	JSR $B8B4	; New Line
B27D: A0 00	LDY #$00

B27F: 20 E1 FF	JSR $FFE1	; (istop)       Test-Stop Vector [F66E]
B282: F0 47	BEQ $B2CB
B284: 20 1A B1	JSR $B11A	; Read Banked Memory
B287: A2 60	LDX #$60
B289: 8E B9 02	STX $02B9
B28C: 8E C8 02	STX $02C8
B28F: A6 62	LDX $62
B291: 78	SEI
B292: 24 93	BIT $93 	; Work value, monitor, LOAD / SAVE 0 = LOAD, 1 = VERIFY
B294: 10 03	BPL $B299
B296: 20 77 FF	JSR $FF77	; indsta        Bank STA (stavec),y

B299: A6 62	LDX $62
B29B: 20 7A FF	JSR $FF7A	; indcmp        Bank CMP (cmpvec),y
B29E: 58	CLI
B29F: F0 09	BEQ $B2AA
B2A1: 20 92 B8	JSR $B892	; Display 5-Digit Address
B2A4: 20 A8 B8	JSR $B8A8	; Print Space
B2A7: 20 A8 B8	JSR $B8A8	; Print Space

B2AA: 2C B3 0A	BIT $0AB3
B2AD: 30 0B	BMI $B2BA
B2AF: E6 60	INC $60
B2B1: D0 10	BNE $B2C3	; Add 1 to Op 3
B2B3: E6 61	INC $61
B2B5: D0 0C	BNE $B2C3	; Add 1 to Op 3
B2B7: 4C BC B0	JMP $B0BC	; Error

B2BA: 20 22 B9	JSR $B922	; Subtract Add0
B2BD: 20 60 B9	JSR $B960	; Decrement Pointer
B2C0: 4C C6 B2	JMP $B2C6	; Do Next Address

; Add 1 to Op 3

B2C3: 20 50 B9	JSR $B950	; Increment Pointer

; Do Next Address

B2C6: 20 3C B9	JSR $B93C	; Subtract Add1
B2C9: B0 B4	BCS $B27F

B2CB: 4C 8B B0	JMP $B08B	; Get Command

; Perform [h]

B2CE: 20 83 B9	JSR $B983	; Calculate Step/Area
B2D1: B0 61	BCS $B334
B2D3: A0 00	LDY #$00
B2D5: 20 E9 B8	JSR $B8E9	; Get Character
B2D8: C9 27	CMP #$27
B2DA: D0 16	BNE $B2F2
B2DC: 20 E9 B8	JSR $B8E9	; Get Character
B2DF: C9 00	CMP #$00
B2E1: F0 51	BEQ $B334

B2E3: 99 80 0A	STA $0A80,Y
B2E6: C8	INY
B2E7: 20 E9 B8	JSR $B8E9	; Get Character
B2EA: F0 1B	BEQ $B307
B2EC: C0 20	CPY #$20
B2EE: D0 F3	BNE $B2E3
B2F0: F0 15	BEQ $B307

B2F2: 8C 00 01	STY $0100
B2F5: 20 A5 B7	JSR $B7A5	; Input Parameter

B2F8: A5 60	LDA $60
B2FA: 99 80 0A	STA $0A80,Y
B2FD: C8	INY
B2FE: 20 A7 B7	JSR $B7A7
B301: B0 04	BCS $B307
B303: C0 20	CPY #$20
B305: D0 F1	BNE $B2F8

B307: 84 93	STY $93 	; Work value, monitor, LOAD / SAVE 0 = LOAD, 1 = VERIFY
B309: 20 B4 B8	JSR $B8B4	; New Line

B30C: A0 00	LDY #$00

B30E: 20 1A B1	JSR $B11A	; Read Banked Memory
B311: D9 80 0A	CMP $0A80,Y
B314: D0 0E	BNE $B324
B316: C8	INY
B317: C4 93	CPY $93 	; Work value, monitor, LOAD / SAVE 0 = LOAD, 1 = VERIFY
B319: D0 F3	BNE $B30E
B31B: 20 92 B8	JSR $B892	; Display 5-Digit Address
B31E: 20 A8 B8	JSR $B8A8	; Print Space
B321: 20 A8 B8	JSR $B8A8	; Print Space

B324: 20 E1 FF	JSR $FFE1	; (istop)       Test-Stop Vector [F66E]
B327: F0 08	BEQ $B331
B329: 20 50 B9	JSR $B950	; Increment Pointer
B32C: 20 3C B9	JSR $B93C	; Subtract Add1
B32F: B0 DB	BCS $B30C

B331: 4C 8B B0	JMP $B08B	; Get Command

B334: 4C BC B0	JMP $B0BC	; Error

; Perform [lsv]

B337: A0 01	LDY #$01
B339: 84 BA	STY $BA 	; Current device
B33B: 84 B9	STY $B9 	; Current secondary address
B33D: 88	DEY
B33E: 84 C6	STY $C6
B340: 84 B7	STY $B7 	; Number of characters in file name
B342: 84 C7	STY $C7
B344: 84 90	STY $90 	; Status word ST
B346: A9 0A	LDA #$0A
B348: 85 BC	STA $BC
B34A: A9 80	LDA #$80
B34C: 85 BB	STA $BB 	; Pointer to file name

B34E: 20 E9 B8	JSR $B8E9	; Get Character
B351: F0 58	BEQ $B3AB
B353: C9 20	CMP #$20
B355: F0 F7	BEQ $B34E
B357: C9 22	CMP #$22
B359: D0 15	BNE $B370
B35B: A6 7A	LDX $7A

B35D: BD 00 02	LDA $0200,X
B360: F0 49	BEQ $B3AB
B362: E8	INX
B363: C9 22	CMP #$22
B365: F0 0C	BEQ $B373
B367: 91 BB	STA ($BB),Y	; Pointer to file name
B369: E6 B7	INC $B7 	; Number of characters in file name
B36B: C8	INY
B36C: C0 11	CPY #$11
B36E: 90 ED	BCC $B35D

B370: 4C BC B0	JMP $B0BC	; Error

B373: 86 7A	STX $7A
B375: 20 E9 B8	JSR $B8E9	; Get Character
B378: F0 31	BEQ $B3AB
B37A: 20 A7 B7	JSR $B7A7
B37D: B0 2C	BCS $B3AB
B37F: A5 60	LDA $60
B381: 85 BA	STA $BA 	; Current device
B383: 20 A7 B7	JSR $B7A7
B386: B0 23	BCS $B3AB
B388: 20 01 B9	JSR $B901	; Copy Add0 to Add2
B38B: 85 C6	STA $C6
B38D: 20 A7 B7	JSR $B7A7
B390: B0 3F	BCS $B3D1
B392: 20 B4 B8	JSR $B8B4	; New Line
B395: A6 60	LDX $60
B397: A4 61	LDY $61
B399: A5 93	LDA $93 	; Work value, monitor, LOAD / SAVE 0 = LOAD, 1 = VERIFY
B39B: C9 53	CMP #$53
B39D: D0 D1	BNE $B370
B39F: A9 00	LDA #$00
B3A1: 85 B9	STA $B9 	; Current secondary address
B3A3: A9 66	LDA #$66
B3A5: 20 D8 FF	JSR $FFD8	; savesp        Save RAM To Device

B3A8: 4C 8B B0	JMP $B08B	; Get Command

B3AB: A5 93	LDA $93 	; Work value, monitor, LOAD / SAVE 0 = LOAD, 1 = VERIFY
B3AD: C9 56	CMP #$56
B3AF: F0 06	BEQ $B3B7
B3B1: C9 4C	CMP #$4C
B3B3: D0 BB	BNE $B370
B3B5: A9 00	LDA #$00

B3B7: 20 D5 FF	JSR $FFD5	; loadsp        Load RAM From Device
B3BA: A5 90	LDA $90 	; Status word ST
B3BC: 29 10	AND #$10
B3BE: F0 E8	BEQ $B3A8
B3C0: A5 93	LDA $93 	; Work value, monitor, LOAD / SAVE 0 = LOAD, 1 = VERIFY
B3C2: F0 AC	BEQ $B370

; Print 'error'

B3C4: 20 7D FF	JSR $FF7D	; primm         Print Immediate
B3C7: 20 45 52 52 4F 52 00   	; ' error{0}'
B3CE: 4C 8B B0	JMP $B08B	; Get Command

B3D1: A6 66	LDX $66
B3D3: A4 67	LDY $67
B3D5: A9 00	LDA #$00
B3D7: 85 B9	STA $B9 	; Current secondary address
B3D9: F0 D0	BEQ $B3AB

; Perform [f]

B3DB: 20 83 B9	JSR $B983	; Calculate Step/Area
B3DE: B0 23	BCS $B403
B3E0: A5 68	LDA $68
B3E2: CD B9 0A	CMP $0AB9
B3E5: D0 1C	BNE $B403
B3E7: 20 A7 B7	JSR $B7A7
B3EA: B0 17	BCS $B403
B3EC: A0 00	LDY #$00

B3EE: A5 60	LDA $60
B3F0: 20 2A B1	JSR $B12A	; Write Banked Memory
B3F3: 20 E1 FF	JSR $FFE1	; (istop)       Test-Stop Vector [F66E]
B3F6: F0 08	BEQ $B400
B3F8: 20 50 B9	JSR $B950	; Increment Pointer
B3FB: 20 3C B9	JSR $B93C	; Subtract Add1
B3FE: B0 EE	BCS $B3EE

B400: 4C 8B B0	JMP $B08B	; Get Command

B403: 4C BC B0	JMP $B0BC	; Error

; Perform [a]

B406: B0 3A	BCS $B442
B408: 20 01 B9	JSR $B901	; Copy Add0 to Add2

B40B: A2 00	LDX #$00
B40D: 8E A1 0A	STX $0AA1
B410: 8E B4 0A	STX $0AB4

B413: 20 E9 B8	JSR $B8E9	; Get Character
B416: D0 07	BNE $B41F
B418: E0 00	CPX #$00
B41A: D0 03	BNE $B41F
B41C: 4C 8B B0	JMP $B08B	; Get Command

B41F: C9 20	CMP #$20
B421: F0 E8	BEQ $B40B
B423: 9D AC 0A	STA $0AAC,X
B426: E8	INX
B427: E0 03	CPX #$03
B429: D0 E8	BNE $B413

B42B: CA	DEX
B42C: 30 17	BMI $B445
B42E: BD AC 0A	LDA $0AAC,X
B431: 38	SEC
B432: E9 3F	SBC #$3F
B434: A0 05	LDY #$05

B436: 4A	LSR A
B437: 6E A1 0A	ROR $0AA1
B43A: 6E A0 0A	ROR $0AA0
B43D: 88	DEY
B43E: D0 F6	BNE $B436
B440: F0 E9	BEQ $B42B

B442: 4C BC B0	JMP $B0BC	; Error

B445: A2 02	LDX #$02

B447: AD B4 0A	LDA $0AB4
B44A: D0 30	BNE $B47C
B44C: 20 CE B7	JSR $B7CE	; Read Value
B44F: F0 29	BEQ $B47A
B451: B0 EF	BCS $B442
B453: A9 24	LDA #$24
B455: 9D A0 0A	STA $0AA0,X
B458: E8	INX
B459: A5 62	LDA $62
B45B: D0 E5	BNE $B442
B45D: A0 04	LDY #$04
B45F: AD B6 0A	LDA $0AB6
B462: C9 08	CMP #$08
B464: 90 05	BCC $B46B
B466: CC B4 0A	CPY $0AB4
B469: F0 06	BEQ $B471

B46B: A5 61	LDA $61
B46D: D0 02	BNE $B471
B46F: A0 02	LDY #$02

B471: A9 30	LDA #$30

B473: 9D A0 0A	STA $0AA0,X
B476: E8	INX
B477: 88	DEY
B478: D0 F9	BNE $B473

B47A: C6 7A	DEC $7A

B47C: 20 E9 B8	JSR $B8E9	; Get Character
B47F: F0 0E	BEQ $B48F
B481: C9 20	CMP #$20
B483: F0 C2	BEQ $B447
B485: 9D A0 0A	STA $0AA0,X
B488: E8	INX
B489: E0 0A	CPX #$0A
B48B: 90 BA	BCC $B447
B48D: B0 B3	BCS $B442

B48F: 86 63	STX $63
B491: A2 00	LDX #$00
B493: 8E B1 0A	STX $0AB1

B496: A2 00	LDX #$00
B498: 86 9F	STX $9F
B49A: AD B1 0A	LDA $0AB1
B49D: 20 59 B6	JSR $B659	; Classify Op Code
B4A0: AE AA 0A	LDX $0AAA
B4A3: 86 64	STX $64
B4A5: AA	TAX
B4A6: BD 61 B7	LDA $B761,X
B4A9: 20 7F B5	JSR $B57F	; Check A-Match
B4AC: BD 21 B7	LDA $B721,X	; Compacted Mnemonics
B4AF: 20 7F B5	JSR $B57F	; Check A-Match
B4B2: A2 06	LDX #$06

B4B4: E0 03	CPX #$03
B4B6: D0 14	BNE $B4CC
B4B8: AC AB 0A	LDY $0AAB
B4BB: F0 0F	BEQ $B4CC

B4BD: AD AA 0A	LDA $0AAA
B4C0: C9 E8	CMP #$E8
B4C2: A9 30	LDA #$30
B4C4: B0 1E	BCS $B4E4
B4C6: 20 7C B5	JSR $B57C	; Check 2 A-Matches
B4C9: 88	DEY
B4CA: D0 F1	BNE $B4BD

B4CC: 0E AA 0A	ASL $0AAA
B4CF: 90 0E	BCC $B4DF
B4D1: BD 14 B7	LDA $B714,X
B4D4: 20 7F B5	JSR $B57F	; Check A-Match
B4D7: BD 1A B7	LDA $B71A,X
B4DA: F0 03	BEQ $B4DF
B4DC: 20 7F B5	JSR $B57F	; Check A-Match

B4DF: CA	DEX
B4E0: D0 D2	BNE $B4B4
B4E2: F0 06	BEQ $B4EA

B4E4: 20 7C B5	JSR $B57C	; Check 2 A-Matches
B4E7: 20 7C B5	JSR $B57C	; Check 2 A-Matches

B4EA: A5 63	LDA $63
B4EC: C5 9F	CMP $9F
B4EE: F0 03	BEQ $B4F3
B4F0: 4C 8B B5	JMP $B58B	; Try Next Op Code

B4F3: AC AB 0A	LDY $0AAB
B4F6: F0 32	BEQ $B52A
B4F8: A5 64	LDA $64
B4FA: C9 9D	CMP #$9D
B4FC: D0 23	BNE $B521
B4FE: A5 60	LDA $60
B500: E5 66	SBC $66
B502: AA	TAX
B503: A5 61	LDA $61
B505: E5 67	SBC $67
B507: 90 08	BCC $B511
B509: D0 6E	BNE $B579
B50B: E0 82	CPX #$82
B50D: B0 6A	BCS $B579
B50F: 90 08	BCC $B519

B511: A8	TAY
B512: C8	INY
B513: D0 64	BNE $B579
B515: E0 82	CPX #$82
B517: 90 60	BCC $B579

B519: CA	DEX
B51A: CA	DEX
B51B: 8A	TXA
B51C: AC AB 0A	LDY $0AAB
B51F: D0 03	BNE $B524

B521: B9 5F 00	LDA $5F,Y

B524: 20 2A B1	JSR $B12A	; Write Banked Memory
B527: 88	DEY
B528: D0 F7	BNE $B521

B52A: AD B1 0A	LDA $0AB1
B52D: 20 2A B1	JSR $B12A	; Write Banked Memory
B530: 20 AD B8	JSR $B8AD	; Print Cursor-Up

; Print 'space<esc-q>'

B533: 20 7D FF	JSR $FF7D	; primm         Print Immediate
B536: 41 20 1B 51 00         	; 'a {ESC}q{0}'
B53B: 20 DC B5	JSR $B5DC
B53E: EE AB 0A	INC $0AAB
B541: AD AB 0A	LDA $0AAB
B544: 20 52 B9	JSR $B952
B547: A9 41	LDA #$41
B549: 8D 4A 03	STA $034A	; IRQ Keyboard Buffer (10 Bytes)
B54C: A9 20	LDA #$20
B54E: 8D 4B 03	STA $034B
B551: 8D 51 03	STA $0351
B554: A5 68	LDA $68
B556: 20 D2 B8	JSR $B8D2	; Byte to 2 Ascii
B559: 8E 4C 03	STX $034C
B55C: A5 67	LDA $67
B55E: 20 D2 B8	JSR $B8D2	; Byte to 2 Ascii
B561: 8D 4D 03	STA $034D
B564: 8E 4E 03	STX $034E
B567: A5 66	LDA $66
B569: 20 D2 B8	JSR $B8D2	; Byte to 2 Ascii
B56C: 8D 4F 03	STA $034F
B56F: 8E 50 03	STX $0350
B572: A9 08	LDA #$08
B574: 85 D0	STA $D0 	; Number of characters in keyboard buffer
B576: 4C 8B B0	JMP $B08B	; Get Command

B579: 4C BC B0	JMP $B0BC	; Error

; Check 2 A-Matches

B57C: 20 7F B5	JSR $B57F	; Check A-Match

; Check A-Match

B57F: 8E AF 0A	STX $0AAF
B582: A6 9F	LDX $9F
B584: DD A0 0A	CMP $0AA0,X
B587: F0 0A	BEQ $B593
B589: 68	PLA
B58A: 68	PLA

; Try Next Op Code

B58B: EE B1 0A	INC $0AB1
B58E: F0 E9	BEQ $B579
B590: 4C 96 B4	JMP $B496

B593: E6 9F	INC $9F
B595: AE AF 0A	LDX $0AAF
B598: 60	RTS

; Perform [d]

B599: B0 08	BCS $B5A3
B59B: 20 01 B9	JSR $B901	; Copy Add0 to Add2
B59E: 20 A7 B7	JSR $B7A7
B5A1: 90 06	BCC $B5A9

B5A3: A9 14	LDA #$14
B5A5: 85 60	STA $60
B5A7: D0 05	BNE $B5AE	; Print '<cr><esc-q>'

B5A9: 20 0E B9	JSR $B90E	; Calculate Add2 - Add0
B5AC: 90 23	BCC $B5D1

; Print '<cr><esc-q>'

B5AE: 20 7D FF	JSR $FF7D	; primm         Print Immediate
B5B1: 0D 1B 51 00            	; '{CR}{ESC}q{0}'
B5B5: 20 E1 FF	JSR $FFE1	; (istop)       Test-Stop Vector [F66E]
B5B8: F0 14	BEQ $B5CE
B5BA: 20 D4 B5	JSR $B5D4	; Display Instruction
B5BD: EE AB 0A	INC $0AAB
B5C0: AD AB 0A	LDA $0AAB
B5C3: 20 52 B9	JSR $B952
B5C6: AD AB 0A	LDA $0AAB
B5C9: 20 24 B9	JSR $B924
B5CC: B0 E0	BCS $B5AE	; Print '<cr><esc-q>'

B5CE: 4C 8B B0	JMP $B08B	; Get Command

B5D1: 4C BC B0	JMP $B0BC	; Error

; Display Instruction

B5D4: A9 2E	LDA #$2E
B5D6: 20 D2 FF	JSR $FFD2	; (ibsout)      Output Vector, chrout [EF79]
B5D9: 20 A8 B8	JSR $B8A8	; Print Space

B5DC: 20 92 B8	JSR $B892	; Display 5-Digit Address
B5DF: 20 A8 B8	JSR $B8A8	; Print Space
B5E2: A0 00	LDY #$00
B5E4: 20 1A B1	JSR $B11A	; Read Banked Memory
B5E7: 20 59 B6	JSR $B659	; Classify Op Code
B5EA: 48	PHA
B5EB: AE AB 0A	LDX $0AAB
B5EE: E8	INX

B5EF: CA	DEX
B5F0: 10 0A	BPL $B5FC

; Print '<3 spaces>'

B5F2: 20 7D FF	JSR $FF7D	; primm         Print Immediate
B5F5: 20 20 20 00            	; '   {0}'
B5F9: 4C 02 B6	JMP $B602

B5FC: 20 1A B1	JSR $B11A	; Read Banked Memory
B5FF: 20 A5 B8	JSR $B8A5	; Display 2-digit Byte

B602: C8	INY
B603: C0 03	CPY #$03
B605: 90 E8	BCC $B5EF
B607: 68	PLA
B608: A2 03	LDX #$03
B60A: 20 A1 B6	JSR $B6A1	; Get Mnemonic Char
B60D: A2 06	LDX #$06

B60F: E0 03	CPX #$03
B611: D0 17	BNE $B62A
B613: AC AB 0A	LDY $0AAB
B616: F0 12	BEQ $B62A

B618: AD AA 0A	LDA $0AAA
B61B: C9 E8	CMP #$E8
B61D: 08	PHP
B61E: 20 1A B1	JSR $B11A	; Read Banked Memory
B621: 28	PLP
B622: B0 1D	BCS $B641
B624: 20 C2 B8	JSR $B8C2	; Output 2-Digit Byte
B627: 88	DEY
B628: D0 EE	BNE $B618

B62A: 0E AA 0A	ASL $0AAA
B62D: 90 0E	BCC $B63D
B62F: BD 14 B7	LDA $B714,X
B632: 20 D2 FF	JSR $FFD2	; (ibsout)      Output Vector, chrout [EF79]
B635: BD 1A B7	LDA $B71A,X
B638: F0 03	BEQ $B63D
B63A: 20 D2 FF	JSR $FFD2	; (ibsout)      Output Vector, chrout [EF79]

B63D: CA	DEX
B63E: D0 CF	BNE $B60F
B640: 60	RTS

B641: 20 4D B6	JSR $B64D	; ?
B644: 18	CLC
B645: 69 01	ADC #$01
B647: D0 01	BNE $B64A
B649: E8	INX

B64A: 4C 9F B8	JMP $B89F

; ?

B64D: A6 67	LDX $67
B64F: A8	TAY
B650: 10 01	BPL $B653
B652: CA	DEX

B653: 65 66	ADC $66
B655: 90 01	BCC $B658
B657: E8	INX

B658: 60	RTS

; Classify Op Code

B659: A8	TAY
B65A: 4A	LSR A
B65B: 90 0B	BCC $B668
B65D: 4A	LSR A
B65E: B0 17	BCS $B677
B660: C9 22	CMP #$22
B662: F0 13	BEQ $B677
B664: 29 07	AND #$07
B666: 09 80	ORA #$80

B668: 4A	LSR A
B669: AA	TAX
B66A: BD C3 B6	LDA $B6C3,X	; Mode Tables
B66D: B0 04	BCS $B673
B66F: 4A	LSR A
B670: 4A	LSR A
B671: 4A	LSR A
B672: 4A	LSR A

B673: 29 0F	AND #$0F
B675: D0 04	BNE $B67B

B677: A0 80	LDY #$80
B679: A9 00	LDA #$00

B67B: AA	TAX
B67C: BD 07 B7	LDA $B707,X
B67F: 8D AA 0A	STA $0AAA
B682: 29 03	AND #$03
B684: 8D AB 0A	STA $0AAB
B687: 98	TYA
B688: 29 8F	AND #$8F
B68A: AA	TAX
B68B: 98	TYA
B68C: A0 03	LDY #$03
B68E: E0 8A	CPX #$8A
B690: F0 0B	BEQ $B69D

B692: 4A	LSR A
B693: 90 08	BCC $B69D
B695: 4A	LSR A

B696: 4A	LSR A
B697: 09 20	ORA #$20
B699: 88	DEY
B69A: D0 FA	BNE $B696
B69C: C8	INY

B69D: 88	DEY
B69E: D0 F2	BNE $B692
B6A0: 60	RTS

; Get Mnemonic Char

B6A1: A8	TAY
B6A2: B9 21 B7	LDA $B721,Y	; Compacted Mnemonics
B6A5: 85 63	STA $63
B6A7: B9 61 B7	LDA $B761,Y
B6AA: 85 64	STA $64

B6AC: A9 00	LDA #$00
B6AE: A0 05	LDY #$05

B6B0: 06 64	ASL $64
B6B2: 26 63	ROL $63
B6B4: 2A	ROL A
B6B5: 88	DEY
B6B6: D0 F8	BNE $B6B0
B6B8: 69 3F	ADC #$3F
B6BA: 20 D2 FF	JSR $FFD2	; (ibsout)      Output Vector, chrout [EF79]
B6BD: CA	DEX
B6BE: D0 EC	BNE $B6AC
B6C0: 4C A8 B8	JMP $B8A8	; Print Space

; Mode Tables

B6C3: 40 02 45 03 D0 08 40 09	; '@{ULON}e{STOP}P.@{TAB}'
B6CB: 30 22 45 33 D0 08 40 09	; '0"e3P.@{TAB}'
B6D3: 40 02 45 33 D0 08 40 09	; '@{ULON}e3P.@{TAB}'
B6DB: 40 02 45 B3 D0 08 40 09	; '@{ULON}e.P.@{TAB}'
B6E3: 00 22 44 33 D0 8C 44 00	; '{0}"d3P.d{0}'
B6EB: 11 22 44 33 D0 8C 44 9A	; '{DOWN}"d3P.d{LTBLUE}'
B6F3: 10 22 44 33 D0 08 40 09	; '."d3P.@{TAB}'
B6FB: 10 22 44 33 D0 08 40 09	; '."d3P.@{TAB}'
B703: 62 13 78 A9            	; 'b{HOME}X.'

B707: 00 21 81 82 00 00 59 4D	; '{0}!{ORANGE}{ULOFF}{0}{0}ym'
B70F: 91 92 86 4A 85         	; '{UP}{RVSOFF}.j.'

B714: 9D                     	; '{LEFT}'

; Mode Characters

B715: 2C 29 2C 23 28         	; ',),#('

B71A: 24 59 00 58 24 24 00   	; '$y{0}x$${0}'

; Compacted Mnemonics

B721: 1C 8A 1C 23 5D 8B 1B A1	; '{RED}.{RED}#].{ESC}.'
B729: 9D 8A 1D 23 9D 8B 1D A1	; '{LEFT}.{RIGHT}#{LEFT}.{RIGHT}.'
B731: 00 29 19 AE 69 A8 19 23	; '{0})..i..#'
B739: 24 53 1B 23 24 53 19 A1	; '$s{ESC}#$s..'
B741: 00 1A 5B 5B A5 69 24 24	; '{0}.[[.i$$'
B749: AE AE A8 AD 29 00 7C 00	; '....){0}.{0}'
B751: 15 9C 6D 9C A5 69 29 53	; '.{PURPLE}m{PURPLE}.i)s'
B759: 84 13 34 11 A5 69 23 A0	; '.{HOME}4{DOWN}.i#.'

B761: D8 62 5A 48 26 62 94 88	; 'Xbzh&b{INS}.'
B769: 54 44 C8 54 68 44 E8 94	; 'tdHthd.{INS}'
B771: 00 B4 08 84 74 B4 28 6E	; '{0}...T.(n'
B779: 74 F4 CC 4A 72 F2 A4 8A	; 'T.LjR...'
B781: 00 AA A2 A2 74 74 74 72	; '{0}...TTTR'
B789: 44 68 B2 32 B2 00 22 00	; 'dh.2.{0}"{0}'
B791: 1A 1A 26 26 72 72 88 C8	; '..&&RR.H'
B799: C4 CA 26 48 44 44 A2 C8	; 'DJ&hdd.H'
B7A1: 0D 20 20 20            	; '{CR}   '

; Input Parameter

B7A5: C6 7A	DEC $7A

B7A7: 20 CE B7	JSR $B7CE	; Read Value
B7AA: B0 16	BCS $B7C2
B7AC: 20 E7 B8	JSR $B8E7	; Get Input Char
B7AF: D0 09	BNE $B7BA
B7B1: C6 7A	DEC $7A
B7B3: AD B4 0A	LDA $0AB4
B7B6: D0 11	BNE $B7C9
B7B8: F0 0D	BEQ $B7C7

B7BA: C9 20	CMP #$20
B7BC: F0 0B	BEQ $B7C9
B7BE: C9 2C	CMP #$2C
B7C0: F0 07	BEQ $B7C9

B7C2: 68	PLA
B7C3: 68	PLA
B7C4: 4C BC B0	JMP $B0BC	; Error

B7C7: 38	SEC
B7C8: 24	.BYTE $24

B7C9: 18	CLC
B7CA: AD B4 0A	LDA $0AB4
B7CD: 60	RTS

; Read Value

B7CE: A9 00	LDA #$00
B7D0: 85 60	STA $60
B7D2: 85 61	STA $61
B7D4: 85 62	STA $62
B7D6: 8D B4 0A	STA $0AB4
B7D9: 8A	TXA
B7DA: 48	PHA
B7DB: 98	TYA
B7DC: 48	PHA

B7DD: 20 E9 B8	JSR $B8E9	; Get Character
B7E0: D0 03	BNE $B7E5
B7E2: 4C 7E B8	JMP $B87E

B7E5: C9 20	CMP #$20
B7E7: F0 F4	BEQ $B7DD
B7E9: A2 03	LDX #$03

B7EB: DD F5 B0	CMP $B0F5,X
B7EE: F0 06	BEQ $B7F6
B7F0: CA	DEX
B7F1: 10 F8	BPL $B7EB
B7F3: E8	INX
B7F4: C6 7A	DEC $7A

B7F6: BC 8A B8	LDY $B88A,X	; Number Bases
B7F9: BD 8E B8	LDA $B88E,X	; Base Bits
B7FC: 8D B6 0A	STA $0AB6

B7FF: 20 E9 B8	JSR $B8E9	; Get Character
B802: F0 7A	BEQ $B87E
B804: 38	SEC
B805: E9 30	SBC #$30
B807: 90 75	BCC $B87E
B809: C9 0A	CMP #$0A
B80B: 90 06	BCC $B813
B80D: E9 07	SBC #$07
B80F: C9 10	CMP #$10
B811: B0 6B	BCS $B87E

B813: 8D B5 0A	STA $0AB5
B816: CC B5 0A	CPY $0AB5
B819: 90 61	BCC $B87C
B81B: F0 5F	BEQ $B87C
B81D: EE B4 0A	INC $0AB4
B820: C0 0A	CPY #$0A
B822: D0 0A	BNE $B82E
B824: A2 02	LDX #$02

B826: B5 60	LDA $60,X
B828: 9D B7 0A	STA $0AB7,X
B82B: CA	DEX
B82C: 10 F8	BPL $B826

B82E: AE B6 0A	LDX $0AB6

B831: 06 60	ASL $60
B833: 26 61	ROL $61
B835: 26 62	ROL $62
B837: B0 43	BCS $B87C
B839: CA	DEX
B83A: D0 F5	BNE $B831
B83C: C0 0A	CPY #$0A
B83E: D0 22	BNE $B862
B840: 0E B7 0A	ASL $0AB7
B843: 2E B8 0A	ROL $0AB8
B846: 2E B9 0A	ROL $0AB9
B849: B0 31	BCS $B87C
B84B: AD B7 0A	LDA $0AB7
B84E: 65 60	ADC $60
B850: 85 60	STA $60
B852: AD B8 0A	LDA $0AB8
B855: 65 61	ADC $61
B857: 85 61	STA $61
B859: AD B9 0A	LDA $0AB9
B85C: 65 62	ADC $62
B85E: 85 62	STA $62
B860: B0 1A	BCS $B87C

B862: 18	CLC
B863: AD B5 0A	LDA $0AB5
B866: 65 60	ADC $60
B868: 85 60	STA $60
B86A: 8A	TXA
B86B: 65 61	ADC $61
B86D: 85 61	STA $61
B86F: 8A	TXA
B870: 65 62	ADC $62
B872: 85 62	STA $62
B874: B0 06	BCS $B87C
B876: 29 F0	AND #$F0
B878: D0 02	BNE $B87C
B87A: F0 83	BEQ $B7FF

B87C: 38	SEC
B87D: 24	.BYTE $24

B87E: 18	CLC
B87F: 8C B6 0A	STY $0AB6
B882: 68	PLA
B883: A8	TAY
B884: 68	PLA
B885: AA	TAX
B886: AD B4 0A	LDA $0AB4
B889: 60	RTS

; Number Bases

B88A: 10 0A 08 02            	; '.{LF}.{ULON}'

; Base Bits

B88E: 04 03 03 01            	; '.{STOP}{STOP}.'

; Display 5-Digit Address

B892: A5 68	LDA $68
B894: 20 D2 B8	JSR $B8D2	; Byte to 2 Ascii
B897: 8A	TXA
B898: 20 D2 FF	JSR $FFD2	; (ibsout)      Output Vector, chrout [EF79]
B89B: A5 66	LDA $66
B89D: A6 67	LDX $67

B89F: 48	PHA
B8A0: 8A	TXA
B8A1: 20 C2 B8	JSR $B8C2	; Output 2-Digit Byte
B8A4: 68	PLA

; Display 2-digit Byte

B8A5: 20 C2 B8	JSR $B8C2	; Output 2-Digit Byte

; Print Space

B8A8: A9 20	LDA #$20
B8AA: 4C D2 FF	JMP $FFD2	; (ibsout)      Output Vector, chrout [EF79]

; Print Cursor-Up

B8AD: 20 7D FF	JSR $FF7D	; primm         Print Immediate
B8B0: 0D 91 00               	; '{CR}{UP}{0}'
B8B3: 60	RTS

; New Line

B8B4: A9 0D	LDA #$0D
B8B6: 4C D2 FF	JMP $FFD2	; (ibsout)      Output Vector, chrout [EF79]

; Blank New Line

B8B9: 20 7D FF	JSR $FF7D	; primm         Print Immediate
B8BC: 0D 1B 51 20 00         	; '{CR}{ESC}q {0}'
B8C1: 60	RTS

; Output 2-Digit Byte

B8C2: 8E AF 0A	STX $0AAF
B8C5: 20 D2 B8	JSR $B8D2	; Byte to 2 Ascii
B8C8: 20 D2 FF	JSR $FFD2	; (ibsout)      Output Vector, chrout [EF79]
B8CB: 8A	TXA
B8CC: AE AF 0A	LDX $0AAF
B8CF: 4C D2 FF	JMP $FFD2	; (ibsout)      Output Vector, chrout [EF79]

; Byte to 2 Ascii

B8D2: 48	PHA
B8D3: 20 DC B8	JSR $B8DC
B8D6: AA	TAX
B8D7: 68	PLA
B8D8: 4A	LSR A
B8D9: 4A	LSR A
B8DA: 4A	LSR A
B8DB: 4A	LSR A

B8DC: 29 0F	AND #$0F
B8DE: C9 0A	CMP #$0A
B8E0: 90 02	BCC $B8E4
B8E2: 69 06	ADC #$06

B8E4: 69 30	ADC #$30
B8E6: 60	RTS

; Get Input Char

B8E7: C6 7A	DEC $7A

; Get Character

B8E9: 8E AF 0A	STX $0AAF
B8EC: A6 7A	LDX $7A
B8EE: BD 00 02	LDA $0200,X
B8F1: F0 06	BEQ $B8F9
B8F3: C9 3A	CMP #$3A
B8F5: F0 02	BEQ $B8F9
B8F7: C9 3F	CMP #$3F

B8F9: 08	PHP
B8FA: E6 7A	INC $7A
B8FC: AE AF 0A	LDX $0AAF
B8FF: 28	PLP
B900: 60	RTS

; Copy Add0 to Add2

B901: A5 60	LDA $60
B903: 85 66	STA $66
B905: A5 61	LDA $61
B907: 85 67	STA $67
B909: A5 62	LDA $62
B90B: 85 68	STA $68
B90D: 60	RTS

; Calculate Add2 - Add0

B90E: 38	SEC
B90F: A5 60	LDA $60
B911: E5 66	SBC $66
B913: 85 60	STA $60
B915: A5 61	LDA $61
B917: E5 67	SBC $67
B919: 85 61	STA $61
B91B: A5 62	LDA $62
B91D: E5 68	SBC $68
B91F: 85 62	STA $62
B921: 60	RTS

; Subtract Add0

B922: A9 01	LDA #$01

B924: 8D AF 0A	STA $0AAF
B927: 38	SEC
B928: A5 60	LDA $60
B92A: ED AF 0A	SBC $0AAF
B92D: 85 60	STA $60
B92F: A5 61	LDA $61
B931: E9 00	SBC #$00
B933: 85 61	STA $61
B935: A5 62	LDA $62
B937: E9 00	SBC #$00
B939: 85 62	STA $62
B93B: 60	RTS

; Subtract Add1

B93C: 38	SEC
B93D: A5 63	LDA $63
B93F: E9 01	SBC #$01
B941: 85 63	STA $63
B943: A5 64	LDA $64
B945: E9 00	SBC #$00
B947: 85 64	STA $64
B949: A5 65	LDA $65
B94B: E9 00	SBC #$00
B94D: 85 65	STA $65
B94F: 60	RTS

; Increment Pointer

B950: A9 01	LDA #$01

B952: 18	CLC
B953: 65 66	ADC $66
B955: 85 66	STA $66
B957: 90 06	BCC $B95F
B959: E6 67	INC $67
B95B: D0 02	BNE $B95F
B95D: E6 68	INC $68

B95F: 60	RTS

; Decrement Pointer

B960: 38	SEC
B961: A5 66	LDA $66
B963: E9 01	SBC #$01
B965: 85 66	STA $66
B967: A5 67	LDA $67
B969: E9 00	SBC #$00
B96B: 85 67	STA $67
B96D: A5 68	LDA $68
B96F: E9 00	SBC #$00
B971: 85 68	STA $68
B973: 60	RTS

; Copy to Register Area

B974: B0 0C	BCS $B982
B976: A5 60	LDA $60
B978: A4 61	LDY $61
B97A: A6 62	LDX $62
B97C: 85 04	STA $04 	; SYS address high, MLM register PC
B97E: 84 03	STY $03 	; SYS address low, MLM register PC
B980: 86 02	STX $02 	; Bank Number, Jump to SYS Address

B982: 60	RTS

; Calculate Step/Area

B983: B0 2A	BCS $B9AF
B985: 20 01 B9	JSR $B901	; Copy Add0 to Add2
B988: 20 A7 B7	JSR $B7A7
B98B: B0 22	BCS $B9AF
B98D: A5 60	LDA $60
B98F: 8D B7 0A	STA $0AB7
B992: A5 61	LDA $61
B994: 8D B8 0A	STA $0AB8
B997: A5 62	LDA $62
B999: 8D B9 0A	STA $0AB9
B99C: 20 0E B9	JSR $B90E	; Calculate Add2 - Add0
B99F: A5 60	LDA $60
B9A1: 85 63	STA $63
B9A3: A5 61	LDA $61
B9A5: 85 64	STA $64
B9A7: A5 62	LDA $62
B9A9: 85 65	STA $65
B9AB: 90 02	BCC $B9AF
B9AD: 18	CLC
B9AE: 24	.BYTE $24

B9AF: 38	SEC
B9B0: 60	RTS

; Perform [$+&%]

B9B1: 20 A5 B7	JSR $B7A5	; Input Parameter
B9B4: 20 B9 B8	JSR $B8B9	; Blank New Line
B9B7: A9 24	LDA #$24
B9B9: 20 D2 FF	JSR $FFD2	; (ibsout)      Output Vector, chrout [EF79]
B9BC: A5 62	LDA $62
B9BE: F0 07	BEQ $B9C7
B9C0: 20 D2 B8	JSR $B8D2	; Byte to 2 Ascii
B9C3: 8A	TXA
B9C4: 20 D2 FF	JSR $FFD2	; (ibsout)      Output Vector, chrout [EF79]

B9C7: A5 60	LDA $60
B9C9: A6 61	LDX $61
B9CB: 20 9F B8	JSR $B89F
B9CE: 20 B9 B8	JSR $B8B9	; Blank New Line
B9D1: A9 2B	LDA #$2B
B9D3: 20 D2 FF	JSR $FFD2	; (ibsout)      Output Vector, chrout [EF79]
B9D6: 20 07 BA	JSR $BA07	; Convert to Decimal
B9D9: A9 00	LDA #$00
B9DB: A2 08	LDX #$08
B9DD: A0 03	LDY #$03
B9DF: 20 5D BA	JSR $BA5D	; Output Address
B9E2: 20 B9 B8	JSR $B8B9	; Blank New Line
B9E5: A9 26	LDA #$26
B9E7: 20 D2 FF	JSR $FFD2	; (ibsout)      Output Vector, chrout [EF79]
B9EA: A9 00	LDA #$00
B9EC: A2 08	LDX #$08
B9EE: A0 02	LDY #$02
B9F0: 20 47 BA	JSR $BA47	; Transfer Address
B9F3: 20 B9 B8	JSR $B8B9	; Blank New Line
B9F6: A9 25	LDA #$25
B9F8: 20 D2 FF	JSR $FFD2	; (ibsout)      Output Vector, chrout [EF79]
B9FB: A9 00	LDA #$00
B9FD: A2 18	LDX #$18
B9FF: A0 00	LDY #$00
BA01: 20 47 BA	JSR $BA47	; Transfer Address
BA04: 4C 8B B0	JMP $B08B	; Get Command

; Convert to Decimal

BA07: 20 01 B9	JSR $B901	; Copy Add0 to Add2
BA0A: A9 00	LDA #$00
BA0C: A2 07	LDX #$07

BA0E: 9D A0 0A	STA $0AA0,X
BA11: CA	DEX
BA12: 10 FA	BPL $BA0E
BA14: EE A7 0A	INC $0AA7
BA17: A0 17	LDY #$17
BA19: 08	PHP
BA1A: 78	SEI
BA1B: F8	SED

BA1C: 46 68	LSR $68
BA1E: 66 67	ROR $67
BA20: 66 66	ROR $66
BA22: 90 0F	BCC $BA33
BA24: 18	CLC
BA25: A2 03	LDX #$03

BA27: BD A4 0A	LDA $0AA4,X
BA2A: 7D A0 0A	ADC $0AA0,X
BA2D: 9D A0 0A	STA $0AA0,X
BA30: CA	DEX
BA31: 10 F4	BPL $BA27

BA33: 18	CLC
BA34: A2 03	LDX #$03

BA36: BD A4 0A	LDA $0AA4,X
BA39: 7D A4 0A	ADC $0AA4,X
BA3C: 9D A4 0A	STA $0AA4,X
BA3F: CA	DEX
BA40: 10 F4	BPL $BA36
BA42: 88	DEY
BA43: 10 D7	BPL $BA1C
BA45: 28	PLP
BA46: 60	RTS

; Transfer Address

BA47: 48	PHA
BA48: A5 60	LDA $60
BA4A: 8D A2 0A	STA $0AA2
BA4D: A5 61	LDA $61
BA4F: 8D A1 0A	STA $0AA1
BA52: A5 62	LDA $62
BA54: 8D A0 0A	STA $0AA0
BA57: A9 00	LDA #$00
BA59: 8D A3 0A	STA $0AA3
BA5C: 68	PLA

; Output Address

BA5D: 8D B4 0A	STA $0AB4
BA60: 8C B6 0A	STY $0AB6

BA63: AC B6 0A	LDY $0AB6
BA66: A9 00	LDA #$00

BA68: 0E A3 0A	ASL $0AA3
BA6B: 2E A2 0A	ROL $0AA2
BA6E: 2E A1 0A	ROL $0AA1
BA71: 2E A0 0A	ROL $0AA0
BA74: 2A	ROL A
BA75: 88	DEY
BA76: 10 F0	BPL $BA68
BA78: A8	TAY
BA79: D0 09	BNE $BA84
BA7B: E0 01	CPX #$01
BA7D: F0 05	BEQ $BA84
BA7F: AC B4 0A	LDY $0AB4
BA82: F0 08	BEQ $BA8C

BA84: EE B4 0A	INC $0AB4
BA87: 09 30	ORA #$30
BA89: 20 D2 FF	JSR $FFD2	; (ibsout)      Output Vector, chrout [EF79]

BA8C: CA	DEX
BA8D: D0 D4	BNE $BA63
BA8F: 60	RTS

; Perform [@]

BA90: D0 03	BNE $BA95
BA92: A2 08	LDX #$08
BA94: 2C	.BYTE $2C

BA95: A6 60	LDX $60
BA97: E0 04	CPX #$04
BA99: 90 65	BCC $BB00
BA9B: E0 1F	CPX #$1F
BA9D: B0 61	BCS $BB00
BA9F: 86 60	STX $60
BAA1: A9 00	LDA #$00
BAA3: 85 62	STA $62
BAA5: 85 B7	STA $B7 	; Number of characters in file name
BAA7: AA	TAX
BAA8: 20 68 FF	JSR $FF68	; setbnk
BAAB: 20 E9 B8	JSR $B8E9	; Get Character
BAAE: C6 7A	DEC $7A
BAB0: C9 24	CMP #$24
BAB2: F0 4F	BEQ $BB03
BAB4: A9 00	LDA #$00
BAB6: A6 60	LDX $60
BAB8: A0 0F	LDY #$0F
BABA: 20 BA FF	JSR $FFBA	; setlfs        Set Logical File Parameters
BABD: 20 C0 FF	JSR $FFC0	; (iopen)       Open Vector [EFBD]
BAC0: B0 32	BCS $BAF4
BAC2: A2 00	LDX #$00
BAC4: 20 C9 FF	JSR $FFC9	; (ichkout)     Set Output [F14C]
BAC7: B0 2B	BCS $BAF4

BAC9: A6 7A	LDX $7A
BACB: E6 7A	INC $7A
BACD: BD 00 02	LDA $0200,X
BAD0: F0 05	BEQ $BAD7
BAD2: 20 D2 FF	JSR $FFD2	; (ibsout)      Output Vector, chrout [EF79]
BAD5: 90 F2	BCC $BAC9

BAD7: 20 CC FF	JSR $FFCC	; (iclrch)      Restore I/O Vector [F226]
BADA: 20 B4 B8	JSR $B8B4	; New Line
BADD: A2 00	LDX #$00
BADF: 20 C6 FF	JSR $FFC6	; (ichkin)      Set Input [F106]
BAE2: B0 10	BCS $BAF4

BAE4: 20 CF FF	JSR $FFCF	; (ibasin)      Input Vector, chrin [EF06]
BAE7: 20 D2 FF	JSR $FFD2	; (ibsout)      Output Vector, chrout [EF79]
BAEA: C9 0D	CMP #$0D
BAEC: F0 06	BEQ $BAF4
BAEE: A5 90	LDA $90 	; Status word ST
BAF0: 29 BF	AND #$BF
BAF2: F0 F0	BEQ $BAE4

BAF4: 20 CC FF	JSR $FFCC	; (iclrch)      Restore I/O Vector [F226]
BAF7: A9 00	LDA #$00
BAF9: 38	SEC
BAFA: 20 C3 FF	JSR $FFC3	; (iclose)      Close Vector [F188]
BAFD: 4C 8B B0	JMP $B08B	; Get Command

BB00: 4C BC B0	JMP $B0BC	; Error

BB03: A0 FF	LDY #$FF
BB05: A6 7A	LDX $7A
BB07: CA	DEX

BB08: C8	INY
BB09: E8	INX
BB0A: BD 00 02	LDA $0200,X
BB0D: D0 F9	BNE $BB08
BB0F: 98	TYA
BB10: A6 7A	LDX $7A
BB12: A0 02	LDY #$02
BB14: 20 BD FF	JSR $FFBD	; setnam        Set Filename
BB17: A9 00	LDA #$00
BB19: A6 60	LDX $60
BB1B: A0 60	LDY #$60
BB1D: 20 BA FF	JSR $FFBA	; setlfs        Set Logical File Parameters
BB20: 20 C0 FF	JSR $FFC0	; (iopen)       Open Vector [EFBD]
BB23: B0 CF	BCS $BAF4
BB25: A2 00	LDX #$00
BB27: 20 C6 FF	JSR $FFC6	; (ichkin)      Set Input [F106]
BB2A: 20 B4 B8	JSR $B8B4	; New Line
BB2D: A0 03	LDY #$03

BB2F: 84 63	STY $63

BB31: 20 CF FF	JSR $FFCF	; (ibasin)      Input Vector, chrin [EF06]
BB34: 85 60	STA $60
BB36: A5 90	LDA $90 	; Status word ST
BB38: D0 BA	BNE $BAF4
BB3A: 20 CF FF	JSR $FFCF	; (ibasin)      Input Vector, chrin [EF06]
BB3D: 85 61	STA $61
BB3F: A5 90	LDA $90 	; Status word ST
BB41: D0 B1	BNE $BAF4
BB43: C6 63	DEC $63
BB45: D0 EA	BNE $BB31
BB47: 20 07 BA	JSR $BA07	; Convert to Decimal
BB4A: A9 00	LDA #$00
BB4C: A2 08	LDX #$08
BB4E: A0 03	LDY #$03
BB50: 20 5D BA	JSR $BA5D	; Output Address
BB53: A9 20	LDA #$20
BB55: 20 D2 FF	JSR $FFD2	; (ibsout)      Output Vector, chrout [EF79]

BB58: 20 CF FF	JSR $FFCF	; (ibasin)      Input Vector, chrin [EF06]
BB5B: F0 09	BEQ $BB66
BB5D: A6 90	LDX $90 	; Status word ST
BB5F: D0 93	BNE $BAF4
BB61: 20 D2 FF	JSR $FFD2	; (ibsout)      Output Vector, chrout [EF79]
BB64: 90 F2	BCC $BB58

BB66: 20 B4 B8	JSR $B8B4	; New Line
BB69: 20 E1 FF	JSR $FFE1	; (istop)       Test-Stop Vector [F66E]
BB6C: F0 86	BEQ $BAF4
BB6E: A0 02	LDY #$02
BB70: D0 BD	BNE $BB2F

; Reserved For Future Patches

BB72: FF FF FF FF FF FF FF FF	; '........'
BB7A: FF FF FF FF FF FF FF FF	; '........'
BB82: FF FF FF FF FF FF FF FF	; '........'
BB8A: FF FF FF FF FF FF FF FF	; '........'
BB92: FF FF FF FF FF FF FF FF	; '........'
BB9A: FF FF FF FF FF FF FF FF	; '........'
BBA2: FF FF FF FF FF FF FF FF	; '........'
BBAA: FF FF FF FF FF FF FF FF	; '........'
BBB2: FF FF FF FF FF FF FF FF	; '........'
BBBA: FF FF FF FF FF FF FF FF	; '........'
BBC2: FF FF FF FF FF FF FF FF	; '........'
BBCA: FF FF FF FF FF FF FF FF	; '........'
BBD2: FF FF FF FF FF FF FF FF	; '........'
BBDA: FF FF FF FF FF FF FF FF	; '........'
BBE2: FF FF FF FF FF FF FF FF	; '........'
BBEA: FF FF FF FF FF FF FF FF	; '........'
BBF2: FF FF FF FF FF FF FF FF	; '........'
BBFA: FF FF FF FF FF FF FF FF	; '........'
BC02: FF FF FF FF FF FF FF FF	; '........'
BC0A: FF FF FF FF FF FF FF FF	; '........'
BC12: FF FF FF FF FF FF FF FF	; '........'
BC1A: FF FF FF FF FF FF FF FF	; '........'
BC22: FF FF FF FF FF FF FF FF	; '........'
BC2A: FF FF FF FF FF FF FF FF	; '........'
BC32: FF FF FF FF FF FF FF FF	; '........'
BC3A: FF FF FF FF FF FF FF FF	; '........'
BC42: FF FF FF FF FF FF FF FF	; '........'
BC4A: FF FF FF FF FF FF FF FF	; '........'
BC52: FF FF FF FF FF FF FF FF	; '........'
BC5A: FF FF FF FF FF FF FF FF	; '........'
BC62: FF FF FF FF FF FF FF FF	; '........'
BC6A: FF FF FF FF FF FF FF FF	; '........'
BC72: FF FF FF FF FF FF FF FF	; '........'
BC7A: FF FF FF FF FF FF FF FF	; '........'
BC82: FF FF FF FF FF FF FF FF	; '........'
BC8A: FF FF FF FF FF FF FF FF	; '........'
BC92: FF FF FF FF FF FF FF FF	; '........'
BC9A: FF FF FF FF FF FF FF FF	; '........'
BCA2: FF FF FF FF FF FF FF FF	; '........'
BCAA: FF FF FF FF FF FF FF FF	; '........'
BCB2: FF FF FF FF FF FF FF FF	; '........'
BCBA: FF FF FF FF FF FF FF FF	; '........'
BCC2: FF FF FF FF FF FF FF FF	; '........'
BCCA: FF FF FF FF FF FF FF FF	; '........'
BCD2: FF FF FF FF FF FF FF FF	; '........'
BCDA: FF FF FF FF FF FF FF FF	; '........'
BCE2: FF FF FF FF FF FF FF FF	; '........'
BCEA: FF FF FF FF FF FF FF FF	; '........'
BCF2: FF FF FF FF FF FF FF FF	; '........'
BCFA: FF FF FF FF FF FF FF FF	; '........'
BD02: FF FF FF FF FF FF FF FF	; '........'
BD0A: FF FF FF FF FF FF FF FF	; '........'
BD12: FF FF FF FF FF FF FF FF	; '........'
BD1A: FF FF FF FF FF FF FF FF	; '........'
BD22: FF FF FF FF FF FF FF FF	; '........'
BD2A: FF FF FF FF FF FF FF FF	; '........'
BD32: FF FF FF FF FF FF FF FF	; '........'
BD3A: FF FF FF FF FF FF FF FF	; '........'
BD42: FF FF FF FF FF FF FF FF	; '........'
BD4A: FF FF FF FF FF FF FF FF	; '........'
BD52: FF FF FF FF FF FF FF FF	; '........'
BD5A: FF FF FF FF FF FF FF FF	; '........'
BD62: FF FF FF FF FF FF FF FF	; '........'
BD6A: FF FF FF FF FF FF FF FF	; '........'
BD72: FF FF FF FF FF FF FF FF	; '........'
BD7A: FF FF FF FF FF FF FF FF	; '........'
BD82: FF FF FF FF FF FF FF FF	; '........'
BD8A: FF FF FF FF FF FF FF FF	; '........'
BD92: FF FF FF FF FF FF FF FF	; '........'
BD9A: FF FF FF FF FF FF FF FF	; '........'
BDA2: FF FF FF FF FF FF FF FF	; '........'
BDAA: FF FF FF FF FF FF FF FF	; '........'
BDB2: FF FF FF FF FF FF FF FF	; '........'
BDBA: FF FF FF FF FF FF FF FF	; '........'
BDC2: FF FF FF FF FF FF FF FF	; '........'
BDCA: FF FF FF FF FF FF FF FF	; '........'
BDD2: FF FF FF FF FF FF FF FF	; '........'
BDDA: FF FF FF FF FF FF FF FF	; '........'
BDE2: FF FF FF FF FF FF FF FF	; '........'
BDEA: FF FF FF FF FF FF FF FF	; '........'
BDF2: FF FF FF FF FF FF FF FF	; '........'
BDFA: FF FF FF FF FF FF FF FF	; '........'
BE02: FF FF FF FF FF FF FF FF	; '........'
BE0A: FF FF FF FF FF FF FF FF	; '........'
BE12: FF FF FF FF FF FF FF FF	; '........'
BE1A: FF FF FF FF FF FF FF FF	; '........'
BE22: FF FF FF FF FF FF FF FF	; '........'
BE2A: FF FF FF FF FF FF FF FF	; '........'
BE32: FF FF FF FF FF FF FF FF	; '........'
BE3A: FF FF FF FF FF FF FF FF	; '........'
BE42: FF FF FF FF FF FF FF FF	; '........'
BE4A: FF FF FF FF FF FF FF FF	; '........'
BE52: FF FF FF FF FF FF FF FF	; '........'
BE5A: FF FF FF FF FF FF FF FF	; '........'
BE62: FF FF FF FF FF FF FF FF	; '........'
BE6A: FF FF FF FF FF FF FF FF	; '........'
BE72: FF FF FF FF FF FF FF FF	; '........'
BE7A: FF FF FF FF FF FF FF FF	; '........'
BE82: FF FF FF FF FF FF FF FF	; '........'
BE8A: FF FF FF FF FF FF FF FF	; '........'
BE92: FF FF FF FF FF FF FF FF	; '........'
BE9A: FF FF FF FF FF FF FF FF	; '........'
BEA2: FF FF FF FF FF FF FF FF	; '........'
BEAA: FF FF FF FF FF FF FF FF	; '........'
BEB2: FF FF FF FF FF FF FF FF	; '........'
BEBA: FF FF FF FF FF FF FF FF	; '........'
BEC2: FF FF FF FF FF FF FF FF	; '........'
BECA: FF FF FF FF FF FF FF FF	; '........'
BED2: FF FF FF FF FF FF FF FF	; '........'
BEDA: FF FF FF FF FF FF FF FF	; '........'
BEE2: FF FF FF FF FF FF FF FF	; '........'
BEEA: FF FF FF FF FF FF FF FF	; '........'
BEF2: FF FF FF FF FF FF FF FF	; '........'
BEFA: FF FF FF FF FF FF FF FF	; '........'
BF02: FF FF FF FF FF FF FF FF	; '........'
BF0A: FF FF FF FF FF FF FF FF	; '........'
BF12: FF FF FF FF FF FF FF FF	; '........'
BF1A: FF FF FF FF FF FF FF FF	; '........'
BF22: FF FF FF FF FF FF FF FF	; '........'
BF2A: FF FF FF FF FF FF FF FF	; '........'
BF32: FF FF FF FF FF FF FF FF	; '........'
BF3A: FF FF FF FF FF FF FF FF	; '........'
BF42: FF FF FF FF FF FF FF FF	; '........'
BF4A: FF FF FF FF FF FF FF FF	; '........'
BF52: FF FF FF FF FF FF FF FF	; '........'
BF5A: FF FF FF FF FF FF FF FF	; '........'
BF62: FF FF FF FF FF FF FF FF	; '........'
BF6A: FF FF FF FF FF FF FF FF	; '........'
BF72: FF FF FF FF FF FF FF FF	; '........'
BF7A: FF FF FF FF FF FF FF FF	; '........'
BF82: FF FF FF FF FF FF FF FF	; '........'
BF8A: FF FF FF FF FF FF FF FF	; '........'
BF92: FF FF FF FF FF FF FF FF	; '........'
BF9A: FF FF FF FF FF FF FF FF	; '........'
BFA2: FF FF FF FF FF FF FF FF	; '........'
BFAA: FF FF FF FF FF FF FF FF	; '........'
BFB2: FF FF FF FF FF FF FF FF	; '........'
BFBA: FF FF FF FF FF FF      	; '......'

; Copyright notice

BFC0: 28 43 29 31 39 38 36 20	; '(c)1986 '
BFC8: 43 4F 4D 4D 4F 44 4F 52	; 'commodor'
BFD0: 45 20 45 4C 45 43 54 52	; 'e electr'
BFD8: 4F 4E 49 43 53 2C 20 4C	; 'onics, l'
BFE0: 54 44 2E 20 41 4C 4C 20	; 'td. all '
BFE8: 52 49 47 48 54 53 20 52	; 'rights r'
BFF0: 45 53 45 52 56 45 44 2E	; 'eserved.'

; ?

BFF8: FF FF FF FF C8 CD 01 C5	; '....HM.E'

; -cint-

C000: 4C 7B C0	JMP $C07B	; Initialize Screen
C003: 4C 34 CC	JMP $CC34	; Put Char to Screen

; Get from Keyboard

C006: 4C 34 C2	JMP $C234	; Get a Key

; Screen Input Link

C009: 4C 9B C2	JMP $C29B	; Input From Screen

; Screen Print Link

C00C: 4C 2D C7	JMP $C72D	; Print to Screen

; -screen-

C00F: 4C 5B CC	JMP $CC5B	; Get Rows/Columns

; -scnkey-

C012: 4C 87 FC	JMP $FC87	; Init KBD Translation Tables
C015: 4C 51 C6	JMP $C651	; Key Pickup & Repeat

; -plot-

C018: 4C 6A CC	JMP $CC6A	; Read/Set Cursor

; Move 8563 Cursor Subroutine

C01B: 4C 57 CD	JMP $CD57	; Position 80-col Cursor

; Execute ESC Function using chr in .A

C01E: 4C C1 C9	JMP $C9C1	; Kernal Analyze Esc Sequence

; Define FN Key

C021: 4C A2 CC	JMP $CCA2	; Define Function Key

; IRQ Link

C024: 4C 94 C1	JMP $C194	; (IRQ) Split Screen

; Upload 80 Col [CE0C]

C027: 4C 0C CE	JMP $CE0C	; Set Up 80 Column Char Set

; Swap 40/80 Col [CD2E]

C02A: 4C 2E CD	JMP $CD2E	; Switch 40/80 Col

; Set Window

C02D: 4C 1B CA	JMP $CA1B	; Set Window Part

; Unused

C030: FF FF FF               	; '...'

; Screen Address Low

C033: 00 28 50 78 A0 C8 F0 18	; '{0}(pX.H.{TABT}'
C03B: 40 68 90 B8 E0 08 30 58	; '@h{BLACK}...0x'
C043: 80 A8 D0 F8 20 48 70 98	; '..P. hP{GRAY2}'
C04B: C0                     	; '.'

; Screen Address High

C04C: 04 04 04 04 04 04 04 05	; '.......{WHITE}'
C054: 05 05 05 05 05 06 06 06	; '{WHITE}{WHITE}{WHITE}{WHITE}{WHITE}...'
C05C: 06 06 06 06 07 07 07 07	; '....{BELL}{BELL}{BELL}{BELL}'
C064: 07                     	; '{BELL}'

; I/O Link Vectors

C065: B9 C7	.WORD $C7B9	; Kernal Print Control Char
C067: 05 C8	.WORD $C805	; Kernal Print Hi-Bit Char
C069: C1 C9	.WORD $C9C1	; Kernal Analyze Esc Sequence
C06B: E1 C5	.WORD $C5E1	; Kernal Keyboard Scan Subroutine
C06D: AD C6	.WORD $C6AD	; Kernal Store Key

; Keyboard Shift Vectors

C06F: 80 FA	.WORD $FA80	; Keyboard Matrix Un-Shifted
C071: D9 FA	.WORD $FAD9	; Keyboard Matrix Shifted
C073: 32 FB	.WORD $FB32	; Keyboard Matrix C-Key
C075: 8B FB	.WORD $FB8B	; Keyboard Matrix Control
C077: 80 FA	.WORD $FA80	; Keyboard Matrix Un-Shifted
C079: E4 FB	.WORD $FBE4	; Keyboard Matrix Caps-Lock

; Initialize Screen

C07B: A9 03	LDA #$03
C07D: 0D 00 DD	ORA $DD00
C080: 8D 00 DD	STA $DD00
C083: A9 FB	LDA #$FB
C085: 25 01	AND $01
C087: 09 02	ORA #$02
C089: 85 01	STA $01
C08B: 20 CC FF	JSR $FFCC	; (iclrch)      Restore I/O Vector [F226]
C08E: A9 00	LDA #$00
C090: 20 80 FC	JSR $FC80	; Init screen DIN patch
C093: 85 D8	STA $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
C095: 85 D7	STA $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
C097: 85 D0	STA $D0 	; Number of characters in keyboard buffer
C099: 85 D1	STA $D1 	; Number of programmed chars waiting
C09B: 85 D6	STA $D6 	; Input from screen / from keyboard
C09D: 8D 21 0A	STA $0A21	; Screen Freeze Flag
C0A0: 8D 26 0A	STA $0A26	; VIC Cursor Mode (Blinking, Solid)
C0A3: 85 D9	STA $D9 	; Character base: 0 = ROM, 4 = RAM
C0A5: 8D 2E 0A	STA $0A2E	; VDC Text Screen Base address
C0A8: A9 14	LDA #$14
C0AA: 8D 2C 0A	STA $0A2C	; VIC Text Mode Video Matrix & Character Base Pointer. ($d018)
C0AD: A9 78	LDA #$78
C0AF: 8D 2D 0A	STA $0A2D	; VIC Graphic Mode Video Matrix & Bit Map Pointer. ($d018)
C0B2: A9 08	LDA #$08
C0B4: 8D 2F 0A	STA $0A2F	; VDC Attribute Base address
C0B7: AD 4C C0	LDA $C04C	; Screen Address High
C0BA: 8D 3B 0A	STA $0A3B	; VIC Text Screen Base address
C0BD: A9 0A	LDA #$0A
C0BF: 8D 20 0A	STA $0A20	; Keyboard Queue Maximum Size
C0C2: 8D 28 0A	STA $0A28	; VIC Cursor Blink Counter
C0C5: 8D 27 0A	STA $0A27	; VIC Cursor Disable
C0C8: 8D 24 0A	STA $0A24	; Delay Before a Key Starts Repeating
C0CB: A9 04	LDA #$04
C0CD: 8D 23 0A	STA $0A23	; Delay Between Key Repeats
C0D0: 20 83 C9	JSR $C983	; Esc-y Set Default Tabs
C0D3: 8D 22 0A	STA $0A22	; Enable Key Repeats (128=all, 64=none, 0=some)
C0D6: 0D 05 D5	ORA $D505
C0D9: 8D 05 D5	STA $D505
C0DC: A9 60	LDA #$60
C0DE: 8D 2B 0A	STA $0A2B	; VDC Cursor Mode (when enabled)
C0E1: A9 D0	LDA #$D0
C0E3: 8D 34 0A	STA $0A34	; VIC Split Screen Raster Value
C0E6: A2 1A	LDX #$1A

C0E8: BD 74 CE	LDA $CE74,X	; 40-col Init Values ($e0)
C0EB: 95 E0	STA $E0,X	; Pointer to Current Line (Text)
C0ED: BD 8E CE	LDA $CE8E,X	; 80-col Init Values ($0a40)
C0F0: 9D 40 0A	STA $0A40,X
C0F3: CA	DEX
C0F4: 10 F2	BPL $C0E8
C0F6: A2 09	LDX #$09

C0F8: BD 65 C0	LDA $C065,X	; I/O Link Vectors
C0FB: 9D 34 03	STA $0334,X	; Print Control Code Link [C7B9]
C0FE: CA	DEX
C0FF: 10 F7	BPL $C0F8
C101: 2C 04 0A	BIT $0A04
C104: 70 1E	BVS $C124
C106: 20 81 FE	JSR $FE81	; ?
C109: A9 00	LDA #$00
C10B: 8D 3F 03	STA $033F
C10E: 20 87 FC	JSR $FC87	; Init KBD Translation Tables
C111: A2 4C	LDX #$4C

C113: BD A8 CE	LDA $CEA8,X	; Prog Key Lengths
C116: 9D 00 10	STA $1000,X
C119: CA	DEX
C11A: 10 F7	BPL $C113
C11C: A9 40	LDA #$40
C11E: 0D 04 0A	ORA $0A04
C121: 8D 04 0A	STA $0A04

C124: 20 2E CD	JSR $CD2E	; Switch 40/80 Col
C127: 20 83 C9	JSR $C983	; Esc-y Set Default Tabs
C12A: 20 24 CA	JSR $CA24	; Exit Window
C12D: 20 42 C1	JSR $C142	; Reset Window
C130: 20 2E CD	JSR $CD2E	; Switch 40/80 Col
C133: 20 24 CA	JSR $CA24	; Exit Window
C136: 20 42 C1	JSR $C142	; Reset Window
C139: 2C 05 D5	BIT $D505
C13C: 30 03	BMI $C141
C13E: 20 2E CD	JSR $CD2E	; Switch 40/80 Col

C141: 60	RTS

; Reset Window

C142: 20 50 C1	JSR $C150	; Home Cursor

C145: 20 5E C1	JSR $C15E
C148: 20 A5 C4	JSR $C4A5	; Clear a Line
C14B: E4 E4	CPX $E4 	; Window Lower Limit
C14D: E8	INX
C14E: 90 F5	BCC $C145

; Home Cursor

C150: A6 E5	LDX $E5 	; Window Upper Limit
C152: 86 EB	STX $EB 	; Current Cursor Line
C154: 86 E8	STX $E8 	; Current Input Column Start

; Goto Left Border

C156: A4 E6	LDY $E6 	; Window Left Margin
C158: 84 EC	STY $EC 	; Current Cursor Column
C15A: 84 E9	STY $E9 	; Current Input Line Start

; Set Up New Line

C15C: A6 EB	LDX $EB 	; Current Cursor Line

C15E: BD 33 C0	LDA $C033,X	; Screen Address Low
C161: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
C163: 10 01	BPL $C166
C165: 0A	ASL A

C166: 85 E0	STA $E0 	; Pointer to Current Line (Text)
C168: BD 4C C0	LDA $C04C,X	; Screen Address High
C16B: 29 03	AND #$03
C16D: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
C16F: 10 06	BPL $C177
C171: 2A	ROL A
C172: 0D 2E 0A	ORA $0A2E	; VDC Text Screen Base address
C175: 90 03	BCC $C17A

C177: 0D 3B 0A	ORA $0A3B	; VIC Text Screen Base address

C17A: 85 E1	STA $E1 	; Pointer to Current Line high (Text)

; Do Screen Color

C17C: A5 E0	LDA $E0 	; Pointer to Current Line (Text)
C17E: 85 E2	STA $E2 	; Pointer to Current Line (Attribute)
C180: A5 E1	LDA $E1 	; Pointer to Current Line high (Text)
C182: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
C184: 10 07	BPL $C18D
C186: 29 07	AND #$07
C188: 0D 2F 0A	ORA $0A2F	; VDC Attribute Base address
C18B: D0 04	BNE $C191

C18D: 29 03	AND #$03
C18F: 09 D8	ORA #$D8

C191: 85 E3	STA $E3 	; Pointer to Current Line high (Attribute)
C193: 60	RTS

; (IRQ) Split Screen

C194: 38	SEC
C195: AD 19 D0	LDA $D019
C198: 29 01	AND #$01
C19A: F0 07	BEQ $C1A3
C19C: 8D 19 D0	STA $D019
C19F: A5 D8	LDA $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
C1A1: C9 FF	CMP #$FF

C1A3: F0 6F	BEQ $C214
C1A5: 2C 11 D0	BIT $D011
C1A8: 30 04	BMI $C1AE
C1AA: 29 40	AND #$40
C1AC: D0 31	BNE $C1DF

C1AE: 38	SEC
C1AF: A5 D8	LDA $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
C1B1: F0 2C	BEQ $C1DF
C1B3: 24 D8	BIT $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
C1B5: 50 06	BVC $C1BD
C1B7: AD 34 0A	LDA $0A34	; VIC Split Screen Raster Value
C1BA: 8D 12 D0	STA $D012

C1BD: A5 01	LDA $01
C1BF: 29 FD	AND #$FD
C1C1: 09 04	ORA #$04
C1C3: 48	PHA
C1C4: AD 2D 0A	LDA $0A2D	; VIC Graphic Mode Video Matrix & Bit Map Pointer. ($d018)
C1C7: 48	PHA
C1C8: AD 11 D0	LDA $D011
C1CB: 29 7F	AND #$7F
C1CD: 09 20	ORA #$20
C1CF: A8	TAY
C1D0: AD 16 D0	LDA $D016
C1D3: 24 D8	BIT $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
C1D5: 30 03	BMI $C1DA
C1D7: 29 EF	AND #$EF
C1D9: 2C	.BYTE $2C

C1DA: 09 10	ORA #$10
C1DC: AA	TAX
C1DD: D0 28	BNE $C207

C1DF: A9 FF	LDA #$FF
C1E1: 8D 12 D0	STA $D012
C1E4: A5 01	LDA $01
C1E6: 09 02	ORA #$02
C1E8: 29 FB	AND #$FB
C1EA: 05 D9	ORA $D9 	; Character base: 0 = ROM, 4 = RAM
C1EC: 48	PHA
C1ED: AD 2C 0A	LDA $0A2C	; VIC Text Mode Video Matrix & Character Base Pointer. ($d018)
C1F0: 48	PHA
C1F1: AD 11 D0	LDA $D011
C1F4: 29 5F	AND #$5F
C1F6: A8	TAY
C1F7: AD 16 D0	LDA $D016
C1FA: 29 EF	AND #$EF
C1FC: AA	TAX
C1FD: B0 08	BCS $C207
C1FF: A2 07	LDX #$07

C201: CA	DEX
C202: D0 FD	BNE $C201
C204: EA	NOP
C205: EA	NOP
C206: AA	TAX

C207: 68	PLA
C208: 8D 18 D0	STA $D018
C20B: 68	PLA
C20C: 85 01	STA $01
C20E: 8C 11 D0	STY $D011
C211: 8E 16 D0	STX $D016

C214: B0 13	BCS $C229
C216: AD 30 D0	LDA $D030
C219: 29 01	AND #$01
C21B: F0 0C	BEQ $C229
C21D: A5 D8	LDA $D8 	; Graphics mode code (BIT765: 000=0, 001=1, 011=2, 101=3, 111=4)
C21F: 29 40	AND #$40
C221: F0 06	BEQ $C229
C223: AD 11 D0	LDA $D011
C226: 10 01	BPL $C229
C228: 38	SEC

C229: 58	CLI
C22A: 90 07	BCC $C233
C22C: 20 87 FC	JSR $FC87	; Init KBD Translation Tables
C22F: 20 E7 C6	JSR $C6E7	; Flash 40 Column Cursor
C232: 38	SEC

C233: 60	RTS

; Get a Key

C234: A6 D1	LDX $D1 	; Number of programmed chars waiting
C236: F0 0C	BEQ $C244
C238: A4 D2	LDY $D2 	; Index Into Pending Function Key String
C23A: B9 0A 10	LDA $100A,Y
C23D: C6 D1	DEC $D1 	; Number of programmed chars waiting
C23F: E6 D2	INC $D2 	; Index Into Pending Function Key String
C241: 58	CLI
C242: 18	CLC
C243: 60	RTS

C244: AC 4A 03	LDY $034A	; IRQ Keyboard Buffer (10 Bytes)

C247: BD 4B 03	LDA $034B,X
C24A: 9D 4A 03	STA $034A,X	; IRQ Keyboard Buffer (10 Bytes)
C24D: E8	INX
C24E: E4 D0	CPX $D0 	; Number of characters in keyboard buffer
C250: D0 F5	BNE $C247
C252: C6 D0	DEC $D0 	; Number of characters in keyboard buffer
C254: 98	TYA
C255: 58	CLI
C256: 18	CLC
C257: 60	RTS

; Screen Line Editor

C258: 20 2D C7	JSR $C72D	; Print to Screen

C25B: 20 6F CD	JSR $CD6F	; Set Screen Color

C25E: A5 D0	LDA $D0 	; Number of characters in keyboard buffer
C260: 05 D1	ORA $D1 	; Number of programmed chars waiting
C262: F0 FA	BEQ $C25E
C264: 20 9F CD	JSR $CD9F	; Turn Cursor On
C267: 20 34 C2	JSR $C234	; Get a Key
C26A: C9 0D	CMP #$0D
C26C: D0 EA	BNE $C258	; Screen Line Editor
C26E: 85 D6	STA $D6 	; Input from screen / from keyboard
C270: A9 00	LDA #$00
C272: 85 F4	STA $F4 	; Quote Mode Flag
C274: 20 C3 CB	JSR $CBC3	; Find End-of-Line
C277: 8E 30 0A	STX $0A30
C27A: 20 B5 CB	JSR $CBB5
C27D: A4 E6	LDY $E6 	; Window Left Margin
C27F: A5 E8	LDA $E8 	; Current Input Column Start
C281: 30 13	BMI $C296
C283: C5 EB	CMP $EB 	; Current Cursor Line
C285: 90 0F	BCC $C296
C287: A4 E9	LDY $E9 	; Current Input Line Start
C289: CD 30 0A	CMP $0A30
C28C: D0 04	BNE $C292
C28E: C4 EA	CPY $EA 	; Current Input Line End
C290: F0 02	BEQ $C294

C292: B0 11	BCS $C2A5

C294: 85 EB	STA $EB 	; Current Cursor Line

C296: 84 EC	STY $EC 	; Current Cursor Column
C298: 4C BC C2	JMP $C2BC	; Read Screen Char

; Input From Screen

C29B: 98	TYA
C29C: 48	PHA
C29D: 8A	TXA
C29E: 48	PHA
C29F: A5 D6	LDA $D6 	; Input from screen / from keyboard
C2A1: F0 B8	BEQ $C25B
C2A3: 10 17	BPL $C2BC	; Read Screen Char

C2A5: A9 00	LDA #$00
C2A7: 85 D6	STA $D6 	; Input from screen / from keyboard
C2A9: A9 0D	LDA #$0D
C2AB: A2 03	LDX #$03
C2AD: E4 99	CPX $99 	; Input device, normally 0
C2AF: F0 04	BEQ $C2B5
C2B1: E4 9A	CPX $9A 	; Output device, normally 3
C2B3: F0 03	BEQ $C2B8

C2B5: 20 2D C7	JSR $C72D	; Print to Screen

C2B8: A9 0D	LDA #$0D
C2BA: D0 39	BNE $C2F5

; Read Screen Char

C2BC: 20 5C C1	JSR $C15C	; Set Up New Line
C2BF: 20 58 CB	JSR $CB58	; Get Screen Char/Color
C2C2: 85 EF	STA $EF 	; Current Character to Print
C2C4: 29 3F	AND #$3F
C2C6: 06 EF	ASL $EF 	; Current Character to Print
C2C8: 24 EF	BIT $EF 	; Current Character to Print
C2CA: 10 02	BPL $C2CE
C2CC: 09 80	ORA #$80

C2CE: 90 04	BCC $C2D4
C2D0: A6 F4	LDX $F4 	; Quote Mode Flag
C2D2: D0 04	BNE $C2D8

C2D4: 70 02	BVS $C2D8
C2D6: 09 40	ORA #$40

C2D8: 20 FF C2	JSR $C2FF	; Check For Quotes
C2DB: A4 EB	LDY $EB 	; Current Cursor Line
C2DD: CC 30 0A	CPY $0A30
C2E0: 90 0A	BCC $C2EC
C2E2: A4 EC	LDY $EC 	; Current Cursor Column
C2E4: C4 EA	CPY $EA 	; Current Input Line End
C2E6: 90 04	BCC $C2EC
C2E8: 66 D6	ROR $D6 	; Input from screen / from keyboard
C2EA: 30 03	BMI $C2EF

C2EC: 20 ED CB	JSR $CBED	; Move Cursor Right

C2EF: C9 DE	CMP #$DE
C2F1: D0 02	BNE $C2F5
C2F3: A9 FF	LDA #$FF

C2F5: 85 EF	STA $EF 	; Current Character to Print
C2F7: 68	PLA
C2F8: AA	TAX
C2F9: 68	PLA
C2FA: A8	TAY
C2FB: A5 EF	LDA $EF 	; Current Character to Print
C2FD: 18	CLC
C2FE: 60	RTS

; Check For Quotes

C2FF: C9 22	CMP #$22
C301: D0 08	BNE $C30B
C303: A5 F4	LDA $F4 	; Quote Mode Flag
C305: 49 01	EOR #$01
C307: 85 F4	STA $F4 	; Quote Mode Flag
C309: A9 22	LDA #$22

C30B: 60	RTS

; Wrap Up Screen Print

C30C: A5 EF	LDA $EF 	; Current Character to Print
C30E: 85 F0	STA $F0 	; Previous character printed (For <ESC> Test)
C310: 20 57 CD	JSR $CD57	; Position 80-col Cursor
C313: A5 F5	LDA $F5 	; Insert Mode Flag
C315: F0 02	BEQ $C319
C317: 46 F4	LSR $F4 	; Quote Mode Flag

C319: 68	PLA
C31A: A8	TAY
C31B: 68	PLA
C31C: AA	TAX
C31D: 68	PLA
C31E: 18	CLC
C31F: 60	RTS

; Ascii to Screen Code

C320: 09 40	ORA #$40

C322: A6 F3	LDX $F3 	; Reverse Mode Flag
C324: F0 02	BEQ $C328

C326: 09 80	ORA #$80

C328: A6 F5	LDX $F5 	; Insert Mode Flag
C32A: F0 02	BEQ $C32E
C32C: C6 F5	DEC $F5 	; Insert Mode Flag

C32E: 24 F6	BIT $F6 	; Auto-Insert Mode Flag
C330: 10 09	BPL $C33B
C332: 48	PHA
C333: 20 E3 C8	JSR $C8E3	; Open Screen Space
C336: A2 00	LDX #$00
C338: 86 F5	STX $F5 	; Insert Mode Flag
C33A: 68	PLA

C33B: 20 2F CC	JSR $CC2F	; Print Character

; Check Cursor Range

C33E: C4 E7	CPY $E7 	; Window Right Margin
C340: 90 0A	BCC $C34C
C342: A6 EB	LDX $EB 	; Current Cursor Line
C344: E4 E4	CPX $E4 	; Window Lower Limit
C346: 90 04	BCC $C34C
C348: 24 F8	BIT $F8
C34A: 30 16	BMI $C362

C34C: 20 5C C1	JSR $C15C	; Set Up New Line
C34F: 20 ED CB	JSR $CBED	; Move Cursor Right
C352: 90 0E	BCC $C362
C354: 20 74 CB	JSR $CB74	; Check Screen Line of Location
C357: B0 08	BCS $C361
C359: 38	SEC
C35A: 24 F8	BIT $F8
C35C: 70 04	BVS $C362
C35E: 20 7C C3	JSR $C37C	; Insert a Line

C361: 18	CLC

C362: 60	RTS

; Do New Line

C363: A6 EB	LDX $EB 	; Current Cursor Line
C365: E4 E4	CPX $E4 	; Window Lower Limit
C367: 90 0E	BCC $C377
C369: 24 F8	BIT $F8
C36B: 10 06	BPL $C373
C36D: A5 E5	LDA $E5 	; Window Upper Limit
C36F: 85 EB	STA $EB 	; Current Cursor Line
C371: B0 06	BCS $C379

C373: 20 A6 C3	JSR $C3A6	; Scroll Screen
C376: 18	CLC

C377: E6 EB	INC $EB 	; Current Cursor Line

C379: 4C 5C C1	JMP $C15C	; Set Up New Line

; Insert a Line

C37C: A6 E8	LDX $E8 	; Current Input Column Start
C37E: 30 06	BMI $C386
C380: E4 EB	CPX $EB 	; Current Cursor Line
C382: 90 02	BCC $C386
C384: E6 E8	INC $E8 	; Current Input Column Start

C386: A6 E4	LDX $E4 	; Window Lower Limit

C388: 20 5E C1	JSR $C15E
C38B: A4 E6	LDY $E6 	; Window Left Margin
C38D: E4 EB	CPX $EB 	; Current Cursor Line
C38F: F0 0F	BEQ $C3A0
C391: CA	DEX
C392: 20 76 CB	JSR $CB76
C395: E8	INX
C396: 20 83 CB	JSR $CB83
C399: CA	DEX
C39A: 20 0D C4	JSR $C40D	; Move Screen Line
C39D: 4C 88 C3	JMP $C388

C3A0: 20 A5 C4	JSR $C4A5	; Clear a Line
C3A3: 4C 93 CB	JMP $CB93

; Scroll Screen

C3A6: A6 E5	LDX $E5 	; Window Upper Limit

C3A8: E8	INX
C3A9: 20 76 CB	JSR $CB76
C3AC: 90 0A	BCC $C3B8
C3AE: E4 E4	CPX $E4 	; Window Lower Limit
C3B0: 90 F6	BCC $C3A8
C3B2: A6 E5	LDX $E5 	; Window Upper Limit
C3B4: E8	INX
C3B5: 20 85 CB	JSR $CB85

C3B8: C6 EB	DEC $EB 	; Current Cursor Line
C3BA: 24 E8	BIT $E8 	; Current Input Column Start
C3BC: 30 02	BMI $C3C0
C3BE: C6 E8	DEC $E8 	; Current Input Column Start

C3C0: A6 E5	LDX $E5 	; Window Upper Limit
C3C2: E4 DF	CPX $DF
C3C4: B0 02	BCS $C3C8
C3C6: C6 DF	DEC $DF

C3C8: 20 DC C3	JSR $C3DC	; Delete a Line
C3CB: A6 E5	LDX $E5 	; Window Upper Limit
C3CD: 20 76 CB	JSR $CB76
C3D0: 08	PHP
C3D1: 20 85 CB	JSR $CB85
C3D4: 28	PLP
C3D5: 90 04	BCC $C3DB
C3D7: 24 F8	BIT $F8
C3D9: 30 CB	BMI $C3A6	; Scroll Screen

C3DB: 60	RTS

; Delete a Line

C3DC: 20 5E C1	JSR $C15E
C3DF: A4 E6	LDY $E6 	; Window Left Margin
C3E1: E4 E4	CPX $E4 	; Window Lower Limit
C3E3: B0 0F	BCS $C3F4
C3E5: E8	INX
C3E6: 20 76 CB	JSR $CB76
C3E9: CA	DEX
C3EA: 20 83 CB	JSR $CB83
C3ED: E8	INX
C3EE: 20 0D C4	JSR $C40D	; Move Screen Line
C3F1: 4C DC C3	JMP $C3DC	; Delete a Line

C3F4: 20 A5 C4	JSR $C4A5	; Clear a Line
C3F7: A9 7F	LDA #$7F
C3F9: 8D 00 DC	STA $DC00
C3FC: AD 01 DC	LDA $DC01
C3FF: C9 DF	CMP #$DF
C401: D0 09	BNE $C40C
C403: A0 00	LDY #$00

C405: EA	NOP
C406: CA	DEX
C407: D0 FC	BNE $C405
C409: 88	DEY
C40A: D0 F9	BNE $C405

C40C: 60	RTS

; Move Screen Line

C40D: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
C40F: 30 25	BMI $C436
C411: BD 33 C0	LDA $C033,X	; Screen Address Low
C414: 85 DC	STA $DC
C416: 85 DA	STA $DA
C418: BD 4C C0	LDA $C04C,X	; Screen Address High
C41B: 29 03	AND #$03
C41D: 0D 3B 0A	ORA $0A3B	; VIC Text Screen Base address
C420: 85 DB	STA $DB
C422: 29 03	AND #$03
C424: 09 D8	ORA #$D8
C426: 85 DD	STA $DD

C428: B1 DA	LDA ($DA),Y
C42A: 91 E0	STA ($E0),Y	; Pointer to Current Line (Text)
C42C: B1 DC	LDA ($DC),Y
C42E: 91 E2	STA ($E2),Y	; Pointer to Current Line (Attribute)
C430: C4 E7	CPY $E7 	; Window Right Margin
C432: C8	INY
C433: 90 F3	BCC $C428
C435: 60	RTS

C436: 8E 31 0A	STX $0A31
C439: 8C 32 0A	STY $0A32
C43C: A2 18	LDX #$18
C43E: 20 DA CD	JSR $CDDA	; Read CRTC Register
C441: 09 80	ORA #$80
C443: 20 CC CD	JSR $CDCC	; Set CRTC Register
C446: 20 E6 CD	JSR $CDE6	; Set CRTC to Screen Address
C449: AE 31 0A	LDX $0A31
C44C: BD 33 C0	LDA $C033,X	; Screen Address Low
C44F: 0A	ASL A
C450: 85 DA	STA $DA
C452: BD 4C C0	LDA $C04C,X	; Screen Address High
C455: 29 03	AND #$03
C457: 2A	ROL A
C458: 0D 2E 0A	ORA $0A2E	; VDC Text Screen Base address
C45B: 85 DB	STA $DB
C45D: A2 20	LDX #$20
C45F: 18	CLC
C460: 98	TYA
C461: 65 DA	ADC $DA
C463: 85 DA	STA $DA
C465: A9 00	LDA #$00
C467: 65 DB	ADC $DB
C469: 85 DB	STA $DB
C46B: 20 CC CD	JSR $CDCC	; Set CRTC Register
C46E: E8	INX
C46F: A5 DA	LDA $DA
C471: 20 CC CD	JSR $CDCC	; Set CRTC Register
C474: 38	SEC
C475: A6 E7	LDX $E7 	; Window Right Margin
C477: E8	INX
C478: 8A	TXA
C479: ED 32 0A	SBC $0A32
C47C: 8D 32 0A	STA $0A32
C47F: A2 1E	LDX #$1E
C481: 20 CC CD	JSR $CDCC	; Set CRTC Register
C484: A2 20	LDX #$20
C486: A5 DB	LDA $DB
C488: 29 07	AND #$07
C48A: 0D 2F 0A	ORA $0A2F	; VDC Attribute Base address
C48D: 20 CC CD	JSR $CDCC	; Set CRTC Register
C490: E8	INX
C491: A5 DA	LDA $DA
C493: 20 CC CD	JSR $CDCC	; Set CRTC Register
C496: 20 F9 CD	JSR $CDF9	; Set CRTC to Color Address
C499: AD 32 0A	LDA $0A32
C49C: A2 1E	LDX #$1E
C49E: 20 CC CD	JSR $CDCC	; Set CRTC Register
C4A1: AE 31 0A	LDX $0A31
C4A4: 60	RTS

; Clear a Line

C4A5: A4 E6	LDY $E6 	; Window Left Margin
C4A7: 20 85 CB	JSR $CB85

C4AA: 20 5E C1	JSR $C15E
C4AD: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
C4AF: 30 0F	BMI $C4C0
C4B1: 88	DEY

C4B2: C8	INY
C4B3: A9 20	LDA #$20
C4B5: 91 E0	STA ($E0),Y	; Pointer to Current Line (Text)
C4B7: A5 F1	LDA $F1 	; Curr Attribute to Print (Default FGND Color)
C4B9: 91 E2	STA ($E2),Y	; Pointer to Current Line (Attribute)
C4BB: C4 E7	CPY $E7 	; Window Right Margin
C4BD: D0 F3	BNE $C4B2
C4BF: 60	RTS

C4C0: 8E 31 0A	STX $0A31
C4C3: 8C 32 0A	STY $0A32
C4C6: A2 18	LDX #$18
C4C8: 20 DA CD	JSR $CDDA	; Read CRTC Register
C4CB: 29 7F	AND #$7F
C4CD: 20 CC CD	JSR $CDCC	; Set CRTC Register
C4D0: A2 12	LDX #$12
C4D2: 18	CLC
C4D3: 98	TYA
C4D4: 65 E0	ADC $E0 	; Pointer to Current Line (Text)
C4D6: 48	PHA
C4D7: 8D 3C 0A	STA $0A3C
C4DA: A9 00	LDA #$00
C4DC: 65 E1	ADC $E1 	; Pointer to Current Line high (Text)
C4DE: 8D 3D 0A	STA $0A3D
C4E1: 20 CC CD	JSR $CDCC	; Set CRTC Register
C4E4: E8	INX
C4E5: 68	PLA
C4E6: 20 CC CD	JSR $CDCC	; Set CRTC Register
C4E9: A9 20	LDA #$20
C4EB: 20 CA CD	JSR $CDCA	; Set CRTC Register 31
C4EE: 38	SEC
C4EF: A5 E7	LDA $E7 	; Window Right Margin
C4F1: ED 32 0A	SBC $0A32
C4F4: 48	PHA
C4F5: F0 14	BEQ $C50B
C4F7: AA	TAX
C4F8: 38	SEC
C4F9: 6D 3C 0A	ADC $0A3C
C4FC: 8D 3C 0A	STA $0A3C
C4FF: A9 00	LDA #$00
C501: 6D 3D 0A	ADC $0A3D
C504: 8D 3D 0A	STA $0A3D
C507: 8A	TXA
C508: 20 3E C5	JSR $C53E	; Set 80-Column Counter

C50B: A2 12	LDX #$12
C50D: 18	CLC
C50E: 98	TYA
C50F: 65 E2	ADC $E2 	; Pointer to Current Line (Attribute)
C511: 48	PHA
C512: A9 00	LDA #$00
C514: 65 E3	ADC $E3 	; Pointer to Current Line high (Attribute)
C516: 20 CC CD	JSR $CDCC	; Set CRTC Register
C519: E8	INX
C51A: 68	PLA
C51B: 20 CC CD	JSR $CDCC	; Set CRTC Register
C51E: AD 3D 0A	LDA $0A3D
C521: 29 07	AND #$07
C523: 0D 2F 0A	ORA $0A2F	; VDC Attribute Base address
C526: 8D 3D 0A	STA $0A3D
C529: A5 F1	LDA $F1 	; Curr Attribute to Print (Default FGND Color)
C52B: 29 8F	AND #$8F
C52D: 20 CA CD	JSR $CDCA	; Set CRTC Register 31
C530: 68	PLA
C531: F0 03	BEQ $C536
C533: 20 3E C5	JSR $C53E	; Set 80-Column Counter

C536: AE 31 0A	LDX $0A31
C539: A4 E7	LDY $E7 	; Window Right Margin
C53B: 60	RTS

; Set 80-Column Counter to 1

C53C: A9 01	LDA #$01

; Set 80-Column Counter

C53E: A2 1E	LDX #$1E
C540: 20 CC CD	JSR $CDCC	; Set CRTC Register

C543: 2C 00 D6	BIT $D600
C546: 10 FB	BPL $C543
C548: A2 12	LDX #$12
C54A: 20 DA CD	JSR $CDDA	; Read CRTC Register
C54D: CD 3D 0A	CMP $0A3D
C550: 90 EA	BCC $C53C	; Set 80-Column Counter to 1
C552: A2 13	LDX #$13
C554: 20 DA CD	JSR $CDDA	; Read CRTC Register
C557: CD 3C 0A	CMP $0A3C
C55A: 90 E0	BCC $C53C	; Set 80-Column Counter to 1
C55C: 60	RTS

; Keyboard Scan Subroutine

C55D: A5 01	LDA $01
C55F: 29 40	AND #$40
C561: 49 40	EOR #$40
C563: 4A	LSR A
C564: 4A	LSR A
C565: 85 D3	STA $D3 	; Key shift flag: (1= Shift, 2= C=, 4= Control, 8= Alt, 16= Caps Lock)
C567: A0 58	LDY #$58
C569: 84 D4	STY $D4
C56B: A9 00	LDA #$00
C56D: 8D 00 DC	STA $DC00
C570: 8D 2F D0	STA $D02F
C573: AE 01 DC	LDX $DC01
C576: E0 FF	CPX #$FF
C578: D0 03	BNE $C57D
C57A: 4C 97 C6	JMP $C697

C57D: A8	TAY
C57E: AD 3E 03	LDA $033E
C581: 85 CC	STA $CC 	; Keyscan Table Pointer
C583: AD 3F 03	LDA $033F
C586: 85 CD	STA $CD 	; Keyscan Table Pointer high
C588: A9 FF	LDA #$FF
C58A: 8D 2F D0	STA $D02F
C58D: 2A	ROL A

C58E: 24 D3	BIT $D3 	; Key shift flag: (1= Shift, 2= C=, 4= Control, 8= Alt, 16= Caps Lock)
C590: 30 05	BMI $C597
C592: 8D 00 DC	STA $DC00
C595: 10 03	BPL $C59A

C597: 8D 2F D0	STA $D02F

C59A: A2 08	LDX #$08
C59C: 48	PHA

C59D: AD 01 DC	LDA $DC01
C5A0: CD 01 DC	CMP $DC01
C5A3: D0 F8	BNE $C59D

C5A5: 4A	LSR A
C5A6: B0 17	BCS $C5BF
C5A8: 48	PHA
C5A9: B1 CC	LDA ($CC),Y	; Keyscan Table Pointer
C5AB: C9 08	CMP #$08
C5AD: F0 08	BEQ $C5B7
C5AF: C9 05	CMP #$05
C5B1: B0 09	BCS $C5BC
C5B3: C9 03	CMP #$03
C5B5: F0 05	BEQ $C5BC

C5B7: 05 D3	ORA $D3 	; Key shift flag: (1= Shift, 2= C=, 4= Control, 8= Alt, 16= Caps Lock)
C5B9: 85 D3	STA $D3 	; Key shift flag: (1= Shift, 2= C=, 4= Control, 8= Alt, 16= Caps Lock)
C5BB: 2C	.BYTE $2C

C5BC: 84 D4	STY $D4
C5BE: 68	PLA

C5BF: C8	INY
C5C0: CA	DEX
C5C1: D0 E2	BNE $C5A5
C5C3: C0 59	CPY #$59
C5C5: B0 10	BCS $C5D7
C5C7: 68	PLA
C5C8: 38	SEC
C5C9: 2A	ROL A
C5CA: B0 C2	BCS $C58E
C5CC: 8D 00 DC	STA $DC00
C5CF: 26 D3	ROL $D3 	; Key shift flag: (1= Shift, 2= C=, 4= Control, 8= Alt, 16= Caps Lock)
C5D1: 38	SEC
C5D2: 66 D3	ROR $D3 	; Key shift flag: (1= Shift, 2= C=, 4= Control, 8= Alt, 16= Caps Lock)
C5D4: 2A	ROL A
C5D5: D0 B7	BNE $C58E

C5D7: 06 D3	ASL $D3 	; Key shift flag: (1= Shift, 2= C=, 4= Control, 8= Alt, 16= Caps Lock)
C5D9: 46 D3	LSR $D3 	; Key shift flag: (1= Shift, 2= C=, 4= Control, 8= Alt, 16= Caps Lock)
C5DB: 68	PLA
C5DC: A5 D4	LDA $D4
C5DE: 6C 3A 03	JMP ($033A)	; Keyscan Link [C5E1]

; Kernal Keyboard Scan Subroutine

C5E1: C9 57	CMP #$57
C5E3: D0 13	BNE $C5F8
C5E5: 24 F7	BIT $F7
C5E7: 70 5A	BVS $C643
C5E9: AD 25 0A	LDA $0A25	; Delay Between C= + SHIFT Toggles
C5EC: D0 55	BNE $C643
C5EE: A9 0D	LDA #$0D
C5F0: 4D 21 0A	EOR $0A21	; Screen Freeze Flag
C5F3: 8D 21 0A	STA $0A21	; Screen Freeze Flag
C5F6: 50 30	BVC $C628

C5F8: A5 D3	LDA $D3 	; Key shift flag: (1= Shift, 2= C=, 4= Control, 8= Alt, 16= Caps Lock)
C5FA: F0 55	BEQ $C651	; Key Pickup & Repeat
C5FC: C9 10	CMP #$10
C5FE: F0 44	BEQ $C644
C600: C9 08	CMP #$08
C602: F0 42	BEQ $C646
C604: 29 07	AND #$07
C606: C9 03	CMP #$03
C608: D0 25	BNE $C62F
C60A: A5 F7	LDA $F7
C60C: 30 43	BMI $C651	; Key Pickup & Repeat
C60E: AD 25 0A	LDA $0A25	; Delay Between C= + SHIFT Toggles
C611: D0 3E	BNE $C651	; Key Pickup & Repeat
C613: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
C615: 10 09	BPL $C620
C617: A5 F1	LDA $F1 	; Curr Attribute to Print (Default FGND Color)
C619: 49 80	EOR #$80
C61B: 85 F1	STA $F1 	; Curr Attribute to Print (Default FGND Color)
C61D: 4C 28 C6	JMP $C628

C620: AD 2C 0A	LDA $0A2C	; VIC Text Mode Video Matrix & Character Base Pointer. ($d018)
C623: 49 02	EOR #$02
C625: 8D 2C 0A	STA $0A2C	; VIC Text Mode Video Matrix & Character Base Pointer. ($d018)

C628: A9 08	LDA #$08
C62A: 8D 25 0A	STA $0A25	; Delay Between C= + SHIFT Toggles
C62D: D0 22	BNE $C651	; Key Pickup & Repeat

C62F: 0A	ASL A
C630: C9 08	CMP #$08
C632: 90 12	BCC $C646
C634: A9 06	LDA #$06
C636: A6 D4	LDX $D4
C638: E0 0D	CPX #$0D
C63A: D0 0A	BNE $C646
C63C: 24 F7	BIT $F7
C63E: 70 06	BVS $C646
C640: 8E 21 0A	STX $0A21	; Screen Freeze Flag

C643: 60	RTS

C644: A9 0A	LDA #$0A

C646: AA	TAX
C647: BD 3E 03	LDA $033E,X
C64A: 85 CC	STA $CC 	; Keyscan Table Pointer
C64C: BD 3F 03	LDA $033F,X
C64F: 85 CD	STA $CD 	; Keyscan Table Pointer high

; Key Pickup & Repeat

C651: A4 D4	LDY $D4
C653: B1 CC	LDA ($CC),Y	; Keyscan Table Pointer
C655: AA	TAX
C656: C4 D5	CPY $D5
C658: F0 07	BEQ $C661
C65A: A0 10	LDY #$10
C65C: 8C 24 0A	STY $0A24	; Delay Before a Key Starts Repeating
C65F: D0 36	BNE $C697

C661: 29 7F	AND #$7F
C663: 2C 22 0A	BIT $0A22	; Enable Key Repeats (128=all, 64=none, 0=some)
C666: 30 16	BMI $C67E
C668: 70 5A	BVS $C6C4
C66A: C9 7F	CMP #$7F
C66C: F0 29	BEQ $C697
C66E: C9 14	CMP #$14
C670: F0 0C	BEQ $C67E
C672: C9 20	CMP #$20
C674: F0 08	BEQ $C67E
C676: C9 1D	CMP #$1D
C678: F0 04	BEQ $C67E
C67A: C9 11	CMP #$11
C67C: D0 46	BNE $C6C4

C67E: AC 24 0A	LDY $0A24	; Delay Before a Key Starts Repeating
C681: F0 05	BEQ $C688
C683: CE 24 0A	DEC $0A24	; Delay Before a Key Starts Repeating
C686: D0 3C	BNE $C6C4

C688: CE 23 0A	DEC $0A23	; Delay Between Key Repeats
C68B: D0 37	BNE $C6C4
C68D: A0 04	LDY #$04
C68F: 8C 23 0A	STY $0A23	; Delay Between Key Repeats
C692: A4 D0	LDY $D0 	; Number of characters in keyboard buffer
C694: 88	DEY
C695: 10 2D	BPL $C6C4

C697: 4E 25 0A	LSR $0A25	; Delay Between C= + SHIFT Toggles
C69A: A4 D4	LDY $D4
C69C: 84 D5	STY $D5
C69E: E0 FF	CPX #$FF
C6A0: F0 22	BEQ $C6C4
C6A2: A9 00	LDA #$00
C6A4: 8D 21 0A	STA $0A21	; Screen Freeze Flag
C6A7: 8A	TXA
C6A8: A6 D3	LDX $D3 	; Key shift flag: (1= Shift, 2= C=, 4= Control, 8= Alt, 16= Caps Lock)
C6AA: 4C C6 FC	JMP $FCC6	; DIN Keyboard patch for Key Pickup

; Kernal Store Key

C6AD: A2 09	LDX #$09

C6AF: DD DD C6	CMP $C6DD,X	; Keycodes for Programmed Keys
C6B2: F0 16	BEQ $C6CA
C6B4: CA	DEX
C6B5: 10 F8	BPL $C6AF
C6B7: A6 D0	LDX $D0 	; Number of characters in keyboard buffer
C6B9: EC 20 0A	CPX $0A20	; Keyboard Queue Maximum Size
C6BC: B0 06	BCS $C6C4
C6BE: 9D 4A 03	STA $034A,X	; IRQ Keyboard Buffer (10 Bytes)
C6C1: E8	INX
C6C2: 86 D0	STX $D0 	; Number of characters in keyboard buffer

C6C4: A9 7F	LDA #$7F
C6C6: 8D 00 DC	STA $DC00
C6C9: 60	RTS

C6CA: 4C 00 CF	JMP $CF00	; ?
C6CD: 85 D1	STA $D1 	; Number of programmed chars waiting
C6CF: A9 00	LDA #$00

C6D1: CA	DEX
C6D2: 30 06	BMI $C6DA
C6D4: 18	CLC
C6D5: 7D 00 10	ADC $1000,X
C6D8: 90 F7	BCC $C6D1

C6DA: 85 D2	STA $D2 	; Index Into Pending Function Key String
C6DC: 60	RTS

; Keycodes for Programmed Keys

C6DD: 85 89 86 8A 87 8B 88 8C	; '........'
C6E5: 83 84                  	; '..'

; Flash 40 Column Cursor

C6E7: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
C6E9: 30 41	BMI $C72C
C6EB: AD 27 0A	LDA $0A27	; VIC Cursor Disable
C6EE: D0 3C	BNE $C72C
C6F0: CE 28 0A	DEC $0A28	; VIC Cursor Blink Counter
C6F3: D0 37	BNE $C72C
C6F5: AD 26 0A	LDA $0A26	; VIC Cursor Mode (Blinking, Solid)
C6F8: 29 C0	AND #$C0
C6FA: C9 C0	CMP #$C0
C6FC: F0 2E	BEQ $C72C
C6FE: A9 14	LDA #$14
C700: 8D 28 0A	STA $0A28	; VIC Cursor Blink Counter
C703: A4 EC	LDY $EC 	; Current Cursor Column
C705: AE 2A 0A	LDX $0A2A	; VIC Cursor Color Before Blink
C708: B1 E0	LDA ($E0),Y	; Pointer to Current Line (Text)
C70A: 2C 26 0A	BIT $0A26	; VIC Cursor Mode (Blinking, Solid)
C70D: 30 10	BMI $C71F
C70F: 8D 29 0A	STA $0A29	; VIC Cursor Character Before Blink
C712: 20 7C C1	JSR $C17C	; Do Screen Color
C715: B1 E2	LDA ($E2),Y	; Pointer to Current Line (Attribute)
C717: 8D 2A 0A	STA $0A2A	; VIC Cursor Color Before Blink
C71A: A6 F1	LDX $F1 	; Curr Attribute to Print (Default FGND Color)
C71C: AD 29 0A	LDA $0A29	; VIC Cursor Character Before Blink

C71F: 49 80	EOR #$80
C721: 20 40 CC	JSR $CC40
C724: AD 26 0A	LDA $0A26	; VIC Cursor Mode (Blinking, Solid)
C727: 49 80	EOR #$80
C729: 8D 26 0A	STA $0A26	; VIC Cursor Mode (Blinking, Solid)

C72C: 60	RTS

; Print to Screen

C72D: 85 EF	STA $EF 	; Current Character to Print
C72F: 48	PHA
C730: 8A	TXA
C731: 48	PHA
C732: 98	TYA
C733: 48	PHA

C734: AD 21 0A	LDA $0A21	; Screen Freeze Flag
C737: D0 FB	BNE $C734
C739: 85 D6	STA $D6 	; Input from screen / from keyboard
C73B: A9 C3	LDA #$C3
C73D: 48	PHA
C73E: A9 0B	LDA #$0B
C740: 48	PHA
C741: A4 EC	LDY $EC 	; Current Cursor Column
C743: A5 EF	LDA $EF 	; Current Character to Print
C745: C9 0D	CMP #$0D
C747: F0 26	BEQ $C76F
C749: C9 8D	CMP #$8D
C74B: F0 22	BEQ $C76F
C74D: A6 F0	LDX $F0 	; Previous character printed (For <ESC> Test)
C74F: E0 1B	CPX #$1B
C751: D0 03	BNE $C756
C753: 4C BE C9	JMP $C9BE	; Analyze Esc Sequence

C756: AA	TAX
C757: 10 03	BPL $C75C
C759: 4C 02 C8	JMP $C802	; Print Hi-Bit Char

C75C: C9 20	CMP #$20
C75E: 90 56	BCC $C7B6	; Print Control Char
C760: C9 60	CMP #$60
C762: 90 03	BCC $C767
C764: 29 DF	AND #$DF
C766: 2C	.BYTE $2C

C767: 29 3F	AND #$3F
C769: 20 FF C2	JSR $C2FF	; Check For Quotes
C76C: 4C 22 C3	JMP $C322

C76F: 20 C3 CB	JSR $CBC3	; Find End-of-Line
C772: E8	INX
C773: 20 85 CB	JSR $CB85
C776: A4 E6	LDY $E6 	; Window Left Margin
C778: 84 EC	STY $EC 	; Current Cursor Column
C77A: 20 63 C3	JSR $C363	; Do New Line

; Esc-o (escape)

C77D: A5 F1	LDA $F1 	; Curr Attribute to Print (Default FGND Color)
C77F: 29 CF	AND #$CF
C781: 85 F1	STA $F1 	; Curr Attribute to Print (Default FGND Color)
C783: A9 00	LDA #$00
C785: 85 F5	STA $F5 	; Insert Mode Flag
C787: 85 F3	STA $F3 	; Reverse Mode Flag
C789: 85 F4	STA $F4 	; Quote Mode Flag
C78B: 60	RTS

; Control Characters

C78C: 02 07 09 0A 0B 0C 0E 0F	; '{ULON}{BELL}{TAB}{LF}{LOCK}{UNLOCK}{LOWTEXT}{FLSHON}'
C794: 11 12 13 14 18 1D      	; '{DOWN}{RVSON}{HOME}{DEL}{TABT}{RIGHT}'

; Control Character Vectors

C79A: C6 C8	.WORD $C8C7-1	; Chr$(2)   Underline On
C79C: 8D C9	.WORD $C98E-1	; Chr$(7)   Bell
C79E: 4E C9	.WORD $C94F-1	; Chr$(9)   Tab
C7A0: B0 C9	.WORD $C9B1-1	; Chr$(10)  Linefeed
C7A2: A5 C8	.WORD $C8A6-1	; Chr$(11)  Lock
C7A4: AB C8	.WORD $C8AC-1	; Chr$(12)  Unlock
C7A6: 7F C8	.WORD $C880-1	; Chr$(14)  Text Mode
C7A8: D4 C8	.WORD $C8D5-1	; Chr$(15)  Flash On
C7AA: 59 C8	.WORD $C85A-1	; Chr$(17)  Cursor Down
C7AC: C1 C8	.WORD $C8C2-1	; Chr$(18)  Reverse
C7AE: B2 C8	.WORD $C8B3-1	; Chr$(19)  Home
C7B0: 1A C9	.WORD $C91B-1	; Chr$(20)  Delete
C7B2: 60 C9	.WORD $C961-1	; Chr$(24)  Tab Toggle
C7B4: 53 C8	.WORD $C854-1	; Chr$(29)  Cursor Right

; Print Control Char

C7B6: 6C 34 03	JMP ($0334)	; Print Control Code Link [C7B9]

; Kernal Print Control Char

C7B9: C9 1B	CMP #$1B
C7BB: F0 38	BEQ $C7F5
C7BD: A6 F5	LDX $F5 	; Insert Mode Flag
C7BF: D0 08	BNE $C7C9
C7C1: C9 14	CMP #$14
C7C3: F0 0B	BEQ $C7D0
C7C5: A6 F4	LDX $F4 	; Quote Mode Flag
C7C7: F0 07	BEQ $C7D0

C7C9: A2 00	LDX #$00
C7CB: 86 EF	STX $EF 	; Current Character to Print
C7CD: 4C 26 C3	JMP $C326

C7D0: A2 0D	LDX #$0D

C7D2: DD 8C C7	CMP $C78C,X	; Control Characters
C7D5: F0 1F	BEQ $C7F6
C7D7: CA	DEX
C7D8: 10 F8	BPL $C7D2

C7DA: A2 0F	LDX #$0F

C7DC: DD 4C CE	CMP $CE4C,X	; Ascii Color Codes
C7DF: F0 04	BEQ $C7E5
C7E1: CA	DEX
C7E2: 10 F8	BPL $C7DC
C7E4: 60	RTS

C7E5: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
C7E7: 30 03	BMI $C7EC
C7E9: 86 F1	STX $F1 	; Curr Attribute to Print (Default FGND Color)
C7EB: 60	RTS

C7EC: A5 F1	LDA $F1 	; Curr Attribute to Print (Default FGND Color)
C7EE: 29 F0	AND #$F0
C7F0: 1D 5C CE	ORA $CE5C,X	; System Color Codes
C7F3: 85 F1	STA $F1 	; Curr Attribute to Print (Default FGND Color)

C7F5: 60	RTS

C7F6: 8A	TXA
C7F7: 0A	ASL A
C7F8: AA	TAX
C7F9: BD 9B C7	LDA $C79B,X
C7FC: 48	PHA
C7FD: BD 9A C7	LDA $C79A,X	; Control Character Vectors
C800: 48	PHA
C801: 60	RTS

; Print Hi-Bit Char

C802: 6C 36 03	JMP ($0336)	; Print High ASCII Code Link [C805]

; Kernal Print Hi-Bit Char

C805: 29 7F	AND #$7F
C807: C9 20	CMP #$20
C809: 90 09	BCC $C814
C80B: C9 7F	CMP #$7F
C80D: D0 02	BNE $C811
C80F: A9 5E	LDA #$5E

C811: 4C 20 C3	JMP $C320	; Ascii to Screen Code

C814: A6 F4	LDX $F4 	; Quote Mode Flag
C816: F0 05	BEQ $C81D

C818: 09 40	ORA #$40
C81A: 4C 26 C3	JMP $C326

C81D: C9 14	CMP #$14
C81F: D0 03	BNE $C824
C821: 4C E3 C8	JMP $C8E3	; Open Screen Space

C824: A6 F5	LDX $F5 	; Insert Mode Flag
C826: D0 F0	BNE $C818
C828: C9 11	CMP #$11
C82A: F0 3B	BEQ $C867	; Chr$(145) Cursor Up
C82C: C9 1D	CMP #$1D
C82E: F0 45	BEQ $C875	; Chr$(157) Cursor Left
C830: C9 0E	CMP #$0E
C832: F0 5E	BEQ $C892
C834: C9 12	CMP #$12
C836: D0 03	BNE $C83B
C838: 4C BF C8	JMP $C8BF	; Chr$(146) Clear Rvs Mode

C83B: C9 02	CMP #$02
C83D: D0 03	BNE $C842
C83F: 4C CE C8	JMP $C8CE	; Chr$(130) Underline Off

C842: C9 0F	CMP #$0F
C844: D0 03	BNE $C849
C846: 4C DC C8	JMP $C8DC	; Chr$(143) Flash Off

C849: C9 13	CMP #$13
C84B: D0 03	BNE $C850
C84D: 4C 42 C1	JMP $C142	; Reset Window

C850: 09 80	ORA #$80
C852: D0 86	BNE $C7DA

; Chr$(29)  Cursor Right

C854: 20 ED CB	JSR $CBED	; Move Cursor Right
C857: B0 04	BCS $C85D
C859: 60	RTS

; Chr$(17)  Cursor Down

C85A: 20 63 C3	JSR $C363	; Do New Line

C85D: 20 74 CB	JSR $CB74	; Check Screen Line of Location
C860: B0 03	BCS $C865
C862: 38	SEC
C863: 66 E8	ROR $E8 	; Current Input Column Start

C865: 18	CLC

C866: 60	RTS

; Chr$(145) Cursor Up

C867: A6 E5	LDX $E5 	; Window Upper Limit
C869: E4 EB	CPX $EB 	; Current Cursor Line
C86B: B0 F9	BCS $C866

C86D: 20 5D C8	JSR $C85D
C870: C6 EB	DEC $EB 	; Current Cursor Line
C872: 4C 5C C1	JMP $C15C	; Set Up New Line

; Chr$(157) Cursor Left

C875: 20 00 CC	JSR $CC00	; Move Cursor Left
C878: B0 EC	BCS $C866
C87A: D0 E9	BNE $C865
C87C: E6 EB	INC $EB 	; Current Cursor Line
C87E: D0 ED	BNE $C86D

; Chr$(14)  Text Mode

C880: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
C882: 30 07	BMI $C88B
C884: AD 2C 0A	LDA $0A2C	; VIC Text Mode Video Matrix & Character Base Pointer. ($d018)
C887: 09 02	ORA #$02
C889: D0 10	BNE $C89B

C88B: A5 F1	LDA $F1 	; Curr Attribute to Print (Default FGND Color)
C88D: 09 80	ORA #$80
C88F: 85 F1	STA $F1 	; Curr Attribute to Print (Default FGND Color)
C891: 60	RTS

C892: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
C894: 30 09	BMI $C89F
C896: AD 2C 0A	LDA $0A2C	; VIC Text Mode Video Matrix & Character Base Pointer. ($d018)
C899: 29 FD	AND #$FD

C89B: 8D 2C 0A	STA $0A2C	; VIC Text Mode Video Matrix & Character Base Pointer. ($d018)
C89E: 60	RTS

C89F: A5 F1	LDA $F1 	; Curr Attribute to Print (Default FGND Color)
C8A1: 29 7F	AND #$7F
C8A3: 85 F1	STA $F1 	; Curr Attribute to Print (Default FGND Color)
C8A5: 60	RTS

; Chr$(11)  Lock

C8A6: A9 80	LDA #$80
C8A8: 05 F7	ORA $F7
C8AA: 30 04	BMI $C8B0

; Chr$(12)  Unlock

C8AC: A9 7F	LDA #$7F
C8AE: 25 F7	AND $F7

C8B0: 85 F7	STA $F7
C8B2: 60	RTS

; Chr$(19)  Home

C8B3: A5 F0	LDA $F0 	; Previous character printed (For <ESC> Test)
C8B5: C9 13	CMP #$13
C8B7: D0 03	BNE $C8BC
C8B9: 20 24 CA	JSR $CA24	; Exit Window

C8BC: 4C 50 C1	JMP $C150	; Home Cursor

; Chr$(146) Clear Rvs Mode

C8BF: A9 00	LDA #$00
C8C1: 2C	.BYTE $2C

; Chr$(18)  Reverse

C8C2: A9 80	LDA #$80
C8C4: 85 F3	STA $F3 	; Reverse Mode Flag
C8C6: 60	RTS

; Chr$(2)   Underline On

C8C7: A5 F1	LDA $F1 	; Curr Attribute to Print (Default FGND Color)
C8C9: 09 20	ORA #$20
C8CB: 85 F1	STA $F1 	; Curr Attribute to Print (Default FGND Color)
C8CD: 60	RTS

; Chr$(130) Underline Off

C8CE: A5 F1	LDA $F1 	; Curr Attribute to Print (Default FGND Color)
C8D0: 29 DF	AND #$DF
C8D2: 85 F1	STA $F1 	; Curr Attribute to Print (Default FGND Color)
C8D4: 60	RTS

; Chr$(15)  Flash On

C8D5: A5 F1	LDA $F1 	; Curr Attribute to Print (Default FGND Color)
C8D7: 09 10	ORA #$10
C8D9: 85 F1	STA $F1 	; Curr Attribute to Print (Default FGND Color)
C8DB: 60	RTS

; Chr$(143) Flash Off

C8DC: A5 F1	LDA $F1 	; Curr Attribute to Print (Default FGND Color)
C8DE: 29 EF	AND #$EF
C8E0: 85 F1	STA $F1 	; Curr Attribute to Print (Default FGND Color)
C8E2: 60	RTS

; Open Screen Space

C8E3: 20 1E CC	JSR $CC1E	; Save Cursor
C8E6: 20 C3 CB	JSR $CBC3	; Find End-of-Line
C8E9: E4 DF	CPX $DF
C8EB: D0 02	BNE $C8EF
C8ED: C4 DE	CPY $DE

C8EF: 90 21	BCC $C912
C8F1: 20 3E C3	JSR $C33E	; Check Cursor Range
C8F4: B0 22	BCS $C918

C8F6: 20 00 CC	JSR $CC00	; Move Cursor Left
C8F9: 20 58 CB	JSR $CB58	; Get Screen Char/Color
C8FC: 20 ED CB	JSR $CBED	; Move Cursor Right
C8FF: 20 32 CC	JSR $CC32	; Print Fill Color
C902: 20 00 CC	JSR $CC00	; Move Cursor Left
C905: A6 EB	LDX $EB 	; Current Cursor Line
C907: E4 DF	CPX $DF
C909: D0 EB	BNE $C8F6
C90B: C4 DE	CPY $DE
C90D: D0 E7	BNE $C8F6
C90F: 20 27 CC	JSR $CC27	; Print Space

C912: E6 F5	INC $F5 	; Insert Mode Flag
C914: D0 02	BNE $C918
C916: C6 F5	DEC $F5 	; Insert Mode Flag

C918: 4C 32 C9	JMP $C932	; Restore Cursor

; Chr$(20)  Delete

C91B: 20 75 C8	JSR $C875	; Chr$(157) Cursor Left
C91E: 20 1E CC	JSR $CC1E	; Save Cursor
C921: B0 0F	BCS $C932	; Restore Cursor

C923: C4 E7	CPY $E7 	; Window Right Margin
C925: 90 16	BCC $C93D
C927: A6 EB	LDX $EB 	; Current Cursor Line
C929: E8	INX
C92A: 20 76 CB	JSR $CB76
C92D: B0 0E	BCS $C93D
C92F: 20 27 CC	JSR $CC27	; Print Space

; Restore Cursor

C932: A5 DE	LDA $DE
C934: 85 EC	STA $EC 	; Current Cursor Column
C936: A5 DF	LDA $DF
C938: 85 EB	STA $EB 	; Current Cursor Line
C93A: 4C 5C C1	JMP $C15C	; Set Up New Line

C93D: 20 ED CB	JSR $CBED	; Move Cursor Right
C940: 20 58 CB	JSR $CB58	; Get Screen Char/Color
C943: 20 00 CC	JSR $CC00	; Move Cursor Left
C946: 20 32 CC	JSR $CC32	; Print Fill Color
C949: 20 ED CB	JSR $CBED	; Move Cursor Right
C94C: 4C 23 C9	JMP $C923

; Chr$(9)   Tab

C94F: A4 EC	LDY $EC 	; Current Cursor Column

C951: C8	INY
C952: C4 E7	CPY $E7 	; Window Right Margin
C954: B0 06	BCS $C95C
C956: 20 6C C9	JSR $C96C	; Find Tab Column
C959: F0 F6	BEQ $C951
C95B: 2C	.BYTE $2C

C95C: A4 E7	LDY $E7 	; Window Right Margin
C95E: 84 EC	STY $EC 	; Current Cursor Column
C960: 60	RTS

; Chr$(24)  Tab Toggle

C961: A4 EC	LDY $EC 	; Current Cursor Column
C963: 20 6C C9	JSR $C96C	; Find Tab Column
C966: 45 DA	EOR $DA
C968: 9D 54 03	STA $0354,X
C96B: 60	RTS

; Find Tab Column

C96C: 98	TYA
C96D: 29 07	AND #$07
C96F: AA	TAX
C970: BD 6C CE	LDA $CE6C,X	; Bit Masks
C973: 85 DA	STA $DA
C975: 98	TYA
C976: 4A	LSR A
C977: 4A	LSR A
C978: 4A	LSR A
C979: AA	TAX
C97A: BD 54 03	LDA $0354,X
C97D: 24 DA	BIT $DA
C97F: 60	RTS

; Esc-z Clear All Tabs

C980: A9 00	LDA #$00
C982: 2C	.BYTE $2C

; Esc-y Set Default Tabs

C983: A9 80	LDA #$80
C985: A2 09	LDX #$09

C987: 9D 54 03	STA $0354,X
C98A: CA	DEX
C98B: 10 FA	BPL $C987

C98D: 60	RTS

; Chr$(7)   Bell

C98E: 24 F9	BIT $F9 	; Bell (CTRL-G): 0= enable, 128 = disable
C990: 30 FB	BMI $C98D
C992: A9 15	LDA #$15
C994: 8D 18 D4	STA $D418
C997: A0 09	LDY #$09
C999: A2 00	LDX #$00
C99B: 8C 05 D4	STY $D405
C99E: 8E 06 D4	STX $D406
C9A1: A9 30	LDA #$30
C9A3: 8D 01 D4	STA $D401
C9A6: A9 20	LDA #$20
C9A8: 8D 04 D4	STA $D404
C9AB: A9 21	LDA #$21
C9AD: 8D 04 D4	STA $D404
C9B0: 60	RTS

; Chr$(10)  Linefeed

C9B1: A5 EC	LDA $EC 	; Current Cursor Column
C9B3: 48	PHA
C9B4: 20 C3 CB	JSR $CBC3	; Find End-of-Line
C9B7: 20 63 C3	JSR $C363	; Do New Line
C9BA: 68	PLA
C9BB: 85 EC	STA $EC 	; Current Cursor Column
C9BD: 60	RTS

; Analyze Esc Sequence

C9BE: 6C 38 03	JMP ($0338)	; Print ESC Sequence Link [C9C1]

; Kernal Analyze Esc Sequence

C9C1: C9 1B	CMP #$1B
C9C3: D0 05	BNE $C9CA
C9C5: 46 EF	LSR $EF 	; Current Character to Print
C9C7: 4C 7D C7	JMP $C77D	; Esc-o (escape)

C9CA: 29 7F	AND #$7F
C9CC: 38	SEC
C9CD: E9 40	SBC #$40
C9CF: C9 1B	CMP #$1B
C9D1: B0 0A	BCS $C9DD
C9D3: 0A	ASL A
C9D4: AA	TAX
C9D5: BD DF C9	LDA $C9DF,X
C9D8: 48	PHA
C9D9: BD DE C9	LDA $C9DE,X	; Esc Sequence Vectors
C9DC: 48	PHA

C9DD: 60	RTS

; Esc Sequence Vectors

C9DE: 9E CA	.WORD $CA9F-1	; Esc-@ Clear Remainder of Screen
C9E0: EC CA	.WORD $CAED-1	; Esc-a Auto Insert
C9E2: 15 CA	.WORD $CA16-1	; Esc-b Bottom
C9E4: E9 CA	.WORD $CAEA-1	; Esc-c Cancel Auto Insert
C9E6: 51 CA	.WORD $CA52-1	; Esc-d Delete Line
C9E8: 0A CB	.WORD $CB0B-1	; Esc-e Cursor Non Flash
C9EA: 20 CB	.WORD $CB21-1	; Esc-f Cursor Flash
C9EC: 36 CB	.WORD $CB37-1	; Esc-g Bell Enable
C9EE: 39 CB	.WORD $CB3A-1	; Esc-h Bell Disable
C9F0: 3C CA	.WORD $CA3D-1	; Esc-i Insert Line
C9F2: B0 CB	.WORD $CBB1-1	; Esc-j Start-of-Line
C9F4: 51 CB	.WORD $CB52-1	; Esc-k End-of-Line
C9F6: E1 CA	.WORD $CAE2-1	; Esc-l Scroll On
C9F8: E4 CA	.WORD $CAE5-1	; Esc-m Scroll Off
C9FA: 47 CB	.WORD $CB48-1	; Esc-n Screen Normal
C9FC: 7C C7	.WORD $C77D-1	; Esc-o (escape)
C9FE: 8A CA	.WORD $CA8B-1	; Esc-p Erase Begin
CA00: 75 CA	.WORD $CA76-1	; Esc-q Erase End
CA02: 3E CB	.WORD $CB3F-1	; Esc-r Screen Reverse
CA04: F1 CA	.WORD $CAF2-1	; Esc-s Block Cursor
CA06: 13 CA	.WORD $CA14-1	; Esc-t Top
CA08: FD CA	.WORD $CAFE-1	; Esc-u Underline Cursor
CA0A: BB CA	.WORD $CABC-1	; Esc-v Scroll Up
CA0C: C9 CA	.WORD $CACA-1	; Esc-w Scroll Down
CA0E: 2B CD	.WORD $CD2C-1	; Esc-x Switch 40/80 Col
CA10: 82 C9	.WORD $C983-1	; Esc-y Set Default Tabs
CA12: 7F C9	.WORD $C980-1	; Esc-z Clear All Tabs

; Esc-t Top

CA14: 18	CLC
CA15: 24	.BYTE $24

; Esc-b Bottom

CA16: 38	SEC
CA17: A6 EC	LDX $EC 	; Current Cursor Column
CA19: A5 EB	LDA $EB 	; Current Cursor Line

; Set Window Part

CA1B: 90 11	BCC $CA2E

CA1D: 85 E4	STA $E4 	; Window Lower Limit
CA1F: 86 E7	STX $E7 	; Window Right Margin
CA21: 4C 32 CA	JMP $CA32

; Exit Window

CA24: A5 ED	LDA $ED 	; Maximum Number of Screen Lines
CA26: A6 EE	LDX $EE 	; Maximum Number of Screen Columns
CA28: 20 1D CA	JSR $CA1D
CA2B: A9 00	LDA #$00
CA2D: AA	TAX

CA2E: 85 E5	STA $E5 	; Window Upper Limit
CA30: 86 E6	STX $E6 	; Window Left Margin

CA32: A9 00	LDA #$00
CA34: A2 04	LDX #$04

CA36: 9D 5D 03	STA $035D,X
CA39: CA	DEX
CA3A: D0 FA	BNE $CA36
CA3C: 60	RTS

; Esc-i Insert Line

CA3D: 20 7C C3	JSR $C37C	; Insert a Line
CA40: 20 56 C1	JSR $C156	; Goto Left Border
CA43: E8	INX
CA44: 20 76 CB	JSR $CB76
CA47: 08	PHP
CA48: 20 81 CB	JSR $CB81	; Extend/Trim Screen Line
CA4B: 28	PLP
CA4C: B0 03	BCS $CA51
CA4E: 38	SEC
CA4F: 66 E8	ROR $E8 	; Current Input Column Start

CA51: 60	RTS

; Esc-d Delete Line

CA52: 20 B5 CB	JSR $CBB5
CA55: A5 E5	LDA $E5 	; Window Upper Limit
CA57: 48	PHA
CA58: A5 EB	LDA $EB 	; Current Cursor Line
CA5A: 85 E5	STA $E5 	; Window Upper Limit
CA5C: A5 F8	LDA $F8
CA5E: 48	PHA
CA5F: A9 80	LDA #$80
CA61: 85 F8	STA $F8
CA63: 20 B8 C3	JSR $C3B8
CA66: 68	PLA
CA67: 85 F8	STA $F8
CA69: A5 E5	LDA $E5 	; Window Upper Limit
CA6B: 85 EB	STA $EB 	; Current Cursor Line
CA6D: 68	PLA
CA6E: 85 E5	STA $E5 	; Window Upper Limit
CA70: 38	SEC
CA71: 66 E8	ROR $E8 	; Current Input Column Start
CA73: 4C 56 C1	JMP $C156	; Goto Left Border

; Esc-q Erase End

CA76: 20 1E CC	JSR $CC1E	; Save Cursor

CA79: 20 AA C4	JSR $C4AA
CA7C: E6 EB	INC $EB 	; Current Cursor Line
CA7E: 20 5C C1	JSR $C15C	; Set Up New Line
CA81: A4 E6	LDY $E6 	; Window Left Margin
CA83: 20 74 CB	JSR $CB74	; Check Screen Line of Location
CA86: B0 F1	BCS $CA79

CA88: 4C 32 C9	JMP $C932	; Restore Cursor

; Esc-p Erase Begin

CA8B: 20 1E CC	JSR $CC1E	; Save Cursor

CA8E: 20 27 CC	JSR $CC27	; Print Space
CA91: C4 E6	CPY $E6 	; Window Left Margin
CA93: D0 05	BNE $CA9A
CA95: 20 74 CB	JSR $CB74	; Check Screen Line of Location
CA98: 90 EE	BCC $CA88

CA9A: 20 00 CC	JSR $CC00	; Move Cursor Left
CA9D: 90 EF	BCC $CA8E

; Esc-@ Clear Remainder of Screen

CA9F: 20 1E CC	JSR $CC1E	; Save Cursor

CAA2: 20 AA C4	JSR $C4AA
CAA5: E6 EB	INC $EB 	; Current Cursor Line
CAA7: 20 5C C1	JSR $C15C	; Set Up New Line
CAAA: A4 E6	LDY $E6 	; Window Left Margin
CAAC: 20 74 CB	JSR $CB74	; Check Screen Line of Location
CAAF: B0 F1	BCS $CAA2
CAB1: A5 EB	LDA $EB 	; Current Cursor Line
CAB3: C5 E4	CMP $E4 	; Window Lower Limit
CAB5: 90 EB	BCC $CAA2
CAB7: F0 E9	BEQ $CAA2
CAB9: 4C 32 C9	JMP $C932	; Restore Cursor

; Esc-v Scroll Up

CABC: 20 1E CC	JSR $CC1E	; Save Cursor
CABF: 8A	TXA
CAC0: 48	PHA
CAC1: 20 A6 C3	JSR $C3A6	; Scroll Screen
CAC4: 68	PLA
CAC5: 85 DF	STA $DF
CAC7: 4C 32 C9	JMP $C932	; Restore Cursor

; Esc-w Scroll Down

CACA: 20 1E CC	JSR $CC1E	; Save Cursor
CACD: 20 74 CB	JSR $CB74	; Check Screen Line of Location
CAD0: B0 03	BCS $CAD5
CAD2: 38	SEC
CAD3: 66 E8	ROR $E8 	; Current Input Column Start

CAD5: A5 E5	LDA $E5 	; Window Upper Limit
CAD7: 85 EB	STA $EB 	; Current Cursor Line
CAD9: 20 7C C3	JSR $C37C	; Insert a Line
CADC: 20 85 CB	JSR $CB85
CADF: 4C 32 C9	JMP $C932	; Restore Cursor

; Esc-l Scroll On

CAE2: A9 00	LDA #$00
CAE4: 2C	.BYTE $2C

; Esc-m Scroll Off

CAE5: A9 80	LDA #$80
CAE7: 85 F8	STA $F8
CAE9: 60	RTS

; Esc-c Cancel Auto Insert

CAEA: A9 00	LDA #$00
CAEC: 2C	.BYTE $2C

; Esc-a Auto Insert

CAED: A9 FF	LDA #$FF
CAEF: 85 F6	STA $F6 	; Auto-Insert Mode Flag
CAF1: 60	RTS

; Esc-s Block Cursor

CAF2: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
CAF4: 10 40	BPL $CB36
CAF6: AD 2B 0A	LDA $0A2B	; VDC Cursor Mode (when enabled)
CAF9: 29 E0	AND #$E0
CAFB: 4C 14 CB	JMP $CB14

; Esc-u Underline Cursor

CAFE: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
CB00: 10 34	BPL $CB36
CB02: AD 2B 0A	LDA $0A2B	; VDC Cursor Mode (when enabled)
CB05: 29 E0	AND #$E0
CB07: 09 07	ORA #$07
CB09: D0 09	BNE $CB14

; Esc-e Cursor Non Flash

CB0B: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
CB0D: 10 0B	BPL $CB1A
CB0F: AD 2B 0A	LDA $0A2B	; VDC Cursor Mode (when enabled)
CB12: 29 1F	AND #$1F

CB14: 8D 2B 0A	STA $0A2B	; VDC Cursor Mode (when enabled)
CB17: 4C 91 CD	JMP $CD91

CB1A: AD 26 0A	LDA $0A26	; VIC Cursor Mode (Blinking, Solid)
CB1D: 09 40	ORA #$40
CB1F: D0 12	BNE $CB33

; Esc-f Cursor Flash

CB21: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
CB23: 10 09	BPL $CB2E
CB25: AD 2B 0A	LDA $0A2B	; VDC Cursor Mode (when enabled)
CB28: 29 1F	AND #$1F
CB2A: 09 60	ORA #$60
CB2C: D0 E6	BNE $CB14

CB2E: AD 26 0A	LDA $0A26	; VIC Cursor Mode (Blinking, Solid)
CB31: 29 BF	AND #$BF

CB33: 8D 26 0A	STA $0A26	; VIC Cursor Mode (Blinking, Solid)

CB36: 60	RTS

; Esc-g Bell Enable

CB37: A9 00	LDA #$00
CB39: 2C	.BYTE $2C

; Esc-h Bell Disable

CB3A: A9 80	LDA #$80
CB3C: 85 F9	STA $F9 	; Bell (CTRL-G): 0= enable, 128 = disable
CB3E: 60	RTS

; Esc-r Screen Reverse

CB3F: A2 18	LDX #$18
CB41: 20 DA CD	JSR $CDDA	; Read CRTC Register
CB44: 09 40	ORA #$40
CB46: D0 07	BNE $CB4F

; Esc-n Screen Normal

CB48: A2 18	LDX #$18
CB4A: 20 DA CD	JSR $CDDA	; Read CRTC Register
CB4D: 29 BF	AND #$BF

CB4F: 4C CC CD	JMP $CDCC	; Set CRTC Register

; Esc-k End-of-Line

CB52: 20 C3 CB	JSR $CBC3	; Find End-of-Line
CB55: 4C 3E C3	JMP $C33E	; Check Cursor Range

; Get Screen Char/Color

CB58: A4 EC	LDY $EC 	; Current Cursor Column
CB5A: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
CB5C: 30 07	BMI $CB65
CB5E: B1 E2	LDA ($E2),Y	; Pointer to Current Line (Attribute)
CB60: 85 F2	STA $F2
CB62: B1 E0	LDA ($E0),Y	; Pointer to Current Line (Text)
CB64: 60	RTS

CB65: 20 F9 CD	JSR $CDF9	; Set CRTC to Color Address
CB68: 20 D8 CD	JSR $CDD8	; Read CRTC Register 31
CB6B: 85 F2	STA $F2
CB6D: 20 E6 CD	JSR $CDE6	; Set CRTC to Screen Address
CB70: 20 D8 CD	JSR $CDD8	; Read CRTC Register 31
CB73: 60	RTS

; Check Screen Line of Location

CB74: A6 EB	LDX $EB 	; Current Cursor Line

CB76: 20 9F CB	JSR $CB9F	; Set Up Line Masks
CB79: 3D 5E 03	AND $035E,X
CB7C: C9 01	CMP #$01
CB7E: 4C 90 CB	JMP $CB90

; Extend/Trim Screen Line

CB81: A6 EB	LDX $EB 	; Current Cursor Line

CB83: B0 0E	BCS $CB93

CB85: 20 9F CB	JSR $CB9F	; Set Up Line Masks
CB88: 49 FF	EOR #$FF
CB8A: 3D 5E 03	AND $035E,X

CB8D: 9D 5E 03	STA $035E,X

CB90: A6 DA	LDX $DA
CB92: 60	RTS

CB93: 24 F8	BIT $F8
CB95: 70 DF	BVS $CB76
CB97: 20 9F CB	JSR $CB9F	; Set Up Line Masks
CB9A: 1D 5E 03	ORA $035E,X
CB9D: D0 EE	BNE $CB8D

; Set Up Line Masks

CB9F: 86 DA	STX $DA
CBA1: 8A	TXA
CBA2: 29 07	AND #$07
CBA4: AA	TAX
CBA5: BD 6C CE	LDA $CE6C,X	; Bit Masks
CBA8: 48	PHA
CBA9: A5 DA	LDA $DA
CBAB: 4A	LSR A
CBAC: 4A	LSR A
CBAD: 4A	LSR A
CBAE: AA	TAX
CBAF: 68	PLA
CBB0: 60	RTS

; Esc-j Start-of-Line

CBB1: A4 E6	LDY $E6 	; Window Left Margin
CBB3: 84 EC	STY $EC 	; Current Cursor Column

CBB5: 20 74 CB	JSR $CB74	; Check Screen Line of Location
CBB8: 90 06	BCC $CBC0
CBBA: C6 EB	DEC $EB 	; Current Cursor Line
CBBC: 10 F7	BPL $CBB5
CBBE: E6 EB	INC $EB 	; Current Cursor Line

CBC0: 4C 5C C1	JMP $C15C	; Set Up New Line

; Find End-of-Line

CBC3: E6 EB	INC $EB 	; Current Cursor Line
CBC5: 20 74 CB	JSR $CB74	; Check Screen Line of Location
CBC8: B0 F9	BCS $CBC3	; Find End-of-Line
CBCA: C6 EB	DEC $EB 	; Current Cursor Line
CBCC: 20 5C C1	JSR $C15C	; Set Up New Line
CBCF: A4 E7	LDY $E7 	; Window Right Margin
CBD1: 84 EC	STY $EC 	; Current Cursor Column

CBD3: 20 58 CB	JSR $CB58	; Get Screen Char/Color
CBD6: A6 EB	LDX $EB 	; Current Cursor Line
CBD8: C9 20	CMP #$20
CBDA: D0 0E	BNE $CBEA
CBDC: C4 E6	CPY $E6 	; Window Left Margin
CBDE: D0 05	BNE $CBE5
CBE0: 20 74 CB	JSR $CB74	; Check Screen Line of Location
CBE3: 90 05	BCC $CBEA

CBE5: 20 00 CC	JSR $CC00	; Move Cursor Left
CBE8: 90 E9	BCC $CBD3

CBEA: 84 EA	STY $EA 	; Current Input Line End
CBEC: 60	RTS

; Move Cursor Right

CBED: 48	PHA
CBEE: A4 EC	LDY $EC 	; Current Cursor Column
CBF0: C4 E7	CPY $E7 	; Window Right Margin
CBF2: 90 07	BCC $CBFB
CBF4: 20 63 C3	JSR $C363	; Do New Line
CBF7: A4 E6	LDY $E6 	; Window Left Margin
CBF9: 88	DEY
CBFA: 38	SEC

CBFB: C8	INY
CBFC: 84 EC	STY $EC 	; Current Cursor Column
CBFE: 68	PLA
CBFF: 60	RTS

; Move Cursor Left

CC00: A4 EC	LDY $EC 	; Current Cursor Column
CC02: 88	DEY
CC03: 30 04	BMI $CC09
CC05: C4 E6	CPY $E6 	; Window Left Margin
CC07: B0 0F	BCS $CC18

CC09: A4 E5	LDY $E5 	; Window Upper Limit
CC0B: C4 EB	CPY $EB 	; Current Cursor Line
CC0D: B0 0E	BCS $CC1D
CC0F: C6 EB	DEC $EB 	; Current Cursor Line
CC11: 48	PHA
CC12: 20 5C C1	JSR $C15C	; Set Up New Line
CC15: 68	PLA
CC16: A4 E7	LDY $E7 	; Window Right Margin

CC18: 84 EC	STY $EC 	; Current Cursor Column
CC1A: C4 E7	CPY $E7 	; Window Right Margin
CC1C: 18	CLC

CC1D: 60	RTS

; Save Cursor

CC1E: A4 EC	LDY $EC 	; Current Cursor Column
CC20: 84 DE	STY $DE
CC22: A6 EB	LDX $EB 	; Current Cursor Line
CC24: 86 DF	STX $DF
CC26: 60	RTS

; Print Space

CC27: A5 F1	LDA $F1 	; Curr Attribute to Print (Default FGND Color)
CC29: 29 8F	AND #$8F
CC2B: AA	TAX
CC2C: A9 20	LDA #$20
CC2E: 2C	.BYTE $2C

; Print Character

CC2F: A6 F1	LDX $F1 	; Curr Attribute to Print (Default FGND Color)
CC31: 2C	.BYTE $2C

; Print Fill Color

CC32: A6 F2	LDX $F2

; Put Char to Screen

CC34: A8	TAY
CC35: A9 02	LDA #$02
CC37: 8D 28 0A	STA $0A28	; VIC Cursor Blink Counter
CC3A: 20 7C C1	JSR $C17C	; Do Screen Color
CC3D: 98	TYA
CC3E: A4 EC	LDY $EC 	; Current Cursor Column

CC40: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
CC42: 30 06	BMI $CC4A
CC44: 91 E0	STA ($E0),Y	; Pointer to Current Line (Text)
CC46: 8A	TXA
CC47: 91 E2	STA ($E2),Y	; Pointer to Current Line (Attribute)
CC49: 60	RTS

CC4A: 48	PHA
CC4B: 8A	TXA
CC4C: 48	PHA
CC4D: 20 F9 CD	JSR $CDF9	; Set CRTC to Color Address
CC50: 68	PLA
CC51: 20 CA CD	JSR $CDCA	; Set CRTC Register 31
CC54: 20 E6 CD	JSR $CDE6	; Set CRTC to Screen Address
CC57: 68	PLA
CC58: 4C CA CD	JMP $CDCA	; Set CRTC Register 31

; Get Rows/Columns

CC5B: 38	SEC
CC5C: A5 E4	LDA $E4 	; Window Lower Limit
CC5E: E5 E5	SBC $E5 	; Window Upper Limit
CC60: A8	TAY
CC61: 38	SEC
CC62: A5 E7	LDA $E7 	; Window Right Margin
CC64: E5 E6	SBC $E6 	; Window Left Margin
CC66: AA	TAX
CC67: A5 EE	LDA $EE 	; Maximum Number of Screen Columns
CC69: 60	RTS

; Read/Set Cursor

CC6A: B0 29	BCS $CC95
CC6C: 8A	TXA
CC6D: 65 E5	ADC $E5 	; Window Upper Limit
CC6F: B0 14	BCS $CC85
CC71: C5 E4	CMP $E4 	; Window Lower Limit
CC73: F0 02	BEQ $CC77
CC75: B0 0E	BCS $CC85

CC77: 48	PHA
CC78: 18	CLC
CC79: 98	TYA
CC7A: 65 E6	ADC $E6 	; Window Left Margin
CC7C: B0 06	BCS $CC84
CC7E: C5 E7	CMP $E7 	; Window Right Margin
CC80: F0 04	BEQ $CC86
CC82: 90 02	BCC $CC86

CC84: 68	PLA

CC85: 60	RTS

CC86: 85 EC	STA $EC 	; Current Cursor Column
CC88: 85 E9	STA $E9 	; Current Input Line Start
CC8A: 68	PLA
CC8B: 85 EB	STA $EB 	; Current Cursor Line
CC8D: 85 E8	STA $E8 	; Current Input Column Start
CC8F: 20 5C C1	JSR $C15C	; Set Up New Line
CC92: 20 57 CD	JSR $CD57	; Position 80-col Cursor

CC95: A5 EB	LDA $EB 	; Current Cursor Line
CC97: E5 E5	SBC $E5 	; Window Upper Limit
CC99: AA	TAX
CC9A: 38	SEC
CC9B: A5 EC	LDA $EC 	; Current Cursor Column
CC9D: E5 E6	SBC $E6 	; Window Left Margin
CC9F: A8	TAY
CCA0: 18	CLC
CCA1: 60	RTS

; Define Function Key

CCA2: CA	DEX
CCA3: 86 DC	STX $DC
CCA5: 84 DA	STY $DA
CCA7: 8D AA 02	STA $02AA
CCAA: A8	TAY
CCAB: B6 02	LDX $02,Y	; Bank Number, Jump to SYS Address
CCAD: 20 6B FF	JSR $FF6B	; setcfg
CCB0: 85 DE	STA $DE
CCB2: A2 0A	LDX #$0A
CCB4: 20 20 CD	JSR $CD20
CCB7: 85 DB	STA $DB
CCB9: A6 DC	LDX $DC
CCBB: E8	INX
CCBC: 20 20 CD	JSR $CD20
CCBF: 85 DD	STA $DD
CCC1: A6 DC	LDX $DC
CCC3: A5 DA	LDA $DA
CCC5: 38	SEC
CCC6: FD 00 10	SBC $1000,X
CCC9: F0 2B	BEQ $CCF6
CCCB: 90 16	BCC $CCE3
CCCD: 18	CLC
CCCE: 65 DB	ADC $DB
CCD0: B0 4D	BCS $CD1F
CCD2: AA	TAX
CCD3: A4 DB	LDY $DB

CCD5: C4 DD	CPY $DD
CCD7: F0 1D	BEQ $CCF6
CCD9: 88	DEY
CCDA: CA	DEX
CCDB: B9 0A 10	LDA $100A,Y
CCDE: 9D 0A 10	STA $100A,X
CCE1: B0 F2	BCS $CCD5

CCE3: 65 DD	ADC $DD
CCE5: AA	TAX
CCE6: A4 DD	LDY $DD

CCE8: C4 DB	CPY $DB
CCEA: B0 0A	BCS $CCF6
CCEC: B9 0A 10	LDA $100A,Y
CCEF: 9D 0A 10	STA $100A,X
CCF2: C8	INY
CCF3: E8	INX
CCF4: 90 F2	BCC $CCE8

CCF6: A6 DC	LDX $DC
CCF8: 20 20 CD	JSR $CD20
CCFB: AA	TAX
CCFC: A4 DC	LDY $DC
CCFE: A5 DA	LDA $DA
CD00: 99 00 10	STA $1000,Y
CD03: A0 00	LDY #$00

CD05: C6 DA	DEC $DA
CD07: 30 15	BMI $CD1E
CD09: 86 DF	STX $DF
CD0B: A6 DE	LDX $DE
CD0D: AD AA 02	LDA $02AA
CD10: 78	SEI
CD11: 20 A2 02	JSR $02A2	; Bank Peek Subroutine
CD14: 58	CLI
CD15: A6 DF	LDX $DF
CD17: 9D 0A 10	STA $100A,X
CD1A: E8	INX
CD1B: C8	INY
CD1C: D0 E7	BNE $CD05

CD1E: 18	CLC

CD1F: 60	RTS

CD20: A9 00	LDA #$00
CD22: 18	CLC

CD23: CA	DEX
CD24: 30 05	BMI $CD2B
CD26: 7D 00 10	ADC $1000,X
CD29: 90 F8	BCC $CD23

CD2B: 60	RTS

; Esc-x Switch 40/80 Col

CD2C: 85 F0	STA $F0 	; Previous character printed (For <ESC> Test)

; Switch 40/80 Col

CD2E: A2 1A	LDX #$1A

CD30: BC 40 0A	LDY $0A40,X
CD33: B5 E0	LDA $E0,X	; Pointer to Current Line (Text)
CD35: 9D 40 0A	STA $0A40,X
CD38: 98	TYA
CD39: 95 E0	STA $E0,X	; Pointer to Current Line (Text)
CD3B: CA	DEX
CD3C: 10 F2	BPL $CD30
CD3E: A2 0D	LDX #$0D

CD40: BC 60 0A	LDY $0A60,X
CD43: BD 54 03	LDA $0354,X
CD46: 9D 60 0A	STA $0A60,X
CD49: 98	TYA
CD4A: 9D 54 03	STA $0354,X
CD4D: CA	DEX
CD4E: 10 F0	BPL $CD40
CD50: A5 D7	LDA $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
CD52: 49 80	EOR #$80
CD54: 85 D7	STA $D7 	; 40 / 80 columns:  0 = 40, 128 = 80

CD56: 60	RTS

; Position 80-col Cursor

CD57: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
CD59: 10 FB	BPL $CD56
CD5B: A2 0E	LDX #$0E
CD5D: 18	CLC
CD5E: A5 E0	LDA $E0 	; Pointer to Current Line (Text)
CD60: 65 EC	ADC $EC 	; Current Cursor Column
CD62: 48	PHA
CD63: A5 E1	LDA $E1 	; Pointer to Current Line high (Text)
CD65: 69 00	ADC #$00
CD67: 20 CC CD	JSR $CDCC	; Set CRTC Register
CD6A: E8	INX
CD6B: 68	PLA
CD6C: 4C CC CD	JMP $CDCC	; Set CRTC Register

; Set Screen Color

CD6F: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
CD71: 10 26	BPL $CD99
CD73: 20 7C C1	JSR $C17C	; Do Screen Color
CD76: A4 EC	LDY $EC 	; Current Cursor Column
CD78: 20 F9 CD	JSR $CDF9	; Set CRTC to Color Address
CD7B: 20 D8 CD	JSR $CDD8	; Read CRTC Register 31
CD7E: 8D 33 0A	STA $0A33	; VDC Cursor Color Before Blink
CD81: 29 F0	AND #$F0
CD83: 85 DB	STA $DB
CD85: 20 F9 CD	JSR $CDF9	; Set CRTC to Color Address
CD88: A5 F1	LDA $F1 	; Curr Attribute to Print (Default FGND Color)
CD8A: 29 0F	AND #$0F
CD8C: 05 DB	ORA $DB
CD8E: 20 CA CD	JSR $CDCA	; Set CRTC Register 31

CD91: A2 0A	LDX #$0A
CD93: AD 2B 0A	LDA $0A2B	; VDC Cursor Mode (when enabled)
CD96: 4C CC CD	JMP $CDCC	; Set CRTC Register

CD99: A9 00	LDA #$00
CD9B: 8D 27 0A	STA $0A27	; VIC Cursor Disable
CD9E: 60	RTS

; Turn Cursor On

CD9F: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
CDA1: 10 10	BPL $CDB3
CDA3: 20 F9 CD	JSR $CDF9	; Set CRTC to Color Address
CDA6: AD 33 0A	LDA $0A33	; VDC Cursor Color Before Blink
CDA9: 20 CA CD	JSR $CDCA	; Set CRTC Register 31
CDAC: A2 0A	LDX #$0A
CDAE: A9 20	LDA #$20
CDB0: 4C CC CD	JMP $CDCC	; Set CRTC Register

CDB3: 8D 27 0A	STA $0A27	; VIC Cursor Disable
CDB6: AD 26 0A	LDA $0A26	; VIC Cursor Mode (Blinking, Solid)
CDB9: 10 0E	BPL $CDC9
CDBB: 29 40	AND #$40
CDBD: 8D 26 0A	STA $0A26	; VIC Cursor Mode (Blinking, Solid)
CDC0: AD 29 0A	LDA $0A29	; VIC Cursor Character Before Blink
CDC3: AE 2A 0A	LDX $0A2A	; VIC Cursor Color Before Blink
CDC6: 20 34 CC	JSR $CC34	; Put Char to Screen

CDC9: 60	RTS

; Set CRTC Register 31

CDCA: A2 1F	LDX #$1F

; Set CRTC Register

CDCC: 8E 00 D6	STX $D600

CDCF: 2C 00 D6	BIT $D600
CDD2: 10 FB	BPL $CDCF
CDD4: 8D 01 D6	STA $D601
CDD7: 60	RTS

; Read CRTC Register 31

CDD8: A2 1F	LDX #$1F

; Read CRTC Register

CDDA: 8E 00 D6	STX $D600

CDDD: 2C 00 D6	BIT $D600
CDE0: 10 FB	BPL $CDDD
CDE2: AD 01 D6	LDA $D601
CDE5: 60	RTS

; Set CRTC to Screen Address

CDE6: A2 12	LDX #$12
CDE8: 18	CLC
CDE9: 98	TYA
CDEA: 65 E0	ADC $E0 	; Pointer to Current Line (Text)
CDEC: 48	PHA
CDED: A9 00	LDA #$00
CDEF: 65 E1	ADC $E1 	; Pointer to Current Line high (Text)
CDF1: 20 CC CD	JSR $CDCC	; Set CRTC Register
CDF4: 68	PLA
CDF5: E8	INX
CDF6: 4C CC CD	JMP $CDCC	; Set CRTC Register

; Set CRTC to Color Address

CDF9: A2 12	LDX #$12
CDFB: 18	CLC
CDFC: 98	TYA
CDFD: 65 E2	ADC $E2 	; Pointer to Current Line (Attribute)
CDFF: 48	PHA
CE00: A9 00	LDA #$00
CE02: 65 E3	ADC $E3 	; Pointer to Current Line high (Attribute)
CE04: 20 CC CD	JSR $CDCC	; Set CRTC Register
CE07: 68	PLA
CE08: E8	INX
CE09: 4C CC CD	JMP $CDCC	; Set CRTC Register

; Set Up 80 Column Char Set

CE0C: A9 00	LDA #$00
CE0E: A0 D0	LDY #$D0
CE10: 85 DA	STA $DA
CE12: 84 DB	STY $DB
CE14: A2 12	LDX #$12
CE16: A9 20	LDA #$20
CE18: 20 CC CD	JSR $CDCC	; Set CRTC Register
CE1B: E8	INX
CE1C: A9 00	LDA #$00
CE1E: 20 CC CD	JSR $CDCC	; Set CRTC Register
CE21: A0 00	LDY #$00

CE23: A2 0E	LDX #$0E
CE25: A9 DA	LDA #$DA
CE27: 20 74 FF	JSR $FF74	; indfet        Bank LDA (fetchvec),y
CE2A: 20 CA CD	JSR $CDCA	; Set CRTC Register 31
CE2D: C8	INY
CE2E: C0 08	CPY #$08
CE30: 90 F1	BCC $CE23
CE32: A9 00	LDA #$00

CE34: 20 CA CD	JSR $CDCA	; Set CRTC Register 31
CE37: 88	DEY
CE38: D0 FA	BNE $CE34
CE3A: 18	CLC
CE3B: A5 DA	LDA $DA
CE3D: 69 08	ADC #$08
CE3F: 85 DA	STA $DA
CE41: 90 E0	BCC $CE23
CE43: E6 DB	INC $DB
CE45: A5 DB	LDA $DB
CE47: C9 E0	CMP #$E0
CE49: 90 D8	BCC $CE23
CE4B: 60	RTS

; Ascii Color Codes

CE4C: 90 05 1C 9F 9C 1E 1F 9E	; '{BLACK}{WHITE}{RED}{CYAN}{PURPLE}{GREEN}{BLUE}{YELLOW}'
CE54: 81 95 96 97 98 99 9A 9B	; '{ORANGE}{BROWN}{LTRED}{GRAY1}{GRAY2}{LTGREEN}{LTBLUE}{GRAY3}'

; System Color Codes

CE5C: 00 0F 08 07 0B 04 02 0D	; '{0}{FLSHON}.{BELL}{LOCK}.{ULON}{CR}'
CE64: 0A 0C 09 06 01 05 03 0E	; '{LF}{UNLOCK}{TAB}..{WHITE}{STOP}{LOWTEXT}'

; Bit Masks

CE6C: 80 40 20 10 08 04 02 01	; '.@ ...{ULON}.'

; 40-col Init Values ($e0)

CE74: 00 04 00 D8 18 00 00 27	; '{0}.{0}X{TABT}{0}{0}''
CE7C: 00 00 00 00 00 18 27 00	; '{0}{0}{0}{0}{0}{TABT}'{0}'
CE84: 00 0D 0D 00 00 00 00 00	; '{0}{CR}{CR}{0}{0}{0}{0}{0}'
CE8C: 00 00                  	; '{0}{0}'

; 80-col Init Values ($0a40)

CE8E: 00 00 00 08 18 00 00 4F	; '{0}{0}{0}.{TABT}{0}{0}o'
CE96: 00 00 00 00 00 18 4F 00	; '{0}{0}{0}{0}{0}{TABT}o{0}'
CE9E: 00 07 07 00 00 00 00 00	; '{0}{BELL}{BELL}{0}{0}{0}{0}{0}'
CEA6: 00 00                  	; '{0}{0}'

; Prog Key Lengths

CEA8: 07 06 0A 07 06 04 05 08	; '{BELL}.{LF}{BELL}..{WHITE}.'
CEB0: 09 05                  	; '{TAB}{WHITE}'

; Prog Key Definitions

CEB2: 47 52 41 50 48 49 43 44	; 'graphicd'
CEBA: 4C 4F 41 44 22 44 49 52	; 'load"dir'
CEC2: 45 43 54 4F 52 59 0D 53	; 'ectory{CR}s'
CECA: 43 4E 43 4C 52 0D 44 53	; 'cnclr{CR}ds'
CED2: 41 56 45 22 52 55 4E 0D	; 'ave"run{CR}'
CEDA: 4C 49 53 54 0D 4D 4F 4E	; 'list{CR}mon'
CEE2: 49 54 4F 52 0D 44 CC 22	; 'itor{CR}dL"'
CEEA: 2A 0D 52 55 4E 0D 48 45	; '*{CR}run{CR}he'
CEF2: 4C 50 0D               	; 'lp{CR}'

; Unused

CEF5: FF FF FF FF FF FF FF FF	; '........'
CEFD: FF FF FF               	; '...'

; ?

CF00: A5 D1	LDA $D1 	; Number of programmed chars waiting
CF02: D0 12	BNE $CF16
CF04: BD 00 10	LDA $1000,X
CF07: 85 D1	STA $D1 	; Number of programmed chars waiting
CF09: A9 00	LDA #$00
CF0B: 18	CLC

CF0C: CA	DEX
CF0D: 30 05	BMI $CF14
CF0F: 7D 00 10	ADC $1000,X
CF12: 90 F8	BCC $CF0C

CF14: 85 D2	STA $D2 	; Index Into Pending Function Key String

CF16: 4C C4 C6	JMP $C6C4

; Unused

CF19: FF FF FF FF FF FF FF FF	; '........'
CF21: FF FF FF FF FF FF FF FF	; '........'
CF29: FF FF FF FF FF FF FF FF	; '........'
CF31: FF FF FF FF FF FF FF FF	; '........'
CF39: FF FF FF FF FF FF FF FF	; '........'
CF41: FF FF FF FF FF FF FF FF	; '........'
CF49: FF FF FF FF FF FF FF FF	; '........'
CF51: FF FF FF FF FF FF FF FF	; '........'
CF59: FF FF FF FF FF FF FF FF	; '........'
CF61: FF FF FF FF FF FF FF FF	; '........'
CF69: FF FF FF FF FF FF FF FF	; '........'
CF71: FF FF FF FF FF FF FF FF	; '........'
CF79: FF FF FF FF FF FF FF   	; '.......'

; ?

CF80: AD 06 D5	LDA $D506
CF83: 48	PHA
CF84: 5D F0 F7	EOR $F7F0,X	; MMU Bank Configuration Values
CF87: 29 3F	AND #$3F
CF89: 5D F0 F7	EOR $F7F0,X	; MMU Bank Configuration Values
CF8C: 8D 06 D5	STA $D506
CF8F: BD F0 F7	LDA $F7F0,X	; MMU Bank Configuration Values
CF92: AA	TAX
CF93: 08	PHP
CF94: 78	SEI
CF95: 20 F0 03	JSR $03F0
CF98: 28	PLP
CF99: 68	PLA
CF9A: 8D 06 D5	STA $D506
CF9D: 60	RTS

; Unused

CF9E: FF FF FF FF FF FF FF FF	; '........'
CFA6: FF FF FF FF FF FF FF FF	; '........'
CFAE: FF FF FF FF FF FF FF FF	; '........'
CFB6: FF FF FF FF FF FF FF FF	; '........'
CFBE: FF FF                  	; '..'

; Copyright notice

CFC0: 28 43 29 31 39 38 36 20	; '(c)1986 '
CFC8: 43 4F 4D 4D 4F 44 4F 52	; 'commodor'
CFD0: 45 20 45 4C 45 43 54 52	; 'e electr'
CFD8: 4F 4E 49 43 53 2C 20 4C	; 'onics, l'
CFE0: 54 44 2E 20 41 4C 4C 20	; 'td. all '
CFE8: 52 49 47 48 54 53 20 52	; 'rights r'
CFF0: 45 53 45 52 56 45 44 2E	; 'eserved.'

; Reserved for national character ROM checksum

CFF8: FF                     	; '.'

; Reserver for country code (DIN=$00,US=$FF)

CFF9: 00                     	; '{0}'

; National character set signature (DIN=$91F3,US=$FFFF)

CFFA: F3 91                  	; '.{UP}'

; ROM signature ($EA3B)

CFFC: 3B EA                  	; ';.'

; ROM revision byte

CFFE: 01                     	; '.'

; ROM checksum byte

CFFF: 4C                     	; 'l'

; Reset Code

E000: A2 FF	LDX #$FF
E002: 78	SEI
E003: 9A	TXS
E004: D8	CLD
E005: A9 00	LDA #$00
E007: 8D 00 FF	STA $FF00	; MMU Configuration Register
E00A: A2 0A	LDX #$0A

E00C: BD 4B E0	LDA $E04B,X	; MMU Set Up Bytes
E00F: 9D 00 D5	STA $D500,X
E012: CA	DEX
E013: 10 F7	BPL $E00C
E015: 8D 04 0A	STA $0A04
E018: 20 CD E0	JSR $E0CD	; Move Code For High RAM Banks
E01B: 20 F0 E1	JSR $E1F0	; Check Special Reset
E01E: 20 42 E2	JSR $E242	; Reset to 64/128
E021: 20 09 E1	JSR $E109	; -init-
E024: 20 3D F6	JSR $F63D	; Watch For RUN or Shift
E027: 48	PHA
E028: 30 07	BMI $E031
E02A: A9 A5	LDA #$A5
E02C: CD 02 0A	CMP $0A02	; KERNAL Warm/Cold Init'n Status Byte
E02F: F0 03	BEQ $E034

E031: 20 93 E0	JSR $E093	; -ramtas-

E034: 20 56 E0	JSR $E056	; -restor-
E037: 20 00 C0	JSR $C000	; -cint-
E03A: 68	PLA
E03B: 58	CLI
E03C: 30 03	BMI $E041
E03E: 4C 00 B0	JMP $B000	; Perform [monitor]

E041: C9 DF	CMP #$DF
E043: F0 03	BEQ $E048
E045: 6C 00 0A	JMP ($0A00)	; Restart System (BASIC Warm) [4000]

E048: 4C 4B E2	JMP $E24B	; Switch to 64 Mode

; MMU Set Up Bytes

E04B: 00 00 00 00 00 BF 04 00	; '{0}{0}{0}{0}{0}..{0}'
E053: 00 01 00               	; '{0}.{0}'

; -restor-

E056: A2 73	LDX #$73
E058: A0 E0	LDY #$E0
E05A: 18	CLC

; -vector-

E05B: 86 C3	STX $C3
E05D: 84 C4	STY $C4
E05F: A0 1F	LDY #$1F

E061: B9 14 03	LDA $0314,Y	; IRQ Vector [FA65]
E064: B0 02	BCS $E068
E066: B1 C3	LDA ($C3),Y

E068: 99 14 03	STA $0314,Y	; IRQ Vector [FA65]
E06B: 90 02	BCC $E06F
E06D: 91 C3	STA ($C3),Y

E06F: 88	DEY
E070: 10 EF	BPL $E061
E072: 60	RTS

; Vectors to $0314

E073: 65 FA	.WORD $FA65	; (IRQ) Normal Entry
E075: 03 B0	.WORD $B003	; -brk- monitor entry
E077: 40 FA	.WORD $FA40	; NMI Sequence
E079: BD EF	.WORD $EFBD	; -open-
E07B: 88 F1	.WORD $F188	; -close-
E07D: 06 F1	.WORD $F106	; -chkin-
E07F: 4C F1	.WORD $F14C	; -chkout-
E081: 26 F2	.WORD $F226	; -clrchn-
E083: 06 EF	.WORD $EF06	; -chrin-
E085: 79 EF	.WORD $EF79	; -chrout-
E087: 6E F6	.WORD $F66E	; -stop-
E089: EB EE	.WORD $EEEB	; -getin-
E08B: 22 F2	.WORD $F222	; -clall-
E08D: 06 B0	.WORD $B006	; Monitor command entry
E08F: 6C F2	.WORD $F26C	; -kernalload-
E091: 4E F5	.WORD $F54E	; -kernalsave-

; -ramtas-

E093: A9 00	LDA #$00
E095: A8	TAY

E096: 99 02 00	STA $02,Y	; Bank Number, Jump to SYS Address
E099: C8	INY
E09A: D0 FA	BNE $E096
E09C: A0 0B	LDY #$0B
E09E: 84 B3	STY $B3
E0A0: 85 B2	STA $B2
E0A2: A0 0C	LDY #$0C
E0A4: 84 C9	STY $C9
E0A6: 85 C8	STA $C8
E0A8: A0 0D	LDY #$0D
E0AA: 84 CB	STY $CB
E0AC: 85 CA	STA $CA
E0AE: 18	CLC
E0AF: A0 FF	LDY #$FF
E0B1: A2 00	LDX #$00
E0B3: 20 6B F7	JSR $F76B
E0B6: A0 1C	LDY #$1C
E0B8: A2 00	LDX #$00
E0BA: 20 7A F7	JSR $F77A
E0BD: A0 40	LDY #$40
E0BF: A2 00	LDX #$00
E0C1: 8C 01 0A	STY $0A01
E0C4: 8E 00 0A	STX $0A00	; Restart System (BASIC Warm) [4000]
E0C7: A9 A5	LDA #$A5
E0C9: 8D 02 0A	STA $0A02	; KERNAL Warm/Cold Init'n Status Byte
E0CC: 60	RTS

; Move Code For High RAM Banks

E0CD: A0 03	LDY #$03

E0CF: B9 05 E1	LDA $E105,Y	; RAM Bank Masks
E0D2: 8D 00 FF	STA $FF00	; MMU Configuration Register
E0D5: A2 3F	LDX #$3F

E0D7: BD 05 FF	LDA $FF05,X	; NMI Transfer Entry
E0DA: 9D 05 FF	STA $FF05,X	; NMI Transfer Entry
E0DD: CA	DEX
E0DE: 10 F7	BPL $E0D7
E0E0: A2 05	LDX #$05

E0E2: BD FA FF	LDA $FFFA,X	; NMI
E0E5: 9D FA FF	STA $FFFA,X	; NMI
E0E8: CA	DEX
E0E9: 10 F7	BPL $E0E2
E0EB: 88	DEY
E0EC: 10 E1	BPL $E0CF
E0EE: A2 59	LDX #$59

E0F0: BD 00 F8	LDA $F800,X	; Subroutines to $02a2-$02fb
E0F3: 9D A2 02	STA $02A2,X	; Bank Peek Subroutine
E0F6: CA	DEX
E0F7: 10 F7	BPL $E0F0
E0F9: A2 0C	LDX #$0C

E0FB: BD 5A F8	LDA $F85A,X	; DMA Code to $03f0
E0FE: 9D F0 03	STA $03F0,X
E101: CA	DEX
E102: 10 F7	BPL $E0FB
E104: 60	RTS

; RAM Bank Masks

E105: 00 40 80 C0            	; '{0}@..'

; -init-

E109: A9 7F	LDA #$7F
E10B: 8D 0D DC	STA $DC0D
E10E: 8D 0D DD	STA $DD0D
E111: 8D 00 DC	STA $DC00
E114: A9 08	LDA #$08
E116: 8D 0E DC	STA $DC0E
E119: 8D 0E DD	STA $DD0E
E11C: 8D 0F DC	STA $DC0F
E11F: 8D 0F DD	STA $DD0F
E122: A2 00	LDX #$00
E124: 8E 03 DC	STX $DC03
E127: 8E 03 DD	STX $DD03
E12A: CA	DEX
E12B: 8E 02 DC	STX $DC02
E12E: A9 07	LDA #$07
E130: 8D 00 DD	STA $DD00
E133: A9 3F	LDA #$3F
E135: 8D 02 DD	STA $DD02
E138: A9 E3	LDA #$E3
E13A: 85 01	STA $01
E13C: A9 2F	LDA #$2F
E13E: 85 00	STA $00
E140: A2 FF	LDX #$FF

E142: AD 11 D0	LDA $D011
E145: 10 FB	BPL $E142

E147: A9 08	LDA #$08
E149: CD 12 D0	CMP $D012
E14C: 90 06	BCC $E154
E14E: AD 11 D0	LDA $D011
E151: 30 F4	BMI $E147
E153: E8	INX

E154: 8E 03 0A	STX $0A03	; PAL/NTSC System Flag
E157: A9 00	LDA #$00
E159: 20 55 FC	JSR $FC55	; ?
E15C: 8D 39 0A	STA $0A39
E15F: 8D 0A 0A	STA $0A0A
E162: 8D 3A 0A	STA $0A3A
E165: 8D 36 0A	STA $0A36
E168: 85 99	STA $99 	; Input device, normally 0
E16A: A9 03	LDA #$03
E16C: 85 9A	STA $9A 	; Output device, normally 3
E16E: A2 30	LDX #$30

E170: BD C7 E2	LDA $E2C7,X	; VIC 8564 Set Up
E173: 9D 00 D0	STA $D000,X
E176: CA	DEX
E177: 10 F7	BPL $E170
E179: A2 00	LDX #$00
E17B: 20 DC E1	JSR $E1DC	; Set Up CRTC Registers
E17E: AD 00 D6	LDA $D600
E181: 29 07	AND #$07
E183: F0 05	BEQ $E18A
E185: A2 3B	LDX #$3B
E187: 20 DC E1	JSR $E1DC	; Set Up CRTC Registers

E18A: 2C 03 0A	BIT $0A03	; PAL/NTSC System Flag
E18D: 10 05	BPL $E194
E18F: A2 3E	LDX #$3E
E191: 20 67 FC	JSR $FC67	; Patch for Set Up CRTC Registers

E194: AD 04 0A	LDA $0A04
E197: 30 15	BMI $E1AE
E199: 20 27 C0	JSR $C027	; Upload 80 Col [CE0C]
E19C: A9 80	LDA #$80
E19E: 0D 04 0A	ORA $0A04
E1A1: 8D 04 0A	STA $0A04
E1A4: A2 FF	LDX #$FF
E1A6: A0 FF	LDY #$FF

E1A8: 88	DEY
E1A9: D0 FD	BNE $E1A8
E1AB: CA	DEX
E1AC: D0 FA	BNE $E1A8

E1AE: A9 00	LDA #$00
E1B0: A2 18	LDX #$18

E1B2: 9D 00 D4	STA $D400,X
E1B5: CA	DEX
E1B6: 10 FA	BPL $E1B2

E1B8: A2 01	LDX #$01
E1BA: 8E 1A D0	STX $D01A
E1BD: CA	DEX
E1BE: 8E 1C 0A	STX $0A1C	; Fast Serial Internal/External Flag
E1C1: 8E 0F 0A	STX $0A0F
E1C4: CA	DEX
E1C5: 8E 06 DC	STX $DC06
E1C8: 8E 07 DC	STX $DC07
E1CB: A2 11	LDX #$11
E1CD: 8E 0F DC	STX $DC0F
E1D0: 20 C3 E5	JSR $E5C3	; Fast Disk Off
E1D3: 20 D6 E5	JSR $E5D6	; Fast Disk On
E1D6: 20 C3 E5	JSR $E5C3	; Fast Disk Off
E1D9: 4C 4E E5	JMP $E54E	; Set Clock Low

; Set Up CRTC Registers

E1DC: BC F8 E2	LDY $E2F8,X	; CRTC 8563 Set Up Pairs
E1DF: 30 0D	BMI $E1EE
E1E1: E8	INX
E1E2: BD F8 E2	LDA $E2F8,X	; CRTC 8563 Set Up Pairs
E1E5: E8	INX
E1E6: 8C 00 D6	STY $D600
E1E9: 8D 01 D6	STA $D601
E1EC: 10 EE	BPL $E1DC	; Set Up CRTC Registers

E1EE: E8	INX
E1EF: 60	RTS

; Check Special Reset

E1F0: A2 F5	LDX #$F5
E1F2: A0 FF	LDY #$FF
E1F4: 86 C3	STX $C3
E1F6: 84 C4	STY $C4
E1F8: A9 C3	LDA #$C3
E1FA: 8D AA 02	STA $02AA
E1FD: A0 02	LDY #$02

E1FF: A2 7F	LDX #$7F
E201: 20 A2 02	JSR $02A2	; Bank Peek Subroutine
E204: D9 C4 E2	CMP $E2C4,Y	; Print 'cbm' Mask
E207: D0 1B	BNE $E224
E209: 88	DEY
E20A: 10 F3	BPL $E1FF
E20C: A2 F8	LDX #$F8
E20E: A0 FF	LDY #$FF
E210: 86 C3	STX $C3
E212: 84 C4	STY $C4
E214: A0 01	LDY #$01

E216: A2 7F	LDX #$7F
E218: 20 A2 02	JSR $02A2	; Bank Peek Subroutine
E21B: 99 02 00	STA $02,Y	; Bank Number, Jump to SYS Address
E21E: 88	DEY
E21F: 10 F5	BPL $E216
E221: 6C 02 00	JMP ($02)	; Bank Number, Jump to SYS Address

E224: A9 40	LDA #$40
E226: 8D 00 FF	STA $FF00	; MMU Configuration Register
E229: A9 24	LDA #$24
E22B: A0 E2	LDY #$E2
E22D: 8D F8 FF	STA $FFF8	; SYSTEM
E230: 8C F9 FF	STY $FFF9
E233: A2 03	LDX #$03

E235: BD C3 E2	LDA $E2C3,X
E238: 9D F4 FF	STA $FFF4,X
E23B: CA	DEX
E23C: D0 F7	BNE $E235
E23E: 8E 00 FF	STX $FF00	; MMU Configuration Register
E241: 60	RTS

; Reset to 64/128

E242: AD 05 D5	LDA $D505
E245: 29 30	AND #$30
E247: C9 30	CMP #$30
E249: F0 20	BEQ $E26B	; Scan All ROMs

; Switch to 64 Mode

E24B: A9 E3	LDA #$E3
E24D: 85 01	STA $01
E24F: A9 2F	LDA #$2F
E251: 85 00	STA $00
E253: A2 08	LDX #$08

E255: BD 62 E2	LDA $E262,X
E258: 95 01	STA $01,X
E25A: CA	DEX
E25B: D0 F8	BNE $E255
E25D: 8E 30 D0	STX $D030
E260: 4C 02 00	JMP $02	; Bank Number, Jump to SYS Address

; Code to $02

E263: A9 F7	LDA #$F7
E265: 8D 05 D5	STA $D505
E268: 6C FC FF	JMP ($FFFC)	; RESET

; Scan All ROMs

E26B: A2 03	LDX #$03
E26D: 8E C0 0A	STX $0AC0
E270: A9 00	LDA #$00

E272: 9D C1 0A	STA $0AC1,X
E275: CA	DEX
E276: 10 FA	BPL $E272
E278: 85 9E	STA $9E

E27A: A0 09	LDY #$09
E27C: AE C0 0A	LDX $0AC0
E27F: BD BC E2	LDA $E2BC,X	; ROM Addresses High
E282: 85 9F	STA $9F
E284: BD C0 E2	LDA $E2C0,X	; ROM Banks
E287: 85 02	STA $02 	; Bank Number, Jump to SYS Address

E289: A6 02	LDX $02 	; Bank Number, Jump to SYS Address
E28B: A9 9E	LDA #$9E
E28D: 20 D0 F7	JSR $F7D0	; Get Char From Memory Bank
E290: D9 BD E2	CMP $E2BD,Y
E293: D0 21	BNE $E2B6
E295: 88	DEY
E296: C0 07	CPY #$07
E298: B0 EF	BCS $E289
E29A: A6 02	LDX $02 	; Bank Number, Jump to SYS Address
E29C: A9 9E	LDA #$9E
E29E: 20 D0 F7	JSR $F7D0	; Get Char From Memory Bank
E2A1: AE C0 0A	LDX $0AC0
E2A4: 9D C1 0A	STA $0AC1,X
E2A7: C9 01	CMP #$01
E2A9: D0 0B	BNE $E2B6
E2AB: A5 9E	LDA $9E
E2AD: A4 9F	LDY $9F
E2AF: 85 04	STA $04 	; SYS address high, MLM register PC
E2B1: 84 03	STY $03 	; SYS address low, MLM register PC
E2B3: 20 CD 02	JSR $02CD	; JSR to another bank

E2B6: CE C0 0A	DEC $0AC0
E2B9: 10 BF	BPL $E27A
E2BB: 60	RTS

; ROM Addresses High

E2BC: C0                     	; '.'

E2BD: 80 C0 80               	; '...'

; ROM Banks

E2C0: 04 04 08               	; '...'

E2C3: 08                     	; '.'

; Print 'cbm' Mask

E2C4: 43 42 4D               	; 'cbm'

; VIC 8564 Set Up

E2C7: 00 00 00 00 00 00 00 00	; '{0}{0}{0}{0}{0}{0}{0}{0}'
E2CF: 00 00 00 00 00 00 00 00	; '{0}{0}{0}{0}{0}{0}{0}{0}'
E2D7: 00 1B FF 00 00 00 08 00	; '{0}{ESC}.{0}{0}{0}.{0}'
E2DF: 14 FF 01 00 00 00 00 00	; '{DEL}..{0}{0}{0}{0}{0}'
E2E7: 0D 0B 01 02 03 01 02 00	; '{CR}{LOCK}.{ULON}{STOP}.{ULON}{0}'
E2EF: 01 02 03 04 05 06 07 FF	; '.{ULON}{STOP}.{WHITE}.{BELL}.'
E2F7: FC                     	; '.'

; CRTC 8563 Set Up Pairs

E2F8: 00 7E 01 50 02 66 03 49	; '{0}..p{ULON}f{STOP}i'
E300: 04 20 05 00 06 19 07 1D	; '. {WHITE}{0}..{BELL}{RIGHT}'
E308: 08 00 09 07 0A 20 0B 07	; '.{0}{TAB}{BELL}{LF} {LOCK}{BELL}'
E310: 0C 00 0D 00 0E 00 0F 00	; '{UNLOCK}{0}{CR}{0}{LOWTEXT}{0}{FLSHON}{0}'
E318: 14 08 15 00 17 08 18 20	; '{DEL}..{0}..{TABT} '
E320: 19 40 1A F0 1B 00 1C 20	; '.@..{ESC}{0}{RED} '
E328: 1D 07 22 7D 23 64 24 05	; '{RIGHT}{BELL}".#d${WHITE}'
E330: 16 78 FF 19 47 FF 04 26	; '.X..g..&'
E338: 07 20 FF               	; '{BELL} .'

; -talk-

E33B: 09 40	ORA #$40
E33D: 2C	.BYTE $2C

; -listen-

E33E: 09 20	ORA #$20
E340: 20 EC E7	JSR $E7EC	; Interlock RS-232/Serial

E343: 48	PHA
E344: 24 94	BIT $94
E346: 10 0A	BPL $E352
E348: 38	SEC
E349: 66 A3	ROR $A3
E34B: 20 8C E3	JSR $E38C	; Send Data On Serial Bus
E34E: 46 94	LSR $94
E350: 46 A3	LSR $A3

E352: 68	PLA
E353: 85 95	STA $95
E355: 20 73 E5	JSR $E573	; Stabilize Timing
E358: 20 57 E5	JSR $E557	; Set Data High
E35B: AD 00 DD	LDA $DD00
E35E: 29 08	AND #$08
E360: D0 12	BNE $E374
E362: 20 D6 E5	JSR $E5D6	; Fast Disk On
E365: A9 FF	LDA #$FF
E367: 8D 0C DC	STA $DC0C
E36A: 20 BC E5	JSR $E5BC	; Prepare For Response
E36D: 8A	TXA
E36E: A2 14	LDX #$14

E370: CA	DEX
E371: D0 FD	BNE $E370
E373: AA	TAX

E374: AD 00 DD	LDA $DD00
E377: 09 08	ORA #$08
E379: 8D 00 DD	STA $DD00

E37C: 20 73 E5	JSR $E573	; Stabilize Timing
E37F: 20 4E E5	JSR $E54E	; Set Clock Low
E382: 20 57 E5	JSR $E557	; Set Data High
E385: 8A	TXA
E386: A2 B8	LDX #$B8

E388: CA	DEX
E389: D0 FD	BNE $E388
E38B: AA	TAX

; Send Data On Serial Bus

E38C: 20 73 E5	JSR $E573	; Stabilize Timing
E38F: 20 57 E5	JSR $E557	; Set Data High
E392: 20 69 E5	JSR $E569	; Read Serial Lines
E395: 90 03	BCC $E39A
E397: 4C 28 E4	JMP $E428

E39A: 2C 0D DC	BIT $DC0D
E39D: 20 45 E5	JSR $E545	; Set Clock High
E3A0: 24 A3	BIT $A3
E3A2: 10 0A	BPL $E3AE

E3A4: 20 69 E5	JSR $E569	; Read Serial Lines
E3A7: 90 FB	BCC $E3A4

E3A9: 20 69 E5	JSR $E569	; Read Serial Lines
E3AC: B0 FB	BCS $E3A9

E3AE: AD 00 DD	LDA $DD00
E3B1: CD 00 DD	CMP $DD00
E3B4: D0 F8	BNE $E3AE
E3B6: 48	PHA
E3B7: AD 0D DC	LDA $DC0D
E3BA: 29 08	AND #$08
E3BC: F0 05	BEQ $E3C3
E3BE: A9 C0	LDA #$C0
E3C0: 8D 1C 0A	STA $0A1C	; Fast Serial Internal/External Flag

E3C3: 68	PLA
E3C4: 10 E8	BPL $E3AE
E3C6: 09 10	ORA #$10
E3C8: 8D 00 DD	STA $DD00
E3CB: 29 08	AND #$08
E3CD: D0 13	BNE $E3E2
E3CF: 2C 1C 0A	BIT $0A1C	; Fast Serial Internal/External Flag
E3D2: 10 0E	BPL $E3E2
E3D4: 20 D6 E5	JSR $E5D6	; Fast Disk On
E3D7: A5 95	LDA $95
E3D9: 8D 0C DC	STA $DC0C
E3DC: 20 BC E5	JSR $E5BC	; Prepare For Response
E3DF: 4C 12 E4	JMP $E412

E3E2: A9 08	LDA #$08
E3E4: 85 A5	STA $A5

E3E6: AD 00 DD	LDA $DD00
E3E9: CD 00 DD	CMP $DD00
E3EC: D0 F8	BNE $E3E6
E3EE: 0A	ASL A
E3EF: 90 34	BCC $E425
E3F1: 66 95	ROR $95
E3F3: B0 05	BCS $E3FA
E3F5: 20 60 E5	JSR $E560	; Set Data Low
E3F8: D0 03	BNE $E3FD

E3FA: 20 57 E5	JSR $E557	; Set Data High

E3FD: 20 45 E5	JSR $E545	; Set Clock High
E400: EA	NOP
E401: EA	NOP
E402: EA	NOP
E403: EA	NOP
E404: AD 00 DD	LDA $DD00
E407: 29 DF	AND #$DF
E409: 09 10	ORA #$10
E40B: 8D 00 DD	STA $DD00
E40E: C6 A5	DEC $A5
E410: D0 D4	BNE $E3E6

E412: 8A	TXA
E413: 48	PHA
E414: A2 22	LDX #$22

E416: 20 69 E5	JSR $E569	; Read Serial Lines
E419: B0 05	BCS $E420
E41B: 68	PLA
E41C: AA	TAX
E41D: 4C 9F E5	JMP $E59F	; Restore Timing

E420: CA	DEX
E421: D0 F3	BNE $E416
E423: 68	PLA
E424: AA	TAX

E425: A9 03	LDA #$03
E427: 2C	.BYTE $2C

E428: A9 80	LDA #$80

E42A: 48	PHA
E42B: AD 1C 0A	LDA $0A1C	; Fast Serial Internal/External Flag
E42E: 29 7F	AND #$7F
E430: 8D 1C 0A	STA $0A1C	; Fast Serial Internal/External Flag
E433: 68	PLA
E434: 20 57 F7	JSR $F757	; Set Status Bit
E437: 20 9F E5	JSR $E59F	; Restore Timing
E43A: 18	CLC
E43B: 4C 35 E5	JMP $E535	; Reset ATN

; -acptr-

E43E: 20 73 E5	JSR $E573	; Stabilize Timing
E441: A9 00	LDA #$00
E443: 85 A5	STA $A5
E445: 2C 0D DC	BIT $DC0D
E448: 8A	TXA
E449: 48	PHA
E44A: 20 45 E5	JSR $E545	; Set Clock High

E44D: 20 69 E5	JSR $E569	; Read Serial Lines
E450: 10 FB	BPL $E44D

E452: A2 0D	LDX #$0D
E454: AD 00 DD	LDA $DD00
E457: 29 DF	AND #$DF
E459: 8D 00 DD	STA $DD00

E45C: AD 00 DD	LDA $DD00
E45F: CD 00 DD	CMP $DD00
E462: D0 F8	BNE $E45C
E464: 0A	ASL A
E465: 10 1D	BPL $E484
E467: CA	DEX
E468: D0 F2	BNE $E45C
E46A: A5 A5	LDA $A5
E46C: D0 0F	BNE $E47D
E46E: 20 60 E5	JSR $E560	; Set Data Low
E471: 20 45 E5	JSR $E545	; Set Clock High
E474: A9 40	LDA #$40
E476: 20 57 F7	JSR $F757	; Set Status Bit
E479: E6 A5	INC $A5
E47B: D0 D5	BNE $E452

E47D: 68	PLA
E47E: AA	TAX
E47F: A9 02	LDA #$02
E481: 4C 2A E4	JMP $E42A

E484: A2 08	LDX #$08

E486: AD 0D DC	LDA $DC0D
E489: 29 08	AND #$08
E48B: D0 28	BNE $E4B5

E48D: AD 00 DD	LDA $DD00
E490: CD 00 DD	CMP $DD00
E493: D0 F8	BNE $E48D
E495: 0A	ASL A
E496: 10 EE	BPL $E486

E498: 66 A4	ROR $A4

E49A: AD 00 DD	LDA $DD00
E49D: CD 00 DD	CMP $DD00
E4A0: D0 F8	BNE $E49A
E4A2: 0A	ASL A
E4A3: 30 F5	BMI $E49A
E4A5: CA	DEX
E4A6: F0 17	BEQ $E4BF

E4A8: AD 00 DD	LDA $DD00
E4AB: CD 00 DD	CMP $DD00
E4AE: D0 F8	BNE $E4A8
E4B0: 0A	ASL A
E4B1: 10 F5	BPL $E4A8
E4B3: 30 E3	BMI $E498

E4B5: AD 0C DC	LDA $DC0C
E4B8: 85 A4	STA $A4
E4BA: A9 C0	LDA #$C0
E4BC: 8D 1C 0A	STA $0A1C	; Fast Serial Internal/External Flag

E4BF: 68	PLA
E4C0: AA	TAX
E4C1: 20 60 E5	JSR $E560	; Set Data Low
E4C4: 24 90	BIT $90 	; Status word ST
E4C6: 50 03	BVC $E4CB
E4C8: 20 38 E5	JSR $E538

E4CB: 20 9F E5	JSR $E59F	; Restore Timing
E4CE: A5 A4	LDA $A4
E4D0: 18	CLC
E4D1: 60	RTS

; -second-

E4D2: 85 95	STA $95
E4D4: 20 7C E3	JSR $E37C

; Set ATN High

E4D7: AD 00 DD	LDA $DD00
E4DA: 29 F7	AND #$F7
E4DC: 8D 00 DD	STA $DD00
E4DF: 60	RTS

; -tksa-

E4E0: 85 95	STA $95
E4E2: 20 7C E3	JSR $E37C
E4E5: 24 90	BIT $90 	; Status word ST
E4E7: 30 4C	BMI $E535	; Reset ATN

E4E9: 20 73 E5	JSR $E573	; Stabilize Timing
E4EC: 20 60 E5	JSR $E560	; Set Data Low
E4EF: 20 D7 E4	JSR $E4D7	; Set ATN High
E4F2: 20 45 E5	JSR $E545	; Set Clock High

E4F5: AD 00 DD	LDA $DD00
E4F8: CD 00 DD	CMP $DD00
E4FB: D0 F8	BNE $E4F5
E4FD: 0A	ASL A
E4FE: 30 F5	BMI $E4F5
E500: 4C 9F E5	JMP $E59F	; Restore Timing

; -ciout-  Print Serial

E503: 24 94	BIT $94
E505: 30 05	BMI $E50C
E507: 38	SEC
E508: 66 94	ROR $94
E50A: D0 05	BNE $E511

E50C: 48	PHA
E50D: 20 8C E3	JSR $E38C	; Send Data On Serial Bus
E510: 68	PLA

E511: 85 95	STA $95
E513: 18	CLC
E514: 60	RTS

; -untlk-

E515: 20 73 E5	JSR $E573	; Stabilize Timing
E518: 20 4E E5	JSR $E54E	; Set Clock Low
E51B: AD 00 DD	LDA $DD00
E51E: 09 08	ORA #$08
E520: 8D 00 DD	STA $DD00
E523: A9 5F	LDA #$5F
E525: 2C	.BYTE $2C

; -unlsn-

E526: A9 3F	LDA #$3F
E528: 48	PHA
E529: AD 1C 0A	LDA $0A1C	; Fast Serial Internal/External Flag
E52C: 29 7F	AND #$7F
E52E: 8D 1C 0A	STA $0A1C	; Fast Serial Internal/External Flag
E531: 68	PLA
E532: 20 43 E3	JSR $E343

; Reset ATN

E535: 20 D7 E4	JSR $E4D7	; Set ATN High

E538: 8A	TXA
E539: A2 0A	LDX #$0A

E53B: CA	DEX
E53C: D0 FD	BNE $E53B
E53E: AA	TAX
E53F: 20 45 E5	JSR $E545	; Set Clock High
E542: 4C 57 E5	JMP $E557	; Set Data High

; Set Clock High

E545: AD 00 DD	LDA $DD00
E548: 29 EF	AND #$EF
E54A: 8D 00 DD	STA $DD00
E54D: 60	RTS

; Set Clock Low

E54E: AD 00 DD	LDA $DD00
E551: 09 10	ORA #$10
E553: 8D 00 DD	STA $DD00
E556: 60	RTS

; Set Data High

E557: AD 00 DD	LDA $DD00
E55A: 29 DF	AND #$DF
E55C: 8D 00 DD	STA $DD00
E55F: 60	RTS

; Set Data Low

E560: AD 00 DD	LDA $DD00
E563: 09 20	ORA #$20
E565: 8D 00 DD	STA $DD00
E568: 60	RTS

; Read Serial Lines

E569: AD 00 DD	LDA $DD00
E56C: CD 00 DD	CMP $DD00
E56F: D0 F8	BNE $E569	; Read Serial Lines
E571: 0A	ASL A
E572: 60	RTS

; Stabilize Timing

E573: 78	SEI

E574: 2C 3A 0A	BIT $0A3A
E577: 30 25	BMI $E59E
E579: 2C 37 0A	BIT $0A37
E57C: 30 20	BMI $E59E
E57E: AD 30 D0	LDA $D030
E581: 8D 37 0A	STA $0A37
E584: AD 15 D0	LDA $D015
E587: 8D 38 0A	STA $0A38
E58A: A9 00	LDA #$00
E58C: 8D 15 D0	STA $D015
E58F: 8D 30 D0	STA $D030
E592: AD 38 0A	LDA $0A38
E595: F0 07	BEQ $E59E
E597: 8A	TXA
E598: A2 00	LDX #$00

E59A: CA	DEX
E59B: D0 FD	BNE $E59A
E59D: AA	TAX

E59E: 60	RTS

; Restore Timing

E59F: 2C 3A 0A	BIT $0A3A
E5A2: 30 16	BMI $E5BA
E5A4: 2C 37 0A	BIT $0A37
E5A7: 10 11	BPL $E5BA
E5A9: AD 38 0A	LDA $0A38
E5AC: 8D 15 D0	STA $D015
E5AF: AD 37 0A	LDA $0A37
E5B2: 8D 30 D0	STA $D030
E5B5: A9 00	LDA #$00
E5B7: 8D 37 0A	STA $0A37

E5BA: 58	CLI
E5BB: 60	RTS

; Prepare For Response

E5BC: AD 0D DC	LDA $DC0D
E5BF: 29 08	AND #$08
E5C1: F0 F9	BEQ $E5BC	; Prepare For Response

; Fast Disk Off

E5C3: AD 0E DC	LDA $DC0E
E5C6: 29 80	AND #$80
E5C8: 09 08	ORA #$08
E5CA: 8D 0E DC	STA $DC0E
E5CD: AD 05 D5	LDA $D505
E5D0: 29 F7	AND #$F7
E5D2: 8D 05 D5	STA $D505
E5D5: 60	RTS

; Fast Disk On

E5D6: AD 05 D5	LDA $D505
E5D9: 09 08	ORA #$08
E5DB: 8D 05 D5	STA $D505
E5DE: A9 7F	LDA #$7F
E5E0: 8D 0D DC	STA $DC0D
E5E3: A9 00	LDA #$00
E5E5: 8D 05 DC	STA $DC05
E5E8: A9 04	LDA #$04
E5EA: 8D 04 DC	STA $DC04
E5ED: AD 0E DC	LDA $DC0E
E5F0: 29 80	AND #$80
E5F2: 09 55	ORA #$55
E5F4: 8D 0E DC	STA $DC0E
E5F7: 2C 0D DC	BIT $DC0D
E5FA: 60	RTS

; Fast Disk On/Off

E5FB: 90 C6	BCC $E5C3	; Fast Disk Off
E5FD: B0 D7	BCS $E5D6	; Fast Disk On

; (NMI) Transmit RS-232

E5FF: A5 B4	LDA $B4
E601: F0 47	BEQ $E64A	; RS-232 Handshake
E603: 30 3F	BMI $E644
E605: 46 B6	LSR $B6
E607: A2 00	LDX #$00
E609: 90 01	BCC $E60C
E60B: CA	DEX

E60C: 8A	TXA
E60D: 45 BD	EOR $BD
E60F: 85 BD	STA $BD
E611: C6 B4	DEC $B4
E613: F0 06	BEQ $E61B

E615: 8A	TXA
E616: 29 04	AND #$04
E618: 85 B5	STA $B5
E61A: 60	RTS

E61B: A9 20	LDA #$20
E61D: 2C 11 0A	BIT $0A11	; RS-232 Command Register
E620: F0 14	BEQ $E636
E622: 30 1C	BMI $E640
E624: 70 14	BVS $E63A
E626: A5 BD	LDA $BD
E628: D0 01	BNE $E62B

E62A: CA	DEX

E62B: C6 B4	DEC $B4
E62D: AD 10 0A	LDA $0A10	; RS-232 Control Register
E630: 10 E3	BPL $E615
E632: C6 B4	DEC $B4
E634: D0 DF	BNE $E615

E636: E6 B4	INC $B4
E638: D0 F0	BNE $E62A

E63A: A5 BD	LDA $BD
E63C: F0 ED	BEQ $E62B
E63E: D0 EA	BNE $E62A

E640: 70 E9	BVS $E62B
E642: 50 E6	BVC $E62A

E644: E6 B4	INC $B4
E646: A2 FF	LDX #$FF
E648: D0 CB	BNE $E615

; RS-232 Handshake

E64A: AD 11 0A	LDA $0A11	; RS-232 Command Register
E64D: 4A	LSR A
E64E: 90 07	BCC $E657
E650: 2C 01 DD	BIT $DD01
E653: 10 1D	BPL $E672
E655: 50 1E	BVC $E675

E657: A9 00	LDA #$00
E659: 85 BD	STA $BD
E65B: 85 B5	STA $B5
E65D: AE 15 0A	LDX $0A15	; RS-232 Number of Bits To Send
E660: 86 B4	STX $B4
E662: AC 1A 0A	LDY $0A1A	; RS-232 Output Buffer Index to Start
E665: CC 1B 0A	CPY $0A1B	; RS-232 Output Buffer Index to End
E668: F0 13	BEQ $E67D
E66A: B1 CA	LDA ($CA),Y
E66C: 85 B6	STA $B6
E66E: EE 1A 0A	INC $0A1A	; RS-232 Output Buffer Index to Start
E671: 60	RTS

E672: A9 40	LDA #$40
E674: 2C	.BYTE $2C

E675: A9 10	LDA #$10
E677: 0D 14 0A	ORA $0A14	; RS-232 Status Register
E67A: 8D 14 0A	STA $0A14	; RS-232 Status Register

E67D: A9 01	LDA #$01

E67F: 8D 0D DD	STA $DD0D
E682: 4D 0F 0A	EOR $0A0F
E685: 09 80	ORA #$80
E687: 8D 0F 0A	STA $0A0F
E68A: 8D 0D DD	STA $DD0D
E68D: 60	RTS

; Set RS-232 Bit Count

E68E: A2 09	LDX #$09
E690: A9 20	LDA #$20
E692: 2C 10 0A	BIT $0A10	; RS-232 Control Register
E695: F0 01	BEQ $E698
E697: CA	DEX

E698: 50 02	BVC $E69C
E69A: CA	DEX
E69B: CA	DEX

E69C: 60	RTS

; (NMI) RS-232 Receive

E69D: A6 A9	LDX $A9
E69F: D0 33	BNE $E6D4
E6A1: C6 A8	DEC $A8
E6A3: F0 3A	BEQ $E6DF
E6A5: 30 0D	BMI $E6B4
E6A7: A5 A7	LDA $A7
E6A9: 45 AB	EOR $AB
E6AB: 85 AB	STA $AB
E6AD: 46 A7	LSR $A7
E6AF: 66 AA	ROR $AA

E6B1: 60	RTS

E6B2: C6 A8	DEC $A8

E6B4: A5 A7	LDA $A7
E6B6: F0 6B	BEQ $E723
E6B8: AD 10 0A	LDA $0A10	; RS-232 Control Register
E6BB: 0A	ASL A
E6BC: A9 01	LDA #$01
E6BE: 65 A8	ADC $A8
E6C0: D0 EF	BNE $E6B1

E6C2: A9 90	LDA #$90
E6C4: 8D 0D DD	STA $DD0D
E6C7: 0D 0F 0A	ORA $0A0F
E6CA: 8D 0F 0A	STA $0A0F
E6CD: 85 A9	STA $A9
E6CF: A9 02	LDA #$02
E6D1: 4C 7F E6	JMP $E67F

E6D4: A5 A7	LDA $A7
E6D6: D0 EA	BNE $E6C2
E6D8: 85 A9	STA $A9
E6DA: A9 01	LDA #$01
E6DC: 85 AB	STA $AB
E6DE: 60	RTS

E6DF: AC 18 0A	LDY $0A18	; RS-232 Input Buffer Index to End
E6E2: C8	INY
E6E3: CC 19 0A	CPY $0A19	; RS-232 Input Buffer Index to Start
E6E6: F0 2A	BEQ $E712
E6E8: 8C 18 0A	STY $0A18	; RS-232 Input Buffer Index to End
E6EB: 88	DEY
E6EC: A5 AA	LDA $AA
E6EE: AE 15 0A	LDX $0A15	; RS-232 Number of Bits To Send

E6F1: E0 09	CPX #$09
E6F3: F0 04	BEQ $E6F9
E6F5: 4A	LSR A
E6F6: E8	INX
E6F7: D0 F8	BNE $E6F1

E6F9: 91 C8	STA ($C8),Y
E6FB: A9 20	LDA #$20
E6FD: 2C 11 0A	BIT $0A11	; RS-232 Command Register
E700: F0 B0	BEQ $E6B2
E702: 30 AD	BMI $E6B1
E704: A5 A7	LDA $A7
E706: 45 AB	EOR $AB
E708: F0 03	BEQ $E70D
E70A: 70 A5	BVS $E6B1
E70C: 2C	.BYTE $2C

E70D: 50 A2	BVC $E6B1
E70F: A9 01	LDA #$01
E711: 2C	.BYTE $2C

E712: A9 04	LDA #$04
E714: 2C	.BYTE $2C

E715: A9 80	LDA #$80
E717: 2C	.BYTE $2C

E718: A9 02	LDA #$02
E71A: 0D 14 0A	ORA $0A14	; RS-232 Status Register
E71D: 8D 14 0A	STA $0A14	; RS-232 Status Register
E720: 4C C2 E6	JMP $E6C2

E723: A5 AA	LDA $AA
E725: D0 F1	BNE $E718
E727: F0 EC	BEQ $E715

E729: 85 9A	STA $9A 	; Output device, normally 3
E72B: AD 11 0A	LDA $0A11	; RS-232 Command Register
E72E: 4A	LSR A
E72F: 90 29	BCC $E75A
E731: A9 02	LDA #$02
E733: 2C 01 DD	BIT $DD01
E736: 10 1D	BPL $E755
E738: D0 20	BNE $E75A

E73A: AD 0F 0A	LDA $0A0F
E73D: 29 02	AND #$02
E73F: D0 F9	BNE $E73A

E741: 2C 01 DD	BIT $DD01
E744: 70 FB	BVS $E741
E746: AD 01 DD	LDA $DD01
E749: 09 02	ORA #$02
E74B: 8D 01 DD	STA $DD01

E74E: 2C 01 DD	BIT $DD01
E751: 70 07	BVS $E75A
E753: 30 F9	BMI $E74E

E755: A9 40	LDA #$40
E757: 8D 14 0A	STA $0A14	; RS-232 Status Register

E75A: 18	CLC
E75B: 60	RTS

E75C: 20 70 E7	JSR $E770

; Send To RS-232

E75F: AC 1B 0A	LDY $0A1B	; RS-232 Output Buffer Index to End
E762: C8	INY
E763: CC 1A 0A	CPY $0A1A	; RS-232 Output Buffer Index to Start
E766: F0 F4	BEQ $E75C
E768: 8C 1B 0A	STY $0A1B	; RS-232 Output Buffer Index to End
E76B: 88	DEY
E76C: A5 9E	LDA $9E
E76E: 91 CA	STA ($CA),Y

E770: AD 0F 0A	LDA $0A0F
E773: 4A	LSR A
E774: B0 1E	BCS $E794
E776: A9 10	LDA #$10
E778: 8D 0E DD	STA $DD0E
E77B: AD 16 0A	LDA $0A16	; RS-232 Baud Rate Full Bit Time (Created by OPEN)
E77E: 8D 04 DD	STA $DD04
E781: AD 17 0A	LDA $0A17
E784: 8D 05 DD	STA $DD05
E787: A9 81	LDA #$81
E789: 20 7F E6	JSR $E67F
E78C: 20 4A E6	JSR $E64A	; RS-232 Handshake
E78F: A9 11	LDA #$11
E791: 8D 0E DD	STA $DD0E

E794: 60	RTS

; Connect RS-232 Input

E795: 85 99	STA $99 	; Input device, normally 0
E797: AD 11 0A	LDA $0A11	; RS-232 Command Register
E79A: 4A	LSR A
E79B: 90 28	BCC $E7C5
E79D: 29 08	AND #$08
E79F: F0 24	BEQ $E7C5
E7A1: A9 02	LDA #$02
E7A3: 2C 01 DD	BIT $DD01
E7A6: 10 AD	BPL $E755
E7A8: F0 22	BEQ $E7CC

E7AA: AD 0F 0A	LDA $0A0F
E7AD: 4A	LSR A
E7AE: B0 FA	BCS $E7AA
E7B0: AD 01 DD	LDA $DD01
E7B3: 29 FD	AND #$FD
E7B5: 8D 01 DD	STA $DD01

E7B8: AD 01 DD	LDA $DD01
E7BB: 29 04	AND #$04
E7BD: F0 F9	BEQ $E7B8

E7BF: A9 90	LDA #$90
E7C1: 18	CLC
E7C2: 4C 7F E6	JMP $E67F

E7C5: AD 0F 0A	LDA $0A0F
E7C8: 29 12	AND #$12
E7CA: F0 F3	BEQ $E7BF

E7CC: 18	CLC
E7CD: 60	RTS

; Get From RS-232

E7CE: AD 14 0A	LDA $0A14	; RS-232 Status Register
E7D1: AC 19 0A	LDY $0A19	; RS-232 Input Buffer Index to Start
E7D4: CC 18 0A	CPY $0A18	; RS-232 Input Buffer Index to End
E7D7: F0 0B	BEQ $E7E4
E7D9: 29 F7	AND #$F7
E7DB: 8D 14 0A	STA $0A14	; RS-232 Status Register
E7DE: B1 C8	LDA ($C8),Y
E7E0: EE 19 0A	INC $0A19	; RS-232 Input Buffer Index to Start
E7E3: 60	RTS

E7E4: 09 08	ORA #$08
E7E6: 8D 14 0A	STA $0A14	; RS-232 Status Register
E7E9: A9 00	LDA #$00
E7EB: 60	RTS

; Interlock RS-232/Serial

E7EC: 48	PHA
E7ED: AD 0F 0A	LDA $0A0F
E7F0: F0 11	BEQ $E803

E7F2: AD 0F 0A	LDA $0A0F
E7F5: 29 03	AND #$03
E7F7: D0 F9	BNE $E7F2
E7F9: A9 10	LDA #$10
E7FB: 8D 0D DD	STA $DD0D
E7FE: A9 00	LDA #$00
E800: 8D 0F 0A	STA $0A0F

E803: 68	PLA
E804: 60	RTS

; (NMI) RS-232 Control I/O

E805: 98	TYA
E806: 2D 0F 0A	AND $0A0F
E809: AA	TAX
E80A: 29 01	AND #$01
E80C: F0 28	BEQ $E836
E80E: AD 00 DD	LDA $DD00
E811: 29 FB	AND #$FB
E813: 05 B5	ORA $B5
E815: 8D 00 DD	STA $DD00
E818: AD 0F 0A	LDA $0A0F
E81B: 8D 0D DD	STA $DD0D
E81E: 8A	TXA
E81F: 29 12	AND #$12
E821: F0 0D	BEQ $E830
E823: 29 02	AND #$02
E825: F0 06	BEQ $E82D
E827: 20 78 E8	JSR $E878	; (NMI) RS-232 Receive Timing
E82A: 4C 30 E8	JMP $E830

E82D: 20 A9 E8	JSR $E8A9	; (NMI) RS-232 Transmit Timing

E830: 20 FF E5	JSR $E5FF	; (NMI) Transmit RS-232
E833: 4C 49 E8	JMP $E849

E836: 8A	TXA
E837: 29 02	AND #$02
E839: F0 06	BEQ $E841
E83B: 20 78 E8	JSR $E878	; (NMI) RS-232 Receive Timing
E83E: 4C 49 E8	JMP $E849

E841: 8A	TXA
E842: 29 10	AND #$10
E844: F0 03	BEQ $E849
E846: 20 A9 E8	JSR $E8A9	; (NMI) RS-232 Transmit Timing

E849: AD 0F 0A	LDA $0A0F
E84C: 8D 0D DD	STA $DD0D

E84F: 60	RTS

; RS-232 Timings For NTSC

E850: C1 27 3E 1A C5 11 74 0E	; 'A'>.E{DOWN}T{LOWTEXT}'
E858: ED 0C 45 06 F0 02 46 01	; '.{UNLOCK}e..{ULON}f.'
E860: B8 00                  	; '.{0}'

E862: 71                     	; 'Q'

E863: 00                     	; '{0}'

; RS-232 Timing Table -- PAL

E864: 19 26 44 19 1A 11 E8 0D	; '.&d..{DOWN}.{CR}'
E86C: 70 0C 06 06 D1 02 37 01	; 'P{UNLOCK}..Q{ULON}7.'
E874: AE 00 69 00            	; '.{0}i{0}'

; (NMI) RS-232 Receive Timing

E878: AD 01 DD	LDA $DD01
E87B: 29 01	AND #$01
E87D: 85 A7	STA $A7
E87F: AD 06 DD	LDA $DD06
E882: E9 28	SBC #$28
E884: 6D 16 0A	ADC $0A16	; RS-232 Baud Rate Full Bit Time (Created by OPEN)
E887: 8D 06 DD	STA $DD06
E88A: AD 07 DD	LDA $DD07
E88D: 6D 17 0A	ADC $0A17
E890: 8D 07 DD	STA $DD07
E893: A9 11	LDA #$11
E895: 8D 0F DD	STA $DD0F
E898: AD 0F 0A	LDA $0A0F
E89B: 8D 0D DD	STA $DD0D
E89E: A9 FF	LDA #$FF
E8A0: 8D 06 DD	STA $DD06
E8A3: 8D 07 DD	STA $DD07
E8A6: 4C 9D E6	JMP $E69D	; (NMI) RS-232 Receive

; (NMI) RS-232 Transmit Timing

E8A9: AD 12 0A	LDA $0A12	; RS-232 User Baud Rate
E8AC: 8D 06 DD	STA $DD06
E8AF: AD 13 0A	LDA $0A13
E8B2: 8D 07 DD	STA $DD07
E8B5: A9 11	LDA #$11
E8B7: 8D 0F DD	STA $DD0F
E8BA: A9 12	LDA #$12
E8BC: 4D 0F 0A	EOR $0A0F
E8BF: 8D 0F 0A	STA $0A0F
E8C2: A9 FF	LDA #$FF
E8C4: 8D 06 DD	STA $DD06
E8C7: 8D 07 DD	STA $DD07
E8CA: AE 15 0A	LDX $0A15	; RS-232 Number of Bits To Send
E8CD: 86 A8	STX $A8
E8CF: 60	RTS

; Find Any Tape Header

E8D0: A5 93	LDA $93 	; Work value, monitor, LOAD / SAVE 0 = LOAD, 1 = VERIFY
E8D2: 48	PHA
E8D3: 20 F2 E9	JSR $E9F2	; Initiate Tape Read
E8D6: 68	PLA
E8D7: 85 93	STA $93 	; Work value, monitor, LOAD / SAVE 0 = LOAD, 1 = VERIFY
E8D9: B0 3D	BCS $E918
E8DB: A0 00	LDY #$00
E8DD: B1 B2	LDA ($B2),Y
E8DF: C9 05	CMP #$05
E8E1: F0 34	BEQ $E917
E8E3: C9 01	CMP #$01
E8E5: F0 08	BEQ $E8EF
E8E7: C9 03	CMP #$03
E8E9: F0 04	BEQ $E8EF
E8EB: C9 04	CMP #$04
E8ED: D0 E1	BNE $E8D0	; Find Any Tape Header

E8EF: AA	TAX
E8F0: 24 9D	BIT $9D 	; I/O messages: 192 = all, 128 = commands, 64 = errors, 0 = nil
E8F2: 10 22	BPL $E916
E8F4: A0 63	LDY #$63
E8F6: 20 22 F7	JSR $F722	; Print I/O Message
E8F9: A0 05	LDY #$05

E8FB: B1 B2	LDA ($B2),Y
E8FD: 20 D2 FF	JSR $FFD2	; (ibsout)      Output Vector, chrout [EF79]
E900: C8	INY
E901: C0 15	CPY #$15
E903: D0 F6	BNE $E8FB
E905: A5 A1	LDA $A1 	; Jiffy clock Middle
E907: 69 02	ADC #$02

E909: A4 91	LDY $91 	; Keyswitch: STOP and RVS flags (STOP, Q, C=, Space, 2, CTRL, <-, 1)
E90B: C8	INY
E90C: D0 04	BNE $E912
E90E: C5 A1	CMP $A1 	; Jiffy clock Middle
E910: D0 F7	BNE $E909

E912: C0 F0	CPY #$F0
E914: F0 BA	BEQ $E8D0	; Find Any Tape Header

E916: 18	CLC

E917: 88	DEY

E918: 60	RTS

; Write Tape Header

E919: 85 9E	STA $9E
E91B: 20 80 E9	JSR $E980	; Get Buffer Address
E91E: 90 5F	BCC $E97F
E920: A5 C2	LDA $C2
E922: 48	PHA
E923: A5 C1	LDA $C1
E925: 48	PHA
E926: A5 AF	LDA $AF
E928: 48	PHA
E929: A5 AE	LDA $AE 	; Tape end address / End of program
E92B: 48	PHA
E92C: A0 BF	LDY #$BF
E92E: A9 20	LDA #$20

E930: 91 B2	STA ($B2),Y
E932: 88	DEY
E933: D0 FB	BNE $E930
E935: A5 9E	LDA $9E
E937: 91 B2	STA ($B2),Y
E939: C8	INY
E93A: A5 C1	LDA $C1
E93C: 91 B2	STA ($B2),Y
E93E: C8	INY
E93F: A5 C2	LDA $C2
E941: 91 B2	STA ($B2),Y
E943: C8	INY
E944: A5 AE	LDA $AE 	; Tape end address / End of program
E946: 91 B2	STA ($B2),Y
E948: C8	INY
E949: A5 AF	LDA $AF
E94B: 91 B2	STA ($B2),Y
E94D: C8	INY
E94E: 84 9F	STY $9F
E950: A0 00	LDY #$00
E952: 84 9E	STY $9E

E954: A4 9E	LDY $9E
E956: C4 B7	CPY $B7 	; Number of characters in file name
E958: F0 0D	BEQ $E967
E95A: 20 AE F7	JSR $F7AE	; Get Char From Memory
E95D: A4 9F	LDY $9F
E95F: 91 B2	STA ($B2),Y
E961: E6 9E	INC $9E
E963: E6 9F	INC $9F
E965: D0 ED	BNE $E954

E967: 20 87 E9	JSR $E987	; Get Tape Buffer Start & End Addrs
E96A: A9 69	LDA #$69
E96C: 85 AB	STA $AB
E96E: 20 1C EA	JSR $EA1C
E971: A8	TAY
E972: 68	PLA
E973: 85 AE	STA $AE 	; Tape end address / End of program
E975: 68	PLA
E976: 85 AF	STA $AF
E978: 68	PLA
E979: 85 C1	STA $C1
E97B: 68	PLA
E97C: 85 C2	STA $C2
E97E: 98	TYA

E97F: 60	RTS

; Get Buffer Address

E980: A6 B2	LDX $B2
E982: A4 B3	LDY $B3
E984: C0 02	CPY #$02
E986: 60	RTS

; Get Tape Buffer Start & End Addrs

E987: 20 80 E9	JSR $E980	; Get Buffer Address
E98A: 8A	TXA
E98B: 85 C1	STA $C1
E98D: 18	CLC
E98E: 69 C0	ADC #$C0
E990: 85 AE	STA $AE 	; Tape end address / End of program
E992: 98	TYA
E993: 85 C2	STA $C2
E995: 69 00	ADC #$00
E997: 85 AF	STA $AF
E999: 60	RTS

; Find Specific Header

E99A: 20 D0 E8	JSR $E8D0	; Find Any Tape Header
E99D: B0 1E	BCS $E9BD
E99F: A0 05	LDY #$05
E9A1: 84 9F	STY $9F
E9A3: A0 00	LDY #$00
E9A5: 84 9E	STY $9E

E9A7: C4 B7	CPY $B7 	; Number of characters in file name
E9A9: F0 11	BEQ $E9BC
E9AB: 20 AE F7	JSR $F7AE	; Get Char From Memory
E9AE: A4 9F	LDY $9F
E9B0: D1 B2	CMP ($B2),Y
E9B2: D0 E6	BNE $E99A	; Find Specific Header
E9B4: E6 9E	INC $9E
E9B6: E6 9F	INC $9F
E9B8: A4 9E	LDY $9E
E9BA: D0 EB	BNE $E9A7

E9BC: 18	CLC

E9BD: 60	RTS

; Bump Tape Pointer

E9BE: 20 80 E9	JSR $E980	; Get Buffer Address
E9C1: E6 A6	INC $A6
E9C3: A4 A6	LDY $A6
E9C5: C0 C0	CPY #$C0
E9C7: 60	RTS

; Print 'press play on tape'

E9C8: 20 DF E9	JSR $E9DF	; Check Tape Status
E9CB: F0 1A	BEQ $E9E7
E9CD: A0 1B	LDY #$1B

E9CF: 20 22 F7	JSR $F722	; Print I/O Message

E9D2: 20 8F EA	JSR $EA8F	; Check Tape Stop
E9D5: 20 DF E9	JSR $E9DF	; Check Tape Status
E9D8: D0 F8	BNE $E9D2
E9DA: A0 6A	LDY #$6A
E9DC: 4C 22 F7	JMP $F722	; Print I/O Message

; Check Tape Status

E9DF: A9 10	LDA #$10
E9E1: 24 01	BIT $01
E9E3: D0 02	BNE $E9E7
E9E5: 24 01	BIT $01

E9E7: 18	CLC
E9E8: 60	RTS

; Print 'press record ...'

E9E9: 20 DF E9	JSR $E9DF	; Check Tape Status
E9EC: F0 F9	BEQ $E9E7
E9EE: A0 2E	LDY #$2E
E9F0: D0 DD	BNE $E9CF

; Initiate Tape Read

E9F2: A9 00	LDA #$00
E9F4: 85 90	STA $90 	; Status word ST
E9F6: 85 93	STA $93 	; Work value, monitor, LOAD / SAVE 0 = LOAD, 1 = VERIFY
E9F8: 20 87 E9	JSR $E987	; Get Tape Buffer Start & End Addrs

E9FB: 20 C8 E9	JSR $E9C8	; Print 'press play on tape'
E9FE: B0 1F	BCS $EA1F
EA00: 78	SEI
EA01: A9 00	LDA #$00
EA03: 85 AA	STA $AA
EA05: 85 B4	STA $B4
EA07: 85 B0	STA $B0
EA09: 85 9E	STA $9E
EA0B: 85 9F	STA $9F
EA0D: 85 9C	STA $9C
EA0F: A9 90	LDA #$90
EA11: A2 0E	LDX #$0E
EA13: D0 11	BNE $EA26	; Common Tape Code

; Initiate Tape Write

EA15: 20 87 E9	JSR $E987	; Get Tape Buffer Start & End Addrs

EA18: A9 14	LDA #$14
EA1A: 85 AB	STA $AB

EA1C: 20 E9 E9	JSR $E9E9	; Print 'press record ...'

EA1F: B0 7A	BCS $EA9B
EA21: 78	SEI
EA22: A9 82	LDA #$82
EA24: A2 08	LDX #$08

; Common Tape Code

EA26: A0 00	LDY #$00
EA28: 8C 1A D0	STY $D01A
EA2B: 88	DEY
EA2C: 8C 19 D0	STY $D019
EA2F: 8D 0D DC	STA $DC0D
EA32: AD 0E DC	LDA $DC0E
EA35: 09 19	ORA #$19
EA37: 8D 0F DC	STA $DC0F
EA3A: 29 91	AND #$91
EA3C: 8D 0B 0A	STA $0A0B
EA3F: 20 EC E7	JSR $E7EC	; Interlock RS-232/Serial
EA42: AD 11 D0	LDA $D011
EA45: A8	TAY
EA46: 29 10	AND #$10
EA48: 8D 39 0A	STA $0A39
EA4B: 98	TYA
EA4C: 29 6F	AND #$6F
EA4E: 8D 11 D0	STA $D011
EA51: 20 74 E5	JSR $E574
EA54: AD 14 03	LDA $0314	; IRQ Vector [FA65]
EA57: 8D 09 0A	STA $0A09
EA5A: AD 15 03	LDA $0315
EA5D: 8D 0A 0A	STA $0A0A
EA60: 20 9B EE	JSR $EE9B	; Switch IRQ Vector
EA63: A9 02	LDA #$02
EA65: 85 BE	STA $BE
EA67: 20 5A ED	JSR $ED5A	; New Char Set Up
EA6A: A5 01	LDA $01
EA6C: 29 1F	AND #$1F
EA6E: 85 01	STA $01
EA70: 85 C0	STA $C0
EA72: A2 FF	LDX #$FF

EA74: A0 FF	LDY #$FF

EA76: 88	DEY
EA77: D0 FD	BNE $EA76
EA79: CA	DEX
EA7A: D0 F8	BNE $EA74
EA7C: 58	CLI

; Wait For Tape

EA7D: AD 0A 0A	LDA $0A0A
EA80: CD 15 03	CMP $0315
EA83: 18	CLC
EA84: F0 15	BEQ $EA9B
EA86: 20 8F EA	JSR $EA8F	; Check Tape Stop
EA89: 20 3D F6	JSR $F63D	; Watch For RUN or Shift
EA8C: 4C 7D EA	JMP $EA7D	; Wait For Tape

; Check Tape Stop

EA8F: 20 E1 FF	JSR $FFE1	; (istop)       Test-Stop Vector [F66E]
EA92: 18	CLC
EA93: D0 0B	BNE $EAA0
EA95: 20 57 EE	JSR $EE57	; Wind Up Tape I/O
EA98: 38	SEC
EA99: 68	PLA
EA9A: 68	PLA

EA9B: A9 00	LDA #$00
EA9D: 8D 0A 0A	STA $0A0A

EAA0: 60	RTS

; Set Read Timing

EAA1: 86 B1	STX $B1
EAA3: A5 B0	LDA $B0
EAA5: 0A	ASL A
EAA6: 0A	ASL A
EAA7: 18	CLC
EAA8: 65 B0	ADC $B0
EAAA: 18	CLC
EAAB: 65 B1	ADC $B1
EAAD: 85 B1	STA $B1
EAAF: A9 00	LDA #$00
EAB1: 24 B0	BIT $B0
EAB3: 30 01	BMI $EAB6
EAB5: 2A	ROL A

EAB6: 06 B1	ASL $B1
EAB8: 2A	ROL A
EAB9: 06 B1	ASL $B1
EABB: 2A	ROL A
EABC: AA	TAX

EABD: AD 06 DC	LDA $DC06
EAC0: C9 16	CMP #$16
EAC2: 90 F9	BCC $EABD
EAC4: 65 B1	ADC $B1
EAC6: 8D 04 DC	STA $DC04
EAC9: 8A	TXA
EACA: 6D 07 DC	ADC $DC07
EACD: 8D 05 DC	STA $DC05
EAD0: AD 0B 0A	LDA $0A0B
EAD3: 8D 0E DC	STA $DC0E
EAD6: 8D 0D 0A	STA $0A0D
EAD9: AD 0D DC	LDA $DC0D
EADC: 29 10	AND #$10
EADE: F0 09	BEQ $EAE9
EAE0: A9 EA	LDA #$EA
EAE2: 48	PHA
EAE3: A9 E9	LDA #$E9
EAE5: 48	PHA
EAE6: 4C C8 EE	JMP $EEC8	; (IRQ) Clear Break

EAE9: 58	CLI
EAEA: 60	RTS

; (IRQ) Read Tape Bits

EAEB: AE 07 DC	LDX $DC07
EAEE: A0 FF	LDY #$FF
EAF0: 98	TYA
EAF1: ED 06 DC	SBC $DC06
EAF4: EC 07 DC	CPX $DC07
EAF7: D0 F2	BNE $EAEB	; (IRQ) Read Tape Bits
EAF9: 86 B1	STX $B1
EAFB: AA	TAX
EAFC: 8C 06 DC	STY $DC06
EAFF: 8C 07 DC	STY $DC07
EB02: A9 19	LDA #$19
EB04: 8D 0F DC	STA $DC0F
EB07: AD 0D DC	LDA $DC0D
EB0A: 8D 0C 0A	STA $0A0C
EB0D: 98	TYA
EB0E: E5 B1	SBC $B1
EB10: 86 B1	STX $B1
EB12: 4A	LSR A
EB13: 66 B1	ROR $B1
EB15: 4A	LSR A
EB16: 66 B1	ROR $B1
EB18: A5 B0	LDA $B0
EB1A: 18	CLC
EB1B: 69 3C	ADC #$3C
EB1D: C5 B1	CMP $B1
EB1F: B0 4A	BCS $EB6B
EB21: A6 9C	LDX $9C
EB23: F0 03	BEQ $EB28
EB25: 4C 1F EC	JMP $EC1F	; Store Tape Chars

EB28: A6 A3	LDX $A3
EB2A: 30 1B	BMI $EB47
EB2C: A2 00	LDX #$00
EB2E: 69 30	ADC #$30
EB30: 65 B0	ADC $B0
EB32: C5 B1	CMP $B1
EB34: B0 1C	BCS $EB52
EB36: E8	INX
EB37: 69 26	ADC #$26
EB39: 65 B0	ADC $B0
EB3B: C5 B1	CMP $B1
EB3D: B0 17	BCS $EB56
EB3F: 69 2C	ADC #$2C
EB41: 65 B0	ADC $B0
EB43: C5 B1	CMP $B1
EB45: 90 03	BCC $EB4A

EB47: 4C CF EB	JMP $EBCF

EB4A: A5 B4	LDA $B4
EB4C: F0 1D	BEQ $EB6B
EB4E: 85 A8	STA $A8
EB50: D0 19	BNE $EB6B

EB52: E6 A9	INC $A9
EB54: B0 02	BCS $EB58

EB56: C6 A9	DEC $A9

EB58: 38	SEC
EB59: E9 13	SBC #$13
EB5B: E5 B1	SBC $B1
EB5D: 65 92	ADC $92
EB5F: 85 92	STA $92
EB61: A5 A4	LDA $A4
EB63: 49 01	EOR #$01
EB65: 85 A4	STA $A4
EB67: F0 2B	BEQ $EB94
EB69: 86 C5	STX $C5

EB6B: A5 B4	LDA $B4
EB6D: F0 22	BEQ $EB91
EB6F: AD 0C 0A	LDA $0A0C
EB72: 29 01	AND #$01
EB74: D0 05	BNE $EB7B
EB76: AD 0D 0A	LDA $0A0D
EB79: D0 16	BNE $EB91

EB7B: A9 00	LDA #$00
EB7D: 85 A4	STA $A4
EB7F: 8D 0D 0A	STA $0A0D
EB82: A5 A3	LDA $A3
EB84: 10 30	BPL $EBB6
EB86: 30 BF	BMI $EB47

EB88: A2 A6	LDX #$A6
EB8A: 20 A1 EA	JSR $EAA1	; Set Read Timing
EB8D: A5 9B	LDA $9B
EB8F: D0 B9	BNE $EB4A

EB91: 4C 33 FF	JMP $FF33	; Return From Interrupt

EB94: A5 92	LDA $92
EB96: F0 07	BEQ $EB9F
EB98: 30 03	BMI $EB9D
EB9A: C6 B0	DEC $B0
EB9C: 2C	.BYTE $2C

EB9D: E6 B0	INC $B0

EB9F: A9 00	LDA #$00
EBA1: 85 92	STA $92
EBA3: E4 C5	CPX $C5
EBA5: D0 0F	BNE $EBB6
EBA7: 8A	TXA
EBA8: D0 A0	BNE $EB4A
EBAA: A5 A9	LDA $A9
EBAC: 30 BD	BMI $EB6B
EBAE: C9 10	CMP #$10
EBB0: 90 B9	BCC $EB6B
EBB2: 85 96	STA $96
EBB4: B0 B5	BCS $EB6B

EBB6: 8A	TXA
EBB7: 45 9B	EOR $9B
EBB9: 85 9B	STA $9B
EBBB: A5 B4	LDA $B4
EBBD: F0 D2	BEQ $EB91
EBBF: C6 A3	DEC $A3
EBC1: 30 C5	BMI $EB88
EBC3: 46 C5	LSR $C5
EBC5: 66 BF	ROR $BF
EBC7: A2 DA	LDX #$DA
EBC9: 20 A1 EA	JSR $EAA1	; Set Read Timing
EBCC: 4C 33 FF	JMP $FF33	; Return From Interrupt

EBCF: A5 96	LDA $96
EBD1: F0 04	BEQ $EBD7
EBD3: A5 B4	LDA $B4
EBD5: F0 07	BEQ $EBDE

EBD7: A5 A3	LDA $A3
EBD9: 30 03	BMI $EBDE
EBDB: 4C 56 EB	JMP $EB56

EBDE: 46 B1	LSR $B1
EBE0: A9 93	LDA #$93
EBE2: 38	SEC
EBE3: E5 B1	SBC $B1
EBE5: 65 B0	ADC $B0
EBE7: 0A	ASL A
EBE8: AA	TAX
EBE9: 20 A1 EA	JSR $EAA1	; Set Read Timing
EBEC: E6 9C	INC $9C
EBEE: A5 B4	LDA $B4
EBF0: D0 11	BNE $EC03
EBF2: A5 96	LDA $96
EBF4: F0 26	BEQ $EC1C
EBF6: 85 A8	STA $A8
EBF8: A9 00	LDA #$00
EBFA: 85 96	STA $96
EBFC: A9 81	LDA #$81
EBFE: 8D 0D DC	STA $DC0D
EC01: 85 B4	STA $B4

EC03: A5 96	LDA $96
EC05: 85 B5	STA $B5
EC07: F0 09	BEQ $EC12
EC09: A9 00	LDA #$00
EC0B: 85 B4	STA $B4
EC0D: A9 01	LDA #$01
EC0F: 8D 0D DC	STA $DC0D

EC12: A5 BF	LDA $BF
EC14: 85 BD	STA $BD
EC16: A5 A8	LDA $A8
EC18: 05 A9	ORA $A9
EC1A: 85 B6	STA $B6

EC1C: 4C 33 FF	JMP $FF33	; Return From Interrupt

; Store Tape Chars

EC1F: 20 5A ED	JSR $ED5A	; New Char Set Up
EC22: 85 9C	STA $9C
EC24: A2 DA	LDX #$DA
EC26: 20 A1 EA	JSR $EAA1	; Set Read Timing
EC29: A5 BE	LDA $BE
EC2B: F0 02	BEQ $EC2F
EC2D: 85 A7	STA $A7

EC2F: A9 0F	LDA #$0F
EC31: 24 AA	BIT $AA
EC33: 10 17	BPL $EC4C
EC35: A5 B5	LDA $B5
EC37: D0 0C	BNE $EC45
EC39: A6 BE	LDX $BE
EC3B: CA	DEX
EC3C: D0 0B	BNE $EC49
EC3E: A9 08	LDA #$08
EC40: 20 57 F7	JSR $F757	; Set Status Bit
EC43: D0 04	BNE $EC49

EC45: A9 00	LDA #$00
EC47: 85 AA	STA $AA

EC49: 4C 33 FF	JMP $FF33	; Return From Interrupt

EC4C: 70 31	BVS $EC7F
EC4E: D0 18	BNE $EC68
EC50: A5 B5	LDA $B5
EC52: D0 F5	BNE $EC49
EC54: A5 B6	LDA $B6
EC56: D0 F1	BNE $EC49
EC58: A5 A7	LDA $A7
EC5A: 4A	LSR A
EC5B: A5 BD	LDA $BD
EC5D: 30 03	BMI $EC62
EC5F: 90 18	BCC $EC79
EC61: 18	CLC

EC62: B0 15	BCS $EC79
EC64: 29 0F	AND #$0F
EC66: 85 AA	STA $AA

EC68: C6 AA	DEC $AA
EC6A: D0 DD	BNE $EC49
EC6C: A9 40	LDA #$40
EC6E: 85 AA	STA $AA
EC70: 20 51 ED	JSR $ED51	; Reset Pointer
EC73: A9 00	LDA #$00
EC75: 85 AB	STA $AB
EC77: F0 D0	BEQ $EC49

EC79: A9 80	LDA #$80
EC7B: 85 AA	STA $AA
EC7D: D0 CA	BNE $EC49

EC7F: A5 B5	LDA $B5
EC81: F0 0A	BEQ $EC8D
EC83: A9 04	LDA #$04
EC85: 20 57 F7	JSR $F757	; Set Status Bit
EC88: A9 00	LDA #$00
EC8A: 4C 0C ED	JMP $ED0C

EC8D: 20 B7 EE	JSR $EEB7	; Check End Address
EC90: 90 03	BCC $EC95
EC92: 4C 0A ED	JMP $ED0A

EC95: A6 A7	LDX $A7
EC97: CA	DEX
EC98: F0 2E	BEQ $ECC8
EC9A: A5 93	LDA $93 	; Work value, monitor, LOAD / SAVE 0 = LOAD, 1 = VERIFY
EC9C: F0 0D	BEQ $ECAB
EC9E: A0 00	LDY #$00
ECA0: 20 CC F7	JSR $F7CC
ECA3: C5 BD	CMP $BD
ECA5: F0 04	BEQ $ECAB
ECA7: A9 01	LDA #$01
ECA9: 85 B6	STA $B6

ECAB: A5 B6	LDA $B6
ECAD: F0 4C	BEQ $ECFB
ECAF: A2 3D	LDX #$3D
ECB1: E4 9E	CPX $9E
ECB3: 90 3F	BCC $ECF4
ECB5: A6 9E	LDX $9E
ECB7: A5 AD	LDA $AD
ECB9: 9D 01 01	STA $0101,X
ECBC: A5 AC	LDA $AC
ECBE: 9D 00 01	STA $0100,X
ECC1: E8	INX
ECC2: E8	INX
ECC3: 86 9E	STX $9E
ECC5: 4C FB EC	JMP $ECFB

ECC8: A6 9F	LDX $9F
ECCA: E4 9E	CPX $9E
ECCC: F0 37	BEQ $ED05
ECCE: A5 AC	LDA $AC
ECD0: DD 00 01	CMP $0100,X
ECD3: D0 30	BNE $ED05
ECD5: A5 AD	LDA $AD
ECD7: DD 01 01	CMP $0101,X
ECDA: D0 29	BNE $ED05
ECDC: E6 9F	INC $9F
ECDE: E6 9F	INC $9F
ECE0: A5 93	LDA $93 	; Work value, monitor, LOAD / SAVE 0 = LOAD, 1 = VERIFY
ECE2: F0 0C	BEQ $ECF0
ECE4: A0 00	LDY #$00
ECE6: 20 CC F7	JSR $F7CC
ECE9: C5 BD	CMP $BD
ECEB: F0 18	BEQ $ED05
ECED: C8	INY
ECEE: 84 B6	STY $B6

ECF0: A5 B6	LDA $B6
ECF2: F0 07	BEQ $ECFB

ECF4: A9 10	LDA #$10
ECF6: 20 57 F7	JSR $F757	; Set Status Bit
ECF9: D0 0A	BNE $ED05

ECFB: A5 93	LDA $93 	; Work value, monitor, LOAD / SAVE 0 = LOAD, 1 = VERIFY
ECFD: D0 06	BNE $ED05
ECFF: A8	TAY
ED00: A5 BD	LDA $BD
ED02: 20 BC F7	JSR $F7BC	; Store Loaded Byte

ED05: 20 C1 EE	JSR $EEC1	; Bump Address
ED08: D0 44	BNE $ED4E

ED0A: A9 80	LDA #$80

ED0C: 85 AA	STA $AA
ED0E: 78	SEI
ED0F: A2 01	LDX #$01
ED11: 8E 0D DC	STX $DC0D
ED14: AE 0D DC	LDX $DC0D
ED17: A6 BE	LDX $BE
ED19: CA	DEX
ED1A: 30 02	BMI $ED1E
ED1C: 86 BE	STX $BE

ED1E: C6 A7	DEC $A7
ED20: F0 08	BEQ $ED2A
ED22: A5 9E	LDA $9E
ED24: D0 28	BNE $ED4E
ED26: 85 BE	STA $BE
ED28: F0 24	BEQ $ED4E

ED2A: 20 57 EE	JSR $EE57	; Wind Up Tape I/O
ED2D: 20 51 ED	JSR $ED51	; Reset Pointer
ED30: A0 00	LDY #$00
ED32: 84 AB	STY $AB

ED34: 20 CC F7	JSR $F7CC
ED37: 45 AB	EOR $AB
ED39: 85 AB	STA $AB
ED3B: 20 C1 EE	JSR $EEC1	; Bump Address
ED3E: 20 B7 EE	JSR $EEB7	; Check End Address
ED41: 90 F1	BCC $ED34
ED43: A5 AB	LDA $AB
ED45: 45 BD	EOR $BD
ED47: F0 05	BEQ $ED4E
ED49: A9 20	LDA #$20
ED4B: 20 57 F7	JSR $F757	; Set Status Bit

ED4E: 4C 33 FF	JMP $FF33	; Return From Interrupt

; Reset Pointer

ED51: A5 C2	LDA $C2
ED53: 85 AD	STA $AD
ED55: A5 C1	LDA $C1
ED57: 85 AC	STA $AC
ED59: 60	RTS

; New Char Set Up

ED5A: A9 08	LDA #$08
ED5C: 85 A3	STA $A3
ED5E: A9 00	LDA #$00
ED60: 85 A4	STA $A4
ED62: 85 A8	STA $A8
ED64: 85 9B	STA $9B
ED66: 85 A9	STA $A9
ED68: 60	RTS

; Write Transition to Tape

ED69: A5 BD	LDA $BD
ED6B: 4A	LSR A
ED6C: A9 60	LDA #$60
ED6E: 90 02	BCC $ED72

ED70: A9 B0	LDA #$B0

ED72: A2 00	LDX #$00

ED74: 8D 06 DC	STA $DC06
ED77: 8E 07 DC	STX $DC07
ED7A: AD 0D DC	LDA $DC0D
ED7D: A9 19	LDA #$19
ED7F: 8D 0F DC	STA $DC0F
ED82: A5 01	LDA $01
ED84: 49 08	EOR #$08
ED86: 85 01	STA $01
ED88: 29 08	AND #$08
ED8A: 60	RTS

; Write Data to Tape

ED8B: 38	SEC
ED8C: 66 B6	ROR $B6
ED8E: 30 3C	BMI $EDCC

; (IRQ) Tape Write

ED90: A5 A8	LDA $A8
ED92: D0 12	BNE $EDA6
ED94: A9 10	LDA #$10
ED96: A2 01	LDX #$01
ED98: 20 74 ED	JSR $ED74
ED9B: D0 2F	BNE $EDCC
ED9D: E6 A8	INC $A8
ED9F: A5 B6	LDA $B6
EDA1: 10 29	BPL $EDCC
EDA3: 4C 1B EE	JMP $EE1B

EDA6: A5 A9	LDA $A9
EDA8: D0 09	BNE $EDB3
EDAA: 20 70 ED	JSR $ED70
EDAD: D0 1D	BNE $EDCC
EDAF: E6 A9	INC $A9
EDB1: D0 19	BNE $EDCC

EDB3: 20 69 ED	JSR $ED69	; Write Transition to Tape
EDB6: D0 14	BNE $EDCC
EDB8: A5 A4	LDA $A4
EDBA: 49 01	EOR #$01
EDBC: 85 A4	STA $A4
EDBE: F0 0F	BEQ $EDCF
EDC0: A5 BD	LDA $BD
EDC2: 49 01	EOR #$01
EDC4: 85 BD	STA $BD
EDC6: 29 01	AND #$01
EDC8: 45 9B	EOR $9B
EDCA: 85 9B	STA $9B

EDCC: 4C 33 FF	JMP $FF33	; Return From Interrupt

EDCF: 46 BD	LSR $BD
EDD1: C6 A3	DEC $A3
EDD3: A5 A3	LDA $A3
EDD5: F0 3B	BEQ $EE12
EDD7: 10 F3	BPL $EDCC

EDD9: 20 5A ED	JSR $ED5A	; New Char Set Up
EDDC: 58	CLI
EDDD: A5 A5	LDA $A5
EDDF: F0 12	BEQ $EDF3
EDE1: A2 00	LDX #$00
EDE3: 86 C5	STX $C5
EDE5: C6 A5	DEC $A5
EDE7: A6 BE	LDX $BE
EDE9: E0 02	CPX #$02
EDEB: D0 02	BNE $EDEF
EDED: 09 80	ORA #$80

EDEF: 85 BD	STA $BD
EDF1: D0 D9	BNE $EDCC

EDF3: 20 B7 EE	JSR $EEB7	; Check End Address
EDF6: 90 0A	BCC $EE02
EDF8: D0 91	BNE $ED8B	; Write Data to Tape
EDFA: E6 AD	INC $AD
EDFC: A5 C5	LDA $C5
EDFE: 85 BD	STA $BD
EE00: B0 CA	BCS $EDCC

EE02: A0 00	LDY #$00
EE04: 20 CC F7	JSR $F7CC
EE07: 85 BD	STA $BD
EE09: 45 C5	EOR $C5
EE0B: 85 C5	STA $C5
EE0D: 20 C1 EE	JSR $EEC1	; Bump Address
EE10: D0 BA	BNE $EDCC

EE12: A5 9B	LDA $9B
EE14: 49 01	EOR #$01
EE16: 85 BD	STA $BD

EE18: 4C 33 FF	JMP $FF33	; Return From Interrupt

EE1B: C6 BE	DEC $BE
EE1D: D0 03	BNE $EE22
EE1F: 20 B0 EE	JSR $EEB0	; Kill Tape Motor

EE22: A9 50	LDA #$50
EE24: 85 A7	STA $A7
EE26: A2 08	LDX #$08
EE28: 78	SEI
EE29: 20 9B EE	JSR $EE9B	; Switch IRQ Vector
EE2C: D0 EA	BNE $EE18

; (IRQ) Tape Leader

EE2E: A9 78	LDA #$78
EE30: 20 72 ED	JSR $ED72
EE33: D0 E3	BNE $EE18
EE35: C6 A7	DEC $A7
EE37: D0 DF	BNE $EE18
EE39: 20 5A ED	JSR $ED5A	; New Char Set Up
EE3C: C6 AB	DEC $AB
EE3E: 10 D8	BPL $EE18
EE40: A2 0A	LDX #$0A
EE42: 20 9B EE	JSR $EE9B	; Switch IRQ Vector
EE45: 58	CLI
EE46: E6 AB	INC $AB
EE48: A5 BE	LDA $BE
EE4A: F0 49	BEQ $EE95
EE4C: 20 51 ED	JSR $ED51	; Reset Pointer
EE4F: A2 09	LDX #$09
EE51: 86 A5	STX $A5
EE53: 86 B6	STX $B6
EE55: D0 82	BNE $EDD9

; Wind Up Tape I/O

EE57: 08	PHP
EE58: 78	SEI
EE59: AD 11 D0	LDA $D011
EE5C: 0D 39 0A	ORA $0A39
EE5F: 29 7F	AND #$7F
EE61: 8D 11 D0	STA $D011
EE64: 2C 3A 0A	BIT $0A3A
EE67: 30 16	BMI $EE7F
EE69: 2C 37 0A	BIT $0A37
EE6C: 10 11	BPL $EE7F
EE6E: AD 38 0A	LDA $0A38
EE71: 8D 15 D0	STA $D015
EE74: AD 37 0A	LDA $0A37
EE77: 8D 30 D0	STA $D030
EE7A: A9 00	LDA #$00
EE7C: 8D 37 0A	STA $0A37

EE7F: 20 B0 EE	JSR $EEB0	; Kill Tape Motor
EE82: 20 B8 E1	JSR $E1B8
EE85: AD 0A 0A	LDA $0A0A
EE88: F0 09	BEQ $EE93
EE8A: 8D 15 03	STA $0315
EE8D: AD 09 0A	LDA $0A09
EE90: 8D 14 03	STA $0314	; IRQ Vector [FA65]

EE93: 28	PLP
EE94: 60	RTS

EE95: 20 57 EE	JSR $EE57	; Wind Up Tape I/O
EE98: 4C 33 FF	JMP $FF33	; Return From Interrupt

; Switch IRQ Vector

EE9B: BD A0 EE	LDA $EEA0,X
EE9E: 8D 14 03	STA $0314	; IRQ Vector [FA65]

EEA1: BD A1 EE	LDA $EEA1,X
EEA4: 8D 15 03	STA $0315
EEA7: 60	RTS

; IRQ Vectors

EEA8: 2E EE	.WORD $EE2E	; (IRQ) Tape Leader
EEAA: 90 ED	.WORD $ED90	; (IRQ) Tape Write
EEAC: 65 FA	.WORD $FA65	; (IRQ) Normal Entry
EEAE: EB EA	.WORD $EAEB	; (IRQ) Read Tape Bits

; Kill Tape Motor

EEB0: A5 01	LDA $01
EEB2: 09 20	ORA #$20
EEB4: 85 01	STA $01
EEB6: 60	RTS

; Check End Address

EEB7: 38	SEC
EEB8: A5 AC	LDA $AC
EEBA: E5 AE	SBC $AE 	; Tape end address / End of program
EEBC: A5 AD	LDA $AD
EEBE: E5 AF	SBC $AF
EEC0: 60	RTS

; Bump Address

EEC1: E6 AC	INC $AC
EEC3: D0 02	BNE $EEC7
EEC5: E6 AD	INC $AD

EEC7: 60	RTS

; (IRQ) Clear Break

EEC8: 08	PHP
EEC9: 68	PLA
EECA: 29 EF	AND #$EF
EECC: 48	PHA
EECD: 4C 17 FF	JMP $FF17	; IRQ Transfer Entry

; Control Tape Motor

EED0: A5 01	LDA $01
EED2: 29 10	AND #$10
EED4: F0 0A	BEQ $EEE0
EED6: A0 00	LDY #$00
EED8: 84 C0	STY $C0
EEDA: A5 01	LDA $01
EEDC: 09 20	ORA #$20
EEDE: D0 08	BNE $EEE8

EEE0: A5 C0	LDA $C0
EEE2: D0 06	BNE $EEEA
EEE4: A5 01	LDA $01
EEE6: 29 DF	AND #$DF

EEE8: 85 01	STA $01

EEEA: 60	RTS

; -getin-

EEEB: A5 99	LDA $99 	; Input device, normally 0
EEED: D0 0A	BNE $EEF9
EEEF: A5 D0	LDA $D0 	; Number of characters in keyboard buffer
EEF1: 05 D1	ORA $D1 	; Number of programmed chars waiting
EEF3: F0 0F	BEQ $EF04
EEF5: 78	SEI
EEF6: 4C 06 C0	JMP $C006	; Get from Keyboard

EEF9: C9 02	CMP #$02
EEFB: D0 18	BNE $EF15

EEFD: 84 97	STY $97
EEFF: 20 CE E7	JSR $E7CE	; Get From RS-232
EF02: A4 97	LDY $97

EF04: 18	CLC
EF05: 60	RTS

; -chrin-

EF06: A5 99	LDA $99 	; Input device, normally 0
EF08: D0 0B	BNE $EF15
EF0A: A5 EC	LDA $EC 	; Current Cursor Column
EF0C: 85 E9	STA $E9 	; Current Input Line Start
EF0E: A5 EB	LDA $EB 	; Current Cursor Line
EF10: 85 E8	STA $E8 	; Current Input Column Start

EF12: 4C 09 C0	JMP $C009	; Screen Input Link

EF15: C9 03	CMP #$03
EF17: D0 09	BNE $EF22
EF19: 20 40 FC	JSR $FC40	; ?
EF1C: A5 E7	LDA $E7 	; Window Right Margin
EF1E: 85 EA	STA $EA 	; Current Input Line End
EF20: B0 F0	BCS $EF12

EF22: B0 38	BCS $EF5C
EF24: C9 02	CMP #$02
EF26: F0 3F	BEQ $EF67
EF28: 86 97	STX $97
EF2A: 20 48 EF	JSR $EF48	; Get Char From Tape
EF2D: B0 16	BCS $EF45
EF2F: 48	PHA
EF30: 20 48 EF	JSR $EF48	; Get Char From Tape
EF33: B0 0D	BCS $EF42
EF35: D0 05	BNE $EF3C
EF37: A9 40	LDA #$40
EF39: 20 57 F7	JSR $F757	; Set Status Bit

EF3C: C6 A6	DEC $A6
EF3E: A6 97	LDX $97
EF40: 68	PLA
EF41: 60	RTS

EF42: AA	TAX
EF43: 68	PLA
EF44: 8A	TXA

EF45: A6 97	LDX $97
EF47: 60	RTS

; Get Char From Tape

EF48: 20 BE E9	JSR $E9BE	; Bump Tape Pointer
EF4B: D0 0B	BNE $EF58
EF4D: 20 F2 E9	JSR $E9F2	; Initiate Tape Read
EF50: B0 09	BCS $EF5B
EF52: A9 00	LDA #$00
EF54: 85 A6	STA $A6
EF56: F0 F0	BEQ $EF48	; Get Char From Tape

EF58: B1 B2	LDA ($B2),Y
EF5A: 18	CLC

EF5B: 60	RTS

EF5C: A5 90	LDA $90 	; Status word ST
EF5E: D0 03	BNE $EF63
EF60: 4C 3E E4	JMP $E43E	; -acptr-

EF63: A9 0D	LDA #$0D

EF65: 18	CLC

EF66: 60	RTS

EF67: 20 FD EE	JSR $EEFD
EF6A: B0 F9	BCS $EF65
EF6C: C9 00	CMP #$00
EF6E: D0 F6	BNE $EF66
EF70: AD 14 0A	LDA $0A14	; RS-232 Status Register
EF73: 29 60	AND #$60
EF75: D0 EC	BNE $EF63
EF77: F0 EE	BEQ $EF67

; -chrout-

EF79: 48	PHA
EF7A: A5 9A	LDA $9A 	; Output device, normally 3
EF7C: C9 03	CMP #$03
EF7E: D0 04	BNE $EF84
EF80: 68	PLA
EF81: 4C 0C C0	JMP $C00C	; Screen Print Link

EF84: 90 04	BCC $EF8A
EF86: 68	PLA
EF87: 4C 03 E5	JMP $E503	; -ciout-  Print Serial

EF8A: 4A	LSR A
EF8B: 68	PLA

EF8C: 85 9E	STA $9E
EF8E: 8A	TXA
EF8F: 48	PHA
EF90: 98	TYA
EF91: 48	PHA
EF92: 90 23	BCC $EFB7
EF94: 20 BE E9	JSR $E9BE	; Bump Tape Pointer
EF97: D0 0E	BNE $EFA7
EF99: 20 15 EA	JSR $EA15	; Initiate Tape Write
EF9C: B0 0E	BCS $EFAC
EF9E: A9 02	LDA #$02
EFA0: A0 00	LDY #$00
EFA2: 91 B2	STA ($B2),Y
EFA4: C8	INY
EFA5: 84 A6	STY $A6

EFA7: A5 9E	LDA $9E
EFA9: 91 B2	STA ($B2),Y

EFAB: 18	CLC

EFAC: 68	PLA
EFAD: A8	TAY
EFAE: 68	PLA
EFAF: AA	TAX
EFB0: A5 9E	LDA $9E
EFB2: 90 02	BCC $EFB6
EFB4: A9 00	LDA #$00

EFB6: 60	RTS

EFB7: 20 5F E7	JSR $E75F	; Send To RS-232
EFBA: 4C AB EF	JMP $EFAB

; -open-

EFBD: A6 B8	LDX $B8 	; Current logical file
EFBF: 20 02 F2	JSR $F202	; Search For File
EFC2: F0 2F	BEQ $EFF3
EFC4: A6 98	LDX $98 	; How many open files
EFC6: E0 0A	CPX #$0A
EFC8: B0 26	BCS $EFF0
EFCA: E6 98	INC $98 	; How many open files
EFCC: A5 B8	LDA $B8 	; Current logical file
EFCE: 9D 62 03	STA $0362,X	; Logical File Number Table
EFD1: A5 B9	LDA $B9 	; Current secondary address
EFD3: 09 60	ORA #$60
EFD5: 85 B9	STA $B9 	; Current secondary address
EFD7: 9D 76 03	STA $0376,X	; Secondary Addresse Table
EFDA: A5 BA	LDA $BA 	; Current device
EFDC: 9D 6C 03	STA $036C,X	; Device Number Table
EFDF: F0 0D	BEQ $EFEE
EFE1: C9 02	CMP #$02
EFE3: F0 5B	BEQ $F040
EFE5: 90 0F	BCC $EFF6
EFE7: C9 03	CMP #$03
EFE9: F0 03	BEQ $EFEE
EFEB: 20 CB F0	JSR $F0CB	; Check Serial Open

EFEE: 18	CLC
EFEF: 60	RTS

EFF0: 4C 7C F6	JMP $F67C	; Print 'too many files'

EFF3: 4C 7F F6	JMP $F67F	; Print 'file open'

EFF6: 20 80 E9	JSR $E980	; Get Buffer Address
EFF9: B0 03	BCS $EFFE
EFFB: 4C 94 F6	JMP $F694	; Print 'illegal device no'

EFFE: A5 B9	LDA $B9 	; Current secondary address
F000: 29 0F	AND #$0F
F002: D0 1F	BNE $F023
F004: 20 C8 E9	JSR $E9C8	; Print 'press play on tape'
F007: B0 36	BCS $F03F
F009: 20 0F F5	JSR $F50F	; Print 'searching'
F00C: A5 B7	LDA $B7 	; Number of characters in file name
F00E: F0 0A	BEQ $F01A
F010: 20 9A E9	JSR $E99A	; Find Specific Header
F013: 90 18	BCC $F02D
F015: F0 28	BEQ $F03F

F017: 4C 85 F6	JMP $F685	; Print 'file not found'

F01A: 20 D0 E8	JSR $E8D0	; Find Any Tape Header
F01D: 90 0E	BCC $F02D
F01F: F0 1E	BEQ $F03F
F021: B0 F4	BCS $F017

F023: 20 E9 E9	JSR $E9E9	; Print 'press record ...'
F026: B0 17	BCS $F03F
F028: A9 04	LDA #$04
F02A: 20 19 E9	JSR $E919	; Write Tape Header

F02D: A9 BF	LDA #$BF
F02F: A4 B9	LDY $B9 	; Current secondary address
F031: C0 60	CPY #$60
F033: F0 07	BEQ $F03C
F035: A0 00	LDY #$00
F037: A9 02	LDA #$02
F039: 91 B2	STA ($B2),Y
F03B: 98	TYA

F03C: 85 A6	STA $A6
F03E: 18	CLC

F03F: 60	RTS

F040: 20 B0 F0	JSR $F0B0	; Set CIA to RS-232
F043: 8C 14 0A	STY $0A14	; RS-232 Status Register

F046: C4 B7	CPY $B7 	; Number of characters in file name
F048: F0 0B	BEQ $F055
F04A: 20 AE F7	JSR $F7AE	; Get Char From Memory
F04D: 99 10 0A	STA $0A10,Y	; RS-232 Control Register
F050: C8	INY
F051: C0 04	CPY #$04
F053: D0 F1	BNE $F046

F055: 20 8E E6	JSR $E68E	; Set RS-232 Bit Count
F058: 8E 15 0A	STX $0A15	; RS-232 Number of Bits To Send
F05B: AD 10 0A	LDA $0A10	; RS-232 Control Register
F05E: 29 0F	AND #$0F
F060: F0 1C	BEQ $F07E
F062: 0A	ASL A
F063: AA	TAX
F064: AD 03 0A	LDA $0A03	; PAL/NTSC System Flag
F067: D0 09	BNE $F072
F069: BC 4F E8	LDY $E84F,X
F06C: BD 4E E8	LDA $E84E,X
F06F: 4C 78 F0	JMP $F078

F072: BC 63 E8	LDY $E863,X
F075: BD 62 E8	LDA $E862,X

F078: 8C 13 0A	STY $0A13
F07B: 8D 12 0A	STA $0A12	; RS-232 User Baud Rate

F07E: AD 12 0A	LDA $0A12	; RS-232 User Baud Rate
F081: 0A	ASL A
F082: AA	TAX
F083: AD 13 0A	LDA $0A13
F086: 2A	ROL A
F087: A8	TAY
F088: 8A	TXA
F089: 69 C8	ADC #$C8
F08B: 8D 16 0A	STA $0A16	; RS-232 Baud Rate Full Bit Time (Created by OPEN)
F08E: 98	TYA
F08F: 69 00	ADC #$00
F091: 8D 17 0A	STA $0A17
F094: AD 11 0A	LDA $0A11	; RS-232 Command Register
F097: 4A	LSR A
F098: 90 09	BCC $F0A3
F09A: AD 01 DD	LDA $DD01
F09D: 30 04	BMI $F0A3
F09F: 20 55 E7	JSR $E755
F0A2: 18	CLC

F0A3: AD 18 0A	LDA $0A18	; RS-232 Input Buffer Index to End
F0A6: 8D 19 0A	STA $0A19	; RS-232 Input Buffer Index to Start
F0A9: AD 1B 0A	LDA $0A1B	; RS-232 Output Buffer Index to End
F0AC: 8D 1A 0A	STA $0A1A	; RS-232 Output Buffer Index to Start
F0AF: 60	RTS

; Set CIA to RS-232

F0B0: A9 7F	LDA #$7F
F0B2: 8D 0D DD	STA $DD0D
F0B5: A9 06	LDA #$06
F0B7: 8D 03 DD	STA $DD03
F0BA: 8D 01 DD	STA $DD01
F0BD: A9 04	LDA #$04
F0BF: 0D 00 DD	ORA $DD00
F0C2: 8D 00 DD	STA $DD00
F0C5: A0 00	LDY #$00
F0C7: 8C 0F 0A	STY $0A0F
F0CA: 60	RTS

; Check Serial Open

F0CB: A5 B9	LDA $B9 	; Current secondary address
F0CD: 30 04	BMI $F0D3
F0CF: A4 B7	LDY $B7 	; Number of characters in file name
F0D1: D0 02	BNE $F0D5

F0D3: 18	CLC
F0D4: 60	RTS

F0D5: A9 00	LDA #$00
F0D7: 85 90	STA $90 	; Status word ST
F0D9: A5 BA	LDA $BA 	; Current device
F0DB: 20 3E E3	JSR $E33E	; -listen-
F0DE: 24 90	BIT $90 	; Status word ST
F0E0: 30 0B	BMI $F0ED
F0E2: A5 B9	LDA $B9 	; Current secondary address
F0E4: 09 F0	ORA #$F0
F0E6: 20 D2 E4	JSR $E4D2	; -second-
F0E9: A5 90	LDA $90 	; Status word ST
F0EB: 10 05	BPL $F0F2

F0ED: 68	PLA
F0EE: 68	PLA
F0EF: 4C 88 F6	JMP $F688	; Print 'device not present'

F0F2: A5 B7	LDA $B7 	; Number of characters in file name
F0F4: F0 0D	BEQ $F103
F0F6: A0 00	LDY #$00

F0F8: 20 AE F7	JSR $F7AE	; Get Char From Memory
F0FB: 20 03 E5	JSR $E503	; -ciout-  Print Serial
F0FE: C8	INY
F0FF: C4 B7	CPY $B7 	; Number of characters in file name
F101: D0 F5	BNE $F0F8

F103: 4C B0 F5	JMP $F5B0

; -chkin-

F106: 20 02 F2	JSR $F202	; Search For File
F109: D0 3E	BNE $F149
F10B: 20 12 F2	JSR $F212	; Set File Parameters
F10E: F0 13	BEQ $F123
F110: C9 03	CMP #$03
F112: F0 0F	BEQ $F123
F114: B0 11	BCS $F127
F116: C9 02	CMP #$02
F118: D0 03	BNE $F11D
F11A: 4C 95 E7	JMP $E795	; Connect RS-232 Input

F11D: A6 B9	LDX $B9 	; Current secondary address
F11F: E0 60	CPX #$60
F121: D0 20	BNE $F143

F123: 85 99	STA $99 	; Input device, normally 0
F125: 18	CLC
F126: 60	RTS

F127: AA	TAX
F128: 20 3B E3	JSR $E33B	; -talk-
F12B: 24 90	BIT $90 	; Status word ST
F12D: 30 11	BMI $F140
F12F: A5 B9	LDA $B9 	; Current secondary address
F131: 10 05	BPL $F138
F133: 20 E9 E4	JSR $E4E9
F136: 10 03	BPL $F13B

F138: 20 E0 E4	JSR $E4E0	; -tksa-

F13B: 8A	TXA
F13C: 24 90	BIT $90 	; Status word ST
F13E: 10 E3	BPL $F123

F140: 4C 88 F6	JMP $F688	; Print 'device not present'

F143: 4C 8B F6	JMP $F68B	; Print 'not input file'

F146: 4C 8E F6	JMP $F68E	; Print 'not output file'

F149: 4C 82 F6	JMP $F682	; Print 'file not open'

; -chkout-

F14C: 20 02 F2	JSR $F202	; Search For File
F14F: D0 F8	BNE $F149
F151: 20 12 F2	JSR $F212	; Set File Parameters
F154: F0 F0	BEQ $F146
F156: C9 03	CMP #$03
F158: F0 0F	BEQ $F169
F15A: B0 11	BCS $F16D
F15C: C9 02	CMP #$02
F15E: D0 03	BNE $F163
F160: 4C 29 E7	JMP $E729

F163: A6 B9	LDX $B9 	; Current secondary address
F165: E0 60	CPX #$60
F167: F0 DD	BEQ $F146

F169: 85 9A	STA $9A 	; Output device, normally 3

F16B: 18	CLC
F16C: 60	RTS

F16D: AA	TAX
F16E: 20 3E E3	JSR $E33E	; -listen-
F171: 24 90	BIT $90 	; Status word ST
F173: 30 CB	BMI $F140
F175: A5 B9	LDA $B9 	; Current secondary address
F177: 10 05	BPL $F17E
F179: 20 D7 E4	JSR $E4D7	; Set ATN High
F17C: D0 03	BNE $F181

F17E: 20 D2 E4	JSR $E4D2	; -second-

F181: 8A	TXA
F182: 24 90	BIT $90 	; Status word ST
F184: 10 E3	BPL $F169
F186: 30 B8	BMI $F140

; -close-

F188: 66 92	ROR $92
F18A: 20 07 F2	JSR $F207
F18D: D0 DC	BNE $F16B
F18F: 20 12 F2	JSR $F212	; Set File Parameters
F192: 8A	TXA
F193: 48	PHA
F194: A5 BA	LDA $BA 	; Current device
F196: F0 4C	BEQ $F1E4	; Delete File
F198: C9 03	CMP #$03
F19A: F0 48	BEQ $F1E4	; Delete File
F19C: B0 31	BCS $F1CF
F19E: C9 02	CMP #$02
F1A0: D0 07	BNE $F1A9
F1A2: 68	PLA
F1A3: 20 E5 F1	JSR $F1E5
F1A6: 4C B0 F0	JMP $F0B0	; Set CIA to RS-232

F1A9: A5 B9	LDA $B9 	; Current secondary address
F1AB: 29 0F	AND #$0F
F1AD: F0 35	BEQ $F1E4	; Delete File
F1AF: 20 80 E9	JSR $E980	; Get Buffer Address
F1B2: A9 00	LDA #$00
F1B4: 38	SEC
F1B5: 20 8C EF	JSR $EF8C
F1B8: 20 15 EA	JSR $EA15	; Initiate Tape Write
F1BB: 90 04	BCC $F1C1
F1BD: 68	PLA
F1BE: A9 00	LDA #$00
F1C0: 60	RTS

F1C1: A5 B9	LDA $B9 	; Current secondary address
F1C3: C9 62	CMP #$62
F1C5: D0 1D	BNE $F1E4	; Delete File
F1C7: A9 05	LDA #$05
F1C9: 20 19 E9	JSR $E919	; Write Tape Header
F1CC: 4C E4 F1	JMP $F1E4	; Delete File

F1CF: 24 92	BIT $92
F1D1: 10 0E	BPL $F1E1
F1D3: A5 BA	LDA $BA 	; Current device
F1D5: C9 08	CMP #$08
F1D7: 90 08	BCC $F1E1
F1D9: A5 B9	LDA $B9 	; Current secondary address
F1DB: 29 0F	AND #$0F
F1DD: C9 0F	CMP #$0F
F1DF: F0 03	BEQ $F1E4	; Delete File

F1E1: 20 9E F5	JSR $F59E

; Delete File

F1E4: 68	PLA

F1E5: AA	TAX
F1E6: C6 98	DEC $98 	; How many open files
F1E8: E4 98	CPX $98 	; How many open files
F1EA: F0 14	BEQ $F200
F1EC: A4 98	LDY $98 	; How many open files
F1EE: B9 62 03	LDA $0362,Y	; Logical File Number Table
F1F1: 9D 62 03	STA $0362,X	; Logical File Number Table
F1F4: B9 6C 03	LDA $036C,Y	; Device Number Table
F1F7: 9D 6C 03	STA $036C,X	; Device Number Table
F1FA: B9 76 03	LDA $0376,Y	; Secondary Addresse Table
F1FD: 9D 76 03	STA $0376,X	; Secondary Addresse Table

F200: 18	CLC
F201: 60	RTS

; Search For File

F202: A9 00	LDA #$00
F204: 85 90	STA $90 	; Status word ST
F206: 8A	TXA

F207: A6 98	LDX $98 	; How many open files

F209: CA	DEX
F20A: 30 05	BMI $F211
F20C: DD 62 03	CMP $0362,X	; Logical File Number Table
F20F: D0 F8	BNE $F209

F211: 60	RTS

; Set File Parameters

F212: BD 62 03	LDA $0362,X	; Logical File Number Table
F215: 85 B8	STA $B8 	; Current logical file
F217: BD 76 03	LDA $0376,X	; Secondary Addresse Table
F21A: 85 B9	STA $B9 	; Current secondary address
F21C: BD 6C 03	LDA $036C,X	; Device Number Table
F21F: 85 BA	STA $BA 	; Current device
F221: 60	RTS

; -clall-

F222: A9 00	LDA #$00
F224: 85 98	STA $98 	; How many open files

; -clrchn-

F226: A2 03	LDX #$03
F228: E4 9A	CPX $9A 	; Output device, normally 3
F22A: B0 03	BCS $F22F
F22C: 20 26 E5	JSR $E526	; -unlsn-

F22F: E4 99	CPX $99 	; Input device, normally 0
F231: B0 03	BCS $F236
F233: 20 15 E5	JSR $E515	; -untlk-

F236: 86 9A	STX $9A 	; Output device, normally 3
F238: A9 00	LDA #$00
F23A: 85 99	STA $99 	; Input device, normally 0
F23C: 60	RTS

; Clear I/O Path

F23D: 85 BA	STA $BA 	; Current device
F23F: C5 9A	CMP $9A 	; Output device, normally 3
F241: D0 05	BNE $F248
F243: A9 03	LDA #$03
F245: 85 9A	STA $9A 	; Output device, normally 3
F247: 2C	.BYTE $2C

F248: C5 99	CMP $99 	; Input device, normally 0
F24A: D0 04	BNE $F250
F24C: A9 00	LDA #$00
F24E: 85 99	STA $99 	; Input device, normally 0

F250: A5 BA	LDA $BA 	; Current device
F252: A6 98	LDX $98 	; How many open files

F254: CA	DEX
F255: 30 0D	BMI $F264
F257: DD 6C 03	CMP $036C,X	; Device Number Table
F25A: D0 F8	BNE $F254
F25C: BD 62 03	LDA $0362,X	; Logical File Number Table
F25F: 20 C3 FF	JSR $FFC3	; (iclose)      Close Vector [F188]
F262: 90 EC	BCC $F250

F264: 60	RTS

; -load-

F265: 86 C3	STX $C3
F267: 84 C4	STY $C4

F269: 6C 30 03	JMP ($0330)	; LOAD Link [F26C]

; -kernalload-

F26C: 85 93	STA $93 	; Work value, monitor, LOAD / SAVE 0 = LOAD, 1 = VERIFY
F26E: A9 00	LDA #$00
F270: 85 90	STA $90 	; Status word ST
F272: A5 BA	LDA $BA 	; Current device
F274: C9 04	CMP #$04
F276: B0 03	BCS $F27B	; Serial Load
F278: 4C 26 F3	JMP $F326

; Serial Load

F27B: AD 1C 0A	LDA $0A1C	; Fast Serial Internal/External Flag
F27E: 29 BE	AND #$BE
F280: 8D 1C 0A	STA $0A1C	; Fast Serial Internal/External Flag
F283: A6 B9	LDX $B9 	; Current secondary address
F285: 86 9E	STX $9E
F287: A4 B7	LDY $B7 	; Number of characters in file name
F289: D0 03	BNE $F28E
F28B: 4C 1A F3	JMP $F31A

F28E: 84 9F	STY $9F
F290: 20 0F F5	JSR $F50F	; Print 'searching'
F293: 20 A1 F3	JSR $F3A1	; Disk Load
F296: B0 03	BCS $F29B
F298: 4C 9B F3	JMP $F39B

F29B: A4 9F	LDY $9F
F29D: 84 B7	STY $B7 	; Number of characters in file name
F29F: A9 60	LDA #$60
F2A1: 85 B9	STA $B9 	; Current secondary address
F2A3: 20 CB F0	JSR $F0CB	; Check Serial Open
F2A6: A5 BA	LDA $BA 	; Current device
F2A8: 20 3B E3	JSR $E33B	; -talk-
F2AB: A5 B9	LDA $B9 	; Current secondary address
F2AD: 20 E0 E4	JSR $E4E0	; -tksa-
F2B0: 20 3E E4	JSR $E43E	; -acptr-
F2B3: 85 AE	STA $AE 	; Tape end address / End of program
F2B5: 20 3E E4	JSR $E43E	; -acptr-
F2B8: 85 AF	STA $AF
F2BA: A5 90	LDA $90 	; Status word ST
F2BC: 4A	LSR A
F2BD: 4A	LSR A
F2BE: B0 57	BCS $F317
F2C0: A5 9E	LDA $9E
F2C2: D0 08	BNE $F2CC
F2C4: A5 C3	LDA $C3
F2C6: 85 AE	STA $AE 	; Tape end address / End of program
F2C8: A5 C4	LDA $C4
F2CA: 85 AF	STA $AF

F2CC: 20 4A FC	JSR $FC4A	; ?

F2CF: A9 FD	LDA #$FD
F2D1: 25 90	AND $90 	; Status word ST
F2D3: 85 90	STA $90 	; Status word ST
F2D5: 20 E1 FF	JSR $FFE1	; (istop)       Test-Stop Vector [F66E]
F2D8: F0 49	BEQ $F323
F2DA: 20 3E E4	JSR $E43E	; -acptr-
F2DD: AA	TAX
F2DE: A5 90	LDA $90 	; Status word ST
F2E0: 4A	LSR A
F2E1: 4A	LSR A
F2E2: B0 EB	BCS $F2CF
F2E4: 8A	TXA
F2E5: A4 93	LDY $93 	; Work value, monitor, LOAD / SAVE 0 = LOAD, 1 = VERIFY
F2E7: F0 12	BEQ $F2FB
F2E9: 85 BD	STA $BD
F2EB: A0 00	LDY #$00
F2ED: 20 C9 F7	JSR $F7C9	; Read Byte to be Saved
F2F0: C5 BD	CMP $BD
F2F2: F0 0A	BEQ $F2FE
F2F4: A9 10	LDA #$10
F2F6: 20 57 F7	JSR $F757	; Set Status Bit
F2F9: D0 03	BNE $F2FE

F2FB: 20 BF F7	JSR $F7BF

F2FE: E6 AE	INC $AE 	; Tape end address / End of program
F300: D0 08	BNE $F30A
F302: E6 AF	INC $AF
F304: A5 AF	LDA $AF
F306: C9 FF	CMP #$FF
F308: F0 16	BEQ $F320

F30A: 24 90	BIT $90 	; Status word ST
F30C: 50 C1	BVC $F2CF
F30E: 20 15 E5	JSR $E515	; -untlk-
F311: 20 9E F5	JSR $F59E
F314: 4C 9B F3	JMP $F39B

F317: 4C 85 F6	JMP $F685	; Print 'file not found'

F31A: 4C 91 F6	JMP $F691	; Print 'missing file name'

F31D: 4C 94 F6	JMP $F694	; Print 'illegal device no'

F320: 4C 97 F6	JMP $F697	; Error #0

F323: 4C B5 F5	JMP $F5B5	; Terminate Serial Input

F326: C9 01	CMP #$01
F328: D0 F3	BNE $F31D

; Tape Load

F32A: 20 80 E9	JSR $E980	; Get Buffer Address
F32D: 90 EE	BCC $F31D
F32F: 20 C8 E9	JSR $E9C8	; Print 'press play on tape'
F332: B0 6C	BCS $F3A0
F334: 20 0F F5	JSR $F50F	; Print 'searching'

F337: A5 B7	LDA $B7 	; Number of characters in file name
F339: F0 09	BEQ $F344
F33B: 20 9A E9	JSR $E99A	; Find Specific Header
F33E: 90 0B	BCC $F34B
F340: F0 5E	BEQ $F3A0
F342: B0 D3	BCS $F317

F344: 20 D0 E8	JSR $E8D0	; Find Any Tape Header
F347: F0 57	BEQ $F3A0
F349: B0 CC	BCS $F317

F34B: 38	SEC
F34C: A5 90	LDA $90 	; Status word ST
F34E: 29 10	AND #$10
F350: D0 4E	BNE $F3A0
F352: E0 01	CPX #$01
F354: F0 11	BEQ $F367
F356: E0 03	CPX #$03
F358: D0 DD	BNE $F337

F35A: A0 01	LDY #$01
F35C: B1 B2	LDA ($B2),Y
F35E: 85 C3	STA $C3
F360: C8	INY
F361: B1 B2	LDA ($B2),Y
F363: 85 C4	STA $C4
F365: B0 04	BCS $F36B

F367: A5 B9	LDA $B9 	; Current secondary address
F369: D0 EF	BNE $F35A

F36B: A0 03	LDY #$03
F36D: B1 B2	LDA ($B2),Y
F36F: A0 01	LDY #$01
F371: F1 B2	SBC ($B2),Y
F373: AA	TAX
F374: A0 04	LDY #$04
F376: B1 B2	LDA ($B2),Y
F378: A0 02	LDY #$02
F37A: F1 B2	SBC ($B2),Y
F37C: A8	TAY
F37D: 18	CLC
F37E: 8A	TXA
F37F: 65 C3	ADC $C3
F381: 85 AE	STA $AE 	; Tape end address / End of program
F383: 98	TYA
F384: 65 C4	ADC $C4
F386: 85 AF	STA $AF
F388: C9 FF	CMP #$FF
F38A: F0 94	BEQ $F320
F38C: A5 C3	LDA $C3
F38E: 85 C1	STA $C1
F390: A5 C4	LDA $C4
F392: 85 C2	STA $C2
F394: 20 33 F5	JSR $F533	; Print 'loading'
F397: 20 FB E9	JSR $E9FB
F39A: 24	.BYTE $24

F39B: 18	CLC
F39C: A6 AE	LDX $AE 	; Tape end address / End of program
F39E: A4 AF	LDY $AF

F3A0: 60	RTS

; Disk Load

F3A1: A0 00	LDY #$00
F3A3: 20 AE F7	JSR $F7AE	; Get Char From Memory
F3A6: C9 24	CMP #$24
F3A8: F0 F6	BEQ $F3A0
F3AA: A6 BA	LDX $BA 	; Current device
F3AC: A0 0F	LDY #$0F
F3AE: A9 00	LDA #$00
F3B0: 20 38 F7	JSR $F738	; -setlfs-
F3B3: 85 B7	STA $B7 	; Number of characters in file name
F3B5: 20 C0 FF	JSR $FFC0	; (iopen)       Open Vector [EFBD]
F3B8: A6 B8	LDX $B8 	; Current logical file
F3BA: 20 C9 FF	JSR $FFC9	; (ichkout)     Set Output [F14C]
F3BD: 90 08	BCC $F3C7
F3BF: 20 8C F4	JSR $F48C	; Close Off Serial
F3C2: 68	PLA
F3C3: 68	PLA
F3C4: 4C 88 F6	JMP $F688	; Print 'device not present'

F3C7: A0 03	LDY #$03

F3C9: B9 0B F5	LDA $F50B,Y
F3CC: 20 D2 FF	JSR $FFD2	; (ibsout)      Output Vector, chrout [EF79]
F3CF: 88	DEY
F3D0: D0 F7	BNE $F3C9

F3D2: 20 AE F7	JSR $F7AE	; Get Char From Memory
F3D5: 20 D2 FF	JSR $FFD2	; (ibsout)      Output Vector, chrout [EF79]
F3D8: C8	INY
F3D9: C4 9F	CPY $9F
F3DB: D0 F5	BNE $F3D2
F3DD: 20 CC FF	JSR $FFCC	; (iclrch)      Restore I/O Vector [F226]
F3E0: 2C 1C 0A	BIT $0A1C	; Fast Serial Internal/External Flag
F3E3: 70 05	BVS $F3EA	; Burst Load
F3E5: 20 8C F4	JSR $F48C	; Close Off Serial
F3E8: 38	SEC
F3E9: 60	RTS

; Burst Load

F3EA: A5 9F	LDA $9F
F3EC: 85 B7	STA $B7 	; Number of characters in file name
F3EE: 78	SEI
F3EF: 20 45 E5	JSR $E545	; Set Clock High
F3F2: 20 C3 E5	JSR $E5C3	; Fast Disk Off
F3F5: 2C 0D DC	BIT $DC0D
F3F8: 20 03 F5	JSR $F503	; Toggle Clock Line
F3FB: 20 BA F4	JSR $F4BA	; Get Serial Byte
F3FE: C9 02	CMP #$02
F400: D0 08	BNE $F40A
F402: 20 8C F4	JSR $F48C	; Close Off Serial
F405: 68	PLA
F406: 68	PLA
F407: 4C 85 F6	JMP $F685	; Print 'file not found'

F40A: 48	PHA
F40B: C9 1F	CMP #$1F
F40D: D0 0B	BNE $F41A
F40F: 20 03 F5	JSR $F503	; Toggle Clock Line
F412: 20 BA F4	JSR $F4BA	; Get Serial Byte
F415: 85 A5	STA $A5
F417: 4C 21 F4	JMP $F421

F41A: C9 02	CMP #$02
F41C: 90 03	BCC $F421
F41E: 68	PLA
F41F: B0 77	BCS $F498

F421: 20 33 F5	JSR $F533	; Print 'loading'
F424: 20 03 F5	JSR $F503	; Toggle Clock Line
F427: 20 BA F4	JSR $F4BA	; Get Serial Byte
F42A: 85 AE	STA $AE 	; Tape end address / End of program
F42C: 20 03 F5	JSR $F503	; Toggle Clock Line
F42F: 20 BA F4	JSR $F4BA	; Get Serial Byte
F432: 85 AF	STA $AF
F434: A6 9E	LDX $9E
F436: D0 08	BNE $F440
F438: A5 C3	LDA $C3
F43A: A6 C4	LDX $C4
F43C: 85 AE	STA $AE 	; Tape end address / End of program
F43E: 86 AF	STX $AF

F440: A5 AE	LDA $AE 	; Tape end address / End of program
F442: A6 AF	LDX $AF
F444: 85 AC	STA $AC
F446: 86 AD	STX $AD
F448: 68	PLA
F449: C9 1F	CMP #$1F
F44B: F0 32	BEQ $F47F
F44D: 20 03 F5	JSR $F503	; Toggle Clock Line
F450: A9 FC	LDA #$FC
F452: 85 A5	STA $A5

F454: 20 3D F6	JSR $F63D	; Watch For RUN or Shift
F457: 20 E1 FF	JSR $FFE1	; (istop)       Test-Stop Vector [F66E]
F45A: F0 4A	BEQ $F4A6
F45C: 20 C5 F4	JSR $F4C5	; Receive Serial Byte
F45F: B0 51	BCS $F4B2
F461: 20 BA F4	JSR $F4BA	; Get Serial Byte
F464: C9 02	CMP #$02
F466: 90 06	BCC $F46E
F468: C9 1F	CMP #$1F
F46A: F0 0B	BEQ $F477
F46C: D0 2A	BNE $F498

F46E: 20 03 F5	JSR $F503	; Toggle Clock Line
F471: A9 FE	LDA #$FE
F473: 85 A5	STA $A5
F475: D0 DD	BNE $F454

F477: 20 03 F5	JSR $F503	; Toggle Clock Line
F47A: 20 BA F4	JSR $F4BA	; Get Serial Byte
F47D: 85 A5	STA $A5

F47F: 20 03 F5	JSR $F503	; Toggle Clock Line
F482: 20 C5 F4	JSR $F4C5	; Receive Serial Byte
F485: B0 2B	BCS $F4B2
F487: A9 40	LDA #$40
F489: 20 57 F7	JSR $F757	; Set Status Bit

; Close Off Serial

F48C: 20 45 E5	JSR $E545	; Set Clock High
F48F: 58	CLI
F490: A5 B8	LDA $B8 	; Current logical file
F492: 38	SEC
F493: 20 C3 FF	JSR $FFC3	; (iclose)      Close Vector [F188]
F496: 18	CLC
F497: 60	RTS

F498: A9 02	LDA #$02
F49A: 20 57 F7	JSR $F757	; Set Status Bit
F49D: 20 8C F4	JSR $F48C	; Close Off Serial
F4A0: 68	PLA
F4A1: 68	PLA
F4A2: A9 29	LDA #$29
F4A4: 38	SEC
F4A5: 60	RTS

F4A6: 20 8C F4	JSR $F48C	; Close Off Serial
F4A9: A9 00	LDA #$00
F4AB: 85 B9	STA $B9 	; Current secondary address
F4AD: 68	PLA
F4AE: 68	PLA
F4AF: 4C B5 F5	JMP $F5B5	; Terminate Serial Input

F4B2: 20 8C F4	JSR $F48C	; Close Off Serial
F4B5: 68	PLA
F4B6: 68	PLA
F4B7: 4C 97 F6	JMP $F697	; Error #0

; Get Serial Byte

F4BA: A9 08	LDA #$08

F4BC: 2C 0D DC	BIT $DC0D
F4BF: F0 FB	BEQ $F4BC
F4C1: AD 0C DC	LDA $DC0C
F4C4: 60	RTS

; Receive Serial Byte

F4C5: A9 08	LDA #$08

F4C7: 2C 0D DC	BIT $DC0D
F4CA: F0 FB	BEQ $F4C7
F4CC: AC 0C DC	LDY $DC0C
F4CF: AD 00 DD	LDA $DD00
F4D2: 49 10	EOR #$10
F4D4: 8D 00 DD	STA $DD00
F4D7: 98	TYA
F4D8: A4 93	LDY $93 	; Work value, monitor, LOAD / SAVE 0 = LOAD, 1 = VERIFY
F4DA: F0 12	BEQ $F4EE
F4DC: 85 BD	STA $BD
F4DE: A0 00	LDY #$00
F4E0: 20 C9 F7	JSR $F7C9	; Read Byte to be Saved
F4E3: C5 BD	CMP $BD
F4E5: F0 0A	BEQ $F4F1
F4E7: A9 10	LDA #$10
F4E9: 20 57 F7	JSR $F757	; Set Status Bit
F4EC: D0 03	BNE $F4F1

F4EE: 20 BF F7	JSR $F7BF

F4F1: E6 AE	INC $AE 	; Tape end address / End of program
F4F3: D0 08	BNE $F4FD
F4F5: E6 AF	INC $AF
F4F7: A5 AF	LDA $AF
F4F9: C9 FF	CMP #$FF
F4FB: F0 05	BEQ $F502

F4FD: C6 A5	DEC $A5
F4FF: D0 C4	BNE $F4C5	; Receive Serial Byte
F501: 18	CLC

F502: 60	RTS

; Toggle Clock Line

F503: AD 00 DD	LDA $DD00
F506: 49 10	EOR #$10
F508: 8D 00 DD	STA $DD00

F50B: 60	RTS

; Print 'u0' Disk Reset

F50C: 1F 30 55               	; '{BLUE}0u'

; Print 'searching'

F50F: A5 9D	LDA $9D 	; I/O messages: 192 = all, 128 = commands, 64 = errors, 0 = nil
F511: 10 1F	BPL $F532
F513: A0 0C	LDY #$0C
F515: 20 22 F7	JSR $F722	; Print I/O Message
F518: A5 B7	LDA $B7 	; Number of characters in file name
F51A: F0 16	BEQ $F532
F51C: A0 17	LDY #$17
F51E: 20 22 F7	JSR $F722	; Print I/O Message

; Send File Name

F521: A4 B7	LDY $B7 	; Number of characters in file name
F523: F0 0D	BEQ $F532
F525: A0 00	LDY #$00

F527: 20 AE F7	JSR $F7AE	; Get Char From Memory
F52A: 20 D2 FF	JSR $FFD2	; (ibsout)      Output Vector, chrout [EF79]
F52D: C8	INY
F52E: C4 B7	CPY $B7 	; Number of characters in file name
F530: D0 F5	BNE $F527

F532: 60	RTS

; Print 'loading'

F533: A0 49	LDY #$49
F535: A5 93	LDA $93 	; Work value, monitor, LOAD / SAVE 0 = LOAD, 1 = VERIFY
F537: F0 02	BEQ $F53B
F539: A0 59	LDY #$59

F53B: 4C 1E F7	JMP $F71E	; Print If Direct

; -save-

F53E: 86 AE	STX $AE 	; Tape end address / End of program
F540: 84 AF	STY $AF
F542: AA	TAX
F543: B5 00	LDA $00,X
F545: 85 C1	STA $C1
F547: B5 01	LDA $01,X
F549: 85 C2	STA $C2
F54B: 6C 32 03	JMP ($0332)	; SAVE Link [F54E]

; -kernalsave-

F54E: A5 BA	LDA $BA 	; Current device
F550: C9 01	CMP #$01
F552: F0 74	BEQ $F5C8	; Save to Tape
F554: C9 04	CMP #$04
F556: B0 09	BCS $F561

F558: 4C 94 F6	JMP $F694	; Print 'illegal device no'

F55B: 4C 91 F6	JMP $F691	; Print 'missing file name'
F55E: 4C 85 F6	JMP $F685	; Print 'file not found'

F561: A4 B7	LDY $B7 	; Number of characters in file name
F563: F0 F6	BEQ $F55B
F565: A9 61	LDA #$61
F567: 85 B9	STA $B9 	; Current secondary address
F569: 20 CB F0	JSR $F0CB	; Check Serial Open
F56C: 20 BC F5	JSR $F5BC	; Print 'saving'
F56F: A5 BA	LDA $BA 	; Current device
F571: 20 3E E3	JSR $E33E	; -listen-
F574: A5 B9	LDA $B9 	; Current secondary address
F576: 20 D2 E4	JSR $E4D2	; -second-
F579: A0 00	LDY #$00
F57B: 20 51 ED	JSR $ED51	; Reset Pointer
F57E: 20 03 E5	JSR $E503	; -ciout-  Print Serial
F581: A5 AD	LDA $AD
F583: 20 03 E5	JSR $E503	; -ciout-  Print Serial

F586: 20 B7 EE	JSR $EEB7	; Check End Address
F589: B0 10	BCS $F59B
F58B: 20 CC F7	JSR $F7CC
F58E: 20 03 E5	JSR $E503	; -ciout-  Print Serial
F591: 20 E1 FF	JSR $FFE1	; (istop)       Test-Stop Vector [F66E]
F594: F0 1F	BEQ $F5B5	; Terminate Serial Input
F596: 20 C1 EE	JSR $EEC1	; Bump Address
F599: D0 EB	BNE $F586

F59B: 20 26 E5	JSR $E526	; -unlsn-

F59E: 24 B9	BIT $B9 	; Current secondary address
F5A0: 30 11	BMI $F5B3
F5A2: A5 BA	LDA $BA 	; Current device
F5A4: 20 3E E3	JSR $E33E	; -listen-
F5A7: A5 B9	LDA $B9 	; Current secondary address
F5A9: 29 EF	AND #$EF
F5AB: 09 E0	ORA #$E0
F5AD: 20 D2 E4	JSR $E4D2	; -second-

F5B0: 20 26 E5	JSR $E526	; -unlsn-

F5B3: 18	CLC
F5B4: 60	RTS

; Terminate Serial Input

F5B5: 20 9E F5	JSR $F59E
F5B8: A9 00	LDA #$00
F5BA: 38	SEC
F5BB: 60	RTS

; Print 'saving'

F5BC: A5 9D	LDA $9D 	; I/O messages: 192 = all, 128 = commands, 64 = errors, 0 = nil
F5BE: 10 37	BPL $F5F7
F5C0: A0 51	LDY #$51
F5C2: 20 22 F7	JSR $F722	; Print I/O Message
F5C5: 4C 21 F5	JMP $F521	; Send File Name

; Save to Tape

F5C8: 20 80 E9	JSR $E980	; Get Buffer Address
F5CB: 90 8B	BCC $F558
F5CD: 20 E9 E9	JSR $E9E9	; Print 'press record ...'
F5D0: B0 25	BCS $F5F7
F5D2: 20 BC F5	JSR $F5BC	; Print 'saving'
F5D5: A2 03	LDX #$03
F5D7: A5 B9	LDA $B9 	; Current secondary address
F5D9: 29 01	AND #$01
F5DB: D0 02	BNE $F5DF
F5DD: A2 01	LDX #$01

F5DF: 8A	TXA
F5E0: 20 19 E9	JSR $E919	; Write Tape Header
F5E3: B0 12	BCS $F5F7
F5E5: 20 18 EA	JSR $EA18
F5E8: B0 0D	BCS $F5F7
F5EA: A5 B9	LDA $B9 	; Current secondary address
F5EC: 29 02	AND #$02
F5EE: F0 06	BEQ $F5F6
F5F0: A9 05	LDA #$05
F5F2: 20 19 E9	JSR $E919	; Write Tape Header
F5F5: 24	.BYTE $24

F5F6: 18	CLC

F5F7: 60	RTS

; -udtim-

F5F8: E6 A2	INC $A2 	; Jiffy clock Low
F5FA: D0 06	BNE $F602
F5FC: E6 A1	INC $A1 	; Jiffy clock Middle
F5FE: D0 02	BNE $F602
F600: E6 A0	INC $A0 	; Jiffy clock High

F602: 38	SEC
F603: A5 A2	LDA $A2 	; Jiffy clock Low
F605: E9 01	SBC #$01
F607: A5 A1	LDA $A1 	; Jiffy clock Middle
F609: E9 1A	SBC #$1A
F60B: A5 A0	LDA $A0 	; Jiffy clock High
F60D: E9 4F	SBC #$4F
F60F: 90 08	BCC $F619
F611: A2 00	LDX #$00
F613: 86 A0	STX $A0 	; Jiffy clock High
F615: 86 A1	STX $A1 	; Jiffy clock Middle
F617: 86 A2	STX $A2 	; Jiffy clock Low

F619: AD 1D 0A	LDA $0A1D
F61C: D0 0B	BNE $F629
F61E: AD 1E 0A	LDA $0A1E
F621: D0 03	BNE $F626
F623: CE 1F 0A	DEC $0A1F

F626: CE 1E 0A	DEC $0A1E

F629: CE 1D 0A	DEC $0A1D
F62C: 2C 03 0A	BIT $0A03	; PAL/NTSC System Flag
F62F: 10 0C	BPL $F63D	; Watch For RUN or Shift
F631: CE 36 0A	DEC $0A36
F634: 10 07	BPL $F63D	; Watch For RUN or Shift
F636: A9 05	LDA #$05
F638: 8D 36 0A	STA $0A36
F63B: D0 BB	BNE $F5F8	; -udtim-

; Watch For RUN or Shift

F63D: AD 01 DC	LDA $DC01
F640: CD 01 DC	CMP $DC01
F643: D0 F8	BNE $F63D	; Watch For RUN or Shift
F645: AA	TAX
F646: 30 13	BMI $F65B
F648: A2 BD	LDX #$BD
F64A: 8E 00 DC	STX $DC00

F64D: AE 01 DC	LDX $DC01
F650: EC 01 DC	CPX $DC01
F653: D0 F8	BNE $F64D
F655: 8D 00 DC	STA $DC00
F658: E8	INX
F659: D0 02	BNE $F65D

F65B: 85 91	STA $91 	; Keyswitch: STOP and RVS flags (STOP, Q, C=, Space, 2, CTRL, <-, 1)

F65D: 60	RTS

; -rdtim-

F65E: 78	SEI
F65F: A5 A2	LDA $A2 	; Jiffy clock Low
F661: A6 A1	LDX $A1 	; Jiffy clock Middle
F663: A4 A0	LDY $A0 	; Jiffy clock High

; -settim-

F665: 78	SEI
F666: 85 A2	STA $A2 	; Jiffy clock Low
F668: 86 A1	STX $A1 	; Jiffy clock Middle
F66A: 84 A0	STY $A0 	; Jiffy clock High
F66C: 58	CLI
F66D: 60	RTS

; -stop-

F66E: A5 91	LDA $91 	; Keyswitch: STOP and RVS flags (STOP, Q, C=, Space, 2, CTRL, <-, 1)
F670: C9 7F	CMP #$7F
F672: D0 07	BNE $F67B
F674: 08	PHP
F675: 20 CC FF	JSR $FFCC	; (iclrch)      Restore I/O Vector [F226]
F678: 85 D0	STA $D0 	; Number of characters in keyboard buffer
F67A: 28	PLP

F67B: 60	RTS

; Print 'too many files'

F67C: A9 01	LDA #$01
F67E: 2C	.BYTE $2C

; Print 'file open'

F67F: A9 02	LDA #$02
F681: 2C	.BYTE $2C

; Print 'file not open'

F682: A9 03	LDA #$03
F684: 2C	.BYTE $2C

; Print 'file not found'

F685: A9 04	LDA #$04
F687: 2C	.BYTE $2C

; Print 'device not present'

F688: A9 05	LDA #$05
F68A: 2C	.BYTE $2C

; Print 'not input file'

F68B: A9 06	LDA #$06
F68D: 2C	.BYTE $2C

; Print 'not output file'

F68E: A9 07	LDA #$07
F690: 2C	.BYTE $2C

; Print 'missing file name'

F691: A9 08	LDA #$08
F693: 2C	.BYTE $2C

; Print 'illegal device no'

F694: A9 09	LDA #$09
F696: 2C	.BYTE $2C

; Error #0

F697: A9 10	LDA #$10
F699: 48	PHA
F69A: 20 CC FF	JSR $FFCC	; (iclrch)      Restore I/O Vector [F226]
F69D: A0 00	LDY #$00
F69F: 24 9D	BIT $9D 	; I/O messages: 192 = all, 128 = commands, 64 = errors, 0 = nil
F6A1: 50 0A	BVC $F6AD
F6A3: 20 22 F7	JSR $F722	; Print I/O Message
F6A6: 68	PLA
F6A7: 48	PHA
F6A8: 09 30	ORA #$30
F6AA: 20 D2 FF	JSR $FFD2	; (ibsout)      Output Vector, chrout [EF79]

F6AD: 68	PLA
F6AE: 38	SEC
F6AF: 60	RTS

; Messages

F6B0: 0D 49 2F 4F 20 45 52 52	; '{CR}i/o err'
F6B8: 4F 52 20 A3 0D 53 45 41	; 'or .{CR}sea'
F6C0: 52 43 48 49 4E 47 A0 46	; 'rching.f'
F6C8: 4F 52 A0 0D 50 52 45 53	; 'or.{CR}pres'
F6D0: 53 20 50 4C 41 59 20 4F	; 's play o'
F6D8: 4E 20 54 41 50 C5 50 52	; 'n tapEpr'
F6E0: 45 53 53 20 52 45 43 4F	; 'ess reco'
F6E8: 52 44 20 26 20 50 4C 41	; 'rd & pla'
F6F0: 59 20 4F 4E 20 54 41 50	; 'y on tap'
F6F8: C5 0D 4C 4F 41 44 49 4E	; 'E{CR}loadin'
F700: C7 0D 53 41 56 49 4E 47	; 'G{CR}saving'
F708: A0 0D 56 45 52 49 46 59	; '.{CR}verify'
F710: 49 4E C7 0D 46 4F 55 4E	; 'inG{CR}foun'
F718: 44 A0 0D 4F 4B 8D      	; 'd.{CR}ok{SHCR}'

; Print If Direct

F71E: 24 9D	BIT $9D 	; I/O messages: 192 = all, 128 = commands, 64 = errors, 0 = nil
F720: 10 0D	BPL $F72F

; Print I/O Message

F722: B9 B0 F6	LDA $F6B0,Y	; Messages
F725: 08	PHP
F726: 29 7F	AND #$7F
F728: 20 D2 FF	JSR $FFD2	; (ibsout)      Output Vector, chrout [EF79]
F72B: C8	INY
F72C: 28	PLP
F72D: 10 F3	BPL $F722	; Print I/O Message

F72F: 18	CLC
F730: 60	RTS

; -setnam-

F731: 85 B7	STA $B7 	; Number of characters in file name
F733: 86 BB	STX $BB 	; Pointer to file name
F735: 84 BC	STY $BC
F737: 60	RTS

; -setlfs-

F738: 85 B8	STA $B8 	; Current logical file
F73A: 86 BA	STX $BA 	; Current device
F73C: 84 B9	STY $B9 	; Current secondary address
F73E: 60	RTS

; Set Load/Save Bank

F73F: 85 C6	STA $C6
F741: 86 C7	STX $C7
F743: 60	RTS

; -rdst-

F744: A5 BA	LDA $BA 	; Current device
F746: C9 02	CMP #$02
F748: D0 0B	BNE $F755
F74A: AD 14 0A	LDA $0A14	; RS-232 Status Register
F74D: 48	PHA
F74E: A9 00	LDA #$00
F750: 8D 14 0A	STA $0A14	; RS-232 Status Register
F753: 68	PLA
F754: 60	RTS

F755: A5 90	LDA $90 	; Status word ST

; Set Status Bit

F757: 05 90	ORA $90 	; Status word ST
F759: 85 90	STA $90 	; Status word ST
F75B: 60	RTS

; -setmsg-

F75C: 85 9D	STA $9D 	; I/O messages: 192 = all, 128 = commands, 64 = errors, 0 = nil
F75E: 60	RTS

; Set Serial Timeout

F75F: 8D 0E 0A	STA $0A0E
F762: 60	RTS

; -memtop-

F763: 90 06	BCC $F76B
F765: AE 07 0A	LDX $0A07
F768: AC 08 0A	LDY $0A08

F76B: 8E 07 0A	STX $0A07
F76E: 8C 08 0A	STY $0A08
F771: 60	RTS

; -membot-

F772: 90 06	BCC $F77A
F774: AE 05 0A	LDX $0A05
F777: AC 06 0A	LDY $0A06

F77A: 8E 05 0A	STX $0A05
F77D: 8C 06 0A	STY $0A06
F780: 60	RTS

; -iobase-

F781: A2 00	LDX #$00
F783: A0 D0	LDY #$D0
F785: 60	RTS

; Search For SA

F786: 98	TYA
F787: A6 98	LDX $98 	; How many open files

F789: CA	DEX
F78A: 30 0F	BMI $F79B
F78C: DD 76 03	CMP $0376,X	; Secondary Addresse Table
F78F: D0 F8	BNE $F789

F791: 20 12 F2	JSR $F212	; Set File Parameters
F794: AA	TAX
F795: A5 B8	LDA $B8 	; Current logical file
F797: A4 B9	LDY $B9 	; Current secondary address
F799: 18	CLC
F79A: 60	RTS

F79B: 38	SEC
F79C: 60	RTS

; Search & Set Up File

F79D: AA	TAX
F79E: 20 02 F2	JSR $F202	; Search For File
F7A1: F0 EE	BEQ $F791
F7A3: D0 F6	BNE $F79B

; Trigger DMA

F7A5: BD F0 F7	LDA $F7F0,X	; MMU Bank Configuration Values
F7A8: 29 FE	AND #$FE
F7AA: AA	TAX
F7AB: 4C F0 03	JMP $03F0

; Get Char From Memory

F7AE: 8E 35 0A	STX $0A35
F7B1: A6 C7	LDX $C7
F7B3: A9 BB	LDA #$BB
F7B5: 20 D0 F7	JSR $F7D0	; Get Char From Memory Bank
F7B8: AE 35 0A	LDX $0A35
F7BB: 60	RTS

; Store Loaded Byte

F7BC: A2 AC	LDX #$AC
F7BE: 2C	.BYTE $2C

F7BF: A2 AE	LDX #$AE
F7C1: 8E B9 02	STX $02B9
F7C4: A6 C6	LDX $C6
F7C6: 4C DA F7	JMP $F7DA	; Store Char to Memory Bank

; Read Byte to be Saved

F7C9: A9 AE	LDA #$AE
F7CB: 2C	.BYTE $2C

F7CC: A9 AC	LDA #$AC
F7CE: A6 C6	LDX $C6

; Get Char From Memory Bank

F7D0: 8D AA 02	STA $02AA
F7D3: BD F0 F7	LDA $F7F0,X	; MMU Bank Configuration Values
F7D6: AA	TAX
F7D7: 4C A2 02	JMP $02A2	; Bank Peek Subroutine

; Store Char to Memory Bank

F7DA: 48	PHA
F7DB: BD F0 F7	LDA $F7F0,X	; MMU Bank Configuration Values
F7DE: AA	TAX
F7DF: 68	PLA
F7E0: 4C AF 02	JMP $02AF	; Bank Poke Subroutine

; Compare Char With Memory Bank

F7E3: 48	PHA
F7E4: BD F0 F7	LDA $F7F0,X	; MMU Bank Configuration Values
F7E7: AA	TAX
F7E8: 68	PLA
F7E9: 4C BE 02	JMP $02BE	; Bank Compare Subroutine

; Load Memory Control Mask

F7EC: BD F0 F7	LDA $F7F0,X	; MMU Bank Configuration Values
F7EF: 60	RTS

; MMU Bank Configuration Values

F7F0: 3F 7F BF FF 16 56 96 D6	; '?....v{LTRED}V'
F7F8: 2A 6A AA EA 06 0A 01 00	; '*j...{LF}.{0}'

; Subroutines to $02a2-$02fb

F800: AD 00 FF	LDA $FF00	; MMU Configuration Register
F803: 8E 00 FF	STX $FF00	; MMU Configuration Register
F806: AA	TAX
F807: B1 FF	LDA ($FF),Y
F809: 8E 00 FF	STX $FF00	; MMU Configuration Register
F80C: 60	RTS
F80D: 48	PHA
F80E: AD 00 FF	LDA $FF00	; MMU Configuration Register
F811: 8E 00 FF	STX $FF00	; MMU Configuration Register
F814: AA	TAX
F815: 68	PLA
F816: 91 FF	STA ($FF),Y
F818: 8E 00 FF	STX $FF00	; MMU Configuration Register
F81B: 60	RTS
F81C: 48	PHA
F81D: AD 00 FF	LDA $FF00	; MMU Configuration Register
F820: 8E 00 FF	STX $FF00	; MMU Configuration Register
F823: AA	TAX
F824: 68	PLA
F825: D1 FF	CMP ($FF),Y
F827: 8E 00 FF	STX $FF00	; MMU Configuration Register
F82A: 60	RTS
F82B: 20 E3 02	JSR $02E3	; JMP to another bank
F82E: 85 06	STA $06 	; SYS and MLM register save (A)
F830: 86 07	STX $07 	; SYS and MLM register save (X)
F832: 84 08	STY $08 	; SYS and MLM register save (Y)
F834: 08	PHP
F835: 68	PLA
F836: 85 05	STA $05 	; SYS and MLM register save (SR)
F838: BA	TSX
F839: 86 09	STX $09 	; SYS and MLM register save (SP)
F83B: A9 00	LDA #$00
F83D: 8D 00 FF	STA $FF00	; MMU Configuration Register
F840: 60	RTS
F841: A2 00	LDX #$00

F843: B5 03	LDA $03,X	; SYS address low, MLM register PC
F845: 48	PHA
F846: E8	INX
F847: E0 03	CPX #$03
F849: 90 F8	BCC $F843
F84B: A6 02	LDX $02 	; Bank Number, Jump to SYS Address
F84D: 20 6B FF	JSR $FF6B	; setcfg
F850: 8D 00 FF	STA $FF00	; MMU Configuration Register
F853: A5 06	LDA $06 	; SYS and MLM register save (A)
F855: A6 07	LDX $07 	; SYS and MLM register save (X)
F857: A4 08	LDY $08 	; SYS and MLM register save (Y)
F859: 40	RTI

; DMA Code to $03f0

F85A: AE 00 FF	LDX $FF00	; MMU Configuration Register
F85D: 8C 01 DF	STY $DF01
F860: 8D 00 FF	STA $FF00	; MMU Configuration Register
F863: 8E 00 FF	STX $FF00	; MMU Configuration Register
F866: 60	RTS

; Check Auto Start ROM

F867: 78	SEI
F868: A2 03	LDX #$03
F86A: 8E C0 0A	STX $0AC0

F86D: AE C0 0A	LDX $0AC0
F870: BD C1 0A	LDA $0AC1,X
F873: F0 11	BEQ $F886
F875: A0 00	LDY #$00
F877: BD BC E2	LDA $E2BC,X	; ROM Addresses High
F87A: 85 03	STA $03 	; SYS address low, MLM register PC
F87C: 84 04	STY $04 	; SYS address high, MLM register PC
F87E: BD C0 E2	LDA $E2C0,X	; ROM Banks
F881: 85 02	STA $02 	; Bank Number, Jump to SYS Address
F883: 20 CD 02	JSR $02CD	; JSR to another bank

F886: CE C0 0A	DEC $0AC0
F889: 10 E2	BPL $F86D
F88B: 58	CLI
F88C: A2 08	LDX #$08	; default device
F88E: A9 30	LDA #$30	; default drive ('0')

; Check For Boot Disk

F890: 85 BF	STA $BF		; drive number
F892: 86 BA	STX $BA 	; Current device
F894: 8A	TXA
F895: 20 3D F2	JSR $F23D	; Clear I/O Path
F898: A2 00	LDX #$00
F89A: 86 9F	STX $9F
F89C: 86 C2	STX $C2
F89E: E8	INX
F89F: 86 C1	STX $C1		; ($C1/$C2) = 0

F8A1: C8	INY		; delay loop
F8A2: D0 FD	BNE $F8A1
F8A4: E8	INX
F8A5: D0 FA	BNE $F8A1
F8A7: A2 0C	LDX #$0C

F8A9: BD 08 FA	LDA $FA08,X	; Block Read Command String
				; "00 10 0 31:1u"	= "u1:13 0 01 00"
F8AC: 9D 00 01	STA $0100,X
F8AF: CA	DEX
F8B0: 10 F7	BPL $F8A9
F8B2: A5 BF	LDA $BF		; drive number
F8B4: 8D 06 01	STA $0106
F8B7: A9 00	LDA #$00
F8B9: A2 0F	LDX #$0F
F8BB: 20 3F F7	JSR $F73F	; Set Load/Save Bank ($C6/$C7)
F8BE: A9 01	LDA #$01
F8C0: A2 15	LDX #$15	; Initialize (i) floppy command
F8C2: A0 FA	LDY #$FA
F8C4: 20 31 F7	JSR $F731	; -setnam-
F8C7: A9 00	LDA #$00	; open 0,8,15
F8C9: A0 0F	LDY #$0F
F8CB: A6 BA	LDX $BA 	; Current device
F8CD: 20 38 F7	JSR $F738	; -setlfs-
F8D0: 20 C0 FF	JSR $FFC0	; (iopen)       Open Vector [EFBD]
F8D3: B0 16	BCS $F8EB
F8D5: A9 01	LDA #$01
F8D7: A2 16	LDX #$16	; channel command "#"
F8D9: A0 FA	LDY #$FA
F8DB: 20 31 F7	JSR $F731	; -setnam-
F8DE: A9 0D	LDA #$0D	; open 13,8,13
F8E0: A8	TAY
F8E1: A6 BA	LDX $BA 	; Current device
F8E3: 20 38 F7	JSR $F738	; -setlfs-
F8E6: 20 C0 FF	JSR $FFC0	; (iopen)       Open Vector [EFBD]
F8E9: 90 03	BCC $F8EE

F8EB: 4C 8B F9	JMP $F98B	; Wind Up Disk Boot

F8EE: A9 00	LDA #$00
F8F0: A0 0B	LDY #$0B
F8F2: 85 AC	STA $AC
F8F4: 84 AD	STY $AD		; read to input buffer $0B00
F8F6: 20 D5 F9	JSR $F9D5	; send command on LFN 0, read from 13
F8F9: A2 00	LDX #$00

F8FB: BD 00 0B	LDA $0B00,X
F8FE: DD C4 E2	CMP $E2C4,X	; check for 'cbm' identification
F901: D0 E8	BNE $F8EB
F903: E8	INX
F904: E0 03	CPX #$03
F906: 90 F3	BCC $F8FB

; Print 'booting'

F908: 20 17 FA	JSR $FA17	; Print a Message
F90B: 0D 42 4F 4F 54 49 4E 47	; '{CR}booting'
F913: 20 00                  	; ' {0}'

F915: BD 00 0B	LDA $0B00,X	; $0B00-0B06 -> $A9-$AF
F918: 95 A9	STA $A9,X	; boot parameters: "cbm", boot data addr low/high/bank,
F91A: E8	INX		; 	block count
F91B: E0 07	CPX #$07
F91D: 90 F6	BCC $F915

F91F: BD 00 0B	LDA $0B00,X	; print optional boot message
F922: F0 06	BEQ $F92A
F924: 20 D2 FF	JSR $FFD2	; (ibsout)      Output Vector, chrout [EF79]
F927: E8	INX
F928: D0 F5	BNE $F91F

F92A: 86 9E	STX $9E		; save position message end marker

; Print '...'

F92C: 20 17 FA	JSR $FA17	; Print a Message
F92F: 2E 2E 2E 0D 00         	; '...{CR}{0}'
F934: A5 AE	LDA $AE 	; bank number for boot data
F936: 85 C6	STA $C6

F938: A5 AF	LDA $AF		; boot block count
F93A: F0 09	BEQ $F945
F93C: C6 AF	DEC $AF		; block count decrement
F93E: 20 B3 F9	JSR $F9B3	; Read Next Boot Block
F941: E6 AD	INC $AD		; boot data addr +256
F943: D0 F3	BNE $F938

F945: 20 8B F9	JSR $F98B	; Wind Up Disk Boot
F948: A6 9E	LDX $9E		; position message end marker
F94A: 2C	.BYTE $2C

F94B: E6 9F	INC $9F		; count filename length
F94D: E8	INX		; advance trough boot block
F94E: BD 00 0B	LDA $0B00,X	; go through (optional) filename
F951: D0 F8	BNE $F94B
F953: E8	INX
F954: 86 04	STX $04 	; SYS address high, MLM register PC
F956: A6 9E	LDX $9E		; step back to position messages end marker
F958: A9 3A	LDA #$3A	; ":"
F95A: 9D 00 0B	STA $0B00,X	; overwrite 0 from message
F95D: CA	DEX		; step back in buffer
F95E: A5 BF	LDA $BF		; take drive number
F960: 9D 00 0B	STA $0B00,X	; write before ":" (overwritting last message char.)
F963: 86 9E	STX $9E		; save as filename start position
F965: A6 9F	LDX $9F		; filename length
F967: F0 15	BEQ $F97E	; no file, do JSR code
F969: E8	INX		; filename length
F96A: E8	INX		; +2 (<drive>+":")
F96B: 8A	TXA		; filename length adjusted
F96C: A6 9E	LDX $9E		; filename ptr low
F96E: A0 0B	LDY #$0B	; filename ptr high
F970: 20 31 F7	JSR $F731	; -setnam-
F973: A9 00	LDA #$00	; bank 0
F975: AA	TAX
F976: 20 3F F7	JSR $F73F	; Set Load/Save Bank ($C6/$C7)
F979: A9 00	LDA #$00
F97B: 20 69 F2	JSR $F269	; LOAD

F97E: A9 0B	LDA #$0B	; high byte $0Bxx
F980: 85 03	STA $03 	; SYS address low, MLM register PC
F982: A9 0F	LDA #$0F	; bank 15
F984: 85 02	STA $02 	; Bank Number, Jump to SYS Address
F986: 20 CD 02	JSR $02CD	; JSR to another bank
F989: 18	CLC
F98A: 60	RTS

; Wind Up Disk Boot

F98B: 08	PHP
F98C: 48	PHA
F98D: 20 CC FF	JSR $FFCC	; (iclrch)      Restore I/O Vector [F226]
F990: A9 0D	LDA #$0D	; close 13
F992: 18	CLC
F993: 20 C3 FF	JSR $FFC3	; (iclose)      Close Vector [F188]
F996: A2 00	LDX #$00
F998: 20 C9 FF	JSR $FFC9	; (ichkout)     Set Output [F14C]
F99B: B0 0A	BCS $F9A7
F99D: A9 55	LDA #$55	; "U"
F99F: 20 D2 FF	JSR $FFD2	; (ibsout)      Output Vector, chrout [EF79]
F9A2: A9 49	LDA #$49	; "I" = U9 = Drive init 
F9A4: 20 D2 FF	JSR $FFD2	; (ibsout)      Output Vector, chrout [EF79]

F9A7: 20 CC FF	JSR $FFCC	; (iclrch)      Restore I/O Vector [F226]
F9AA: A9 00	LDA #$00
F9AC: 38	SEC
F9AD: 20 C3 FF	JSR $FFC3	; (iclose)      Close Vector [F188]
F9B0: 68	PLA
F9B1: 28	PLP
F9B2: 60	RTS

; Read Next Boot Block

F9B3: A6 C2	LDX $C2		; sector
F9B5: E8	INX
F9B6: E0 15	CPX #$15	; wrap if 21
F9B8: 90 04	BCC $F9BE
F9BA: A2 00	LDX #$00
F9BC: E6 C1	INC $C1		; increment track

F9BE: 86 C2	STX $C2		; sector = 0
F9C0: 8A	TXA
F9C1: 20 FB F9	JSR $F9FB	; To 2-Digit Decimal
F9C4: 8D 00 01	STA $0100
F9C7: 8E 01 01	STX $0101	; sector
F9CA: A5 C1	LDA $C1
F9CC: 20 FB F9	JSR $F9FB	; To 2-Digit Decimal
F9CF: 8D 03 01	STA $0103
F9D2: 8E 04 01	STX $0104	; track

F9D5: A2 00	LDX #$00
F9D7: 20 C9 FF	JSR $FFC9	; (ichkout)     Set Output [F14C]
F9DA: A2 0C	LDX #$0C	; 12 characters 

F9DC: BD 00 01	LDA $0100,X	; send reversed ...
F9DF: 20 D2 FF	JSR $FFD2	; (ibsout)      Output Vector, chrout [EF79]
F9E2: CA	DEX
F9E3: 10 F7	BPL $F9DC
F9E5: 20 CC FF	JSR $FFCC	; (iclrch)      Restore I/O Vector [F226]
F9E8: A2 0D	LDX #$0D
F9EA: 20 C6 FF	JSR $FFC6	; (ichkin)      Set Input [F106]
F9ED: A0 00	LDY #$00

F9EF: 20 CF FF	JSR $FFCF	; (ibasin)      Input Vector, chrin [EF06]
F9F2: 20 BC F7	JSR $F7BC	; Store Loaded Byte
F9F5: C8	INY
F9F6: D0 F7	BNE $F9EF
F9F8: 4C CC FF	JMP $FFCC	; (iclrch)      Restore I/O Vector [F226]

; To 2-Digit Decimal

F9FB: A2 30	LDX #$30
F9FD: 38	SEC

F9FE: E9 0A	SBC #$0A
FA00: 90 03	BCC $FA05
FA02: E8	INX
FA03: B0 F9	BCS $F9FE

FA05: 69 3A	ADC #$3A
FA07: 60	RTS

; Block Read Command String

FA08: 30 30 20 31 30 20 30 20	; '00 10 0 '
FA10: 33 31 3A 31 55 49 23   	; '31:1ui#'

; Print a Message

FA17: 48	PHA
FA18: 8A	TXA
FA19: 48	PHA
FA1A: 98	TYA
FA1B: 48	PHA
FA1C: A0 00	LDY #$00

FA1E: BA	TSX
FA1F: FE 04 01	INC $0104,X
FA22: D0 03	BNE $FA27
FA24: FE 05 01	INC $0105,X

FA27: BD 04 01	LDA $0104,X
FA2A: 85 CE	STA $CE
FA2C: BD 05 01	LDA $0105,X
FA2F: 85 CF	STA $CF
FA31: B1 CE	LDA ($CE),Y
FA33: F0 05	BEQ $FA3A
FA35: 20 D2 FF	JSR $FFD2	; (ibsout)      Output Vector, chrout [EF79]
FA38: 90 E4	BCC $FA1E

FA3A: 68	PLA
FA3B: A8	TAY
FA3C: 68	PLA
FA3D: AA	TAX
FA3E: 68	PLA
FA3F: 60	RTS

; NMI Sequence

FA40: D8	CLD
FA41: A9 7F	LDA #$7F
FA43: 8D 0D DD	STA $DD0D
FA46: AC 0D DD	LDY $DD0D
FA49: 30 14	BMI $FA5F
FA4B: 20 3D F6	JSR $F63D	; Watch For RUN or Shift
FA4E: 20 E1 FF	JSR $FFE1	; (istop)       Test-Stop Vector [F66E]
FA51: D0 0C	BNE $FA5F
FA53: 20 56 E0	JSR $E056	; -restor-
FA56: 20 09 E1	JSR $E109	; -init-
FA59: 20 00 C0	JSR $C000	; -cint-
FA5C: 6C 00 0A	JMP ($0A00)	; Restart System (BASIC Warm) [4000]

FA5F: 20 05 E8	JSR $E805	; (NMI) RS-232 Control I/O
FA62: 4C 33 FF	JMP $FF33	; Return From Interrupt

; (IRQ) Normal Entry

FA65: D8	CLD
FA66: 20 24 C0	JSR $C024	; IRQ Link
FA69: 90 12	BCC $FA7D
FA6B: 20 F8 F5	JSR $F5F8	; -udtim-
FA6E: 20 D0 EE	JSR $EED0	; Control Tape Motor
FA71: AD 0D DC	LDA $DC0D
FA74: AD 04 0A	LDA $0A04
FA77: 4A	LSR A
FA78: 90 03	BCC $FA7D
FA7A: 20 06 40	JSR $4006	; IRQ Entry

FA7D: 4C 33 FF	JMP $FF33	; Return From Interrupt

; Keyboard Matrix Un-Shifted

FA80: 14 0D 1D 88 85 86 87 11	; '{DEL}{CR}{RIGHT}....{DOWN}'
FA88: 33 57 41 34 5A 53 45 01	; '3wa4zse.'
FA90: 35 52 44 36 43 46 54 58	; '5rd6cftx'
FA98: 37 59 47 38 42 48 55 56	; '7yg8bhuv'
FAA0: 39 49 4A 30 4D 4B 4F 4E	; '9ij0mkon'
FAA8: 2B 50 4C 2D 2E 3A 40 2C	; '+pl-.:@,'
FAB0: 5C 2A 3B 13 01 3D 5E 2F	; '\*;{HOME}.=^/'
FAB8: 31 5F 04 32 20 02 51 03	; '1_.2 {ULON}q{STOP}'
FAC0: 84 38 35 09 32 34 37 31	; '.85{TAB}2471'
FAC8: 1B 2B 2D 0A 0D 36 39 33	; '{ESC}+-{LF}{CR}693'
FAD0: 08 30 2E 91 11 9D 1D FF	; '.0.{UP}{DOWN}{LEFT}{RIGHT}.'
FAD8: FF                     	; '.'

; Keyboard Matrix Shifted

FAD9: 94 8D 9D 8C 89 8A 8B 91	; '{INS}{SHCR}{LEFT}....{UP}'
FAE1: 23 D7 C1 24 DA D3 C5 01	; '#WA$ZSE.'
FAE9: 25 D2 C4 26 C3 C6 D4 D8	; '%RD&CFTX'
FAF1: 27 D9 C7 28 C2 C8 D5 D6	; ''YG(BHUV'
FAF9: 29 C9 CA 30 CD CB CF CE	; ')IJ0MKON'
FB01: DB D0 CC DD 3E 5B BA 3C	; '.PL.>[.<'
FB09: A9 C0 5D 93 01 3D DE 3F	; '..]{CLR}.=.?'
FB11: 21 5F 04 22 A0 02 D1 83	; '!_.".{ULON}Q.'
FB19: 84 38 35 18 32 34 37 31	; '.85{TABT}2471'
FB21: 1B 2B 2D 0A 8D 36 39 33	; '{ESC}+-{LF}{SHCR}693'
FB29: 08 30 2E 91 11 9D 1D FF	; '.0.{UP}{DOWN}{LEFT}{RIGHT}.'
FB31: FF                     	; '.'

; Keyboard Matrix C-Key

FB32: 94 8D 9D 8C 89 8A 8B 91	; '{INS}{SHCR}{LEFT}....{UP}'
FB3A: 96 B3 B0 97 AD AE B1 01	; '{LTRED}..{GRAY1}....'
FB42: 98 B2 AC 99 BC BB A3 BD	; '{GRAY2}..{LTGREEN}....'
FB4A: 9A B7 A5 9B BF B4 B8 BE	; '{LTBLUE}..{GRAY3}....'
FB52: 29 A2 B5 30 A7 A1 B9 AA	; ')..0....'
FB5A: A6 AF B6 DC 3E 5B A4 3C	; '....>[.<'
FB62: A8 DF 5D 93 01 3D DE 3F	; '..]{CLR}.=.?'
FB6A: 81 5F 04 95 A0 02 AB 03	; '{ORANGE}_.{BROWN}.{ULON}.{STOP}'
FB72: 84 38 35 18 32 34 37 31	; '.85{TABT}2471'
FB7A: 1B 2B 2D 0A 8D 36 39 33	; '{ESC}+-{LF}{SHCR}693'
FB82: 08 30 2E 91 11 9D 1D FF	; '.0.{UP}{DOWN}{LEFT}{RIGHT}.'
FB8A: FF                     	; '.'

; Keyboard Matrix Control

FB8B: FF FF FF FF FF FF FF FF	; '........'
FB93: 1C 17 01 9F 1A 13 05 FF	; '{RED}..{CYAN}.{HOME}{WHITE}.'
FB9B: 9C 12 04 1E 03 06 14 18	; '{PURPLE}{RVSON}.{GREEN}{STOP}.{DEL}{TABT}'
FBA3: 1F 19 07 9E 02 08 15 16	; '{BLUE}.{BELL}{YELLOW}{ULON}...'
FBAB: 12 09 0A 92 0D 0B 0F 0E	; '{RVSON}{TAB}{LF}{RVSOFF}{CR}{LOCK}{FLSHON}{LOWTEXT}'
FBB3: FF 10 0C FF FF 1B 00 FF	; '..{UNLOCK}..{ESC}{0}.'
FBBB: 1C FF 1D FF FF 1F 1E FF	; '{RED}.{RIGHT}..{BLUE}{GREEN}.'
FBC3: 90 06 FF 05 FF FF 11 FF	; '{BLACK}..{WHITE}..{DOWN}.'
FBCB: 84 38 35 18 32 34 37 31	; '.85{TABT}2471'
FBD3: 1B 2B 2D 0A 8D 36 39 33	; '{ESC}+-{LF}{SHCR}693'
FBDB: 08 30 2E 91 11 9D 1D FF	; '.0.{UP}{DOWN}{LEFT}{RIGHT}.'
FBE3: FF                     	; '.'

; Keyboard Matrix Caps-Lock

FBE4: 14 0D 1D 88 85 86 87 11	; '{DEL}{CR}{RIGHT}....{DOWN}'
FBEC: 33 D7 C1 34 DA D3 C5 01	; '3WA4ZSE.'
FBF4: 35 D2 C4 36 C3 C6 D4 D8	; '5RD6CFTX'
FBFC: 37 D9 C7 38 C2 C8 D5 D6	; '7YG8BHUV'
FC04: 39 C9 CA 30 CD CB CF CE	; '9IJ0MKON'
FC0C: 2B D0 CC 2D 2E 3A 40 2C	; '+PL-.:@,'
FC14: 5C 2A 3B 13 01 3D 5E 2F	; '\*;{HOME}.=^/'
FC1C: 31 5F 04 32 20 02 D1 03	; '1_.2 {ULON}Q{STOP}'
FC24: 84 38 35 09 32 34 37 31	; '.85{TAB}2471'
FC2C: 1B 2B 2D 0A 0D 36 39 33	; '{ESC}+-{LF}{CR}693'
FC34: 08 30 2E 91 11 9D 1D FF	; '.0.{UP}{DOWN}{LEFT}{RIGHT}.'
FC3C: FF                     	; '.'

; Unused

FC3D: FF FF FF               	; '...'

; ?

FC40: 05 D6	ORA $D6 	; Input from screen / from keyboard
FC42: 85 D6	STA $D6 	; Input from screen / from keyboard
FC44: A5 EB	LDA $EB 	; Current Cursor Line
FC46: 8D 30 0A	STA $0A30
FC49: 60	RTS

; ?

FC4A: A5 AE	LDA $AE 	; Tape end address / End of program
FC4C: A4 AF	LDY $AF
FC4E: 85 AC	STA $AC
FC50: 84 AD	STY $AD
FC52: 4C 33 F5	JMP $F533	; Print 'loading'

; ?

FC55: 8D 37 0A	STA $0A37
FC58: 8D 11 0A	STA $0A11	; RS-232 Command Register
FC5B: 8D 12 0A	STA $0A12	; RS-232 User Baud Rate
FC5E: 8D 13 0A	STA $0A13
FC61: A2 06	LDX #$06
FC63: 8E 10 0A	STX $0A10	; RS-232 Control Register
FC66: 60	RTS

; Patch for Set Up CRTC Registers

FC67: A0 00	LDY #$00
FC69: A9 7F	LDA #$7F
FC6B: 8C 00 D6	STY $D600
FC6E: 8D 01 D6	STA $D601
FC71: 4C DC E1	JMP $E1DC	; Set Up CRTC Registers

; Unused

FC74: FF FF FF FF FF FF FF FF	; '........'
FC7C: FF FF FF FF            	; '....'

; Init screen DIN patch

FC80: 8D C5 0A	STA $0AC5
FC83: 8D 18 D4	STA $D418
FC86: 60	RTS

; Init KBD Translation Tables

FC87: 2C C5 0A	BIT $0AC5
FC8A: 30 37	BMI $FCC3
FC8C: A5 D3	LDA $D3 	; Key shift flag: (1= Shift, 2= C=, 4= Control, 8= Alt, 16= Caps Lock)
FC8E: 29 10	AND #$10
FC90: F0 0D	BEQ $FC9F
FC92: AD 3F 03	LDA $033F
FC95: C9 FD	CMP #$FD
FC97: F0 2A	BEQ $FCC3
FC99: A9 34	LDA #$34
FC9B: A0 FE	LDY #$FE
FC9D: D0 0B	BNE $FCAA

FC9F: AD 3F 03	LDA $033F
FCA2: C9 FA	CMP #$FA
FCA4: F0 1D	BEQ $FCC3
FCA6: A9 6F	LDA #$6F
FCA8: A0 C0	LDY #$C0

FCAA: 85 CC	STA $CC 	; Keyscan Table Pointer
FCAC: 84 CD	STY $CD 	; Keyscan Table Pointer high
FCAE: A0 0B	LDY #$0B

FCB0: B1 CC	LDA ($CC),Y	; Keyscan Table Pointer
FCB2: 99 3E 03	STA $033E,Y
FCB5: 88	DEY
FCB6: 10 F8	BPL $FCB0
FCB8: C8	INY
FCB9: 8C C5 0A	STY $0AC5
FCBC: 08	PHP
FCBD: 78	SEI
FCBE: 20 0C CE	JSR $CE0C	; Set Up 80 Column Char Set
FCC1: 28	PLP
FCC2: 60	RTS

FCC3: 4C 5D C5	JMP $C55D	; Keyboard Scan Subroutine

; DIN Keyboard patch for Key Pickup

FCC6: AE 3F 03	LDX $033F
FCC9: E0 FD	CPX #$FD
FCCB: D0 55	BNE $FD22
FCCD: AE C5 0A	LDX $0AC5
FCD0: 30 50	BMI $FD22
FCD2: F0 1D	BEQ $FCF1
FCD4: BC 45 FE	LDY $FE45,X
FCD7: CA	DEX

FCD8: 88	DEY
FCD9: 48	PHA
FCDA: 98	TYA
FCDB: DD 45 FE	CMP $FE45,X
FCDE: 68	PLA
FCDF: 90 08	BCC $FCE9
FCE1: D9 4A FE	CMP $FE4A,Y
FCE4: D0 F2	BNE $FCD8
FCE6: B9 65 FE	LDA $FE65,Y

FCE9: 48	PHA
FCEA: 29 7F	AND #$7F
FCEC: C9 20	CMP #$20
FCEE: 68	PLA
FCEF: 90 23	BCC $FD14

FCF1: A2 05	LDX #$05

FCF3: DD 3F FE	CMP $FE3F,X
FCF6: F0 03	BEQ $FCFB
FCF8: CA	DEX
FCF9: D0 F8	BNE $FCF3

FCFB: 8E C5 0A	STX $0AC5
FCFE: E0 00	CPX #$00
FD00: F0 20	BEQ $FD22
FD02: A8	TAY
FD03: 24 F6	BIT $F6 	; Auto-Insert Mode Flag
FD05: 30 0D	BMI $FD14
FD07: 24 D7	BIT $D7 	; 40 / 80 columns:  0 = 40, 128 = 80
FD09: 10 0A	BPL $FD15
FD0B: A2 0A	LDX #$0A
FD0D: 20 DA CD	JSR $CDDA	; Read CRTC Register
FD10: 29 40	AND #$40
FD12: D0 06	BNE $FD1A

FD14: 60	RTS

FD15: AD 27 0A	LDA $0A27	; VIC Cursor Disable
FD18: D0 FA	BNE $FD14

FD1A: 98	TYA
FD1B: 09 40	ORA #$40
FD1D: 29 7F	AND #$7F
FD1F: 4C 2F CC	JMP $CC2F	; Print Character

FD22: A6 D3	LDX $D3 	; Key shift flag: (1= Shift, 2= C=, 4= Control, 8= Alt, 16= Caps Lock)
FD24: A4 D5	LDY $D5
FD26: 6C 3C 03	JMP ($033C)	; Store Key [C6AD]

; DIN Keyboard Matrix Un-Shifted

FD29: 14 0D 1D 88 85 86 87 11	; '{DEL}{CR}{RIGHT}....{DOWN}'
FD31: 33 57 41 34 59 53 45 01	; '3wa4yse.'
FD39: 35 52 44 36 43 46 54 58	; '5rd6cftx'
FD41: 37 5A 47 38 42 48 55 56	; '7zg8bhuv'
FD49: 39 49 4A 30 4D 4B 4F 4E	; '9ij0mkon'
FD51: BE 50 4C AF 2E BC BD 2C	; '.pl....,'
FD59: 5B 2B BB 13 01 23 5D 2D	; '[+.{HOME}.#]-'
FD61: 31 3C 04 32 20 02 51 03	; '1<.2 {ULON}q{STOP}'
FD69: 84 38 35 09 32 34 37 31	; '.85{TAB}2471'
FD71: 1B 2B 2D 0A 0D 36 39 33	; '{ESC}+-{LF}{CR}693'
FD79: 08 30 2E 91 11 9D 1D FF	; '.0.{UP}{DOWN}{LEFT}{RIGHT}.'
FD81: FF                     	; '.'

; DIN Keyboard Matrix Shifted

FD82: 94 8D 9D 8C 89 8A 8B 91	; '{INS}{SHCR}{LEFT}....{UP}'
FD8A: 40 D7 C1 24 D9 D3 C5 01	; '@WA$YSE.'
FD92: 25 D2 C4 26 C3 C6 D4 D8	; '%RD&CFTX'
FD9A: 2F DA C7 28 C2 C8 D5 D6	; '/ZG(BHUV'
FDA2: 29 C9 CA 3D CD CB CF CE	; ')IJ=MKON'
FDAA: 3F D0 CC C0 3A DC DD 3B	; '?PL.:..;'
FDB2: 5E 2A DB 93 01 27 5C 5F	; '^*.{CLR}.'\_'
FDBA: 21 3E 04 22 A0 02 D1 83	; '!>.".{ULON}Q.'
FDC2: 84 38 35 18 32 34 37 31	; '.85{TABT}2471'
FDCA: 1B 2B 2D 0A 8D 36 39 33	; '{ESC}+-{LF}{SHCR}693'
FDD2: 08 30 2E 91 11 9D 1D FF	; '.0.{UP}{DOWN}{LEFT}{RIGHT}.'
FDDA: FF                     	; '.'

; DIN Keyboard Matrix C-Key

FDDB: 94 8D 9D 8C 89 8A 8B 91	; '{INS}{SHCR}{LEFT}....{UP}'
FDE3: 96 A7 A8 97 A2 AA A3 01	; '{LTRED}..{GRAY1}....'
FDEB: 98 A9 C4 99 C5 D3 CE A4	; '{GRAY2}.D{LTGREEN}ESN.'
FDF3: 9A C2 DF 9B A1 C9 D6 D7	; '{LTBLUE}B.{GRAY3}.IVW'
FDFB: D1 C3 D5 C1 CB DA D8 CD	; 'QCUAKZXM'
FE03: AB D9 C8 BF BA CA B0 AC	; '.YH..J..'
FE0B: AD A6 DB 93 01 DD DE B9	; '...{CLR}....'
FE13: 81 B1 04 95 A0 02 A5 03	; '{ORANGE}..{BROWN}.{ULON}.{STOP}'
FE1B: 84 38 35 18 32 34 37 31	; '.85{TABT}2471'
FE23: 1B 2B 2D 0A 8D 36 39 33	; '{ESC}+-{LF}{SHCR}693'
FE2B: 08 30 2E 91 11 9D 1D FF	; '.0.{UP}{DOWN}{LEFT}{RIGHT}.'
FE33: FF                     	; '.'

; DIN Keyboard Matrix Control

FE34: 29 FD 82 FD DB FD 8B FB	; ').{ULOFF}.....'
FE3C: 29 FD 29               	; ').)'

FE3F: FD AF C0 BF 00 00      	; '....{0}{0}'

FE45: 01 03 07 0C 0C         	; '.{STOP}{BELL}{UNLOCK}{UNLOCK}'

FE4A: 0C 45 C0 41 45 55 AF 41	; '{UNLOCK}e.aeu.a'
FE52: 45 49 4F 55 FF FF FF FF	; 'eiou....'
FE5A: FF FF FF FF FF FF FF FF	; '........'
FE62: FF FF FF               	; '...'

FE65: FF AC BF B2 AE B3 BF B4	; '........'
FE6D: B5 B6 B7 B8 FF FF FF FF	; '........'
FE75: FF FF FF FF FF FF FF FF	; '........'
FE7D: FF FF FF FF            	; '....'

; ?

FE81: A5 01	LDA $01
FE83: 29 40	AND #$40
FE85: 49 40	EOR #$40
FE87: 4A	LSR A
FE88: 4A	LSR A
FE89: 85 D3	STA $D3 	; Key shift flag: (1= Shift, 2= C=, 4= Control, 8= Alt, 16= Caps Lock)
FE8B: 60	RTS

; Unused

FE8C: FF FF FF FF FF FF FF FF	; '........'
FE94: FF FF FF FF FF FF FF FF	; '........'
FE9C: FF FF FF FF FF FF FF FF	; '........'
FEA4: FF FF FF FF FF FF FF FF	; '........'
FEAC: FF FF FF FF FF FF FF FF	; '........'
FEB4: FF FF FF FF FF FF FF FF	; '........'
FEBC: FF FF FF FF FF FF FF FF	; '........'
FEC4: FF FF FF FF FF FF FF FF	; '........'
FECC: FF FF FF FF FF FF FF FF	; '........'
FED4: FF FF FF FF FF FF FF FF	; '........'
FEDC: FF FF FF FF FF FF FF FF	; '........'
FEE4: FF FF FF FF FF FF FF FF	; '........'
FEEC: FF FF FF FF FF FF FF FF	; '........'
FEF4: FF FF FF FF FF FF FF FF	; '........'
FEFC: FF FF FF               	; '...'

; Patch byte

FEFF: FF                     	; '.'

; MMU Configuration Register

FF00: FF                     	; '.'
FF01: FF                     	; '.'
FF02: FF                     	; '.'
FF03: FF                     	; '.'
FF04: FF                     	; '.'

; NMI Transfer Entry

FF05: 78	SEI
FF06: 48	PHA
FF07: 8A	TXA
FF08: 48	PHA
FF09: 98	TYA
FF0A: 48	PHA
FF0B: AD 00 FF	LDA $FF00	; MMU Configuration Register
FF0E: 48	PHA
FF0F: A9 00	LDA #$00
FF11: 8D 00 FF	STA $FF00	; MMU Configuration Register
FF14: 6C 18 03	JMP ($0318)	; NMI Interrupt Vector [FA40]

; IRQ Transfer Entry

FF17: 48	PHA
FF18: 8A	TXA
FF19: 48	PHA
FF1A: 98	TYA
FF1B: 48	PHA
FF1C: AD 00 FF	LDA $FF00	; MMU Configuration Register
FF1F: 48	PHA
FF20: A9 00	LDA #$00
FF22: 8D 00 FF	STA $FF00	; MMU Configuration Register
FF25: BA	TSX
FF26: BD 05 01	LDA $0105,X
FF29: 29 10	AND #$10
FF2B: F0 03	BEQ $FF30
FF2D: 6C 16 03	JMP ($0316)	; Break Interrupt Vector [B003]

FF30: 6C 14 03	JMP ($0314)	; IRQ Vector [FA65]

; Return From Interrupt

FF33: 68	PLA
FF34: 8D 00 FF	STA $FF00	; MMU Configuration Register
FF37: 68	PLA
FF38: A8	TAY
FF39: 68	PLA
FF3A: AA	TAX
FF3B: 68	PLA
FF3C: 40	RTI

; Reset Transfer Entry

FF3D: A9 00	LDA #$00
FF3F: 8D 00 FF	STA $FF00	; MMU Configuration Register
FF42: 4C 00 E0	JMP $E000	; Reset Code

; Unused

FF45: FF FF                  	; '..'

; spinspout     (fast serial)

FF47: 4C FB E5	JMP $E5FB	; Fast Disk On/Off

; close all

FF4A: 4C 3D F2	JMP $F23D	; Clear I/O Path

; 64mode

FF4D: 4C 4B E2	JMP $E24B	; Switch to 64 Mode

; dma call

FF50: 4C 80 CF	JMP $CF80	; ?

; boot call

FF53: 4C 90 F8	JMP $F890	; Check For Boot Disk

; foenix

FF56: 4C 67 F8	JMP $F867	; Check Auto Start ROM

; lkupla        (logical addr)

FF59: 4C 9D F7	JMP $F79D	; Search & Set Up File

; lkupsa        (second addr)

FF5C: 4C 86 F7	JMP $F786	; Search For SA

; swapper       40/80 swap

FF5F: 4C 2A C0	JMP $C02A	; Swap 40/80 Col [CD2E]

; dlchr         Init 80col charam

FF62: 4C 27 C0	JMP $C027	; Upload 80 Col [CE0C]

; pfkey         Prog Function Key

FF65: 4C 21 C0	JMP $C021	; Define FN Key

; setbnk

FF68: 4C 3F F7	JMP $F73F	; Set Load/Save Bank

; setcfg

FF6B: 4C EC F7	JMP $F7EC	; Load Memory Control Mask

; jsrfar

FF6E: 4C CD 02	JMP $02CD	; JSR to another bank

; jmpfar

FF71: 4C E3 02	JMP $02E3	; JMP to another bank

; indfet        Bank LDA (fetchvec),y

FF74: 4C D0 F7	JMP $F7D0	; Get Char From Memory Bank

; indsta        Bank STA (stavec),y

FF77: 4C DA F7	JMP $F7DA	; Store Char to Memory Bank

; indcmp        Bank CMP (cmpvec),y

FF7A: 4C E3 F7	JMP $F7E3	; Compare Char With Memory Bank

; primm         Print Immediate

FF7D: 4C 17 FA	JMP $FA17	; Print a Message

; Kernal Version Number

FF80: 01                     	; '.'

; cint          Init Editor & Video Chips

FF81: 4C 00 C0	JMP $C000	; -cint-

; ioinit        Init I/O Devices, Ports & Timers

FF84: 4C 09 E1	JMP $E109	; -init-

; ramtas        Init Ram & Buffers

FF87: 4C 93 E0	JMP $E093	; -ramtas-

; restor        Restore Vectors

FF8A: 4C 56 E0	JMP $E056	; -restor-

; vector        Change Vectors For User

FF8D: 4C 5B E0	JMP $E05B	; -vector-

; setmsg        Control OS Messages

FF90: 4C 5C F7	JMP $F75C	; -setmsg-

; secnd         Send SA After Listen

FF93: 4C D2 E4	JMP $E4D2	; -second-

; tksa          Send SA After Talk

FF96: 4C E0 E4	JMP $E4E0	; -tksa-

; memtop        Set/Read System RAM Top

FF99: 4C 63 F7	JMP $F763	; -memtop-

; membot        Set/Read System RAM Bottom

FF9C: 4C 72 F7	JMP $F772	; -membot-

; key           Scan Keyboard

FF9F: 4C 12 C0	JMP $C012	; -scnkey-

; settmo        Set Timeout In IEEE

FFA2: 4C 5F F7	JMP $F75F	; Set Serial Timeout

; acptr         Handshake Serial Byte In

FFA5: 4C 3E E4	JMP $E43E	; -acptr-

; ciout         Handshake Serial Byte Out

FFA8: 4C 03 E5	JMP $E503	; -ciout-  Print Serial

; untlk         Command Serial Bus UNTALK

FFAB: 4C 15 E5	JMP $E515	; -untlk-

; unlsn         Command Serial Bus UNLISTEN

FFAE: 4C 26 E5	JMP $E526	; -unlsn-

; listn         Command Serial Bus LISTEN

FFB1: 4C 3E E3	JMP $E33E	; -listen-

; talk          Command Serial Bus TALK

FFB4: 4C 3B E3	JMP $E33B	; -talk-

; readss        Read I/O Status Word

FFB7: 4C 44 F7	JMP $F744	; -rdst-

; setlfs        Set Logical File Parameters

FFBA: 4C 38 F7	JMP $F738	; -setlfs-

; setnam        Set Filename

FFBD: 4C 31 F7	JMP $F731	; -setnam-

; (iopen)       Open Vector [EFBD]

FFC0: 6C 1A 03	JMP ($031A)	; OPEN Vector [EFBD]

; (iclose)      Close Vector [F188]

FFC3: 6C 1C 03	JMP ($031C)	; CLOSE Vector [F188]

; (ichkin)      Set Input [F106]

FFC6: 6C 1E 03	JMP ($031E)	; Set Input Vector [F106]

; (ichkout)     Set Output [F14C]

FFC9: 6C 20 03	JMP ($0320)	; Set Output Vector [F14C]

; (iclrch)      Restore I/O Vector [F226]

FFCC: 6C 22 03	JMP ($0322)	; Restore I/O Vector [F226]

; (ibasin)      Input Vector, chrin [EF06]

FFCF: 6C 24 03	JMP ($0324)	; Input Vector [EF06]

; (ibsout)      Output Vector, chrout [EF79]

FFD2: 6C 26 03	JMP ($0326)	; Output Vector [EF79]

; loadsp        Load RAM From Device

FFD5: 4C 65 F2	JMP $F265	; -load-

; savesp        Save RAM To Device

FFD8: 4C 3E F5	JMP $F53E	; -save-

; settim        Set Real-Time Clock

FFDB: 4C 65 F6	JMP $F665	; -settim-

; rdtim         Read Real-Time Clock

FFDE: 4C 5E F6	JMP $F65E	; -rdtim-

; (istop)       Test-Stop Vector [F66E]

FFE1: 6C 28 03	JMP ($0328)	; Test STOP Key [F66E]

; (igetin)      Get Vector [EEEB]

FFE4: 6C 2A 03	JMP ($032A)	; GET Vector [EEEB]

; (iclall)      Close All Channels And Files [F222]

FFE7: 6C 2C 03	JMP ($032C)	; Abort I/O Vector [F222]

; udtim         Increment Real-Time Clock

FFEA: 4C F8 F5	JMP $F5F8	; -udtim-

; scrorg        Return Screen Organization

FFED: 4C 0F C0	JMP $C00F	; -screen-

; plot          Read / Set Cursor X/Y Position

FFF0: 4C 18 C0	JMP $C018	; -plot-

; iobase        Return I/O Base Address

FFF3: 4C 81 F7	JMP $F781	; -iobase-

; [ffff]

FFF6: FF FF                  	; '..'

; SYSTEM

FFF8: 24 E2	.WORD $E224

; NMI

FFFA: 05 FF	.WORD $FF05	; NMI Transfer Entry

; RESET

FFFC: 3D FF	.WORD $FF3D	; Reset Transfer Entry

; IRQ

FFFE: 17 FF	.WORD $FF17	; IRQ Transfer Entry