DataMuseum.dk

Presents historical artifacts from the history of:

MIKADOS

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

See our Wiki for more about MIKADOS

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦cef46e44e⟧ TextFile

    Length: 7584 (0x1da0)
    Types: TextFile
    Notes: Mikados_K
    Names: »PRINX.K«

Derivation

└─⟦378be2382⟧ Bits:30005272 Diverse hjælpeprogrammer: L, L1, L2, A, A1, A2, LINK, ASM, PRINX, WBACK
    └─⟦this⟧ »PRINX.K« 

Mikados K File

;**********************************************************************
;
; MODUL PRINX: 
;
; SUBDRIVER TIL SERIELLE X-ON, X-OFF STYREDE PRINTERE
;                                                      AA-10.06.1982
;
; COPYRIGHT (C) 1981 BY DANSK DATA ELEKTRONIK APS
;
; FULD REENTRANT KODE
;
;**********************************************************************
 
       BRANCH          ; SUBDRIVERNE PLACERES I GRENEN (MBANK)
       COND
       SYMB
       PRINK 
;
PRINX:: 
;
;****************************************************************************
; SUBDRIVER FOR SERIELLE X-ON,X-OFF PRINTERE
;****************************************************************************
;
                        ;AT ENTRY: -> PRINTBUFFER ON STACK
PXXIN::                 ;          BUFFERLENGTH IN C
        IF      PXX
 
        POP     H
        MOV     A,M
        CPI     '<'
        JNZ     UDPR1   ;JUMP IF NO COMMANDS
CMLOP:
        INX     H       ;IGNORE COMMANDS
        DCR     C
        MOV     A,M
        CPI     '>'
        JNZ     CMLOP
 
        INX     H
        DCR     C
UDPR1:
        CALL    PRNT    ;PRINT
                        ;TERMINATE WITH LF
        LXI     H,PRBUF
        CALL    GETRN
        MVI     M,LF
        MVI     C,1     ;BUFFERLENGTH
        CALL    PRNT
 
        JMP     FEJL0    ;EXIT 
 
;****************************************************************************
;       PRINT ROUTINE
;****************************************************************************
;
PRNT:                   ;C=BUFFERLENGTH, HL->BUFFERSTART
        XCHG
        LXI     H,PBUFA
        CALL    PUTX    ;STORE BUFFERADDRESS FOR INTERRUPT ROUTINE
 
        XCHG
        MVI     B,0     ;BC:=BUFFERLENGTH
 
        DCR     C
        DAD     B       ;HL->BUFFER END
        INR     C
 
        RZ              ;RETURN ON EMPTY BUFFER
 
        MVI     A,' '
PTSNÆ:                  ;SKIP TRAILING BLANKS
        CMP     M
        JNZ     PTSLU
        DCX     H
        DCR     C
        RZ              ;RETURN ON EMPTY BUFFER
        JMP     PTSNÆ
PTSLU:                  ;C=BUFFERLENGTH
        LXI     H,PBUFL
        CALL    GETRN
        MOV     M,C     ;STORE BUFFERLENGTH FOR INTERRUPTROUTINE 
        
        CALL    FÅINHØ  ;GET MESSAGE FROM POOL - ANSWER SEMAPHORE = AUX. SEM.
        PUSH    D       ;STACK -> BYTE -2
        PUSH    H       ;STACK -> BYTE 2
        LXI     H,PMESG
        CALL    PUTX    ;STORE MESSAGE ADDRESS FOR INTERRUPTROUTINE
 
        POP     H       ;HL->BYTE 2
        LXI     D,#6000 ;WAIT FOR APP. 1 MINUTE  *************
        MOV     M,E
        INX     H
        MOV     M,D
        INX     H
        MVI     M,1     ;STATUS:=1
 
        CALL    PIDENT  ;REPORT PRINTER ACTIVE - A:=PRINTER NUMBER
 
        POP     D       ;CLEAR STACK
        RNZ             ;UNKNOWN PRINTER
        PUSH    D
 
        MOV     B,A     ;B:=PR. NUMBER
 
        DI
 
        LDA     PINST
        ORA     B
        STA     PINST
 
        MVI     A,15
        CALL    POUTI   ;OPEN TRANSMITTER AND RECEIVER
 
        IF      NOT+SPC1!PFLSE
        LDA     IMASK   ;GIV PRINTEREN LOV TIL AT AFBRYDE
        ORI     40      ;PÅ NIVEAU 60
        STA     IMASK
        OUT     INTRP
        ENDIF
        IF      NOT+PFLSE&SPC1
        RIM             ;READ INTERRUPT MASK
        ANI     6       ;TILLAD AFBRYDELSER PÅ NIVEAU 5.5 (BIT 0 = 0)
        ORI     8
        SIM             ;SET INTERRUPT MASK
        ENDIF
  
        EI
 
        LXI     B,SLEEP ;SEND MESSAGE TO CLOCK
        POP     H
        CALL    SENDØ
PTSLU2:
        CALL    VENTH   ;WAIT FOR MESSAGE FROM CLOCK
                        ;DE->BYTE 0, HL->BYTE -2
        DI
        PUSH    H
        LXI     D,6
        DAD     D       ;HL->STATUS BYTE (4)
        MOV     A,M     ;A:=STATUS
        ORA     A
        POP     H
        PUSH    PSW
        LXI     B,POOL  ;RETURN MESSAGE
        CALL    SND2 
 
        POP     PSW
        JNZ     PFMEX   ;PRINTING DID NOT SUCCEED
 
        EI              ;PRINTING SUCCEEDED
 
        LXI     H,PFEJL
        CALL    GETRN
        MOV     A,M
        ORA     A
        RZ              ;NO ERROR MESSAGE TO ERASE
 
        MVI     M,0
        LXI     B,SLTLN ;ERASE ERROR MESSAGE
        JMP     FJLSK
 
PFMEX:                  ;WRITE ERROR MESSAGE
        MVI     A,10    ;DISABLE TRANSMITTER AND RECEIVER
        CALL    POUTI
        EI              ;YOU CAN ENABLE SINCE THIS PRINTER IS DEAD !!
                        ;SEND NEW MESSAGE TO THE CLOCK
        CALL    FÅINHØ  ;GET MESSAGE FROM POOL - ANSWER SEMAPHORE = AUX. SEM.
        PUSH    D       ;STACK -> BYTE -2
        PUSH    H       ;STACK -> BYTE 2
        LXI     H,PMESG
        CALL    PUTX    ;STORE MESSAGE ADDRESS FOR INTERRUPTROUTINE
 
        POP     H       ;HL->BYTE 2
        LXI     D,#6000 ;WAIT FOR 60 SEC   *************************
        MOV     M,E
        INX     H
        MOV     M,D
        INX     H
        MVI     M,1     ;STATUS:=1
 
        LXI     B,SLEEP
        POP     H
        CALL    SENDØ
 
        MVI     A,14    ;ENABLE RECEIVER
        CALL    POUTI
 
        LXI     H,PFEJL
        CALL    GETRN
        MOV     A,M     ; SE OM DER VAR EN FEJL OGSÅ SIDST
        ORA     A
  
        JNZ     PTSLU2  ; PRØV IGEN UDEN FEJLUDSKRIFT
  
        MVI     M,1     ; HUSK AT DER ER EN SKRIVERFEJL
        LXI     B,FJLMP ; BC->FEJLMEDDELELSE
        CALL    FJLSK   ;
        JMP     PTSLU2
 
        END

Mikados K File

0x0000…0049 Line {l1=0x47, l2=»;**********************************************************************«, l3=0x47}
0x0049…004c Line {l1=0x01, l2=»;«, l3=0x01}
0x004c…005d Line {l1=0x0f, l2=»; MODUL PRINX: «, l3=0x0f}
0x005d…0060 Line {l1=0x01, l2=»;«, l3=0x01}
0x0060…0097 Line {l1=0x35, l2=»; SUBDRIVER TIL SERIELLE X-ON, X-OFF STYREDE PRINTERE«, l3=0x35}
0x0097…00dd Line {l1=0x44, l2=»;                                                      AA-10.06.1982«, l3=0x44}
0x00dd…00e0 Line {l1=0x01, l2=»;«, l3=0x01}
0x00e0…0113 Line {l1=0x31, l2=»; COPYRIGHT (C) 1981 BY DANSK DATA ELEKTRONIK APS«, l3=0x31}
0x0113…0116 Line {l1=0x01, l2=»;«, l3=0x01}
0x0116…012d Line {l1=0x15, l2=»; FULD REENTRANT KODE«, l3=0x15}
0x012d…0130 Line {l1=0x01, l2=»;«, l3=0x01}
0x0130…0179 Line {l1=0x47, l2=»;**********************************************************************«, l3=0x47}
0x0179…017c Line {l1=0x01, l2=» «, l3=0x01}
0x017c…01bc Line {l1=0x3e, l2=»       BRANCH          ; SUBDRIVERNE PLACERES I GRENEN (MBANK)«, l3=0x3e}
0x01bc…01c9 Line {l1=0x0b, l2=»       COND«, l3=0x0b}
0x01c9…01d6 Line {l1=0x0b, l2=»       SYMB«, l3=0x0b}
0x01d6…01e5 Line {l1=0x0d, l2=»       PRINK «, l3=0x0d}
0x01e5…01e8 Line {l1=0x01, l2=»;«, l3=0x01}
0x01e8…01f2 Line {l1=0x08, l2=»PRINX:: «, l3=0x08}
0x01f2…01f5 Line {l1=0x01, l2=»;«, l3=0x01}
0x01f5…0244 Line {l1=0x4d, l2=»;****************************************************************************«, l3=0x4d}
0x0244…0272 Line {l1=0x2c, l2=»; SUBDRIVER FOR SERIELLE X-ON,X-OFF PRINTERE«, l3=0x2c}
0x0272…02c1 Line {l1=0x4d, l2=»;****************************************************************************«, l3=0x4d}
0x02c1…02c4 Line {l1=0x01, l2=»;«, l3=0x01}
0x02c4…0300 Line {l1=0x3a, l2=»                        ;AT ENTRY: -> PRINTBUFFER ON STACK«, l3=0x3a}
0x0300…0336 Line {l1=0x34, l2=»PXXIN::                 ;          BUFFERLENGTH IN C«, l3=0x34}
0x0336…034b Line {l1=0x13, l2=»        IF      PXX«, l3=0x13}
0x034b…034e Line {l1=0x01, l2=» «, l3=0x01}
0x034e…0361 Line {l1=0x11, l2=»        POP     H«, l3=0x11}
0x0361…0376 Line {l1=0x13, l2=»        MOV     A,M«, l3=0x13}
0x0376…038b Line {l1=0x13, l2=»        CPI     '<'«, l3=0x13}
0x038b…03b9 Line {l1=0x2c, l2=»        JNZ     UDPR1   ;JUMP IF NO COMMANDS«, l3=0x2c}
0x03b9…03c1 Line {l1=0x06, l2=»CMLOP:«, l3=0x06}
0x03c1…03eb Line {l1=0x28, l2=»        INX     H       ;IGNORE COMMANDS«, l3=0x28}
0x03eb…03fe Line {l1=0x11, l2=»        DCR     C«, l3=0x11}
0x03fe…0413 Line {l1=0x13, l2=»        MOV     A,M«, l3=0x13}
0x0413…0428 Line {l1=0x13, l2=»        CPI     '>'«, l3=0x13}
0x0428…043f Line {l1=0x15, l2=»        JNZ     CMLOP«, l3=0x15}
0x043f…0442 Line {l1=0x01, l2=» «, l3=0x01}
0x0442…0455 Line {l1=0x11, l2=»        INX     H«, l3=0x11}
0x0455…0468 Line {l1=0x11, l2=»        DCR     C«, l3=0x11}
0x0468…0470 Line {l1=0x06, l2=»UDPR1:«, l3=0x06}
0x0470…0490 Line {l1=0x1e, l2=»        CALL    PRNT    ;PRINT«, l3=0x1e}
0x0490…04bc Line {l1=0x2a, l2=»                        ;TERMINATE WITH LF«, l3=0x2a}
0x04bc…04d5 Line {l1=0x17, l2=»        LXI     H,PRBUF«, l3=0x17}
0x04d5…04ec Line {l1=0x15, l2=»        CALL    GETRN«, l3=0x15}
0x04ec…0502 Line {l1=0x14, l2=»        MVI     M,LF«, l3=0x14}
0x0502…0529 Line {l1=0x25, l2=»        MVI     C,1     ;BUFFERLENGTH«, l3=0x25}
0x0529…053f Line {l1=0x14, l2=»        CALL    PRNT«, l3=0x14}
0x053f…0542 Line {l1=0x01, l2=» «, l3=0x01}
0x0542…0563 Line {l1=0x1f, l2=»        JMP     FEJL0    ;EXIT «, l3=0x1f}
0x0563…0566 Line {l1=0x01, l2=» «, l3=0x01}
0x0566…05b5 Line {l1=0x4d, l2=»;****************************************************************************«, l3=0x4d}
0x05b5…05cc Line {l1=0x15, l2=»;       PRINT ROUTINE«, l3=0x15}
0x05cc…061b Line {l1=0x4d, l2=»;****************************************************************************«, l3=0x4d}
0x061b…061e Line {l1=0x01, l2=»;«, l3=0x01}
0x061e…0658 Line {l1=0x38, l2=»PRNT:                   ;C=BUFFERLENGTH, HL->BUFFERSTART«, l3=0x38}
0x0658…0666 Line {l1=0x0c, l2=»        XCHG«, l3=0x0c}
0x0666…067f Line {l1=0x17, l2=»        LXI     H,PBUFA«, l3=0x17}
0x067f…06c3 Line {l1=0x42, l2=»        CALL    PUTX    ;STORE BUFFERADDRESS FOR INTERRUPT ROUTINE«, l3=0x42}
0x06c3…06c6 Line {l1=0x01, l2=» «, l3=0x01}
0x06c6…06d4 Line {l1=0x0c, l2=»        XCHG«, l3=0x0c}
0x06d4…06ff Line {l1=0x29, l2=»        MVI     B,0     ;BC:=BUFFERLENGTH«, l3=0x29}
0x06ff…0702 Line {l1=0x01, l2=» «, l3=0x01}
0x0702…0715 Line {l1=0x11, l2=»        DCR     C«, l3=0x11}
0x0715…073e Line {l1=0x27, l2=»        DAD     B       ;HL->BUFFER END«, l3=0x27}
0x073e…0751 Line {l1=0x11, l2=»        INR     C«, l3=0x11}
0x0751…0754 Line {l1=0x01, l2=» «, l3=0x01}
0x0754…0785 Line {l1=0x2f, l2=»        RZ              ;RETURN ON EMPTY BUFFER«, l3=0x2f}
0x0785…0788 Line {l1=0x01, l2=» «, l3=0x01}
0x0788…079f Line {l1=0x15, l2=»        MVI     A,' '«, l3=0x15}
0x079f…07ce Line {l1=0x2d, l2=»PTSNÆ:                  ;SKIP TRAILING BLANKS«, l3=0x2d}
0x07ce…07e1 Line {l1=0x11, l2=»        CMP     M«, l3=0x11}
0x07e1…07f8 Line {l1=0x15, l2=»        JNZ     PTSLU«, l3=0x15}
0x07f8…080b Line {l1=0x11, l2=»        DCX     H«, l3=0x11}
0x080b…081e Line {l1=0x11, l2=»        DCR     C«, l3=0x11}
0x081e…084f Line {l1=0x2f, l2=»        RZ              ;RETURN ON EMPTY BUFFER«, l3=0x2f}
0x084f…0866 Line {l1=0x15, l2=»        JMP     PTSNÆ«, l3=0x15}
0x0866…088f Line {l1=0x27, l2=»PTSLU:                  ;C=BUFFERLENGTH«, l3=0x27}
0x088f…08a8 Line {l1=0x17, l2=»        LXI     H,PBUFL«, l3=0x17}
0x08a8…08bf Line {l1=0x15, l2=»        CALL    GETRN«, l3=0x15}
0x08bf…0902 Line {l1=0x41, l2=»        MOV     M,C     ;STORE BUFFERLENGTH FOR INTERRUPTROUTINE «, l3=0x41}
0x0902…090c Line {l1=0x08, l2=»        «, l3=0x08}
0x090c…095b Line {l1=0x4d, l2=»        CALL    FÅINHØ  ;GET MESSAGE FROM POOL - ANSWER SEMAPHORE = AUX. SEM.«, l3=0x4d}
0x095b…0986 Line {l1=0x29, l2=»        PUSH    D       ;STACK -> BYTE -2«, l3=0x29}
0x0986…09b0 Line {l1=0x28, l2=»        PUSH    H       ;STACK -> BYTE 2«, l3=0x28}
0x09b0…09c9 Line {l1=0x17, l2=»        LXI     H,PMESG«, l3=0x17}
0x09c9…0a0e Line {l1=0x43, l2=»        CALL    PUTX    ;STORE MESSAGE ADDRESS FOR INTERRUPTROUTINE«, l3=0x43}
0x0a0e…0a11 Line {l1=0x01, l2=» «, l3=0x01}
0x0a11…0a36 Line {l1=0x23, l2=»        POP     H       ;HL->BYTE 2«, l3=0x23}
0x0a36…0a76 Line {l1=0x3e, l2=»        LXI     D,#6000 ;WAIT FOR APP. 1 MINUTE  *************«, l3=0x3e}
0x0a76…0a8b Line {l1=0x13, l2=»        MOV     M,E«, l3=0x13}
0x0a8b…0a9e Line {l1=0x11, l2=»        INX     H«, l3=0x11}
0x0a9e…0ab3 Line {l1=0x13, l2=»        MOV     M,D«, l3=0x13}
0x0ab3…0ac6 Line {l1=0x11, l2=»        INX     H«, l3=0x11}
0x0ac6…0aea Line {l1=0x22, l2=»        MVI     M,1     ;STATUS:=1«, l3=0x22}
0x0aea…0aed Line {l1=0x01, l2=» «, l3=0x01}
0x0aed…0b31 Line {l1=0x42, l2=»        CALL    PIDENT  ;REPORT PRINTER ACTIVE - A:=PRINTER NUMBER«, l3=0x42}
0x0b31…0b34 Line {l1=0x01, l2=» «, l3=0x01}
0x0b34…0b5a Line {l1=0x24, l2=»        POP     D       ;CLEAR STACK«, l3=0x24}
0x0b5a…0b84 Line {l1=0x28, l2=»        RNZ             ;UNKNOWN PRINTER«, l3=0x28}
0x0b84…0b97 Line {l1=0x11, l2=»        PUSH    D«, l3=0x11}
0x0b97…0b9a Line {l1=0x01, l2=» «, l3=0x01}
0x0b9a…0bc2 Line {l1=0x26, l2=»        MOV     B,A     ;B:=PR. NUMBER«, l3=0x26}
0x0bc2…0bc5 Line {l1=0x01, l2=» «, l3=0x01}
0x0bc5…0bd1 Line {l1=0x0a, l2=»        DI«, l3=0x0a}
0x0bd1…0bd4 Line {l1=0x01, l2=» «, l3=0x01}
0x0bd4…0beb Line {l1=0x15, l2=»        LDA     PINST«, l3=0x15}
0x0beb…0bfe Line {l1=0x11, l2=»        ORA     B«, l3=0x11}
0x0bfe…0c15 Line {l1=0x15, l2=»        STA     PINST«, l3=0x15}
0x0c15…0c18 Line {l1=0x01, l2=» «, l3=0x01}
0x0c18…0c2e Line {l1=0x14, l2=»        MVI     A,15«, l3=0x14}
0x0c2e…0c66 Line {l1=0x36, l2=»        CALL    POUTI   ;OPEN TRANSMITTER AND RECEIVER«, l3=0x36}
0x0c66…0c69 Line {l1=0x01, l2=» «, l3=0x01}
0x0c69…0c89 Line {l1=0x1e, l2=»        IF      NOT+SPC1!PFLSE«, l3=0x1e}
0x0c89…0cc4 Line {l1=0x39, l2=»        LDA     IMASK   ;GIV PRINTEREN LOV TIL AT AFBRYDE«, l3=0x39}
0x0cc4…0ceb Line {l1=0x25, l2=»        ORI     40      ;PÅ NIVEAU 60«, l3=0x25}
0x0ceb…0d02 Line {l1=0x15, l2=»        STA     IMASK«, l3=0x15}
0x0d02…0d19 Line {l1=0x15, l2=»        OUT     INTRP«, l3=0x15}
0x0d19…0d28 Line {l1=0x0d, l2=»        ENDIF«, l3=0x0d}
0x0d28…0d48 Line {l1=0x1e, l2=»        IF      NOT+PFLSE&SPC1«, l3=0x1e}
0x0d48…0d76 Line {l1=0x2c, l2=»        RIM             ;READ INTERRUPT MASK«, l3=0x2c}
0x0d76…0dbd Line {l1=0x45, l2=»        ANI     6       ;TILLAD AFBRYDELSER PÅ NIVEAU 5.5 (BIT 0 = 0)«, l3=0x45}
0x0dbd…0dd0 Line {l1=0x11, l2=»        ORI     8«, l3=0x11}
0x0dd0…0dfd Line {l1=0x2b, l2=»        SIM             ;SET INTERRUPT MASK«, l3=0x2b}
0x0dfd…0e0c Line {l1=0x0d, l2=»        ENDIF«, l3=0x0d}
0x0e0c…0e10 Line {l1=0x02, l2=»  «, l3=0x02}
0x0e10…0e1c Line {l1=0x0a, l2=»        EI«, l3=0x0a}
0x0e1c…0e1f Line {l1=0x01, l2=» «, l3=0x01}
0x0e1f…0e4f Line {l1=0x2e, l2=»        LXI     B,SLEEP ;SEND MESSAGE TO CLOCK«, l3=0x2e}
0x0e4f…0e62 Line {l1=0x11, l2=»        POP     H«, l3=0x11}
0x0e62…0e79 Line {l1=0x15, l2=»        CALL    SENDØ«, l3=0x15}
0x0e79…0e82 Line {l1=0x07, l2=»PTSLU2:«, l3=0x07}
0x0e82…0eb8 Line {l1=0x34, l2=»        CALL    VENTH   ;WAIT FOR MESSAGE FROM CLOCK«, l3=0x34}
0x0eb8…0eea Line {l1=0x30, l2=»                        ;DE->BYTE 0, HL->BYTE -2«, l3=0x30}
0x0eea…0ef6 Line {l1=0x0a, l2=»        DI«, l3=0x0a}
0x0ef6…0f09 Line {l1=0x11, l2=»        PUSH    H«, l3=0x11}
0x0f09…0f1e Line {l1=0x13, l2=»        LXI     D,6«, l3=0x13}
0x0f1e…0f4c Line {l1=0x2c, l2=»        DAD     D       ;HL->STATUS BYTE (4)«, l3=0x2c}
0x0f4c…0f70 Line {l1=0x22, l2=»        MOV     A,M     ;A:=STATUS«, l3=0x22}
0x0f70…0f83 Line {l1=0x11, l2=»        ORA     A«, l3=0x11}
0x0f83…0f96 Line {l1=0x11, l2=»        POP     H«, l3=0x11}
0x0f96…0fab Line {l1=0x13, l2=»        PUSH    PSW«, l3=0x13}
0x0fab…0fd4 Line {l1=0x27, l2=»        LXI     B,POOL  ;RETURN MESSAGE«, l3=0x27}
0x0fd4…0feb Line {l1=0x15, l2=»        CALL    SND2 «, l3=0x15}
0x0feb…0fee Line {l1=0x01, l2=» «, l3=0x01}
0x0fee…1003 Line {l1=0x13, l2=»        POP     PSW«, l3=0x13}
0x1003…1036 Line {l1=0x31, l2=»        JNZ     PFMEX   ;PRINTING DID NOT SUCCEED«, l3=0x31}
0x1036…1039 Line {l1=0x01, l2=» «, l3=0x01}
0x1039…1066 Line {l1=0x2b, l2=»        EI              ;PRINTING SUCCEEDED«, l3=0x2b}
0x1066…1069 Line {l1=0x01, l2=» «, l3=0x01}
0x1069…1082 Line {l1=0x17, l2=»        LXI     H,PFEJL«, l3=0x17}
0x1082…1099 Line {l1=0x15, l2=»        CALL    GETRN«, l3=0x15}
0x1099…10ae Line {l1=0x13, l2=»        MOV     A,M«, l3=0x13}
0x10ae…10c1 Line {l1=0x11, l2=»        ORA     A«, l3=0x11}
0x10c1…10f5 Line {l1=0x32, l2=»        RZ              ;NO ERROR MESSAGE TO ERASE«, l3=0x32}
0x10f5…10f8 Line {l1=0x01, l2=» «, l3=0x01}
0x10f8…110d Line {l1=0x13, l2=»        MVI     M,0«, l3=0x13}
0x110d…113b Line {l1=0x2c, l2=»        LXI     B,SLTLN ;ERASE ERROR MESSAGE«, l3=0x2c}
0x113b…1152 Line {l1=0x15, l2=»        JMP     FJLSK«, l3=0x15}
0x1152…1155 Line {l1=0x01, l2=» «, l3=0x01}
0x1155…1183 Line {l1=0x2c, l2=»PFMEX:                  ;WRITE ERROR MESSAGE«, l3=0x2c}
0x1183…11be Line {l1=0x39, l2=»        MVI     A,10    ;DISABLE TRANSMITTER AND RECEIVER«, l3=0x39}
0x11be…11d5 Line {l1=0x15, l2=»        CALL    POUTI«, l3=0x15}
0x11d5…121c Line {l1=0x45, l2=»        EI              ;YOU CAN ENABLE SINCE THIS PRINTER IS DEAD !!«, l3=0x45}
0x121c…1254 Line {l1=0x36, l2=»                        ;SEND NEW MESSAGE TO THE CLOCK«, l3=0x36}
0x1254…12a3 Line {l1=0x4d, l2=»        CALL    FÅINHØ  ;GET MESSAGE FROM POOL - ANSWER SEMAPHORE = AUX. SEM.«, l3=0x4d}
0x12a3…12ce Line {l1=0x29, l2=»        PUSH    D       ;STACK -> BYTE -2«, l3=0x29}
0x12ce…12f8 Line {l1=0x28, l2=»        PUSH    H       ;STACK -> BYTE 2«, l3=0x28}
0x12f8…1311 Line {l1=0x17, l2=»        LXI     H,PMESG«, l3=0x17}
0x1311…1356 Line {l1=0x43, l2=»        CALL    PUTX    ;STORE MESSAGE ADDRESS FOR INTERRUPTROUTINE«, l3=0x43}
0x1356…1359 Line {l1=0x01, l2=» «, l3=0x01}
0x1359…137e Line {l1=0x23, l2=»        POP     H       ;HL->BYTE 2«, l3=0x23}
0x137e…13c4 Line {l1=0x44, l2=»        LXI     D,#6000 ;WAIT FOR 60 SEC   *************************«, l3=0x44}
0x13c4…13d9 Line {l1=0x13, l2=»        MOV     M,E«, l3=0x13}
0x13d9…13ec Line {l1=0x11, l2=»        INX     H«, l3=0x11}
0x13ec…1401 Line {l1=0x13, l2=»        MOV     M,D«, l3=0x13}
0x1401…1414 Line {l1=0x11, l2=»        INX     H«, l3=0x11}
0x1414…1438 Line {l1=0x22, l2=»        MVI     M,1     ;STATUS:=1«, l3=0x22}
0x1438…143b Line {l1=0x01, l2=» «, l3=0x01}
0x143b…1454 Line {l1=0x17, l2=»        LXI     B,SLEEP«, l3=0x17}
0x1454…1467 Line {l1=0x11, l2=»        POP     H«, l3=0x11}
0x1467…147e Line {l1=0x15, l2=»        CALL    SENDØ«, l3=0x15}
0x147e…1481 Line {l1=0x01, l2=» «, l3=0x01}
0x1481…14ab Line {l1=0x28, l2=»        MVI     A,14    ;ENABLE RECEIVER«, l3=0x28}
0x14ab…14c2 Line {l1=0x15, l2=»        CALL    POUTI«, l3=0x15}
0x14c2…14c5 Line {l1=0x01, l2=» «, l3=0x01}
0x14c5…14de Line {l1=0x17, l2=»        LXI     H,PFEJL«, l3=0x17}
0x14de…14f5 Line {l1=0x15, l2=»        CALL    GETRN«, l3=0x15}
0x14f5…1531 Line {l1=0x3a, l2=»        MOV     A,M     ; SE OM DER VAR EN FEJL OGSÅ SIDST«, l3=0x3a}
0x1531…1544 Line {l1=0x11, l2=»        ORA     A«, l3=0x11}
0x1544…1548 Line {l1=0x02, l2=»  «, l3=0x02}
0x1548…157f Line {l1=0x35, l2=»        JNZ     PTSLU2  ; PRØV IGEN UDEN FEJLUDSKRIFT«, l3=0x35}
0x157f…1583 Line {l1=0x02, l2=»  «, l3=0x02}
0x1583…15bc Line {l1=0x37, l2=»        MVI     M,1     ; HUSK AT DER ER EN SKRIVERFEJL«, l3=0x37}
0x15bc…15ea Line {l1=0x2c, l2=»        LXI     B,FJLMP ; BC->FEJLMEDDELELSE«, l3=0x2c}
0x15ea…1605 Line {l1=0x19, l2=»        CALL    FJLSK   ;«, l3=0x19}
0x1605…161d Line {l1=0x16, l2=»        JMP     PTSLU2«, l3=0x16}
0x161d…1620 Line {l1=0x01, l2=» «, l3=0x01}
0x1620…162d Line {l1=0x0b, l2=»        END«, l3=0x0b}
0x162d…1640 00 00 20 20 02 37 20 20 20 20 20 20 20 20 4d 56 49 20 20                                          ┆     7        MVI  ┆
0x1640…1660 20 20 20 4d 2c 31 20 20 20 20 20 3b 20 48 55 53 4b 20 41 54 20 44 45 52 20 45 52 20 45 4e 20 53   ┆   M,1     ; HUSK AT DER ER EN S┆
0x1660…1680 4b 52 49 56 45 52 46 45 4a 4c 37 2c 20 20 20 20 20 20 20 20 4c 58 49 20 20 20 20 20 42 2c 46 4a   ┆KRIVERFEJL7,        LXI     B,FJ┆
0x1680…16a0 4c 4d 53 20 3b 20 42 43 2d 3e 46 45 4a 4c 4d 45 44 44 45 4c 45 4c 53 45 2c 19 20 20 20 20 20 20   ┆LMS ; BC->FEJLMEDDELELSE,       ┆
0x16a0…16c0 20 20 43 41 4c 4c 20 20 20 20 46 4a 4c 53 4b 20 20 20 3b 19 02 20 20 02 3d 20 20 20 20 20 20 20   ┆  CALL    FJLSK   ;     =       ┆
0x16c0…16e0 20 4a 4d 50 20 20 20 20 20 50 54 53 4c 55 31 20 20 3b 20 46 4f 52 53 5c 47 20 41 54 20 53 4b 52   ┆ JMP     PTSLU1  ; FORSØG AT SKR┆
0x16e0…1700 49 56 45 20 52 45 53 54 45 4e 20 41 46 20 42 55 46 46 45 52 45 4e 3d 01 20 01 26 50 46 4d 58 31   ┆IVE RESTEN AF BUFFEREN=   &PFMX1┆
0x1700…1720 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 53 54 41 54 55 53 20 57 41 53 20 31   ┆:                  ;STATUS WAS 1┆
0x1720…1740 20 26 2c 20 20 20 20 20 20 20 20 4d 56 49 20 20 20 20 20 41 2c 31 34 20 20 20 20 3b 44 49 53 41   ┆ &,        MVI     A,14    ;DISA┆
0x1740…1760 42 4c 45 20 54 52 41 4e 53 4d 49 54 54 45 52 2c 15 20 20 20 20 20 20 20 20 43 41 4c 4c 20 20 20   ┆BLE TRANSMITTER,         CALL   ┆
0x1760…1780 20 50 4f 55 54 49 15 01 20 01 2d 20 20 20 20 20 20 20 20 45 49 20 20 20 20 20 20 20 20 20 20 20   ┆ POUTI    -        EI           ┆
0x1780…17a0 20 20 20 3b 45 4e 41 42 4c 45 20 46 4f 52 20 52 45 43 45 49 56 49 4e 47 2d 01 20 01 17 20 20 20   ┆   ;ENABLE FOR RECEIVING-       ┆
0x17a0…17c0 20 20 20 20 20 4c 58 49 20 20 20 20 20 48 2c 50 46 45 4a 4c 17 15 20 20 20 20 20 20 20 20 43 41   ┆     LXI     H,PFEJL          CA┆
0x17c0…17e0 4c 4c 20 20 20 20 47 45 54 52 4e 15 3a 20 20 20 20 20 20 20 20 4d 4f 56 20 20 20 20 20 41 2c 4d   ┆LL    GETRN :        MOV     A,M┆
0x17e0…1800 20 20 20 20 20 3b 20 53 45 20 4f 4d 20 44 45 52 20 56 41 52 20 45 4e 20 46 45 4a 4c 20 4f 47 53   ┆     ; SE OM DER VAR EN FEJL OGS┆
0x1800…1820 5d 20 53 49 44 53 54 3a 11 20 20 20 20 20 20 20 20 4f 52 41 20 20 20 20 20 41 11 02 20 20 02 35   ┆Å SIDST:         ORA     A     5┆
0x1820…1840 20 20 20 20 20 20 20 20 4a 4e 5a 20 20 20 20 20 50 54 53 4c 55 32 20 20 3b 20 50 52 5c 56 20 49   ┆        JNZ     PTSLU2  ; PRØV I┆
0x1840…1860 47 45 4e 20 55 44 45 4e 20 46 45 4a 4c 55 44 53 4b 52 49 46 54 35 02 20 20 02 37 20 20 20 20 20   ┆GEN UDEN FEJLUDSKRIFT5    7     ┆
0x1860…1880 20 20 20 4d 56 49 20 20 20 20 20 4d 2c 31 20 20 20 20 20 3b 20 48 55 53 4b 20 41 54 20 44 45 52   ┆   MVI     M,1     ; HUSK AT DER┆
0x1880…18a0 20 45 52 20 45 4e 20 53 4b 52 49 56 45 52 46 45 4a 4c 37 2c 20 20 20 20 20 20 20 20 4c 58 49 20   ┆ ER EN SKRIVERFEJL7,        LXI ┆
0x18a0…18c0 20 20 20 20 42 2c 46 4a 4c 4d 53 20 3b 20 42 43 2d 3e 46 45 4a 4c 4d 45 44 44 45 4c 45 4c 53 45   ┆    B,FJLMS ; BC->FEJLMEDDELELSE┆
0x18c0…18e0 2c 19 20 20 20 20 20 20 20 20 43 41 4c 4c 20 20 20 20 46 4a 4c 53 4b 20 20 20 3b 19 16 20 20 20   ┆,         CALL    FJLSK   ;     ┆
0x18e0…1900 20 20 20 20 20 4a 4d 50 20 20 20 20 20 50 54 53 4c 55 32 16 01 20 01 0b 20 20 20 20 20 20 20 20   ┆     JMP     PTSLU2             ┆
0x1900…1920 45 4e 44 0b 00 00 20 20 20 20 20 20 20 4a 5a 20 20 20 20 20 20 52 52 45 54 4e 15 0d 20 20 20 20   ┆END          JZ      RRETN      ┆
0x1920…1940 20 20 20 20 45 4e 44 49 46 0d 01 20 01 1f 3b 2a 2a 41 44 41 2a 2a 20 57 48 45 4e 20 45 53 43 20   ┆    ENDIF     ;**ADA** WHEN ESC ┆
0x1940…1960 3d 3e 20 3c 3c 52 52 45 54 58 3e 3e 3b 1f 01 20 01 1f 20 20 20 20 20 20 20 20 49 46 20 20 20 20   ┆=> <<RRETX>>;             IF    ┆
0x1960…1980 20 20 54 45 43 37 30 21 56 4f 4c 43 4b 2b 4e 4f 54 1f 1f 20 20 20 20 20 20 20 20 43 50 49 20 20   ┆  TEC70!VOLCK+NOT          CPI  ┆
0x1980…19a0 20 20 20 45 53 43 20 20 20 20 20 3b 45 53 43 41 50 45 1f 15 20 20 20 20 20 20 20 20 4a 5a 20 20   ┆   ESC     ;ESCAPE          JZ  ┆
0x19a0…19c0 20 20 20 20 52 52 45 54 58 15 0d 20 20 20 20 20 20 20 20 45 4e 44 49 46 0d 01 20 01 1f 3b 2a 2a   ┆    RRETX          ENDIF     ;**┆
0x19c0…19e0 41 44 41 2a 2a 20 57 48 45 4e 20 45 54 58 20 3d 3e 20 3c 3c 52 52 45 54 58 3e 3e 3b 1f 01 20 01   ┆ADA** WHEN ETX => <<RRETX>>;    ┆
0x19e0…1a00 1c 20 20 20 20 20 20 20 20 43 50 49 20 20 20 20 20 45 54 58 20 20 20 20 20 3b 45 54 58 1c 15 20   ┆         CPI     ETX     ;ETX   ┆
0x1a00…1a20 20 20 20 20 20 20 20 4a 5a 20 20 20 20 20 20 52 52 45 54 58 15 01 20 01 1e 3b 2a 2a 41 44 41 2a   ┆       JZ      RRETX     ;**ADA*┆
0x1a20…1a40 2a 20 57 48 45 4e 20 54 41 42 20 3d 3e 20 3c 3c 52 54 41 42 3e 3e 3b 1e 01 20 01 1c 20 20 20 20   ┆* WHEN TAB => <<RTAB>>;         ┆
0x1a40…1a60 20 20 20 20 43 50 49 20 20 20 20 20 54 41 42 20 20 20 20 20 3b 54 41 42 1c 14 20 20 20 20 20 20   ┆    CPI     TAB     ;TAB        ┆
0x1a60…1a80 20 20 4a 5a 20 20 20 20 20 20 52 54 41 42 14 01 20 01 26 3b 2a 2a 41 44 41 2a 2a 20 57 48 45 4e   ┆  JZ      RTAB    &;**ADA** WHEN┆
0x1a80…1aa0 20 4c 45 46 54 5f 41 52 52 4f 57 20 3d 3e 20 3c 3c 52 42 41 43 4b 3e 3e 3b 26 01 20 01 2f 20 20   ┆ LEFT_ARROW => <<RBACK>>;&   /  ┆
0x1aa0…1ac0 00 4f 4e 53 20 20 20 20 4b 47 06 14 00 dc 01 11 db 01 09 dc 01 11 00 00 00 20 00 00 00 00 00 00   ┆ ONS    KG                      ┆
0x1ac0…1ae0 20 20 20 20 20 20 43 50 49 20 20 20 20 20 43 4c 45 46 54 20 20 20 3b 4c 45 46 54 20 41 52 52 4f   ┆      CPI     CLEFT   ;LEFT ARRO┆
0x1ae0…1b00 57 20 28 42 41 43 4b 53 50 41 43 45 29 2f 15 20 20 20 20 20 20 20 20 4a 5a 20 20 20 20 20 20 52   ┆W (BACKSPACE)/         JZ      R┆
0x1b00…1b20 42 41 43 4b 15 01 20 01 26 3b 2a 2a 41 44 41 2a 2a 20 57 48 45 4e 20 44 4f 57 4e 5f 41 52 52 4f   ┆BACK    &;**ADA** WHEN DOWN_ARRO┆
0x1b20…1b40 57 20 3d 3e 20 3c 3c 52 53 50 45 43 3e 3e 3b 26 01 20 01 2f 20 20 20 20 20 20 20 20 43 50 49 20   ┆W => <<RSPEC>>;&   /        CPI ┆
0x1b40…1b60 20 20 20 20 43 44 4f 57 4e 20 20 20 3b 44 4f 57 4e 20 41 52 52 4f 57 20 28 4c 49 4e 45 20 46 45   ┆    CDOWN   ;DOWN ARROW (LINE FE┆
0x1b60…1b80 45 44 29 2f 15 20 20 20 20 20 20 20 20 4a 5a 20 20 20 20 20 20 52 53 50 45 43 15 01 20 01 24 3b   ┆ED)/         JZ      RSPEC    $;┆
0x1b80…1ba0 2a 2a 41 44 41 2a 2a 20 57 48 45 4e 20 55 50 5f 41 52 52 4f 57 20 3d 3e 20 3c 3c 52 53 50 45 43   ┆**ADA** WHEN UP_ARROW => <<RSPEC┆
0x1ba0…1bc0 3e 3e 3b 24 01 20 01 21 20 20 20 20 20 20 20 20 43 50 49 20 20 20 20 20 43 55 50 20 20 20 20 20   ┆>>;$   !        CPI     CUP     ┆
0x1bc0…1be0 3b 55 50 20 41 52 52 4f 57 21 15 20 20 20 20 20 20 20 20 4a 5a 20 20 20 20 20 20 52 53 50 45 43   ┆;UP ARROW!         JZ      RSPEC┆
0x1be0…1c00 15 01 20 01 27 3b 2a 2a 41 44 41 2a 2a 20 57 48 45 4e 20 52 49 47 48 54 5f 41 52 52 4f 57 20 3d   ┆    ';**ADA** WHEN RIGHT_ARROW =┆
0x1c00…1c20 3e 20 3c 3c 52 46 57 52 44 3e 3e 3b 27 01 20 01 24 20 20 20 20 20 20 20 20 43 50 49 20 20 20 20   ┆> <<RFWRD>>;'   $        CPI    ┆
0x1c20…1c40 20 43 52 49 47 48 54 20 20 3b 52 49 47 48 54 20 41 52 52 4f 57 24 15 20 20 20 20 20 20 20 20 4a   ┆ CRIGHT  ;RIGHT ARROW$         J┆
0x1c40…1c60 5a 20 20 20 20 20 20 52 46 57 52 44 15 01 20 01 28 3b 2a 2a 41 44 41 2a 2a 20 57 48 45 4e 20 45   ┆Z      RFWRD    (;**ADA** WHEN E┆
0x1c60…1c80 52 41 53 45 5f 54 4f 5f 45 4f 4c 20 3d 3e 20 3c 3c 52 45 52 41 53 3e 3e 3b 28 01 20 01 2f 20 20   ┆RASE_TO_EOL => <<RERAS>>;(   /  ┆
0x1c80…1ca0 20 20 20 20 20 20 43 50 49 20 20 20 20 20 43 45 52 41 53 20 20 20 3b 45 52 41 53 45 20 54 4f 20   ┆      CPI     CERAS   ;ERASE TO ┆
0x1ca0…1cc0 45 4e 44 20 4f 46 20 42 55 46 46 45 52 2f 15 20 20 20 20 20 20 20 20 4a 5a 20 20 20 20 20 20 52   ┆END OF BUFFER/         JZ      R┆
0x1cc0…1ce0 45 52 41 53 15 01 20 01 24 3b 2a 2a 41 44 41 2a 2a 20 57 48 45 4e 20 4f 48 54 45 52 53 20 3d 3e   ┆ERAS    $;**ADA** WHEN OHTERS =>┆
0x1ce0…1d00 20 49 4e 50 55 54 5f 45 52 52 4f 52 3b 24 01 20 01 16 20 20 20 20 20 20 20 20 4a 4d 50 20 20 20   ┆ INPUT_ERROR;$            JMP   ┆
0x1d00…1d20 20 20 49 4e 50 45 52 52 16 01 20 01 0f 3b 2a 2a 41 44 41 2a 2a 20 45 4e 43 41 53 45 0f 01 20 01   ┆  INPERR     ;**ADA** ENCASE    ┆
0x1d20…1d40 0c 20 20 20 20 20 20 20 20 53 4b 49 50 0c 43 3b 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a   ┆         SKIP C;****************┆
0x1d40…1d60 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   ┆********************************┆
0x1d60…1d80 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 3b 43 43 3b 20 49 4e 50 55 54 20 45 52 52 4f   ┆*****************;CC; INPUT ERRO┆
0x1d80…1da0 52 2c 20 45 43 48 4f 20 41 20 42 45 4c 4c 20 43 48 41 52 41 43 54 45 52 20 20 20 20 20 20 20 00   ┆R, ECHO A BELL CHARACTER        ┆

Reduced view