DataMuseum.dk

Presents historical artifacts from the history of:

Jet Computer Jet80

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Jet Computer Jet80

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦edf957b0f⟧

    Length: 21248 (0x5300)
    Names: »DES.MAC«

Derivation

└─⟦692ac107c⟧ Bits:30005923 PolyPascal-80 V3.10 arbejdsdiskette 1
    └─ ⟦this⟧ »DES.MAC« 

Hex Dump

0x0000…0020 3b 54 4c 45 09 4e 42 53 2f 44 45 53 20 50 52 4f 47 52 41 4d 0d 0a 3b 2a 2a 2a 2a 2a 2a 2a 2a 2a   ┆;TLE NBS/DES PROGRAM  ;*********┆
0x0020…0040 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ┆********************************┆
0x0040…0060 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 0a 3b 0d 0a 3b 09 44 45 53 2f 4e 42 53 20 45 4e   ┆***************  ;  ; DES/NBS EN┆
0x0060…0080 43 52 59 50 54 4f 4e 20 50 52 4f 47 52 41 4d 20 46 4f 52 20 0d 0a 3b 09 45 55 52 4f 4c 4f 47 20   ┆CRYPTON PROGRAM FOR   ; EUROLOG ┆
0x0080…00a0 45 4d 4c 2f 53 50 43 31 20 53 55 42 50 52 4f 43 45 53 53 4f 52 20 42 4f 41 52 44 0d 0a 3b 0d 0a   ┆EML/SPC1 SUBPROCESSOR BOARD  ;  ┆
0x00a0…00c0 3b 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ┆;*******************************┆
0x00c0…00e0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 0a 3b 0d 0a 56 45   ┆*************************  ;  VE┆
0x00e0…0100 52 53 49 4f 4e 09 45 51 55 09 32 30 0d 0a 3b 0d 0a 09 2e 5a 38 30 0d 0a 3b 0d 0a 09 41 53 45 47   ┆RSION EQU 20  ;   .Z80  ;   ASEG┆
0x0100…0120 0d 0a 09 4f 52 47 09 31 30 30 48 0d 0a 3b 0d 0a 09 2e 50 48 41 53 45 09 30 0d 0a 3b 0d 0a 4d 4f   ┆   ORG 100H  ;   .PHASE 0  ;  MO┆
0x0120…0140 56 45 09 4d 41 43 52 4f 09 44 45 53 54 49 4e 2c 53 4f 55 52 43 45 09 3b 4d 4f 56 45 20 38 20 42   ┆VE MACRO DESTIN,SOURCE ;MOVE 8 B┆
0x0140…0160 59 54 45 53 20 46 52 4f 4d 20 53 4f 55 52 43 45 20 54 4f 20 44 45 53 54 49 4e 0d 0a 09 4c 44 09   ┆YTES FROM SOURCE TO DESTIN   LD ┆
0x0160…0180 48 4c 2c 53 4f 55 52 43 45 09 3b 4c 4f 41 44 20 53 4f 55 52 43 45 20 41 44 44 52 2e 0d 0a 09 4c   ┆HL,SOURCE ;LOAD SOURCE ADDR.   L┆
0x0180…01a0 44 09 44 45 2c 44 45 53 54 49 4e 09 3b 4c 4f 41 44 20 44 45 53 54 49 4e 20 41 44 44 52 2e 0d 0a   ┆D DE,DESTIN ;LOAD DESTIN ADDR.  ┆
0x01a0…01c0 09 4c 44 09 42 43 2c 38 09 09 3b 4c 45 4e 47 54 48 20 3d 20 38 20 42 59 54 45 53 0d 0a 09 4c 44   ┆ LD BC,8  ;LENGTH = 8 BYTES   LD┆
0x01c0…01e0 49 52 09 09 09 3b 4d 4f 56 45 0d 0a 09 45 4e 44 4d 0d 0a 3b 0d 0a 41 44 58 4f 52 09 4d 41 43 52   ┆IR   ;MOVE   ENDM  ;  ADXOR MACR┆
0x01e0…0200 4f 09 52 45 53 55 4c 54 2c 53 4f 55 52 43 45 09 3b 41 44 44 20 41 44 44 52 20 54 4f 20 52 45 53   ┆O RESULT,SOURCE ;ADD ADDR TO RES┆
0x0200…0220 55 4c 54 20 4d 4f 44 55 4c 55 53 20 32 0d 0a 09 4c 44 09 48 4c 2c 52 45 53 55 4c 54 09 3b 4c 4f   ┆ULT MODULUS 2   LD HL,RESULT ;LO┆
0x0220…0240 41 44 20 52 45 53 55 4c 54 20 41 44 44 52 0d 0a 09 4c 44 09 44 45 2c 53 4f 55 52 43 45 09 3b 4c   ┆AD RESULT ADDR   LD DE,SOURCE ;L┆
0x0240…0260 4f 41 44 20 41 44 44 52 0d 0a 09 4c 44 09 42 2c 38 09 09 3b 4c 45 4e 47 54 48 20 49 53 20 38 20   ┆OAD ADDR   LD B,8  ;LENGTH IS 8 ┆
0x0260…0280 42 59 54 45 53 0d 0a 09 43 41 4c 4c 09 41 44 44 45 52 09 09 3b 43 41 4c 4c 20 52 4f 55 54 49 4e   ┆BYTES   CALL ADDER  ;CALL ROUTIN┆
0x0280…02a0 45 0d 0a 09 45 4e 44 4d 0d 0a 3b 0d 0a 52 41 4d 09 45 51 55 09 32 30 30 30 48 0d 0a 3b 0d 0a 53   ┆E   ENDM  ;  RAM EQU 2000H  ;  S┆
0x02a0…02c0 49 4f 09 45 51 55 09 30 48 0d 0a 53 49 4f 41 44 09 45 51 55 09 53 49 4f 0d 0a 53 49 4f 41 43 09   ┆IO EQU 0H  SIOAD EQU SIO  SIOAC ┆
0x02c0…02e0 45 51 55 09 53 49 4f 41 44 2b 32 0d 0a 53 49 4f 42 44 09 45 51 55 09 53 49 4f 2b 31 0d 0a 53 49   ┆EQU SIOAD+2  SIOBD EQU SIO+1  SI┆
0x02e0…0300 4f 42 43 09 45 51 55 09 53 49 4f 42 44 2b 32 0d 0a 3b 0d 0a 52 45 51 53 54 41 09 45 51 55 09 30   ┆OBC EQU SIOBD+2  ;  REQSTA EQU 0┆
0x0300…0320 30 48 20 09 09 3b 52 45 51 55 45 53 54 20 53 54 41 54 55 53 0d 0a 5a 41 50 4b 45 59 09 45 51 55   ┆0H   ;REQUEST STATUS  ZAPKEY EQU┆
0x0320…0340 09 31 34 48 20 09 09 3b 43 4c 45 41 52 20 4b 45 59 20 54 4f 20 41 4c 4c 20 5a 45 52 4f 0d 0a 43   ┆ 14H   ;CLEAR KEY TO ALL ZERO  C┆
0x0340…0360 41 4c 4b 45 59 09 45 51 55 09 31 38 48 20 09 09 3b 43 41 4c 43 55 4c 41 54 45 20 4b 45 59 0d 0a   ┆ALKEY EQU 18H   ;CALCULATE KEY  ┆
0x0360…0380 53 54 45 4e 43 52 09 45 51 55 09 32 34 48 20 09 09 3b 53 54 41 52 54 20 45 4e 43 52 59 50 54 49   ┆STENCR EQU 24H   ;START ENCRYPTI┆
0x0380…03a0 4f 4e 0d 0a 43 42 43 45 09 45 51 55 09 30 41 34 48 09 09 3b 53 54 41 52 54 20 45 4e 43 52 59 50   ┆ON  CBCE EQU 0A4H  ;START ENCRYP┆
0x03a0…03c0 54 49 4f 4e 20 57 49 54 48 20 43 42 43 0d 0a 43 50 42 43 45 09 45 51 55 09 30 45 34 48 09 09 3b   ┆TION WITH CBC  CPBCE EQU 0E4H  ;┆
0x03c0…03e0 53 54 41 52 54 20 45 4e 43 52 59 50 54 49 4f 4e 20 57 49 54 48 20 43 50 42 43 0d 0a 53 54 44 45   ┆START ENCRYPTION WITH CPBC  STDE┆
0x03e0…0400 43 52 09 45 51 55 09 32 38 48 20 09 09 3b 53 54 41 52 54 20 44 45 43 52 59 50 54 49 4f 4e 0d 0a   ┆CR EQU 28H   ;START DECRYPTION  ┆
0x0400…0420 43 42 43 44 09 45 51 55 09 30 41 38 48 09 09 3b 53 54 41 52 54 20 44 45 43 52 59 50 54 49 4f 4e   ┆CBCD EQU 0A8H  ;START DECRYPTION┆
0x0420…0440 20 57 49 54 48 20 43 42 43 0d 0a 43 50 42 43 44 09 45 51 55 09 30 45 38 48 09 09 3b 53 54 41 52   ┆ WITH CBC  CPBCD EQU 0E8H  ;STAR┆
0x0440…0460 54 20 44 45 43 52 59 50 54 49 4f 4e 20 57 49 54 48 20 43 50 42 43 0d 0a 47 45 54 4b 45 59 09 45   ┆T DECRYPTION WITH CPBC  GETKEY E┆
0x0460…0480 51 55 09 34 31 48 20 09 09 3b 47 45 54 20 4b 45 59 42 59 54 45 20 46 52 4f 4d 20 50 4f 52 54 20   ┆QU 41H   ;GET KEYBYTE FROM PORT ┆
0x0480…04a0 42 0d 0a 47 45 54 44 41 54 09 45 51 55 09 38 31 48 20 09 09 3b 47 45 54 20 44 41 54 41 42 59 54   ┆B  GETDAT EQU 81H   ;GET DATABYT┆
0x04a0…04c0 45 20 46 52 4f 4d 20 50 4f 52 54 20 42 0d 0a 50 55 54 44 41 54 09 45 51 55 09 38 32 48 20 09 09   ┆E FROM PORT B  PUTDAT EQU 82H   ┆
0x04c0…04e0 3b 53 45 4e 44 20 44 41 54 41 42 59 54 45 20 46 52 4f 4d 20 50 4f 52 54 20 42 0d 0a 52 45 53 49   ┆;SEND DATABYTE FROM PORT B  RESI┆
0x04e0…0500 43 56 09 45 51 55 09 30 41 32 48 09 09 3b 52 45 4c 4f 41 44 20 49 4e 49 54 20 43 48 41 49 4e 20   ┆CV EQU 0A2H  ;RELOAD INIT CHAIN ┆
0x0500…0520 56 41 4c 55 45 0d 0a 47 45 54 49 43 56 09 45 51 55 09 30 41 31 48 09 09 3b 47 45 54 20 49 4e 49   ┆VALUE  GETICV EQU 0A1H  ;GET INI┆
0x0520…0540 54 2e 56 41 4c 20 42 59 54 45 20 46 52 4f 4d 20 50 4f 52 54 20 42 0d 0a 3b 0d 0a 3b 09 53 54 41   ┆T.VAL BYTE FROM PORT B  ;  ; STA┆
0x0540…0560 54 55 53 20 56 41 4c 55 45 53 0d 0a 3b 0d 0a 3b 09 58 20 58 20 58 20 58 20 58 20 58 20 30 20 30   ┆TUS VALUES  ;  ; X X X X X X 0 0┆
0x0560…0580 09 09 49 4e 50 55 54 20 44 41 54 41 42 4c 4f 43 4b 20 45 4d 50 54 59 0d 0a 3b 09 58 20 58 20 58   ┆  INPUT DATABLOCK EMPTY  ; X X X┆
0x0580…05a0 20 58 20 58 20 58 20 30 20 31 09 09 49 4e 50 55 54 20 44 41 54 41 42 4c 4f 43 4b 20 4e 4f 54 20   ┆ X X X 0 1  INPUT DATABLOCK NOT ┆
0x05a0…05c0 45 4d 50 54 59 2c 20 4e 4f 54 20 46 55 4c 4c 0d 0a 3b 09 58 20 58 20 58 20 58 20 58 20 58 20 31   ┆EMPTY, NOT FULL  ; X X X X X X 1┆
0x05c0…05e0 20 31 09 09 49 4e 50 55 54 20 44 41 54 41 42 4c 4f 43 4b 20 46 55 4c 4c 0d 0a 3b 09 58 20 58 20   ┆ 1  INPUT DATABLOCK FULL  ; X X ┆
0x05e0…0600 58 20 58 20 30 20 30 20 58 20 58 09 09 4f 55 54 50 55 54 20 44 41 54 41 42 4c 4f 43 4b 20 45 4d   ┆X X 0 0 X X  OUTPUT DATABLOCK EM┆
0x0600…0620 50 54 59 0d 0a 3b 09 58 20 58 20 58 20 58 20 30 20 31 20 58 20 58 09 09 4f 55 54 50 55 54 20 44   ┆PTY  ; X X X X 0 1 X X  OUTPUT D┆
0x0620…0640 41 54 41 42 4c 4f 43 4b 20 4e 4f 54 20 45 4d 50 54 59 2c 20 4e 4f 54 20 46 55 4c 4c 0d 0a 3b 09   ┆ATABLOCK NOT EMPTY, NOT FULL  ; ┆
0x0640…0660 58 20 58 20 58 20 58 20 31 20 31 20 58 20 58 09 09 4f 55 54 50 55 54 20 44 41 54 41 42 4c 4f 43   ┆X X X X 1 1 X X  OUTPUT DATABLOC┆
0x0660…0680 4b 20 46 55 4c 4c 0d 0a 3b 09 58 20 58 20 30 20 30 20 58 20 58 20 58 20 58 09 09 4b 45 59 42 4c   ┆K FULL  ; X X 0 0 X X X X  KEYBL┆
0x0680…06a0 4f 43 4b 20 55 4e 44 45 46 49 4e 45 44 0d 0a 3b 09 58 20 58 20 31 20 30 20 58 20 58 20 58 20 58   ┆OCK UNDEFINED  ; X X 1 0 X X X X┆
0x06a0…06c0 09 09 4b 45 59 42 4c 4f 43 4b 20 3d 20 5a 45 52 4f 0d 0a 3b 09 58 20 58 20 30 20 31 20 58 20 58   ┆  KEYBLOCK = ZERO  ; X X 0 1 X X┆
0x06c0…06e0 20 58 20 58 09 09 4b 45 59 42 4c 4f 43 4b 20 4e 4f 54 20 45 4d 50 54 59 2c 20 4e 4f 54 20 46 55   ┆ X X  KEYBLOCK NOT EMPTY, NOT FU┆
0x06e0…0700 4c 4c 0d 0a 3b 09 58 20 58 20 31 20 31 20 58 20 58 20 58 20 58 09 09 4b 45 59 42 4c 4f 43 4b 20   ┆LL  ; X X 1 1 X X X X  KEYBLOCK ┆
0x0700…0720 46 55 4c 4c 0d 0a 3b 09 30 20 30 20 58 20 58 20 58 20 58 20 58 20 58 09 09 49 4e 49 54 2e 56 41   ┆FULL  ; 0 0 X X X X X X  INIT.VA┆
0x0720…0740 4c 20 55 4e 44 45 46 49 4e 45 44 0d 0a 3b 09 31 20 30 20 58 20 58 20 58 20 58 20 58 20 58 20 09   ┆L UNDEFINED  ; 1 0 X X X X X X  ┆
0x0740…0760 49 4e 49 54 2e 56 41 4c 20 52 45 53 45 54 0d 0a 3b 09 30 20 31 20 58 20 58 20 58 20 58 20 58 20   ┆INIT.VAL RESET  ; 0 1 X X X X X ┆
0x0760…0780 58 09 09 49 4e 49 54 2e 56 41 4c 20 4e 4f 54 20 45 4d 50 54 59 2c 20 4e 4f 54 20 46 55 4c 4c 0d   ┆X  INIT.VAL NOT EMPTY, NOT FULL ┆
0x0780…07a0 0a 3b 09 31 20 31 20 58 20 58 20 58 20 58 20 58 20 58 09 09 49 4e 49 54 2e 56 41 4c 2e 20 41 43   ┆ ; 1 1 X X X X X X  INIT.VAL. AC┆
0x07a0…07c0 54 49 56 41 54 45 44 0d 0a 3b 0d 0a 3b 09 49 4e 49 54 49 41 4c 49 5a 45 20 53 49 4f 27 53 0d 0a   ┆TIVATED  ;  ; INITIALIZE SIO'S  ┆
0x07c0…07e0 3b 0d 0a 49 4e 49 54 3a 0d 0a 09 44 49 09 09 09 3b 44 49 53 41 42 4c 45 20 49 4e 54 45 52 55 50   ┆;  INIT:   DI   ;DISABLE INTERUP┆
0x07e0…0800 54 0d 0a 09 4c 44 09 53 50 2c 53 54 41 43 4b 09 3b 4c 4f 41 44 20 53 54 41 43 4b 20 50 4f 49 4e   ┆T   LD SP,STACK ;LOAD STACK POIN┆
0x0800…0820 54 45 52 0d 0a 09 4c 44 09 48 4c 2c 44 54 52 30 0d 0a 09 4c 44 09 43 2c 53 49 4f 41 43 0d 0a 09   ┆TER   LD HL,DTR0   LD C,SIOAC   ┆
0x0820…0840 4c 44 09 42 2c 32 0d 0a 09 4f 54 49 52 0d 0a 09 4c 44 09 48 4c 2c 44 54 52 30 0d 0a 09 4c 44 09   ┆LD B,2   OTIR   LD HL,DTR0   LD ┆
0x0840…0860 43 2c 53 49 4f 42 43 0d 0a 09 4c 44 09 42 2c 32 0d 0a 09 4f 54 49 52 0d 0a 09 58 4f 52 09 41 09   ┆C,SIOBC   LD B,2   OTIR   XOR A ┆
0x0860…0880 09 3b 43 4c 45 41 52 20 3c 41 3e 0d 0a 09 4c 44 09 28 53 54 41 54 55 53 29 2c 41 09 3b 43 4c 45   ┆ ;CLEAR <A>   LD (STATUS),A ;CLE┆
0x0880…08a0 41 52 20 53 54 41 54 55 53 0d 0a 09 4c 44 09 28 49 44 41 54 43 4e 54 29 2c 41 09 3b 43 4c 45 41   ┆AR STATUS   LD (IDATCNT),A ;CLEA┆
0x08a0…08c0 52 20 49 4e 20 44 41 54 41 20 43 4f 55 4e 54 45 52 0d 0a 09 4c 44 09 28 4f 44 41 54 43 4e 54 29   ┆R IN DATA COUNTER   LD (ODATCNT)┆
0x08c0…08e0 2c 41 09 3b 43 4c 45 41 52 20 4f 55 54 20 44 41 54 41 20 43 4f 55 4e 54 45 52 0d 0a 09 4c 44 09   ┆,A ;CLEAR OUT DATA COUNTER   LD ┆
0x08e0…0900 28 49 42 43 43 4e 54 29 2c 41 09 3b 43 4c 45 41 52 20 49 42 43 2d 43 4f 55 4e 54 0d 0a 09 4c 44   ┆(IBCCNT),A ;CLEAR IBC-COUNT   LD┆
0x0900…0920 09 28 4b 45 59 43 4e 54 29 2c 41 09 3b 43 4c 45 41 52 20 4b 45 59 20 43 4f 55 4e 54 45 52 0d 0a   ┆ (KEYCNT),A ;CLEAR KEY COUNTER  ┆
0x0920…0940 3b 0d 0a 09 4c 44 09 48 4c 2c 53 49 4f 42 4c 4b 0d 0a 49 4e 49 4c 4f 50 3a 0d 0a 09 4c 44 09 41   ┆;   LD HL,SIOBLK  INILOP:   LD A┆
0x0940…0960 2c 28 48 4c 29 0d 0a 09 4f 52 09 41 0d 0a 09 4a 52 09 5a 2c 49 44 4c 45 30 0d 0a 09 4c 44 09 42   ┆,(HL)   OR A   JR Z,IDLE0   LD B┆
0x0960…0980 2c 41 0d 0a 09 49 4e 43 09 48 4c 0d 0a 09 4c 44 09 43 2c 28 48 4c 29 0d 0a 09 4c 44 09 41 2c 31   ┆,A   INC HL   LD C,(HL)   LD A,1┆
0x0980…09a0 38 48 0d 0a 09 4f 55 54 09 28 43 29 2c 41 0d 0a 49 4e 49 4c 50 31 3a 0d 0a 09 49 4e 43 09 48 4c   ┆8H   OUT (C),A  INILP1:   INC HL┆
0x09a0…09c0 0d 0a 09 4c 44 09 41 2c 28 48 4c 29 0d 0a 09 4f 55 54 09 28 43 29 2c 41 0d 0a 09 44 4a 4e 5a 09   ┆   LD A,(HL)   OUT (C),A   DJNZ ┆
0x09c0…09e0 49 4e 49 4c 50 31 0d 0a 09 49 4e 43 09 48 4c 0d 0a 09 4a 52 09 49 4e 49 4c 4f 50 0d 0a 3b 0d 0a   ┆INILP1   INC HL   JR INILOP  ;  ┆
0x09e0…0a00 3b 09 49 44 4c 45 20 4c 4f 4f 50 20 54 4f 20 57 41 49 54 20 46 4f 52 20 41 43 54 49 56 49 54 59   ┆; IDLE LOOP TO WAIT FOR ACTIVITY┆
0x0a00…0a20 20 4f 4e 20 53 49 4f 2e 0d 0a 3b 0d 0a 49 44 4c 45 30 3a 0d 0a 09 49 4e 09 41 2c 28 53 49 4f 41   ┆ ON SIO.  ;  IDLE0:   IN A,(SIOA┆
0x0a20…0a40 44 29 09 3b 43 4c 45 41 52 20 49 4e 50 55 54 20 42 55 46 46 45 52 0d 0a 09 49 4e 09 41 2c 28 53   ┆D) ;CLEAR INPUT BUFFER   IN A,(S┆
0x0a40…0a60 49 4f 41 44 29 09 3b 43 4c 45 41 52 20 49 4e 50 55 54 20 42 55 46 46 45 52 0d 0a 09 49 4e 09 41   ┆IOAD) ;CLEAR INPUT BUFFER   IN A┆
0x0a60…0a80 2c 28 53 49 4f 41 44 29 09 3b 43 4c 45 41 52 20 49 4e 50 55 54 20 42 55 46 46 45 52 0d 0a 09 49   ┆,(SIOAD) ;CLEAR INPUT BUFFER   I┆
0x0a80…0aa0 4e 09 41 2c 28 53 49 4f 42 44 29 09 3b 43 4c 45 41 52 20 49 4e 50 55 54 20 42 55 46 46 45 52 0d   ┆N A,(SIOBD) ;CLEAR INPUT BUFFER ┆
0x0aa0…0ac0 0a 09 49 4e 09 41 2c 28 53 49 4f 42 44 29 09 3b 43 4c 45 41 52 20 49 4e 50 55 54 20 42 55 46 46   ┆  IN A,(SIOBD) ;CLEAR INPUT BUFF┆
0x0ac0…0ae0 45 52 0d 0a 09 49 4e 09 41 2c 28 53 49 4f 42 44 29 09 3b 43 4c 45 41 52 20 49 4e 50 55 54 20 42   ┆ER   IN A,(SIOBD) ;CLEAR INPUT B┆
0x0ae0…0b00 55 46 46 45 52 0d 0a 3b 0d 0a 49 44 4c 45 3a 0d 0a 09 4c 44 09 48 4c 2c 44 54 52 31 0d 0a 09 4c   ┆UFFER  ;  IDLE:   LD HL,DTR1   L┆
0x0b00…0b20 44 09 43 2c 53 49 4f 41 43 0d 0a 09 4c 44 09 42 2c 32 0d 0a 09 4f 54 49 52 0d 0a 49 44 4c 30 3a   ┆D C,SIOAC   LD B,2   OTIR  IDL0:┆
0x0b20…0b40 0d 0a 09 49 4e 09 41 2c 28 53 49 4f 41 43 29 09 3b 47 45 54 20 53 54 41 54 55 53 20 43 42 2d 41   ┆   IN A,(SIOAC) ;GET STATUS CB-A┆
0x0b40…0b60 0d 0a 09 42 49 54 09 30 2c 41 09 09 3b 52 58 20 42 55 46 46 45 52 20 45 4d 50 54 59 3f 0d 0a 09   ┆   BIT 0,A  ;RX BUFFER EMPTY?   ┆
0x0b60…0b80 4a 52 09 5a 2c 49 44 4c 30 09 09 3b 49 46 20 53 4f 20 4c 4f 4f 50 20 54 4f 20 49 44 4c 45 0d 0a   ┆JR Z,IDL0  ;IF SO LOOP TO IDLE  ┆
0x0b80…0ba0 3b 0d 0a 3b 09 47 45 54 20 43 4f 4d 4d 41 4e 44 20 54 59 50 45 0d 0a 3b 0d 0a 09 4c 44 09 48 4c   ┆;  ; GET COMMAND TYPE  ;   LD HL┆
0x0ba0…0bc0 2c 44 54 52 30 0d 0a 09 4c 44 09 43 2c 53 49 4f 41 43 0d 0a 09 4c 44 09 42 2c 32 0d 0a 09 4f 54   ┆,DTR0   LD C,SIOAC   LD B,2   OT┆
0x0bc0…0be0 49 52 0d 0a 09 49 4e 09 41 2c 28 53 49 4f 41 44 29 09 3b 47 45 54 20 43 4f 4d 4d 41 4e 44 0d 0a   ┆IR   IN A,(SIOAD) ;GET COMMAND  ┆
0x0be0…0c00 09 4c 44 09 28 43 4d 44 42 59 54 29 2c 41 09 3b 53 41 56 45 20 43 4f 4d 4d 41 4e 44 0d 0a 09 43   ┆ LD (CMDBYT),A ;SAVE COMMAND   C┆
0x0c00…0c20 50 09 52 45 51 53 54 41 09 09 3b 53 54 41 54 55 53 20 52 45 51 55 45 53 54 3f 0d 0a 09 4a 50 09   ┆P REQSTA  ;STATUS REQUEST?   JP ┆
0x0c20…0c40 5a 2c 54 58 53 54 41 09 09 3b 59 45 53 20 2d 20 53 45 4e 44 20 53 54 41 54 55 53 0d 0a 09 43 50   ┆Z,TXSTA  ;YES - SEND STATUS   CP┆
0x0c40…0c60 09 5a 41 50 4b 45 59 09 09 3b 43 45 41 52 20 4b 45 59 20 52 45 51 20 3f 0d 0a 09 4a 50 09 5a 2c   ┆ ZAPKEY  ;CEAR KEY REQ ?   JP Z,┆
0x0c60…0c80 43 4c 52 4b 45 59 09 3b 59 45 53 20 2d 20 43 4c 45 41 52 20 4b 45 59 0d 0a 09 43 50 09 43 41 4c   ┆CLRKEY ;YES - CLEAR KEY   CP CAL┆
0x0c80…0ca0 4b 45 59 09 09 3b 53 45 54 20 4b 45 59 20 52 45 51 20 3f 0d 0a 09 4a 50 09 5a 2c 5a 4b 45 59 09   ┆KEY  ;SET KEY REQ ?   JP Z,ZKEY ┆
0x0ca0…0cc0 09 3b 59 45 53 20 2d 20 52 45 41 44 20 38 20 4b 45 59 2d 42 59 54 45 53 2e 0d 0a 09 43 50 09 53   ┆ ;YES - READ 8 KEY-BYTES.   CP S┆
0x0cc0…0ce0 54 45 4e 43 52 09 09 3b 53 54 41 52 54 20 45 4e 43 52 59 50 54 49 4f 4e 3f 0d 0a 09 4a 50 09 5a   ┆TENCR  ;START ENCRYPTION?   JP Z┆
0x0ce0…0d00 2c 45 4e 43 52 09 09 3b 59 45 53 20 2d 20 45 4e 43 52 59 50 54 0d 0a 09 43 50 09 43 42 43 45 09   ┆,ENCR  ;YES - ENCRYPT   CP CBCE ┆
0x0d00…0d20 09 3b 53 54 41 52 54 20 45 4e 43 52 59 50 54 49 4f 4e 3f 0d 0a 09 4a 50 09 5a 2c 45 4e 43 52 09   ┆ ;START ENCRYPTION?   JP Z,ENCR ┆
0x0d20…0d40 09 3b 59 45 53 20 2d 20 45 4e 43 52 59 50 54 0d 0a 09 43 50 09 43 50 42 43 45 09 09 3b 53 54 41   ┆ ;YES - ENCRYPT   CP CPBCE  ;STA┆
0x0d40…0d60 52 54 20 45 4e 43 52 59 50 54 49 4f 4e 3f 0d 0a 09 4a 50 09 5a 2c 45 4e 43 52 09 09 3b 59 45 53   ┆RT ENCRYPTION?   JP Z,ENCR  ;YES┆
0x0d60…0d80 20 2d 20 45 4e 43 52 59 50 54 0d 0a 09 43 50 09 53 54 44 45 43 52 09 09 3b 53 54 41 52 54 20 44   ┆ - ENCRYPT   CP STDECR  ;START D┆
0x0d80…0da0 45 43 52 59 50 54 49 4f 4e 3f 0d 0a 09 4a 50 09 5a 2c 44 45 43 52 09 09 3b 59 45 53 20 2d 20 44   ┆ECRYPTION?   JP Z,DECR  ;YES - D┆
0x0da0…0dc0 45 43 52 59 50 54 0d 0a 09 43 50 09 43 42 43 44 09 09 3b 53 54 41 52 54 20 44 45 43 52 59 50 54   ┆ECRYPT   CP CBCD  ;START DECRYPT┆
0x0dc0…0de0 49 4f 4e 3f 0d 0a 09 4a 50 09 5a 2c 44 45 43 52 09 09 3b 59 45 53 20 2d 20 44 45 43 52 59 50 54   ┆ION?   JP Z,DECR  ;YES - DECRYPT┆
0x0de0…0e00 0d 0a 09 43 50 09 43 50 42 43 44 09 09 3b 53 54 41 52 54 20 44 45 43 52 59 50 54 49 4f 4e 3f 0d   ┆   CP CPBCD  ;START DECRYPTION? ┆
0x0e00…0e20 0a 09 4a 50 09 5a 2c 44 45 43 52 09 09 3b 59 45 53 20 2d 20 44 45 43 52 59 50 54 0d 0a 09 43 50   ┆  JP Z,DECR  ;YES - DECRYPT   CP┆
0x0e20…0e40 09 47 45 54 4b 45 59 09 09 3b 47 45 54 20 4b 45 59 42 59 54 45 3f 0d 0a 09 4a 50 09 5a 2c 49 4e   ┆ GETKEY  ;GET KEYBYTE?   JP Z,IN┆
0x0e40…0e60 4b 45 59 42 09 3b 59 45 53 20 2d 20 49 4e 50 55 54 20 4b 45 59 42 59 54 45 0d 0a 09 43 50 09 47   ┆KEYB ;YES - INPUT KEYBYTE   CP G┆
0x0e60…0e80 45 54 44 41 54 09 09 3b 47 45 54 20 44 41 54 41 42 59 54 45 3f 0d 0a 09 4a 50 09 5a 2c 49 4e 44   ┆ETDAT  ;GET DATABYTE?   JP Z,IND┆
0x0e80…0ea0 41 54 42 09 3b 59 45 53 20 2d 20 49 4e 50 55 54 20 44 41 54 41 42 59 54 45 0d 0a 09 43 50 09 50   ┆ATB ;YES - INPUT DATABYTE   CP P┆
0x0ea0…0ec0 55 54 44 41 54 09 09 3b 53 45 4e 44 20 44 41 54 41 42 59 54 45 3f 0d 0a 09 4a 50 09 5a 2c 4f 55   ┆UTDAT  ;SEND DATABYTE?   JP Z,OU┆
0x0ec0…0ee0 54 44 41 54 42 09 3b 59 45 53 20 2d 20 4f 55 54 50 55 54 20 44 41 54 41 42 59 54 45 0d 0a 09 43   ┆TDATB ;YES - OUTPUT DATABYTE   C┆
0x0ee0…0f00 50 09 47 45 54 49 43 56 09 09 3b 47 45 54 20 49 4e 49 2e 56 41 4c 3f 0d 0a 09 4a 50 09 5a 2c 49   ┆P GETICV  ;GET INI.VAL?   JP Z,I┆
0x0f00…0f20 4e 49 43 42 09 09 3b 59 45 53 20 2d 20 49 4e 50 55 54 20 49 4e 49 2e 56 41 4c 20 42 59 54 45 0d   ┆NICB  ;YES - INPUT INI.VAL BYTE ┆
0x0f20…0f40 0a 09 43 50 09 52 45 53 49 43 56 09 09 3b 52 45 53 45 54 20 49 4e 49 2e 56 41 4c 3f 0d 0a 09 4a   ┆  CP RESICV  ;RESET INI.VAL?   J┆
0x0f40…0f60 52 09 5a 2c 52 45 53 49 4e 49 56 09 3b 59 45 53 20 2d 20 52 45 53 45 54 20 49 4e 49 2e 56 41 4c   ┆R Z,RESINIV ;YES - RESET INI.VAL┆
0x0f60…0f80 0d 0a 09 4c 44 09 43 2c 30 46 46 48 09 09 3b 49 4e 44 49 43 41 54 45 20 43 4f 4d 4d 41 4e 44 20   ┆   LD C,0FFH  ;INDICATE COMMAND ┆
0x0f80…0fa0 45 52 52 4f 52 0d 0a 09 4a 52 09 54 58 41 09 09 3b 53 45 4e 44 20 53 54 41 54 55 53 20 43 48 2d   ┆ERROR   JR TXA  ;SEND STATUS CH-┆
0x0fa0…0fc0 41 0d 0a 3b 0d 0a 3b 09 54 52 41 4e 53 4d 49 54 20 53 54 41 54 55 53 20 42 59 54 45 0d 0a 3b 0d   ┆A  ;  ; TRANSMIT STATUS BYTE  ; ┆
0x0fc0…0fe0 0a 54 58 53 54 41 3a 0d 0a 09 4c 44 09 41 2c 28 53 54 41 54 55 53 29 09 3b 47 45 54 20 53 54 41   ┆ TXSTA:   LD A,(STATUS) ;GET STA┆
0x0fe0…1000 54 55 53 20 42 59 54 45 0d 0a 09 4c 44 09 43 2c 41 09 09 3b 50 55 54 20 49 4e 20 3c 43 3e 0d 0a   ┆TUS BYTE   LD C,A  ;PUT IN <C>  ┆
0x1000…1020 54 58 41 3a 0d 0a 09 49 4e 09 41 2c 28 53 49 4f 41 43 29 09 3b 54 58 2d 42 55 46 46 45 52 20 53   ┆TXA:   IN A,(SIOAC) ;TX-BUFFER S┆
0x1020…1040 54 41 54 55 53 0d 0a 09 42 49 54 09 32 2c 41 09 09 3b 45 4d 50 54 59 3f 0d 0a 09 4a 52 09 5a 2c   ┆TATUS   BIT 2,A  ;EMPTY?   JR Z,┆
0x1040…1060 54 58 41 09 09 3b 4e 4f 20 2d 20 4c 4f 4f 50 20 55 4e 54 49 4c 20 52 45 41 44 59 0d 0a 09 4c 44   ┆TXA  ;NO - LOOP UNTIL READY   LD┆
0x1060…1080 09 41 2c 43 09 09 3b 47 45 54 20 42 59 54 45 20 54 4f 20 53 45 4e 44 0d 0a 09 4f 55 54 09 28 53   ┆ A,C  ;GET BYTE TO SEND   OUT (S┆
0x1080…10a0 49 4f 41 44 29 2c 41 09 3b 53 45 4e 44 20 49 54 0d 0a 09 4a 50 09 49 44 4c 45 09 09 3b 4c 4f 4f   ┆IOAD),A ;SEND IT   JP IDLE  ;LOO┆
0x10a0…10c0 4b 20 46 4f 52 20 4e 45 57 20 43 4f 4d 4d 41 4e 44 0d 0a 3b 0d 0a 3b 09 47 45 54 20 4b 45 59 42   ┆K FOR NEW COMMAND  ;  ; GET KEYB┆
0x10c0…10e0 59 54 45 20 46 52 4f 4d 20 50 4f 52 54 20 42 0d 0a 3b 0d 0a 49 4e 4b 45 59 42 3a 0d 0a 09 4c 44   ┆YTE FROM PORT B  ;  INKEYB:   LD┆
0x10e0…1100 09 48 4c 2c 44 54 52 31 0d 0a 09 4c 44 09 43 2c 53 49 4f 42 43 0d 0a 09 4c 44 09 42 2c 32 0d 0a   ┆ HL,DTR1   LD C,SIOBC   LD B,2  ┆
0x1100…1120 09 4f 54 49 52 0d 0a 49 4b 42 30 3a 0d 0a 09 49 4e 09 41 2c 28 53 49 4f 42 43 29 09 3b 47 45 54   ┆ OTIR  IKB0:   IN A,(SIOBC) ;GET┆
0x1120…1140 20 53 54 41 54 55 53 0d 0a 09 42 49 54 09 30 2c 41 09 09 3b 43 48 41 52 20 41 56 41 49 4c 41 42   ┆ STATUS   BIT 0,A  ;CHAR AVAILAB┆
0x1140…1160 4c 45 3f 0d 0a 09 4a 52 09 5a 2c 49 4b 42 30 09 09 3b 4c 4f 4f 50 20 49 46 20 4e 4f 54 0d 0a 09   ┆LE?   JR Z,IKB0  ;LOOP IF NOT   ┆
0x1160…1180 4c 44 09 48 4c 2c 44 54 52 30 0d 0a 09 4c 44 09 43 2c 53 49 4f 42 43 0d 0a 09 4c 44 09 42 2c 32   ┆LD HL,DTR0   LD C,SIOBC   LD B,2┆
0x1180…11a0 0d 0a 09 4f 54 49 52 0d 0a 09 49 4e 09 41 2c 28 53 49 4f 42 44 29 09 3b 47 45 54 20 44 41 54 41   ┆   OTIR   IN A,(SIOBD) ;GET DATA┆
0x11a0…11c0 42 59 54 45 0d 0a 09 50 55 53 48 09 41 46 09 09 3b 53 41 56 45 20 3c 41 3e 0d 0a 09 4c 44 09 48   ┆BYTE   PUSH AF  ;SAVE <A>   LD H┆
0x11c0…11e0 4c 2c 4b 45 59 09 09 3b 50 4f 49 4e 54 20 54 4f 20 4b 45 59 0d 0a 09 4c 44 09 41 2c 28 4b 45 59   ┆L,KEY  ;POINT TO KEY   LD A,(KEY┆
0x11e0…1200 43 4e 54 29 09 3b 47 45 54 20 4b 45 59 20 43 4f 55 4e 54 0d 0a 09 41 4e 44 09 30 37 48 09 09 3b   ┆CNT) ;GET KEY COUNT   AND 07H  ;┆
0x1200…1220 4d 41 53 4b 20 43 4f 55 4e 54 20 4d 4f 44 20 38 0d 0a 09 4c 44 09 43 2c 41 09 09 3b 4d 4f 56 45   ┆MASK COUNT MOD 8   LD C,A  ;MOVE┆
0x1220…1240 20 3c 41 3e 20 54 4f 20 3c 43 3e 0d 0a 09 4c 44 09 44 2c 41 09 09 3b 53 41 56 45 20 49 4e 20 3c   ┆ <A> TO <C>   LD D,A  ;SAVE IN <┆
0x1240…1260 44 3e 0d 0a 09 4c 44 09 42 2c 30 09 09 3b 5a 41 50 20 3c 42 3e 0d 0a 09 41 44 44 09 48 4c 2c 42   ┆D>   LD B,0  ;ZAP <B>   ADD HL,B┆
0x1260…1280 43 09 09 3b 50 4f 49 4e 54 20 54 4f 20 42 59 54 45 0d 0a 09 50 4f 50 09 41 46 09 09 3b 52 45 53   ┆C  ;POINT TO BYTE   POP AF  ;RES┆
0x1280…12a0 54 4f 52 45 20 49 4e 50 55 54 20 42 59 54 45 0d 0a 09 4c 44 09 28 48 4c 29 2c 41 09 09 3b 4d 4f   ┆TORE INPUT BYTE   LD (HL),A  ;MO┆
0x12a0…12c0 56 45 20 49 4e 54 4f 20 4b 45 59 0d 0a 09 4c 44 09 41 2c 44 09 09 3b 47 45 54 20 4b 45 59 20 43   ┆VE INTO KEY   LD A,D  ;GET KEY C┆
0x12c0…12e0 4f 55 4e 54 0d 0a 09 49 4e 43 09 41 09 09 3b 49 4e 43 52 45 4d 45 4e 54 0d 0a 09 41 4e 44 09 30   ┆OUNT   INC A  ;INCREMENT   AND 0┆
0x12e0…1300 37 48 09 09 3b 4d 41 53 4b 20 43 4f 55 4e 54 20 4d 4f 44 20 38 0d 0a 09 4c 44 09 28 4b 45 59 43   ┆7H  ;MASK COUNT MOD 8   LD (KEYC┆
0x1300…1320 4e 54 29 2c 41 09 3b 52 45 53 54 4f 52 45 20 4b 45 59 20 43 4f 55 4e 54 0d 0a 09 4c 44 09 41 2c   ┆NT),A ;RESTORE KEY COUNT   LD A,┆
0x1320…1340 28 53 54 41 54 55 53 29 09 3b 47 45 54 20 53 54 41 54 55 53 0d 0a 09 4a 52 09 4e 5a 2c 49 4b 42   ┆(STATUS) ;GET STATUS   JR NZ,IKB┆
0x1340…1360 31 09 09 3b 4a 55 4d 50 20 49 46 20 4b 45 59 20 43 4f 55 4e 54 20 4e 4f 54 20 46 55 4c 4c 0d 0a   ┆1  ;JUMP IF KEY COUNT NOT FULL  ┆
0x1360…1380 09 53 45 54 09 35 2c 41 09 09 3b 4d 41 52 4b 20 46 55 4c 4c 0d 0a 09 4a 52 09 49 4b 42 32 09 09   ┆ SET 5,A  ;MARK FULL   JR IKB2  ┆
0x1380…13a0 3b 42 59 50 41 53 53 0d 0a 49 4b 42 31 3a 0d 0a 09 52 45 53 09 35 2c 41 09 09 3b 4d 41 52 4b 20   ┆;BYPASS  IKB1:   RES 5,A  ;MARK ┆
0x13a0…13c0 4e 4f 54 20 46 55 4c 4c 0d 0a 49 4b 42 32 3a 0d 0a 09 53 45 54 09 34 2c 41 09 09 3b 4d 41 52 4b   ┆NOT FULL  IKB2:   SET 4,A  ;MARK┆
0x13c0…13e0 20 4e 4f 54 20 45 4d 50 54 59 0d 0a 09 4c 44 09 28 53 54 41 54 55 53 29 2c 41 09 3b 53 41 56 45   ┆ NOT EMPTY   LD (STATUS),A ;SAVE┆
0x13e0…1400 20 53 54 41 54 55 53 0d 0a 09 4a 50 09 54 58 53 54 41 09 09 3b 54 52 41 4e 53 4d 49 54 20 53 54   ┆ STATUS   JP TXSTA  ;TRANSMIT ST┆
0x1400…1420 41 54 55 53 0d 0a 3b 0d 0a 3b 09 52 45 53 45 54 20 49 4e 49 2e 56 41 4c 20 46 52 4f 4d 20 4f 52   ┆ATUS  ;  ; RESET INI.VAL FROM OR┆
0x1420…1440 47 20 56 41 4c 55 45 0d 0a 3b 0d 0a 52 45 53 49 4e 49 56 3a 0d 0a 09 4d 4f 56 45 09 49 42 43 57   ┆G VALUE  ;  RESINIV:   MOVE IBCW┆
0x1440…1460 2c 49 42 43 0d 0a 09 4c 44 09 41 2c 28 53 54 41 54 55 53 29 09 3b 47 45 54 20 53 54 41 54 55 53   ┆,IBC   LD A,(STATUS) ;GET STATUS┆
0x1460…1480 0d 0a 09 41 4e 44 09 30 43 30 48 09 09 3b 4d 41 53 4b 20 41 43 54 55 41 4c 20 42 59 54 45 53 0d   ┆   AND 0C0H  ;MASK ACTUAL BYTES ┆
0x1480…14a0 0a 09 4c 44 09 41 2c 28 53 54 41 54 55 53 29 0d 0a 09 4a 50 09 5a 2c 54 58 53 54 41 09 09 3b 52   ┆  LD A,(STATUS)   JP Z,TXSTA  ;R┆
0x14a0…14c0 45 54 55 52 4e 20 49 46 20 4e 4f 54 20 4c 4f 41 44 45 44 0d 0a 09 53 45 54 09 37 2c 41 09 09 3b   ┆ETURN IF NOT LOADED   SET 7,A  ;┆
0x14c0…14e0 53 45 54 20 42 49 54 20 37 0d 0a 09 52 45 53 09 36 2c 41 09 09 3b 4d 41 52 4b 20 49 4e 49 2e 56   ┆SET BIT 7   RES 6,A  ;MARK INI.V┆
0x14e0…1500 41 4c 20 52 45 53 45 54 0d 0a 09 4c 44 09 28 53 54 41 54 55 53 29 2c 41 09 3b 55 50 44 41 54 45   ┆AL RESET   LD (STATUS),A ;UPDATE┆
0x1500…1520 20 53 54 41 54 55 53 0d 0a 09 4a 50 09 54 58 53 54 41 09 09 3b 53 45 4e 44 20 53 54 41 54 55 53   ┆ STATUS   JP TXSTA  ;SEND STATUS┆
0x1520…1540 0d 0a 3b 0d 0a 3b 09 47 45 54 20 49 4e 49 2e 56 41 4c 20 42 59 54 45 20 46 52 4f 4d 20 50 4f 52   ┆  ;  ; GET INI.VAL BYTE FROM POR┆
0x1540…1560 54 20 42 0d 0a 3b 0d 0a 49 4e 49 43 42 3a 0d 0a 09 4c 44 09 48 4c 2c 44 54 52 31 0d 0a 09 4c 44   ┆T B  ;  INICB:   LD HL,DTR1   LD┆
0x1560…1580 09 43 2c 53 49 4f 42 43 0d 0a 09 4c 44 09 42 2c 32 0d 0a 09 4f 54 49 52 0d 0a 49 49 42 30 3a 0d   ┆ C,SIOBC   LD B,2   OTIR  IIB0: ┆
0x1580…15a0 0a 09 49 4e 09 41 2c 28 53 49 4f 42 43 29 09 3b 47 45 54 20 53 54 41 54 55 53 0d 0a 09 42 49 54   ┆  IN A,(SIOBC) ;GET STATUS   BIT┆
0x15a0…15c0 09 30 2c 41 09 09 3b 43 48 41 52 2e 20 41 56 41 49 4c 41 42 4c 45 3f 0d 0a 09 4a 52 09 5a 2c 49   ┆ 0,A  ;CHAR. AVAILABLE?   JR Z,I┆
0x15c0…15e0 49 42 30 09 09 3b 4c 4f 4f 50 20 49 46 20 4e 4f 54 0d 0a 09 4c 44 09 48 4c 2c 44 54 52 30 09 09   ┆IB0  ;LOOP IF NOT   LD HL,DTR0  ┆
0x15e0…1600 3b 52 45 53 45 54 20 44 54 52 0d 0a 09 4c 44 09 43 2c 53 49 4f 42 43 0d 0a 09 4c 44 09 42 2c 32   ┆;RESET DTR   LD C,SIOBC   LD B,2┆
0x1600…1620 0d 0a 09 4f 54 49 52 0d 0a 09 49 4e 09 41 2c 28 53 49 4f 42 44 29 09 3b 47 45 54 20 44 41 54 41   ┆   OTIR   IN A,(SIOBD) ;GET DATA┆
0x1620…1640 42 59 54 45 0d 0a 09 50 55 53 48 09 41 46 09 09 3b 53 41 56 45 20 3c 41 3e 0d 0a 09 4c 44 09 48   ┆BYTE   PUSH AF  ;SAVE <A>   LD H┆
0x1640…1660 4c 2c 49 42 43 09 09 3b 50 4f 49 4e 54 20 54 4f 20 49 4e 49 2d 42 59 54 45 20 53 54 41 52 54 20   ┆L,IBC  ;POINT TO INI-BYTE START ┆
0x1660…1680 56 41 4c 55 45 0d 0a 09 4c 44 09 41 2c 28 49 42 43 43 4e 54 29 09 3b 47 45 54 20 49 4e 49 20 43   ┆VALUE   LD A,(IBCCNT) ;GET INI C┆
0x1680…16a0 4f 55 4e 54 0d 0a 09 41 4e 44 09 30 37 48 09 09 3b 4d 41 53 4b 20 43 4f 55 4e 54 20 4d 4f 44 20   ┆OUNT   AND 07H  ;MASK COUNT MOD ┆
0x16a0…16c0 38 0d 0a 09 4c 44 09 43 2c 41 09 09 3b 4d 4f 56 45 20 3c 41 3e 20 54 4f 20 3c 43 3e 0d 0a 09 4c   ┆8   LD C,A  ;MOVE <A> TO <C>   L┆
0x16c0…16e0 44 09 44 2c 41 09 09 3b 53 41 56 45 20 49 4e 20 3c 44 3e 0d 0a 09 4c 44 09 42 2c 30 09 09 3b 5a   ┆D D,A  ;SAVE IN <D>   LD B,0  ;Z┆
0x16e0…1700 41 50 20 3c 42 3e 0d 0a 09 41 44 44 09 48 4c 2c 42 43 09 09 3b 50 4f 49 4e 54 20 54 4f 20 42 59   ┆AP <B>   ADD HL,BC  ;POINT TO BY┆
0x1700…1720 54 45 0d 0a 09 50 4f 50 09 41 46 09 09 3b 52 45 53 54 4f 52 45 20 49 4e 50 55 54 20 42 59 54 45   ┆TE   POP AF  ;RESTORE INPUT BYTE┆
0x1720…1740 0d 0a 09 4c 44 09 28 48 4c 29 2c 41 09 09 3b 4d 4f 56 45 20 49 4e 54 4f 20 49 2d 44 41 54 41 0d   ┆   LD (HL),A  ;MOVE INTO I-DATA ┆
0x1740…1760 0a 09 4c 44 09 41 2c 44 09 09 3b 47 45 54 20 49 4e 49 20 43 4f 55 4e 54 0d 0a 09 49 4e 43 09 41   ┆  LD A,D  ;GET INI COUNT   INC A┆
0x1760…1780 09 09 3b 49 4e 43 52 45 4d 45 4e 54 0d 0a 09 41 4e 44 09 30 37 48 09 09 3b 4d 41 53 4b 20 43 4f   ┆  ;INCREMENT   AND 07H  ;MASK CO┆
0x1780…17a0 55 4e 54 20 4d 4f 44 20 38 0d 0a 09 4c 44 09 28 49 42 43 43 4e 54 29 2c 41 09 3b 52 45 53 54 4f   ┆UNT MOD 8   LD (IBCCNT),A ;RESTO┆
0x17a0…17c0 52 45 20 49 4e 49 20 43 4f 55 4e 54 0d 0a 09 4c 44 09 41 2c 28 53 54 41 54 55 53 29 09 3b 47 45   ┆RE INI COUNT   LD A,(STATUS) ;GE┆
0x17c0…17e0 54 20 53 54 41 54 55 53 0d 0a 09 4a 52 09 4e 5a 2c 49 49 42 31 09 09 3b 4a 55 4d 50 20 49 46 20   ┆T STATUS   JR NZ,IIB1  ;JUMP IF ┆
0x17e0…1800 49 4e 49 20 43 4f 55 4e 54 20 4e 4f 54 20 46 55 4c 4c 0d 0a 09 53 45 54 09 37 2c 41 09 09 3b 4d   ┆INI COUNT NOT FULL   SET 7,A  ;M┆
0x1800…1820 41 52 4b 20 46 55 4c 4c 0d 0a 09 4a 52 09 49 49 42 32 09 09 3b 42 59 50 41 53 53 0d 0a 49 49 42   ┆ARK FULL   JR IIB2  ;BYPASS  IIB┆
0x1820…1840 31 3a 0d 0a 09 52 45 53 09 37 2c 41 09 09 3b 4d 41 52 4b 20 4e 4f 54 20 46 55 4c 4c 0d 0a 49 49   ┆1:   RES 7,A  ;MARK NOT FULL  II┆
0x1840…1860 42 32 3a 0d 0a 09 53 45 54 09 36 2c 41 09 09 3b 4d 41 52 4b 20 4e 4f 54 20 45 4d 50 54 59 0d 0a   ┆B2:   SET 6,A  ;MARK NOT EMPTY  ┆
0x1860…1880 09 4c 44 09 28 53 54 41 54 55 53 29 2c 41 09 3b 53 41 56 45 20 53 54 41 54 55 53 0d 0a 09 4a 50   ┆ LD (STATUS),A ;SAVE STATUS   JP┆
0x1880…18a0 09 54 58 53 54 41 09 09 3b 54 52 41 4e 53 4d 49 54 20 53 54 41 54 55 53 0d 0a 3b 0d 0a 3b 09 47   ┆ TXSTA  ;TRANSMIT STATUS  ;  ; G┆
0x18a0…18c0 45 54 20 44 41 54 41 42 59 54 45 20 46 52 4f 4d 20 50 4f 52 54 20 42 0d 0a 3b 0d 0a 49 4e 44 41   ┆ET DATABYTE FROM PORT B  ;  INDA┆
0x18c0…18e0 54 42 3a 0d 0a 09 4c 44 09 48 4c 2c 44 54 52 31 0d 0a 09 4c 44 09 43 2c 53 49 4f 42 43 0d 0a 09   ┆TB:   LD HL,DTR1   LD C,SIOBC   ┆
0x18e0…1900 4c 44 09 42 2c 32 0d 0a 09 4f 54 49 52 0d 0a 49 44 42 30 3a 0d 0a 09 49 4e 09 41 2c 28 53 49 4f   ┆LD B,2   OTIR  IDB0:   IN A,(SIO┆
0x1900…1920 42 43 29 09 3b 47 45 54 20 53 54 41 54 55 53 0d 0a 09 42 49 54 09 30 2c 41 09 09 3b 43 48 41 52   ┆BC) ;GET STATUS   BIT 0,A  ;CHAR┆
[…truncated at 200 lines…]