|
|
DataMuseum.dkPresents historical artifacts from the history of: MIKADOS |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about MIKADOS Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 7584 (0x1da0)
Types: TextFile
Notes: Mikados_K
Names: »PRINX.K«
└─⟦378be2382⟧ Bits:30005272 Diverse hjælpeprogrammer: L, L1, L2, A, A1, A2, LINK, ASM, PRINX, WBACK
└─⟦this⟧ »PRINX.K«
;**********************************************************************
;
; 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
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 ┆