Operating System ROM

The ROM operating system and bootloader of CyberVision 2001 (U22) is a 1 KB, 2708-compatible mask ROM, CDP1834. It handles screen and video initialization, memory management, tape data interpretation, cassette deck motor control and character display.

OPERATING SYSTEM FUNCTIONALITY

The basic flow of the operating system ROM, from a user’s perspective is:

  1. User physically powers on the CyberVision 2001.
  2. ROM readies the system, activates the cassette motor, clears the screen and displays “CYBERVISION
  3. User inserts a tape into the embedded cassette deck and presses Play.
  4. ROM monitors cassette data input (from RIGHT channel audio) scanning for valid or invalid byte data, and will show the following:
    • STANDBY . . .” When a valid data stream has been opened and bytes are being read.
    • CHECK THE TAPE.” When an invalid data stream has been detected.
  5. After the necessary data has been loaded (2 KB Data RAM), the data is output to the screen for program execution (2 KB Video RAM).
  6. At various points the program data will activate or deactivate cassette playback to handle program flow and user interactivity.

DATASHEET DESCRIPTION

The RCA-CDP1834 and CDP1834C are 8192-bit mask-programmable CMOS read-only memories organized as 1024-words x 8-bits and designed for use in CDP1800-series microprocessor systems. The CDP1834-series ROMs are completely static; no clocks are required.

Two chip-select inputs (CS1, CS2) are provided for memory expansion. The polarity of each Chip-Select is user mask-programmable. The CDP1834-series is pin-compatible with industry type 2708 EPROM. The CDP1834 has a recommended operating voltage range of 4 to 10.5 volts and the CDP1834C has a recommended operating voltage range of 4 to 6.5 volts. The CDP1834 and the CDP1834C are supplied in 24-lead dual-inline ceramic packages (D suffix) and in 24-lead dual-in-line plastic packages (E suffix). The CDP1834C is also available in chip form (H suffix).

ROM DUMP

The initial (corrupted) ROM of the CyberVision 2001 was first dumped in March 2023. Two versions of the ROM would eventually be obtained to ensure a pristine copy exists. The original copy had a stuck forth bit, and was initially shared by Matt Pilz on March 2, 2023. It was disassembled and reconstructed with high confidence by a group of 1802 enthusiasts across more than 100 posts over at the COSMAS ELF Group. Special thanks for the disassembly and repair effort go to Marcel van Tongeren, Nobuyoshi and Herb Johnson.

A second clean copy from a known operational CyberVision was graciously dumped on March 25, 2023, thanks to CyberVision owner Josh Denty. with assistance from The Bloop Museum to create BIN and HEX dumps of the ROM. This clean copy was able to be compared to the original ROM dump and restoration effort, to verify all 1024 bytes across the two and a double-verification that we have a pure ROM. With this, an original clean ROM of the CyberVision 2001 operating system now exists, as presented below in HEX binary.

Download ROM and Disassembly (Includes 2708, 2716 and 2732 Prepared ROM images and Commented ASM).

F8 80 B0 FE AC F8 FF AF F8 07 BF F8 05 BB 8C AB F8 81 B1 F8 31 A1 F8 83 B3 F8 B9 A3 F8 08 B4 8C A4 F8 83 B5 F8 BC A5 F8 40 B9 F8 20 A9 D1 F8 81 B1 F8 55 A1 F8 83 B5 F8 BC A5 F8 0B B4 F8 CA A4 F8 83 B6 F8 C1 A6 D1 F8 80 B8 F8 D0 A8 ED 7B 30 5A C4 C4 C4 C4 C4 C4 C4 C4 C4 8C AA F8 07 BD F8 FF AD D8 F8 A5 F3 32 90 8A FB FF 3A 62 F8 0B B4 F8 CA A4 F8 83 B6 F8 E2 A6 F8 81 B1 F8 55 A1 D1 C4 F8 81 B1 F8 2A A1 D1 30 10 C4 C4 C4 C4 8C AA D8 F8 A5 F3 32 9D 8A FB FF 3A 62 30 6D C0 83 F2 D8 F0 B6 D8 F0 A6 D8 F0 B7 D8 F0 A7 D8 F0 AE E6 D8 97 5F 96 EF F3 32 BC E6 60 30 B0 87 5F 86 F3 3A B8 ED 8E 3A 8E 7A 30 E5 C4 14 36 24 88 C4 D0 3D D0 6A 1A 30 CF 88 88 88 88 88 88 88 88 88 88 88 88 88 88 C4 EF 8B 73 9B 73 F8 C0 73 F8 FF AF ED C0 07 FD F8 6D A0 D0 C4 D0 F0 FE 8C C4 C4 C4 3B 04 FC 01 B6 F0 FE FC 00 F6 A6 F8 81 BE F8 D4 AE EE 86 F3 32 1C 60 8E FB FC 3A 12 EF 8E FF D4 5F F4 A6 ED C0 80 F9 C4 C4 D0 69 3E 2B 69 30 29 D0 84 A8 94 B8 99 AA 08 E3 F2 E5 F1 58 18 2A 8A 3A 37 84 FC 40 A4 3B 4C 94 FC 01 B4 29 89 3A 31 ED 30 30 16 D0 84 AE 94 BE 06 7E 33 53 46 A7 F8 82 B7 47 B8 07 A8 8C AA E5 48 F1 54 14 48 F1 54 14 48 F1 54 ED 1A 8A FB 03 3A 84 8E FC 03 AE A4 9E B4 30 59 84 FC 3E A4 3B 68 94 FC 01 B4 30 68 D0 F8 08 B4 99 A4 24 C4 89 AE 2E 8E 32 90 84 FC 40 A4 3B 9A 94 FC 01 B4 30 9A D0 9C 3A B1 F8 01 BC F8 BF BE F8 BF AE F8 F0 FC 01 3A B9 8E FC 01 AE 3A B7 9E FC 01 BE 3A B4 9C FF 01 BC 9C 32 AA 30 B1 C4 C4 17 0E 16 26 0D 15 25 0C 14 24 08 10 20 40 00 09 11 21 41 01 0A 12 22 42 02 0B 13 23 43 03 44 04 45 05 46 06 0F 07 27 47 00 00 00 48 82 50 82 59 82 62 82 6B 82 74 82 7D 82 86 82 8F 82 98 82 A1 82 AA 82 B3 82 BC 82 C5 82 CE 82 D7 82 E0 82 E9 82 F2 82 FB 83 04 83 0D 83 16 83 1F 83 28 83 31 83 3A 83 43 83 4C 83 55 83 5E 83 67 83 70 83 79 83 82 83 8B 83 94 83 9D 83 A6 83 AF 09 0C 01 15 00 15 18 0C 10 02 05 00 00 15 00 08 1C 00 09 0C 01 09 0C 10 1C 0C 04 09 0C 01 08 0C 11 18 0C 10 05 00 05 1C 0C 15 00 00 14 0D 0C 04 1C 0C 01 18 0C 10 09 0C 01 17 0C 01 18 0C 10 0C 0C 05 00 25 00 00 14 00 09 0C 01 19 0C 11 18 0C 10 09 0C 01 18 0C 15 18 0C 10 09 0C 01 1D 0C 15 14 00 14 0D 0C 01 1D 0C 11 1C 0C 10 09 0C 01 15 00 00 18 0C 10 0D 06 00 15 00 15 1C 24 00 0D 0C 04 1D 0C 00 1C 0C 04 0D 0C 04 1D 0C 00 14 00 00 09 0C 01 15 08 05 18 0C 10 05 00 05 1D 0C 15 14 00 14 08 0D 00 00 15 00 08 1C 00 00 0E 04 01 2A 00 18 24 00 05 02 04 1D 11 00 14 20 04 05 00 00 15 00 00 1C 0C 04 07 02 05 15 10 15 14 00 14 07 00 05 15 18 15 14 00 14 0D 0C 05 15 00 15 1C 0C 14 0D 0C 01 1D 0C 10 14 00 00 0D 0C 05 15 00 15 1C 2C 16 0D 0C 01 1D 0D 10 14 20 04 09 0C 01 18 0C 01 18 0C 10 0C 0D 04 00 15 00 00 14 00 05 00 05 15 00 15 18 0C 10 05 00 05 15 00 15 20 24 00 05 00 05 15 05 15 1C 1C 14 05 00 05 22 26 00 14 00 14 05 00 05 20 25 00 00 14 00 0C 0C 05 02 24 00 1C 0C 04 3D 33 3E 3F 32 2F 3F 3B 3F 00 05 00 00 14 00 00 14 00 00 00 00 00 00 00 14 00 00 00 00 00 00 00 00 00 00 00 00 00 40 80 C0 3F 7F BF FF 4E 4E 18 44 16 1C 36 3E 24 38 24 30 2E 4E 4E 4E 88 4E 38 3A 14 2E 1A 4E 16 44 4E 4C 4C 4C 4E 4E 88 18 22 1C 18 28 4E 3A 22 1C 4E 3A 14 32 1C 4C 88 F8 CA A4 D1 F8 80 B8 F8 D0 A8 D8 C0 80 A0

(Easter Egg: As first spotted by Nobuyoshi, the otherwise unused and inaccessible data bytes between 80C9—80CE contain “14H, 36H, 24H” which map to the letters “ARI” in ROM. This is the company that produced the ROM and software for the CyberVision 2001.)

The binary can be programmed to any 2708, 2716 or 2732 EPROM as a drop-in replacement to the original CDP1834. Since the CyberVision 2001 logic board and original mask ROM had no connection to pins 19 and 21, there is no need to lift pins or otherwise alter any of the above EPROMs. For 2716 and 2732 variants, I recommend duplicating the 1 KB data so it replicates at each 1 KB so that you don’t have to worry about grounding the extra address lines or any interference. For convenience, the ZIP file above includes 2708, 2716 and 2732-formatted binary files.

Programming to an original 2708 will require a special EPROM programmer or adapter, due to its unusual voltages. For this reason and the general obscurity of 2708 chips, I would advise to simply program to 2716 chips as described above. If you do want a modern programmer for reading and writing 2704, 2708, TMS2716, MCM68764 and MCM6877 EPROMs, there is an excellent Arduino-based solution by Matt Millman that I followed as part of my early 2708 exploration in this CyberVision project. It is a handy piece of equipment for various vintage dumping and recovery efforts.

ROM DISASSEMBLY

A month-long effort of disassembling the original corrupted ROM was carried out by the COSMAC ELF 1802 group, with Marcel van Tongeren, Nobuyoshi and Herb Johnson taking on the brunt of the work as a collaborative session. Following the acquisition of Josh’s clean ROM, we were able to do a final comparison of the 24 deviating bytes to arrive at the final disassembly. I have made some additional annotations. This disassembly can be compiled into a byte-compatible ROM using Herb’s A18 cross-assembler, using a syntax such as:

A18 “cybervision2001.asm” -b “cybervision.bin”

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; CyberVision 2001 ROM Disassembly
; Original ROM by John Powers / ARI, '77
;
; March 27, 2023 - REV 1.0
;
; ROM Sources and Credits:
;       Josh Denty
;       The Bleep Museum
;       Matt Pilz
;
; Disassembly and 1802 Experts:
;       Marcel van Tongeren
;         https://www.emma02.hobby-site.com/
;       Herb Johnson
;         https://retrotechnology.com/
;       Nobuyoshi
;
; Assemble using Herb Johnson's A18 Cross-Assembler
; https://www.retrotechnology.com/memship/a18.html
;
; CyberVision Information Center
; https://CyberVision.MattPilz.com
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Origin set to 08000H, EOF = 083FFH
        ORG  08000H

; CPU Type:
        CPU 1802

; Labels:
R8000    EQU 8000H
R8010    EQU 8010H
R805A    EQU 805AH
R8062    EQU 8062H
R806D    EQU 806DH
R808E    EQU 808EH
R8090    EQU 8090H
R809D    EQU 809DH
J80A0    EQU 80A0H
R80B0    EQU 80B0H
R80B8    EQU 80B8H
R80BC    EQU 80BCH
R80CF    EQU 80CFH
S80D0    EQU 80D0H
R80E5    EQU 80E5H
J80F9    EQU 80F9H
R8104    EQU 8104H
R8112    EQU 8112H
R811C    EQU 811CH
R8129    EQU 8129H
R812B    EQU 812BH
R8130    EQU 8130H
S8131    EQU 8131H
R8137    EQU 8137H
R814C    EQU 814CH
R8153    EQU 8153H
R8159    EQU 8159H
R8168    EQU 8168H
R8184    EQU 8184H
R8190    EQU 8190H
R819A    EQU 819AH
R81AA    EQU 81AAH
R81B1    EQU 81B1H
R81B4    EQU 81B4H
R81B7    EQU 81B7H
R81B9    EQU 81B9H
J83F2    EQU 83F2H

; Character Table:
CHR_0    EQU 8250H
CHR_1    EQU 8259H
CHR_2    EQU 8262H
CHR_3    EQU 826BH
CHR_4    EQU 8274H
CHR_5    EQU 827DH
CHR_6    EQU 8286H
CHR_7    EQU 828FH
CHR_8    EQU 8298H
CHR_9    EQU 82A1H
CHR_A    EQU 82AAH
CHR_B    EQU 82B3H
CHR_C    EQU 82BCH
CHR_D    EQU 82C5H
CHR_E    EQU 82CEH
CHR_F    EQU 82D7H
CHR_G    EQU 82E0H
CHR_H    EQU 82E9H
CHR_I    EQU 82F2H
CHR_J    EQU 82FBH
CHR_K    EQU 8304H
CHR_L    EQU 830DH
CHR_M    EQU 8316H
CHR_N    EQU 831FH
CHR_O    EQU 8328H
CHR_P    EQU 8331H
CHR_Q    EQU 833AH
CHR_R    EQU 8343H
CHR_S    EQU 834CH
CHR_T    EQU 8355H
CHR_U    EQU 835EH
CHR_V    EQU 8367H
CHR_W    EQU 8370H
CHR_X    EQU 8379H
CHR_Y    EQU 8382H
CHR_Z    EQU 838BH
CHR_QUE  EQU 8394H
CHR_EXP  EQU 839DH
CHR_PER  EQU 83A6H
CHR_SPC  EQU 83AFH

; Unused or indirect labels:
; S802E
; S8047
; S8063
; S8080
; S8088
; S8091
; S80A1
; S80A4
; S80A7
; S80AA
; S80AD
; S80B1
; S812A
; S8155
; R819E
; R81D4
; S83F6
; S83FD

; Out of range branches or addresses:
; 07FDH referenced from 80F1H

; Register Definitions:
R0        EQU 0
R1        EQU 1
R2        EQU 2
R3        EQU 3
R4        EQU 4
R5        EQU 5
R6        EQU 6
R7        EQU 7
R8        EQU 8
R9        EQU 9
RA        EQU 10
RB        EQU 11
RC        EQU 12
RD        EQU 13
RE        EQU 14
RF        EQU 15

; Start code segment
R8000
        LDI  80H                 ;8000: F8 80       
        PHI  R0                  ;8002: B0     Bootstrap to 0x8000
        SHL                      ;8003: FE          
        PLO  RC                  ;8004: AC     RC.0 = 0 used to set D to 0 with one byte instruction
        LDI  0FFH                ;8005: F8 FF       
        PLO  RF                  ;8007: AF          
        LDI  07H                 ;8008: F8 07       
        PHI  RF                  ;800A: BF     RF = 0x7FF end RAM and used as stack pointed
        LDI  05H                 ;800B: F8 05       
        PHI  RB                  ;800D: BB          
        GLO  RC                  ;800E: 8C          
        PLO  RB                  ;800F: AB     RB = 0x5 used as start address in RAM     
R8010		
        LDI  81H                 ;8010: F8 81       
        PHI  R1                  ;8012: B1          
        LDI  31H                 ;8013: F8 31       
        PLO  R1                  ;8015: A1     R1 = 0x8131 - clear screen routine
        LDI  83H                 ;8016: F8 83       
        PHI  R3                  ;8018: B3          
        LDI  0B9H                ;8019: F8 B9       
        PLO  R3                  ;801B: A3     R3 = 0x83B9 M(R3) = 0 used to 'clear' screen bits
        LDI  08H                 ;801C: F8 08       
        PHI  R4                  ;801E: B4          
        GLO  RC                  ;801F: 8C          
        PLO  R4                  ;8020: A4     R4 = 0x800 pointer to VRAM
        LDI  83H                 ;8021: F8 83       
        PHI  R5                  ;8023: B5          
        LDI  0BCH                ;8024: F8 BC       
        PLO  R5                  ;8026: A5     R5 = 0x83BC M(R5) = 0xC0 to set screen bits b6/b7
        LDI  40H                 ;8027: F8 40       
        PHI  R9                  ;8029: B9     R9.1 = 0x40, 64 (63 used) bytes per 3 screen lines
        LDI  20H                 ;802A: F8 20       
        PLO  R9                  ;802C: A9     R9.0 = 0x20, 32 * 3 lines = 96 lines
        SEP  R1                  ;802D: D1     CALL clear screen
S802E
        LDI  81H                 ;802E: F8 81       
        PHI  R1                  ;8030: B1          
        LDI  55H                 ;8031: F8 55       
        PLO  R1                  ;8033: A1     R1 = 0x8155 - screen output routine
        LDI  83H                 ;8034: F8 83       
        PHI  R5                  ;8036: B5          
        LDI  0BCH                ;8037: F8 BC       
        PLO  R5                  ;8039: A5     R5 = 0x83BC M(R5) = 0xC0 to set screen bits b6/b7
        LDI  0BH                 ;803A: F8 0B       
        PHI  R4                  ;803C: B4          
        LDI  0CAH                ;803D: F8 CA       
        PLO  R4                  ;803F: A4     R4 = 0x0BCA pointer to VRAM
        LDI  83H                 ;8040: F8 83       
        PHI  R6                  ;8042: B6          
        LDI  0C1H                ;8043: F8 C1       
        PLO  R6                  ;8045: A6     R6 = 0x83C1 pointer to text string CYBERVISION
        SEP  R1                  ;8046: D1     CALL screen output routine
S8047
        LDI  80H                 ;8047: F8 80       
        PHI  R8                  ;8049: B8          
        LDI  0D0H                ;804A: F8 D0       
        PLO  R8                  ;804C: A8     R8 = 0x80D0 - tape input routine
        SEX  RD                  ;804D: ED     Set RD as stack pointed, used to store tape input
        SEQ                      ;804E: 7B     Q=1 / start tape motor
        BR   R805A               ;804F: 30 5A  goto 0x805A
        NOP                      ;8051: C4          
        NOP                      ;8052: C4          
        NOP                      ;8053: C4          
        NOP                      ;8054: C4          
        NOP                      ;8055: C4          
        NOP                      ;8056: C4          
        NOP                      ;8057: C4          
        NOP                      ;8058: C4          
        NOP                      ;8059: C4          
R805A
        GLO  RC                  ;805A: 8C          
        PLO  RA                  ;805B: AA     RA.0 = 0, received byte counter
        LDI  07H                 ;805C: F8 07       
        PHI  RD                  ;805E: BD          
        LDI  0FFH                ;805F: F8 FF       
        PLO  RD                  ;8061: AD     RD = 0x7FF, stack pointer used to store tape input
R8062
        SEP  R8                  ;8062: D8     CALL get byte from tape
S8063
        LDI  0A5H                ;8063: F8 A5       
        XOR                      ;8065: F3          
        BZ   R8090               ;8066: 32 90  IF first byte = 0xA5, tape is ok goto 0x8090
        GLO  RA                  ;8068: 8A     First byte != 0xA5 potential tape error
        XRI  0FFH                ;8069: FB FF       
        BNZ  R8062               ;806B: 3A 62  Goto 8062 to load next byte if <255 received
R806D
        LDI  0BH                 ;806D: F8 0B  If RA.0 = 255 we have received 255 bytes != 0xA5
        PHI  R4                  ;806F: B4     meaning tape error...
        LDI  0CAH                ;8070: F8 CA       
        PLO  R4                  ;8072: A4     R4 = 0x0BCA pointer to VRAM
        LDI  83H                 ;8073: F8 83       
        PHI  R6                  ;8075: B6          
        LDI  0E2H                ;8076: F8 E2       
        PLO  R6                  ;8078: A6     R6 = 0x83E2 pointer to text string CHECK THE TAPE
        LDI  81H                 ;8079: F8 81       
        PHI  R1                  ;807B: B1          
        LDI  55H                 ;807C: F8 55       
        PLO  R1                  ;807E: A1     R1 = 0x8155 - screen output routine
        SEP  R1                  ;807F: D1     CALL screen output routine
S8080
        NOP                      ;8080: C4          
        LDI  81H                 ;8081: F8 81       
        PHI  R1                  ;8083: B1          
        LDI  2AH                 ;8084: F8 2A       
        PLO  R1                  ;8086: A1     R1 = 0x812A - keypad input routine
        SEP  R1                  ;8087: D1     CALL to keypad input routine
S8088
        BR   R8010               ;8088: 30 10  Key pressed restart to try and reload
        NOP                      ;808A: C4          
        NOP                      ;808B: C4          
        NOP                      ;808C: C4          
        NOP                      ;808D: C4          
R808E
        GLO  RC                  ;808E: 8C          
        PLO  RA                  ;808F: AA     RA.0 = 0, received byte counter
R8090
        SEP  R8                  ;8090: D8     Tape ok - second byte via CALL get byte from tape
S8091
        LDI  0A5H                ;8091: F8 A5       
        XOR                      ;8093: F3          
        BZ   R809D               ;8094: 32 9D  If second byte = 0xA5 goto 0x809D and then 0x83F2
        GLO  RA                  ;8096: 8A     Second byte != 0xA5 potential tape error
        XRI  0FFH                ;8097: FB FF       
        BNZ  R8062               ;8099: 3A 62  Goto 8062 to load next byte if <255 received
        BR   R806D               ;809B: 30 6D  If RA.0 = 255 we have received 255 bytes != 0xA5
R809D
        LBR  J83F2               ;809D: C0 83 F2    
J80A0
        SEP  R8                  ;80A0: D8          
S80A1
        LDX                      ;80A1: F0          
        PHI  R6                  ;80A2: B6          
        SEP  R8                  ;80A3: D8          
S80A4
        LDX                      ;80A4: F0          
        PLO  R6                  ;80A5: A6          
        SEP  R8                  ;80A6: D8     R6 = byte 4/5 - start location in RAM
S80A7
        LDX                      ;80A7: F0          
        PHI  R7                  ;80A8: B7          
        SEP  R8                  ;80A9: D8          
S80AA
        LDX                      ;80AA: F0          
        PLO  R7                  ;80AB: A7          
        SEP  R8                  ;80AC: D8     R7 = byte 6/7 - end location in RAM
S80AD
        LDX                      ;80AD: F0          
        PLO  RE                  ;80AE: AE     RE.0 = byte 8 - nonzero if more is to be loaded.
        SEX  R6                  ;80AF: E6     Set R6 as stack pointer to start loading
R80B0
        SEP  R8                  ;80B0: D8     CALL get byte from tape
S80B1
        GHI  R7                  ;80B1: 97          
        STR  RF                  ;80B2: 5F          
        GHI  R6                  ;80B3: 96          
        SEX  RF                  ;80B4: EF          
        XOR                      ;80B5: F3     Compare high byte load location (R6) with end (R7)
        BZ   R80BC               ;80B6: 32 BC  If equal check low byte on 0x80BC
R80B8
        SEX  R6                  ;80B8: E6     Not ready so stack back to R6 and load next byte
        IRX                      ;80B9: 60     R6++
        BR   R80B0               ;80BA: 30 B0       
R80BC
        GLO  R7                  ;80BC: 87          
        STR  RF                  ;80BD: 5F          
        GLO  R6                  ;80BE: 86          
        XOR                      ;80BF: F3     Compare low byte load location (R6) with end (R7)
        BNZ  R80B8               ;80C0: 3A B8  If not equal continue loading next byte
        SEX  RD                  ;80C2: ED     First program loaded, set RD as stack pointer
        GLO  RE                  ;80C3: 8E          
        BNZ  R808E               ;80C4: 3A 8E  Load next program if RE.1 / byte 8 was not 0?
        REQ                      ;80C6: 7A     Done, Q=0 / stop tape motor
        BR   R80E5               ;80C7: 30 E5  Goto 80E5
        DB   0C4H                ;80C9: C4
        DB   14H                 ;80CA: 14
        DB   36H                 ;80CB: 36
        DB   24H                 ;80CC: 24
        DB   88H                 ;80CD: 88
        DB   0C4H                ;80CE: C4
R80CF
        SEP  R0                  ;80CF: D0          
S80D0
        BN2  S80D0               ;80D0: 3D D0  Wait until tape data is available EF2
        INP  2                   ;80D2: 6A     Store tape byte on stack
        INC  RA                  ;80D3: 1A     Increase received byte counter
        BR   R80CF               ;80D4: 30 CF  Return
        DB   88H                 ;80D6: 88
        DB   88H                 ;80D7: 88
        DB   88H                 ;80D8: 88
        DB   88H                 ;80D9: 88
        DB   88H                 ;80DA: 88
        DB   88H                 ;80DB: 88
        DB   88H                 ;80DC: 88
        DB   88H                 ;80DD: 88
        DB   88H                 ;80DE: 88
        DB   88H                 ;80DF: 88
        DB   88H                 ;80E0: 88
        DB   88H                 ;80E1: 88
        DB   88H                 ;80E2: 88
        DB   88H                 ;80E3: 88
        NOP                      ;80E4: C4          
R80E5
        SEX  RF                  ;80E5: EF     RF stack pointer (0x7FF)
        GLO  RB                  ;80E6: 8B          
        STXD                     ;80E7: 73          
        GHI  RB                  ;80E8: 9B          
        STXD                     ;80E9: 73          
        LDI  0C0H                ;80EA: F8 C0       
        STXD                     ;80EC: 73     Stack 0x7FD: C0 00 05 to branch to RAM start address
        LDI  0FFH                ;80ED: F8 FF       
        PLO  RF                  ;80EF: AF     Stack back to 0x7FF
        SEX  RD                  ;80F0: ED     RD stack pointer and goto 0x7FD and then 0x5
        LBR  07FDH               ;80F1: C0 07 FD    
        LDI  6DH                 ;80F4: F8 6D       
        PLO  R0                  ;80F6: A0     R0.0 = 0x6D, i.e. goto 806D return from RAM routine?
        SEP  R0                  ;80F7: D0     Not used?
        NOP                      ;80F8: C4       
		
; subroutine 80FA: return the character code for the key code in M(RX)
; R6.1 = (keycode & 0x80) ? 1 : 0
; M(RF) = character code(0x00 -- 0x27), 0x28 if no match
; R6.0 = 2 * M(RF)
; D, R6, RE destroyed
; return with X=0xD
J80F9
        SEP  R0                  ;80F9: D0          
        LDX                      ;80FA: F0          
        SHL                      ;80FB: FE          
        GLO  RC                  ;80FC: 8C          
        NOP                      ;80FD: C4          
        NOP                      ;80FE: C4          
        NOP                      ;80FF: C4          
        BNF  R8104               ;8100: 3B 04       
        ADI  01H                 ;8102: FC 01       
R8104
        PHI  R6                  ;8104: B6          
        LDX                      ;8105: F0          
        SHL                      ;8106: FE          
        ADI  00H                 ;8107: FC 00       
        SHR                      ;8109: F6          
        PLO  R6                  ;810A: A6          
        LDI  81H                 ;810B: F8 81       
        PHI  RE                  ;810D: BE          
        LDI  0D4H                ;810E: F8 D4       
        PLO  RE                  ;8110: AE          
        SEX  RE                  ;8111: EE          
R8112
        GLO  R6                  ;8112: 86          
        XOR                      ;8113: F3          
        BZ   R811C               ;8114: 32 1C       
        IRX                      ;8116: 60          
        GLO  RE                  ;8117: 8E          
        XRI  0FCH                ;8118: FB FC       
        BNZ  R8112               ;811A: 3A 12       
R811C
        SEX  RF                  ;811C: EF          
        GLO  RE                  ;811D: 8E          
        SMI  0D4H                ;811E: FF D4       
        STR  RF                  ;8120: 5F          
        ADD                      ;8121: F4          
        PLO  R6                  ;8122: A6          
        SEX  RD                  ;8123: ED          
        LBR  J80F9               ;8124: C0 80 F9    
        NOP                      ;8127: C4          
        NOP                      ;8128: C4          
R8129
        SEP  R0                  ;8129: D0          
S812A
        INP  1                   ;812A: 69          
R812B
        BN3  R812B               ;812B: 3E 2B       
        INP  1                   ;812D: 69          
        BR   R8129               ;812E: 30 29       
R8130
        SEP  R0                  ;8130: D0          
S8131
        GLO  R4                  ;8131: 84          
        PLO  R8                  ;8132: A8          
        GHI  R4                  ;8133: 94          
        PHI  R8                  ;8134: B8          
        GHI  R9                  ;8135: 99          
        PLO  RA                  ;8136: AA          
R8137
        LDN  R8                  ;8137: 08          
        SEX  R3                  ;8138: E3          
        AND                      ;8139: F2          
        SEX  R5                  ;813A: E5          
        OR                       ;813B: F1          
        STR  R8                  ;813C: 58          
        INC  R8                  ;813D: 18          
        DEC  RA                  ;813E: 2A          
        GLO  RA                  ;813F: 8A          
        BNZ  R8137               ;8140: 3A 37       
        GLO  R4                  ;8142: 84          
        ADI  40H                 ;8143: FC 40       
        PLO  R4                  ;8145: A4          
        BNF  R814C               ;8146: 3B 4C       
        GHI  R4                  ;8148: 94          
        ADI  01H                 ;8149: FC 01       
        PHI  R4                  ;814B: B4          
R814C
        DEC  R9                  ;814C: 29          
        GLO  R9                  ;814D: 89          
        BNZ  S8131               ;814E: 3A 31       
        SEX  RD                  ;8150: ED          
        BR   R8130               ;8151: 30 30       
R8153
        INC  R6                  ;8153: 16          
        SEP  R0                  ;8154: D0          
S8155
        GLO  R4                  ;8155: 84          
        PLO  RE                  ;8156: AE          
        GHI  R4                  ;8157: 94          
        PHI  RE                  ;8158: BE          
R8159
        LDN  R6                  ;8159: 06          
        SHLC                     ;815A: 7E          
        BDF  R8153               ;815B: 33 53       
        LDA  R6                  ;815D: 46          
        PLO  R7                  ;815E: A7          
        LDI  82H                 ;815F: F8 82       
        PHI  R7                  ;8161: B7          
        LDA  R7                  ;8162: 47          
        PHI  R8                  ;8163: B8          
        LDN  R7                  ;8164: 07          
        PLO  R8                  ;8165: A8          
        GLO  RC                  ;8166: 8C          
        PLO  RA                  ;8167: AA          
R8168
        SEX  R5                  ;8168: E5          
        LDA  R8                  ;8169: 48          
        OR                       ;816A: F1          
        STR  R4                  ;816B: 54          
        INC  R4                  ;816C: 14          
        LDA  R8                  ;816D: 48          
        OR                       ;816E: F1          
        STR  R4                  ;816F: 54          
        INC  R4                  ;8170: 14          
        LDA  R8                  ;8171: 48          
        OR                       ;8172: F1          
        STR  R4                  ;8173: 54          
        SEX  RD                  ;8174: ED          
        INC  RA                  ;8175: 1A          
        GLO  RA                  ;8176: 8A          
        XRI  03H                 ;8177: FB 03       
        BNZ  R8184               ;8179: 3A 84       
        GLO  RE                  ;817B: 8E          
        ADI  03H                 ;817C: FC 03       
        PLO  RE                  ;817E: AE          
        PLO  R4                  ;817F: A4          
        GHI  RE                  ;8180: 9E          
        PHI  R4                  ;8181: B4          
        BR   R8159               ;8182: 30 59       
R8184
        GLO  R4                  ;8184: 84          
        ADI  3EH                 ;8185: FC 3E       
        PLO  R4                  ;8187: A4          
        BNF  R8168               ;8188: 3B 68       
        GHI  R4                  ;818A: 94          
        ADI  01H                 ;818B: FC 01       
        PHI  R4                  ;818D: B4          
        BR   R8168               ;818E: 30 68       
		
; subroutine 8191: 
; R4 = 0800H + (R9.1 - 1) * 40H + (R9.0 - 1)
;   (calculate VRAM address)
; D, RE destroyed (RE.1 preserved if R9.1 > 0)
R8190
        SEP  R0                  ;8190: D0          
        LDI  08H                 ;8191: F8 08       
        PHI  R4                  ;8193: B4          
        GHI  R9                  ;8194: 99          
        PLO  R4                  ;8195: A4          
        DEC  R4                  ;8196: 24          
        NOP                      ;8197: C4          
        GLO  R9                  ;8198: 89          
        PLO  RE                  ;8199: AE          
R819A
        DEC  RE                  ;819A: 2E          
        GLO  RE                  ;819B: 8E          
        BZ   R8190               ;819C: 32 90       
R819E
        GLO  R4                  ;819E: 84          
        ADI  40H                 ;819F: FC 40       
        PLO  R4                  ;81A1: A4          
        BNF  R819A               ;81A2: 3B 9A       
        GHI  R4                  ;81A4: 94          
        ADI  01H                 ;81A5: FC 01       
        PHI  R4                  ;81A7: B4          
        BR   R819A               ;81A8: 30 9A       
		
; subroutine 81AB
; wait x seconds (assuming 2.52MHz) where 
;    x  = (RC.1 == 0) ? 1 : RC.1
; (about x*313446 clock cycles)
; D, RC.1, RE destroyed
R81AA
        SEP  R0                  ;81AA: D0          
        GHI  RC                  ;81AB: 9C          
        BNZ  R81B1               ;81AC: 3A B1       
        LDI  01H                 ;81AE: F8 01       
        PHI  RC                  ;81B0: BC          
R81B1
        LDI  0BFH                ;81B1: F8 BF       
        PHI  RE                  ;81B3: BE          
R81B4
        LDI  0BFH                ;81B4: F8 BF       
        PLO  RE                  ;81B6: AE          
R81B7
        LDI  0F0H                ;81B7: F8 F0       
R81B9
        ADI  01H                 ;81B9: FC 01       
        BNZ  R81B9               ;81BB: 3A B9       
        GLO  RE                  ;81BD: 8E          
        ADI  01H                 ;81BE: FC 01       
        PLO  RE                  ;81C0: AE          
        BNZ  R81B7               ;81C1: 3A B7       
        GHI  RE                  ;81C3: 9E          
        ADI  01H                 ;81C4: FC 01       
        PHI  RE                  ;81C6: BE          
        BNZ  R81B4               ;81C7: 3A B4       
        GHI  RC                  ;81C9: 9C          
        SMI  01H                 ;81CA: FF 01       
        PHI  RC                  ;81CC: BC          
        GHI  RC                  ;81CD: 9C          
        BZ   R81AA               ;81CE: 32 AA       
        BR   R81B1               ;81D0: 30 B1       
        NOP                      ;81D2: C4          
        NOP                      ;81D3: C4      
		
; table: character code to keycode
R81D4
        DB   17H, 0EH, 16H, 26H, 0DH, 15H, 25H, 0CH, 14H, 24H   ; 0 to 9
        DB   08H, 10H, 20H, 40H, 00H, 09H, 11H, 21H, 41H, 01H   ; A to J
        DB   0AH, 12H, 22H, 42H, 02H, 0BH, 13H, 23H, 43H, 03H   ; K to T
        DB   44H, 04H, 45H, 05H, 46H, 06H                       ; U to Z
        DB   0FH, 07H, 27H, 47H                                 ; ON, ENT, OFF, CLR

        DB   00H                 ;81FC: 00
        DB   00H                 ;81FD: 00
        DB   00H                 ;81FE: 00
        DB   48H                 ;81FF: 48

;table at 8200 based on Nobuyoshi char info

        DW	CHR_0		;8200-82 50 * 0
        DW	CHR_1		;8202-82 59 * 1
        DW	CHR_2		;8204-82 62 * 2
        DW	CHR_3		;8206-82 6B * 3
        DW	CHR_4		;8208-82 74 * 4
        DW	CHR_5		;820A-82 7D * 5
        DW	CHR_6		;820C-82 86 * 6
        DW	CHR_7		;820E-82 8F * 7
        DW	CHR_8		;8210-82 98 * 8
        DW	CHR_9		;8212-82 A1 * 9
        DW	CHR_A		;8214-82 AA * A
        DW	CHR_B		;8216-82 B3 * B
        DW	CHR_C		;8218-82 BC * C
        DW	CHR_D		;821A-82 C5 * D
        DW	CHR_E		;821C-82 CE * E
        DW	CHR_F		;821E-82 D7 * F
        DW	CHR_G		;8220-82 E0 * G
        DW	CHR_H		;8222-82 E9 * H
        DW	CHR_I		;8224-82 F2 * I
        DW	CHR_J		;8226-82 FB * J
        DW	CHR_K		;8228-83 04 * K
        DW	CHR_L		;822A-83 0D * L
        DW	CHR_M		;822C-83 16 * M
        DW	CHR_N		;822E-83 1F * N
        DW	CHR_O		;8230-83 28 * O
        DW	CHR_P		;8232-83 31 * P
        DW	CHR_Q		;8234-83 3A * Q
        DW	CHR_R		;8236-83 43 * R
        DW	CHR_S		;8238-83 4C * S
        DW	CHR_T		;823A-83 55 * T
        DW	CHR_U		;823C-83 5E * U
        DW	CHR_V		;823E-83 67 * V
        DW	CHR_W		;8240-83 70 * W
        DW	CHR_X		;8242-83 79 * X
        DW	CHR_Y		;8244-83 82 * Y
        DW	CHR_Z		;8246-83 8B * Z
        DW	CHR_QUE		;8248-83 94 * ?
        DW	CHR_EXP		;824A-83 9D * !
        DW	CHR_PER		;824C-83 A6 * . period
        DW	CHR_SPC	    ;824E-83 AF * space
	
;end of table, start of char bit-values
; nine bytes, each byte contributes first SIX lower bits. 
; numbers 0-9, letters A-Z, punctuation, space.

        DB   09H                 ;8250: 09 ;0
        DB   0CH                 ;8251: 0C
        DB   01H                 ;8252: 01
        DB   15H                 ;8253: 15
        DB   00H                 ;8254: 00
        DB   15H                 ;8255: 15
        DB   18H                 ;8256: 18
        DB   0CH                 ;8257: 0C
        DB   10H                 ;8258: 10

        DB   02H                 ;8259: 02 ;1 
        DB   05H                 ;825A: 05   
        DB   00H                 ;825B: 00   
        DB   00H                 ;825C: 00   
        DB   15H                 ;825D: 15   
        DB   00H                 ;825E: 00   
        DB   08H                 ;825F: 08   
        DB   1CH                 ;8260: 1C   
        DB   00H                 ;8261: 00   

        DB   09H                 ;8262: 09 ;2  
        DB   0CH                 ;8263: 0C   
        DB   01H                 ;8264: 01   
        DB   09H                 ;8265: 09   
        DB   0CH                 ;8266: 0C
        DB   10H                 ;8267: 10
        DB   1CH                 ;8268: 1C
        DB   0CH                 ;8269: 0C
        DB   04H                 ;826A: 04

        DB   09H                 ;826B: 09 ;3
        DB   0CH                 ;826C: 0C
        DB   01H                 ;826D: 01
        DB   08H                 ;826E: 08
        DB   0CH                 ;826F: 0C
        DB   11H                 ;8270: 11
        DB   18H                 ;8271: 18
        DB   0CH                 ;8272: 0C
        DB   10H                 ;8273: 10

        DB   05H                 ;8274: 05 ;4
        DB   00H                 ;8275: 00
        DB   05H                 ;8276: 05
        DB   1CH                 ;8277: 1C
        DB   0CH                 ;8278: 0C
        DB   15H                 ;8279: 15
        DB   00H                 ;827A: 00
        DB   00H                 ;827B: 00
        DB   14H                 ;827C: 14

        DB   0DH                 ;827D: 0D ;5
        DB   0CH                 ;827E: 0C
        DB   04H                 ;827F: 04
        DB   1CH                 ;8280: 1C
        DB   0CH                 ;8281: 0C
        DB   01H                 ;8282: 01
        DB   18H                 ;8283: 18
        DB   0CH                 ;8284: 0C
        DB   10H                 ;8285: 10

        DB   09H                 ;8286: 09 ;6
        DB   0CH                 ;8287: 0C
        DB   01H                 ;8288: 01
        DB   17H                 ;8289: 17
        DB   0CH                 ;828A: 0C
        DB   01H                 ;828B: 01
        DB   18H                 ;828C: 18
        DB   0CH                 ;828D: 0C
        DB   10H                 ;828E: 10

        DB   0CH                 ;828F: 0C ;7
        DB   0CH                 ;8290: 0C
        DB   05H                 ;8291: 05
        DB   00H                 ;8292: 00
        DB   25H                 ;8293: 25
        DB   00H                 ;8294: 00
        DB   00H                 ;8295: 00
        DB   14H                 ;8296: 14
        DB   00H                 ;8297: 00

        DB   09H                 ;8298: 09 ;8
        DB   0CH                 ;8299: 0C
        DB   01H                 ;829A: 01
        DB   19H                 ;829B: 19
        DB   0CH                 ;829C: 0C
        DB   11H                 ;829D: 11
        DB   18H                 ;829E: 18
        DB   0CH                 ;829F: 0C
        DB   10H                 ;82A0: 10

        DB   09H                 ;82A1: 09 ;9
        DB   0CH                 ;82A2: 0C
        DB   01H                 ;82A3: 01
        DB   18H                 ;82A4: 18
        DB   0CH                 ;82A5: 0C
        DB   15H                 ;82A6: 15
        DB   18H                 ;82A7: 18
        DB   0CH                 ;82A8: 0C
        DB   10H                 ;82A9: 10
                                            
        DB   09H                 ;82AA: 09 ;A  
        DB   0CH                 ;82AB: 0C   
        DB   01H                 ;82AC: 01   
        DB   1DH                 ;82AD: 1D   
        DB   0CH                 ;82AE: 0C   
        DB   15H                 ;82AF: 15   
        DB   14H                 ;82B0: 14   
        DB   00H                 ;82B1: 00   
        DB   14H                 ;82B2: 14   
                                            
        DB   0DH                 ;82B3: 0D ;B  
        DB   0CH                 ;82B4: 0C   
        DB   01H                 ;82B5: 01   
        DB   1DH                 ;82B6: 1D   
        DB   0CH                 ;82B7: 0C   
        DB   11H                 ;82B8: 11   
        DB   1CH                 ;82B9: 1C   
        DB   0CH                 ;82BA: 0C   
        DB   10H                 ;82BB: 10   

        DB   09H                 ;82BC: 09 ;C
        DB   0CH                 ;82BD: 0C
        DB   01H                 ;82BE: 01
        DB   15H                 ;82BF: 15
        DB   00H                 ;82C0: 00
        DB   00H                 ;82C1: 00
        DB   18H                 ;82C2: 18
        DB   0CH                 ;82C3: 0C
        DB   10H                 ;82C4: 10

        DB   0DH                 ;82C5: 0D ;D
        DB   06H                 ;82C6: 06
        DB   00H                 ;82C7: 00
        DB   15H                 ;82C8: 15
        DB   00H                 ;82C9: 00
        DB   15H                 ;82CA: 15
        DB   1CH                 ;82CB: 1C
        DB   24H                 ;82CC: 24
        DB   00H                 ;82CD: 00

        DB   0DH                 ;82CE: 0D ;E
        DB   0CH                 ;82CF: 0C
        DB   04H                 ;82D0: 04
        DB   1DH                 ;82D1: 1D
        DB   0CH                 ;82D2: 0C
        DB   00H                 ;82D3: 00
        DB   1CH                 ;82D4: 1C
        DB   0CH                 ;82D5: 0C
        DB   04H                 ;82D6: 04

        DB   0DH                 ;82D7: 0D ;F
        DB   0CH                 ;82D8: 0C
        DB   04H                 ;82D9: 04
        DB   1DH                 ;82DA: 1D
        DB   0CH                 ;82DB: 0C
        DB   00H                 ;82DC: 00
        DB   14H                 ;82DD: 14
        DB   00H                 ;82DE: 00
        DB   00H                 ;82DF: 00

        DB   09H                 ;82E0: 09 ;G
        DB   0CH                 ;82E1: 0C
        DB   01H                 ;82E2: 01
        DB   15H                 ;82E3: 15
        DB   08H                 ;82E4: 08
        DB   05H                 ;82E5: 05
        DB   18H                 ;82E6: 18
        DB   0CH                 ;82E7: 0C
        DB   10H                 ;82E8: 10

        DB   05H                 ;82E9: 05 ;H
        DB   00H                 ;82EA: 00
        DB   05H                 ;82EB: 05
        DB   1DH                 ;82EC: 1D
        DB   0CH                 ;82ED: 0C
        DB   15H                 ;82EE: 15
        DB   14H                 ;82EF: 14
        DB   00H                 ;82F0: 00
        DB   14H                 ;82F1: 14
                                            
        DB   08H                 ;82F2: 08 ;J  
        DB   0DH                 ;82F3: 0D   
        DB   00H                 ;82F4: 00   
        DB   00H                 ;82F5: 00   
        DB   15H                 ;82F6: 15   
        DB   00H                 ;82F7: 00   
        DB   08H                 ;82F8: 08   
        DB   1CH                 ;82F9: 1C   
        DB   00H                 ;82FA: 00   

        DB   00H                 ;82FB: 00 ;J
        DB   0EH                 ;82FC: 0E
        DB   04H                 ;82FD: 04
        DB   01H                 ;82FE: 01
        DB   2AH                 ;82FF: 2A
        DB   00H                 ;8300: 00
        DB   18H                 ;8301: 18
        DB   24H                 ;8302: 24
        DB   00H                 ;8303: 00

        DB   05H                 ;8304: 05 ;K
        DB   02H                 ;8305: 02
        DB   04H                 ;8306: 04
        DB   1DH                 ;8307: 1D
        DB   11H                 ;8308: 11
        DB   00H                 ;8309: 00
        DB   14H                 ;830A: 14
        DB   20H                 ;830B: 20
        DB   04H                 ;830C: 04

        DB   05H                 ;830D: 05 ;L
        DB   00H                 ;830E: 00
        DB   00H                 ;830F: 00
        DB   15H                 ;8310: 15
        DB   00H                 ;8311: 00
        DB   00H                 ;8312: 00
        DB   1CH                 ;8313: 1C
        DB   0CH                 ;8314: 0C
        DB   04H                 ;8315: 04

        DB   07H                 ;8316: 07 ;M
        DB   02H                 ;8317: 02
        DB   05H                 ;8318: 05
        DB   15H                 ;8319: 15
        DB   10H                 ;831A: 10
        DB   15H                 ;831B: 15
        DB   14H                 ;831C: 14
        DB   00H                 ;831D: 00
        DB   14H                 ;831E: 14

        DB   07H                 ;831F: 07 ;N
        DB   00H                 ;8320: 00
        DB   05H                 ;8321: 05
        DB   15H                 ;8322: 15
        DB   18H                 ;8323: 18
        DB   15H                 ;8324: 15
        DB   14H                 ;8325: 14
        DB   00H                 ;8326: 00
        DB   14H                 ;8327: 14

        DB   0DH                 ;8328: 0D ;O
        DB   0CH                 ;8329: 0C
        DB   05H                 ;832A: 05
        DB   15H                 ;832B: 15
        DB   00H                 ;832C: 00
        DB   15H                 ;832D: 15
        DB   1CH                 ;832E: 1C
        DB   0CH                 ;832F: 0C
        DB   14H                 ;8330: 14

        DB   0DH                 ;8331: 0D ;P
        DB   0CH                 ;8332: 0C
        DB   01H                 ;8333: 01
        DB   1DH                 ;8334: 1D
        DB   0CH                 ;8335: 0C
        DB   10H                 ;8336: 10
        DB   14H                 ;8337: 14
        DB   00H                 ;8338: 00
        DB   00H                 ;8339: 00

        DB   0DH                 ;833A: 0D ;Q
        DB   0CH                 ;833B: 0C
        DB   05H                 ;833C: 05
        DB   15H                 ;833D: 15
        DB   00H                 ;833E: 00
        DB   15H                 ;833F: 15
        DB   1CH                 ;8340: 1C
        DB   2CH                 ;8341: 2C
        DB   16H                 ;8342: 16

        DB   0DH                 ;8343: 0D ;R
        DB   0CH                 ;8344: 0C
        DB   01H                 ;8345: 01
        DB   1DH                 ;8346: 1D
        DB   0DH                 ;8347: 0D
        DB   10H                 ;8348: 10
        DB   14H                 ;8349: 14
        DB   20H                 ;834A: 20
        DB   04H                 ;834B: 04

        DB   09H                 ;834C: 09 ;S
        DB   0CH                 ;834D: 0C
        DB   01H                 ;834E: 01
        DB   18H                 ;834F: 18
        DB   0CH                 ;8350: 0C
        DB   01H                 ;8351: 01
        DB   18H                 ;8352: 18
        DB   0CH                 ;8353: 0C
        DB   10H                 ;8354: 10

        DB   0CH                 ;8355: 0C ;T
        DB   0DH                 ;8356: 0D
        DB   04H                 ;8357: 04
        DB   00H                 ;8358: 00
        DB   15H                 ;8359: 15
        DB   00H                 ;835A: 00
        DB   00H                 ;835B: 00
        DB   14H                 ;835C: 14
        DB   00H                 ;835D: 00

        DB   05H                 ;835E: 05 ;U
        DB   00H                 ;835F: 00
        DB   05H                 ;8360: 05
        DB   15H                 ;8361: 15
        DB   00H                 ;8362: 00
        DB   15H                 ;8363: 15
        DB   18H                 ;8364: 18
        DB   0CH                 ;8365: 0C
        DB   10H                 ;8366: 10

        DB   05H                 ;8367: 05 ;V
        DB   00H                 ;8368: 00
        DB   05H                 ;8369: 05
        DB   15H                 ;836A: 15
        DB   00H                 ;836B: 00
        DB   15H                 ;836C: 15
        DB   20H                 ;836D: 20
        DB   24H                 ;836E: 24
        DB   00H                 ;836F: 00

        DB   05H                 ;8370: 05 ;W
        DB   00H                 ;8371: 00
        DB   05H                 ;8372: 05
        DB   15H                 ;8373: 15
        DB   05H                 ;8374: 05
        DB   15H                 ;8375: 15
        DB   1CH                 ;8376: 1C
        DB   1CH                 ;8377: 1C
        DB   14H                 ;8378: 14

        DB   05H                 ;8379: 05 ;X
        DB   00H                 ;837A: 00
        DB   05H                 ;837B: 05
        DB   22H                 ;837C: 22
        DB   26H                 ;837D: 26
        DB   00H                 ;837E: 00
        DB   14H                 ;837F: 14
        DB   00H                 ;8380: 00
        DB   14H                 ;8381: 14

        DB   05H                 ;8382: 05 ;Y
        DB   00H                 ;8383: 00
        DB   05H                 ;8384: 05
        DB   20H                 ;8385: 20
        DB   25H                 ;8386: 25
        DB   00H                 ;8387: 00
        DB   00H                 ;8388: 00
        DB   14H                 ;8389: 14
        DB   00H                 ;838A: 00

        DB   0CH                 ;838B: 0C ;Z 
        DB   0CH                 ;838C: 0C
        DB   05H                 ;838D: 05
        DB   02H                 ;838E: 02
        DB   24H                 ;838F: 24
        DB   00H                 ;8390: 00
        DB   1CH                 ;8391: 1C
        DB   0CH                 ;8392: 0C
        DB   04H                 ;8393: 04

        DB   3DH                 ;8394: 3D ;? (Inverted)
        DB   33H                 ;8395: 33
        DB   3EH                 ;8396: 3E
        DB   3FH                 ;8397: 3F
        DB   32H                 ;8398: 32
        DB   2FH                 ;8399: 2F
        DB   3FH                 ;839A: 3F
        DB   3BH                 ;839B: 3B
        DB   3FH                 ;839C: 3F

        DB   00H                 ;839D: 00 ;!
        DB   05H                 ;839E: 05
        DB   00H                 ;839F: 00
        DB   00H                 ;83A0: 00
        DB   14H                 ;83A1: 14
        DB   00H                 ;83A2: 00
        DB   00H                 ;83A3: 00
        DB   14H                 ;83A4: 14
        DB   00H                 ;83A5: 00

        DB   00H                 ;83A6: 00 ; Period
        DB   00H                 ;83A7: 00
        DB   00H                 ;83A8: 00
        DB   00H                 ;83A9: 00
        DB   00H                 ;83AA: 00
        DB   00H                 ;83AB: 00
        DB   14H                 ;83AC: 14
        DB   00H                 ;83AD: 00
        DB   00H                 ;83AE: 00

        DB   00H                 ;83AF: 00 ; Space
        DB   00H                 ;83B0: 00
        DB   00H                 ;83B1: 00
        DB   00H                 ;83B2: 00
        DB   00H                 ;83B3: 00
        DB   00H                 ;83B4: 00
        DB   00H                 ;83B5: 00
        DB   00H                 ;83B6: 00
        DB   00H                 ;83B7: 00
;end of char bits 

        DB   00H                 ;83B8: 00
        DB   00H                 ;83B9: 00
        DB   40H                 ;83BA: 40
        DB   80H                 ;83BB: 80
        DB   0C0H                ;83BC: C0
        DB   3FH                 ;83BD: 3F
        DB   7FH                 ;83BE: 7F
        DB   0BFH                ;83BF: BF

;message table with help from Matt's screenshots - Marcel

        DB   0FFH                ;83C0: FF
        DB   4EH                 ;83C1: 4E  ;space
        DB   4EH                 ;83C2: 4E  ;space
        DB   18H                 ;83C3: 18  ; C
        DB   44H                 ;83C4: 44  ; Y
        DB   16H                 ;83C5: 16  ; B
        DB   1CH                 ;83C6: 1C  ; E
        DB   36H                 ;83C7: 36  ; R
        DB   3EH                 ;83C8: 3E  ; V
        DB   24H                 ;83C9: 24  ; I
        DB   38H                 ;83CA: 38  ; S
        DB   24H                 ;83CB: 24  ; I
        DB   30H                 ;83CC: 30  ; O
        DB   2EH                 ;83CD: 2E  ; N
        DB   4EH                 ;83CE: 4E  ; space
        DB   4EH                 ;83CF: 4E  ; space

        DB   4EH                 ;83D0: 4E  ; space   
        DB   88H                 ;83D1: 88
        DB   4EH                 ;83D2: 4E  ; space
        DB   38H                 ;83D3: 38  ; S
        DB   3AH                 ;83D4: 3A  ; T
        DB   14H                 ;83D5: 14  ; A
        DB   2EH                 ;83D6: 2E  ; N
        DB   1AH                 ;83D7: 1A  ; D
        DB   4EH                 ;83D8: 4E  ; space
        DB   16H                 ;83D9: 16  ; B
        DB   44H                 ;83DA: 44  ; Y
        DB   4EH                 ;83DB: 4E  ; space
        DB   4CH                 ;83DC: 4C  ; .
        DB   4CH                 ;83DD: 4C  ; .
        DB   4CH                 ;83DE: 4C  ; .
        DB   4EH                 ;83DF: 4E  ; space

        DB   4EH                 ;83E0: 4E  ; space
        DB   88H                 ;83E1: 88
        DB   18H                 ;83E2: 18  ; C
        DB   22H                 ;83E3: 22  ; H
        DB   1CH                 ;83E4: 1C  ; E
        DB   18H                 ;83E5: 18  ; C
        DB   28H                 ;83E6: 28  ; K
        DB   4EH                 ;83E7: 4E  ; space
        DB   3AH                 ;83E8: 3A  ; T
        DB   22H                 ;83E9: 22  ; H
        DB   1CH                 ;83EA: 1C  ; E
        DB   4EH                 ;83EB: 4E  ; space
        DB   3AH                 ;83EC: 3A  ; T
        DB   14H                 ;83ED: 14  ; A
        DB   32H                 ;83EE: 32  ; P
        DB   1CH                 ;83EF: 1C  ; E 
        DB   4CH                 ;83F0: 4C  ; .
        DB   88H                 ;83F1: 88
J83F2
        LDI  0CAH                ;83F2: F8 CA
        PLO  R4                  ;83F4: A4     R4 = 0x0BCA pointer to VRAM
        SEP  R1                  ;83F5: D1     CALL screen output routine to show STAND BY ...
S83F6
        LDI  80H                 ;83F6: F8 80       
        PHI  R8                  ;83F8: B8          
        LDI  0D0H                ;83F9: F8 D0       
        PLO  R8                  ;83FB: A8          
        SEP  R8                  ;83FC: D8     Load third byte and return to 0x80A0
S83FD
        LBR  J80A0               ;83FD: C0 80 A0    
        END

Last Updated on March 28, 2023.

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to Top