FBC7: 85 29 581 STA BASH ; BASH=000001CD
FBC9: 68 582 PLA ; AND
FBCA: 29 18 583 AND #$18 ; BASL=EABAB000
FBCC: 90 02 584 BCC BSCLC2
FBCE: 69 7F 585 ADC #$7F
FBD0: 85 28 586 BSCLC2 STA BASL
FBD2: 0A 587 ASL
FBD3: 0A 588 ASL
FBD4: 05 28 589 ORA BASL
FBD6: 85 28 590 STA BASL
FBD8: 60 591 RTS
FBD9: C9 87 592 BELL1 CMP #$87 ;BELL CHAR? (CNTRL-G)
FBDB: D0 12 593 BNE RTS2B ; NO, RETURN
FBDD: A9 40 594 LDA #$40 ;DELAY .01 SECONDS
FBDF: 20 A8 FC 595 JSR WAIT
FBE2: A0 C0 596 LDY #$C0
FBE4: A9 0C 597 BELL2 LDA #$0C ;TOGGLE SPEAKER AT
FBE6: 20 A8 FC 598 JSR WAIT ; 1 KHZ FOR .1 SEC.
FBE9: AD 30 C0 599 LDA SPKR
FBEC: 88 600 DEY
FBED: D0 F5 601 BNE BELL2
FBEF: 60 602 RTS2B RTS
FBF0: A4 24 603 STOADV LDY CH ;CURSOR H INDEX TO Y-REG
FBF2: 91 28 604 STA (BASL),Y ;STORE CHAR IN LINE
FBF4: E6 24 605 ADVANCE INC CH ;INCREMENT CURSOR H INDEX
FBF6: A5 24 606 LDA CH ; (MOVE RIGHT)
FBF8: C5 21 607 CMP WNDWDTH ;BEYOND WINDOW WIDTH?
FBFA: B0 66 608 BCS CR ; YES CR TO NEXT LINE
FBFC: 60 609 RTS3 RTS ; NO,RETURN
FBFD: C9 A0 610 VIDOUT CMP #$A0 ;CONTROL CHAR?
FBFF: B0 EF 611 BCS STOADV ; NO,OUTPUT IT.
FC01: A8 612 TAY ;INVERSE VIDEO?
FC02: 10 EC 613 BPL STOADV ; YES, OUTPUT IT.
FC04: C9 8D 614 CMP #$8D ;CR?
FC06: F0 5A 615 BEQ CR ; YES.
FC08: C9 8A 616 CMP #$8A ;LINE FEED?
FC0A: F0 5A 617 BEQ LF ; IF SO, DO IT.
FC0C: C9 88 618 CMP #$88 ;BACK SPACE? (CNTRL-H)
FC0E: D0 C9 619 BNE BELL1 ; NO, CHECK FOR BELL.
FC10: C6 24 620 BS DEC CH ;DECREMENT CURSOR H INDEX
FC12: 10 E8 621 BPL RTS3 ;IF POS, OK. ELSE MOVE UP
FC14: A5 21 622 LDA WNDWDTH ;SET CH TO WNDWDTH-1
FC16: 85 24 623 STA CH
FC18: C6 24 624 DEC CH ;(RIGHTMOST SCREEN POS)
FC1A: A5 22 625 UP LDA WNDTOP ;CURSOR V INDEX
FC1C: C5 25 626 CMP CV
FC1E: B0 0B 627 BCS RTS4 ;IF TOP LINE THEN RETURN
FC20: C6 25 628 DEC CV ;DEC CURSOR V-INDEX
FC22: A5 25 629 VTAB LDA CV ;GET CURSOR V-INDEX
FC24: 20 C1 FB 630 VTABZ JSR BASCALC ;GENERATE BASE ADR
FC27: 65 20 631 ADC WNDLFT ;ADD WINDOW LEFT INDEX
FC29: 85 28 632 STA BASL ;TO BASL
FC2B: 60 633 RTS4 RTS
FC2C: 49 C0 634 ESC1 EOR #$C0 ;ESC?
FC2E: F0 28 635 BEQ HOME ; IF SO, DO HOME AND CLEAR
FC30: 69 FD 636 ADC #$FD ;ESC-A OR B CHECK
FC32: 90 C0 637 BCC ADVANCE ; A, ADVANCE
FC34: F0 DA 638 BEQ BS ; B, BACKSPACE
FC36: 69 FD 639 ADC #$FD ;ESC-C OR D CHECK
FC38: 90 2C 640 BCC LF ; C, DOWN
FC3A: F0 DE 641 BEQ UP ; D, GO UP
FC3C: 69 FD 642 ADC #$FD ;ESC-E OR F CHECK