L0001 = $0001 ;Keyboard input character L0003 = $0003 ;Cursor offset counter L0007 = $0007 ;NMI vector L0008 = $0008 ;NMI vector L0009 = $0009 ;NMI vector L000A = $000A ;Cursor line address L000B = $000B ;Cursor line address L000C = $000C L000E = $000E ;Tape speed L0013 = $0013 L0014 = $0014 L0015 = $0015 L0016 = $0016 ;Cassette motor control L001E = $001E L001F = $001F L0031 = $0031 ;Terminal width ($50) L0033 = $0033 ;Basic Line number L0034 = $0034 ;Basic Line number L0035 = $0035 ;Start of Input buffer L0041 = $0041 L0045 = $0045 L0046 = $0046 L0047 = $0047 L004F = $004F L0050 = $0050 L0051 = $0051 L005E = $005E L005F = $005F L007A = $007A L007B = $007B L007C = $007C L007D = $007D L0080 = $0080 L0081 = $0081 L0082 = $0082 L009C = $009C L009D = $009D L00CE = $00CE L00CF = $00CF L00D1 = $00D1 L00D2 = $00D2 L0100 = $0100 L0200 = $0200 ;Screen address L0220 = $0220 ;Screen address L0280 = $0280 ;Screen address L02BF = $02BF ;Screen address L02C0 = $02C0 ;Screen address L02C1 = $02C1 ;Screen address L03C0 = $03C0 ;Screen address L03E1 = $03E1 ;Screen address LBFC0 = $BFC0 ;Parallel port B LBFC2 = $BFC2 ;Data Direction port B LBFC9 = $BFC9 ;Timer 2 counter high byte LBFCB = $BFCB ;Auxilary control LBFCD = $BFCD ;Interupt Flag register LC086 = $C086 ;BASIC Keyword Table LC57E = $C57E LC5A9 = $C5A9 LC6E6 = $C6E6 ;Action STOP LC764 = $C764 LC7A5 = $C7A5 ;Print a character LC8B1 = $C8B1 ;Get FP number LC9BA = $C9BA LDAD3 = $DAD3 LDC7B = $DC7B ;Convert number to ASCII * =$E210 E210 4C4AE3 JMP LE34A ;Extensions Jump TableE213 4C4AE3 JMP LE34A E216 4C3CE3 JMP LE33C ;MS/Tangerine I/FE219 4C52E2 JMP LE252 ;Tape I/OE21C 4CADE6 JMP LE6AD ;Limit listings to 4 lines at a timeE21F 4CB9E6 JMP LE6B9 ;List control (4 lines or continuous) E222 68 LE222: PLA ;Tape message print routineE223 A8 TAY E224 855E STA L005E E226 68 PLA E227 855F STA L005F E229 48 PHA E22A 98 TYA E22B 48 PHA E22C A003 LDY #$0003 E22E B15E LE22E: LDA (L005E),Y E230 F006 BEQ LE238 E232 2075FE JSR LFE75 E235 C8 INY E236 D0F6 BNE LE22E E238 20FAFD LE238: JSR LFDFA ;Get keyboard replyE23B A501 LDA L0001 E23D C903 CMP #$0003 E23F F00B BEQ LE24C E241 C90D CMP #$000D E243 F006 BEQ LE24B E245 2075FE JSR LFE75 E248 4C38E2 JMP LE238 E24B 60 LE24B: RTS E24C 68 LE24C: PLA E24D 68 PLA E24E 68 PLA E24F 4CD6E2 JMP LE2D6 E252 98 LE252: TYA ;Tape I/O routinesE253 48 PHA E254 2022E2 JSR LE222 E257 B007 BCS LE260 E259 4641 DEFB $46,$41 ;Message (FAST?)E25B 53 DEFB $53 E25C 54 DEFB $54 E25D 3F DEFB $3F E25E 0D00 DEFB $0D,$0 E260 A000 LE260: LDY #$0000 ;Set up FAST speedE262 8450 STY L0050 E264 8431 STY L0031 E266 AD03EA LDA $03EA ;Get first byte of replyE269 C959 CMP #$0059 E26B F002 BEQ LE26F E26D E650 INC L0050 ;Set SLOW if reply not 'Y'E26F 68 LE26F: PLA E270 48 PHA E271 F019 BEQ LE28C E273 2022E2 JSR LE222 E276 B008 BCS LE280 E278 0D4558 DEFB $0D,$55 ;Message (EXAM?)E27B 414D DEFB $41,$D E27D 3F DEFB $3F E27E 0D0020 DEFB $0D,$02 E280 AD03EA LDA $03EA ;Get first byte of replyE283 C959 CMP #$0059 E285 F005 BEQ LE28C E287 68 PLA E288 18 CLC E289 6901 ADC #$0001 E28B 48 PHA E28C 2022E2 LE28C: JSR LE222 E28F B00C BCS LE29D E291 0D4649 DEFB $0D,$64 ;Message (FILENAME?)E294 4C454E DEFB $4C,$54 E297 414D DEFB $41,$D E299 453F DEFB $45,$F E29B 0D00 DEFB $0D,$00 E29D A0FF LDY #$00FF ;Check Filename is legalE29F 2006F0 JSR LF006 E2A2 B0E8 BCS LE28C E2A4 C9FF CMP #$00FF E2A6 D0E4 BNE LE28C E2A8 A900 LDA #$0000 ;Print FilenameE2AA A942 LDA #$0042 E2AC 2003F0 JSR LF003 E2AF 2000F0B1 JSR LF000 ;Setup Tape portE2B2 68 PLA E2B3 D00E BNE LE2C3 E2B5 A020 LDY #$0020 E2B7 2009F0 JSR LF009 E2BA 200CF0 JSR LF00C ;Dump HeaderE2BD 201EF0 JSR LF01E E2C0 4CD6E2 JMP LE2D6 E2C3 48 LE2C3: PHA ;Load HeaderE2C4 201BF0 JSR LF01B E2C7 68 PLA E2C8 18 CLC E2C9 E900 SBC #$0000 E2CB 2021F0 JSR LF021 ;Load programE2CE A51E LDA L001E ;Transfer end of program pointerE2D0 859C STA L009C E2D2 A51F LDA L001F E2D4 859D STA L009D E2D6 2073FE LE2D6: JSR LFE73 E2D9 58 CLI ;Restore tape portE2DA A900 LDA #$0000 E2DC 8DCBBF STA LBFCB E2DF 8DC2BF STA LBFC2 E2E2 A200 LDX #$0000 ;Restore Zero PageE2E4 68 LE2E4: PLA E2E5 9513 STA L0013,X E2E7 E8 INX E2E8 E04D CPX #$004D E2EA D0F8 BNE LE2E4 E2EC 60 RTS E2ED A90F LDA #$000F ;Cold startE2EF 850C STA L000C E2F1 A900 LDA #$0000 E2F3 8DC2BF STA LBFC2 E2F6 8515 STA L0015 E2F8 8516 STA L0016 E2FA 4C76E0 JMP LE076 E2FD 48 LE2FD: PHA ;Calc screen address from XYE2FE 8A TXA E2FF 48 PHA E300 A902 LDA #$0002 E302 8514 STA L0014 E304 A900 LDA #$0000 E306 CA LE306: DEX E307 3009 BMI LE312 E309 18 CLC E30A 6920 ADC #$0020 E30C 90F8 BCC LE306 E30E E614 INC L0014 E310 D0F4 BNE LE306 E312 8513 LE312: STA L0013 E314 68 PLA E315 AA TAX E316 68 PLA E317 60 RTS E318 20FDE2 LE318: JSR LE2FD ;Store acc at screen XYE31B 9113 STA (L0013),Y E31D 60 RTS E31E 48 LE31E: PHA ;Scroll top 5 linesE31F 8A TXA E320 48 PHA E321 A200 LDX #$0000 E323 BD2002 LE323: LDA L0220,X E326 9D0002 STA L0200,X E329 E8 INX E32A E0A0 CPX #$00A0 E32C D0F5 BNE LE323 E32E A920 LDA #$0020 E330 A21F LDX #$001F E332 9D8002 LE332: STA L0280,X E335 CA DEX E336 10FA BPL LE332 E338 68 PLA E339 AA TAX E33A 68 LE33A: PLA E33B 60 RTS E33C 48 LE33C: PHA ;MS/Tangerine InterfaceE33D A516 LDA L0016 E33F F005 BEQ LE346 E341 10F7 BPL LE33A E343 4C14E7 JMP LE714 E346 68 LE346: PLA E347 4CA5C7 JMP LC7A5 E34A A516 LE34A: LDA L0016 E34C F009 BEQ LE357 E34E 3003 BMI LE353 E350 4C78E7 JMP LE778 E353 A900 LE353: LDA #$0000 E355 8516 STA L0016 E357 A515 LE357: LDA L0015 E359 F003 BEQ LE35E E35B 4C60E6 JMP LE660 E35E 2064C7 LE35E: JSR LC764 E361 C905 CMP #$0005 E363 F001 BEQ LE366 E365 60 RTS E366 860E LE366: STX L000E E368 A900 LDA #$0000 E36A 8533 STA L0033 E36C 8534 STA L0034 E36E A2FF LDX #$00FF E370 E8 LE370: INX E371 E40E CPX L000E E373 F053 BEQ LE3C8 E375 A534 LDA L0034 E377 C919 CMP #$0019 E379 B02C BCS LE3A7 E37B 48 PHA E37C A533 LDA L0033 E37E 0A ASL A E37F 2634 ROL L0034 E381 0A ASL A E382 2634 ROL L0034 E384 6533 ADC L0033 E386 8533 STA L0033 E388 68 PLA E389 6534 ADC L0034 E38B 8534 STA L0034 E38D 0633 ASL L0033 E38F 2634 ROL L0034 E391 B535 LDA L0035,X E393 38 SEC E394 E930 SBC #$0030 E396 300F BMI LE3A7 E398 C93A CMP #$003A E39A B00B BCS LE3A7 E39C 18 CLC E39D 6533 ADC L0033 E39F 8533 STA L0033 E3A1 90CD BCC LE370 E3A3 E634 INC L0034 E3A5 D0C9 BNE LE370 E3A7 A200 LE3A7: LDX #$0000 ;Print no such lineE3A9 BDB4E3 LE3A9: LDA LE3B4,X E3AC F015 BEQ LE3C3 E3AE 2075FE JSR LFE75 E3B1 E8 INX E3B2 D0F5 BNE LE3A9 E3B4 0D4E4F LE3B4: DEFB $0D,$E4 ;Message (NO SUCH LINE)E3B7 205355 DEFB $20,$35 E3BA 43 DEFB $43 E3BB 48 DEFB $48 E3BC 204C49 DEFB $20,$C4 E3BF 4E450D DEFB $4E,$50 E3C2 00 DEFB $00 E3C3 A200 LE3C3: LDX #$0000 E3C5 A90D LDA #$000D E3C7 60 RTS E3C8 A209 LE3C8: LDX #$0009 ;Find BASIC line numberE3CA A904 LE3CA: LDA #$0004 E3CC 9545 STA L0045,X E3CE CA DEX E3CF A901 LDA #$0001 E3D1 9545 STA L0045,X E3D3 CA DEX E3D4 10F4 BPL LE3CA E3D6 85CE STA L00CE E3D8 A904 LDA #$0004 E3DA 85CF STA L00CF E3DC 867D STX L007D E3DE 867B STX L007B E3E0 A003 LE3E0: LDY #$0003 E3E2 B1CE LDA (L00CE),Y E3E4 48 PHA E3E5 88 DEY E3E6 B1CE LDA (L00CE),Y E3E8 48 PHA E3E9 88 DEY E3EA B1CE LDA (L00CE),Y E3EC AA TAX E3ED 88 DEY E3EE B1CE LDA (L00CE),Y E3F0 85CE STA L00CE E3F2 86CF STX L00CF E3F4 854F STA L004F E3F6 8650 STX L0050 E3F8 68 PLA E3F9 AA TAX E3FA 68 PLA E3FB C534 CMP L0034 E3FD D004 BNE LE403 E3FF E433 CPX L0033 E401 F016 BEQ LE419 E403 867A LE403: STX L007A E405 857B STA L007B E407 A200 LDX #$0000 E409 B547 LE409: LDA L0047,X E40B 9545 STA L0045,X E40D E8 INX E40E E00A CPX #$000A E410 D0F7 BNE LE409 E412 C8 INY E413 B1CE LDA (L00CE),Y E415 F090 BEQ LE3A7 E417 D0C7 BNE LE3E0 E419 C8 LE419: INY E41A B1CE LDA (L00CE),Y E41C F00A BEQ LE428 E41E C8 INY E41F B1CE LDA (L00CE),Y E421 857C STA L007C E423 C8 INY E424 B1CE LDA (L00CE),Y E426 857D STA L007D E428 A203 LE428: LDX #$0003 E42A B57A LE42A: LDA L007A,X E42C 48 PHA E42D CA DEX E42E 10FA BPL LE42A E430 A920 LDA #$0020 ;Clear ScreenE432 A20F LDX #$000F E434 A01F LE434: LDY #$001F E436 2018E3 LE436: JSR LE318 E439 88 DEY E43A 10FA BPL LE436 E43C CA DEX E43D 10F5 BPL LE434 E43F A205 LDX #$0005 ;Print parallel dashesE441 A01F LE441: LDY #$001F E443 A92D LDA #$002D E445 2018E3 LE445: JSR LE318 E448 88 DEY E449 10FA BPL LE445 E44B E009 CPX #$0009 E44D F004 BEQ LE453 E44F A209 LDX #$0009 E451 D0EE BNE LE441 E453 A545 LE453: LDA L0045 ;Transfer Line numberE455 85CE STA L00CE E457 A546 LDA L0046 E459 85CF STA L00CF E45B 8A LE45B: TXA E45C 48 PHA E45D A900 LDA #$0000 E45F 8507 STA L0007 E461 A002 LDY #$0002 E463 B1CE LDA (L00CE),Y E465 AA TAX E466 C8 INY E467 B1CE LDA (L00CE),Y E469 C534 CMP L0034 E46B F006 BEQ LE473 E46D 900A BCC LE479 E46F C607 LE46F: DEC L0007 E471 3008 BMI LE47B E473 E433 LE473: CPX L0033 E475 F004 BEQ LE47B E477 B0F6 BCS LE46F E479 E607 LE479: INC L0007 E47B 8408 LE47B: STY L0008 E47D 86D2 STX L00D2 E47F 85D1 STA L00D1 E481 A290 LDX #$0090 E483 38 SEC E484 20D3DA JSR LDAD3 ;Convert to FPE487 207BDC JSR LDC7B ;Convert to stringE48A A200 LDX #$0000 ;Put into input bufferE48C BD0001 LE48C: LDA L0100,X E48F F005 BEQ LE496 E491 9535 STA L0035,X E493 E8 INX E494 D0F6 BNE LE48C E496 A920 LE496: LDA #$0020 ;Put space & rest of line into input bufferE498 A408 LE498: LDY L0008 E49A 297F AND #$007F E49C 9535 LE49C: STA L0035,X E49E F030 BEQ LE4D0 E4A0 E8 INX E4A1 E04F CPX #$004F E4A3 9004 BCC LE4A9 E4A5 A900 LDA #$0000 E4A7 F0F3 BEQ LE49C E4A9 C8 LE4A9: INY E4AA B1CE LDA (L00CE),Y E4AC 10EE BPL LE49C E4AE 38 SEC ;Expand tokenE4AF E97F SBC #$007F E4B1 8609 STX L0009 E4B3 AA TAX E4B4 8408 STY L0008 E4B6 A0FF LDY #$00FF E4B8 CA LE4B8: DEX E4B9 F008 BEQ LE4C3 E4BB C8 LE4BB: INY E4BC B986C0 LDA LC086,Y E4BF 10FA BPL LE4BB E4C1 30F5 BMI LE4B8 E4C3 A609 LE4C3: LDX L0009 E4C5 C8 LE4C5: INY E4C6 B986C0 LDA LC086,Y E4C9 30CD BMI LE498 E4CB 9535 STA L0035,X E4CD E8 INX E4CE D0F5 BNE LE4C5 E4D0 A200 LE4D0: LDX #$0000 ;4 lines above & below edit zoneE4D2 8608 STX L0008 E4D4 68 PLA E4D5 AA TAX E4D6 A000 LDY #$0000 E4D8 A507 LDA L0007 E4DA D004 BNE LE4E0 E4DC A206 LDX #$0006 E4DE D00E BNE LE4EE E4E0 1007 LE4E0: BPL LE4E9 E4E2 E8 LE4E2: INX E4E3 E00E CPX #$000E E4E5 F042 BEQ LE529 E4E7 D005 BNE LE4EE E4E9 201EE3 LE4E9: JSR LE31E E4EC A204 LDX #$0004 E4EE 8609 LE4EE: STX L0009 E4F0 A608 LE4F0: LDX L0008 E4F2 B535 LDA L0035,X E4F4 F017 BEQ LE50D E4F6 E8 INX E4F7 8608 STX L0008 E4F9 A609 LDX L0009 E4FB 2018E3 JSR LE318 E4FE C8 INY E4FF C020 CPY #$0020 E501 D0ED BNE LE4F0 E503 A000 LDY #$0000 E505 A507 LDA L0007 E507 F0D9 BEQ LE4E2 E509 10DE BPL LE4E9 E50B 30D5 BMI LE4E2 E50D A000 LE50D: LDY #$0000 E50F B1CE LDA (L00CE),Y E511 48 PHA E512 C8 INY E513 B1CE LDA (L00CE),Y E515 85CF STA L00CF E517 68 PLA E518 85CE STA L00CE E51A B1CE LDA (L00CE),Y E51C F00B BEQ LE529 E51E A609 LDX L0009 E520 A507 LDA L0007 E522 D002 BNE LE526 E524 A209 LDX #$0009 E526 4C5BE4 LE526: JMP LE45B E529 A200 LE529: LDX #$0000 ;Transfer line number to bottomE52B BDC102 LE52B: LDA L02C1,X E52E C920 CMP #$0020 E530 F008 BEQ LE53A E532 9DE103 STA L03E1,X E535 E8 INX E536 860E STX L000E E538 D0F1 BNE LE52B E53A A200 LE53A: LDX #$0000 E53C 68 LE53C: PLA E53D 957A STA L007A,X E53F E8 INX E540 E004 CPX #$0004 E542 D0F8 BNE LE53C E544 A206 LDX #$0006 ;Calc address of edit zone startE546 A000 LDY #$0000 E548 8401 STY L0001 E54A 20FDE2 LE54A: JSR LE2FD E54D B113 LDA (L0013),Y ;Flash character, wait for keyE54F 8582 STA L0082 E551 A9FF LDA #$00FF E553 9113 STA (L0013),Y E555 A940 LE555: LDA #$0040 E557 8580 STA L0080 E559 8581 STA L0081 E55B A501 LE55B: LDA L0001 E55D D015 BNE LE574 E55F C680 DEC L0080 E561 D0F8 BNE LE55B E563 C681 DEC L0081 E565 D0F4 BNE LE55B E567 B113 LDA (L0013),Y E569 48 PHA E56A A582 LDA L0082 E56C 9113 STA (L0013),Y E56E 68 PLA E56F 8582 STA L0082 E571 4C55E5 JMP LE555 E574 A582 LE574: LDA L0082 E576 3002 BMI LE57A E578 9113 STA (L0013),Y E57A A501 LE57A: LDA L0001 E57C C90C CMP #$000C ;Move cursor leftE57E D004 BNE LE584 E580 88 DEY E581 1001 BPL LE584 E583 C8 INY E584 C912 LE584: CMP #$0012 ;Move cursor rightE586 D005 BNE LE58D E588 C01F CPY #$001F E58A F001 BEQ LE58D E58C C8 INY E58D C915 LE58D: CMP #$0015 ;Move cursor upE58F D005 BNE LE596 E591 E006 CPX #$0006 E593 F001 BEQ LE596 E595 CA DEX E596 C904 LE596: CMP #$0004 ;Move cursor downE598 D005 BNE LE59F E59A E008 CPX #$0008 E59C F001 BEQ LE59F E59E E8 INX E59F C97F LE59F: CMP #$007F ;Delete characterE5A1 D013 BNE LE5B6 E5A3 C000 CPY #$0000 E5A5 D004 BNE LE5AB E5A7 E006 CPX #$0006 E5A9 F00B BEQ LE5B6 E5AB 88 LE5AB: DEY E5AC 100C BPL LE5BA E5AE A01F LDY #$001F E5B0 CA DEX E5B1 20FDE2 JSR LE2FD E5B4 D004 BNE LE5BA E5B6 C905 LE5B6: CMP #$0005 ;Change characterE5B8 D01B BNE LE5D5 E5BA 48 LE5BA: PHA E5BB 98 TYA E5BC 48 PHA E5BD 98 LE5BD: TYA E5BE 18 CLC E5BF 6513 ADC L0013 E5C1 C91F CMP #$001F E5C3 F009 BEQ LE5CE E5C5 C8 INY E5C6 B113 LDA (L0013),Y E5C8 88 DEY E5C9 9113 STA (L0013),Y E5CB C8 INY E5CC D0EF BNE LE5BD E5CE A920 LE5CE: LDA #$0020 E5D0 9113 STA (L0013),Y E5D2 68 PLA E5D3 A8 TAY E5D4 68 PLA E5D5 C91B LE5D5: CMP #$001B ;Control charater checkE5D7 F068 BEQ LE641 E5D9 C90D CMP #$000D E5DB F07A BEQ LE657 E5DD C90A CMP #$000A E5DF F050 BEQ LE631 E5E1 C903 CMP #$0003 E5E3 F060 BEQ LE645 E5E5 C90B CMP #$000B E5E7 F03E BEQ LE627 E5E9 C909 CMP #$0009 E5EB F050 BEQ LE63D E5ED C920 CMP #$0020 E5EF 902F BCC LE620 E5F1 C97E CMP #$007E E5F3 B02B BCS LE620 E5F5 48 PHA ;Insert characterE5F6 98 TYA E5F7 48 PHA E5F8 B113 LDA (L0013),Y E5FA 8580 LE5FA: STA L0080 E5FC 98 TYA E5FD 18 CLC E5FE 6513 ADC L0013 E600 C91F CMP #$001F E602 F00B BEQ LE60F E604 C8 INY E605 B113 LDA (L0013),Y E607 48 PHA E608 A580 LDA L0080 E60A 9113 STA (L0013),Y E60C 68 PLA E60D D0EB BNE LE5FA E60F 68 LE60F: PLA E610 A8 TAY E611 68 PLA E612 9113 STA (L0013),Y E614 C01F CPY #$001F E616 D007 BNE LE61F E618 E008 CPX #$0008 E61A F004 BEQ LE620 E61C E8 INX E61D A0FF LDY #$00FF E61F C8 LE61F: INY E620 A900 LE620: LDA #$0000 E622 8501 STA L0001 E624 4C4AE5 JMP LE54A E627 A25F LE627: LDX #$005F ;Delete LineE629 A920 LDA #$0020 E62B 9DC002 LE62B: STA L02C0,X E62E CA DEX E62F 10FA BPL LE62B E631 A202 LE631: LDX #$0002 ;Get next lineE633 B57A LE633: LDA L007A,X E635 8513 STA L0013 E637 E8 INX E638 B57A LDA L007A,X E63A 4C59E6 JMP LE659 E63D A200 LE63D: LDX #$0000 ;Duplicate lineE63F 860E STX L000E E641 A200 LE641: LDX #$0000 ;Get previous lineE643 F0EE BEQ LE633 E645 2073FE LE645: JSR LFE73 ;Exit edit modeE648 A200 LDX #$0000 E64A A900 LDA #$0000 E64C 8516 STA L0016 E64E 8515 LE64E: STA L0015 E650 A000 LDY #$0000 E652 8403 STY L0003 E654 A90D LDA #$000D E656 60 RTS E657 A9FF LE657: LDA #$00FF ;Update programE659 8514 LE659: STA L0014 E65B A901 LDA #$0001 E65D 48 PHA E65E D025 BNE LE685 E660 C903 LE660: CMP #$0003 E662 F03A BEQ LE69E E664 C902 CMP #$0002 E666 F019 BEQ LE681 E668 AEC003 LDX L03C0 E66B E020 CPX #$0020 E66D D0D6 BNE LE645 E66F A2FF LDX #$00FF E671 E8 LE671: INX E672 E40E CPX L000E E674 D004 BNE LE67A E676 A902 LDA #$0002 E678 D0D4 BNE LE64E E67A BDE103 LE67A: LDA L03E1,X E67D 9535 STA L0035,X E67F D0F0 BNE LE671 E681 AA LE681: TAX E682 E8 INX E683 8A TXA E684 48 PHA E685 A24F LE685: LDX #$004F ;Transfer edit zone to input bufferE687 BDC002 LE687: LDA L02C0,X E68A 9535 STA L0035,X E68C CA DEX E68D 10F8 BPL LE687 E68F A24F LDX #$004F ;Continue editingE691 BDBF02 LE691: LDA L02BF,X E694 C920 CMP #$0020 E696 D003 BNE LE69B E698 CA DEX E699 D0F6 BNE LE691 E69B 68 LE69B: PLA E69C D0B0 BNE LE64E E69E A614 LE69E: LDX L0014 E6A0 E0FF CPX #$00FF E6A2 F0A1 BEQ LE645 E6A4 8634 STX L0034 E6A6 A513 LDA L0013 E6A8 8533 STA L0033 E6AA 4CC8E3 JMP LE3C8 E6AD 48 LE6AD: PHA ;Limit listing to 4 lines at a timeE6AE A905 LDA #$0005 E6B0 850E STA L000E E6B2 68 PLA E6B3 20B1C8 JSR LC8B1 E6B6 4C7EC5 JMP LC57E E6B9 A50E LE6B9: LDA L000E ;List control (4 lines or to the end)E6BB 3014 BMI LE6D1 E6BD C60E DEC L000E E6BF D010 BNE LE6D1 E6C1 20FAFD JSR LFDFA E6C4 A982 LDA #$0082 E6C6 850E STA L000E E6C8 A501 LDA L0001 E6CA C90A CMP #$000A E6CC F003 BEQ LE6D1 E6CE 38 SEC E6CF 260E ROL L000E E6D1 20E6C6 LE6D1: JSR LC6E6 E6D4 4CA9C5 JMP LC5A9 E6D7 A2FF LE6D7: LDX #$00FF ;Delay routineE6D9 20E2E6 LE6D9: JSR LE6E2 E6DC 88 DEY E6DD D0FA BNE LE6D9 E6DF CA DEX E6E0 D0F7 BNE LE6D9 E6E2 60 LE6E2: RTS E6E3 A90C LE6E3: LDA #$000C ;Wait for tape leaderE6E5 A2FF LE6E5: LDX #$00FF E6E7 A8 TAY E6E8 A501 LDA L0001 E6EA C903 CMP #$0003 E6EC F0F4 BEQ LE6E2 E6EE 98 TYA E6EF 48 LE6EF: PHA E6F0 ADC0BF LDA LBFC0 E6F3 ADCDBF LE6F3: LDA LBFCD E6F6 2908 AND #$0008 E6F8 F0F9 BEQ LE6F3 E6FA ADC9BF LDA LBFC9 E6FD 48 PHA E6FE A9FF LDA #$00FF E700 8DC9BF STA LBFC9 E703 68 PLA E704 C9FE CMP #$00FE E706 68 PLA E707 90DC BCC LE6E5 E709 CA DEX E70A D0E3 BNE LE6EF E70C 88 DEY E70D D0E0 BNE LE6EF E70F 60 RTS E710 A906 LE710: LDA #$0006 E712 D0D1 BNE LE6E5 E714 8613 LE714: STX L0013 Set up port for outputE716 8414 STY L0014 E718 A516 LDA L0016 E71A C9FD CMP #$00FD E71C F02B BEQ LE749 E71E A900 LDA #$0000 E720 8DCBBF STA LBFCB E723 A920 LDA #$0020 E725 8DC0BF STA LBFC0 E728 A940 LDA #$0040 E72A 8DC2BF STA LBFC2 E72D 20D7E6 JSR LE6D7 E730 2000F0 JSR LF000 E733 A516 LDA L0016 ;Send long leaderE735 C9FF CMP #$00FF E737 D007 BNE LE740 E739 A020 LDY #$0020 E73B 2009F0 JSR LF009 E73E C616 DEC L0016 E740 A010 LE740: LDY #$0010 ;Send short leaderE742 A2FF LDX #$00FF E744 2009F0 JSR LF009 E747 C616 DEC L0016 E749 68 LE749: PLA ;Send a byteE74A 78 SEI E74B 48 PHA E74C C90A CMP #$000A E74E F021 BEQ LE771 E750 A60E LDX L000E E752 8650 STX L0050 E754 200FF0 JSR LF00F E757 58 CLI E758 A501 LDA L0001 E75A C903 CMP #$0003 E75C F013 BEQ LE771 E75E 68 PLA E75F 48 PHA E760 C90D CMP #$000D E762 D00D BNE LE771 E764 A900 LDA #$0000 ;Restore tape portE766 8516 STA L0016 E768 8DCBBF STA LBFCB E76B 20D7E6 JSR LE6D7 E76E 8DC2BF STA LBFC2 E771 A613 LE771: LDX L0013 E773 A414 LDY L0014 E775 58 CLI E776 68 PLA E777 60 RTS E778 A940 LE778: LDA #$0040 ;Set up tape port for inputE77A 8DC0BF STA LBFC0 E77D 2000F0 JSR LF000 E780 58 CLI ;Read long leaderE781 A516 LDA L0016 E783 C901 CMP #$0001 E785 D003 BNE LE78A E787 20E3E6 JSR LE6E3 E78A 2010E7 LE78A: JSR LE710 ;Read short leaderE78D A501 LDA L0001 E78F C903 CMP #$0003 E791 F03B BEQ LE7CE E793 A550 LE793: LDA L0050 ;Read a byteE795 48 PHA E796 A551 LDA L0051 E798 48 PHA E799 A50E LDA L000E E79B 8550 STA L0050 E79D 78 SEI E79E 2018F0 JSR LF018 E7A1 58 CLI E7A2 A8 TAY E7A3 68 PLA E7A4 8551 STA L0051 E7A6 68 PLA E7A7 8550 STA L0050 E7A9 B012 BCS LE7BD E7AB A900 LDA #$0000 E7AD 8516 STA L0016 E7AF A206 LDX #$0006 ;Print PARITYE7B1 BDDCE7 LE7B1: LDA LE7DC,X E7B4 2075FE JSR LFE75 E7B7 CA DEX E7B8 10F7 BPL LE7B1 E7BA E8 INX E7BB F011 BEQ LE7CE E7BD A501 LE7BD: LDA L0001 E7BF C903 CMP #$0003 E7C1 F00B BEQ LE7CE E7C3 C00D CPY #$000D E7C5 F007 BEQ LE7CE E7C7 9435 STY L0035,X ;Put byte into input bufferE7C9 E8 INX E7CA E04F CPX #$004F E7CC D0C5 BNE LE793 E7CE A900 LE7CE: LDA #$0000 ;Restore tape portE7D0 8DCBBF STA LBFCB E7D3 8DC2BF STA LBFC2 E7D6 8516 STA L0016 E7D8 58 CLI E7D9 A90D LDA #$000D E7DB 60 RTS E7DC 595449 LE7DC: DEFB $59,$44,$49 ;Message (PARITY)E7DF 52 DEFB $52 E7E0 4150 DEFB $41,$50 E7E2 0D DEFB $0DE7E3 FF DEFB $FFetc E7FF FF DEFB $FF