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
* = $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 ; String concatenation (string addition) 870D: A5 67 LDA $67 ; save first operand 870F: 48 PHA 8710: A5 66 LDA $66 8712: 48 PHA 8713: 20 D7 78 JSR $78D7 ; Evaluate Item (2nd operand) 8716: 20 DD 77 JSR $77DD ; Confirm String 8719: 68 PLA 871A: 85 70 STA $70 ; descriptor pointer to second operand 871C: 68 PLA 871D: 85 71 STA $71 871F: A0 00 LDY #$00 ; index to length byte in descriptor 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 ; add lengths of both strings 872C: 90 03 BCC $8731 ; more than 255? 872E: 4C ED A5 JMP $A5ED ; Error 'string too long' 8731: 20 88 86 JSR $8688 ; Aquire space on heap ($37) 8734: 20 4E 87 JSR $874E ; Fetch descriptor from $70 (first operand) and copy string ($24) to heap ($37) 8737: A5 52 LDA $52 ; descriptor pointer of the second operand 8739: A4 53 LDY $53 873B: 20 85 87 JSR $8785 ; Free string of 2nd operand 873E: 20 63 87 JSR $8763 ; Copy string ($24) to heap ($37) 8741: A5 70 LDA $70 ; descriptor pointer of the first operand 8743: A4 71 LDY $71 8745: 20 85 87 JSR $8785 ; Free string of first operand 8748: 20 E3 86 JSR $86E3 ; Result on string descriptor stack 874B: 4C 09 78 JMP $7809 ; Continue evaluation ; Build String to Memory (fetch descriptor from $70/$71 and copy to heap $37/$38) 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 ; string address 8761: 84 25 STY $25 8763: A8 TAY ; length as index 8764: F0 0B BEQ $8771 8766: 48 PHA 8767: 88 DEY ; pre-decrement 8768: 20 B7 03 JSR $03B7 ; Index1 Indirect Fetch From RAM Bank 1 ($24),Y 876B: 91 37 STA ($37),Y ; copy to heap 876D: 98 TYA 876E: D0 F7 BNE $8767 8770: 68 PLA 8771: 18 CLC 8772: 65 37 ADC $37 ; correct temp. pointer 8774: 85 37 STA $37 ; pointing to the next free byte or the backlink pointer (finally) 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 ; Free descriptor and/or heap space if on top 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 (subtract!) 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 ; Fetch string descriptor (address and length) -> X/Y, $24/$25, 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 ; Continue parse DOS parameters A3C3: 48 PHA A3C4: 8A TXA A3C5: 48 PHA A3C6: A9 00 LDA #$00 A3C8: 85 80 STA $80 ; bit field: parameter read ; 01 1st fiilename ; 02 2nd fiilename ; 04 file number ; 10 drive number ; 20 device number ; 40 write flag ; 80 replace mode (@) A3CA: 85 81 STA $81 ; bit field: extended parameters read ; 01 bank number ; 02 start address ; 04 end address A3CC: A2 22 LDX #$22 ; clear 34 byte long A3CE: 9D 00 01 STA $0100,X ; clear parameter buffer 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 ; no allowed extended parameter mask A3EB: 25 81 AND $81 ; parameters got A3ED: D0 6B BNE $A45A ; some wrong parameter: syntax error A3EF: 68 PLA ; no allowed parameter mask A3F0: 20 1D A6 JSR $A61D ; check if some wrong parameter (syntax error) A3F3: A5 80 LDA $80 ; parameter got A3F5: A6 81 LDX $81 : extended parameter got A3F7: 60 RTS ; Get next parameter ... 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" read mode A406: F0 29 BEQ $A431 A408: C9 44 CMP #$44 ; "D" drive number 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" Position/address A41A: D0 03 BNE $A41F A41C: 4C B4 A4 JMP $A4B4 ; Start/end 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 ; File number marker 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 ; Store file number A456: A9 04 LDA #$04 A458: D0 E0 BNE $A43A ; mark parameter 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 ; Error '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 ; start address mark A4B6: 20 22 A6 JSR $A622 ; check extended parameter A4B9: 20 05 A6 JSR $A605 ; get value A4BC: 8C 17 01 STY $0117 ; 16-bit start address A4BF: 8D 18 01 STA $0118 ; high byte A4C2: A9 02 LDA #$02 ; start address mark A4C4: 05 81 ORA $81 ; mark extended parameter A4C6: 85 81 STA $81 A4C8: D0 31 BNE $A4FB ; continue parsing A4CA: A9 04 LDA #$04 ; end address mark A4CC: 20 22 A6 JSR $A622 ; check extended parameter A4CF: 20 05 A6 JSR $A605 ; get value A4D2: 8C 19 01 STY $0119 ; 16 bit end address A4D5: 8D 1A 01 STA $011A ; high byte A4D8: A9 04 LDA #$04 ; end address mark A4DA: D0 E8 BNE $A4C4 ; mark extended parameter A4DC: A9 01 LDA #$01 ; get (first) filename A4DE: 20 B9 A5 JSR $A5B9 ; get string A4E1: 8D 11 01 STA $0111 ; first filename 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 ; first filename mark A4F7: 05 80 ORA $80 ; mark parameter 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 ; end of parsing 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 ; finally unknown, syntax error A510: 20 80 03 JSR $0380 ; CHRGET ; parse destination parameters A513: C9 50 CMP #$50 ; "P" A515: D0 0F BNE $A526 ; continue with destination parameters 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 this prefix its a filename string A538: F0 1E BEQ $A558 ; get destination drive A53A: A9 20 LDA #$20 ; destination drive parameter A53C: 20 1D A6 JSR $A61D ; already set? A53F: 20 F2 A5 JSR $A5F2 ; get byte value A542: E0 02 CPX #$02 ; not < 2? A544: B0 39 BCS $A57F ; "illegal quantity" A546: 8E 14 01 STX $0114 A549: A9 20 LDA #$20 A54B: D0 1B BNE $A568 ; mark parameter A54D: 20 82 A5 JSR $A582 ; get secondary parameters of a filename A550: 4C 68 A5 JMP $A568 ; mark parameter A553: 20 8D A5 JSR $A58D ; get B (bank) or U (device) value A556: D0 10 BNE $A568 ; mark parameter A558: A9 02 LDA #$02 ; check mark for 2nd filename 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: 2nd filenema A568: 05 80 ORA $80 ; set read-parameter mask A56A: 85 80 STA $80 A56C: 20 86 03 JSR $0386 ; CHRGOT entry A56F: F0 8F BEQ $A500 ; end of line, end parsing 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 ; Error 'syntax error' A57F: 4C 28 7D JMP $7D28 ; Error '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 ; Error '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 ; Error 'illegal device number' A594: E0 04 CPX #$04 ; lowest device number: 4 A596: 90 52 BCC $A5EA ; Error '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 ; mark extended parameters 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 ; Error '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 ; replace mode just once! A5CD: 20 1D A6 JSR $A61D ; check if already given A5D0: A5 80 LDA $80 ; mark replace mode 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 ; Error 'string too long' A5E2: A6 24 LDX $24 ; filename/string address A5E4: A4 25 LDY $25 A5E6: 60 RTS ; Error 'missing file name' A5E7: A2 08 LDX #$08 A5E9: 2C .BYTE $2C ; skip next 2 bytes (BIT $HHLL) ; Error 'illegal device number' A5EA: A2 09 LDX #$09 A5EC: 2C .BYTE $2C ; skip next 2 bytes (BIT $HHLL) ; Error 'string too long' A5ED: A2 17 LDX #$17 A5EF: 4C 3C 4D JMP $4D3C ; Error with code from register X 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 ; Error 'syntax error' A621: 60 RTS A622: 25 81 AND $81 ; check extended paramaeter already set? A624: D0 90 BNE $A5B6 ; Error 'syntax error' A626: 60 RTS ; DOS Command Patterns 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