DataMuseum.dk

Presents historical artifacts from the history of:

RegneCentralen RC850

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

See our Wiki for more about RegneCentralen RC850

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦0d1fe5534⟧ RcTekst

    Length: 26240 (0x6680)
    Types: RcTekst
    Names: »43G12264.WP«

Derivation

└─⟦975e936c7⟧ Bits:30005865 Manualer - tekstfiler 43-GL afdelingen
    └─⟦this⟧ »43G12264.WP« 

RcTekst


╱04002d4e0a0005000000000201503100000000000000000000000000000000000000000000000000091119212931394149515961697179ff04╱

════════════════════════════════════════════════════════════════════════
↓
↲
┆14┆┆b3┆┆06┆PAGE ┆0b┆↲
↲
╞	.RDXO╞	16↲
↲
;╞	╞	╞	╞	RCSL: 43-GL12264↲
;╞	╞	╞	╞	AUTHOR: KNEH/KDH/FRS↲
;╞	╞	╞	╞	EDITED: 1984.04.04↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
;╞	PROGRAM LISTING↲
;╞	RC800-20 CONCENTRATOR FOR RC3600 SYSTEMS↲
;╞	REV3↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
↲
;KEYWORDS:╞	 RC800-20,PROGRAM LISTING,REV3.↲
;----------------------------------------------------------↲
;ABSTRACT:╞	 THIS PAPER CONTAINS THE LISTING↲
;╞	╞	 OF THE PROGRAM FOR THE MICROPROCESSOR↲
;╞	╞	 8085, IN RC800-20.↲
↲
↲
; SOURCE TAPE:   RCSL 43-GL12263↲
; PROM NO.: ROC 102↲
; OLD PROM ROB 271↲

════════════════════════════════════════════════════════════════════════
RDX╞	8╞	;↲
↲
ERR=33000╞	╞	; ERROR ADDRESS.↲
↲
╞	╞	╞	; ****╞	DEVICE ADDRESS MAP:↲
╞	╞	╞	;╞	+0):╞	READ/WRITE DATA;↲
╞	╞	╞	;╞	+1):╞	STATUS READ,SYNC(NOT USED) WRITE;↲
╞	╞	╞	;╞	+2):╞	READ/WRITE MODE REG 1,2;↲
╞	╞	╞	;╞	+3):╞	READ/WRITE COMMAND REG;↲
↲
HOST=33400╞	╞	; HOST UART ADDRESS.↲
TERM1=HOST+4╞	╞	; TERMINAL1 UART ADDRESS.↲
TERM2=TERM1+4╞	╞	; TERMINAL2 UART ADDRESS.↲
TERM3=TERM2+4╞	╞	; TERMINAL3 UART ADDRESS.↲
PRINT=TERM3+4╞	╞	; PRINTER UART ADDRESS.↲
↲
↲
╞	.LOC╞	30000╞	; *** RAM LAYOUT FOR RC800/20:↲
↲
B1XINP:╞	.BLK╞	2╞	; INPUT-OUTPUT POINTERS↲
B1XOUTP:.BLK 2╞	╞	; TERMINAL1 XMT.↲
B1RINP:╞	.BLK╞	2╞	; INPUT-OUTPUT POINTERS↲
B1ROUTP:.BLK╞	2╞	; TERMINAL1 RECEIVE.↲
B2XINP:╞	.BLK╞	2╞	; INPUT-OUTPUT POINTERS↲
B2XOUTP:.BLK╞	2╞	; TERMINAL2 XMT.↲
B2RINP:╞	.BLK╞	2╞	; INPUT-OUTPUT POINTERS↲
B2ROUTP:.BLK╞	2╞	; TERMINAL 2 RECEIVE.↲
B3XINP:╞	.BLK╞	2╞	; INPUT-OUTPUT POINTERS↲
B3XOUTP:.BLK╞	2╞	; TERMINAL3 XMT.↲
B3RINP:╞	.BLK╞	2╞	; INPUT-OUTPUT POINTERS↲
B3ROUTP:.BLK╞	2╞	; TERMINAL3 RECEIVE.↲
B4XINP:╞	.BLK╞	2╞	; INPUT-OUTPUT POINTERS↲
B4XOUTP:.BLK╞	2╞	; PRINTER FIFO.↲
B4RINP:╞	.BLK╞	2╞	; PRINTER TO HOST MESSAGE↲
B4ROUTP:.BLK╞	2↲
↲
STAB1:╞	0╞	╞	; STATUS BUFFERS:↲
STAB2:╞	0╞	╞	;╞	STATUS BYTES ACCORDING TO 'STATAB';↲
STAB3:╞	0↲
STABP:╞	0↲
STABH:╞	0╞	╞	;@@ UNUSED;↲
↲
STAF1:╞	0╞	╞	; STATUS REQUEST FLAGS:↲
STAF2:╞	0╞	╞	;  <>0:╞	STATUS REQUEST PENDING NOT YET↲
STAF3:╞	0╞	╞	;╞	TRANSFERRED INTO HOST ;╞	╞	↲
STAFP:╞	0↲
STAFH:╞	0╞	╞	;@@ UNUSED;↲

════════════════════════════════════════════════════════════════════════
↲
BUFEM:╞	.BLK╞	16↲
MODE1:╞	0╞	╞	; TERMINAL MODES:↲
MODE2:╞	0╞	╞	;╞	CONTROL = 0, SKIP = 1 AND DATA = 3;↲
MODE3:╞	0↲
↲
↲
MODEX:╞	0╞	╞	; HOST XMT STATE.↲
MODER:╞	0╞	╞	;@@ UNUSED HOST REC STATE.↲
;TEM1:╞	0╞	╞	; TEMPORARY SAVE.↲
;TEM2:╞	0↲
DEVNO:╞	0↲
TEMPS:╞	0╞	╞	; TEMP SAVE TERM UART STATUS READ↲
TEMPD:╞	0╞	╞	; TEMP SAVE TERM UART BYTE READ↲
;LASTAT:╞	0↲
CURSTAT:0↲
LXMT:╞	0↲
HOSTS:╞	0↲
LREC:╞	0↲
↲
PSUM:╞	0╞	╞	; PRINTER CHECKSUM↲
╞	╞	╞	; ACCUMULATOR.↲
GRDY:╞	0╞	╞	; =0 ENABLE AUTOMATIC↲
╞	╞	╞	; XMIT OF PRINT BUF BUSY.↲
╞	↲
B1XSTART:╞	.BLK╞	100↲
B1RSTART:╞	.BLK╞	40↲
B2XSTART:╞	.BLK╞	100↲
B2RSTART:╞	.BLK╞	40↲
B3XSTART:╞	.BLK╞	100↲
B3RSTART:╞	.BLK╞	40↲
B4XSTART:╞	.BLK╞	200↲
B4RSTART:╞	.BLK╞	40↲
B5XSTART:╞	.BLK╞	40╞	; PSEUDO-BUFFER;↲

════════════════════════════════════════════════════════════════════════
LOC╞	4000↲
↲
; TABLE FOR MODE AND COMMANDS TO COMMUNICATION UARTS. ↲
╞	╞	╞	; ****╞	DEVICE PARAM TABLE:↲
↲
MTAB:╞	172╞	╞	; MODE1 HOST.↲
╞	60╞	╞	; MODE2 HOST.↲
╞	47╞	╞	; COMMAND HOST.↲
╞	172╞	╞	; MODE1 TERMINAL1↲
╞	60╞	╞	; MODE2 TERMINAL1↲
╞	47╞	╞	; COMMAND TERMINAL1.↲
╞	172╞	╞	; MODE1 TERMINAL2.↲
╞	60╞	╞	; MODE2 TERMINAL2.↲
╞	47╞	╞	; COMMAND TERMINAL2.↲
╞	172╞	╞	; MODE1 TERMINAL3↲
╞	60╞	╞	; MODE2 TERMINAL3.↲
╞	47╞	╞	; COMMAND TERMINAL3.↲
╞	172╞	╞	; MODE1 PRINT.↲
╞	60╞	╞	; MODE2 PRINT.↲
╞	43╞	╞	; COMMAND PRINT.↲
↲
╞	╞	╞	; ****╞	NB: COMMAND SHOULD INCLUDE THE ERROR↲
╞	╞	╞	;╞	╞	RESET BIT SET (B4),AS THIS BIT↲
╞	╞	╞	;╞	╞	IS AUTOMATICALLY RESET BY UART AFTER↲
╞	╞	╞	;╞	╞	RESET OF ERROR FLAGS IS PERFORMED;↲
↲
; ****╞	DECOMPOSITION OF MODE1,2 AND COMMAND:↲
↲
;╞	MODE1 (172):╞	1 STOP BIT,EVEN PARITY,PARITY ENABLE,7 BITS,↲
;╞	╞	╞	ASYNCR,RATE*16;↲
;╞	VAR:╞	1 STOP BIT MAY BE CHANGED TO 2 STOP BITS BY SWITCH SELECT;↲
;╞	MODE2 (60):╞	EXT XMIT/REC CLOCK + BAUDRATE UNDEF(50);↲
;╞	VAR:╞	BAUD RATE IS OWERWRITTEN BY SWITCH SELECT;↲
;╞	COMMAND (47):╞	FORCE RTS HIGH, NO ERROR RESET, NO FORCE BREAK,↲
;╞	╞	╞	REC ENABLE, DTR HIGH,XMIT ENABLE;↲
;╞	VAR:╞	IF ERROR IS DETECTED ON TERM LINE THEN EROR RESET AND REC,↲
;╞	╞	XMIT DISABLE IS PERFORMED.HEREAFTER NORMAL INIT;(NEW)↲
;╞	╞	AFTER ERROR ON HOST LINE THE TERM LINES ARE GIVEN ERROR ↲
;╞	╞	RESET. WHILE HOST ERROR DTR OF TERM LINES IS FORCED LOW;↲
↲
↲
↲
↲
; JUMP TABLE TO INITIALIZATION AND INTERRUPT ROUTINES.↲
↲
XINIT:╞	JMP╞	STINIT↲
XIREC:╞	JMP╞	IREC↲
XIMIT:╞	JMP╞	IXMT↲

════════════════════════════════════════════════════════════════════════
↲
; TABLE CONTAINING START ADDRESSES FOR↲
; BUFFERS.↲
↲
BUFSTAB:╞	B1XSTART&(377)↲
╞	╞	B1XSTART&(177400)/400↲
╞	╞	B1RSTART&(377)↲
╞	╞	B1RSTART&(177400)/400↲
╞	╞	B2XSTART&(377)↲
╞	╞	B2XSTART&(177400)/400↲
╞	╞	B2RSTART&(377)↲
╞	╞	B2RSTART&(177400)/400↲
╞	╞	B3XSTART&(377)↲
╞	╞	B3XSTART&(177400)/400↲
╞	╞	B3RSTART&(377)↲
╞	╞	B3RSTART&(177400)/400↲
╞	╞	B4XSTART&(377)↲
╞	╞	B4XSTART&(177400)/400↲
╞	╞	B4RSTART&(377)↲
╞	╞	B4RSTART&(177400)/400↲
↲
; TABLE CONTAINING TOP ADDRESSES FOR↲
; BUFFERS.↲
↲
BUFTTAB:╞	(B1RSTART-1)&(377)↲
╞	╞	(B1RSTART-1)&(177400)/400↲
╞	╞	(B2XSTART-1)&(377)↲
╞	╞	(B2XSTART-1)&(177400)/400↲
╞	╞	(B2RSTART-1)&(377)↲
╞	╞	(B2RSTART-1)&(177400)/400↲
╞	╞	(B3XSTART-1)&(377)↲
╞	╞	(B3XSTART-1)&(177400)/400↲
╞	╞	(B3RSTART-1)&(377)↲
╞	╞	(B3RSTART-1)&(177400)/400↲
╞	╞	(B4XSTART-1)&(377)↲
╞	╞	(B4XSTART-1)&(177400)/400↲
╞	╞	(B4RSTART-1)&(377)↲
╞	╞	(B4RSTART-1)&(177400)/400↲
╞	╞	(B5XSTART-1)&(377)↲
╞	╞	(B5XSTART-1)&(177400)/400↲

════════════════════════════════════════════════════════════════════════
↲
↲
; CONVERSION TABLE FOR CHARACTERS <32.↲
; ADDRESSES CONTAINING 377<OCTAL> IS NOT↲
; USED AS TERMINAL ADDRESS OR AS STATUS MESSAGE.↲
↲
KEYTAB:╞	╞	377╞	╞	; 0""↲
╞	╞	3╞	╞	; 1"↲
╞	╞	0╞	╞	; 2"↲
╞	╞	1╞	╞	; 3"↲
╞	╞	2╞	╞	; 4"↲
╞	╞	377╞	╞	; 5"↲
╞	╞	377╞	╞	; 6"↲
╞	╞	377╞	╞	; 7"↲
╞	╞	377╞	╞	; 8"↲
╞	╞	377╞	╞	; 9"↲
╞	╞	377╞	╞	; 10"↲
╞	╞	377╞	╞	; 11"↲
╞	╞	377╞	╞	; 12"↲
╞	╞	377╞	╞	; 13"↲
╞	╞	377╞	╞	; 14"↲
╞	╞	377╞	╞	; 15"↲
╞	╞	6╞	╞	; 16"↲
╞	╞	377╞	╞	; 17"↲
╞	╞	377╞	╞	; 18"↲
╞	╞	377╞	╞	; 19"↲
╞	╞	377╞	╞	; 20"↲
╞	╞	7╞	╞	; 21"↲
╞	╞	377╞	╞	; 22"↲
╞	╞	7╞	╞	; 23"↲
╞	╞	377╞	╞	; 24"↲
╞	╞	377╞	╞	; 25"↲
╞	╞	377╞	╞	; 26"↲
╞	╞	377╞	╞	; 27"↲
╞	╞	377╞	╞	; 28"↲
╞	╞	377╞	╞	; 29"↲
╞	╞	377╞	╞	; 30"↲
╞	╞	377╞	╞	; 31"↲
↲

════════════════════════════════════════════════════════════════════════
↲
; TABLE TO CONVERT THE INTERNAL SYMBOLIC ↲
; ADDRESS (RANGE 0-7) INTO A CHARACTER <32.↲
↲
ADDTAB:╞	╞	2╞	╞	; 0" TERMINAL1.↲
╞	╞	3╞	╞	; 1" TERMINAL2.↲
╞	╞	4╞	╞	; 2" TERMINAL3.↲
╞	╞	1╞	╞	; 3" PRINTER.↲
╞	╞	0╞	╞	; 4" HOST.↲
╞	╞	0╞	╞	; 5" NOT USED.↲
╞	╞	0╞	╞	; 6" NOT USED.↲
╞	╞	0╞	╞	; 7" NOT USED.↲
↲
↲
; TABLE TO CONVERT THE INTERNAL STATUS↲
; INTO A CHARACTER <32.↲
↲
STATAB:╞	0╞	╞	╞	; 0"↲
╞	27╞	╞	╞	; 1",V24 ERROR.↲
╞	25╞	╞	╞	; 2",BUSY.↲
╞	25╞	╞	╞	; 3" @@ SHOULD BE V24 ERROR;↲
╞	20╞	╞	╞	; 4",READY.↲
╞	27╞	╞	╞	; 5",V24 ERROR.↲
╞	25╞	╞	╞	; 6",BUSY.↲
╞	25╞	╞	╞	; 7",BUSY.↲
↲

════════════════════════════════════════════════════════════════════════
; ROUTINE TO PERFORM A NUMBER OF LOGICAL↲
; SHIFT LEFT OF A".↲
; D= NUMBER OF SHIFTS <RANGE 0-7>.↲
↲
LOSH:╞	MOV╞	E,A╞	; SAVE A.↲
╞	MOV╞	A,D↲
╞	CPI╞	0↲
╞	MOV╞	A,E╞	; RESTORE A.↲
╞	RZ╞	╞	; RETURN IF D=0.↲
╞	RLC↲
╞	DCR╞	D↲
╞	JMP╞	LOSH↲
↲
; ROUTINE TO PERFORM A NUMBER OF LOGICAL↲
; SHIFT RIGHT OF A".↲
; D= NUMBER OF SHIFTS <RANGE 0-7>.↲
ROSH:╞	MOV╞	E,A╞	; SAVE A.↲
╞	MOV╞	A,D↲
╞	CPI╞	0↲
╞	MOV╞	A,E╞	; RESTORE A.↲
╞	RZ╞	╞	; RETURN IF D=0.↲
╞	RRC↲
╞	DCR╞	D↲
╞	JMP╞	ROSH↲
↲
↲
; ROUTINE TO SET THE ERROR↲
; INDICATOR.↲
↲
ERR1:╞	MVI╞	A,1↲
╞	STA╞	ERR↲
╞	RET↲
↲
↲
; ROUTINE TO RESET THE ERROR ↲
; INDICATOR.↲
↲
↲
ERR0:╞	XRA╞	A↲
╞	STA╞	ERR↲
╞	RET↲
↲

════════════════════════════════════════════════════════════════════════
↲
; ROUTINE TO READ STATUS FROM A UART.↲
; WHEN CALLED: ↲
; A=╞	0╞	TERMINAL1↲
;╞	1╞	TERMINAL2↲
;╞	2╞	TERMINAL3↲
;╞	3╞	PRINTER↲
;╞	4╞	HOST↲
; HL,DE ARE DESTROYED.↲
RSTAT:╞	RLC↲
╞	RLC↲
╞	MOV╞	E,A↲
╞	XRA╞	A↲
╞	MOV╞	D,A↲
╞	LXI╞	HL,STAT1↲
╞	DAD╞	DE↲
╞	PCHL↲
↲
STAT1:╞	LDA╞	TERM1+1↲
╞	RET↲
╞	LDA╞	TERM2+1↲
╞	RET↲
╞	LDA╞	TERM3+1↲
╞	RET↲
╞	LDA╞	PRINT+1↲
╞	RET↲
╞	LDA╞	HOST+1↲
╞	RET↲

════════════════════════════════════════════════════════════════════════
↲
; ROUTINE TO READ A BYTE FROM AN UART.↲
; WHEN CALLED:↲
; A=╞	0╞	TERMINAL1↲
;╞	1╞	TERMINAL2↲
;╞	2╞	TERMINAL3↲
;╞	3╞	PRINTER↲
;╞	4╞	HOST↲
↲
↲
↲
RDATA:╞	RLC↲
╞	RLC↲
╞	MOV╞	E,A↲
╞	XRA╞	A↲
╞	MOV╞	D,A↲
╞	LXI╞	HL,DIN1↲
╞	DAD╞	DE↲
╞	PCHL↲
↲
DIN1:╞	LDA╞	TERM1↲
╞	RET↲
╞	LDA╞	TERM2↲
╞	RET↲
╞	LDA╞	TERM3↲
╞	RET↲
╞	LDA╞	PRINT↲
╞	RET↲
╞	LDA╞	HOST↲
╞	RET↲
↲

════════════════════════════════════════════════════════════════════════
↲
; ROUTINE TO OUTPUT A BYTE TO AN UART.↲
; WHEN CALLED:↲
; A=╞	0╞	TERMINAL1↲
;╞	1╞	TERMINAL2↲
;╞	2╞	TERMINAL3↲
;╞	3╞	PRINTER.↲
;╞	4╞	HOST↲
↲
;H= DATA↲
↲
↲
↲
WOUT:╞	RLC↲
╞	RLC↲
╞	MOV╞	E,A↲
╞	XRA╞	A↲
╞	MOV╞	D,A↲
╞	MOV╞	A,H↲
╞	LXI╞	HL,DOUT1↲
╞	DAD╞	DE↲
╞	PCHL↲
↲
DOUT1:╞	STA╞	TERM1↲
╞	RET↲
╞	STA╞	TERM2↲
╞	RET↲
╞	STA╞	TERM3↲
╞	RET↲
╞	STA╞	PRINT↲
╞	RET↲
╞	STA╞	HOST↲
╞	RET↲

════════════════════════════════════════════════════════════════════════
ROUTINE TO EMPTY A BUFFER.↲
; INPUT-OUTPUT POINTERS  ARE SET TO BUFFERSTART↲
;╞	AND BUFEM (2*NO + BOOLEAN TYPE) := 0;↲
; A=╞	TERMINAL NO (0-3).↲
; L=╞	XMT/REC TYPE OF BUFER ( 0=XMT,1=REC).↲
↲
EMPT1:╞	PUSH╞	BC↲
╞	PUSH╞	DE↲
╞	PUSH╞	HL↲
╞	RLC↲
╞	ADD╞	L↲
╞	PUSHPSW↲
╞	RLC↲
╞	PUSHPSW↲
╞	LXI╞	BC,BUFSTAB↲
╞	CALL╞	BCADD↲
EMPT2:╞	POPPSW↲
╞	RLC↲
╞	LXI╞	DE,B1XINP↲
╞	CALL╞	DEADD↲
EMPT3:╞	LDAX╞	BC╞	; SET INPUT POINTER↲
╞	STAX╞	DE╞	; = BUFFER START.↲
╞	INX╞	BC↲
╞	INX╞	DE↲
╞	LDAX╞	BC↲
╞	STAX╞	DE↲
╞	INX╞	DE↲
╞	DCX╞	BC↲
╞	LDAX╞	BC╞	; SET OUTPUT POINTER↲
╞	STAX╞	DE╞	; = BUFFER START.↲
╞	INX╞	BC↲
╞	INX╞	DE↲
╞	LDAX╞	BC↲
╞	STAX╞	DE↲
╞	LXI╞	DE,BUFEM↲
╞	POPPSW↲
╞	ADD╞	E↲
╞	MOV╞	E,A↲
╞	JNC╞	EMPT4↲
╞	INR╞	D↲
EMPT4:╞	XRA╞	A↲
╞	STAX╞	DE↲
╞	POP╞	HL↲
╞	POP╞	DE↲
╞	POP╞	BC↲
╞	RET↲

════════════════════════════════════════════════════════════════════════
; ROUTINE TO COMPARE TO BUFFER ELEMENT EACH OF 2 BYTES (POINTERS)↲
; WHEN CALLED: ↲
;╞	BC=╞	POINTER TO  BUF-ELEMENT1↲
;╞	DE=╞	POINTER TO BUF-ELEMENT 2↲
;RETURN: ZERO FLAG=1 IF EQUAL.↲
↲
EQUAL:╞	PUSH╞	HL↲
╞	LDAX╞	BC↲
╞	MOV╞	H,A↲
╞	LDAX╞	DE↲
╞	SUB╞	H↲
╞	JNZ╞	EQU1↲
╞	INX╞	BC↲
╞	INX╞	DE↲
╞	LDAX╞	BC↲
╞	MOV╞	H,A↲
╞	LDAX╞	DE↲
╞	DCX╞	BC↲
╞	DCX╞	DE↲
╞	SUB╞	H↲
EQU1:╞	POP╞	HL↲
╞	RET↲
↲
↲
; ROUTINE TO TEST A BUFFER FOR EMPTY STATE↲
; (INPUT POINTER=OUTPUT POINTER)↲
; WHEN CALLED:↲
; A=╞	TERMINAL NO (0-4)↲
; L=╞	XMT/REC TYPE BUFFER(0=XMT,1=REC).↲
; RETURN:↲
; ZERO-FLAG=1 IF BUFFER EMPTY.↲
↲
B4:╞	PUSH╞	DE↲
╞	LXI╞	DE,BUFEM↲
╞	RLC↲
╞	ADD╞	L↲
╞	ADD╞	E↲
╞	MOV╞	E,A↲
╞	JNC╞	B5↲
╞	INR╞	D↲
B5:╞	LDAX╞	DE↲
╞	CPI╞	0↲
╞	POP╞	DE↲
╞	RET↲

════════════════════════════════════════════════════════════════════════
↲
; ROUTINE TO INPUT A BYTE TO A BUFFER.↲
; INCREMENT INPUT POINTER↲
; IF INPUT POINTER EQUALS TOP OF BUFFER THEN↲
; INPUT POINTER:= BUFFER START.↲
; WHEN CALLED:↲
;╞	A=╞	TERMINAL NO.(0-4)↲
;╞	L=╞	XMT/REC TYPE BUFFER(0=XMT,1=REC).↲
;╞	H=╞	INPUT CHARACTER.↲
↲
↲
B6:╞	PUSH╞	BC↲
╞	PUSH╞	DE↲
╞	PUSH╞	HL↲
╞	LXI╞	BC,B1XINP╞	; GET BUFFER POINTER.↲
╞	MOV╞	H,A↲
╞	RLC↲
╞	ADD╞	L↲
╞	RLC↲
╞	RLC↲
╞	ADD╞	C↲
╞	MOV╞	C,A↲
╞	JNC╞	B7↲
╞	INR╞	B↲
B7:╞	LDAX╞	BC↲
╞	MOV╞	E,A↲
╞	INX╞	BC↲
╞	LDAX╞	BC↲
╞	MOV╞	D,A╞	; DE=CURRENT BUF ADDRESS.↲
╞	XTHL↲
╞	MOV╞	A,H↲
╞	STAX╞	DE↲
╞	XTHL↲
╞	DCX╞	BC╞	; INCREMENT BUFFER POINTER.↲
╞	LDAX╞	BC↲
╞	INR╞	A↲
╞	STAX╞	BC↲
╞	JNZ╞	B8↲
↲
╞	INX╞	BC↲
╞	LDAX╞	BC↲
╞	INR╞	A↲
╞	STAX╞	BC↲
╞	DCX╞	BC╞	; BC=POINTER↲

════════════════════════════════════════════════════════════════════════
↲
B8:╞	MOV╞	A,H↲
╞	RLC↲
╞	ADD╞	L↲
╞	RLC↲
╞	LXI╞	DE,BUFTTAB↲
╞	CALL╞	DEADD╞	; DE= BUFFER MAX.↲
╞	CALL╞	EQUAL╞	; IF (BC)=(DE) THEN↲
╞	JNZ╞	B10╞	; (BC):= BUFFER START.↲
↲
╞	MOV╞	A,H↲
╞	RLC↲
╞	ADD╞	L↲
╞	RLC↲
╞	LXI╞	DE,BUFSTAB↲
╞	CALL╞	DEADD↲
╞	LDAX╞	DE↲
╞	STAX╞	BC↲
╞	INX╞	DE↲
╞	INX╞	BC↲
╞	LDAX╞	DE↲
╞	STAX╞	BC↲
B10:╞	MOV╞	A,H↲
╞	RLC↲
╞	ADD╞	L↲
╞	LXI╞	HL,BUFEM↲
╞	ADD╞	L↲
╞	MOV╞	L,A↲
╞	JNC╞	EB10↲
╞	INR╞	H↲
EB10:╞	INR╞	M↲
╞	POP╞	HL↲
╞	POP╞	DE↲
╞	POP╞	BC↲
╞	RET↲

════════════════════════════════════════════════════════════════════════
; ROUTINE TO OUTPUT A BYTE FROM A BUFFER.↲
; INCREMENT THE OUTPUT POINTER↲
; IF OUTPUT POINTER=TOP OF BUFFER THEN↲
; OUTPUT POINTER:= BUFFER START.↲
; WHEN CALLED:↲
; ╞	A=╞	TERMINAL NO(0-4)↲
;╞	L=╞	XMT/REC BUFFER(0=XMT,1=REC).↲
;RETURN:↲
;╞	H=╞	CHARACTER.↲
↲
↲
B12:╞	PUSH╞	BC╞	; SAVE ACCUMULATORS.↲
╞	PUSH╞	DE↲
╞	PUSH╞	HL↲
╞	LXI╞	BC,B1XINP+2╞	; GET BUFFER POINTER.↲
╞	MOV╞	H,A↲
╞	RLC↲
╞	ADD╞	L↲
╞	RLC↲
╞	RLC↲
╞	ADD╞	C↲
╞	MOV╞	C,A↲
╞	JNC╞	B13↲
╞	INR╞	B↲
B13:╞	LDAX╞	BC↲
╞	MOV╞	E,A↲
╞	INX╞	BC↲
╞	LDAX╞	BC↲
╞	MOV╞	D,A╞	; DE=CURRENT BUFFER ADDRESS.↲
╞	LDAX╞	DE↲
╞	MOV╞	D,H↲
╞	MOV╞	H,A↲
╞	XTHL↲
╞	DCX╞	BC↲
╞	LDAX╞	BC╞	; INCR POINTER.↲
╞	INR╞	A↲
╞	STAX╞	BC↲
╞	JNZ╞	B14↲
↲
╞	INX╞	BC↲
╞	LDAX╞	BC↲
╞	INR╞	A↲
╞	STAX╞	BC↲
╞	DCX╞	BC↲

════════════════════════════════════════════════════════════════════════
↲
B14:╞	MOV╞	A,D╞	; TEST POINTER= BUFFER TOP.↲
╞	MOV╞	H,D↲
╞	RLC↲
╞	ADD╞	L↲
╞	RLC↲
╞	LXI╞	DE,BUFTTAB↲
╞	CALL╞	DEADD╞	; (DE)= BUFFER TOP.↲
╞	CALL╞	EQUAL↲
╞	JNZ╞	B16╞	; IF (BC)=(DE) THEN↲
↲
╞	MOV╞	A,H╞	; (BC):=BUFFER START.↲
╞	RLC↲
╞	ADD╞	L↲
╞	RLC↲
╞	LXI╞	DE,BUFSTAB↲
╞	CALL╞	DEADD↲
B17:╞	LDAX╞	DE↲
╞	STAX╞	BC↲
╞	INX╞	DE↲
╞	INX╞	BC↲
╞	LDAX╞	DE↲
╞	STAX╞	BC↲
B16:╞	MOV╞	A,H↲
╞	RLC↲
╞	ADD╞	L↲
╞	LXI╞	HL,BUFEM↲
╞	ADD╞	L↲
╞	MOV╞	L,A↲
╞	JNC╞	EB16↲
╞	INR╞	H↲
EB16:╞	DCR╞	M↲
╞	POP╞	HL↲
╞	POP╞	DE↲
╞	POP╞	BC↲
╞	RET↲

════════════════════════════════════════════════════════════════════════
↲
; ROUTINE TO ADD THE CONTENTS OF↲
; A" TO THE REGISTER PAIR BC".↲
↲
BCADD:╞	ADD╞	C↲
╞	MOV╞	C,A↲
╞	JNC╞	K1↲
╞	INR╞	B↲
K1:╞	RET↲
↲
↲
; ROUTINE TO ADD THE CONTENTS OF↲
; A" TO THE REGISTER PAIR DE"↲
↲
DEADD:╞	ADD╞	E↲
╞	MOV╞	E,A↲
╞	JNC╞	K2↲
╞	INR╞	D↲
K2:╞	RET↲
↲
; ROUTINE TO ADD THE CONTENTS OF↲
; A" TO THE REGISTER PAIR HL".↲
↲
HLADD:╞	ADD╞	L↲
╞	MOV╞	L,A↲
╞	JNC╞	K3↲
╞	INR╞	H↲
K3:╞	RET↲

════════════════════════════════════════════════════════════════════════
ROUTINE TO WRITE THE CONTENTS OF H"↲
; INTO THE VARIABLE MODEX↲
; WHERE A= TERMINAL NO.↲
↲
WRMODE:╞	LXI╞	BC,MODE1↲
╞	CALL╞	BCADD↲
╞	MOV╞	A,H↲
╞	STAX╞	BC↲
╞	RET↲
↲
; ROUTINE TO READ THE CONTENTS OF THE↲
; VARIABLE MODEX INTO A.↲
; WHEN CALLED A= TERMINAL NO.↲
↲
RDMODE:╞	LXI╞	BC,MODE1↲
╞	CALL╞	BCADD↲
╞	LDAX╞	BC↲
╞	RET↲
↲
↲
; ROUTINE TO PUT LOGICAL 1" INTO THE VARIABLE STAFX↲
; WHEN CALLED A= TERMINAL NO.↲
↲
WRSF:╞	LXI╞	BC,STAF1↲
╞	CALL╞	BCADD↲
╞	MVI╞	A,1↲
╞	STAX╞	BC↲
╞	RET↲
↲
↲
; ROUTINE TO PUT LOGICAL "0" INTO THE VARIABLE "STAFX"↲
; WHEN CALLED A= TERMINAL NUMBER.↲
↲
WRSC:╞	LXI╞	BC,STAF1╞	;↲
╞	CALL╞	BCADD╞	;↲
╞	XRA╞	A╞	;↲
╞	STAX╞	BC╞	;↲
╞	RET╞	╞	;↲
↲
↲
; ROUTINE TO READ THE CONTENTS OF STAFX INTO "A".↲
; WHEN CALLED A= TERMINAL NO.↲
↲
RDSF:╞	LXI╞	BC,STAF1↲
╞	CALL╞	BCADD↲
╞	LDAX╞	BC↲
╞	RET↲

════════════════════════════════════════════════════════════════════════
; ROUTINE TO WRITE THE CONTENTS OF H"↲
; INTO THE VARIABLE STABX.↲
; A= TERMINAL NO.↲
↲
WRSB:╞	LXI╞	BC,STAB1↲
╞	CALL╞	BCADD↲
╞	MOV╞	A,H↲
╞	STAX╞	BC↲
╞	RET↲
↲
; ROUTINE TO READ THE CONTENTS OF VARIABLE↲
; STABX INTO A".↲
; WHEN CALLED A= TERMINAL NO.↲
↲
RDSB:╞	LXI╞	BC,STAB1↲
╞	CALL╞	BCADD↲
╞	LDAX╞	BC↲
╞	RET↲
↲
↲
; ROUTINE TO TEST IF THE CHAR↲
; (<32) IN A" IS ONE OF THE SPECIAL ↲
; CHARACTERS.↲
; THE TABLE KEYTAB" IS USED.↲
; RETURN: ZERO-FLAG= 0 IF SPEC CHAR.↲
↲
SPECH:╞	LXI╞	BC,KEYTAB↲
╞	MOV╞	H,A↲
╞	ANI╞	37↲
╞	CALL╞	BCADD↲
╞	LDAX╞	BC↲
╞	CPI╞	377↲
╞	RET↲
;↲

════════════════════════════════════════════════════════════════════════
ROUTINE TO SERVICE A TERMINAL.↲
; V24 ERRORS ARE UPDATED IN STABX.↲
; TEST RXRDY.↲
; TEST TXRDY.BUFFER EMPTY.↲
; DEVNO= TERMINAL NO.↲
; TEMPS AND TEMPD ARE USED TO SAVE↲
; STATUS AND DATA.↲
↲
TSERV:╞	LDA╞	DEVNO↲
╞	CALL╞	RSTAT╞	╞	; INPUT STATUS.↲
╞	STA╞	TEMPS╞	╞	; FROM UART.↲
╞	LDA╞	DEVNO↲
╞	CALL╞	RDSF↲
╞	CPI╞	0↲
╞	JNZ╞	TSER1╞	; NOT READY TO ACCEPT CHANGE OF STATUS.↲
↲
╞	LDA╞	TEMPS↲
╞	ANI╞	370╞	;@@ CHANGED 81.11.09↲
╞	CPI╞	300↲
╞	JZ╞	CV24E╞	; CLEAR V24 ERROR.↲
↲
╞	DI↲
╞	LDA╞	DEVNO↲
╞	CALL╞	RDSB↲
╞	ANI╞	6↲
╞	MOV╞	H,A↲
╞	INR╞	H↲
╞	LDA╞	DEVNO↲
╞	CALL╞	WRSB╞	; SET V24 ERROR.↲
╞	LDA╞	DEVNO╞	;@@ CHANGED 81.11.09 INIT DEVNO↲
╞	CALL╞	TINIT╞	;@@↲
╞	LDA╞	DEVNO↲
╞	CALL╞	RDMODE↲
╞	CPI╞	1╞	; SKIP MODE.↲
╞	JNZ╞	NOSKIP↲
↲
╞	EI↲
╞	JMP╞	TSER1↲
↲
NOSKIP:╞	LDA╞	DEVNO↲
╞	CALL╞	WRSF╞	; SET XMT STATUS.↲
╞	MVI╞	H,1↲
╞	LDA╞	DEVNO↲
╞	CALL╞	WRMODE╞	; SET SKIP↲
╞	EI↲
╞	JMP╞	TSER1↲

════════════════════════════════════════════════════════════════════════
CV24E:╞	LDA╞	DEVNO↲
╞	CALL╞	RDSB↲
╞	ANI╞	6↲
╞	MOV╞	H,A↲
╞	LDA╞	DEVNO↲
╞	CALL╞	WRSB╞	; CLEAR V24 ERROR.↲
TSER1:↲
╞	LDA╞	TEMPS↲
╞	ANI╞	2╞	╞	; TEST FOR RXRDY=1.↲
╞	JZ╞	NORXR↲
↲
╞	LDA╞	DEVNO↲
╞	CALL╞	RDATA╞	╞	; A= DATA BYTE.↲
╞	STA╞	TEMPD↲
╞	DI↲
╞	LDA╞	DEVNO↲
╞	CALL╞	RDMODE╞	; GET MODE.↲
╞	ANI╞	3↲
╞	CPI╞	0↲
╞	JZ╞	CONMODE╞	╞	; 00= CONTROL MODE.↲
↲
╞	CPI╞	1↲
╞	JZ╞	NORXR╞	╞	; 01= SKIP MODE.↲
↲
╞	LDA╞	TEMPD╞	╞	; ELSE DATA MODE.↲
╞	MOV╞	H,A↲
╞	ANI╞	340╞	╞	; TEST CHAR <32.↲
╞	MOV╞	A,H↲
╞	JZ╞	LESS↲
↲
STCHR:╞	LDA╞	DEVNO╞	╞	; STORE CHAR.↲
╞	MVI╞	L,1╞	╞	; INTO REC BUFFER.↲
╞	DI↲
╞	CALL╞	B6↲
╞	EI↲
╞	JMP╞	NORXR↲
↲
LESS:╞	CALL╞	SPECH╞	╞	; TEST FOR SPEC CHAR.↲
╞	JNZ╞	NORXR↲
↲
SETSK:╞	MVI╞	H,1╞	╞	; SET SKIP MODE.↲
╞	LDA╞	DEVNO↲
╞	CALL╞	WRMODE↲
╞	LDA╞	TEMPD↲
╞	MOV╞	H,A↲
╞	JMP╞	STCHR↲

════════════════════════════════════════════════════════════════════════
↲
CONMODE:LDA╞	TEMPD╞	; CONTROL MODE:↲
╞	MOV╞	H,A╞	;  CHAR <32 AND NOT SPEC THEN↲
╞	ANI╞	340╞	;     STORE INTO REC BUF;↲
╞	JNZ╞	NORXR╞	;  CHAR >=32 THEN SKIP CHAR.↲
↲
╞	MOV╞	A,H↲
╞	CALL╞	SPECH↲
╞	JNZ╞	NORXR↲
↲
╞	JMP╞	SETSK↲
↲
NORXR:╞	EI↲
╞	LDA╞	DEVNO↲
╞	MVI╞	L,0↲
╞	DI↲
╞	CALL╞	B4╞	╞	; TEST XMT- BUFFER EMPTY;↲
╞	EI↲
╞	RZ↲
↲
╞	LDA╞	TEMPS↲
╞	ANI╞	1↲
╞	RZ╞	╞	╞	; TEST TXRDY=1.↲
↲
╞	LDA╞	DEVNO↲
╞	MVI╞	L,0↲
╞	DI↲
╞	CALL╞	B12╞	╞	; READ A CHAR FROM↲
╞	LDA╞	DEVNO╞	╞	; XMT BUF AND↲
╞	CALL╞	WOUT╞	╞	; OUTPUT TO UART.↲
╞	EI╞	╞	╞	;↲
╞	RET↲

════════════════════════════════════════════════════════════════════════
↲
; ROUTINE TO TEST THAT THE 2 BYTES IN BUF1↲
; ARE GREATER THAN THE 2 BYTES IN BUF2.↲
; WHEN CALLED:↲
;╞	BC=POINTER TO BUF1↲
;╞	DE=POINTER TO BUF2↲
;RETURN: CY=1 IF BUF1>BUF2.↲
↲
GREAT:╞	PUSH╞	HL↲
╞	INX╞	BC╞	; MOST SIGNIFICANT↲
╞	INX╞	DE╞	; BYTES.↲
╞	LDAX╞	BC↲
╞	MOV╞	H,A↲
╞	LDAX╞	DE↲
╞	CMP╞	H↲
╞	JC╞	GR1╞	; JUMP IF BUF1(MSB)>↲
╞	JNZ╞	GR1╞	; BUF2(MSB)↲
↲
╞	DCX╞	BC↲
╞	DCX╞	DE↲
╞	LDAX╞	BC↲
╞	MOV╞	H,A↲
╞	LDAX╞	DE↲
╞	CMP╞	H↲
╞	POP╞	HL↲
╞	RET↲
GR1:╞	DCX╞	BC↲
╞	DCX╞	DE↲
╞	POP╞	HL↲
╞	RET↲

════════════════════════════════════════════════════════════════════════
; ROUTINE TO TEST THAT THE PRINTER BUFFER IS↲
; MORE THAN HALF FULL;↲
; LENGTH OF BUFFER B5XSTART-B4XSTART↲
; RETURN: CY=1 IF MORE THAN HALF FULL.↲
↲
HFULL:╞	PUSH╞	DE↲
╞	PUSH╞	BC↲
╞	PUSH╞	HL↲
╞	LXI╞	DE,B4XINP↲
╞	LXI╞	BC,B4XOUTP↲
╞	CALL╞	GREAT╞	; OUTPUT POINTER >↲
╞	JC╞	OGREAT╞	; INPUT POINTER.↲
↲
╞	XRA╞	A╞	; CLEAR CARRY↲
╞	LDAX╞	BC↲
╞	MOV╞	H,A↲
╞	LDAX╞	DE↲
╞	SBB╞	H↲
╞	MOV╞	L,A↲
╞	INX╞	BC↲
╞	INX╞	DE↲
╞	LDAX╞	BC↲
╞	MOV╞	H,A↲
╞	LDAX╞	DE↲
╞	SBB╞	H↲
╞	MOV╞	H,A╞	; HL= RESULT↲
╞	PUSH╞	HL↲
╞	POP╞	BC╞	; BC= BUFFER CONTENTS.↲
╞	LXI╞	DE,(B4RSTART-B4XSTART)/2↲
╞	MOV╞	A,E↲
╞	CMP╞	C↲
╞	POP╞	HL╞	; HALF FULL↲
╞	POP╞	BC↲
╞	POP╞	DE↲
╞	RET↲

════════════════════════════════════════════════════════════════════════
↲
OGREAT:╞	XRA╞	A↲
╞	LDAX╞	DE↲
╞	MOV╞	H,A↲
╞	LDAX╞	BC↲
╞	SBB╞	H↲
╞	MOV╞	L,A↲
╞	INX╞	BC↲
╞	INX╞	DE↲
╞	LDAX╞	DE↲
╞	MOV╞	H,A↲
╞	LDAX╞	BC↲
╞	SBB╞	H↲
╞	MOV╞	H,A╞	; HL= RESULT↲
╞	XCHG↲
╞	LXI╞	BC,(B4RSTART-B4XSTART)/2↲
╞	MOV╞	A,E↲
╞	CMP╞	C↲
╞	POP╞	HL↲
╞	POP╞	BC↲
╞	POP╞	DE↲
╞	RET↲

════════════════════════════════════════════════════════════════════════
↲
; ROUTINE TO SERVICE THE SERIAL PRINTER UART.↲
; V24 ERROR ARE UPDATED IN STABP.↲
; IF FIFO (B4XSTART) IS EMPTY THEN READY↲
; STATUS IS TRANSMITTED.↲
; CHAR FROM FIFO IS TRANSFERRED TO UART↲
; WHEN TXEMPTY.↲
↲
PDEV=╞	3╞	; PRINTER TERMINAL NO.↲
↲
PSERV:╞	LDA╞	PRINT+1↲
╞	ANI╞	200╞	;** TEST V24 ERROR.↲
╞	CPI╞	200╞	;** NOTICE: BYSY IS INPUT TO DATA CARRIER DETECT↲
╞	JZ╞	PNOV24↲
↲
╞	LDA╞	STABP↲
╞	ANI╞	6╞	; SET 1<0.↲
╞	INR╞	A↲
╞	STA╞	STABP↲
╞	JMP╞	PSER1↲
↲
PNOV24:╞	LDA╞	STABP↲
╞	ANI╞	6╞	; RESET V24 ERROR.↲
╞	STA╞	STABP↲
PSER1:╞	LDA╞	PRINT+1↲
╞	ANI╞	301↲
╞	CPI╞	301╞	;** TXEMPTY, NOTICE BYSY = DCD;↲
╞	RNZ↲
↲
╞	MVI╞	A,PDEV↲
╞	MVI╞	L,0↲
╞	DI╞	╞	;↲
╞	CALL╞	B4╞	; TEST FIFO FOR EMPTY.↲
╞	JNZ╞	PSER2╞	;↲
↲
╞	CALL╞	CLBUS╞	; CLEAR BUSY IF EMPTY↲
╞	EI↲
╞	RET↲

════════════════════════════════════════════════════════════════════════
PSER2:╞	MVI╞	A,PDEV↲
╞	MVI╞	L,0↲
╞	DI↲
╞	CALL╞	B12╞	; OUTPUT A BYTE FROM↲
╞	EI↲
╞	MOV╞	A,H╞	; FIFO. MOVE CHAR↲
╞	STA╞	PRINT╞	; TO PRINT UART.↲
↲
╞	MVI╞	A,PDEV↲
╞	MVI╞	L,0↲
╞	DI╞	╞	;↲
╞	CALL╞	B4╞	; IF FIFO NOT EMPTY THEN RETURN↲
╞	JZ╞	PSER3╞	;↲
╞	EI╞	╞	;↲
╞	RET╞	╞	;↲
↲
PSER3:╞	CALL╞	CLBUS╞	;↲
╞	LDA╞	GRDY╞	; FIFO EMPTY:↲
╞	ANA╞	A↲
╞	EI╞	╞	;↲
╞	RZ╞	╞	;↲
↲
╞	DI↲
╞	LDA╞	STABP↲
╞	ANI╞	3↲
╞	ADI╞	4╞	; SET READY STATUS.↲
╞	STA╞	STABP↲
╞	MVI╞	A,1↲
╞	STA╞	STAFP↲
╞	XRA╞	A↲
╞	STA╞	GRDY↲
╞	EI↲
╞	RET↲
↲
CLBUS:╞	LDA╞	STAFP╞	; CLEAR BUSY STATUS.↲
╞	CPI╞	0↲
╞	RNZ╞	╞	;↲
╞	LDA╞	STABP↲
╞	ANI╞	5↲
╞	STA╞	STABP↲
╞	RET╞	╞	; END OF CLEAR BUSY↲
↲

════════════════════════════════════════════════════════════════════════
↲
; PROGRAM TO SCAN THE TERMINALS↲
; AND PRINTER FOR SERVICE.↲
↲
PRO1:╞	XRA╞	A╞	; START WITH TERMINAL1↲
╞	STA╞	DEVNO↲
╞	CALL╞	TSERV↲
╞	LDA╞	DEVNO↲
╞	INR╞	A↲
╞	CPI╞	PDEV↲
╞	JNZ╞	PRO1+1↲
╞	CALL╞	IXMT↲
PRO2:╞	XRA╞	A↲
╞	STA╞	DEVNO↲
╞	CALL╞	TSERV↲
╞	LDA╞	DEVNO↲
╞	INR╞	A↲
╞	CPI╞	PDEV↲
╞	JNZ╞	PRO2+1↲
╞	CALL╞	PSERV↲
↲
; V24 ERROR DETECTED ON THE HOST LINE SHOULD↲
; REMOVE DATA TERMINAL READY TO THE TERMINALS.↲
↲
╞	LDA╞	HOST+1╞	; READ HOST STATUS.↲
╞	ANI╞	300↲
╞	CPI╞	300↲
╞	JNZ╞	HV24E↲
╞	JMP╞	PRO1↲
HV24E:╞	MVI╞	A,45╞	; SET DTR=0.↲
╞	STA╞	TERM1+3↲
╞	STA╞	TERM2+3↲
╞	STA╞	TERM3+3↲
╞	LDA╞	HOST+1↲
HV24S:╞	LDA╞	HOST+1↲
╞	ANI╞	300↲
╞	CPI╞	300↲
╞	JZ╞	RETAX↲
╞	CALL╞	PSERV↲
╞	JMP╞	HV24S↲
RETAX:╞	MVI╞	A,67↲
╞	STA╞	TERM1+3↲
╞	STA╞	TERM2+3↲
╞	STA╞	TERM3+3↲
╞	JMP╞	PRO1↲
↲

════════════════════════════════════════════════════════════════════════
↲
; ROUTINE TO SERVICE HOST RECEIVER↲
; INTERRUPTS.↲
; ALL RECEIVED CHARACTERS ARE TESTED FOR↲
; THE CLASS <32.↲
; IF CHAR<32 THEN THE CHAR IS TESTED BY ↲
; THE KEYTAB TO SEE IF IT IS AN <ADDR> OR↲
; <ENABLE>. ALL OTHER CHARACTERS ARE SEND↲
; TO THE TERMINAL ADDRESSED BY "LREC".↲
; IF <ADDR> IS DETECTED THEN THE CORRESPONDING↲
; TERMINAL IS SET TO CONTROL MODE - <TEGN> IS↲
; SEND TO RC3600.↲
; IF PRINTER FIFO IS MORE THAN HALF FULL THEN↲
; <BUSY> STATUS IS SEND.↲
↲
PERR=╞	50╞	╞	; PARITY ERROR.↲
ENA=╞	6╞	╞	; INTERNAL ENABLE VALUE.↲
TEGN=╞	20╞	╞	↲
PECHA=╞	100╞	╞	; PARITY ERROR SUBSTITUTE.↲
↲
IREC:╞	DI↲
╞	PUSHPSW↲
╞	PUSH╞	HL↲
╞	PUSH╞	BC↲
╞	PUSH╞	DE↲
╞	LDA╞	HOST+1↲
╞	ANI╞	PERR↲
╞	JZ╞	IR1↲
↲
╞	CALL╞	ERR1╞	; SET PARITY ERROR INDICATOR↲
╞	LDA╞	HOST╞	; READ CHAR AND SKIP CHAR (SUBSTITUTE)↲
╞	LDA╞	MTAB+2↲
╞	ADI╞	20╞	; CLEAR ERROR FLAGS.↲
╞	STA╞	HOST+3↲
╞	MVI╞	A,PECHA↲
╞	JMP╞	IR2↲
↲

════════════════════════════════════════════════════════════════════════
↲
IR1:╞	LDA╞	HOST↲
IR2:╞	MOV╞	H,A╞	; H=DATA BYTE.↲
╞	ANI╞	340╞	; TEST IF CHAR<32.↲
╞	JZ╞	IR4↲
↲
IR3:╞	LDA╞	LREC╞	; CHAR INTO XMT BUFFER↲
╞	MVI╞	L,0╞	; GIVEN BY "LREC".↲
╞	CALL╞	B6↲
╞	LDA╞	LREC↲
╞	CPI╞	PDEV╞	; IS IT PRINTER↲
╞	JZ╞	PFULL↲
↲
REND:╞	POP╞	DE↲
╞	POP╞	BC↲
╞	POP╞	HL↲
╞	POPPSW↲
╞	EI↲
╞	RET↲

════════════════════════════════════════════════════════════════════════
4:╞	MOV╞	A,H╞	; IF NOT SPECIAL CHAR THEN RETURN↲
╞	CALL╞	SPECH╞	; ELSE↲
╞	JZ╞	IR3╞	; ↲
↲
╞	CPI╞	ENA╞	; BEGIN↲
╞	JNZ╞	IR5╞	;  IF <ENABLE> RECEIVED THEN↲
↲
ENABL:╞	LDA╞	LREC╞	;BEGIN↲
╞	CPI╞	PDEV╞	; IF DEVNO = PRINTER THEN EXIT TO SUM-ANSWER;↲
╞	JZ╞	SUMANS╞	;↲
╞	CALL╞	RDMODE╞	; IF DEV-MODE = CONTROL THEN RETURN;↲
╞	CPI╞	0╞	;↲
╞	JNZ╞	REND╞	;↲
╞	LDA╞	LREC╞	;↲
╞	MVI╞	H,3╞	; SET DEV-MODE := DATA-MODE AND RETURN;↲
╞	CALL╞	WRMODE╞	;↲
╞	JMP╞	REND╞	;END;↲
↲
IR5:╞	CPI╞	ENA+1↲
╞	JZ╞	REND↲
↲
╞	STA╞	LREC╞	; SET NEW <ADDR>↲
╞	CPI╞	PDEV╞	; IS IT PRINTER↲
╞	JZ╞	PANS╞	; <ADDR>= PRINTER↲
╞	LDA╞	LREC╞	; ELSE TERMINAL↲
╞	CALL╞	RDMODE↲
╞	ANI╞	2↲
╞	JNZ╞	DMODE↲
↲
╞	MVI╞	H,0↲
╞	LDA╞	LREC╞	; SET TERMINAL INTO CONTROL MODE;↲
╞	CALL╞	WRMODE↲
╞	LDA╞	LREC╞	; NOT DATA MODE.↲
╞	CALL╞	RDSB↲
╞	CPI╞	0╞	; ***** ERROR SHOULD BE " ANI 5" FIRST *****↲
╞	JZ╞	REND↲
╞	LDA╞	LREC↲
╞	CALL╞	WRSF╞	; SET STAFX↲
╞	JMP╞	REND↲
↲
DMODE:╞	MVI╞	H,TEGN↲
╞	LDA╞	LREC╞	; PUT <TEGN> INTO↲
╞	MVI╞	L,1╞	; REC BUFFER.↲
╞	CALL╞	B6↲
╞	MVI╞	H,0↲
╞	LDA╞	LREC╞	; SET TERMINAL↲
╞	CALL╞	WRMODE╞	; TO CONTROL MODE.↲
╞	JMP╞	REND↲

════════════════════════════════════════════════════════════════════════
PFULL:╞	LDA╞	PSUM↲
╞	ADD╞	H↲
╞	STA╞	PSUM↲
 ╞	CALL╞	HFULL╞	; PRINTER FIFO FULL ?↲
╞	JNC╞	REND↲
↲
╞	LDA╞	STABP╞	; ** PRINTER BUFFER > 1/2 FULL :↲
╞	ANI╞	5↲
╞	ADI╞	2╞	; SET BUSY STATUS.↲
╞	STA╞	STABP↲
╞	LDA╞	GRDY↲
╞	ANA╞	A↲
╞	JNZ╞	REND↲
↲
╞	MVI╞	A,1↲
╞	STA╞	STAFP↲
╞	STA╞	GRDY↲
╞	JMP╞	REND↲
↲
PANS:╞	LDA╞	STABP╞	; STATUS ANSWER↲
╞	ANI╞	3╞	;↲
╞	CPI╞	0↲
╞	JZ╞	REND╞	; IF <ENABLE> IS↲
╞	MVI╞	A,1╞	; SEND TO PRINTER.↲
╞	STA╞	STAFP↲
╞	JMP╞	REND↲
↲
SUMANS:╞	LDA╞	PSUM╞	; XMT PSUM TO HOST↲
╞	ANI╞	177╞	; AND PSUM:=0.↲
╞	MOV╞	H,A↲
╞	ANI╞	340↲
╞	JNZ╞	LCHEC↲
╞	MVI╞	A,40↲
╞	ADD╞	H↲
╞	MOV╞	H,A↲
LCHEC:╞	MVI╞	A,PDEV↲
╞	MVI╞	L,1↲
╞	CALL╞	B6↲
╞	XRA╞	A↲
╞	STA╞	PSUM↲
╞	JMP╞	REND↲

════════════════════════════════════════════════════════════════════════
↲
; ROUTINE TO SERVICE HOST TRANSMITTER↲
; INTERRUPTS.↲
; XMT MODES (MODEX):↲
; 1=╞	NEXT SHOULD BE STATUS.↲
; 2=╞	TEST STATUS FLAGS.↲
; 5=╞	NEXT SHOULD BE DATA.↲
; 6=╞	TEST STATUS FLAGS.↲
↲
NSTAT=╞	1↲
TSTAT=╞	2╞	; USED INITIALLY ONLY (LXMT = OF !!!!!);↲
NDAT=╞	5↲
TSTAF=╞	6╞	; USED ELSEWHERE;↲
TXRDY=╞	1↲
↲
IXMT:╞	DI↲
╞	PUSHPSW↲
╞	PUSH╞	HL↲
╞	PUSH╞	BC↲
╞	PUSH╞	DE↲
╞	LDA╞	HOST+1╞	; TEST STATUS FOR TXRDY.↲
╞	ANI╞	TXRDY↲
╞	JZ╞	XEND↲
↲
╞	LDA╞	MODEX↲
╞	CPI╞	NSTAT╞	; NEXT STATUS↲
╞	JZ╞	XMTST↲

════════════════════════════════════════════════════════════════════════
↲
╞	CPI╞	NDAT╞	; NEXT DATA↲
╞	JZ╞	XMTD↲
╞	MVI╞	H,0↲
╞	LXI╞	BC,STAF1╞	; LOOP TO TEST↲
STALOO:╞	LDAX╞	BC╞	╞	; STATUS FLAGS↲
╞	INX╞	BC↲
╞	ORA╞	A↲
╞	JNZ╞	XADDS╞	; XMIT ADDRESS↲
╞	INR╞	H╞	; H= TERM ADDR.↲
╞	MOV╞	A,H↲
╞	CPI╞	PDEV+1↲
╞	JNZ╞	STALOO↲
╞	XRA╞	A╞	; TEST DATA BUFFERS.↲
DLOOP:╞	STA╞	CURSTAT↲
╞	MVI╞	L,1↲
╞	CALL╞	B4╞	; EMPTY?↲
╞	JNZ╞	XADDD↲
╞	LDA╞	CURSTAT↲
╞	INR╞	A↲
╞	CPI╞	PDEV+1↲
╞	JNZ╞	DLOOP↲
XEND:╞	POP╞	DE↲
╞	POP╞	BC↲
╞	POP╞	HL↲
╞	POPPSW↲
╞	EI↲
╞	RET↲

════════════════════════════════════════════════════════════════════════
↲
; TRANSMIT STATUS↲
; "LXMT"= TERMINAL NO.↲
XMTST:╞	LDA╞	LXMT↲
╞	CALL╞	RDSB↲
╞	LXI╞	DE,STATAB↲
╞	CALL╞	DEADD↲
╞	LDAX╞	DE╞	; CONVERT STATUS↲
╞	STA╞	HOST↲
╞	LDA╞	LXMT↲
╞	CALL╞	WRSC↲
╞	MVI╞	A,TSTAF↲
╞	STA╞	MODEX↲
╞	JMP╞	XEND↲
↲
↲
; TRANSMIT DATA↲
; LXMT= TERMINAL NO.↲
↲
XMTD:╞	LDA╞	LXMT↲
╞	MVI╞	L,1╞	; GET BYTE.↲
╞	CALL╞	B12╞	;  FROM REC BUFFER;↲
╞	MOV╞	A,H↲
╞	STA╞	HOST╞	; CHAR TO HOST UART↲
╞	ANI╞	340↲
╞	JZ╞	NREP↲
╞	LDA╞	LXMT↲
╞	CPI╞	PDEV↲
╞	JZ╞	NREP↲
╞	MOV╞	A,H╞	; REPEAT CHAR (XMIT CHAR)↲
╞	MVI╞	L,0╞	; TO TERMINAL↲
╞	LDA╞	LXMT↲
╞	CALL╞	B6╞	; BUF IN↲
NREP:╞	LDA╞	LXMT↲
╞	MVI╞	L,1↲
╞	CALL╞	B4╞	; EMPTY?↲
╞	JNZ╞	XEND↲
╞	MVI╞	A,TSTAF↲
╞	STA╞	MODEX↲
╞	JMP╞	XEND↲

════════════════════════════════════════════════════════════════════════
↲
; TRANSMIT <ADDR> IN STATUS SEQUENCE.↲
↲
↲
XADDS:╞	LDA╞	LXMT╞	; H= TERM NO.↲
╞	SUB╞	H↲
╞	JZ╞	XADDO↲
↲
╞	MOV╞	A,H↲
╞	STA╞	LXMT↲
╞	LXI╞	BC,ADDTAB↲
╞	CALL╞	BCADD↲
╞	LDAX╞	BC↲
╞	STA╞	HOST╞	; <ADDR> TO UART↲
XADDO:╞	MVI╞	A,NSTAT↲
╞	STA╞	MODEX↲
╞	JMP╞	XEND↲
↲
; TRANSMIT ADDRESS IN DATA SEQUENCE.↲
↲
XADDD:╞	LDA╞	CURSTAT╞	; SAVE TERM NO.↲
╞	MOV╞	H,A↲
╞	LDA╞	LXMT↲
╞	SUB╞	H↲
╞	JZ╞	XADDK↲
↲
╞	MOV╞	A,H↲
╞	STA╞	LXMT↲
╞	LXI╞	BC,ADDTAB↲
╞	CALL╞	BCADD↲
╞	LDAX╞	BC↲
╞	STA╞	HOST╞	; <ADDR> TO UART↲
XADDK:╞	MVI╞	A,NDAT↲
╞	STA╞	MODEX↲
╞	JMP╞	XEND↲

════════════════════════════════════════════════════════════════════════
↲
; ROUTINE TO INITIALIZE AN UART.↲
; WHEN CALLED:↲
; BC=╞	POINTER TO MODE TAB(MTAB)↲
; DE=╞	MODE REG DESTINATION↲
; A=╞	BAUD RATE↲
; L= NO. OF STOPBITS( 1<7 IF 2 STOPBITS, 0 IF 1 STOPBIT).↲
INITU:╞	MOV╞	H,A↲
╞	LDAX╞	BC↲
╞	ADD╞	L↲
╞	STAX╞	DE╞	; SET MODE1↲
╞	INX╞	BC↲
╞	LDAX╞	BC↲
╞	ADD╞	H↲
╞	STAX╞	DE╞	; SET MODE2↲
╞	INX╞	BC↲
╞	INX╞	DE↲
╞	LDAX╞	BC↲
╞	STAX╞	DE╞	; SET COMMAND↲
╞	RET↲

════════════════════════════════════════════════════════════════════════
↲
; INITIALIZATION OF UARTS.↲
STRP1=╞	32000╞	; STRAP FIELD1↲
STRP2=╞	32400╞	; STRAP FIELD2↲
↲
SPINIT=╞	31777╞	; STACK POINTER INIT VALUE.↲
↲
STINIT:╞	LXI╞	DE,HOST+2↲
╞	LXI╞	SP,SPINIT↲
╞	LXI╞	BC,MTAB↲
╞	LDA╞	STRP2↲
╞	ANI╞	200↲
╞	MOV╞	L,A↲
╞	LDA╞	STRP2↲
╞	ANI╞	17↲
╞	CALL╞	INITU╞	; INIT HOST.↲
╞	LXI╞	DE,TERM1+2↲
╞	LXI╞	BC,MTAB+3↲
╞	LDA╞	STRP2↲
╞	RLC↲
╞	ANI╞	200↲
╞	MOV╞	L,A↲
╞	LDA╞	STRP1↲
╞	ANI╞	17↲
╞	CALL╞	INITU╞	; INIT TERMINAL1↲
╞	LDA╞	STRP2↲
╞	RLC↲
╞	ANI╞	200↲
╞	MOV╞	L,A↲
╞	LDA╞	STRP1↲
╞	ANI╞	17↲
╞	LXI╞	DE,TERM2+2↲
╞	LXI╞	BC,MTAB+6↲
╞	CALL╞	INITU╞	; INIT TERMINAL2↲

════════════════════════════════════════════════════════════════════════
↲
╞	LDA╞	STRP2↲
╞	RLC↲
╞	ANI╞	200↲
╞	MOV╞	L,A↲
╞	LDA╞	STRP1↲
╞	ANI╞	17↲
╞	LXI╞	DE,TERM3+2↲
╞	LXI╞	BC,MTAB+11↲
╞	CALL╞	INITU↲
╞	LDA╞	STRP2↲
╞	RLC↲
╞	RLC↲
╞	ANI╞	200↲
╞	MOV╞	L,A↲
╞	LDA╞	STRP1↲
╞	MVI╞	D,4↲
╞	CALL╞	ROSH↲
╞	ANI╞	17↲
╞	LXI╞	DE,PRINT+2↲
╞	LXI╞	BC,MTAB+14↲
╞	CALL╞	INITU↲
↲
↲
; INIT BUFFERS.↲
↲
╞	MVI╞	H,0↲
╞	MVI╞	L,0↲
╞	MOV╞	A,H↲
INI1:╞	CALL╞	EMPT1╞	; EMPTY XMT BUFFERS.↲
╞	INR╞	H↲
╞	MOV╞	A,H↲
╞	CPI╞	PDEV+1↲
╞	JNZ╞	INI1↲
↲
╞	MVI╞	H,0↲
╞	MVI╞	L,1↲
╞	MOV╞	A,H↲
INI2:╞	CALL╞	EMPT1╞	; EMPTY REC BUFFERS.↲
╞	INR╞	H↲
╞	MOV╞	A,H↲
╞	CPI╞	PDEV+1↲
╞	JNZ╞	INI2↲

════════════════════════════════════════════════════════════════════════
↲
; RESET STABX-- STAFX VARIABLES.↲
↲
↲
╞	MVI╞	D,(GRDY-STAB1)+1↲
╞	LXI╞	BC╞	STAB1↲
SINI1:╞	XRA╞	A↲
╞	STAX╞	BC↲
╞	INX╞	BC↲
╞	DCR╞	D↲
╞	JNZ╞	SINI1↲
↲
╞	LXI╞	BC,STABP╞	; INIT READY: ** CHANGE TO 'STAB1': INCL TERM **↲
╞	MVI╞	D,1╞	╞	;   ** CHANGE TO 4: INCLUDE TERMINALS **↲
╞	MVI╞	A,4╞	╞	;↲
SINI2:╞	STAX╞	BC╞	╞	;↲
╞	INX╞	BC╞	╞	;↲
╞	DCR╞	D╞	╞	;↲
╞	JNZ╞	SINI2╞	╞	;↲
↲
↲
; SET TERMINALS TO SKIP MODE.↲
╞	LXI╞	BC,MODE1↲
╞	MVI╞	A,1↲
╞	STAX╞	BC↲
╞	INX╞	BC↲
╞	STAX╞	BC↲
╞	INX╞	BC↲
╞	STAX╞	BC↲
╞	INX╞	BC↲
╞	MVI╞	A,TSTAT╞	; SET MODEX↲
╞	STAX╞	BC↲
╞	MVI╞	A,17↲
╞	STA╞	LXMT↲
╞	XRA╞	A↲
╞	STA╞	LREC↲
╞	STA╞	PSUM↲
╞	CALL╞	ERR0↲
╞	XRA╞	A↲
╞	STA╞	GRDY↲
╞	MVI╞	A,11↲
╞	SIM↲
╞	EI↲
╞	JMP╞	PRO1↲

════════════════════════════════════════════════════════════════════════
; ****╞	ROUTINE TO INIT (REINITIALIZE) ONE TERMINAL↲
; ****↲
;╞	PARAM:╞	REG A = DEVNO (0..2);↲
↲
TINIT:╞	MOV╞	H,A╞	;BEGIN↲
╞	RLC╞	╞	; RESET UART:↲
╞	RLC╞	╞	;↲
╞	LXI╞	DE,TERM1+3╞	;↲
╞	CALL╞	DEADD╞	;   COMMAND := RESET ERROR,DISABLE REC,XMIT;↲
╞	MVI╞	A,20╞	; END RESET;↲
╞	STAX╞	DE╞	;↲
↲
╞	XRA╞	A╞	; REINITIALIZE UART:↲
╞	MOV╞	D,H╞	;↲
╞	ADD╞	D╞	;↲
╞	ADD╞	D╞	;↲
╞	ADD╞	D╞	;↲
╞	LXI╞	BC,MTAB+3╞	;↲
╞	CALL╞	BCADD╞	;   GET PARAM TABLE ADDRESS;↲
╞	MOV╞	A,H╞	;↲
╞	RLC╞	╞	;↲
╞	RLC╞	╞	;↲
╞	LXI╞	DE,TERM1+2╞	;↲
╞	CALL╞	DEADD╞	;    GET DEVICE ADDRESS TABLE ADDRESS;;↲
╞	PUSH╞	HL╞	;↲
╞	LDA╞	STRP2╞	;↲
╞	RLC╞	╞	;↲
╞	ANI╞	200╞	;    GET 'STOP BITS SELECT';↲
╞	MOV╞	L,A╞	;↲
╞	LDA╞	STRP1╞	;    GET 'BAUD RATE SELECT';↲
╞	ANI╞	17╞	;↲
╞	CALL╞	INITU╞	;    INIT UART (PARAM,DEVICE);↲
╞	POP╞	HL╞	; END REINITIALIZE;↲
;↲

════════════════════════════════════════════════════════════════════════
╞	MVI╞	L,0╞	;↲
╞	MOV╞	A,H╞	;↲
╞	CALL╞	EMPT1╞	; EMPTY XMIT BUF;↲
╞	MVI╞	L,1╞	;↲
╞	MOV╞	A,H╞	;↲
╞	CALL╞	EMPT1╞	; EMPTY REC BUF;↲
╞	RET╞	╞	;↲
↲
;╞	MOV╞	E,H╞	;↲
;╞	XRA╞	A╞	;↲
;╞	MOV╞	D,A╞	;↲
;╞	LXI╞	HL,MODE1╞	;↲
;╞	DAD╞	DE╞	;↲
;╞	MVI╞	A,1╞	;↲
;╞	MOV╞	M,A╞	; RESET TERMINAL MODE TO CONTROL MODE;↲
;╞	LXI╞	HL,STAB1╞	;↲
;╞	DAD╞	DE╞	;↲
;╞	MVI╞	A,1╞	;↲
;╞	MOV╞	M,A╞	; SET STATUS REM TO V24-ERROR STATUS;↲
;╞	LXI╞	HL,STAF1╞	;↲
;╞	DAD╞	DE╞	;↲
;╞	MOV╞	M,A╞	; SET STATUS FLAG 'STATUS NOT PROCESSED';↲
;╞	RET╞	╞	;END INIT;↲

════════════════════════════════════════════════════════════════════════
↲
╞	.LOC╞	0↲
↲
╞	JMP╞	XINIT╞	; POWER RESTART.↲
↲
╞	.LOC╞	70↲
╞	JMP╞	XIREC╞	; HOST REC INTERRUPT.↲
╞	RET↲
╞	JMP╞	XIMIT╞	; HOST XMT INTERRUPT.↲
╞	RET↲
↲
╞	.END↲
↲

════════════════════════════════════════════════════════════════════════
┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆00┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆┆1a┆

OctetView

0x0000…0020 (0,)  00 00 00 00 00 00 00 00 3e 02 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 4e 00 00 00   ┆        >                   N   ┆
0x0020…0040       00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
0x0040…0047       00 00 00 00 00 00 00                                                                              ┆       ┆
0x0047…0080       Params {
0x0047…0080         04 00 2d 4e 0a 00 05 00 00 00 00 02 01 50 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆  -N         P1                 ┆
0x0047…0080         00 00 00 00 00 00 00 00 09 11 19 21 29 31 39 41 49 51 59 61 69 71 79 ff 04                        ┆           !)19AIQYaiqy  ┆
0x0047…0080       }
0x0080…0083       FormFeed {
0x0080…0083         0c 80 80                                                                                          ┆   ┆
0x0080…0083       }
0x0083…00a0       0a 0d 0a 14 b3 06 50 41 47 45 20 0b 0d 0a 0d 0a 09 2e 52 44 58 4f 09 31 36 0d 0a 0d 0a            ┆      PAGE       .RDXO 16    ┆
0x00a0…00c0       3b 09 09 09 09 52 43 53 4c 3a 20 34 33 2d 47 4c 31 32 32 36 34 0d 0a 3b 09 09 09 09 41 55 54 48   ┆;    RCSL: 43-GL12264  ;    AUTH┆
0x00c0…00e0       4f 52 3a 20 4b 4e 45 48 2f 4b 44 48 2f 46 52 53 0d 0a 3b 09 09 09 09 45 44 49 54 45 44 3a 20 31   ┆OR: KNEH/KDH/FRS  ;    EDITED: 1┆
0x00e0…0100       39 38 34 2e 30 34 2e 30 34 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d   ┆984.04.04                       ┆
0x0100…0120       0a 0d 0a 0d 0a 0d 0a 3b 09 50 52 4f 47 52 41 4d 20 4c 49 53 54 49 4e 47 0d 0a 3b 09 52 43 38 30   ┆       ; PROGRAM LISTING  ; RC80┆
0x0120…0140       30 2d 32 30 20 43 4f 4e 43 45 4e 54 52 41 54 4f 52 20 46 4f 52 20 52 43 33 36 30 30 20 53 59 53   ┆0-20 CONCENTRATOR FOR RC3600 SYS┆
0x0140…0160       54 45 4d 53 0d 0a 3b 09 52 45 56 33 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a 0d 0a   ┆TEMS  ; REV3                    ┆
0x0160…0180       0d 0a 0d 0a 3b 4b 45 59 57 4f 52 44 53 3a 09 20 52 43 38 30 30 2d 32 30 2c 50 52 4f 47 52 41 4d   ┆    ;KEYWORDS:  RC800-20,PROGRAM┆
0x0180…01a0       20 4c 49 53 54 49 4e 47 2c 52 45 56 33 2e 0d 0a 3b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆ LISTING,REV3.  ;---------------┆
0x01a0…01c0       2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d   ┆--------------------------------┆
0x01c0…01e0       2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 3b 41 42 53 54 52 41 43 54 3a 09 20 54 48 49 53 20 50 41   ┆-----------  ;ABSTRACT:  THIS PA┆
0x01e0…0200       50 45 52 20 43 4f 4e 54 41 49 4e 53 20 54 48 45 20 4c 49 53 54 49 4e 47 0d 0a 3b 09 09 20 4f 46   ┆PER CONTAINS THE LISTING  ;   OF┆
0x0200…0220 (1,)  20 54 48 45 20 50 52 4f 47 52 41 4d 20 46 4f 52 20 54 48 45 20 4d 49 43 52 4f 50 52 4f 43 45 53   ┆ THE PROGRAM FOR THE MICROPROCES┆
0x0220…0240       53 4f 52 0d 0a 3b 09 09 20 38 30 38 35 2c 20 49 4e 20 52 43 38 30 30 2d 32 30 2e 0d 0a 0d 0a 0d   ┆SOR  ;   8085, IN RC800-20.     ┆
0x0240…0260       0a 3b 20 53 4f 55 52 43 45 20 54 41 50 45 3a 20 20 20 52 43 53 4c 20 34 33 2d 47 4c 31 32 32 36   ┆ ; SOURCE TAPE:   RCSL 43-GL1226┆
0x0260…0280       33 0d 0a 3b 20 50 52 4f 4d 20 4e 4f 2e 3a 20 52 4f 43 20 31 30 32 0d 0a 3b 20 4f 4c 44 20 50 52   ┆3  ; PROM NO.: ROC 102  ; OLD PR┆
0x0280…028c       4f 4d 20 52 4f 42 20 32 37 31 0d 0a                                                               ┆OM ROB 271  ┆
0x028c…028f       FormFeed {
0x028c…028f         0c 83 95                                                                                          ┆   ┆
0x028c…028f       }
0x028f…02a0       52 44 58 09 38 09 3b 0d 0a 0d 0a 45 52 52 3d 33 33                                                ┆RDX 8 ;    ERR=33┆
0x02a0…02c0       30 30 30 09 09 3b 20 45 52 52 4f 52 20 41 44 44 52 45 53 53 2e 0d 0a 0d 0a 09 09 09 3b 20 2a 2a   ┆000  ; ERROR ADDRESS.       ; **┆
0x02c0…02e0       2a 2a 09 44 45 56 49 43 45 20 41 44 44 52 45 53 53 20 4d 41 50 3a 0d 0a 09 09 09 3b 09 2b 30 29   ┆** DEVICE ADDRESS MAP:     ; +0)┆
0x02e0…0300       3a 09 52 45 41 44 2f 57 52 49 54 45 20 44 41 54 41 3b 0d 0a 09 09 09 3b 09 2b 31 29 3a 09 53 54   ┆: READ/WRITE DATA;     ; +1): ST┆
0x0300…0320       41 54 55 53 20 52 45 41 44 2c 53 59 4e 43 28 4e 4f 54 20 55 53 45 44 29 20 57 52 49 54 45 3b 0d   ┆ATUS READ,SYNC(NOT USED) WRITE; ┆
0x0320…0340       0a 09 09 09 3b 09 2b 32 29 3a 09 52 45 41 44 2f 57 52 49 54 45 20 4d 4f 44 45 20 52 45 47 20 31   ┆    ; +2): READ/WRITE MODE REG 1┆
0x0340…0360       2c 32 3b 0d 0a 09 09 09 3b 09 2b 33 29 3a 09 52 45 41 44 2f 57 52 49 54 45 20 43 4f 4d 4d 41 4e   ┆,2;     ; +3): READ/WRITE COMMAN┆
0x0360…0380       44 20 52 45 47 3b 0d 0a 0d 0a 48 4f 53 54 3d 33 33 34 30 30 09 09 3b 20 48 4f 53 54 20 55 41 52   ┆D REG;    HOST=33400  ; HOST UAR┆
0x0380…03a0       54 20 41 44 44 52 45 53 53 2e 0d 0a 54 45 52 4d 31 3d 48 4f 53 54 2b 34 09 09 3b 20 54 45 52 4d   ┆T ADDRESS.  TERM1=HOST+4  ; TERM┆
0x03a0…03c0       49 4e 41 4c 31 20 55 41 52 54 20 41 44 44 52 45 53 53 2e 0d 0a 54 45 52 4d 32 3d 54 45 52 4d 31   ┆INAL1 UART ADDRESS.  TERM2=TERM1┆
0x03c0…03e0       2b 34 09 09 3b 20 54 45 52 4d 49 4e 41 4c 32 20 55 41 52 54 20 41 44 44 52 45 53 53 2e 0d 0a 54   ┆+4  ; TERMINAL2 UART ADDRESS.  T┆
0x03e0…0400       45 52 4d 33 3d 54 45 52 4d 32 2b 34 09 09 3b 20 54 45 52 4d 49 4e 41 4c 33 20 55 41 52 54 20 41   ┆ERM3=TERM2+4  ; TERMINAL3 UART A┆
0x0400…0420 (2,)  44 44 52 45 53 53 2e 0d 0a 50 52 49 4e 54 3d 54 45 52 4d 33 2b 34 09 09 3b 20 50 52 49 4e 54 45   ┆DDRESS.  PRINT=TERM3+4  ; PRINTE┆
0x0420…0440       52 20 55 41 52 54 20 41 44 44 52 45 53 53 2e 0d 0a 0d 0a 0d 0a 09 2e 4c 4f 43 09 33 30 30 30 30   ┆R UART ADDRESS.       .LOC 30000┆
0x0440…0460       09 3b 20 2a 2a 2a 20 52 41 4d 20 4c 41 59 4f 55 54 20 46 4f 52 20 52 43 38 30 30 2f 32 30 3a 0d   ┆ ; *** RAM LAYOUT FOR RC800/20: ┆
0x0460…0480       0a 0d 0a 42 31 58 49 4e 50 3a 09 2e 42 4c 4b 09 32 09 3b 20 49 4e 50 55 54 2d 4f 55 54 50 55 54   ┆   B1XINP: .BLK 2 ; INPUT-OUTPUT┆
0x0480…04a0       20 50 4f 49 4e 54 45 52 53 0d 0a 42 31 58 4f 55 54 50 3a 2e 42 4c 4b 20 32 09 09 3b 20 54 45 52   ┆ POINTERS  B1XOUTP:.BLK 2  ; TER┆
0x04a0…04c0       4d 49 4e 41 4c 31 20 58 4d 54 2e 0d 0a 42 31 52 49 4e 50 3a 09 2e 42 4c 4b 09 32 09 3b 20 49 4e   ┆MINAL1 XMT.  B1RINP: .BLK 2 ; IN┆
0x04c0…04e0       50 55 54 2d 4f 55 54 50 55 54 20 50 4f 49 4e 54 45 52 53 0d 0a 42 31 52 4f 55 54 50 3a 2e 42 4c   ┆PUT-OUTPUT POINTERS  B1ROUTP:.BL┆
0x04e0…0500       4b 09 32 09 3b 20 54 45 52 4d 49 4e 41 4c 31 20 52 45 43 45 49 56 45 2e 0d 0a 42 32 58 49 4e 50   ┆K 2 ; TERMINAL1 RECEIVE.  B2XINP┆
0x0500…0520       3a 09 2e 42 4c 4b 09 32 09 3b 20 49 4e 50 55 54 2d 4f 55 54 50 55 54 20 50 4f 49 4e 54 45 52 53   ┆: .BLK 2 ; INPUT-OUTPUT POINTERS┆
0x0520…0540       0d 0a 42 32 58 4f 55 54 50 3a 2e 42 4c 4b 09 32 09 3b 20 54 45 52 4d 49 4e 41 4c 32 20 58 4d 54   ┆  B2XOUTP:.BLK 2 ; TERMINAL2 XMT┆
0x0540…0560       2e 0d 0a 42 32 52 49 4e 50 3a 09 2e 42 4c 4b 09 32 09 3b 20 49 4e 50 55 54 2d 4f 55 54 50 55 54   ┆.  B2RINP: .BLK 2 ; INPUT-OUTPUT┆
0x0560…0580       20 50 4f 49 4e 54 45 52 53 0d 0a 42 32 52 4f 55 54 50 3a 2e 42 4c 4b 09 32 09 3b 20 54 45 52 4d   ┆ POINTERS  B2ROUTP:.BLK 2 ; TERM┆
0x0580…05a0       49 4e 41 4c 20 32 20 52 45 43 45 49 56 45 2e 0d 0a 42 33 58 49 4e 50 3a 09 2e 42 4c 4b 09 32 09   ┆INAL 2 RECEIVE.  B3XINP: .BLK 2 ┆
0x05a0…05c0       3b 20 49 4e 50 55 54 2d 4f 55 54 50 55 54 20 50 4f 49 4e 54 45 52 53 0d 0a 42 33 58 4f 55 54 50   ┆; INPUT-OUTPUT POINTERS  B3XOUTP┆
0x05c0…05e0       3a 2e 42 4c 4b 09 32 09 3b 20 54 45 52 4d 49 4e 41 4c 33 20 58 4d 54 2e 0d 0a 42 33 52 49 4e 50   ┆:.BLK 2 ; TERMINAL3 XMT.  B3RINP┆
0x05e0…0600       3a 09 2e 42 4c 4b 09 32 09 3b 20 49 4e 50 55 54 2d 4f 55 54 50 55 54 20 50 4f 49 4e 54 45 52 53   ┆: .BLK 2 ; INPUT-OUTPUT POINTERS┆
0x0600…0620 (3,)  0d 0a 42 33 52 4f 55 54 50 3a 2e 42 4c 4b 09 32 09 3b 20 54 45 52 4d 49 4e 41 4c 33 20 52 45 43   ┆  B3ROUTP:.BLK 2 ; TERMINAL3 REC┆
0x0620…0640       45 49 56 45 2e 0d 0a 42 34 58 49 4e 50 3a 09 2e 42 4c 4b 09 32 09 3b 20 49 4e 50 55 54 2d 4f 55   ┆EIVE.  B4XINP: .BLK 2 ; INPUT-OU┆
0x0640…0660       54 50 55 54 20 50 4f 49 4e 54 45 52 53 0d 0a 42 34 58 4f 55 54 50 3a 2e 42 4c 4b 09 32 09 3b 20   ┆TPUT POINTERS  B4XOUTP:.BLK 2 ; ┆
0x0660…0680       50 52 49 4e 54 45 52 20 46 49 46 4f 2e 0d 0a 42 34 52 49 4e 50 3a 09 2e 42 4c 4b 09 32 09 3b 20   ┆PRINTER FIFO.  B4RINP: .BLK 2 ; ┆
0x0680…06a0       50 52 49 4e 54 45 52 20 54 4f 20 48 4f 53 54 20 4d 45 53 53 41 47 45 0d 0a 42 34 52 4f 55 54 50   ┆PRINTER TO HOST MESSAGE  B4ROUTP┆
0x06a0…06c0       3a 2e 42 4c 4b 09 32 0d 0a 0d 0a 53 54 41 42 31 3a 09 30 09 09 3b 20 53 54 41 54 55 53 20 42 55   ┆:.BLK 2    STAB1: 0  ; STATUS BU┆
0x06c0…06e0       46 46 45 52 53 3a 0d 0a 53 54 41 42 32 3a 09 30 09 09 3b 09 53 54 41 54 55 53 20 42 59 54 45 53   ┆FFERS:  STAB2: 0  ; STATUS BYTES┆
0x06e0…0700       20 41 43 43 4f 52 44 49 4e 47 20 54 4f 20 27 53 54 41 54 41 42 27 3b 0d 0a 53 54 41 42 33 3a 09   ┆ ACCORDING TO 'STATAB';  STAB3: ┆
0x0700…0720       30 0d 0a 53 54 41 42 50 3a 09 30 0d 0a 53 54 41 42 48 3a 09 30 09 09 3b 40 40 20 55 4e 55 53 45   ┆0  STABP: 0  STABH: 0  ;@@ UNUSE┆
0x0720…0740       44 3b 0d 0a 0d 0a 53 54 41 46 31 3a 09 30 09 09 3b 20 53 54 41 54 55 53 20 52 45 51 55 45 53 54   ┆D;    STAF1: 0  ; STATUS REQUEST┆
0x0740…0760       20 46 4c 41 47 53 3a 0d 0a 53 54 41 46 32 3a 09 30 09 09 3b 20 20 3c 3e 30 3a 09 53 54 41 54 55   ┆ FLAGS:  STAF2: 0  ;  <>0: STATU┆
0x0760…0780       53 20 52 45 51 55 45 53 54 20 50 45 4e 44 49 4e 47 20 4e 4f 54 20 59 45 54 0d 0a 53 54 41 46 33   ┆S REQUEST PENDING NOT YET  STAF3┆
0x0780…07a0       3a 09 30 09 09 3b 09 54 52 41 4e 53 46 45 52 52 45 44 20 49 4e 54 4f 20 48 4f 53 54 20 3b 09 09   ┆: 0  ; TRANSFERRED INTO HOST ;  ┆
0x07a0…07c0       0d 0a 53 54 41 46 50 3a 09 30 0d 0a 53 54 41 46 48 3a 09 30 09 09 3b 40 40 20 55 4e 55 53 45 44   ┆  STAFP: 0  STAFH: 0  ;@@ UNUSED┆
0x07c0…07c3       3b 0d 0a                                                                                          ┆;  ┆
0x07c3…07c6       FormFeed {
0x07c3…07c6         0c 83 9e                                                                                          ┆   ┆
0x07c3…07c6       }
0x07c6…07e0       0d 0a 42 55 46 45 4d 3a 09 2e 42 4c 4b 09 31 36 0d 0a 4d 4f 44 45 31 3a 09 30                     ┆  BUFEM: .BLK 16  MODE1: 0┆
0x07e0…0800       09 09 3b 20 54 45 52 4d 49 4e 41 4c 20 4d 4f 44 45 53 3a 0d 0a 4d 4f 44 45 32 3a 09 30 09 09 3b   ┆  ; TERMINAL MODES:  MODE2: 0  ;┆
0x0800…0820 (4,)  09 43 4f 4e 54 52 4f 4c 20 3d 20 30 2c 20 53 4b 49 50 20 3d 20 31 20 41 4e 44 20 44 41 54 41 20   ┆ CONTROL = 0, SKIP = 1 AND DATA ┆
0x0820…0840       3d 20 33 3b 0d 0a 4d 4f 44 45 33 3a 09 30 0d 0a 0d 0a 0d 0a 4d 4f 44 45 58 3a 09 30 09 09 3b 20   ┆= 3;  MODE3: 0      MODEX: 0  ; ┆
0x0840…0860       48 4f 53 54 20 58 4d 54 20 53 54 41 54 45 2e 0d 0a 4d 4f 44 45 52 3a 09 30 09 09 3b 40 40 20 55   ┆HOST XMT STATE.  MODER: 0  ;@@ U┆
0x0860…0880       4e 55 53 45 44 20 48 4f 53 54 20 52 45 43 20 53 54 41 54 45 2e 0d 0a 3b 54 45 4d 31 3a 09 30 09   ┆NUSED HOST REC STATE.  ;TEM1: 0 ┆
0x0880…08a0       09 3b 20 54 45 4d 50 4f 52 41 52 59 20 53 41 56 45 2e 0d 0a 3b 54 45 4d 32 3a 09 30 0d 0a 44 45   ┆ ; TEMPORARY SAVE.  ;TEM2: 0  DE┆
0x08a0…08c0       56 4e 4f 3a 09 30 0d 0a 54 45 4d 50 53 3a 09 30 09 09 3b 20 54 45 4d 50 20 53 41 56 45 20 54 45   ┆VNO: 0  TEMPS: 0  ; TEMP SAVE TE┆
0x08c0…08e0       52 4d 20 55 41 52 54 20 53 54 41 54 55 53 20 52 45 41 44 0d 0a 54 45 4d 50 44 3a 09 30 09 09 3b   ┆RM UART STATUS READ  TEMPD: 0  ;┆
0x08e0…0900       20 54 45 4d 50 20 53 41 56 45 20 54 45 52 4d 20 55 41 52 54 20 42 59 54 45 20 52 45 41 44 0d 0a   ┆ TEMP SAVE TERM UART BYTE READ  ┆
0x0900…0920       3b 4c 41 53 54 41 54 3a 09 30 0d 0a 43 55 52 53 54 41 54 3a 30 0d 0a 4c 58 4d 54 3a 09 30 0d 0a   ┆;LASTAT: 0  CURSTAT:0  LXMT: 0  ┆
0x0920…0940       48 4f 53 54 53 3a 09 30 0d 0a 4c 52 45 43 3a 09 30 0d 0a 0d 0a 50 53 55 4d 3a 09 30 09 09 3b 20   ┆HOSTS: 0  LREC: 0    PSUM: 0  ; ┆
0x0940…0960       50 52 49 4e 54 45 52 20 43 48 45 43 4b 53 55 4d 0d 0a 09 09 09 3b 20 41 43 43 55 4d 55 4c 41 54   ┆PRINTER CHECKSUM     ; ACCUMULAT┆
0x0960…0980       4f 52 2e 0d 0a 47 52 44 59 3a 09 30 09 09 3b 20 3d 30 20 45 4e 41 42 4c 45 20 41 55 54 4f 4d 41   ┆OR.  GRDY: 0  ; =0 ENABLE AUTOMA┆
0x0980…09a0       54 49 43 0d 0a 09 09 09 3b 20 58 4d 49 54 20 4f 46 20 50 52 49 4e 54 20 42 55 46 20 42 55 53 59   ┆TIC     ; XMIT OF PRINT BUF BUSY┆
0x09a0…09c0       2e 0d 0a 09 0d 0a 42 31 58 53 54 41 52 54 3a 09 2e 42 4c 4b 09 31 30 30 0d 0a 42 31 52 53 54 41   ┆.     B1XSTART: .BLK 100  B1RSTA┆
0x09c0…09e0       52 54 3a 09 2e 42 4c 4b 09 34 30 0d 0a 42 32 58 53 54 41 52 54 3a 09 2e 42 4c 4b 09 31 30 30 0d   ┆RT: .BLK 40  B2XSTART: .BLK 100 ┆
0x09e0…0a00       0a 42 32 52 53 54 41 52 54 3a 09 2e 42 4c 4b 09 34 30 0d 0a 42 33 58 53 54 41 52 54 3a 09 2e 42   ┆ B2RSTART: .BLK 40  B3XSTART: .B┆
0x0a00…0a20 (5,)  4c 4b 09 31 30 30 0d 0a 42 33 52 53 54 41 52 54 3a 09 2e 42 4c 4b 09 34 30 0d 0a 42 34 58 53 54   ┆LK 100  B3RSTART: .BLK 40  B4XST┆
0x0a20…0a40       41 52 54 3a 09 2e 42 4c 4b 09 32 30 30 0d 0a 42 34 52 53 54 41 52 54 3a 09 2e 42 4c 4b 09 34 30   ┆ART: .BLK 200  B4RSTART: .BLK 40┆
0x0a40…0a60       0d 0a 42 35 58 53 54 41 52 54 3a 09 2e 42 4c 4b 09 34 30 09 3b 20 50 53 45 55 44 4f 2d 42 55 46   ┆  B5XSTART: .BLK 40 ; PSEUDO-BUF┆
0x0a60…0a66       46 45 52 3b 0d 0a                                                                                 ┆FER;  ┆
0x0a66…0a69       FormFeed {
0x0a66…0a69         0c 82 a9                                                                                          ┆   ┆
0x0a66…0a69       }
0x0a69…0a80       4c 4f 43 09 34 30 30 30 0d 0a 0d 0a 3b 20 54 41 42 4c 45 20 46 4f 52                              ┆LOC 4000    ; TABLE FOR┆
0x0a80…0aa0       20 4d 4f 44 45 20 41 4e 44 20 43 4f 4d 4d 41 4e 44 53 20 54 4f 20 43 4f 4d 4d 55 4e 49 43 41 54   ┆ MODE AND COMMANDS TO COMMUNICAT┆
0x0aa0…0ac0       49 4f 4e 20 55 41 52 54 53 2e 20 0d 0a 09 09 09 3b 20 2a 2a 2a 2a 09 44 45 56 49 43 45 20 50 41   ┆ION UARTS.      ; **** DEVICE PA┆
0x0ac0…0ae0       52 41 4d 20 54 41 42 4c 45 3a 0d 0a 0d 0a 4d 54 41 42 3a 09 31 37 32 09 09 3b 20 4d 4f 44 45 31   ┆RAM TABLE:    MTAB: 172  ; MODE1┆
0x0ae0…0b00       20 48 4f 53 54 2e 0d 0a 09 36 30 09 09 3b 20 4d 4f 44 45 32 20 48 4f 53 54 2e 0d 0a 09 34 37 09   ┆ HOST.   60  ; MODE2 HOST.   47 ┆
0x0b00…0b20       09 3b 20 43 4f 4d 4d 41 4e 44 20 48 4f 53 54 2e 0d 0a 09 31 37 32 09 09 3b 20 4d 4f 44 45 31 20   ┆ ; COMMAND HOST.   172  ; MODE1 ┆
0x0b20…0b40       54 45 52 4d 49 4e 41 4c 31 0d 0a 09 36 30 09 09 3b 20 4d 4f 44 45 32 20 54 45 52 4d 49 4e 41 4c   ┆TERMINAL1   60  ; MODE2 TERMINAL┆
0x0b40…0b60       31 0d 0a 09 34 37 09 09 3b 20 43 4f 4d 4d 41 4e 44 20 54 45 52 4d 49 4e 41 4c 31 2e 0d 0a 09 31   ┆1   47  ; COMMAND TERMINAL1.   1┆
0x0b60…0b80       37 32 09 09 3b 20 4d 4f 44 45 31 20 54 45 52 4d 49 4e 41 4c 32 2e 0d 0a 09 36 30 09 09 3b 20 4d   ┆72  ; MODE1 TERMINAL2.   60  ; M┆
0x0b80…0ba0       4f 44 45 32 20 54 45 52 4d 49 4e 41 4c 32 2e 0d 0a 09 34 37 09 09 3b 20 43 4f 4d 4d 41 4e 44 20   ┆ODE2 TERMINAL2.   47  ; COMMAND ┆
0x0ba0…0bc0       54 45 52 4d 49 4e 41 4c 32 2e 0d 0a 09 31 37 32 09 09 3b 20 4d 4f 44 45 31 20 54 45 52 4d 49 4e   ┆TERMINAL2.   172  ; MODE1 TERMIN┆
0x0bc0…0be0       41 4c 33 0d 0a 09 36 30 09 09 3b 20 4d 4f 44 45 32 20 54 45 52 4d 49 4e 41 4c 33 2e 0d 0a 09 34   ┆AL3   60  ; MODE2 TERMINAL3.   4┆
0x0be0…0c00       37 09 09 3b 20 43 4f 4d 4d 41 4e 44 20 54 45 52 4d 49 4e 41 4c 33 2e 0d 0a 09 31 37 32 09 09 3b   ┆7  ; COMMAND TERMINAL3.   172  ;┆
0x0c00…0c20 (6,)  20 4d 4f 44 45 31 20 50 52 49 4e 54 2e 0d 0a 09 36 30 09 09 3b 20 4d 4f 44 45 32 20 50 52 49 4e   ┆ MODE1 PRINT.   60  ; MODE2 PRIN┆
0x0c20…0c40       54 2e 0d 0a 09 34 33 09 09 3b 20 43 4f 4d 4d 41 4e 44 20 50 52 49 4e 54 2e 0d 0a 0d 0a 09 09 09   ┆T.   43  ; COMMAND PRINT.       ┆
0x0c40…0c60       3b 20 2a 2a 2a 2a 09 4e 42 3a 20 43 4f 4d 4d 41 4e 44 20 53 48 4f 55 4c 44 20 49 4e 43 4c 55 44   ┆; **** NB: COMMAND SHOULD INCLUD┆
0x0c60…0c80       45 20 54 48 45 20 45 52 52 4f 52 0d 0a 09 09 09 3b 09 09 52 45 53 45 54 20 42 49 54 20 53 45 54   ┆E THE ERROR     ;  RESET BIT SET┆
0x0c80…0ca0       20 28 42 34 29 2c 41 53 20 54 48 49 53 20 42 49 54 0d 0a 09 09 09 3b 09 09 49 53 20 41 55 54 4f   ┆ (B4),AS THIS BIT     ;  IS AUTO┆
0x0ca0…0cc0       4d 41 54 49 43 41 4c 4c 59 20 52 45 53 45 54 20 42 59 20 55 41 52 54 20 41 46 54 45 52 0d 0a 09   ┆MATICALLY RESET BY UART AFTER   ┆
0x0cc0…0ce0       09 09 3b 09 09 52 45 53 45 54 20 4f 46 20 45 52 52 4f 52 20 46 4c 41 47 53 20 49 53 20 50 45 52   ┆  ;  RESET OF ERROR FLAGS IS PER┆
0x0ce0…0d00       46 4f 52 4d 45 44 3b 0d 0a 0d 0a 3b 20 2a 2a 2a 2a 09 44 45 43 4f 4d 50 4f 53 49 54 49 4f 4e 20   ┆FORMED;    ; **** DECOMPOSITION ┆
0x0d00…0d20       4f 46 20 4d 4f 44 45 31 2c 32 20 41 4e 44 20 43 4f 4d 4d 41 4e 44 3a 0d 0a 0d 0a 3b 09 4d 4f 44   ┆OF MODE1,2 AND COMMAND:    ; MOD┆
0x0d20…0d40       45 31 20 28 31 37 32 29 3a 09 31 20 53 54 4f 50 20 42 49 54 2c 45 56 45 4e 20 50 41 52 49 54 59   ┆E1 (172): 1 STOP BIT,EVEN PARITY┆
0x0d40…0d60       2c 50 41 52 49 54 59 20 45 4e 41 42 4c 45 2c 37 20 42 49 54 53 2c 0d 0a 3b 09 09 09 41 53 59 4e   ┆,PARITY ENABLE,7 BITS,  ;   ASYN┆
0x0d60…0d80       43 52 2c 52 41 54 45 2a 31 36 3b 0d 0a 3b 09 56 41 52 3a 09 31 20 53 54 4f 50 20 42 49 54 20 4d   ┆CR,RATE*16;  ; VAR: 1 STOP BIT M┆
0x0d80…0da0       41 59 20 42 45 20 43 48 41 4e 47 45 44 20 54 4f 20 32 20 53 54 4f 50 20 42 49 54 53 20 42 59 20   ┆AY BE CHANGED TO 2 STOP BITS BY ┆
0x0da0…0dc0       53 57 49 54 43 48 20 53 45 4c 45 43 54 3b 0d 0a 3b 09 4d 4f 44 45 32 20 28 36 30 29 3a 09 45 58   ┆SWITCH SELECT;  ; MODE2 (60): EX┆
0x0dc0…0de0       54 20 58 4d 49 54 2f 52 45 43 20 43 4c 4f 43 4b 20 2b 20 42 41 55 44 52 41 54 45 20 55 4e 44 45   ┆T XMIT/REC CLOCK + BAUDRATE UNDE┆
0x0de0…0e00       46 28 35 30 29 3b 0d 0a 3b 09 56 41 52 3a 09 42 41 55 44 20 52 41 54 45 20 49 53 20 4f 57 45 52   ┆F(50);  ; VAR: BAUD RATE IS OWER┆
0x0e00…0e20 (7,)  57 52 49 54 54 45 4e 20 42 59 20 53 57 49 54 43 48 20 53 45 4c 45 43 54 3b 0d 0a 3b 09 43 4f 4d   ┆WRITTEN BY SWITCH SELECT;  ; COM┆
0x0e20…0e40       4d 41 4e 44 20 28 34 37 29 3a 09 46 4f 52 43 45 20 52 54 53 20 48 49 47 48 2c 20 4e 4f 20 45 52   ┆MAND (47): FORCE RTS HIGH, NO ER┆
0x0e40…0e60       52 4f 52 20 52 45 53 45 54 2c 20 4e 4f 20 46 4f 52 43 45 20 42 52 45 41 4b 2c 0d 0a 3b 09 09 09   ┆ROR RESET, NO FORCE BREAK,  ;   ┆
0x0e60…0e80       52 45 43 20 45 4e 41 42 4c 45 2c 20 44 54 52 20 48 49 47 48 2c 58 4d 49 54 20 45 4e 41 42 4c 45   ┆REC ENABLE, DTR HIGH,XMIT ENABLE┆
0x0e80…0ea0       3b 0d 0a 3b 09 56 41 52 3a 09 49 46 20 45 52 52 4f 52 20 49 53 20 44 45 54 45 43 54 45 44 20 4f   ┆;  ; VAR: IF ERROR IS DETECTED O┆
0x0ea0…0ec0       4e 20 54 45 52 4d 20 4c 49 4e 45 20 54 48 45 4e 20 45 52 4f 52 20 52 45 53 45 54 20 41 4e 44 20   ┆N TERM LINE THEN EROR RESET AND ┆
0x0ec0…0ee0       52 45 43 2c 0d 0a 3b 09 09 58 4d 49 54 20 44 49 53 41 42 4c 45 20 49 53 20 50 45 52 46 4f 52 4d   ┆REC,  ;  XMIT DISABLE IS PERFORM┆
0x0ee0…0f00       45 44 2e 48 45 52 45 41 46 54 45 52 20 4e 4f 52 4d 41 4c 20 49 4e 49 54 3b 28 4e 45 57 29 0d 0a   ┆ED.HEREAFTER NORMAL INIT;(NEW)  ┆
0x0f00…0f20       3b 09 09 41 46 54 45 52 20 45 52 52 4f 52 20 4f 4e 20 48 4f 53 54 20 4c 49 4e 45 20 54 48 45 20   ┆;  AFTER ERROR ON HOST LINE THE ┆
0x0f20…0f40       54 45 52 4d 20 4c 49 4e 45 53 20 41 52 45 20 47 49 56 45 4e 20 45 52 52 4f 52 20 0d 0a 3b 09 09   ┆TERM LINES ARE GIVEN ERROR   ;  ┆
0x0f40…0f60       52 45 53 45 54 2e 20 57 48 49 4c 45 20 48 4f 53 54 20 45 52 52 4f 52 20 44 54 52 20 4f 46 20 54   ┆RESET. WHILE HOST ERROR DTR OF T┆
0x0f60…0f80       45 52 4d 20 4c 49 4e 45 53 20 49 53 20 46 4f 52 43 45 44 20 4c 4f 57 3b 0d 0a 0d 0a 0d 0a 0d 0a   ┆ERM LINES IS FORCED LOW;        ┆
0x0f80…0fa0       0d 0a 3b 20 4a 55 4d 50 20 54 41 42 4c 45 20 54 4f 20 49 4e 49 54 49 41 4c 49 5a 41 54 49 4f 4e   ┆  ; JUMP TABLE TO INITIALIZATION┆
0x0fa0…0fc0       20 41 4e 44 20 49 4e 54 45 52 52 55 50 54 20 52 4f 55 54 49 4e 45 53 2e 0d 0a 0d 0a 58 49 4e 49   ┆ AND INTERRUPT ROUTINES.    XINI┆
0x0fc0…0fe0       54 3a 09 4a 4d 50 09 53 54 49 4e 49 54 0d 0a 58 49 52 45 43 3a 09 4a 4d 50 09 49 52 45 43 0d 0a   ┆T: JMP STINIT  XIREC: JMP IREC  ┆
0x0fe0…0ff1       58 49 4d 49 54 3a 09 4a 4d 50 09 49 58 4d 54 0d 0a                                                ┆XIMIT: JMP IXMT  ┆
0x0ff1…0ff4       FormFeed {
0x0ff1…0ff4         0c 83 a7                                                                                          ┆   ┆
0x0ff1…0ff4       }
0x0ff4…1000       0d 0a 3b 20 54 41 42 4c 45 20 43 4f                                                               ┆  ; TABLE CO┆
0x1000…1020 (8,)  4e 54 41 49 4e 49 4e 47 20 53 54 41 52 54 20 41 44 44 52 45 53 53 45 53 20 46 4f 52 0d 0a 3b 20   ┆NTAINING START ADDRESSES FOR  ; ┆
0x1020…1040       42 55 46 46 45 52 53 2e 0d 0a 0d 0a 42 55 46 53 54 41 42 3a 09 42 31 58 53 54 41 52 54 26 28 33   ┆BUFFERS.    BUFSTAB: B1XSTART&(3┆
0x1040…1060       37 37 29 0d 0a 09 09 42 31 58 53 54 41 52 54 26 28 31 37 37 34 30 30 29 2f 34 30 30 0d 0a 09 09   ┆77)    B1XSTART&(177400)/400    ┆
0x1060…1080       42 31 52 53 54 41 52 54 26 28 33 37 37 29 0d 0a 09 09 42 31 52 53 54 41 52 54 26 28 31 37 37 34   ┆B1RSTART&(377)    B1RSTART&(1774┆
0x1080…10a0       30 30 29 2f 34 30 30 0d 0a 09 09 42 32 58 53 54 41 52 54 26 28 33 37 37 29 0d 0a 09 09 42 32 58   ┆00)/400    B2XSTART&(377)    B2X┆
0x10a0…10c0       53 54 41 52 54 26 28 31 37 37 34 30 30 29 2f 34 30 30 0d 0a 09 09 42 32 52 53 54 41 52 54 26 28   ┆START&(177400)/400    B2RSTART&(┆
0x10c0…10e0       33 37 37 29 0d 0a 09 09 42 32 52 53 54 41 52 54 26 28 31 37 37 34 30 30 29 2f 34 30 30 0d 0a 09   ┆377)    B2RSTART&(177400)/400   ┆
0x10e0…1100       09 42 33 58 53 54 41 52 54 26 28 33 37 37 29 0d 0a 09 09 42 33 58 53 54 41 52 54 26 28 31 37 37   ┆ B3XSTART&(377)    B3XSTART&(177┆
0x1100…1120       34 30 30 29 2f 34 30 30 0d 0a 09 09 42 33 52 53 54 41 52 54 26 28 33 37 37 29 0d 0a 09 09 42 33   ┆400)/400    B3RSTART&(377)    B3┆
0x1120…1140       52 53 54 41 52 54 26 28 31 37 37 34 30 30 29 2f 34 30 30 0d 0a 09 09 42 34 58 53 54 41 52 54 26   ┆RSTART&(177400)/400    B4XSTART&┆
0x1140…1160       28 33 37 37 29 0d 0a 09 09 42 34 58 53 54 41 52 54 26 28 31 37 37 34 30 30 29 2f 34 30 30 0d 0a   ┆(377)    B4XSTART&(177400)/400  ┆
0x1160…1180       09 09 42 34 52 53 54 41 52 54 26 28 33 37 37 29 0d 0a 09 09 42 34 52 53 54 41 52 54 26 28 31 37   ┆  B4RSTART&(377)    B4RSTART&(17┆
0x1180…11a0       37 34 30 30 29 2f 34 30 30 0d 0a 0d 0a 3b 20 54 41 42 4c 45 20 43 4f 4e 54 41 49 4e 49 4e 47 20   ┆7400)/400    ; TABLE CONTAINING ┆
0x11a0…11c0       54 4f 50 20 41 44 44 52 45 53 53 45 53 20 46 4f 52 0d 0a 3b 20 42 55 46 46 45 52 53 2e 0d 0a 0d   ┆TOP ADDRESSES FOR  ; BUFFERS.   ┆
0x11c0…11e0       0a 42 55 46 54 54 41 42 3a 09 28 42 31 52 53 54 41 52 54 2d 31 29 26 28 33 37 37 29 0d 0a 09 09   ┆ BUFTTAB: (B1RSTART-1)&(377)    ┆
0x11e0…1200       28 42 31 52 53 54 41 52 54 2d 31 29 26 28 31 37 37 34 30 30 29 2f 34 30 30 0d 0a 09 09 28 42 32   ┆(B1RSTART-1)&(177400)/400    (B2┆
0x1200…1220 (9,)  58 53 54 41 52 54 2d 31 29 26 28 33 37 37 29 0d 0a 09 09 28 42 32 58 53 54 41 52 54 2d 31 29 26   ┆XSTART-1)&(377)    (B2XSTART-1)&┆
0x1220…1240       28 31 37 37 34 30 30 29 2f 34 30 30 0d 0a 09 09 28 42 32 52 53 54 41 52 54 2d 31 29 26 28 33 37   ┆(177400)/400    (B2RSTART-1)&(37┆
0x1240…1260       37 29 0d 0a 09 09 28 42 32 52 53 54 41 52 54 2d 31 29 26 28 31 37 37 34 30 30 29 2f 34 30 30 0d   ┆7)    (B2RSTART-1)&(177400)/400 ┆
0x1260…1280       0a 09 09 28 42 33 58 53 54 41 52 54 2d 31 29 26 28 33 37 37 29 0d 0a 09 09 28 42 33 58 53 54 41   ┆   (B3XSTART-1)&(377)    (B3XSTA┆
0x1280…12a0       52 54 2d 31 29 26 28 31 37 37 34 30 30 29 2f 34 30 30 0d 0a 09 09 28 42 33 52 53 54 41 52 54 2d   ┆RT-1)&(177400)/400    (B3RSTART-┆
0x12a0…12c0       31 29 26 28 33 37 37 29 0d 0a 09 09 28 42 33 52 53 54 41 52 54 2d 31 29 26 28 31 37 37 34 30 30   ┆1)&(377)    (B3RSTART-1)&(177400┆
0x12c0…12e0       29 2f 34 30 30 0d 0a 09 09 28 42 34 58 53 54 41 52 54 2d 31 29 26 28 33 37 37 29 0d 0a 09 09 28   ┆)/400    (B4XSTART-1)&(377)    (┆
0x12e0…1300       42 34 58 53 54 41 52 54 2d 31 29 26 28 31 37 37 34 30 30 29 2f 34 30 30 0d 0a 09 09 28 42 34 52   ┆B4XSTART-1)&(177400)/400    (B4R┆
0x1300…1320       53 54 41 52 54 2d 31 29 26 28 33 37 37 29 0d 0a 09 09 28 42 34 52 53 54 41 52 54 2d 31 29 26 28   ┆START-1)&(377)    (B4RSTART-1)&(┆
0x1320…1340       31 37 37 34 30 30 29 2f 34 30 30 0d 0a 09 09 28 42 35 58 53 54 41 52 54 2d 31 29 26 28 33 37 37   ┆177400)/400    (B5XSTART-1)&(377┆
0x1340…1360       29 0d 0a 09 09 28 42 35 58 53 54 41 52 54 2d 31 29 26 28 31 37 37 34 30 30 29 2f 34 30 30 0d 0a   ┆)    (B5XSTART-1)&(177400)/400  ┆
0x1360…1363       FormFeed {
0x1360…1363         0c 82 df                                                                                          ┆   ┆
0x1360…1363       }
0x1363…1380       0d 0a 0d 0a 3b 20 43 4f 4e 56 45 52 53 49 4f 4e 20 54 41 42 4c 45 20 46 4f 52 20 43 48            ┆    ; CONVERSION TABLE FOR CH┆
0x1380…13a0       41 52 41 43 54 45 52 53 20 3c 33 32 2e 0d 0a 3b 20 41 44 44 52 45 53 53 45 53 20 43 4f 4e 54 41   ┆ARACTERS <32.  ; ADDRESSES CONTA┆
0x13a0…13c0       49 4e 49 4e 47 20 33 37 37 3c 4f 43 54 41 4c 3e 20 49 53 20 4e 4f 54 0d 0a 3b 20 55 53 45 44 20   ┆INING 377<OCTAL> IS NOT  ; USED ┆
0x13c0…13e0       41 53 20 54 45 52 4d 49 4e 41 4c 20 41 44 44 52 45 53 53 20 4f 52 20 41 53 20 53 54 41 54 55 53   ┆AS TERMINAL ADDRESS OR AS STATUS┆
0x13e0…1400       20 4d 45 53 53 41 47 45 2e 0d 0a 0d 0a 4b 45 59 54 41 42 3a 09 09 33 37 37 09 09 3b 20 30 22 22   ┆ MESSAGE.    KEYTAB:  377  ; 0""┆
0x1400…1420 (10,) 0d 0a 09 09 33 09 09 3b 20 31 22 0d 0a 09 09 30 09 09 3b 20 32 22 0d 0a 09 09 31 09 09 3b 20 33   ┆    3  ; 1"    0  ; 2"    1  ; 3┆
0x1420…1440       22 0d 0a 09 09 32 09 09 3b 20 34 22 0d 0a 09 09 33 37 37 09 09 3b 20 35 22 0d 0a 09 09 33 37 37   ┆"    2  ; 4"    377  ; 5"    377┆
0x1440…1460       09 09 3b 20 36 22 0d 0a 09 09 33 37 37 09 09 3b 20 37 22 0d 0a 09 09 33 37 37 09 09 3b 20 38 22   ┆  ; 6"    377  ; 7"    377  ; 8"┆
0x1460…1480       0d 0a 09 09 33 37 37 09 09 3b 20 39 22 0d 0a 09 09 33 37 37 09 09 3b 20 31 30 22 0d 0a 09 09 33   ┆    377  ; 9"    377  ; 10"    3┆
0x1480…14a0       37 37 09 09 3b 20 31 31 22 0d 0a 09 09 33 37 37 09 09 3b 20 31 32 22 0d 0a 09 09 33 37 37 09 09   ┆77  ; 11"    377  ; 12"    377  ┆
0x14a0…14c0       3b 20 31 33 22 0d 0a 09 09 33 37 37 09 09 3b 20 31 34 22 0d 0a 09 09 33 37 37 09 09 3b 20 31 35   ┆; 13"    377  ; 14"    377  ; 15┆
0x14c0…14e0       22 0d 0a 09 09 36 09 09 3b 20 31 36 22 0d 0a 09 09 33 37 37 09 09 3b 20 31 37 22 0d 0a 09 09 33   ┆"    6  ; 16"    377  ; 17"    3┆
0x14e0…1500       37 37 09 09 3b 20 31 38 22 0d 0a 09 09 33 37 37 09 09 3b 20 31 39 22 0d 0a 09 09 33 37 37 09 09   ┆77  ; 18"    377  ; 19"    377  ┆
0x1500…1520       3b 20 32 30 22 0d 0a 09 09 37 09 09 3b 20 32 31 22 0d 0a 09 09 33 37 37 09 09 3b 20 32 32 22 0d   ┆; 20"    7  ; 21"    377  ; 22" ┆
0x1520…1540       0a 09 09 37 09 09 3b 20 32 33 22 0d 0a 09 09 33 37 37 09 09 3b 20 32 34 22 0d 0a 09 09 33 37 37   ┆   7  ; 23"    377  ; 24"    377┆
0x1540…1560       09 09 3b 20 32 35 22 0d 0a 09 09 33 37 37 09 09 3b 20 32 36 22 0d 0a 09 09 33 37 37 09 09 3b 20   ┆  ; 25"    377  ; 26"    377  ; ┆
0x1560…1580       32 37 22 0d 0a 09 09 33 37 37 09 09 3b 20 32 38 22 0d 0a 09 09 33 37 37 09 09 3b 20 32 39 22 0d   ┆27"    377  ; 28"    377  ; 29" ┆
0x1580…159f       0a 09 09 33 37 37 09 09 3b 20 33 30 22 0d 0a 09 09 33 37 37 09 09 3b 20 33 31 22 0d 0a 0d 0a      ┆   377  ; 30"    377  ; 31"    ┆
0x159f…15a2       FormFeed {
0x159f…15a2         0c 82 d6                                                                                          ┆   ┆
0x159f…15a2       }
0x15a2…15c0       0d 0a 3b 20 54 41 42 4c 45 20 54 4f 20 43 4f 4e 56 45 52 54 20 54 48 45 20 49 4e 54 45 52         ┆  ; TABLE TO CONVERT THE INTER┆
0x15c0…15e0       4e 41 4c 20 53 59 4d 42 4f 4c 49 43 20 0d 0a 3b 20 41 44 44 52 45 53 53 20 28 52 41 4e 47 45 20   ┆NAL SYMBOLIC   ; ADDRESS (RANGE ┆
0x15e0…1600       30 2d 37 29 20 49 4e 54 4f 20 41 20 43 48 41 52 41 43 54 45 52 20 3c 33 32 2e 0d 0a 0d 0a 41 44   ┆0-7) INTO A CHARACTER <32.    AD┆
0x1600…1620 (11,) 44 54 41 42 3a 09 09 32 09 09 3b 20 30 22 20 54 45 52 4d 49 4e 41 4c 31 2e 0d 0a 09 09 33 09 09   ┆DTAB:  2  ; 0" TERMINAL1.    3  ┆
0x1620…1640       3b 20 31 22 20 54 45 52 4d 49 4e 41 4c 32 2e 0d 0a 09 09 34 09 09 3b 20 32 22 20 54 45 52 4d 49   ┆; 1" TERMINAL2.    4  ; 2" TERMI┆
0x1640…1660       4e 41 4c 33 2e 0d 0a 09 09 31 09 09 3b 20 33 22 20 50 52 49 4e 54 45 52 2e 0d 0a 09 09 30 09 09   ┆NAL3.    1  ; 3" PRINTER.    0  ┆
0x1660…1680       3b 20 34 22 20 48 4f 53 54 2e 0d 0a 09 09 30 09 09 3b 20 35 22 20 4e 4f 54 20 55 53 45 44 2e 0d   ┆; 4" HOST.    0  ; 5" NOT USED. ┆
0x1680…16a0       0a 09 09 30 09 09 3b 20 36 22 20 4e 4f 54 20 55 53 45 44 2e 0d 0a 09 09 30 09 09 3b 20 37 22 20   ┆   0  ; 6" NOT USED.    0  ; 7" ┆
0x16a0…16c0       4e 4f 54 20 55 53 45 44 2e 0d 0a 0d 0a 0d 0a 3b 20 54 41 42 4c 45 20 54 4f 20 43 4f 4e 56 45 52   ┆NOT USED.      ; TABLE TO CONVER┆
0x16c0…16e0       54 20 54 48 45 20 49 4e 54 45 52 4e 41 4c 20 53 54 41 54 55 53 0d 0a 3b 20 49 4e 54 4f 20 41 20   ┆T THE INTERNAL STATUS  ; INTO A ┆
0x16e0…1700       43 48 41 52 41 43 54 45 52 20 3c 33 32 2e 0d 0a 0d 0a 53 54 41 54 41 42 3a 09 30 09 09 09 3b 20   ┆CHARACTER <32.    STATAB: 0   ; ┆
0x1700…1720       30 22 0d 0a 09 32 37 09 09 09 3b 20 31 22 2c 56 32 34 20 45 52 52 4f 52 2e 0d 0a 09 32 35 09 09   ┆0"   27   ; 1",V24 ERROR.   25  ┆
0x1720…1740       09 3b 20 32 22 2c 42 55 53 59 2e 0d 0a 09 32 35 09 09 09 3b 20 33 22 20 40 40 20 53 48 4f 55 4c   ┆ ; 2",BUSY.   25   ; 3" @@ SHOUL┆
0x1740…1760       44 20 42 45 20 56 32 34 20 45 52 52 4f 52 3b 0d 0a 09 32 30 09 09 09 3b 20 34 22 2c 52 45 41 44   ┆D BE V24 ERROR;   20   ; 4",READ┆
0x1760…1780       59 2e 0d 0a 09 32 37 09 09 09 3b 20 35 22 2c 56 32 34 20 45 52 52 4f 52 2e 0d 0a 09 32 35 09 09   ┆Y.   27   ; 5",V24 ERROR.   25  ┆
0x1780…17a0       09 3b 20 36 22 2c 42 55 53 59 2e 0d 0a 09 32 35 09 09 09 3b 20 37 22 2c 42 55 53 59 2e 0d 0a 0d   ┆ ; 6",BUSY.   25   ; 7",BUSY.   ┆
0x17a0…17a1       0a                                                                                                ┆ ┆
0x17a1…17a4       FormFeed {
0x17a1…17a4         0c 81 e1                                                                                          ┆   ┆
0x17a1…17a4       }
0x17a4…17c0       3b 20 52 4f 55 54 49 4e 45 20 54 4f 20 50 45 52 46 4f 52 4d 20 41 20 4e 55 4d 42 45               ┆; ROUTINE TO PERFORM A NUMBE┆
0x17c0…17e0       52 20 4f 46 20 4c 4f 47 49 43 41 4c 0d 0a 3b 20 53 48 49 46 54 20 4c 45 46 54 20 4f 46 20 41 22   ┆R OF LOGICAL  ; SHIFT LEFT OF A"┆
0x17e0…1800       2e 0d 0a 3b 20 44 3d 20 4e 55 4d 42 45 52 20 4f 46 20 53 48 49 46 54 53 20 3c 52 41 4e 47 45 20   ┆.  ; D= NUMBER OF SHIFTS <RANGE ┆
0x1800…1820 (12,) 30 2d 37 3e 2e 0d 0a 0d 0a 4c 4f 53 48 3a 09 4d 4f 56 09 45 2c 41 09 3b 20 53 41 56 45 20 41 2e   ┆0-7>.    LOSH: MOV E,A ; SAVE A.┆
0x1820…1840       0d 0a 09 4d 4f 56 09 41 2c 44 0d 0a 09 43 50 49 09 30 0d 0a 09 4d 4f 56 09 41 2c 45 09 3b 20 52   ┆   MOV A,D   CPI 0   MOV A,E ; R┆
0x1840…1860       45 53 54 4f 52 45 20 41 2e 0d 0a 09 52 5a 09 09 3b 20 52 45 54 55 52 4e 20 49 46 20 44 3d 30 2e   ┆ESTORE A.   RZ  ; RETURN IF D=0.┆
0x1860…1880       0d 0a 09 52 4c 43 0d 0a 09 44 43 52 09 44 0d 0a 09 4a 4d 50 09 4c 4f 53 48 0d 0a 0d 0a 3b 20 52   ┆   RLC   DCR D   JMP LOSH    ; R┆
0x1880…18a0       4f 55 54 49 4e 45 20 54 4f 20 50 45 52 46 4f 52 4d 20 41 20 4e 55 4d 42 45 52 20 4f 46 20 4c 4f   ┆OUTINE TO PERFORM A NUMBER OF LO┆
0x18a0…18c0       47 49 43 41 4c 0d 0a 3b 20 53 48 49 46 54 20 52 49 47 48 54 20 4f 46 20 41 22 2e 0d 0a 3b 20 44   ┆GICAL  ; SHIFT RIGHT OF A".  ; D┆
0x18c0…18e0       3d 20 4e 55 4d 42 45 52 20 4f 46 20 53 48 49 46 54 53 20 3c 52 41 4e 47 45 20 30 2d 37 3e 2e 0d   ┆= NUMBER OF SHIFTS <RANGE 0-7>. ┆
0x18e0…1900       0a 52 4f 53 48 3a 09 4d 4f 56 09 45 2c 41 09 3b 20 53 41 56 45 20 41 2e 0d 0a 09 4d 4f 56 09 41   ┆ ROSH: MOV E,A ; SAVE A.   MOV A┆
0x1900…1920       2c 44 0d 0a 09 43 50 49 09 30 0d 0a 09 4d 4f 56 09 41 2c 45 09 3b 20 52 45 53 54 4f 52 45 20 41   ┆,D   CPI 0   MOV A,E ; RESTORE A┆
0x1920…1940       2e 0d 0a 09 52 5a 09 09 3b 20 52 45 54 55 52 4e 20 49 46 20 44 3d 30 2e 0d 0a 09 52 52 43 0d 0a   ┆.   RZ  ; RETURN IF D=0.   RRC  ┆
0x1940…1960       09 44 43 52 09 44 0d 0a 09 4a 4d 50 09 52 4f 53 48 0d 0a 0d 0a 0d 0a 3b 20 52 4f 55 54 49 4e 45   ┆ DCR D   JMP ROSH      ; ROUTINE┆
0x1960…1980       20 54 4f 20 53 45 54 20 54 48 45 20 45 52 52 4f 52 0d 0a 3b 20 49 4e 44 49 43 41 54 4f 52 2e 0d   ┆ TO SET THE ERROR  ; INDICATOR. ┆
0x1980…19a0       0a 0d 0a 45 52 52 31 3a 09 4d 56 49 09 41 2c 31 0d 0a 09 53 54 41 09 45 52 52 0d 0a 09 52 45 54   ┆   ERR1: MVI A,1   STA ERR   RET┆
0x19a0…19c0       0d 0a 0d 0a 0d 0a 3b 20 52 4f 55 54 49 4e 45 20 54 4f 20 52 45 53 45 54 20 54 48 45 20 45 52 52   ┆      ; ROUTINE TO RESET THE ERR┆
0x19c0…19e0       4f 52 20 0d 0a 3b 20 49 4e 44 49 43 41 54 4f 52 2e 0d 0a 0d 0a 0d 0a 45 52 52 30 3a 09 58 52 41   ┆OR   ; INDICATOR.      ERR0: XRA┆
0x19e0…19f6       09 41 0d 0a 09 53 54 41 09 45 52 52 0d 0a 09 52 45 54 0d 0a 0d 0a                                 ┆ A   STA ERR   RET    ┆
0x19f6…19f9       FormFeed {
0x19f6…19f9         0c 82 f1                                                                                          ┆   ┆
0x19f6…19f9       }
0x19f9…1a00       0d 0a 3b 20 52 4f 55                                                                              ┆  ; ROU┆
0x1a00…1a20 (13,) 54 49 4e 45 20 54 4f 20 52 45 41 44 20 53 54 41 54 55 53 20 46 52 4f 4d 20 41 20 55 41 52 54 2e   ┆TINE TO READ STATUS FROM A UART.┆
0x1a20…1a40       0d 0a 3b 20 57 48 45 4e 20 43 41 4c 4c 45 44 3a 20 0d 0a 3b 20 41 3d 09 30 09 54 45 52 4d 49 4e   ┆  ; WHEN CALLED:   ; A= 0 TERMIN┆
0x1a40…1a60       41 4c 31 0d 0a 3b 09 31 09 54 45 52 4d 49 4e 41 4c 32 0d 0a 3b 09 32 09 54 45 52 4d 49 4e 41 4c   ┆AL1  ; 1 TERMINAL2  ; 2 TERMINAL┆
0x1a60…1a80       33 0d 0a 3b 09 33 09 50 52 49 4e 54 45 52 0d 0a 3b 09 34 09 48 4f 53 54 0d 0a 3b 20 48 4c 2c 44   ┆3  ; 3 PRINTER  ; 4 HOST  ; HL,D┆
0x1a80…1aa0       45 20 41 52 45 20 44 45 53 54 52 4f 59 45 44 2e 0d 0a 52 53 54 41 54 3a 09 52 4c 43 0d 0a 09 52   ┆E ARE DESTROYED.  RSTAT: RLC   R┆
0x1aa0…1ac0       4c 43 0d 0a 09 4d 4f 56 09 45 2c 41 0d 0a 09 58 52 41 09 41 0d 0a 09 4d 4f 56 09 44 2c 41 0d 0a   ┆LC   MOV E,A   XRA A   MOV D,A  ┆
0x1ac0…1ae0       09 4c 58 49 09 48 4c 2c 53 54 41 54 31 0d 0a 09 44 41 44 09 44 45 0d 0a 09 50 43 48 4c 0d 0a 0d   ┆ LXI HL,STAT1   DAD DE   PCHL   ┆
0x1ae0…1b00       0a 53 54 41 54 31 3a 09 4c 44 41 09 54 45 52 4d 31 2b 31 0d 0a 09 52 45 54 0d 0a 09 4c 44 41 09   ┆ STAT1: LDA TERM1+1   RET   LDA ┆
0x1b00…1b20       54 45 52 4d 32 2b 31 0d 0a 09 52 45 54 0d 0a 09 4c 44 41 09 54 45 52 4d 33 2b 31 0d 0a 09 52 45   ┆TERM2+1   RET   LDA TERM3+1   RE┆
0x1b20…1b40       54 0d 0a 09 4c 44 41 09 50 52 49 4e 54 2b 31 0d 0a 09 52 45 54 0d 0a 09 4c 44 41 09 48 4f 53 54   ┆T   LDA PRINT+1   RET   LDA HOST┆
0x1b40…1b4a       2b 31 0d 0a 09 52 45 54 0d 0a                                                                     ┆+1   RET  ┆
0x1b4a…1b4d       FormFeed {
0x1b4a…1b4d         0c 81 f3                                                                                          ┆   ┆
0x1b4a…1b4d       }
0x1b4d…1b60       0d 0a 3b 20 52 4f 55 54 49 4e 45 20 54 4f 20 52 45 41 44                                          ┆  ; ROUTINE TO READ┆
0x1b60…1b80       20 41 20 42 59 54 45 20 46 52 4f 4d 20 41 4e 20 55 41 52 54 2e 0d 0a 3b 20 57 48 45 4e 20 43 41   ┆ A BYTE FROM AN UART.  ; WHEN CA┆
0x1b80…1ba0       4c 4c 45 44 3a 0d 0a 3b 20 41 3d 09 30 09 54 45 52 4d 49 4e 41 4c 31 0d 0a 3b 09 31 09 54 45 52   ┆LLED:  ; A= 0 TERMINAL1  ; 1 TER┆
0x1ba0…1bc0       4d 49 4e 41 4c 32 0d 0a 3b 09 32 09 54 45 52 4d 49 4e 41 4c 33 0d 0a 3b 09 33 09 50 52 49 4e 54   ┆MINAL2  ; 2 TERMINAL3  ; 3 PRINT┆
0x1bc0…1be0       45 52 0d 0a 3b 09 34 09 48 4f 53 54 0d 0a 0d 0a 0d 0a 0d 0a 52 44 41 54 41 3a 09 52 4c 43 0d 0a   ┆ER  ; 4 HOST        RDATA: RLC  ┆
0x1be0…1c00       09 52 4c 43 0d 0a 09 4d 4f 56 09 45 2c 41 0d 0a 09 58 52 41 09 41 0d 0a 09 4d 4f 56 09 44 2c 41   ┆ RLC   MOV E,A   XRA A   MOV D,A┆
0x1c00…1c20 (14,) 0d 0a 09 4c 58 49 09 48 4c 2c 44 49 4e 31 0d 0a 09 44 41 44 09 44 45 0d 0a 09 50 43 48 4c 0d 0a   ┆   LXI HL,DIN1   DAD DE   PCHL  ┆
0x1c20…1c40       0d 0a 44 49 4e 31 3a 09 4c 44 41 09 54 45 52 4d 31 0d 0a 09 52 45 54 0d 0a 09 4c 44 41 09 54 45   ┆  DIN1: LDA TERM1   RET   LDA TE┆
0x1c40…1c60       52 4d 32 0d 0a 09 52 45 54 0d 0a 09 4c 44 41 09 54 45 52 4d 33 0d 0a 09 52 45 54 0d 0a 09 4c 44   ┆RM2   RET   LDA TERM3   RET   LD┆
0x1c60…1c80       41 09 50 52 49 4e 54 0d 0a 09 52 45 54 0d 0a 09 4c 44 41 09 48 4f 53 54 0d 0a 09 52 45 54 0d 0a   ┆A PRINT   RET   LDA HOST   RET  ┆
0x1c80…1c82       0d 0a                                                                                             ┆  ┆
0x1c82…1c85       FormFeed {
0x1c82…1c85         0c 82 8e                                                                                          ┆   ┆
0x1c82…1c85       }
0x1c85…1ca0       0d 0a 3b 20 52 4f 55 54 49 4e 45 20 54 4f 20 4f 55 54 50 55 54 20 41 20 42 59 54                  ┆  ; ROUTINE TO OUTPUT A BYT┆
0x1ca0…1cc0       45 20 54 4f 20 41 4e 20 55 41 52 54 2e 0d 0a 3b 20 57 48 45 4e 20 43 41 4c 4c 45 44 3a 0d 0a 3b   ┆E TO AN UART.  ; WHEN CALLED:  ;┆
0x1cc0…1ce0       20 41 3d 09 30 09 54 45 52 4d 49 4e 41 4c 31 0d 0a 3b 09 31 09 54 45 52 4d 49 4e 41 4c 32 0d 0a   ┆ A= 0 TERMINAL1  ; 1 TERMINAL2  ┆
0x1ce0…1d00       3b 09 32 09 54 45 52 4d 49 4e 41 4c 33 0d 0a 3b 09 33 09 50 52 49 4e 54 45 52 2e 0d 0a 3b 09 34   ┆; 2 TERMINAL3  ; 3 PRINTER.  ; 4┆
0x1d00…1d20       09 48 4f 53 54 0d 0a 0d 0a 3b 48 3d 20 44 41 54 41 0d 0a 0d 0a 0d 0a 0d 0a 57 4f 55 54 3a 09 52   ┆ HOST    ;H= DATA        WOUT: R┆
0x1d20…1d40       4c 43 0d 0a 09 52 4c 43 0d 0a 09 4d 4f 56 09 45 2c 41 0d 0a 09 58 52 41 09 41 0d 0a 09 4d 4f 56   ┆LC   RLC   MOV E,A   XRA A   MOV┆
0x1d40…1d60       09 44 2c 41 0d 0a 09 4d 4f 56 09 41 2c 48 0d 0a 09 4c 58 49 09 48 4c 2c 44 4f 55 54 31 0d 0a 09   ┆ D,A   MOV A,H   LXI HL,DOUT1   ┆
0x1d60…1d80       44 41 44 09 44 45 0d 0a 09 50 43 48 4c 0d 0a 0d 0a 44 4f 55 54 31 3a 09 53 54 41 09 54 45 52 4d   ┆DAD DE   PCHL    DOUT1: STA TERM┆
0x1d80…1da0       31 0d 0a 09 52 45 54 0d 0a 09 53 54 41 09 54 45 52 4d 32 0d 0a 09 52 45 54 0d 0a 09 53 54 41 09   ┆1   RET   STA TERM2   RET   STA ┆
0x1da0…1dc0       54 45 52 4d 33 0d 0a 09 52 45 54 0d 0a 09 53 54 41 09 50 52 49 4e 54 0d 0a 09 52 45 54 0d 0a 09   ┆TERM3   RET   STA PRINT   RET   ┆
0x1dc0…1dd0       53 54 41 09 48 4f 53 54 0d 0a 09 52 45 54 0d 0a                                                   ┆STA HOST   RET  ┆
0x1dd0…1dd3       FormFeed {
0x1dd0…1dd3         0c 82 a0                                                                                          ┆   ┆
0x1dd0…1dd3       }
0x1dd3…1de0       52 4f 55 54 49 4e 45 20 54 4f 20 45 4d                                                            ┆ROUTINE TO EM┆
0x1de0…1e00       50 54 59 20 41 20 42 55 46 46 45 52 2e 0d 0a 3b 20 49 4e 50 55 54 2d 4f 55 54 50 55 54 20 50 4f   ┆PTY A BUFFER.  ; INPUT-OUTPUT PO┆
0x1e00…1e20 (15,) 49 4e 54 45 52 53 20 20 41 52 45 20 53 45 54 20 54 4f 20 42 55 46 46 45 52 53 54 41 52 54 0d 0a   ┆INTERS  ARE SET TO BUFFERSTART  ┆
0x1e20…1e40       3b 09 41 4e 44 20 42 55 46 45 4d 20 28 32 2a 4e 4f 20 2b 20 42 4f 4f 4c 45 41 4e 20 54 59 50 45   ┆; AND BUFEM (2*NO + BOOLEAN TYPE┆
0x1e40…1e60       29 20 3a 3d 20 30 3b 0d 0a 3b 20 41 3d 09 54 45 52 4d 49 4e 41 4c 20 4e 4f 20 28 30 2d 33 29 2e   ┆) := 0;  ; A= TERMINAL NO (0-3).┆
0x1e60…1e80       0d 0a 3b 20 4c 3d 09 58 4d 54 2f 52 45 43 20 54 59 50 45 20 4f 46 20 42 55 46 45 52 20 28 20 30   ┆  ; L= XMT/REC TYPE OF BUFER ( 0┆
0x1e80…1ea0       3d 58 4d 54 2c 31 3d 52 45 43 29 2e 0d 0a 0d 0a 45 4d 50 54 31 3a 09 50 55 53 48 09 42 43 0d 0a   ┆=XMT,1=REC).    EMPT1: PUSH BC  ┆
0x1ea0…1ec0       09 50 55 53 48 09 44 45 0d 0a 09 50 55 53 48 09 48 4c 0d 0a 09 52 4c 43 0d 0a 09 41 44 44 09 4c   ┆ PUSH DE   PUSH HL   RLC   ADD L┆
0x1ec0…1ee0       0d 0a 09 50 55 53 48 50 53 57 0d 0a 09 52 4c 43 0d 0a 09 50 55 53 48 50 53 57 0d 0a 09 4c 58 49   ┆   PUSHPSW   RLC   PUSHPSW   LXI┆
0x1ee0…1f00       09 42 43 2c 42 55 46 53 54 41 42 0d 0a 09 43 41 4c 4c 09 42 43 41 44 44 0d 0a 45 4d 50 54 32 3a   ┆ BC,BUFSTAB   CALL BCADD  EMPT2:┆
0x1f00…1f20       09 50 4f 50 50 53 57 0d 0a 09 52 4c 43 0d 0a 09 4c 58 49 09 44 45 2c 42 31 58 49 4e 50 0d 0a 09   ┆ POPPSW   RLC   LXI DE,B1XINP   ┆
0x1f20…1f40       43 41 4c 4c 09 44 45 41 44 44 0d 0a 45 4d 50 54 33 3a 09 4c 44 41 58 09 42 43 09 3b 20 53 45 54   ┆CALL DEADD  EMPT3: LDAX BC ; SET┆
0x1f40…1f60       20 49 4e 50 55 54 20 50 4f 49 4e 54 45 52 0d 0a 09 53 54 41 58 09 44 45 09 3b 20 3d 20 42 55 46   ┆ INPUT POINTER   STAX DE ; = BUF┆
0x1f60…1f80       46 45 52 20 53 54 41 52 54 2e 0d 0a 09 49 4e 58 09 42 43 0d 0a 09 49 4e 58 09 44 45 0d 0a 09 4c   ┆FER START.   INX BC   INX DE   L┆
0x1f80…1fa0       44 41 58 09 42 43 0d 0a 09 53 54 41 58 09 44 45 0d 0a 09 49 4e 58 09 44 45 0d 0a 09 44 43 58 09   ┆DAX BC   STAX DE   INX DE   DCX ┆
0x1fa0…1fc0       42 43 0d 0a 09 4c 44 41 58 09 42 43 09 3b 20 53 45 54 20 4f 55 54 50 55 54 20 50 4f 49 4e 54 45   ┆BC   LDAX BC ; SET OUTPUT POINTE┆
0x1fc0…1fe0       52 0d 0a 09 53 54 41 58 09 44 45 09 3b 20 3d 20 42 55 46 46 45 52 20 53 54 41 52 54 2e 0d 0a 09   ┆R   STAX DE ; = BUFFER START.   ┆
0x1fe0…2000       49 4e 58 09 42 43 0d 0a 09 49 4e 58 09 44 45 0d 0a 09 4c 44 41 58 09 42 43 0d 0a 09 53 54 41 58   ┆INX BC   INX DE   LDAX BC   STAX┆
0x2000…2020 (16,) 09 44 45 0d 0a 09 4c 58 49 09 44 45 2c 42 55 46 45 4d 0d 0a 09 50 4f 50 50 53 57 0d 0a 09 41 44   ┆ DE   LXI DE,BUFEM   POPPSW   AD┆
0x2020…2040       44 09 45 0d 0a 09 4d 4f 56 09 45 2c 41 0d 0a 09 4a 4e 43 09 45 4d 50 54 34 0d 0a 09 49 4e 52 09   ┆D E   MOV E,A   JNC EMPT4   INR ┆
0x2040…2060       44 0d 0a 45 4d 50 54 34 3a 09 58 52 41 09 41 0d 0a 09 53 54 41 58 09 44 45 0d 0a 09 50 4f 50 09   ┆D  EMPT4: XRA A   STAX DE   POP ┆
0x2060…207c       48 4c 0d 0a 09 50 4f 50 09 44 45 0d 0a 09 50 4f 50 09 42 43 0d 0a 09 52 45 54 0d 0a               ┆HL   POP DE   POP BC   RET  ┆
0x207c…207f       FormFeed {
0x207c…207f         0c 83 95                                                                                          ┆   ┆
0x207c…207f       }
0x207f…2080       3b                                                                                                ┆;┆
0x2080…20a0       20 52 4f 55 54 49 4e 45 20 54 4f 20 43 4f 4d 50 41 52 45 20 54 4f 20 42 55 46 46 45 52 20 45 4c   ┆ ROUTINE TO COMPARE TO BUFFER EL┆
0x20a0…20c0       45 4d 45 4e 54 20 45 41 43 48 20 4f 46 20 32 20 42 59 54 45 53 20 28 50 4f 49 4e 54 45 52 53 29   ┆EMENT EACH OF 2 BYTES (POINTERS)┆
0x20c0…20e0       0d 0a 3b 20 57 48 45 4e 20 43 41 4c 4c 45 44 3a 20 0d 0a 3b 09 42 43 3d 09 50 4f 49 4e 54 45 52   ┆  ; WHEN CALLED:   ; BC= POINTER┆
0x20e0…2100       20 54 4f 20 20 42 55 46 2d 45 4c 45 4d 45 4e 54 31 0d 0a 3b 09 44 45 3d 09 50 4f 49 4e 54 45 52   ┆ TO  BUF-ELEMENT1  ; DE= POINTER┆
0x2100…2120       20 54 4f 20 42 55 46 2d 45 4c 45 4d 45 4e 54 20 32 0d 0a 3b 52 45 54 55 52 4e 3a 20 5a 45 52 4f   ┆ TO BUF-ELEMENT 2  ;RETURN: ZERO┆
0x2120…2140       20 46 4c 41 47 3d 31 20 49 46 20 45 51 55 41 4c 2e 0d 0a 0d 0a 45 51 55 41 4c 3a 09 50 55 53 48   ┆ FLAG=1 IF EQUAL.    EQUAL: PUSH┆
0x2140…2160       09 48 4c 0d 0a 09 4c 44 41 58 09 42 43 0d 0a 09 4d 4f 56 09 48 2c 41 0d 0a 09 4c 44 41 58 09 44   ┆ HL   LDAX BC   MOV H,A   LDAX D┆
0x2160…2180       45 0d 0a 09 53 55 42 09 48 0d 0a 09 4a 4e 5a 09 45 51 55 31 0d 0a 09 49 4e 58 09 42 43 0d 0a 09   ┆E   SUB H   JNZ EQU1   INX BC   ┆
0x2180…21a0       49 4e 58 09 44 45 0d 0a 09 4c 44 41 58 09 42 43 0d 0a 09 4d 4f 56 09 48 2c 41 0d 0a 09 4c 44 41   ┆INX DE   LDAX BC   MOV H,A   LDA┆
0x21a0…21c0       58 09 44 45 0d 0a 09 44 43 58 09 42 43 0d 0a 09 44 43 58 09 44 45 0d 0a 09 53 55 42 09 48 0d 0a   ┆X DE   DCX BC   DCX DE   SUB H  ┆
0x21c0…21e0       45 51 55 31 3a 09 50 4f 50 09 48 4c 0d 0a 09 52 45 54 0d 0a 0d 0a 0d 0a 3b 20 52 4f 55 54 49 4e   ┆EQU1: POP HL   RET      ; ROUTIN┆
0x21e0…2200       45 20 54 4f 20 54 45 53 54 20 41 20 42 55 46 46 45 52 20 46 4f 52 20 45 4d 50 54 59 20 53 54 41   ┆E TO TEST A BUFFER FOR EMPTY STA┆
0x2200…2220 (17,) 54 45 0d 0a 3b 20 28 49 4e 50 55 54 20 50 4f 49 4e 54 45 52 3d 4f 55 54 50 55 54 20 50 4f 49 4e   ┆TE  ; (INPUT POINTER=OUTPUT POIN┆
0x2220…2240       54 45 52 29 0d 0a 3b 20 57 48 45 4e 20 43 41 4c 4c 45 44 3a 0d 0a 3b 20 41 3d 09 54 45 52 4d 49   ┆TER)  ; WHEN CALLED:  ; A= TERMI┆
0x2240…2260       4e 41 4c 20 4e 4f 20 28 30 2d 34 29 0d 0a 3b 20 4c 3d 09 58 4d 54 2f 52 45 43 20 54 59 50 45 20   ┆NAL NO (0-4)  ; L= XMT/REC TYPE ┆
0x2260…2280       42 55 46 46 45 52 28 30 3d 58 4d 54 2c 31 3d 52 45 43 29 2e 0d 0a 3b 20 52 45 54 55 52 4e 3a 0d   ┆BUFFER(0=XMT,1=REC).  ; RETURN: ┆
0x2280…22a0       0a 3b 20 5a 45 52 4f 2d 46 4c 41 47 3d 31 20 49 46 20 42 55 46 46 45 52 20 45 4d 50 54 59 2e 0d   ┆ ; ZERO-FLAG=1 IF BUFFER EMPTY. ┆
0x22a0…22c0       0a 0d 0a 42 34 3a 09 50 55 53 48 09 44 45 0d 0a 09 4c 58 49 09 44 45 2c 42 55 46 45 4d 0d 0a 09   ┆   B4: PUSH DE   LXI DE,BUFEM   ┆
0x22c0…22e0       52 4c 43 0d 0a 09 41 44 44 09 4c 0d 0a 09 41 44 44 09 45 0d 0a 09 4d 4f 56 09 45 2c 41 0d 0a 09   ┆RLC   ADD L   ADD E   MOV E,A   ┆
0x22e0…2300       4a 4e 43 09 42 35 0d 0a 09 49 4e 52 09 44 0d 0a 42 35 3a 09 4c 44 41 58 09 44 45 0d 0a 09 43 50   ┆JNC B5   INR D  B5: LDAX DE   CP┆
0x2300…2314       49 09 30 0d 0a 09 50 4f 50 09 44 45 0d 0a 09 52 45 54 0d 0a                                       ┆I 0   POP DE   RET  ┆
0x2314…2317       FormFeed {
0x2314…2317         0c 83 83                                                                                          ┆   ┆
0x2314…2317       }
0x2317…2320       0d 0a 3b 20 52 4f 55 54 49                                                                        ┆  ; ROUTI┆
0x2320…2340       4e 45 20 54 4f 20 49 4e 50 55 54 20 41 20 42 59 54 45 20 54 4f 20 41 20 42 55 46 46 45 52 2e 0d   ┆NE TO INPUT A BYTE TO A BUFFER. ┆
0x2340…2360       0a 3b 20 49 4e 43 52 45 4d 45 4e 54 20 49 4e 50 55 54 20 50 4f 49 4e 54 45 52 0d 0a 3b 20 49 46   ┆ ; INCREMENT INPUT POINTER  ; IF┆
0x2360…2380       20 49 4e 50 55 54 20 50 4f 49 4e 54 45 52 20 45 51 55 41 4c 53 20 54 4f 50 20 4f 46 20 42 55 46   ┆ INPUT POINTER EQUALS TOP OF BUF┆
0x2380…23a0       46 45 52 20 54 48 45 4e 0d 0a 3b 20 49 4e 50 55 54 20 50 4f 49 4e 54 45 52 3a 3d 20 42 55 46 46   ┆FER THEN  ; INPUT POINTER:= BUFF┆
0x23a0…23c0       45 52 20 53 54 41 52 54 2e 0d 0a 3b 20 57 48 45 4e 20 43 41 4c 4c 45 44 3a 0d 0a 3b 09 41 3d 09   ┆ER START.  ; WHEN CALLED:  ; A= ┆
0x23c0…23e0       54 45 52 4d 49 4e 41 4c 20 4e 4f 2e 28 30 2d 34 29 0d 0a 3b 09 4c 3d 09 58 4d 54 2f 52 45 43 20   ┆TERMINAL NO.(0-4)  ; L= XMT/REC ┆
0x23e0…2400       54 59 50 45 20 42 55 46 46 45 52 28 30 3d 58 4d 54 2c 31 3d 52 45 43 29 2e 0d 0a 3b 09 48 3d 09   ┆TYPE BUFFER(0=XMT,1=REC).  ; H= ┆
0x2400…2420 (18,) 49 4e 50 55 54 20 43 48 41 52 41 43 54 45 52 2e 0d 0a 0d 0a 0d 0a 42 36 3a 09 50 55 53 48 09 42   ┆INPUT CHARACTER.      B6: PUSH B┆
0x2420…2440       43 0d 0a 09 50 55 53 48 09 44 45 0d 0a 09 50 55 53 48 09 48 4c 0d 0a 09 4c 58 49 09 42 43 2c 42   ┆C   PUSH DE   PUSH HL   LXI BC,B┆
0x2440…2460       31 58 49 4e 50 09 3b 20 47 45 54 20 42 55 46 46 45 52 20 50 4f 49 4e 54 45 52 2e 0d 0a 09 4d 4f   ┆1XINP ; GET BUFFER POINTER.   MO┆
0x2460…2480       56 09 48 2c 41 0d 0a 09 52 4c 43 0d 0a 09 41 44 44 09 4c 0d 0a 09 52 4c 43 0d 0a 09 52 4c 43 0d   ┆V H,A   RLC   ADD L   RLC   RLC ┆
0x2480…24a0       0a 09 41 44 44 09 43 0d 0a 09 4d 4f 56 09 43 2c 41 0d 0a 09 4a 4e 43 09 42 37 0d 0a 09 49 4e 52   ┆  ADD C   MOV C,A   JNC B7   INR┆
0x24a0…24c0       09 42 0d 0a 42 37 3a 09 4c 44 41 58 09 42 43 0d 0a 09 4d 4f 56 09 45 2c 41 0d 0a 09 49 4e 58 09   ┆ B  B7: LDAX BC   MOV E,A   INX ┆
0x24c0…24e0       42 43 0d 0a 09 4c 44 41 58 09 42 43 0d 0a 09 4d 4f 56 09 44 2c 41 09 3b 20 44 45 3d 43 55 52 52   ┆BC   LDAX BC   MOV D,A ; DE=CURR┆
0x24e0…2500       45 4e 54 20 42 55 46 20 41 44 44 52 45 53 53 2e 0d 0a 09 58 54 48 4c 0d 0a 09 4d 4f 56 09 41 2c   ┆ENT BUF ADDRESS.   XTHL   MOV A,┆
0x2500…2520       48 0d 0a 09 53 54 41 58 09 44 45 0d 0a 09 58 54 48 4c 0d 0a 09 44 43 58 09 42 43 09 3b 20 49 4e   ┆H   STAX DE   XTHL   DCX BC ; IN┆
0x2520…2540       43 52 45 4d 45 4e 54 20 42 55 46 46 45 52 20 50 4f 49 4e 54 45 52 2e 0d 0a 09 4c 44 41 58 09 42   ┆CREMENT BUFFER POINTER.   LDAX B┆
0x2540…2560       43 0d 0a 09 49 4e 52 09 41 0d 0a 09 53 54 41 58 09 42 43 0d 0a 09 4a 4e 5a 09 42 38 0d 0a 0d 0a   ┆C   INR A   STAX BC   JNZ B8    ┆
0x2560…2580       09 49 4e 58 09 42 43 0d 0a 09 4c 44 41 58 09 42 43 0d 0a 09 49 4e 52 09 41 0d 0a 09 53 54 41 58   ┆ INX BC   LDAX BC   INR A   STAX┆
0x2580…259b       09 42 43 0d 0a 09 44 43 58 09 42 43 09 3b 20 42 43 3d 50 4f 49 4e 54 45 52 0d 0a                  ┆ BC   DCX BC ; BC=POINTER  ┆
0x259b…259e       FormFeed {
0x259b…259e         0c 83 83                                                                                          ┆   ┆
0x259b…259e       }
0x259e…25a0       0d 0a                                                                                             ┆  ┆
0x25a0…25c0       42 38 3a 09 4d 4f 56 09 41 2c 48 0d 0a 09 52 4c 43 0d 0a 09 41 44 44 09 4c 0d 0a 09 52 4c 43 0d   ┆B8: MOV A,H   RLC   ADD L   RLC ┆
0x25c0…25e0       0a 09 4c 58 49 09 44 45 2c 42 55 46 54 54 41 42 0d 0a 09 43 41 4c 4c 09 44 45 41 44 44 09 3b 20   ┆  LXI DE,BUFTTAB   CALL DEADD ; ┆
0x25e0…2600       44 45 3d 20 42 55 46 46 45 52 20 4d 41 58 2e 0d 0a 09 43 41 4c 4c 09 45 51 55 41 4c 09 3b 20 49   ┆DE= BUFFER MAX.   CALL EQUAL ; I┆
0x2600…2620 (19,) 46 20 28 42 43 29 3d 28 44 45 29 20 54 48 45 4e 0d 0a 09 4a 4e 5a 09 42 31 30 09 3b 20 28 42 43   ┆F (BC)=(DE) THEN   JNZ B10 ; (BC┆
0x2620…2640       29 3a 3d 20 42 55 46 46 45 52 20 53 54 41 52 54 2e 0d 0a 0d 0a 09 4d 4f 56 09 41 2c 48 0d 0a 09   ┆):= BUFFER START.     MOV A,H   ┆
0x2640…2660       52 4c 43 0d 0a 09 41 44 44 09 4c 0d 0a 09 52 4c 43 0d 0a 09 4c 58 49 09 44 45 2c 42 55 46 53 54   ┆RLC   ADD L   RLC   LXI DE,BUFST┆
0x2660…2680       41 42 0d 0a 09 43 41 4c 4c 09 44 45 41 44 44 0d 0a 09 4c 44 41 58 09 44 45 0d 0a 09 53 54 41 58   ┆AB   CALL DEADD   LDAX DE   STAX┆
0x2680…26a0       09 42 43 0d 0a 09 49 4e 58 09 44 45 0d 0a 09 49 4e 58 09 42 43 0d 0a 09 4c 44 41 58 09 44 45 0d   ┆ BC   INX DE   INX BC   LDAX DE ┆
0x26a0…26c0       0a 09 53 54 41 58 09 42 43 0d 0a 42 31 30 3a 09 4d 4f 56 09 41 2c 48 0d 0a 09 52 4c 43 0d 0a 09   ┆  STAX BC  B10: MOV A,H   RLC   ┆
0x26c0…26e0       41 44 44 09 4c 0d 0a 09 4c 58 49 09 48 4c 2c 42 55 46 45 4d 0d 0a 09 41 44 44 09 4c 0d 0a 09 4d   ┆ADD L   LXI HL,BUFEM   ADD L   M┆
0x26e0…2700       4f 56 09 4c 2c 41 0d 0a 09 4a 4e 43 09 45 42 31 30 0d 0a 09 49 4e 52 09 48 0d 0a 45 42 31 30 3a   ┆OV L,A   JNC EB10   INR H  EB10:┆
0x2700…2720       09 49 4e 52 09 4d 0d 0a 09 50 4f 50 09 48 4c 0d 0a 09 50 4f 50 09 44 45 0d 0a 09 50 4f 50 09 42   ┆ INR M   POP HL   POP DE   POP B┆
0x2720…2729       43 0d 0a 09 52 45 54 0d 0a                                                                        ┆C   RET  ┆
0x2729…272c       FormFeed {
0x2729…272c         0c 82 b2                                                                                          ┆   ┆
0x2729…272c       }
0x272c…2740       3b 20 52 4f 55 54 49 4e 45 20 54 4f 20 4f 55 54 50 55 54 20                                       ┆; ROUTINE TO OUTPUT ┆
0x2740…2760       41 20 42 59 54 45 20 46 52 4f 4d 20 41 20 42 55 46 46 45 52 2e 0d 0a 3b 20 49 4e 43 52 45 4d 45   ┆A BYTE FROM A BUFFER.  ; INCREME┆
0x2760…2780       4e 54 20 54 48 45 20 4f 55 54 50 55 54 20 50 4f 49 4e 54 45 52 0d 0a 3b 20 49 46 20 4f 55 54 50   ┆NT THE OUTPUT POINTER  ; IF OUTP┆
0x2780…27a0       55 54 20 50 4f 49 4e 54 45 52 3d 54 4f 50 20 4f 46 20 42 55 46 46 45 52 20 54 48 45 4e 0d 0a 3b   ┆UT POINTER=TOP OF BUFFER THEN  ;┆
0x27a0…27c0       20 4f 55 54 50 55 54 20 50 4f 49 4e 54 45 52 3a 3d 20 42 55 46 46 45 52 20 53 54 41 52 54 2e 0d   ┆ OUTPUT POINTER:= BUFFER START. ┆
0x27c0…27e0       0a 3b 20 57 48 45 4e 20 43 41 4c 4c 45 44 3a 0d 0a 3b 20 09 41 3d 09 54 45 52 4d 49 4e 41 4c 20   ┆ ; WHEN CALLED:  ;  A= TERMINAL ┆
0x27e0…2800       4e 4f 28 30 2d 34 29 0d 0a 3b 09 4c 3d 09 58 4d 54 2f 52 45 43 20 42 55 46 46 45 52 28 30 3d 58   ┆NO(0-4)  ; L= XMT/REC BUFFER(0=X┆
0x2800…2820 (20,) 4d 54 2c 31 3d 52 45 43 29 2e 0d 0a 3b 52 45 54 55 52 4e 3a 0d 0a 3b 09 48 3d 09 43 48 41 52 41   ┆MT,1=REC).  ;RETURN:  ; H= CHARA┆
0x2820…2840       43 54 45 52 2e 0d 0a 0d 0a 0d 0a 42 31 32 3a 09 50 55 53 48 09 42 43 09 3b 20 53 41 56 45 20 41   ┆CTER.      B12: PUSH BC ; SAVE A┆
0x2840…2860       43 43 55 4d 55 4c 41 54 4f 52 53 2e 0d 0a 09 50 55 53 48 09 44 45 0d 0a 09 50 55 53 48 09 48 4c   ┆CCUMULATORS.   PUSH DE   PUSH HL┆
0x2860…2880       0d 0a 09 4c 58 49 09 42 43 2c 42 31 58 49 4e 50 2b 32 09 3b 20 47 45 54 20 42 55 46 46 45 52 20   ┆   LXI BC,B1XINP+2 ; GET BUFFER ┆
0x2880…28a0       50 4f 49 4e 54 45 52 2e 0d 0a 09 4d 4f 56 09 48 2c 41 0d 0a 09 52 4c 43 0d 0a 09 41 44 44 09 4c   ┆POINTER.   MOV H,A   RLC   ADD L┆
0x28a0…28c0       0d 0a 09 52 4c 43 0d 0a 09 52 4c 43 0d 0a 09 41 44 44 09 43 0d 0a 09 4d 4f 56 09 43 2c 41 0d 0a   ┆   RLC   RLC   ADD C   MOV C,A  ┆
0x28c0…28e0       09 4a 4e 43 09 42 31 33 0d 0a 09 49 4e 52 09 42 0d 0a 42 31 33 3a 09 4c 44 41 58 09 42 43 0d 0a   ┆ JNC B13   INR B  B13: LDAX BC  ┆
0x28e0…2900       09 4d 4f 56 09 45 2c 41 0d 0a 09 49 4e 58 09 42 43 0d 0a 09 4c 44 41 58 09 42 43 0d 0a 09 4d 4f   ┆ MOV E,A   INX BC   LDAX BC   MO┆
0x2900…2920       56 09 44 2c 41 09 3b 20 44 45 3d 43 55 52 52 45 4e 54 20 42 55 46 46 45 52 20 41 44 44 52 45 53   ┆V D,A ; DE=CURRENT BUFFER ADDRES┆
0x2920…2940       53 2e 0d 0a 09 4c 44 41 58 09 44 45 0d 0a 09 4d 4f 56 09 44 2c 48 0d 0a 09 4d 4f 56 09 48 2c 41   ┆S.   LDAX DE   MOV D,H   MOV H,A┆
0x2940…2960       0d 0a 09 58 54 48 4c 0d 0a 09 44 43 58 09 42 43 0d 0a 09 4c 44 41 58 09 42 43 09 3b 20 49 4e 43   ┆   XTHL   DCX BC   LDAX BC ; INC┆
0x2960…2980       52 20 50 4f 49 4e 54 45 52 2e 0d 0a 09 49 4e 52 09 41 0d 0a 09 53 54 41 58 09 42 43 0d 0a 09 4a   ┆R POINTER.   INR A   STAX BC   J┆
0x2980…29a0       4e 5a 09 42 31 34 0d 0a 0d 0a 09 49 4e 58 09 42 43 0d 0a 09 4c 44 41 58 09 42 43 0d 0a 09 49 4e   ┆NZ B14     INX BC   LDAX BC   IN┆
0x29a0…29b8       52 09 41 0d 0a 09 53 54 41 58 09 42 43 0d 0a 09 44 43 58 09 42 43 0d 0a                           ┆R A   STAX BC   DCX BC  ┆
0x29b8…29bb       FormFeed {
0x29b8…29bb         0c 83 83                                                                                          ┆   ┆
0x29b8…29bb       }
0x29bb…29c0       0d 0a 42 31 34                                                                                    ┆  B14┆
0x29c0…29e0       3a 09 4d 4f 56 09 41 2c 44 09 3b 20 54 45 53 54 20 50 4f 49 4e 54 45 52 3d 20 42 55 46 46 45 52   ┆: MOV A,D ; TEST POINTER= BUFFER┆
0x29e0…2a00       20 54 4f 50 2e 0d 0a 09 4d 4f 56 09 48 2c 44 0d 0a 09 52 4c 43 0d 0a 09 41 44 44 09 4c 0d 0a 09   ┆ TOP.   MOV H,D   RLC   ADD L   ┆
0x2a00…2a20 (21,) 52 4c 43 0d 0a 09 4c 58 49 09 44 45 2c 42 55 46 54 54 41 42 0d 0a 09 43 41 4c 4c 09 44 45 41 44   ┆RLC   LXI DE,BUFTTAB   CALL DEAD┆
0x2a20…2a40       44 09 3b 20 28 44 45 29 3d 20 42 55 46 46 45 52 20 54 4f 50 2e 0d 0a 09 43 41 4c 4c 09 45 51 55   ┆D ; (DE)= BUFFER TOP.   CALL EQU┆
0x2a40…2a60       41 4c 0d 0a 09 4a 4e 5a 09 42 31 36 09 3b 20 49 46 20 28 42 43 29 3d 28 44 45 29 20 54 48 45 4e   ┆AL   JNZ B16 ; IF (BC)=(DE) THEN┆
0x2a60…2a80       0d 0a 0d 0a 09 4d 4f 56 09 41 2c 48 09 3b 20 28 42 43 29 3a 3d 42 55 46 46 45 52 20 53 54 41 52   ┆     MOV A,H ; (BC):=BUFFER STAR┆
0x2a80…2aa0       54 2e 0d 0a 09 52 4c 43 0d 0a 09 41 44 44 09 4c 0d 0a 09 52 4c 43 0d 0a 09 4c 58 49 09 44 45 2c   ┆T.   RLC   ADD L   RLC   LXI DE,┆
0x2aa0…2ac0       42 55 46 53 54 41 42 0d 0a 09 43 41 4c 4c 09 44 45 41 44 44 0d 0a 42 31 37 3a 09 4c 44 41 58 09   ┆BUFSTAB   CALL DEADD  B17: LDAX ┆
0x2ac0…2ae0       44 45 0d 0a 09 53 54 41 58 09 42 43 0d 0a 09 49 4e 58 09 44 45 0d 0a 09 49 4e 58 09 42 43 0d 0a   ┆DE   STAX BC   INX DE   INX BC  ┆
0x2ae0…2b00       09 4c 44 41 58 09 44 45 0d 0a 09 53 54 41 58 09 42 43 0d 0a 42 31 36 3a 09 4d 4f 56 09 41 2c 48   ┆ LDAX DE   STAX BC  B16: MOV A,H┆
0x2b00…2b20       0d 0a 09 52 4c 43 0d 0a 09 41 44 44 09 4c 0d 0a 09 4c 58 49 09 48 4c 2c 42 55 46 45 4d 0d 0a 09   ┆   RLC   ADD L   LXI HL,BUFEM   ┆
0x2b20…2b40       41 44 44 09 4c 0d 0a 09 4d 4f 56 09 4c 2c 41 0d 0a 09 4a 4e 43 09 45 42 31 36 0d 0a 09 49 4e 52   ┆ADD L   MOV L,A   JNC EB16   INR┆
0x2b40…2b60       09 48 0d 0a 45 42 31 36 3a 09 44 43 52 09 4d 0d 0a 09 50 4f 50 09 48 4c 0d 0a 09 50 4f 50 09 44   ┆ H  EB16: DCR M   POP HL   POP D┆
0x2b60…2b72       45 0d 0a 09 50 4f 50 09 42 43 0d 0a 09 52 45 54 0d 0a                                             ┆E   POP BC   RET  ┆
0x2b72…2b75       FormFeed {
0x2b72…2b75         0c 82 bb                                                                                          ┆   ┆
0x2b72…2b75       }
0x2b75…2b80       0d 0a 3b 20 52 4f 55 54 49 4e 45                                                                  ┆  ; ROUTINE┆
0x2b80…2ba0       20 54 4f 20 41 44 44 20 54 48 45 20 43 4f 4e 54 45 4e 54 53 20 4f 46 0d 0a 3b 20 41 22 20 54 4f   ┆ TO ADD THE CONTENTS OF  ; A" TO┆
0x2ba0…2bc0       20 54 48 45 20 52 45 47 49 53 54 45 52 20 50 41 49 52 20 42 43 22 2e 0d 0a 0d 0a 42 43 41 44 44   ┆ THE REGISTER PAIR BC".    BCADD┆
0x2bc0…2be0       3a 09 41 44 44 09 43 0d 0a 09 4d 4f 56 09 43 2c 41 0d 0a 09 4a 4e 43 09 4b 31 0d 0a 09 49 4e 52   ┆: ADD C   MOV C,A   JNC K1   INR┆
0x2be0…2c00       09 42 0d 0a 4b 31 3a 09 52 45 54 0d 0a 0d 0a 0d 0a 3b 20 52 4f 55 54 49 4e 45 20 54 4f 20 41 44   ┆ B  K1: RET      ; ROUTINE TO AD┆
0x2c00…2c20 (22,) 44 20 54 48 45 20 43 4f 4e 54 45 4e 54 53 20 4f 46 0d 0a 3b 20 41 22 20 54 4f 20 54 48 45 20 52   ┆D THE CONTENTS OF  ; A" TO THE R┆
0x2c20…2c40       45 47 49 53 54 45 52 20 50 41 49 52 20 44 45 22 0d 0a 0d 0a 44 45 41 44 44 3a 09 41 44 44 09 45   ┆EGISTER PAIR DE"    DEADD: ADD E┆
0x2c40…2c60       0d 0a 09 4d 4f 56 09 45 2c 41 0d 0a 09 4a 4e 43 09 4b 32 0d 0a 09 49 4e 52 09 44 0d 0a 4b 32 3a   ┆   MOV E,A   JNC K2   INR D  K2:┆
0x2c60…2c80       09 52 45 54 0d 0a 0d 0a 3b 20 52 4f 55 54 49 4e 45 20 54 4f 20 41 44 44 20 54 48 45 20 43 4f 4e   ┆ RET    ; ROUTINE TO ADD THE CON┆
0x2c80…2ca0       54 45 4e 54 53 20 4f 46 0d 0a 3b 20 41 22 20 54 4f 20 54 48 45 20 52 45 47 49 53 54 45 52 20 50   ┆TENTS OF  ; A" TO THE REGISTER P┆
0x2ca0…2cc0       41 49 52 20 48 4c 22 2e 0d 0a 0d 0a 48 4c 41 44 44 3a 09 41 44 44 09 4c 0d 0a 09 4d 4f 56 09 4c   ┆AIR HL".    HLADD: ADD L   MOV L┆
0x2cc0…2cde       2c 41 0d 0a 09 4a 4e 43 09 4b 33 0d 0a 09 49 4e 52 09 48 0d 0a 4b 33 3a 09 52 45 54 0d 0a         ┆,A   JNC K3   INR H  K3: RET  ┆
0x2cde…2ce1       FormFeed {
0x2cde…2ce1         0c 81 f3                                                                                          ┆   ┆
0x2cde…2ce1       }
0x2ce1…2d00       52 4f 55 54 49 4e 45 20 54 4f 20 57 52 49 54 45 20 54 48 45 20 43 4f 4e 54 45 4e 54 53 20 4f      ┆ROUTINE TO WRITE THE CONTENTS O┆
0x2d00…2d20       46 20 48 22 0d 0a 3b 20 49 4e 54 4f 20 54 48 45 20 56 41 52 49 41 42 4c 45 20 4d 4f 44 45 58 0d   ┆F H"  ; INTO THE VARIABLE MODEX ┆
0x2d20…2d40       0a 3b 20 57 48 45 52 45 20 41 3d 20 54 45 52 4d 49 4e 41 4c 20 4e 4f 2e 0d 0a 0d 0a 57 52 4d 4f   ┆ ; WHERE A= TERMINAL NO.    WRMO┆
0x2d40…2d60       44 45 3a 09 4c 58 49 09 42 43 2c 4d 4f 44 45 31 0d 0a 09 43 41 4c 4c 09 42 43 41 44 44 0d 0a 09   ┆DE: LXI BC,MODE1   CALL BCADD   ┆
0x2d60…2d80       4d 4f 56 09 41 2c 48 0d 0a 09 53 54 41 58 09 42 43 0d 0a 09 52 45 54 0d 0a 0d 0a 3b 20 52 4f 55   ┆MOV A,H   STAX BC   RET    ; ROU┆
0x2d80…2da0       54 49 4e 45 20 54 4f 20 52 45 41 44 20 54 48 45 20 43 4f 4e 54 45 4e 54 53 20 4f 46 20 54 48 45   ┆TINE TO READ THE CONTENTS OF THE┆
0x2da0…2dc0       0d 0a 3b 20 56 41 52 49 41 42 4c 45 20 4d 4f 44 45 58 20 49 4e 54 4f 20 41 2e 0d 0a 3b 20 57 48   ┆  ; VARIABLE MODEX INTO A.  ; WH┆
0x2dc0…2de0       45 4e 20 43 41 4c 4c 45 44 20 41 3d 20 54 45 52 4d 49 4e 41 4c 20 4e 4f 2e 0d 0a 0d 0a 52 44 4d   ┆EN CALLED A= TERMINAL NO.    RDM┆
0x2de0…2e00       4f 44 45 3a 09 4c 58 49 09 42 43 2c 4d 4f 44 45 31 0d 0a 09 43 41 4c 4c 09 42 43 41 44 44 0d 0a   ┆ODE: LXI BC,MODE1   CALL BCADD  ┆
0x2e00…2e20 (23,) 09 4c 44 41 58 09 42 43 0d 0a 09 52 45 54 0d 0a 0d 0a 0d 0a 3b 20 52 4f 55 54 49 4e 45 20 54 4f   ┆ LDAX BC   RET      ; ROUTINE TO┆
0x2e20…2e40       20 50 55 54 20 4c 4f 47 49 43 41 4c 20 31 22 20 49 4e 54 4f 20 54 48 45 20 56 41 52 49 41 42 4c   ┆ PUT LOGICAL 1" INTO THE VARIABL┆
0x2e40…2e60       45 20 53 54 41 46 58 0d 0a 3b 20 57 48 45 4e 20 43 41 4c 4c 45 44 20 41 3d 20 54 45 52 4d 49 4e   ┆E STAFX  ; WHEN CALLED A= TERMIN┆
0x2e60…2e80       41 4c 20 4e 4f 2e 0d 0a 0d 0a 57 52 53 46 3a 09 4c 58 49 09 42 43 2c 53 54 41 46 31 0d 0a 09 43   ┆AL NO.    WRSF: LXI BC,STAF1   C┆
0x2e80…2ea0       41 4c 4c 09 42 43 41 44 44 0d 0a 09 4d 56 49 09 41 2c 31 0d 0a 09 53 54 41 58 09 42 43 0d 0a 09   ┆ALL BCADD   MVI A,1   STAX BC   ┆
0x2ea0…2ec0       52 45 54 0d 0a 0d 0a 0d 0a 3b 20 52 4f 55 54 49 4e 45 20 54 4f 20 50 55 54 20 4c 4f 47 49 43 41   ┆RET      ; ROUTINE TO PUT LOGICA┆
0x2ec0…2ee0       4c 20 22 30 22 20 49 4e 54 4f 20 54 48 45 20 56 41 52 49 41 42 4c 45 20 22 53 54 41 46 58 22 0d   ┆L "0" INTO THE VARIABLE "STAFX" ┆
0x2ee0…2f00       0a 3b 20 57 48 45 4e 20 43 41 4c 4c 45 44 20 41 3d 20 54 45 52 4d 49 4e 41 4c 20 4e 55 4d 42 45   ┆ ; WHEN CALLED A= TERMINAL NUMBE┆
0x2f00…2f20       52 2e 0d 0a 0d 0a 57 52 53 43 3a 09 4c 58 49 09 42 43 2c 53 54 41 46 31 09 3b 0d 0a 09 43 41 4c   ┆R.    WRSC: LXI BC,STAF1 ;   CAL┆
0x2f20…2f40       4c 09 42 43 41 44 44 09 3b 0d 0a 09 58 52 41 09 41 09 3b 0d 0a 09 53 54 41 58 09 42 43 09 3b 0d   ┆L BCADD ;   XRA A ;   STAX BC ; ┆
0x2f40…2f60       0a 09 52 45 54 09 09 3b 0d 0a 0d 0a 0d 0a 3b 20 52 4f 55 54 49 4e 45 20 54 4f 20 52 45 41 44 20   ┆  RET  ;      ; ROUTINE TO READ ┆
0x2f60…2f80       54 48 45 20 43 4f 4e 54 45 4e 54 53 20 4f 46 20 53 54 41 46 58 20 49 4e 54 4f 20 22 41 22 2e 0d   ┆THE CONTENTS OF STAFX INTO "A". ┆
0x2f80…2fa0       0a 3b 20 57 48 45 4e 20 43 41 4c 4c 45 44 20 41 3d 20 54 45 52 4d 49 4e 41 4c 20 4e 4f 2e 0d 0a   ┆ ; WHEN CALLED A= TERMINAL NO.  ┆
0x2fa0…2fc0       0d 0a 52 44 53 46 3a 09 4c 58 49 09 42 43 2c 53 54 41 46 31 0d 0a 09 43 41 4c 4c 09 42 43 41 44   ┆  RDSF: LXI BC,STAF1   CALL BCAD┆
0x2fc0…2fd3       44 0d 0a 09 4c 44 41 58 09 42 43 0d 0a 09 52 45 54 0d 0a                                          ┆D   LDAX BC   RET  ┆
0x2fd3…2fd6       FormFeed {
0x2fd3…2fd6         0c 83 9e                                                                                          ┆   ┆
0x2fd3…2fd6       }
0x2fd6…2fe0       3b 20 52 4f 55 54 49 4e 45 20                                                                     ┆; ROUTINE ┆
0x2fe0…3000       54 4f 20 57 52 49 54 45 20 54 48 45 20 43 4f 4e 54 45 4e 54 53 20 4f 46 20 48 22 0d 0a 3b 20 49   ┆TO WRITE THE CONTENTS OF H"  ; I┆
0x3000…3020 (24,) 4e 54 4f 20 54 48 45 20 56 41 52 49 41 42 4c 45 20 53 54 41 42 58 2e 0d 0a 3b 20 41 3d 20 54 45   ┆NTO THE VARIABLE STABX.  ; A= TE┆
0x3020…3040       52 4d 49 4e 41 4c 20 4e 4f 2e 0d 0a 0d 0a 57 52 53 42 3a 09 4c 58 49 09 42 43 2c 53 54 41 42 31   ┆RMINAL NO.    WRSB: LXI BC,STAB1┆
0x3040…3060       0d 0a 09 43 41 4c 4c 09 42 43 41 44 44 0d 0a 09 4d 4f 56 09 41 2c 48 0d 0a 09 53 54 41 58 09 42   ┆   CALL BCADD   MOV A,H   STAX B┆
0x3060…3080       43 0d 0a 09 52 45 54 0d 0a 0d 0a 3b 20 52 4f 55 54 49 4e 45 20 54 4f 20 52 45 41 44 20 54 48 45   ┆C   RET    ; ROUTINE TO READ THE┆
0x3080…30a0       20 43 4f 4e 54 45 4e 54 53 20 4f 46 20 56 41 52 49 41 42 4c 45 0d 0a 3b 20 53 54 41 42 58 20 49   ┆ CONTENTS OF VARIABLE  ; STABX I┆
0x30a0…30c0       4e 54 4f 20 41 22 2e 0d 0a 3b 20 57 48 45 4e 20 43 41 4c 4c 45 44 20 41 3d 20 54 45 52 4d 49 4e   ┆NTO A".  ; WHEN CALLED A= TERMIN┆
0x30c0…30e0       41 4c 20 4e 4f 2e 0d 0a 0d 0a 52 44 53 42 3a 09 4c 58 49 09 42 43 2c 53 54 41 42 31 0d 0a 09 43   ┆AL NO.    RDSB: LXI BC,STAB1   C┆
0x30e0…3100       41 4c 4c 09 42 43 41 44 44 0d 0a 09 4c 44 41 58 09 42 43 0d 0a 09 52 45 54 0d 0a 0d 0a 0d 0a 3b   ┆ALL BCADD   LDAX BC   RET      ;┆
0x3100…3120       20 52 4f 55 54 49 4e 45 20 54 4f 20 54 45 53 54 20 49 46 20 54 48 45 20 43 48 41 52 0d 0a 3b 20   ┆ ROUTINE TO TEST IF THE CHAR  ; ┆
0x3120…3140       28 3c 33 32 29 20 49 4e 20 41 22 20 49 53 20 4f 4e 45 20 4f 46 20 54 48 45 20 53 50 45 43 49 41   ┆(<32) IN A" IS ONE OF THE SPECIA┆
0x3140…3160       4c 20 0d 0a 3b 20 43 48 41 52 41 43 54 45 52 53 2e 0d 0a 3b 20 54 48 45 20 54 41 42 4c 45 20 4b   ┆L   ; CHARACTERS.  ; THE TABLE K┆
0x3160…3180       45 59 54 41 42 22 20 49 53 20 55 53 45 44 2e 0d 0a 3b 20 52 45 54 55 52 4e 3a 20 5a 45 52 4f 2d   ┆EYTAB" IS USED.  ; RETURN: ZERO-┆
0x3180…31a0       46 4c 41 47 3d 20 30 20 49 46 20 53 50 45 43 20 43 48 41 52 2e 0d 0a 0d 0a 53 50 45 43 48 3a 09   ┆FLAG= 0 IF SPEC CHAR.    SPECH: ┆
0x31a0…31c0       4c 58 49 09 42 43 2c 4b 45 59 54 41 42 0d 0a 09 4d 4f 56 09 48 2c 41 0d 0a 09 41 4e 49 09 33 37   ┆LXI BC,KEYTAB   MOV H,A   ANI 37┆
0x31c0…31e0       0d 0a 09 43 41 4c 4c 09 42 43 41 44 44 0d 0a 09 4c 44 41 58 09 42 43 0d 0a 09 43 50 49 09 33 37   ┆   CALL BCADD   LDAX BC   CPI 37┆
0x31e0…31ec       37 0d 0a 09 52 45 54 0d 0a 3b 0d 0a                                                               ┆7   RET  ;  ┆
0x31ec…31ef       FormFeed {
0x31ec…31ef         0c 82 a9                                                                                          ┆   ┆
0x31ec…31ef       }
0x31ef…3200       52 4f 55 54 49 4e 45 20 54 4f 20 53 45 52 56 49 43                                                ┆ROUTINE TO SERVIC┆
0x3200…3220 (25,) 45 20 41 20 54 45 52 4d 49 4e 41 4c 2e 0d 0a 3b 20 56 32 34 20 45 52 52 4f 52 53 20 41 52 45 20   ┆E A TERMINAL.  ; V24 ERRORS ARE ┆
0x3220…3240       55 50 44 41 54 45 44 20 49 4e 20 53 54 41 42 58 2e 0d 0a 3b 20 54 45 53 54 20 52 58 52 44 59 2e   ┆UPDATED IN STABX.  ; TEST RXRDY.┆
0x3240…3260       0d 0a 3b 20 54 45 53 54 20 54 58 52 44 59 2e 42 55 46 46 45 52 20 45 4d 50 54 59 2e 0d 0a 3b 20   ┆  ; TEST TXRDY.BUFFER EMPTY.  ; ┆
0x3260…3280       44 45 56 4e 4f 3d 20 54 45 52 4d 49 4e 41 4c 20 4e 4f 2e 0d 0a 3b 20 54 45 4d 50 53 20 41 4e 44   ┆DEVNO= TERMINAL NO.  ; TEMPS AND┆
0x3280…32a0       20 54 45 4d 50 44 20 41 52 45 20 55 53 45 44 20 54 4f 20 53 41 56 45 0d 0a 3b 20 53 54 41 54 55   ┆ TEMPD ARE USED TO SAVE  ; STATU┆
0x32a0…32c0       53 20 41 4e 44 20 44 41 54 41 2e 0d 0a 0d 0a 54 53 45 52 56 3a 09 4c 44 41 09 44 45 56 4e 4f 0d   ┆S AND DATA.    TSERV: LDA DEVNO ┆
0x32c0…32e0       0a 09 43 41 4c 4c 09 52 53 54 41 54 09 09 3b 20 49 4e 50 55 54 20 53 54 41 54 55 53 2e 0d 0a 09   ┆  CALL RSTAT  ; INPUT STATUS.   ┆
0x32e0…3300       53 54 41 09 54 45 4d 50 53 09 09 3b 20 46 52 4f 4d 20 55 41 52 54 2e 0d 0a 09 4c 44 41 09 44 45   ┆STA TEMPS  ; FROM UART.   LDA DE┆
0x3300…3320       56 4e 4f 0d 0a 09 43 41 4c 4c 09 52 44 53 46 0d 0a 09 43 50 49 09 30 0d 0a 09 4a 4e 5a 09 54 53   ┆VNO   CALL RDSF   CPI 0   JNZ TS┆
0x3320…3340       45 52 31 09 3b 20 4e 4f 54 20 52 45 41 44 59 20 54 4f 20 41 43 43 45 50 54 20 43 48 41 4e 47 45   ┆ER1 ; NOT READY TO ACCEPT CHANGE┆
0x3340…3360       20 4f 46 20 53 54 41 54 55 53 2e 0d 0a 0d 0a 09 4c 44 41 09 54 45 4d 50 53 0d 0a 09 41 4e 49 09   ┆ OF STATUS.     LDA TEMPS   ANI ┆
0x3360…3380       33 37 30 09 3b 40 40 20 43 48 41 4e 47 45 44 20 38 31 2e 31 31 2e 30 39 0d 0a 09 43 50 49 09 33   ┆370 ;@@ CHANGED 81.11.09   CPI 3┆
0x3380…33a0       30 30 0d 0a 09 4a 5a 09 43 56 32 34 45 09 3b 20 43 4c 45 41 52 20 56 32 34 20 45 52 52 4f 52 2e   ┆00   JZ CV24E ; CLEAR V24 ERROR.┆
0x33a0…33c0       0d 0a 0d 0a 09 44 49 0d 0a 09 4c 44 41 09 44 45 56 4e 4f 0d 0a 09 43 41 4c 4c 09 52 44 53 42 0d   ┆     DI   LDA DEVNO   CALL RDSB ┆
0x33c0…33e0       0a 09 41 4e 49 09 36 0d 0a 09 4d 4f 56 09 48 2c 41 0d 0a 09 49 4e 52 09 48 0d 0a 09 4c 44 41 09   ┆  ANI 6   MOV H,A   INR H   LDA ┆
0x33e0…3400       44 45 56 4e 4f 0d 0a 09 43 41 4c 4c 09 57 52 53 42 09 3b 20 53 45 54 20 56 32 34 20 45 52 52 4f   ┆DEVNO   CALL WRSB ; SET V24 ERRO┆
0x3400…3420 (26,) 52 2e 0d 0a 09 4c 44 41 09 44 45 56 4e 4f 09 3b 40 40 20 43 48 41 4e 47 45 44 20 38 31 2e 31 31   ┆R.   LDA DEVNO ;@@ CHANGED 81.11┆
0x3420…3440       2e 30 39 20 49 4e 49 54 20 44 45 56 4e 4f 0d 0a 09 43 41 4c 4c 09 54 49 4e 49 54 09 3b 40 40 0d   ┆.09 INIT DEVNO   CALL TINIT ;@@ ┆
0x3440…3460       0a 09 4c 44 41 09 44 45 56 4e 4f 0d 0a 09 43 41 4c 4c 09 52 44 4d 4f 44 45 0d 0a 09 43 50 49 09   ┆  LDA DEVNO   CALL RDMODE   CPI ┆
0x3460…3480       31 09 3b 20 53 4b 49 50 20 4d 4f 44 45 2e 0d 0a 09 4a 4e 5a 09 4e 4f 53 4b 49 50 0d 0a 0d 0a 09   ┆1 ; SKIP MODE.   JNZ NOSKIP     ┆
0x3480…34a0       45 49 0d 0a 09 4a 4d 50 09 54 53 45 52 31 0d 0a 0d 0a 4e 4f 53 4b 49 50 3a 09 4c 44 41 09 44 45   ┆EI   JMP TSER1    NOSKIP: LDA DE┆
0x34a0…34c0       56 4e 4f 0d 0a 09 43 41 4c 4c 09 57 52 53 46 09 3b 20 53 45 54 20 58 4d 54 20 53 54 41 54 55 53   ┆VNO   CALL WRSF ; SET XMT STATUS┆
0x34c0…34e0       2e 0d 0a 09 4d 56 49 09 48 2c 31 0d 0a 09 4c 44 41 09 44 45 56 4e 4f 0d 0a 09 43 41 4c 4c 09 57   ┆.   MVI H,1   LDA DEVNO   CALL W┆
0x34e0…3500       52 4d 4f 44 45 09 3b 20 53 45 54 20 53 4b 49 50 0d 0a 09 45 49 0d 0a 09 4a 4d 50 09 54 53 45 52   ┆RMODE ; SET SKIP   EI   JMP TSER┆
0x3500…3503       31 0d 0a                                                                                          ┆1  ┆
0x3503…3506       FormFeed {
0x3503…3506         0c 83 95                                                                                          ┆   ┆
0x3503…3506       }
0x3506…3520       43 56 32 34 45 3a 09 4c 44 41 09 44 45 56 4e 4f 0d 0a 09 43 41 4c 4c 09 52 44                     ┆CV24E: LDA DEVNO   CALL RD┆
0x3520…3540       53 42 0d 0a 09 41 4e 49 09 36 0d 0a 09 4d 4f 56 09 48 2c 41 0d 0a 09 4c 44 41 09 44 45 56 4e 4f   ┆SB   ANI 6   MOV H,A   LDA DEVNO┆
0x3540…3560       0d 0a 09 43 41 4c 4c 09 57 52 53 42 09 3b 20 43 4c 45 41 52 20 56 32 34 20 45 52 52 4f 52 2e 0d   ┆   CALL WRSB ; CLEAR V24 ERROR. ┆
0x3560…3580       0a 54 53 45 52 31 3a 0d 0a 09 4c 44 41 09 54 45 4d 50 53 0d 0a 09 41 4e 49 09 32 09 09 3b 20 54   ┆ TSER1:   LDA TEMPS   ANI 2  ; T┆
0x3580…35a0       45 53 54 20 46 4f 52 20 52 58 52 44 59 3d 31 2e 0d 0a 09 4a 5a 09 4e 4f 52 58 52 0d 0a 0d 0a 09   ┆EST FOR RXRDY=1.   JZ NORXR     ┆
0x35a0…35c0       4c 44 41 09 44 45 56 4e 4f 0d 0a 09 43 41 4c 4c 09 52 44 41 54 41 09 09 3b 20 41 3d 20 44 41 54   ┆LDA DEVNO   CALL RDATA  ; A= DAT┆
0x35c0…35e0       41 20 42 59 54 45 2e 0d 0a 09 53 54 41 09 54 45 4d 50 44 0d 0a 09 44 49 0d 0a 09 4c 44 41 09 44   ┆A BYTE.   STA TEMPD   DI   LDA D┆
0x35e0…3600       45 56 4e 4f 0d 0a 09 43 41 4c 4c 09 52 44 4d 4f 44 45 09 3b 20 47 45 54 20 4d 4f 44 45 2e 0d 0a   ┆EVNO   CALL RDMODE ; GET MODE.  ┆
0x3600…3620 (27,) 09 41 4e 49 09 33 0d 0a 09 43 50 49 09 30 0d 0a 09 4a 5a 09 43 4f 4e 4d 4f 44 45 09 09 3b 20 30   ┆ ANI 3   CPI 0   JZ CONMODE  ; 0┆
0x3620…3640       30 3d 20 43 4f 4e 54 52 4f 4c 20 4d 4f 44 45 2e 0d 0a 0d 0a 09 43 50 49 09 31 0d 0a 09 4a 5a 09   ┆0= CONTROL MODE.     CPI 1   JZ ┆
0x3640…3660       4e 4f 52 58 52 09 09 3b 20 30 31 3d 20 53 4b 49 50 20 4d 4f 44 45 2e 0d 0a 0d 0a 09 4c 44 41 09   ┆NORXR  ; 01= SKIP MODE.     LDA ┆
0x3660…3680       54 45 4d 50 44 09 09 3b 20 45 4c 53 45 20 44 41 54 41 20 4d 4f 44 45 2e 0d 0a 09 4d 4f 56 09 48   ┆TEMPD  ; ELSE DATA MODE.   MOV H┆
0x3680…36a0       2c 41 0d 0a 09 41 4e 49 09 33 34 30 09 09 3b 20 54 45 53 54 20 43 48 41 52 20 3c 33 32 2e 0d 0a   ┆,A   ANI 340  ; TEST CHAR <32.  ┆
0x36a0…36c0       09 4d 4f 56 09 41 2c 48 0d 0a 09 4a 5a 09 4c 45 53 53 0d 0a 0d 0a 53 54 43 48 52 3a 09 4c 44 41   ┆ MOV A,H   JZ LESS    STCHR: LDA┆
0x36c0…36e0       09 44 45 56 4e 4f 09 09 3b 20 53 54 4f 52 45 20 43 48 41 52 2e 0d 0a 09 4d 56 49 09 4c 2c 31 09   ┆ DEVNO  ; STORE CHAR.   MVI L,1 ┆
0x36e0…3700       09 3b 20 49 4e 54 4f 20 52 45 43 20 42 55 46 46 45 52 2e 0d 0a 09 44 49 0d 0a 09 43 41 4c 4c 09   ┆ ; INTO REC BUFFER.   DI   CALL ┆
0x3700…3720       42 36 0d 0a 09 45 49 0d 0a 09 4a 4d 50 09 4e 4f 52 58 52 0d 0a 0d 0a 4c 45 53 53 3a 09 43 41 4c   ┆B6   EI   JMP NORXR    LESS: CAL┆
0x3720…3740       4c 09 53 50 45 43 48 09 09 3b 20 54 45 53 54 20 46 4f 52 20 53 50 45 43 20 43 48 41 52 2e 0d 0a   ┆L SPECH  ; TEST FOR SPEC CHAR.  ┆
0x3740…3760       09 4a 4e 5a 09 4e 4f 52 58 52 0d 0a 0d 0a 53 45 54 53 4b 3a 09 4d 56 49 09 48 2c 31 09 09 3b 20   ┆ JNZ NORXR    SETSK: MVI H,1  ; ┆
0x3760…3780       53 45 54 20 53 4b 49 50 20 4d 4f 44 45 2e 0d 0a 09 4c 44 41 09 44 45 56 4e 4f 0d 0a 09 43 41 4c   ┆SET SKIP MODE.   LDA DEVNO   CAL┆
0x3780…37a0       4c 09 57 52 4d 4f 44 45 0d 0a 09 4c 44 41 09 54 45 4d 50 44 0d 0a 09 4d 4f 56 09 48 2c 41 0d 0a   ┆L WRMODE   LDA TEMPD   MOV H,A  ┆
0x37a0…37ac       09 4a 4d 50 09 53 54 43 48 52 0d 0a                                                               ┆ JMP STCHR  ┆
0x37ac…37af       FormFeed {
0x37ac…37af         0c 83 95                                                                                          ┆   ┆
0x37ac…37af       }
0x37af…37c0       0d 0a 43 4f 4e 4d 4f 44 45 3a 4c 44 41 09 54 45 4d                                                ┆  CONMODE:LDA TEM┆
0x37c0…37e0       50 44 09 3b 20 43 4f 4e 54 52 4f 4c 20 4d 4f 44 45 3a 0d 0a 09 4d 4f 56 09 48 2c 41 09 3b 20 20   ┆PD ; CONTROL MODE:   MOV H,A ;  ┆
0x37e0…3800       43 48 41 52 20 3c 33 32 20 41 4e 44 20 4e 4f 54 20 53 50 45 43 20 54 48 45 4e 0d 0a 09 41 4e 49   ┆CHAR <32 AND NOT SPEC THEN   ANI┆
0x3800…3820 (28,) 09 33 34 30 09 3b 20 20 20 20 20 53 54 4f 52 45 20 49 4e 54 4f 20 52 45 43 20 42 55 46 3b 0d 0a   ┆ 340 ;     STORE INTO REC BUF;  ┆
0x3820…3840       09 4a 4e 5a 09 4e 4f 52 58 52 09 3b 20 20 43 48 41 52 20 3e 3d 33 32 20 54 48 45 4e 20 53 4b 49   ┆ JNZ NORXR ;  CHAR >=32 THEN SKI┆
0x3840…3860       50 20 43 48 41 52 2e 0d 0a 0d 0a 09 4d 4f 56 09 41 2c 48 0d 0a 09 43 41 4c 4c 09 53 50 45 43 48   ┆P CHAR.     MOV A,H   CALL SPECH┆
0x3860…3880       0d 0a 09 4a 4e 5a 09 4e 4f 52 58 52 0d 0a 0d 0a 09 4a 4d 50 09 53 45 54 53 4b 0d 0a 0d 0a 4e 4f   ┆   JNZ NORXR     JMP SETSK    NO┆
0x3880…38a0       52 58 52 3a 09 45 49 0d 0a 09 4c 44 41 09 44 45 56 4e 4f 0d 0a 09 4d 56 49 09 4c 2c 30 0d 0a 09   ┆RXR: EI   LDA DEVNO   MVI L,0   ┆
0x38a0…38c0       44 49 0d 0a 09 43 41 4c 4c 09 42 34 09 09 3b 20 54 45 53 54 20 58 4d 54 2d 20 42 55 46 46 45 52   ┆DI   CALL B4  ; TEST XMT- BUFFER┆
0x38c0…38e0       20 45 4d 50 54 59 3b 0d 0a 09 45 49 0d 0a 09 52 5a 0d 0a 0d 0a 09 4c 44 41 09 54 45 4d 50 53 0d   ┆ EMPTY;   EI   RZ     LDA TEMPS ┆
0x38e0…3900       0a 09 41 4e 49 09 31 0d 0a 09 52 5a 09 09 09 3b 20 54 45 53 54 20 54 58 52 44 59 3d 31 2e 0d 0a   ┆  ANI 1   RZ   ; TEST TXRDY=1.  ┆
0x3900…3920       0d 0a 09 4c 44 41 09 44 45 56 4e 4f 0d 0a 09 4d 56 49 09 4c 2c 30 0d 0a 09 44 49 0d 0a 09 43 41   ┆   LDA DEVNO   MVI L,0   DI   CA┆
0x3920…3940       4c 4c 09 42 31 32 09 09 3b 20 52 45 41 44 20 41 20 43 48 41 52 20 46 52 4f 4d 0d 0a 09 4c 44 41   ┆LL B12  ; READ A CHAR FROM   LDA┆
0x3940…3960       09 44 45 56 4e 4f 09 09 3b 20 58 4d 54 20 42 55 46 20 41 4e 44 0d 0a 09 43 41 4c 4c 09 57 4f 55   ┆ DEVNO  ; XMT BUF AND   CALL WOU┆
0x3960…3980       54 09 09 3b 20 4f 55 54 50 55 54 20 54 4f 20 55 41 52 54 2e 0d 0a 09 45 49 09 09 09 3b 0d 0a 09   ┆T  ; OUTPUT TO UART.   EI   ;   ┆
0x3980…3985       52 45 54 0d 0a                                                                                    ┆RET  ┆
0x3985…3988       FormFeed {
0x3985…3988         0c 82 97                                                                                          ┆   ┆
0x3985…3988       }
0x3988…39a0       0d 0a 3b 20 52 4f 55 54 49 4e 45 20 54 4f 20 54 45 53 54 20 54 48 41 54                           ┆  ; ROUTINE TO TEST THAT┆
0x39a0…39c0       20 54 48 45 20 32 20 42 59 54 45 53 20 49 4e 20 42 55 46 31 0d 0a 3b 20 41 52 45 20 47 52 45 41   ┆ THE 2 BYTES IN BUF1  ; ARE GREA┆
0x39c0…39e0       54 45 52 20 54 48 41 4e 20 54 48 45 20 32 20 42 59 54 45 53 20 49 4e 20 42 55 46 32 2e 0d 0a 3b   ┆TER THAN THE 2 BYTES IN BUF2.  ;┆
0x39e0…3a00       20 57 48 45 4e 20 43 41 4c 4c 45 44 3a 0d 0a 3b 09 42 43 3d 50 4f 49 4e 54 45 52 20 54 4f 20 42   ┆ WHEN CALLED:  ; BC=POINTER TO B┆
0x3a00…3a20 (29,) 55 46 31 0d 0a 3b 09 44 45 3d 50 4f 49 4e 54 45 52 20 54 4f 20 42 55 46 32 0d 0a 3b 52 45 54 55   ┆UF1  ; DE=POINTER TO BUF2  ;RETU┆
0x3a20…3a40       52 4e 3a 20 43 59 3d 31 20 49 46 20 42 55 46 31 3e 42 55 46 32 2e 0d 0a 0d 0a 47 52 45 41 54 3a   ┆RN: CY=1 IF BUF1>BUF2.    GREAT:┆
0x3a40…3a60       09 50 55 53 48 09 48 4c 0d 0a 09 49 4e 58 09 42 43 09 3b 20 4d 4f 53 54 20 53 49 47 4e 49 46 49   ┆ PUSH HL   INX BC ; MOST SIGNIFI┆
0x3a60…3a80       43 41 4e 54 0d 0a 09 49 4e 58 09 44 45 09 3b 20 42 59 54 45 53 2e 0d 0a 09 4c 44 41 58 09 42 43   ┆CANT   INX DE ; BYTES.   LDAX BC┆
0x3a80…3aa0       0d 0a 09 4d 4f 56 09 48 2c 41 0d 0a 09 4c 44 41 58 09 44 45 0d 0a 09 43 4d 50 09 48 0d 0a 09 4a   ┆   MOV H,A   LDAX DE   CMP H   J┆
0x3aa0…3ac0       43 09 47 52 31 09 3b 20 4a 55 4d 50 20 49 46 20 42 55 46 31 28 4d 53 42 29 3e 0d 0a 09 4a 4e 5a   ┆C GR1 ; JUMP IF BUF1(MSB)>   JNZ┆
0x3ac0…3ae0       09 47 52 31 09 3b 20 42 55 46 32 28 4d 53 42 29 0d 0a 0d 0a 09 44 43 58 09 42 43 0d 0a 09 44 43   ┆ GR1 ; BUF2(MSB)     DCX BC   DC┆
0x3ae0…3b00       58 09 44 45 0d 0a 09 4c 44 41 58 09 42 43 0d 0a 09 4d 4f 56 09 48 2c 41 0d 0a 09 4c 44 41 58 09   ┆X DE   LDAX BC   MOV H,A   LDAX ┆
0x3b00…3b20       44 45 0d 0a 09 43 4d 50 09 48 0d 0a 09 50 4f 50 09 48 4c 0d 0a 09 52 45 54 0d 0a 47 52 31 3a 09   ┆DE   CMP H   POP HL   RET  GR1: ┆
0x3b20…3b40       44 43 58 09 42 43 0d 0a 09 44 43 58 09 44 45 0d 0a 09 50 4f 50 09 48 4c 0d 0a 09 52 45 54 0d 0a   ┆DCX BC   DCX DE   POP HL   RET  ┆
0x3b40…3b43       FormFeed {
0x3b40…3b43         0c 82 85                                                                                          ┆   ┆
0x3b40…3b43       }
0x3b43…3b60       3b 20 52 4f 55 54 49 4e 45 20 54 4f 20 54 45 53 54 20 54 48 41 54 20 54 48 45 20 50 52            ┆; ROUTINE TO TEST THAT THE PR┆
0x3b60…3b80       49 4e 54 45 52 20 42 55 46 46 45 52 20 49 53 0d 0a 3b 20 4d 4f 52 45 20 54 48 41 4e 20 48 41 4c   ┆INTER BUFFER IS  ; MORE THAN HAL┆
0x3b80…3ba0       46 20 46 55 4c 4c 3b 0d 0a 3b 20 4c 45 4e 47 54 48 20 4f 46 20 42 55 46 46 45 52 20 42 35 58 53   ┆F FULL;  ; LENGTH OF BUFFER B5XS┆
0x3ba0…3bc0       54 41 52 54 2d 42 34 58 53 54 41 52 54 0d 0a 3b 20 52 45 54 55 52 4e 3a 20 43 59 3d 31 20 49 46   ┆TART-B4XSTART  ; RETURN: CY=1 IF┆
0x3bc0…3be0       20 4d 4f 52 45 20 54 48 41 4e 20 48 41 4c 46 20 46 55 4c 4c 2e 0d 0a 0d 0a 48 46 55 4c 4c 3a 09   ┆ MORE THAN HALF FULL.    HFULL: ┆
0x3be0…3c00       50 55 53 48 09 44 45 0d 0a 09 50 55 53 48 09 42 43 0d 0a 09 50 55 53 48 09 48 4c 0d 0a 09 4c 58   ┆PUSH DE   PUSH BC   PUSH HL   LX┆
0x3c00…3c20 (30,) 49 09 44 45 2c 42 34 58 49 4e 50 0d 0a 09 4c 58 49 09 42 43 2c 42 34 58 4f 55 54 50 0d 0a 09 43   ┆I DE,B4XINP   LXI BC,B4XOUTP   C┆
0x3c20…3c40       41 4c 4c 09 47 52 45 41 54 09 3b 20 4f 55 54 50 55 54 20 50 4f 49 4e 54 45 52 20 3e 0d 0a 09 4a   ┆ALL GREAT ; OUTPUT POINTER >   J┆
0x3c40…3c60       43 09 4f 47 52 45 41 54 09 3b 20 49 4e 50 55 54 20 50 4f 49 4e 54 45 52 2e 0d 0a 0d 0a 09 58 52   ┆C OGREAT ; INPUT POINTER.     XR┆
0x3c60…3c80       41 09 41 09 3b 20 43 4c 45 41 52 20 43 41 52 52 59 0d 0a 09 4c 44 41 58 09 42 43 0d 0a 09 4d 4f   ┆A A ; CLEAR CARRY   LDAX BC   MO┆
0x3c80…3ca0       56 09 48 2c 41 0d 0a 09 4c 44 41 58 09 44 45 0d 0a 09 53 42 42 09 48 0d 0a 09 4d 4f 56 09 4c 2c   ┆V H,A   LDAX DE   SBB H   MOV L,┆
0x3ca0…3cc0       41 0d 0a 09 49 4e 58 09 42 43 0d 0a 09 49 4e 58 09 44 45 0d 0a 09 4c 44 41 58 09 42 43 0d 0a 09   ┆A   INX BC   INX DE   LDAX BC   ┆
0x3cc0…3ce0       4d 4f 56 09 48 2c 41 0d 0a 09 4c 44 41 58 09 44 45 0d 0a 09 53 42 42 09 48 0d 0a 09 4d 4f 56 09   ┆MOV H,A   LDAX DE   SBB H   MOV ┆
0x3ce0…3d00       48 2c 41 09 3b 20 48 4c 3d 20 52 45 53 55 4c 54 0d 0a 09 50 55 53 48 09 48 4c 0d 0a 09 50 4f 50   ┆H,A ; HL= RESULT   PUSH HL   POP┆
0x3d00…3d20       09 42 43 09 3b 20 42 43 3d 20 42 55 46 46 45 52 20 43 4f 4e 54 45 4e 54 53 2e 0d 0a 09 4c 58 49   ┆ BC ; BC= BUFFER CONTENTS.   LXI┆
0x3d20…3d40       09 44 45 2c 28 42 34 52 53 54 41 52 54 2d 42 34 58 53 54 41 52 54 29 2f 32 0d 0a 09 4d 4f 56 09   ┆ DE,(B4RSTART-B4XSTART)/2   MOV ┆
0x3d40…3d60       41 2c 45 0d 0a 09 43 4d 50 09 43 0d 0a 09 50 4f 50 09 48 4c 09 3b 20 48 41 4c 46 20 46 55 4c 4c   ┆A,E   CMP C   POP HL ; HALF FULL┆
0x3d60…3d7a       0d 0a 09 50 4f 50 09 42 43 0d 0a 09 50 4f 50 09 44 45 0d 0a 09 52 45 54 0d 0a                     ┆   POP BC   POP DE   RET  ┆
0x3d7a…3d7d       FormFeed {
0x3d7a…3d7d         0c 82 b2                                                                                          ┆   ┆
0x3d7a…3d7d       }
0x3d7d…3d80       0d 0a 4f                                                                                          ┆  O┆
0x3d80…3da0       47 52 45 41 54 3a 09 58 52 41 09 41 0d 0a 09 4c 44 41 58 09 44 45 0d 0a 09 4d 4f 56 09 48 2c 41   ┆GREAT: XRA A   LDAX DE   MOV H,A┆
0x3da0…3dc0       0d 0a 09 4c 44 41 58 09 42 43 0d 0a 09 53 42 42 09 48 0d 0a 09 4d 4f 56 09 4c 2c 41 0d 0a 09 49   ┆   LDAX BC   SBB H   MOV L,A   I┆
0x3dc0…3de0       4e 58 09 42 43 0d 0a 09 49 4e 58 09 44 45 0d 0a 09 4c 44 41 58 09 44 45 0d 0a 09 4d 4f 56 09 48   ┆NX BC   INX DE   LDAX DE   MOV H┆
0x3de0…3e00       2c 41 0d 0a 09 4c 44 41 58 09 42 43 0d 0a 09 53 42 42 09 48 0d 0a 09 4d 4f 56 09 48 2c 41 09 3b   ┆,A   LDAX BC   SBB H   MOV H,A ;┆
0x3e00…3e20 (31,) 20 48 4c 3d 20 52 45 53 55 4c 54 0d 0a 09 58 43 48 47 0d 0a 09 4c 58 49 09 42 43 2c 28 42 34 52   ┆ HL= RESULT   XCHG   LXI BC,(B4R┆
0x3e20…3e40       53 54 41 52 54 2d 42 34 58 53 54 41 52 54 29 2f 32 0d 0a 09 4d 4f 56 09 41 2c 45 0d 0a 09 43 4d   ┆START-B4XSTART)/2   MOV A,E   CM┆
0x3e40…3e60       50 09 43 0d 0a 09 50 4f 50 09 48 4c 0d 0a 09 50 4f 50 09 42 43 0d 0a 09 50 4f 50 09 44 45 0d 0a   ┆P C   POP HL   POP BC   POP DE  ┆
0x3e60…3e66       09 52 45 54 0d 0a                                                                                 ┆ RET  ┆
0x3e66…3e69       FormFeed {
0x3e66…3e69         0c 81 bd                                                                                          ┆   ┆
0x3e66…3e69       }
0x3e69…3e80       0d 0a 3b 20 52 4f 55 54 49 4e 45 20 54 4f 20 53 45 52 56 49 43 45 20                              ┆  ; ROUTINE TO SERVICE ┆
0x3e80…3ea0       54 48 45 20 53 45 52 49 41 4c 20 50 52 49 4e 54 45 52 20 55 41 52 54 2e 0d 0a 3b 20 56 32 34 20   ┆THE SERIAL PRINTER UART.  ; V24 ┆
0x3ea0…3ec0       45 52 52 4f 52 20 41 52 45 20 55 50 44 41 54 45 44 20 49 4e 20 53 54 41 42 50 2e 0d 0a 3b 20 49   ┆ERROR ARE UPDATED IN STABP.  ; I┆
0x3ec0…3ee0       46 20 46 49 46 4f 20 28 42 34 58 53 54 41 52 54 29 20 49 53 20 45 4d 50 54 59 20 54 48 45 4e 20   ┆F FIFO (B4XSTART) IS EMPTY THEN ┆
0x3ee0…3f00       52 45 41 44 59 0d 0a 3b 20 53 54 41 54 55 53 20 49 53 20 54 52 41 4e 53 4d 49 54 54 45 44 2e 0d   ┆READY  ; STATUS IS TRANSMITTED. ┆
0x3f00…3f20       0a 3b 20 43 48 41 52 20 46 52 4f 4d 20 46 49 46 4f 20 49 53 20 54 52 41 4e 53 46 45 52 52 45 44   ┆ ; CHAR FROM FIFO IS TRANSFERRED┆
0x3f20…3f40       20 54 4f 20 55 41 52 54 0d 0a 3b 20 57 48 45 4e 20 54 58 45 4d 50 54 59 2e 0d 0a 0d 0a 50 44 45   ┆ TO UART  ; WHEN TXEMPTY.    PDE┆
0x3f40…3f60       56 3d 09 33 09 3b 20 50 52 49 4e 54 45 52 20 54 45 52 4d 49 4e 41 4c 20 4e 4f 2e 0d 0a 0d 0a 50   ┆V= 3 ; PRINTER TERMINAL NO.    P┆
0x3f60…3f80       53 45 52 56 3a 09 4c 44 41 09 50 52 49 4e 54 2b 31 0d 0a 09 41 4e 49 09 32 30 30 09 3b 2a 2a 20   ┆SERV: LDA PRINT+1   ANI 200 ;** ┆
0x3f80…3fa0       54 45 53 54 20 56 32 34 20 45 52 52 4f 52 2e 0d 0a 09 43 50 49 09 32 30 30 09 3b 2a 2a 20 4e 4f   ┆TEST V24 ERROR.   CPI 200 ;** NO┆
0x3fa0…3fc0       54 49 43 45 3a 20 42 59 53 59 20 49 53 20 49 4e 50 55 54 20 54 4f 20 44 41 54 41 20 43 41 52 52   ┆TICE: BYSY IS INPUT TO DATA CARR┆
0x3fc0…3fe0       49 45 52 20 44 45 54 45 43 54 0d 0a 09 4a 5a 09 50 4e 4f 56 32 34 0d 0a 0d 0a 09 4c 44 41 09 53   ┆IER DETECT   JZ PNOV24     LDA S┆
0x3fe0…4000       54 41 42 50 0d 0a 09 41 4e 49 09 36 09 3b 20 53 45 54 20 31 3c 30 2e 0d 0a 09 49 4e 52 09 41 0d   ┆TABP   ANI 6 ; SET 1<0.   INR A ┆
0x4000…4020 (32,) 0a 09 53 54 41 09 53 54 41 42 50 0d 0a 09 4a 4d 50 09 50 53 45 52 31 0d 0a 0d 0a 50 4e 4f 56 32   ┆  STA STABP   JMP PSER1    PNOV2┆
0x4020…4040       34 3a 09 4c 44 41 09 53 54 41 42 50 0d 0a 09 41 4e 49 09 36 09 3b 20 52 45 53 45 54 20 56 32 34   ┆4: LDA STABP   ANI 6 ; RESET V24┆
0x4040…4060       20 45 52 52 4f 52 2e 0d 0a 09 53 54 41 09 53 54 41 42 50 0d 0a 50 53 45 52 31 3a 09 4c 44 41 09   ┆ ERROR.   STA STABP  PSER1: LDA ┆
0x4060…4080       50 52 49 4e 54 2b 31 0d 0a 09 41 4e 49 09 33 30 31 0d 0a 09 43 50 49 09 33 30 31 09 3b 2a 2a 20   ┆PRINT+1   ANI 301   CPI 301 ;** ┆
0x4080…40a0       54 58 45 4d 50 54 59 2c 20 4e 4f 54 49 43 45 20 42 59 53 59 20 3d 20 44 43 44 3b 0d 0a 09 52 4e   ┆TXEMPTY, NOTICE BYSY = DCD;   RN┆
0x40a0…40c0       5a 0d 0a 0d 0a 09 4d 56 49 09 41 2c 50 44 45 56 0d 0a 09 4d 56 49 09 4c 2c 30 0d 0a 09 44 49 09   ┆Z     MVI A,PDEV   MVI L,0   DI ┆
0x40c0…40e0       09 3b 0d 0a 09 43 41 4c 4c 09 42 34 09 3b 20 54 45 53 54 20 46 49 46 4f 20 46 4f 52 20 45 4d 50   ┆ ;   CALL B4 ; TEST FIFO FOR EMP┆
0x40e0…4100       54 59 2e 0d 0a 09 4a 4e 5a 09 50 53 45 52 32 09 3b 0d 0a 0d 0a 09 43 41 4c 4c 09 43 4c 42 55 53   ┆TY.   JNZ PSER2 ;     CALL CLBUS┆
0x4100…4120       09 3b 20 43 4c 45 41 52 20 42 55 53 59 20 49 46 20 45 4d 50 54 59 0d 0a 09 45 49 0d 0a 09 52 45   ┆ ; CLEAR BUSY IF EMPTY   EI   RE┆
0x4120…4123       54 0d 0a                                                                                          ┆T  ┆
0x4123…4126       FormFeed {
0x4123…4126         0c 82 cd                                                                                          ┆   ┆
0x4123…4126       }
0x4126…4140       50 53 45 52 32 3a 09 4d 56 49 09 41 2c 50 44 45 56 0d 0a 09 4d 56 49 09 4c 2c                     ┆PSER2: MVI A,PDEV   MVI L,┆
0x4140…4160       30 0d 0a 09 44 49 0d 0a 09 43 41 4c 4c 09 42 31 32 09 3b 20 4f 55 54 50 55 54 20 41 20 42 59 54   ┆0   DI   CALL B12 ; OUTPUT A BYT┆
0x4160…4180       45 20 46 52 4f 4d 0d 0a 09 45 49 0d 0a 09 4d 4f 56 09 41 2c 48 09 3b 20 46 49 46 4f 2e 20 4d 4f   ┆E FROM   EI   MOV A,H ; FIFO. MO┆
0x4180…41a0       56 45 20 43 48 41 52 0d 0a 09 53 54 41 09 50 52 49 4e 54 09 3b 20 54 4f 20 50 52 49 4e 54 20 55   ┆VE CHAR   STA PRINT ; TO PRINT U┆
0x41a0…41c0       41 52 54 2e 0d 0a 0d 0a 09 4d 56 49 09 41 2c 50 44 45 56 0d 0a 09 4d 56 49 09 4c 2c 30 0d 0a 09   ┆ART.     MVI A,PDEV   MVI L,0   ┆
0x41c0…41e0       44 49 09 09 3b 0d 0a 09 43 41 4c 4c 09 42 34 09 3b 20 49 46 20 46 49 46 4f 20 4e 4f 54 20 45 4d   ┆DI  ;   CALL B4 ; IF FIFO NOT EM┆
0x41e0…4200       50 54 59 20 54 48 45 4e 20 52 45 54 55 52 4e 0d 0a 09 4a 5a 09 50 53 45 52 33 09 3b 0d 0a 09 45   ┆PTY THEN RETURN   JZ PSER3 ;   E┆
0x4200…4220 (33,) 49 09 09 3b 0d 0a 09 52 45 54 09 09 3b 0d 0a 0d 0a 50 53 45 52 33 3a 09 43 41 4c 4c 09 43 4c 42   ┆I  ;   RET  ;    PSER3: CALL CLB┆
0x4220…4240       55 53 09 3b 0d 0a 09 4c 44 41 09 47 52 44 59 09 3b 20 46 49 46 4f 20 45 4d 50 54 59 3a 0d 0a 09   ┆US ;   LDA GRDY ; FIFO EMPTY:   ┆
0x4240…4260       41 4e 41 09 41 0d 0a 09 45 49 09 09 3b 0d 0a 09 52 5a 09 09 3b 0d 0a 0d 0a 09 44 49 0d 0a 09 4c   ┆ANA A   EI  ;   RZ  ;     DI   L┆
0x4260…4280       44 41 09 53 54 41 42 50 0d 0a 09 41 4e 49 09 33 0d 0a 09 41 44 49 09 34 09 3b 20 53 45 54 20 52   ┆DA STABP   ANI 3   ADI 4 ; SET R┆
0x4280…42a0       45 41 44 59 20 53 54 41 54 55 53 2e 0d 0a 09 53 54 41 09 53 54 41 42 50 0d 0a 09 4d 56 49 09 41   ┆EADY STATUS.   STA STABP   MVI A┆
0x42a0…42c0       2c 31 0d 0a 09 53 54 41 09 53 54 41 46 50 0d 0a 09 58 52 41 09 41 0d 0a 09 53 54 41 09 47 52 44   ┆,1   STA STAFP   XRA A   STA GRD┆
0x42c0…42e0       59 0d 0a 09 45 49 0d 0a 09 52 45 54 0d 0a 0d 0a 43 4c 42 55 53 3a 09 4c 44 41 09 53 54 41 46 50   ┆Y   EI   RET    CLBUS: LDA STAFP┆
0x42e0…4300       09 3b 20 43 4c 45 41 52 20 42 55 53 59 20 53 54 41 54 55 53 2e 0d 0a 09 43 50 49 09 30 0d 0a 09   ┆ ; CLEAR BUSY STATUS.   CPI 0   ┆
0x4300…4320       52 4e 5a 09 09 3b 0d 0a 09 4c 44 41 09 53 54 41 42 50 0d 0a 09 41 4e 49 09 35 0d 0a 09 53 54 41   ┆RNZ  ;   LDA STABP   ANI 5   STA┆
0x4320…4340       09 53 54 41 42 50 0d 0a 09 52 45 54 09 09 3b 20 45 4e 44 20 4f 46 20 43 4c 45 41 52 20 42 55 53   ┆ STABP   RET  ; END OF CLEAR BUS┆
0x4340…4345       59 0d 0a 0d 0a                                                                                    ┆Y    ┆
0x4345…4348       FormFeed {
0x4345…4348         0c 82 f1                                                                                          ┆   ┆
0x4345…4348       }
0x4348…4360       0d 0a 3b 20 50 52 4f 47 52 41 4d 20 54 4f 20 53 43 41 4e 20 54 48 45 20                           ┆  ; PROGRAM TO SCAN THE ┆
0x4360…4380       54 45 52 4d 49 4e 41 4c 53 0d 0a 3b 20 41 4e 44 20 50 52 49 4e 54 45 52 20 46 4f 52 20 53 45 52   ┆TERMINALS  ; AND PRINTER FOR SER┆
0x4380…43a0       56 49 43 45 2e 0d 0a 0d 0a 50 52 4f 31 3a 09 58 52 41 09 41 09 3b 20 53 54 41 52 54 20 57 49 54   ┆VICE.    PRO1: XRA A ; START WIT┆
0x43a0…43c0       48 20 54 45 52 4d 49 4e 41 4c 31 0d 0a 09 53 54 41 09 44 45 56 4e 4f 0d 0a 09 43 41 4c 4c 09 54   ┆H TERMINAL1   STA DEVNO   CALL T┆
0x43c0…43e0       53 45 52 56 0d 0a 09 4c 44 41 09 44 45 56 4e 4f 0d 0a 09 49 4e 52 09 41 0d 0a 09 43 50 49 09 50   ┆SERV   LDA DEVNO   INR A   CPI P┆
0x43e0…4400       44 45 56 0d 0a 09 4a 4e 5a 09 50 52 4f 31 2b 31 0d 0a 09 43 41 4c 4c 09 49 58 4d 54 0d 0a 50 52   ┆DEV   JNZ PRO1+1   CALL IXMT  PR┆
0x4400…4420 (34,) 4f 32 3a 09 58 52 41 09 41 0d 0a 09 53 54 41 09 44 45 56 4e 4f 0d 0a 09 43 41 4c 4c 09 54 53 45   ┆O2: XRA A   STA DEVNO   CALL TSE┆
0x4420…4440       52 56 0d 0a 09 4c 44 41 09 44 45 56 4e 4f 0d 0a 09 49 4e 52 09 41 0d 0a 09 43 50 49 09 50 44 45   ┆RV   LDA DEVNO   INR A   CPI PDE┆
0x4440…4460       56 0d 0a 09 4a 4e 5a 09 50 52 4f 32 2b 31 0d 0a 09 43 41 4c 4c 09 50 53 45 52 56 0d 0a 0d 0a 3b   ┆V   JNZ PRO2+1   CALL PSERV    ;┆
0x4460…4480       20 56 32 34 20 45 52 52 4f 52 20 44 45 54 45 43 54 45 44 20 4f 4e 20 54 48 45 20 48 4f 53 54 20   ┆ V24 ERROR DETECTED ON THE HOST ┆
0x4480…44a0       4c 49 4e 45 20 53 48 4f 55 4c 44 0d 0a 3b 20 52 45 4d 4f 56 45 20 44 41 54 41 20 54 45 52 4d 49   ┆LINE SHOULD  ; REMOVE DATA TERMI┆
0x44a0…44c0       4e 41 4c 20 52 45 41 44 59 20 54 4f 20 54 48 45 20 54 45 52 4d 49 4e 41 4c 53 2e 0d 0a 0d 0a 09   ┆NAL READY TO THE TERMINALS.     ┆
0x44c0…44e0       4c 44 41 09 48 4f 53 54 2b 31 09 3b 20 52 45 41 44 20 48 4f 53 54 20 53 54 41 54 55 53 2e 0d 0a   ┆LDA HOST+1 ; READ HOST STATUS.  ┆
0x44e0…4500       09 41 4e 49 09 33 30 30 0d 0a 09 43 50 49 09 33 30 30 0d 0a 09 4a 4e 5a 09 48 56 32 34 45 0d 0a   ┆ ANI 300   CPI 300   JNZ HV24E  ┆
0x4500…4520       09 4a 4d 50 09 50 52 4f 31 0d 0a 48 56 32 34 45 3a 09 4d 56 49 09 41 2c 34 35 09 3b 20 53 45 54   ┆ JMP PRO1  HV24E: MVI A,45 ; SET┆
0x4520…4540       20 44 54 52 3d 30 2e 0d 0a 09 53 54 41 09 54 45 52 4d 31 2b 33 0d 0a 09 53 54 41 09 54 45 52 4d   ┆ DTR=0.   STA TERM1+3   STA TERM┆
0x4540…4560       32 2b 33 0d 0a 09 53 54 41 09 54 45 52 4d 33 2b 33 0d 0a 09 4c 44 41 09 48 4f 53 54 2b 31 0d 0a   ┆2+3   STA TERM3+3   LDA HOST+1  ┆
0x4560…4580       48 56 32 34 53 3a 09 4c 44 41 09 48 4f 53 54 2b 31 0d 0a 09 41 4e 49 09 33 30 30 0d 0a 09 43 50   ┆HV24S: LDA HOST+1   ANI 300   CP┆
0x4580…45a0       49 09 33 30 30 0d 0a 09 4a 5a 09 52 45 54 41 58 0d 0a 09 43 41 4c 4c 09 50 53 45 52 56 0d 0a 09   ┆I 300   JZ RETAX   CALL PSERV   ┆
0x45a0…45c0       4a 4d 50 09 48 56 32 34 53 0d 0a 52 45 54 41 58 3a 09 4d 56 49 09 41 2c 36 37 0d 0a 09 53 54 41   ┆JMP HV24S  RETAX: MVI A,67   STA┆
0x45c0…45e0       09 54 45 52 4d 31 2b 33 0d 0a 09 53 54 41 09 54 45 52 4d 32 2b 33 0d 0a 09 53 54 41 09 54 45 52   ┆ TERM1+3   STA TERM2+3   STA TER┆
0x45e0…45f3       4d 33 2b 33 0d 0a 09 4a 4d 50 09 50 52 4f 31 0d 0a 0d 0a                                          ┆M3+3   JMP PRO1    ┆
0x45f3…45f6       FormFeed {
0x45f3…45f6         0c 83 95                                                                                          ┆   ┆
0x45f3…45f6       }
0x45f6…4600       0d 0a 3b 20 52 4f 55 54 49 4e                                                                     ┆  ; ROUTIN┆
0x4600…4620 (35,) 45 20 54 4f 20 53 45 52 56 49 43 45 20 48 4f 53 54 20 52 45 43 45 49 56 45 52 0d 0a 3b 20 49 4e   ┆E TO SERVICE HOST RECEIVER  ; IN┆
0x4620…4640       54 45 52 52 55 50 54 53 2e 0d 0a 3b 20 41 4c 4c 20 52 45 43 45 49 56 45 44 20 43 48 41 52 41 43   ┆TERRUPTS.  ; ALL RECEIVED CHARAC┆
0x4640…4660       54 45 52 53 20 41 52 45 20 54 45 53 54 45 44 20 46 4f 52 0d 0a 3b 20 54 48 45 20 43 4c 41 53 53   ┆TERS ARE TESTED FOR  ; THE CLASS┆
0x4660…4680       20 3c 33 32 2e 0d 0a 3b 20 49 46 20 43 48 41 52 3c 33 32 20 54 48 45 4e 20 54 48 45 20 43 48 41   ┆ <32.  ; IF CHAR<32 THEN THE CHA┆
0x4680…46a0       52 20 49 53 20 54 45 53 54 45 44 20 42 59 20 0d 0a 3b 20 54 48 45 20 4b 45 59 54 41 42 20 54 4f   ┆R IS TESTED BY   ; THE KEYTAB TO┆
0x46a0…46c0       20 53 45 45 20 49 46 20 49 54 20 49 53 20 41 4e 20 3c 41 44 44 52 3e 20 4f 52 0d 0a 3b 20 3c 45   ┆ SEE IF IT IS AN <ADDR> OR  ; <E┆
0x46c0…46e0       4e 41 42 4c 45 3e 2e 20 41 4c 4c 20 4f 54 48 45 52 20 43 48 41 52 41 43 54 45 52 53 20 41 52 45   ┆NABLE>. ALL OTHER CHARACTERS ARE┆
0x46e0…4700       20 53 45 4e 44 0d 0a 3b 20 54 4f 20 54 48 45 20 54 45 52 4d 49 4e 41 4c 20 41 44 44 52 45 53 53   ┆ SEND  ; TO THE TERMINAL ADDRESS┆
0x4700…4720       45 44 20 42 59 20 22 4c 52 45 43 22 2e 0d 0a 3b 20 49 46 20 3c 41 44 44 52 3e 20 49 53 20 44 45   ┆ED BY "LREC".  ; IF <ADDR> IS DE┆
0x4720…4740       54 45 43 54 45 44 20 54 48 45 4e 20 54 48 45 20 43 4f 52 52 45 53 50 4f 4e 44 49 4e 47 0d 0a 3b   ┆TECTED THEN THE CORRESPONDING  ;┆
0x4740…4760       20 54 45 52 4d 49 4e 41 4c 20 49 53 20 53 45 54 20 54 4f 20 43 4f 4e 54 52 4f 4c 20 4d 4f 44 45   ┆ TERMINAL IS SET TO CONTROL MODE┆
0x4760…4780       20 2d 20 3c 54 45 47 4e 3e 20 49 53 0d 0a 3b 20 53 45 4e 44 20 54 4f 20 52 43 33 36 30 30 2e 0d   ┆ - <TEGN> IS  ; SEND TO RC3600. ┆
0x4780…47a0       0a 3b 20 49 46 20 50 52 49 4e 54 45 52 20 46 49 46 4f 20 49 53 20 4d 4f 52 45 20 54 48 41 4e 20   ┆ ; IF PRINTER FIFO IS MORE THAN ┆
0x47a0…47c0       48 41 4c 46 20 46 55 4c 4c 20 54 48 45 4e 0d 0a 3b 20 3c 42 55 53 59 3e 20 53 54 41 54 55 53 20   ┆HALF FULL THEN  ; <BUSY> STATUS ┆
0x47c0…47e0       49 53 20 53 45 4e 44 2e 0d 0a 0d 0a 50 45 52 52 3d 09 35 30 09 09 3b 20 50 41 52 49 54 59 20 45   ┆IS SEND.    PERR= 50  ; PARITY E┆
0x47e0…4800       52 52 4f 52 2e 0d 0a 45 4e 41 3d 09 36 09 09 3b 20 49 4e 54 45 52 4e 41 4c 20 45 4e 41 42 4c 45   ┆RROR.  ENA= 6  ; INTERNAL ENABLE┆
0x4800…4820 (36,) 20 56 41 4c 55 45 2e 0d 0a 54 45 47 4e 3d 09 32 30 09 09 0d 0a 50 45 43 48 41 3d 09 31 30 30 09   ┆ VALUE.  TEGN= 20    PECHA= 100 ┆
0x4820…4840       09 3b 20 50 41 52 49 54 59 20 45 52 52 4f 52 20 53 55 42 53 54 49 54 55 54 45 2e 0d 0a 0d 0a 49   ┆ ; PARITY ERROR SUBSTITUTE.    I┆
0x4840…4860       52 45 43 3a 09 44 49 0d 0a 09 50 55 53 48 50 53 57 0d 0a 09 50 55 53 48 09 48 4c 0d 0a 09 50 55   ┆REC: DI   PUSHPSW   PUSH HL   PU┆
0x4860…4880       53 48 09 42 43 0d 0a 09 50 55 53 48 09 44 45 0d 0a 09 4c 44 41 09 48 4f 53 54 2b 31 0d 0a 09 41   ┆SH BC   PUSH DE   LDA HOST+1   A┆
0x4880…48a0       4e 49 09 50 45 52 52 0d 0a 09 4a 5a 09 49 52 31 0d 0a 0d 0a 09 43 41 4c 4c 09 45 52 52 31 09 3b   ┆NI PERR   JZ IR1     CALL ERR1 ;┆
0x48a0…48c0       20 53 45 54 20 50 41 52 49 54 59 20 45 52 52 4f 52 20 49 4e 44 49 43 41 54 4f 52 0d 0a 09 4c 44   ┆ SET PARITY ERROR INDICATOR   LD┆
0x48c0…48e0       41 09 48 4f 53 54 09 3b 20 52 45 41 44 20 43 48 41 52 20 41 4e 44 20 53 4b 49 50 20 43 48 41 52   ┆A HOST ; READ CHAR AND SKIP CHAR┆
0x48e0…4900       20 28 53 55 42 53 54 49 54 55 54 45 29 0d 0a 09 4c 44 41 09 4d 54 41 42 2b 32 0d 0a 09 41 44 49   ┆ (SUBSTITUTE)   LDA MTAB+2   ADI┆
0x4900…4920       09 32 30 09 3b 20 43 4c 45 41 52 20 45 52 52 4f 52 20 46 4c 41 47 53 2e 0d 0a 09 53 54 41 09 48   ┆ 20 ; CLEAR ERROR FLAGS.   STA H┆
0x4920…4940       4f 53 54 2b 33 0d 0a 09 4d 56 49 09 41 2c 50 45 43 48 41 0d 0a 09 4a 4d 50 09 49 52 32 0d 0a 0d   ┆OST+3   MVI A,PECHA   JMP IR2   ┆
0x4940…4941       0a                                                                                                ┆ ┆
0x4941…4944       FormFeed {
0x4941…4944         0c 82 c4                                                                                          ┆   ┆
0x4941…4944       }
0x4944…4960       0d 0a 49 52 31 3a 09 4c 44 41 09 48 4f 53 54 0d 0a 49 52 32 3a 09 4d 4f 56 09 48 2c               ┆  IR1: LDA HOST  IR2: MOV H,┆
0x4960…4980       41 09 3b 20 48 3d 44 41 54 41 20 42 59 54 45 2e 0d 0a 09 41 4e 49 09 33 34 30 09 3b 20 54 45 53   ┆A ; H=DATA BYTE.   ANI 340 ; TES┆
0x4980…49a0       54 20 49 46 20 43 48 41 52 3c 33 32 2e 0d 0a 09 4a 5a 09 49 52 34 0d 0a 0d 0a 49 52 33 3a 09 4c   ┆T IF CHAR<32.   JZ IR4    IR3: L┆
0x49a0…49c0       44 41 09 4c 52 45 43 09 3b 20 43 48 41 52 20 49 4e 54 4f 20 58 4d 54 20 42 55 46 46 45 52 0d 0a   ┆DA LREC ; CHAR INTO XMT BUFFER  ┆
0x49c0…49e0       09 4d 56 49 09 4c 2c 30 09 3b 20 47 49 56 45 4e 20 42 59 20 22 4c 52 45 43 22 2e 0d 0a 09 43 41   ┆ MVI L,0 ; GIVEN BY "LREC".   CA┆
0x49e0…4a00       4c 4c 09 42 36 0d 0a 09 4c 44 41 09 4c 52 45 43 0d 0a 09 43 50 49 09 50 44 45 56 09 3b 20 49 53   ┆LL B6   LDA LREC   CPI PDEV ; IS┆
0x4a00…4a20 (37,) 20 49 54 20 50 52 49 4e 54 45 52 0d 0a 09 4a 5a 09 50 46 55 4c 4c 0d 0a 0d 0a 52 45 4e 44 3a 09   ┆ IT PRINTER   JZ PFULL    REND: ┆
0x4a20…4a40       50 4f 50 09 44 45 0d 0a 09 50 4f 50 09 42 43 0d 0a 09 50 4f 50 09 48 4c 0d 0a 09 50 4f 50 50 53   ┆POP DE   POP BC   POP HL   POPPS┆
0x4a40…4a4e       57 0d 0a 09 45 49 0d 0a 09 52 45 54 0d 0a                                                         ┆W   EI   RET  ┆
0x4a4e…4a51       FormFeed {
0x4a4e…4a51         0c 81 a2                                                                                          ┆   ┆
0x4a4e…4a51       }
0x4a51…4a60       34 3a 09 4d 4f 56 09 41 2c 48 09 3b 20 49 46                                                      ┆4: MOV A,H ; IF┆
0x4a60…4a80       20 4e 4f 54 20 53 50 45 43 49 41 4c 20 43 48 41 52 20 54 48 45 4e 20 52 45 54 55 52 4e 0d 0a 09   ┆ NOT SPECIAL CHAR THEN RETURN   ┆
0x4a80…4aa0       43 41 4c 4c 09 53 50 45 43 48 09 3b 20 45 4c 53 45 0d 0a 09 4a 5a 09 49 52 33 09 3b 20 0d 0a 0d   ┆CALL SPECH ; ELSE   JZ IR3 ;    ┆
0x4aa0…4ac0       0a 09 43 50 49 09 45 4e 41 09 3b 20 42 45 47 49 4e 0d 0a 09 4a 4e 5a 09 49 52 35 09 3b 20 20 49   ┆  CPI ENA ; BEGIN   JNZ IR5 ;  I┆
0x4ac0…4ae0       46 20 3c 45 4e 41 42 4c 45 3e 20 52 45 43 45 49 56 45 44 20 54 48 45 4e 0d 0a 0d 0a 45 4e 41 42   ┆F <ENABLE> RECEIVED THEN    ENAB┆
0x4ae0…4b00       4c 3a 09 4c 44 41 09 4c 52 45 43 09 3b 42 45 47 49 4e 0d 0a 09 43 50 49 09 50 44 45 56 09 3b 20   ┆L: LDA LREC ;BEGIN   CPI PDEV ; ┆
0x4b00…4b20       49 46 20 44 45 56 4e 4f 20 3d 20 50 52 49 4e 54 45 52 20 54 48 45 4e 20 45 58 49 54 20 54 4f 20   ┆IF DEVNO = PRINTER THEN EXIT TO ┆
0x4b20…4b40       53 55 4d 2d 41 4e 53 57 45 52 3b 0d 0a 09 4a 5a 09 53 55 4d 41 4e 53 09 3b 0d 0a 09 43 41 4c 4c   ┆SUM-ANSWER;   JZ SUMANS ;   CALL┆
0x4b40…4b60       09 52 44 4d 4f 44 45 09 3b 20 49 46 20 44 45 56 2d 4d 4f 44 45 20 3d 20 43 4f 4e 54 52 4f 4c 20   ┆ RDMODE ; IF DEV-MODE = CONTROL ┆
0x4b60…4b80       54 48 45 4e 20 52 45 54 55 52 4e 3b 0d 0a 09 43 50 49 09 30 09 3b 0d 0a 09 4a 4e 5a 09 52 45 4e   ┆THEN RETURN;   CPI 0 ;   JNZ REN┆
0x4b80…4ba0       44 09 3b 0d 0a 09 4c 44 41 09 4c 52 45 43 09 3b 0d 0a 09 4d 56 49 09 48 2c 33 09 3b 20 53 45 54   ┆D ;   LDA LREC ;   MVI H,3 ; SET┆
0x4ba0…4bc0       20 44 45 56 2d 4d 4f 44 45 20 3a 3d 20 44 41 54 41 2d 4d 4f 44 45 20 41 4e 44 20 52 45 54 55 52   ┆ DEV-MODE := DATA-MODE AND RETUR┆
0x4bc0…4be0       4e 3b 0d 0a 09 43 41 4c 4c 09 57 52 4d 4f 44 45 09 3b 0d 0a 09 4a 4d 50 09 52 45 4e 44 09 3b 45   ┆N;   CALL WRMODE ;   JMP REND ;E┆
0x4be0…4c00       4e 44 3b 0d 0a 0d 0a 49 52 35 3a 09 43 50 49 09 45 4e 41 2b 31 0d 0a 09 4a 5a 09 52 45 4e 44 0d   ┆ND;    IR5: CPI ENA+1   JZ REND ┆
0x4c00…4c20 (38,) 0a 0d 0a 09 53 54 41 09 4c 52 45 43 09 3b 20 53 45 54 20 4e 45 57 20 3c 41 44 44 52 3e 0d 0a 09   ┆    STA LREC ; SET NEW <ADDR>   ┆
0x4c20…4c40       43 50 49 09 50 44 45 56 09 3b 20 49 53 20 49 54 20 50 52 49 4e 54 45 52 0d 0a 09 4a 5a 09 50 41   ┆CPI PDEV ; IS IT PRINTER   JZ PA┆
0x4c40…4c60       4e 53 09 3b 20 3c 41 44 44 52 3e 3d 20 50 52 49 4e 54 45 52 0d 0a 09 4c 44 41 09 4c 52 45 43 09   ┆NS ; <ADDR>= PRINTER   LDA LREC ┆
0x4c60…4c80       3b 20 45 4c 53 45 20 54 45 52 4d 49 4e 41 4c 0d 0a 09 43 41 4c 4c 09 52 44 4d 4f 44 45 0d 0a 09   ┆; ELSE TERMINAL   CALL RDMODE   ┆
0x4c80…4ca0       41 4e 49 09 32 0d 0a 09 4a 4e 5a 09 44 4d 4f 44 45 0d 0a 0d 0a 09 4d 56 49 09 48 2c 30 0d 0a 09   ┆ANI 2   JNZ DMODE     MVI H,0   ┆
0x4ca0…4cc0       4c 44 41 09 4c 52 45 43 09 3b 20 53 45 54 20 54 45 52 4d 49 4e 41 4c 20 49 4e 54 4f 20 43 4f 4e   ┆LDA LREC ; SET TERMINAL INTO CON┆
0x4cc0…4ce0       54 52 4f 4c 20 4d 4f 44 45 3b 0d 0a 09 43 41 4c 4c 09 57 52 4d 4f 44 45 0d 0a 09 4c 44 41 09 4c   ┆TROL MODE;   CALL WRMODE   LDA L┆
0x4ce0…4d00       52 45 43 09 3b 20 4e 4f 54 20 44 41 54 41 20 4d 4f 44 45 2e 0d 0a 09 43 41 4c 4c 09 52 44 53 42   ┆REC ; NOT DATA MODE.   CALL RDSB┆
0x4d00…4d20       0d 0a 09 43 50 49 09 30 09 3b 20 2a 2a 2a 2a 2a 20 45 52 52 4f 52 20 53 48 4f 55 4c 44 20 42 45   ┆   CPI 0 ; ***** ERROR SHOULD BE┆
0x4d20…4d40       20 22 20 41 4e 49 20 35 22 20 46 49 52 53 54 20 2a 2a 2a 2a 2a 0d 0a 09 4a 5a 09 52 45 4e 44 0d   ┆ " ANI 5" FIRST *****   JZ REND ┆
0x4d40…4d60       0a 09 4c 44 41 09 4c 52 45 43 0d 0a 09 43 41 4c 4c 09 57 52 53 46 09 3b 20 53 45 54 20 53 54 41   ┆  LDA LREC   CALL WRSF ; SET STA┆
0x4d60…4d80       46 58 0d 0a 09 4a 4d 50 09 52 45 4e 44 0d 0a 0d 0a 44 4d 4f 44 45 3a 09 4d 56 49 09 48 2c 54 45   ┆FX   JMP REND    DMODE: MVI H,TE┆
0x4d80…4da0       47 4e 0d 0a 09 4c 44 41 09 4c 52 45 43 09 3b 20 50 55 54 20 3c 54 45 47 4e 3e 20 49 4e 54 4f 0d   ┆GN   LDA LREC ; PUT <TEGN> INTO ┆
0x4da0…4dc0       0a 09 4d 56 49 09 4c 2c 31 09 3b 20 52 45 43 20 42 55 46 46 45 52 2e 0d 0a 09 43 41 4c 4c 09 42   ┆  MVI L,1 ; REC BUFFER.   CALL B┆
0x4dc0…4de0       36 0d 0a 09 4d 56 49 09 48 2c 30 0d 0a 09 4c 44 41 09 4c 52 45 43 09 3b 20 53 45 54 20 54 45 52   ┆6   MVI H,0   LDA LREC ; SET TER┆
0x4de0…4e00       4d 49 4e 41 4c 0d 0a 09 43 41 4c 4c 09 57 52 4d 4f 44 45 09 3b 20 54 4f 20 43 4f 4e 54 52 4f 4c   ┆MINAL   CALL WRMODE ; TO CONTROL┆
0x4e00…4e13 (39,) 20 4d 4f 44 45 2e 0d 0a 09 4a 4d 50 09 52 45 4e 44 0d 0a                                          ┆ MODE.   JMP REND  ┆
0x4e13…4e16       FormFeed {
0x4e13…4e16         0c 83 a7                                                                                          ┆   ┆
0x4e13…4e16       }
0x4e16…4e20       50 46 55 4c 4c 3a 09 4c 44 41                                                                     ┆PFULL: LDA┆
0x4e20…4e40       09 50 53 55 4d 0d 0a 09 41 44 44 09 48 0d 0a 09 53 54 41 09 50 53 55 4d 0d 0a 20 09 43 41 4c 4c   ┆ PSUM   ADD H   STA PSUM    CALL┆
0x4e40…4e60       09 48 46 55 4c 4c 09 3b 20 50 52 49 4e 54 45 52 20 46 49 46 4f 20 46 55 4c 4c 20 3f 0d 0a 09 4a   ┆ HFULL ; PRINTER FIFO FULL ?   J┆
0x4e60…4e80       4e 43 09 52 45 4e 44 0d 0a 0d 0a 09 4c 44 41 09 53 54 41 42 50 09 3b 20 2a 2a 20 50 52 49 4e 54   ┆NC REND     LDA STABP ; ** PRINT┆
0x4e80…4ea0       45 52 20 42 55 46 46 45 52 20 3e 20 31 2f 32 20 46 55 4c 4c 20 3a 0d 0a 09 41 4e 49 09 35 0d 0a   ┆ER BUFFER > 1/2 FULL :   ANI 5  ┆
0x4ea0…4ec0       09 41 44 49 09 32 09 3b 20 53 45 54 20 42 55 53 59 20 53 54 41 54 55 53 2e 0d 0a 09 53 54 41 09   ┆ ADI 2 ; SET BUSY STATUS.   STA ┆
0x4ec0…4ee0       53 54 41 42 50 0d 0a 09 4c 44 41 09 47 52 44 59 0d 0a 09 41 4e 41 09 41 0d 0a 09 4a 4e 5a 09 52   ┆STABP   LDA GRDY   ANA A   JNZ R┆
0x4ee0…4f00       45 4e 44 0d 0a 0d 0a 09 4d 56 49 09 41 2c 31 0d 0a 09 53 54 41 09 53 54 41 46 50 0d 0a 09 53 54   ┆END     MVI A,1   STA STAFP   ST┆
0x4f00…4f20       41 09 47 52 44 59 0d 0a 09 4a 4d 50 09 52 45 4e 44 0d 0a 0d 0a 50 41 4e 53 3a 09 4c 44 41 09 53   ┆A GRDY   JMP REND    PANS: LDA S┆
0x4f20…4f40       54 41 42 50 09 3b 20 53 54 41 54 55 53 20 41 4e 53 57 45 52 0d 0a 09 41 4e 49 09 33 09 3b 0d 0a   ┆TABP ; STATUS ANSWER   ANI 3 ;  ┆
0x4f40…4f60       09 43 50 49 09 30 0d 0a 09 4a 5a 09 52 45 4e 44 09 3b 20 49 46 20 3c 45 4e 41 42 4c 45 3e 20 49   ┆ CPI 0   JZ REND ; IF <ENABLE> I┆
0x4f60…4f80       53 0d 0a 09 4d 56 49 09 41 2c 31 09 3b 20 53 45 4e 44 20 54 4f 20 50 52 49 4e 54 45 52 2e 0d 0a   ┆S   MVI A,1 ; SEND TO PRINTER.  ┆
0x4f80…4fa0       09 53 54 41 09 53 54 41 46 50 0d 0a 09 4a 4d 50 09 52 45 4e 44 0d 0a 0d 0a 53 55 4d 41 4e 53 3a   ┆ STA STAFP   JMP REND    SUMANS:┆
0x4fa0…4fc0       09 4c 44 41 09 50 53 55 4d 09 3b 20 58 4d 54 20 50 53 55 4d 20 54 4f 20 48 4f 53 54 0d 0a 09 41   ┆ LDA PSUM ; XMT PSUM TO HOST   A┆
0x4fc0…4fe0       4e 49 09 31 37 37 09 3b 20 41 4e 44 20 50 53 55 4d 3a 3d 30 2e 0d 0a 09 4d 4f 56 09 48 2c 41 0d   ┆NI 177 ; AND PSUM:=0.   MOV H,A ┆
0x4fe0…5000       0a 09 41 4e 49 09 33 34 30 0d 0a 09 4a 4e 5a 09 4c 43 48 45 43 0d 0a 09 4d 56 49 09 41 2c 34 30   ┆  ANI 340   JNZ LCHEC   MVI A,40┆
0x5000…5020 (40,) 0d 0a 09 41 44 44 09 48 0d 0a 09 4d 4f 56 09 48 2c 41 0d 0a 4c 43 48 45 43 3a 09 4d 56 49 09 41   ┆   ADD H   MOV H,A  LCHEC: MVI A┆
0x5020…5040       2c 50 44 45 56 0d 0a 09 4d 56 49 09 4c 2c 31 0d 0a 09 43 41 4c 4c 09 42 36 0d 0a 09 58 52 41 09   ┆,PDEV   MVI L,1   CALL B6   XRA ┆
0x5040…5059       41 0d 0a 09 53 54 41 09 50 53 55 4d 0d 0a 09 4a 4d 50 09 52 45 4e 44 0d 0a                        ┆A   STA PSUM   JMP REND  ┆
0x5059…505c       FormFeed {
0x5059…505c         0c 82 e8                                                                                          ┆   ┆
0x5059…505c       }
0x505c…5060       0d 0a 3b 20                                                                                       ┆  ; ┆
0x5060…5080       52 4f 55 54 49 4e 45 20 54 4f 20 53 45 52 56 49 43 45 20 48 4f 53 54 20 54 52 41 4e 53 4d 49 54   ┆ROUTINE TO SERVICE HOST TRANSMIT┆
0x5080…50a0       54 45 52 0d 0a 3b 20 49 4e 54 45 52 52 55 50 54 53 2e 0d 0a 3b 20 58 4d 54 20 4d 4f 44 45 53 20   ┆TER  ; INTERRUPTS.  ; XMT MODES ┆
0x50a0…50c0       28 4d 4f 44 45 58 29 3a 0d 0a 3b 20 31 3d 09 4e 45 58 54 20 53 48 4f 55 4c 44 20 42 45 20 53 54   ┆(MODEX):  ; 1= NEXT SHOULD BE ST┆
0x50c0…50e0       41 54 55 53 2e 0d 0a 3b 20 32 3d 09 54 45 53 54 20 53 54 41 54 55 53 20 46 4c 41 47 53 2e 0d 0a   ┆ATUS.  ; 2= TEST STATUS FLAGS.  ┆
0x50e0…5100       3b 20 35 3d 09 4e 45 58 54 20 53 48 4f 55 4c 44 20 42 45 20 44 41 54 41 2e 0d 0a 3b 20 36 3d 09   ┆; 5= NEXT SHOULD BE DATA.  ; 6= ┆
0x5100…5120       54 45 53 54 20 53 54 41 54 55 53 20 46 4c 41 47 53 2e 0d 0a 0d 0a 4e 53 54 41 54 3d 09 31 0d 0a   ┆TEST STATUS FLAGS.    NSTAT= 1  ┆
0x5120…5140       54 53 54 41 54 3d 09 32 09 3b 20 55 53 45 44 20 49 4e 49 54 49 41 4c 4c 59 20 4f 4e 4c 59 20 28   ┆TSTAT= 2 ; USED INITIALLY ONLY (┆
0x5140…5160       4c 58 4d 54 20 3d 20 4f 46 20 21 21 21 21 21 29 3b 0d 0a 4e 44 41 54 3d 09 35 0d 0a 54 53 54 41   ┆LXMT = OF !!!!!);  NDAT= 5  TSTA┆
0x5160…5180       46 3d 09 36 09 3b 20 55 53 45 44 20 45 4c 53 45 57 48 45 52 45 3b 0d 0a 54 58 52 44 59 3d 09 31   ┆F= 6 ; USED ELSEWHERE;  TXRDY= 1┆
0x5180…51a0       0d 0a 0d 0a 49 58 4d 54 3a 09 44 49 0d 0a 09 50 55 53 48 50 53 57 0d 0a 09 50 55 53 48 09 48 4c   ┆    IXMT: DI   PUSHPSW   PUSH HL┆
0x51a0…51c0       0d 0a 09 50 55 53 48 09 42 43 0d 0a 09 50 55 53 48 09 44 45 0d 0a 09 4c 44 41 09 48 4f 53 54 2b   ┆   PUSH BC   PUSH DE   LDA HOST+┆
0x51c0…51e0       31 09 3b 20 54 45 53 54 20 53 54 41 54 55 53 20 46 4f 52 20 54 58 52 44 59 2e 0d 0a 09 41 4e 49   ┆1 ; TEST STATUS FOR TXRDY.   ANI┆
0x51e0…5200       09 54 58 52 44 59 0d 0a 09 4a 5a 09 58 45 4e 44 0d 0a 0d 0a 09 4c 44 41 09 4d 4f 44 45 58 0d 0a   ┆ TXRDY   JZ XEND     LDA MODEX  ┆
0x5200…5220 (41,) 09 43 50 49 09 4e 53 54 41 54 09 3b 20 4e 45 58 54 20 53 54 41 54 55 53 0d 0a 09 4a 5a 09 58 4d   ┆ CPI NSTAT ; NEXT STATUS   JZ XM┆
0x5220…5225       54 53 54 0d 0a                                                                                    ┆TST  ┆
0x5225…5228       FormFeed {
0x5225…5228         0c 81 ea                                                                                          ┆   ┆
0x5225…5228       }
0x5228…5240       0d 0a 09 43 50 49 09 4e 44 41 54 09 3b 20 4e 45 58 54 20 44 41 54 41 0d                           ┆   CPI NDAT ; NEXT DATA ┆
0x5240…5260       0a 09 4a 5a 09 58 4d 54 44 0d 0a 09 4d 56 49 09 48 2c 30 0d 0a 09 4c 58 49 09 42 43 2c 53 54 41   ┆  JZ XMTD   MVI H,0   LXI BC,STA┆
0x5260…5280       46 31 09 3b 20 4c 4f 4f 50 20 54 4f 20 54 45 53 54 0d 0a 53 54 41 4c 4f 4f 3a 09 4c 44 41 58 09   ┆F1 ; LOOP TO TEST  STALOO: LDAX ┆
0x5280…52a0       42 43 09 09 3b 20 53 54 41 54 55 53 20 46 4c 41 47 53 0d 0a 09 49 4e 58 09 42 43 0d 0a 09 4f 52   ┆BC  ; STATUS FLAGS   INX BC   OR┆
0x52a0…52c0       41 09 41 0d 0a 09 4a 4e 5a 09 58 41 44 44 53 09 3b 20 58 4d 49 54 20 41 44 44 52 45 53 53 0d 0a   ┆A A   JNZ XADDS ; XMIT ADDRESS  ┆
0x52c0…52e0       09 49 4e 52 09 48 09 3b 20 48 3d 20 54 45 52 4d 20 41 44 44 52 2e 0d 0a 09 4d 4f 56 09 41 2c 48   ┆ INR H ; H= TERM ADDR.   MOV A,H┆
0x52e0…5300       0d 0a 09 43 50 49 09 50 44 45 56 2b 31 0d 0a 09 4a 4e 5a 09 53 54 41 4c 4f 4f 0d 0a 09 58 52 41   ┆   CPI PDEV+1   JNZ STALOO   XRA┆
0x5300…5320       09 41 09 3b 20 54 45 53 54 20 44 41 54 41 20 42 55 46 46 45 52 53 2e 0d 0a 44 4c 4f 4f 50 3a 09   ┆ A ; TEST DATA BUFFERS.  DLOOP: ┆
0x5320…5340       53 54 41 09 43 55 52 53 54 41 54 0d 0a 09 4d 56 49 09 4c 2c 31 0d 0a 09 43 41 4c 4c 09 42 34 09   ┆STA CURSTAT   MVI L,1   CALL B4 ┆
0x5340…5360       3b 20 45 4d 50 54 59 3f 0d 0a 09 4a 4e 5a 09 58 41 44 44 44 0d 0a 09 4c 44 41 09 43 55 52 53 54   ┆; EMPTY?   JNZ XADDD   LDA CURST┆
0x5360…5380       41 54 0d 0a 09 49 4e 52 09 41 0d 0a 09 43 50 49 09 50 44 45 56 2b 31 0d 0a 09 4a 4e 5a 09 44 4c   ┆AT   INR A   CPI PDEV+1   JNZ DL┆
0x5380…53a0       4f 4f 50 0d 0a 58 45 4e 44 3a 09 50 4f 50 09 44 45 0d 0a 09 50 4f 50 09 42 43 0d 0a 09 50 4f 50   ┆OOP  XEND: POP DE   POP BC   POP┆
0x53a0…53b9       09 48 4c 0d 0a 09 50 4f 50 50 53 57 0d 0a 09 45 49 0d 0a 09 52 45 54 0d 0a                        ┆ HL   POPPSW   EI   RET  ┆
0x53b9…53bc       FormFeed {
0x53b9…53bc         0c 81 f3                                                                                          ┆   ┆
0x53b9…53bc       }
0x53bc…53c0       0d 0a 3b 20                                                                                       ┆  ; ┆
0x53c0…53e0       54 52 41 4e 53 4d 49 54 20 53 54 41 54 55 53 0d 0a 3b 20 22 4c 58 4d 54 22 3d 20 54 45 52 4d 49   ┆TRANSMIT STATUS  ; "LXMT"= TERMI┆
0x53e0…5400       4e 41 4c 20 4e 4f 2e 0d 0a 58 4d 54 53 54 3a 09 4c 44 41 09 4c 58 4d 54 0d 0a 09 43 41 4c 4c 09   ┆NAL NO.  XMTST: LDA LXMT   CALL ┆
0x5400…5420 (42,) 52 44 53 42 0d 0a 09 4c 58 49 09 44 45 2c 53 54 41 54 41 42 0d 0a 09 43 41 4c 4c 09 44 45 41 44   ┆RDSB   LXI DE,STATAB   CALL DEAD┆
0x5420…5440       44 0d 0a 09 4c 44 41 58 09 44 45 09 3b 20 43 4f 4e 56 45 52 54 20 53 54 41 54 55 53 0d 0a 09 53   ┆D   LDAX DE ; CONVERT STATUS   S┆
0x5440…5460       54 41 09 48 4f 53 54 0d 0a 09 4c 44 41 09 4c 58 4d 54 0d 0a 09 43 41 4c 4c 09 57 52 53 43 0d 0a   ┆TA HOST   LDA LXMT   CALL WRSC  ┆
0x5460…5480       09 4d 56 49 09 41 2c 54 53 54 41 46 0d 0a 09 53 54 41 09 4d 4f 44 45 58 0d 0a 09 4a 4d 50 09 58   ┆ MVI A,TSTAF   STA MODEX   JMP X┆
0x5480…54a0       45 4e 44 0d 0a 0d 0a 0d 0a 3b 20 54 52 41 4e 53 4d 49 54 20 44 41 54 41 0d 0a 3b 20 4c 58 4d 54   ┆END      ; TRANSMIT DATA  ; LXMT┆
0x54a0…54c0       3d 20 54 45 52 4d 49 4e 41 4c 20 4e 4f 2e 0d 0a 0d 0a 58 4d 54 44 3a 09 4c 44 41 09 4c 58 4d 54   ┆= TERMINAL NO.    XMTD: LDA LXMT┆
0x54c0…54e0       0d 0a 09 4d 56 49 09 4c 2c 31 09 3b 20 47 45 54 20 42 59 54 45 2e 0d 0a 09 43 41 4c 4c 09 42 31   ┆   MVI L,1 ; GET BYTE.   CALL B1┆
0x54e0…5500       32 09 3b 20 20 46 52 4f 4d 20 52 45 43 20 42 55 46 46 45 52 3b 0d 0a 09 4d 4f 56 09 41 2c 48 0d   ┆2 ;  FROM REC BUFFER;   MOV A,H ┆
0x5500…5520       0a 09 53 54 41 09 48 4f 53 54 09 3b 20 43 48 41 52 20 54 4f 20 48 4f 53 54 20 55 41 52 54 0d 0a   ┆  STA HOST ; CHAR TO HOST UART  ┆
0x5520…5540       09 41 4e 49 09 33 34 30 0d 0a 09 4a 5a 09 4e 52 45 50 0d 0a 09 4c 44 41 09 4c 58 4d 54 0d 0a 09   ┆ ANI 340   JZ NREP   LDA LXMT   ┆
0x5540…5560       43 50 49 09 50 44 45 56 0d 0a 09 4a 5a 09 4e 52 45 50 0d 0a 09 4d 4f 56 09 41 2c 48 09 3b 20 52   ┆CPI PDEV   JZ NREP   MOV A,H ; R┆
0x5560…5580       45 50 45 41 54 20 43 48 41 52 20 28 58 4d 49 54 20 43 48 41 52 29 0d 0a 09 4d 56 49 09 4c 2c 30   ┆EPEAT CHAR (XMIT CHAR)   MVI L,0┆
0x5580…55a0       09 3b 20 54 4f 20 54 45 52 4d 49 4e 41 4c 0d 0a 09 4c 44 41 09 4c 58 4d 54 0d 0a 09 43 41 4c 4c   ┆ ; TO TERMINAL   LDA LXMT   CALL┆
0x55a0…55c0       09 42 36 09 3b 20 42 55 46 20 49 4e 0d 0a 4e 52 45 50 3a 09 4c 44 41 09 4c 58 4d 54 0d 0a 09 4d   ┆ B6 ; BUF IN  NREP: LDA LXMT   M┆
0x55c0…55e0       56 49 09 4c 2c 31 0d 0a 09 43 41 4c 4c 09 42 34 09 3b 20 45 4d 50 54 59 3f 0d 0a 09 4a 4e 5a 09   ┆VI L,1   CALL B4 ; EMPTY?   JNZ ┆
0x55e0…5600       58 45 4e 44 0d 0a 09 4d 56 49 09 41 2c 54 53 54 41 46 0d 0a 09 53 54 41 09 4d 4f 44 45 58 0d 0a   ┆XEND   MVI A,TSTAF   STA MODEX  ┆
0x5600…560b (43,) 09 4a 4d 50 09 58 45 4e 44 0d 0a                                                                  ┆ JMP XEND  ┆
0x560b…560e       FormFeed {
0x560b…560e         0c 82 df                                                                                          ┆   ┆
0x560b…560e       }
0x560e…5620       0d 0a 3b 20 54 52 41 4e 53 4d 49 54 20 3c 41 44 44 52                                             ┆  ; TRANSMIT <ADDR┆
0x5620…5640       3e 20 49 4e 20 53 54 41 54 55 53 20 53 45 51 55 45 4e 43 45 2e 0d 0a 0d 0a 0d 0a 58 41 44 44 53   ┆> IN STATUS SEQUENCE.      XADDS┆
0x5640…5660       3a 09 4c 44 41 09 4c 58 4d 54 09 3b 20 48 3d 20 54 45 52 4d 20 4e 4f 2e 0d 0a 09 53 55 42 09 48   ┆: LDA LXMT ; H= TERM NO.   SUB H┆
0x5660…5680       0d 0a 09 4a 5a 09 58 41 44 44 4f 0d 0a 0d 0a 09 4d 4f 56 09 41 2c 48 0d 0a 09 53 54 41 09 4c 58   ┆   JZ XADDO     MOV A,H   STA LX┆
0x5680…56a0       4d 54 0d 0a 09 4c 58 49 09 42 43 2c 41 44 44 54 41 42 0d 0a 09 43 41 4c 4c 09 42 43 41 44 44 0d   ┆MT   LXI BC,ADDTAB   CALL BCADD ┆
0x56a0…56c0       0a 09 4c 44 41 58 09 42 43 0d 0a 09 53 54 41 09 48 4f 53 54 09 3b 20 3c 41 44 44 52 3e 20 54 4f   ┆  LDAX BC   STA HOST ; <ADDR> TO┆
0x56c0…56e0       20 55 41 52 54 0d 0a 58 41 44 44 4f 3a 09 4d 56 49 09 41 2c 4e 53 54 41 54 0d 0a 09 53 54 41 09   ┆ UART  XADDO: MVI A,NSTAT   STA ┆
0x56e0…5700       4d 4f 44 45 58 0d 0a 09 4a 4d 50 09 58 45 4e 44 0d 0a 0d 0a 3b 20 54 52 41 4e 53 4d 49 54 20 41   ┆MODEX   JMP XEND    ; TRANSMIT A┆
0x5700…5720       44 44 52 45 53 53 20 49 4e 20 44 41 54 41 20 53 45 51 55 45 4e 43 45 2e 0d 0a 0d 0a 58 41 44 44   ┆DDRESS IN DATA SEQUENCE.    XADD┆
0x5720…5740       44 3a 09 4c 44 41 09 43 55 52 53 54 41 54 09 3b 20 53 41 56 45 20 54 45 52 4d 20 4e 4f 2e 0d 0a   ┆D: LDA CURSTAT ; SAVE TERM NO.  ┆
0x5740…5760       09 4d 4f 56 09 48 2c 41 0d 0a 09 4c 44 41 09 4c 58 4d 54 0d 0a 09 53 55 42 09 48 0d 0a 09 4a 5a   ┆ MOV H,A   LDA LXMT   SUB H   JZ┆
0x5760…5780       09 58 41 44 44 4b 0d 0a 0d 0a 09 4d 4f 56 09 41 2c 48 0d 0a 09 53 54 41 09 4c 58 4d 54 0d 0a 09   ┆ XADDK     MOV A,H   STA LXMT   ┆
0x5780…57a0       4c 58 49 09 42 43 2c 41 44 44 54 41 42 0d 0a 09 43 41 4c 4c 09 42 43 41 44 44 0d 0a 09 4c 44 41   ┆LXI BC,ADDTAB   CALL BCADD   LDA┆
0x57a0…57c0       58 09 42 43 0d 0a 09 53 54 41 09 48 4f 53 54 09 3b 20 3c 41 44 44 52 3e 20 54 4f 20 55 41 52 54   ┆X BC   STA HOST ; <ADDR> TO UART┆
0x57c0…57e0       0d 0a 58 41 44 44 4b 3a 09 4d 56 49 09 41 2c 4e 44 41 54 0d 0a 09 53 54 41 09 4d 4f 44 45 58 0d   ┆  XADDK: MVI A,NDAT   STA MODEX ┆
0x57e0…57ec       0a 09 4a 4d 50 09 58 45 4e 44 0d 0a                                                               ┆  JMP XEND  ┆
0x57ec…57ef       FormFeed {
0x57ec…57ef         0c 82 b2                                                                                          ┆   ┆
0x57ec…57ef       }
0x57ef…5800       0d 0a 3b 20 52 4f 55 54 49 4e 45 20 54 4f 20 49 4e                                                ┆  ; ROUTINE TO IN┆
0x5800…5820 (44,) 49 54 49 41 4c 49 5a 45 20 41 4e 20 55 41 52 54 2e 0d 0a 3b 20 57 48 45 4e 20 43 41 4c 4c 45 44   ┆ITIALIZE AN UART.  ; WHEN CALLED┆
0x5820…5840       3a 0d 0a 3b 20 42 43 3d 09 50 4f 49 4e 54 45 52 20 54 4f 20 4d 4f 44 45 20 54 41 42 28 4d 54 41   ┆:  ; BC= POINTER TO MODE TAB(MTA┆
0x5840…5860       42 29 0d 0a 3b 20 44 45 3d 09 4d 4f 44 45 20 52 45 47 20 44 45 53 54 49 4e 41 54 49 4f 4e 0d 0a   ┆B)  ; DE= MODE REG DESTINATION  ┆
0x5860…5880       3b 20 41 3d 09 42 41 55 44 20 52 41 54 45 0d 0a 3b 20 4c 3d 20 4e 4f 2e 20 4f 46 20 53 54 4f 50   ┆; A= BAUD RATE  ; L= NO. OF STOP┆
0x5880…58a0       42 49 54 53 28 20 31 3c 37 20 49 46 20 32 20 53 54 4f 50 42 49 54 53 2c 20 30 20 49 46 20 31 20   ┆BITS( 1<7 IF 2 STOPBITS, 0 IF 1 ┆
0x58a0…58c0       53 54 4f 50 42 49 54 29 2e 0d 0a 49 4e 49 54 55 3a 09 4d 4f 56 09 48 2c 41 0d 0a 09 4c 44 41 58   ┆STOPBIT).  INITU: MOV H,A   LDAX┆
0x58c0…58e0       09 42 43 0d 0a 09 41 44 44 09 4c 0d 0a 09 53 54 41 58 09 44 45 09 3b 20 53 45 54 20 4d 4f 44 45   ┆ BC   ADD L   STAX DE ; SET MODE┆
0x58e0…5900       31 0d 0a 09 49 4e 58 09 42 43 0d 0a 09 4c 44 41 58 09 42 43 0d 0a 09 41 44 44 09 48 0d 0a 09 53   ┆1   INX BC   LDAX BC   ADD H   S┆
0x5900…5920       54 41 58 09 44 45 09 3b 20 53 45 54 20 4d 4f 44 45 32 0d 0a 09 49 4e 58 09 42 43 0d 0a 09 49 4e   ┆TAX DE ; SET MODE2   INX BC   IN┆
0x5920…5940       58 09 44 45 0d 0a 09 4c 44 41 58 09 42 43 0d 0a 09 53 54 41 58 09 44 45 09 3b 20 53 45 54 20 43   ┆X DE   LDAX BC   STAX DE ; SET C┆
0x5940…594e       4f 4d 4d 41 4e 44 0d 0a 09 52 45 54 0d 0a                                                         ┆OMMAND   RET  ┆
0x594e…5951       FormFeed {
0x594e…5951         0c 81 ab                                                                                          ┆   ┆
0x594e…5951       }
0x5951…5960       0d 0a 3b 20 49 4e 49 54 49 41 4c 49 5a 41 54                                                      ┆  ; INITIALIZAT┆
0x5960…5980       49 4f 4e 20 4f 46 20 55 41 52 54 53 2e 0d 0a 53 54 52 50 31 3d 09 33 32 30 30 30 09 3b 20 53 54   ┆ION OF UARTS.  STRP1= 32000 ; ST┆
0x5980…59a0       52 41 50 20 46 49 45 4c 44 31 0d 0a 53 54 52 50 32 3d 09 33 32 34 30 30 09 3b 20 53 54 52 41 50   ┆RAP FIELD1  STRP2= 32400 ; STRAP┆
0x59a0…59c0       20 46 49 45 4c 44 32 0d 0a 0d 0a 53 50 49 4e 49 54 3d 09 33 31 37 37 37 09 3b 20 53 54 41 43 4b   ┆ FIELD2    SPINIT= 31777 ; STACK┆
0x59c0…59e0       20 50 4f 49 4e 54 45 52 20 49 4e 49 54 20 56 41 4c 55 45 2e 0d 0a 0d 0a 53 54 49 4e 49 54 3a 09   ┆ POINTER INIT VALUE.    STINIT: ┆
0x59e0…5a00       4c 58 49 09 44 45 2c 48 4f 53 54 2b 32 0d 0a 09 4c 58 49 09 53 50 2c 53 50 49 4e 49 54 0d 0a 09   ┆LXI DE,HOST+2   LXI SP,SPINIT   ┆
0x5a00…5a20 (45,) 4c 58 49 09 42 43 2c 4d 54 41 42 0d 0a 09 4c 44 41 09 53 54 52 50 32 0d 0a 09 41 4e 49 09 32 30   ┆LXI BC,MTAB   LDA STRP2   ANI 20┆
0x5a20…5a40       30 0d 0a 09 4d 4f 56 09 4c 2c 41 0d 0a 09 4c 44 41 09 53 54 52 50 32 0d 0a 09 41 4e 49 09 31 37   ┆0   MOV L,A   LDA STRP2   ANI 17┆
0x5a40…5a60       0d 0a 09 43 41 4c 4c 09 49 4e 49 54 55 09 3b 20 49 4e 49 54 20 48 4f 53 54 2e 0d 0a 09 4c 58 49   ┆   CALL INITU ; INIT HOST.   LXI┆
0x5a60…5a80       09 44 45 2c 54 45 52 4d 31 2b 32 0d 0a 09 4c 58 49 09 42 43 2c 4d 54 41 42 2b 33 0d 0a 09 4c 44   ┆ DE,TERM1+2   LXI BC,MTAB+3   LD┆
0x5a80…5aa0       41 09 53 54 52 50 32 0d 0a 09 52 4c 43 0d 0a 09 41 4e 49 09 32 30 30 0d 0a 09 4d 4f 56 09 4c 2c   ┆A STRP2   RLC   ANI 200   MOV L,┆
0x5aa0…5ac0       41 0d 0a 09 4c 44 41 09 53 54 52 50 31 0d 0a 09 41 4e 49 09 31 37 0d 0a 09 43 41 4c 4c 09 49 4e   ┆A   LDA STRP1   ANI 17   CALL IN┆
0x5ac0…5ae0       49 54 55 09 3b 20 49 4e 49 54 20 54 45 52 4d 49 4e 41 4c 31 0d 0a 09 4c 44 41 09 53 54 52 50 32   ┆ITU ; INIT TERMINAL1   LDA STRP2┆
0x5ae0…5b00       0d 0a 09 52 4c 43 0d 0a 09 41 4e 49 09 32 30 30 0d 0a 09 4d 4f 56 09 4c 2c 41 0d 0a 09 4c 44 41   ┆   RLC   ANI 200   MOV L,A   LDA┆
0x5b00…5b20       09 53 54 52 50 31 0d 0a 09 41 4e 49 09 31 37 0d 0a 09 4c 58 49 09 44 45 2c 54 45 52 4d 32 2b 32   ┆ STRP1   ANI 17   LXI DE,TERM2+2┆
0x5b20…5b40       0d 0a 09 4c 58 49 09 42 43 2c 4d 54 41 42 2b 36 0d 0a 09 43 41 4c 4c 09 49 4e 49 54 55 09 3b 20   ┆   LXI BC,MTAB+6   CALL INITU ; ┆
0x5b40…5b50       49 4e 49 54 20 54 45 52 4d 49 4e 41 4c 32 0d 0a                                                   ┆INIT TERMINAL2  ┆
0x5b50…5b53       FormFeed {
0x5b50…5b53         0c 82 a9                                                                                          ┆   ┆
0x5b50…5b53       }
0x5b53…5b60       0d 0a 09 4c 44 41 09 53 54 52 50 32 0d                                                            ┆   LDA STRP2 ┆
0x5b60…5b80       0a 09 52 4c 43 0d 0a 09 41 4e 49 09 32 30 30 0d 0a 09 4d 4f 56 09 4c 2c 41 0d 0a 09 4c 44 41 09   ┆  RLC   ANI 200   MOV L,A   LDA ┆
0x5b80…5ba0       53 54 52 50 31 0d 0a 09 41 4e 49 09 31 37 0d 0a 09 4c 58 49 09 44 45 2c 54 45 52 4d 33 2b 32 0d   ┆STRP1   ANI 17   LXI DE,TERM3+2 ┆
0x5ba0…5bc0       0a 09 4c 58 49 09 42 43 2c 4d 54 41 42 2b 31 31 0d 0a 09 43 41 4c 4c 09 49 4e 49 54 55 0d 0a 09   ┆  LXI BC,MTAB+11   CALL INITU   ┆
0x5bc0…5be0       4c 44 41 09 53 54 52 50 32 0d 0a 09 52 4c 43 0d 0a 09 52 4c 43 0d 0a 09 41 4e 49 09 32 30 30 0d   ┆LDA STRP2   RLC   RLC   ANI 200 ┆
0x5be0…5c00       0a 09 4d 4f 56 09 4c 2c 41 0d 0a 09 4c 44 41 09 53 54 52 50 31 0d 0a 09 4d 56 49 09 44 2c 34 0d   ┆  MOV L,A   LDA STRP1   MVI D,4 ┆
0x5c00…5c20 (46,) 0a 09 43 41 4c 4c 09 52 4f 53 48 0d 0a 09 41 4e 49 09 31 37 0d 0a 09 4c 58 49 09 44 45 2c 50 52   ┆  CALL ROSH   ANI 17   LXI DE,PR┆
0x5c20…5c40       49 4e 54 2b 32 0d 0a 09 4c 58 49 09 42 43 2c 4d 54 41 42 2b 31 34 0d 0a 09 43 41 4c 4c 09 49 4e   ┆INT+2   LXI BC,MTAB+14   CALL IN┆
0x5c40…5c60       49 54 55 0d 0a 0d 0a 0d 0a 3b 20 49 4e 49 54 20 42 55 46 46 45 52 53 2e 0d 0a 0d 0a 09 4d 56 49   ┆ITU      ; INIT BUFFERS.     MVI┆
0x5c60…5c80       09 48 2c 30 0d 0a 09 4d 56 49 09 4c 2c 30 0d 0a 09 4d 4f 56 09 41 2c 48 0d 0a 49 4e 49 31 3a 09   ┆ H,0   MVI L,0   MOV A,H  INI1: ┆
0x5c80…5ca0       43 41 4c 4c 09 45 4d 50 54 31 09 3b 20 45 4d 50 54 59 20 58 4d 54 20 42 55 46 46 45 52 53 2e 0d   ┆CALL EMPT1 ; EMPTY XMT BUFFERS. ┆
0x5ca0…5cc0       0a 09 49 4e 52 09 48 0d 0a 09 4d 4f 56 09 41 2c 48 0d 0a 09 43 50 49 09 50 44 45 56 2b 31 0d 0a   ┆  INR H   MOV A,H   CPI PDEV+1  ┆
0x5cc0…5ce0       09 4a 4e 5a 09 49 4e 49 31 0d 0a 0d 0a 09 4d 56 49 09 48 2c 30 0d 0a 09 4d 56 49 09 4c 2c 31 0d   ┆ JNZ INI1     MVI H,0   MVI L,1 ┆
0x5ce0…5d00       0a 09 4d 4f 56 09 41 2c 48 0d 0a 49 4e 49 32 3a 09 43 41 4c 4c 09 45 4d 50 54 31 09 3b 20 45 4d   ┆  MOV A,H  INI2: CALL EMPT1 ; EM┆
0x5d00…5d20       50 54 59 20 52 45 43 20 42 55 46 46 45 52 53 2e 0d 0a 09 49 4e 52 09 48 0d 0a 09 4d 4f 56 09 41   ┆PTY REC BUFFERS.   INR H   MOV A┆
0x5d20…5d3c       2c 48 0d 0a 09 43 50 49 09 50 44 45 56 2b 31 0d 0a 09 4a 4e 5a 09 49 4e 49 32 0d 0a               ┆,H   CPI PDEV+1   JNZ INI2  ┆
0x5d3c…5d3f       FormFeed {
0x5d3c…5d3f         0c 82 fa                                                                                          ┆   ┆
0x5d3c…5d3f       }
0x5d3f…5d40       0d                                                                                                ┆ ┆
0x5d40…5d60       0a 3b 20 52 45 53 45 54 20 53 54 41 42 58 2d 2d 20 53 54 41 46 58 20 56 41 52 49 41 42 4c 45 53   ┆ ; RESET STABX-- STAFX VARIABLES┆
0x5d60…5d80       2e 0d 0a 0d 0a 0d 0a 09 4d 56 49 09 44 2c 28 47 52 44 59 2d 53 54 41 42 31 29 2b 31 0d 0a 09 4c   ┆.       MVI D,(GRDY-STAB1)+1   L┆
0x5d80…5da0       58 49 09 42 43 09 53 54 41 42 31 0d 0a 53 49 4e 49 31 3a 09 58 52 41 09 41 0d 0a 09 53 54 41 58   ┆XI BC STAB1  SINI1: XRA A   STAX┆
0x5da0…5dc0       09 42 43 0d 0a 09 49 4e 58 09 42 43 0d 0a 09 44 43 52 09 44 0d 0a 09 4a 4e 5a 09 53 49 4e 49 31   ┆ BC   INX BC   DCR D   JNZ SINI1┆
0x5dc0…5de0       0d 0a 0d 0a 09 4c 58 49 09 42 43 2c 53 54 41 42 50 09 3b 20 49 4e 49 54 20 52 45 41 44 59 3a 20   ┆     LXI BC,STABP ; INIT READY: ┆
0x5de0…5e00       2a 2a 20 43 48 41 4e 47 45 20 54 4f 20 27 53 54 41 42 31 27 3a 20 49 4e 43 4c 20 54 45 52 4d 20   ┆** CHANGE TO 'STAB1': INCL TERM ┆
0x5e00…5e20 (47,) 2a 2a 0d 0a 09 4d 56 49 09 44 2c 31 09 09 3b 20 20 20 2a 2a 20 43 48 41 4e 47 45 20 54 4f 20 34   ┆**   MVI D,1  ;   ** CHANGE TO 4┆
0x5e20…5e40       3a 20 49 4e 43 4c 55 44 45 20 54 45 52 4d 49 4e 41 4c 53 20 2a 2a 0d 0a 09 4d 56 49 09 41 2c 34   ┆: INCLUDE TERMINALS **   MVI A,4┆
0x5e40…5e60       09 09 3b 0d 0a 53 49 4e 49 32 3a 09 53 54 41 58 09 42 43 09 09 3b 0d 0a 09 49 4e 58 09 42 43 09   ┆  ;  SINI2: STAX BC  ;   INX BC ┆
0x5e60…5e80       09 3b 0d 0a 09 44 43 52 09 44 09 09 3b 0d 0a 09 4a 4e 5a 09 53 49 4e 49 32 09 09 3b 0d 0a 0d 0a   ┆ ;   DCR D  ;   JNZ SINI2  ;    ┆
0x5e80…5ea0       0d 0a 3b 20 53 45 54 20 54 45 52 4d 49 4e 41 4c 53 20 54 4f 20 53 4b 49 50 20 4d 4f 44 45 2e 0d   ┆  ; SET TERMINALS TO SKIP MODE. ┆
0x5ea0…5ec0       0a 09 4c 58 49 09 42 43 2c 4d 4f 44 45 31 0d 0a 09 4d 56 49 09 41 2c 31 0d 0a 09 53 54 41 58 09   ┆  LXI BC,MODE1   MVI A,1   STAX ┆
0x5ec0…5ee0       42 43 0d 0a 09 49 4e 58 09 42 43 0d 0a 09 53 54 41 58 09 42 43 0d 0a 09 49 4e 58 09 42 43 0d 0a   ┆BC   INX BC   STAX BC   INX BC  ┆
0x5ee0…5f00       09 53 54 41 58 09 42 43 0d 0a 09 49 4e 58 09 42 43 0d 0a 09 4d 56 49 09 41 2c 54 53 54 41 54 09   ┆ STAX BC   INX BC   MVI A,TSTAT ┆
0x5f00…5f20       3b 20 53 45 54 20 4d 4f 44 45 58 0d 0a 09 53 54 41 58 09 42 43 0d 0a 09 4d 56 49 09 41 2c 31 37   ┆; SET MODEX   STAX BC   MVI A,17┆
0x5f20…5f40       0d 0a 09 53 54 41 09 4c 58 4d 54 0d 0a 09 58 52 41 09 41 0d 0a 09 53 54 41 09 4c 52 45 43 0d 0a   ┆   STA LXMT   XRA A   STA LREC  ┆
0x5f40…5f60       09 53 54 41 09 50 53 55 4d 0d 0a 09 43 41 4c 4c 09 45 52 52 30 0d 0a 09 58 52 41 09 41 0d 0a 09   ┆ STA PSUM   CALL ERR0   XRA A   ┆
0x5f60…5f80       53 54 41 09 47 52 44 59 0d 0a 09 4d 56 49 09 41 2c 31 31 0d 0a 09 53 49 4d 0d 0a 09 45 49 0d 0a   ┆STA GRDY   MVI A,11   SIM   EI  ┆
0x5f80…5f8b       09 4a 4d 50 09 50 52 4f 31 0d 0a                                                                  ┆ JMP PRO1  ┆
0x5f8b…5f8e       FormFeed {
0x5f8b…5f8e         0c 83 83                                                                                          ┆   ┆
0x5f8b…5f8e       }
0x5f8e…5fa0       3b 20 2a 2a 2a 2a 09 52 4f 55 54 49 4e 45 20 54 4f 20                                             ┆; **** ROUTINE TO ┆
0x5fa0…5fc0       49 4e 49 54 20 28 52 45 49 4e 49 54 49 41 4c 49 5a 45 29 20 4f 4e 45 20 54 45 52 4d 49 4e 41 4c   ┆INIT (REINITIALIZE) ONE TERMINAL┆
0x5fc0…5fe0       0d 0a 3b 20 2a 2a 2a 2a 0d 0a 3b 09 50 41 52 41 4d 3a 09 52 45 47 20 41 20 3d 20 44 45 56 4e 4f   ┆  ; ****  ; PARAM: REG A = DEVNO┆
0x5fe0…6000       20 28 30 2e 2e 32 29 3b 0d 0a 0d 0a 54 49 4e 49 54 3a 09 4d 4f 56 09 48 2c 41 09 3b 42 45 47 49   ┆ (0..2);    TINIT: MOV H,A ;BEGI┆
0x6000…6020 (48,) 4e 0d 0a 09 52 4c 43 09 09 3b 20 52 45 53 45 54 20 55 41 52 54 3a 0d 0a 09 52 4c 43 09 09 3b 0d   ┆N   RLC  ; RESET UART:   RLC  ; ┆
0x6020…6040       0a 09 4c 58 49 09 44 45 2c 54 45 52 4d 31 2b 33 09 3b 0d 0a 09 43 41 4c 4c 09 44 45 41 44 44 09   ┆  LXI DE,TERM1+3 ;   CALL DEADD ┆
0x6040…6060       3b 20 20 20 43 4f 4d 4d 41 4e 44 20 3a 3d 20 52 45 53 45 54 20 45 52 52 4f 52 2c 44 49 53 41 42   ┆;   COMMAND := RESET ERROR,DISAB┆
0x6060…6080       4c 45 20 52 45 43 2c 58 4d 49 54 3b 0d 0a 09 4d 56 49 09 41 2c 32 30 09 3b 20 45 4e 44 20 52 45   ┆LE REC,XMIT;   MVI A,20 ; END RE┆
0x6080…60a0       53 45 54 3b 0d 0a 09 53 54 41 58 09 44 45 09 3b 0d 0a 0d 0a 09 58 52 41 09 41 09 3b 20 52 45 49   ┆SET;   STAX DE ;     XRA A ; REI┆
0x60a0…60c0       4e 49 54 49 41 4c 49 5a 45 20 55 41 52 54 3a 0d 0a 09 4d 4f 56 09 44 2c 48 09 3b 0d 0a 09 41 44   ┆NITIALIZE UART:   MOV D,H ;   AD┆
0x60c0…60e0       44 09 44 09 3b 0d 0a 09 41 44 44 09 44 09 3b 0d 0a 09 41 44 44 09 44 09 3b 0d 0a 09 4c 58 49 09   ┆D D ;   ADD D ;   ADD D ;   LXI ┆
0x60e0…6100       42 43 2c 4d 54 41 42 2b 33 09 3b 0d 0a 09 43 41 4c 4c 09 42 43 41 44 44 09 3b 20 20 20 47 45 54   ┆BC,MTAB+3 ;   CALL BCADD ;   GET┆
0x6100…6120       20 50 41 52 41 4d 20 54 41 42 4c 45 20 41 44 44 52 45 53 53 3b 0d 0a 09 4d 4f 56 09 41 2c 48 09   ┆ PARAM TABLE ADDRESS;   MOV A,H ┆
0x6120…6140       3b 0d 0a 09 52 4c 43 09 09 3b 0d 0a 09 52 4c 43 09 09 3b 0d 0a 09 4c 58 49 09 44 45 2c 54 45 52   ┆;   RLC  ;   RLC  ;   LXI DE,TER┆
0x6140…6160       4d 31 2b 32 09 3b 0d 0a 09 43 41 4c 4c 09 44 45 41 44 44 09 3b 20 20 20 20 47 45 54 20 44 45 56   ┆M1+2 ;   CALL DEADD ;    GET DEV┆
0x6160…6180       49 43 45 20 41 44 44 52 45 53 53 20 54 41 42 4c 45 20 41 44 44 52 45 53 53 3b 3b 0d 0a 09 50 55   ┆ICE ADDRESS TABLE ADDRESS;;   PU┆
0x6180…61a0       53 48 09 48 4c 09 3b 0d 0a 09 4c 44 41 09 53 54 52 50 32 09 3b 0d 0a 09 52 4c 43 09 09 3b 0d 0a   ┆SH HL ;   LDA STRP2 ;   RLC  ;  ┆
0x61a0…61c0       09 41 4e 49 09 32 30 30 09 3b 20 20 20 20 47 45 54 20 27 53 54 4f 50 20 42 49 54 53 20 53 45 4c   ┆ ANI 200 ;    GET 'STOP BITS SEL┆
0x61c0…61e0       45 43 54 27 3b 0d 0a 09 4d 4f 56 09 4c 2c 41 09 3b 0d 0a 09 4c 44 41 09 53 54 52 50 31 09 3b 20   ┆ECT';   MOV L,A ;   LDA STRP1 ; ┆
0x61e0…6200       20 20 20 47 45 54 20 27 42 41 55 44 20 52 41 54 45 20 53 45 4c 45 43 54 27 3b 0d 0a 09 41 4e 49   ┆   GET 'BAUD RATE SELECT';   ANI┆
0x6200…6220 (49,) 09 31 37 09 3b 0d 0a 09 43 41 4c 4c 09 49 4e 49 54 55 09 3b 20 20 20 20 49 4e 49 54 20 55 41 52   ┆ 17 ;   CALL INITU ;    INIT UAR┆
0x6220…6240       54 20 28 50 41 52 41 4d 2c 44 45 56 49 43 45 29 3b 0d 0a 09 50 4f 50 09 48 4c 09 3b 20 45 4e 44   ┆T (PARAM,DEVICE);   POP HL ; END┆
0x6240…6253       20 52 45 49 4e 49 54 49 41 4c 49 5a 45 3b 0d 0a 3b 0d 0a                                          ┆ REINITIALIZE;  ;  ┆
0x6253…6256       FormFeed {
0x6253…6256         0c 82 a9                                                                                          ┆   ┆
0x6253…6256       }
0x6256…6260       09 4d 56 49 09 4c 2c 30 09 3b                                                                     ┆ MVI L,0 ;┆
0x6260…6280       0d 0a 09 4d 4f 56 09 41 2c 48 09 3b 0d 0a 09 43 41 4c 4c 09 45 4d 50 54 31 09 3b 20 45 4d 50 54   ┆   MOV A,H ;   CALL EMPT1 ; EMPT┆
0x6280…62a0       59 20 58 4d 49 54 20 42 55 46 3b 0d 0a 09 4d 56 49 09 4c 2c 31 09 3b 0d 0a 09 4d 4f 56 09 41 2c   ┆Y XMIT BUF;   MVI L,1 ;   MOV A,┆
0x62a0…62c0       48 09 3b 0d 0a 09 43 41 4c 4c 09 45 4d 50 54 31 09 3b 20 45 4d 50 54 59 20 52 45 43 20 42 55 46   ┆H ;   CALL EMPT1 ; EMPTY REC BUF┆
0x62c0…62e0       3b 0d 0a 09 52 45 54 09 09 3b 0d 0a 0d 0a 3b 09 4d 4f 56 09 45 2c 48 09 3b 0d 0a 3b 09 58 52 41   ┆;   RET  ;    ; MOV E,H ;  ; XRA┆
0x62e0…6300       09 41 09 3b 0d 0a 3b 09 4d 4f 56 09 44 2c 41 09 3b 0d 0a 3b 09 4c 58 49 09 48 4c 2c 4d 4f 44 45   ┆ A ;  ; MOV D,A ;  ; LXI HL,MODE┆
0x6300…6320       31 09 3b 0d 0a 3b 09 44 41 44 09 44 45 09 3b 0d 0a 3b 09 4d 56 49 09 41 2c 31 09 3b 0d 0a 3b 09   ┆1 ;  ; DAD DE ;  ; MVI A,1 ;  ; ┆
0x6320…6340       4d 4f 56 09 4d 2c 41 09 3b 20 52 45 53 45 54 20 54 45 52 4d 49 4e 41 4c 20 4d 4f 44 45 20 54 4f   ┆MOV M,A ; RESET TERMINAL MODE TO┆
0x6340…6360       20 43 4f 4e 54 52 4f 4c 20 4d 4f 44 45 3b 0d 0a 3b 09 4c 58 49 09 48 4c 2c 53 54 41 42 31 09 3b   ┆ CONTROL MODE;  ; LXI HL,STAB1 ;┆
0x6360…6380       0d 0a 3b 09 44 41 44 09 44 45 09 3b 0d 0a 3b 09 4d 56 49 09 41 2c 31 09 3b 0d 0a 3b 09 4d 4f 56   ┆  ; DAD DE ;  ; MVI A,1 ;  ; MOV┆
0x6380…63a0       09 4d 2c 41 09 3b 20 53 45 54 20 53 54 41 54 55 53 20 52 45 4d 20 54 4f 20 56 32 34 2d 45 52 52   ┆ M,A ; SET STATUS REM TO V24-ERR┆
0x63a0…63c0       4f 52 20 53 54 41 54 55 53 3b 0d 0a 3b 09 4c 58 49 09 48 4c 2c 53 54 41 46 31 09 3b 0d 0a 3b 09   ┆OR STATUS;  ; LXI HL,STAF1 ;  ; ┆
0x63c0…63e0       44 41 44 09 44 45 09 3b 0d 0a 3b 09 4d 4f 56 09 4d 2c 41 09 3b 20 53 45 54 20 53 54 41 54 55 53   ┆DAD DE ;  ; MOV M,A ; SET STATUS┆
0x63e0…6400       20 46 4c 41 47 20 27 53 54 41 54 55 53 20 4e 4f 54 20 50 52 4f 43 45 53 53 45 44 27 3b 0d 0a 3b   ┆ FLAG 'STATUS NOT PROCESSED';  ;┆
0x6400…6412 (50,) 09 52 45 54 09 09 3b 45 4e 44 20 49 4e 49 54 3b 0d 0a                                             ┆ RET  ;END INIT;  ┆
0x6412…6415       FormFeed {
0x6412…6415         0c 81 c6                                                                                          ┆   ┆
0x6412…6415       }
0x6415…6420       0d 0a 09 2e 4c 4f 43 09 30 0d 0a                                                                  ┆   .LOC 0  ┆
0x6420…6440       0d 0a 09 4a 4d 50 09 58 49 4e 49 54 09 3b 20 50 4f 57 45 52 20 52 45 53 54 41 52 54 2e 0d 0a 0d   ┆   JMP XINIT ; POWER RESTART.   ┆
0x6440…6460       0a 09 2e 4c 4f 43 09 37 30 0d 0a 09 4a 4d 50 09 58 49 52 45 43 09 3b 20 48 4f 53 54 20 52 45 43   ┆  .LOC 70   JMP XIREC ; HOST REC┆
0x6460…6480       20 49 4e 54 45 52 52 55 50 54 2e 0d 0a 09 52 45 54 0d 0a 09 4a 4d 50 09 58 49 4d 49 54 09 3b 20   ┆ INTERRUPT.   RET   JMP XIMIT ; ┆
0x6480…64a0       48 4f 53 54 20 58 4d 54 20 49 4e 54 45 52 52 55 50 54 2e 0d 0a 09 52 45 54 0d 0a 0d 0a 09 2e 45   ┆HOST XMT INTERRUPT.   RET     .E┆
0x64a0…64a6       4e 44 0d 0a 0d 0a                                                                                 ┆ND    ┆
0x64a6…64a9       FormFeed {
0x64a6…64a9         0c 00 00                                                                                          ┆   ┆
0x64a6…64a9       }
0x64a9…64c0       00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00                              ┆                       ┆
0x64c0…64e0       00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ┆                                ┆
        […0xb…]
0x6640…6660       00 00 00 00 00 00 00 00 00 00 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a   ┆                                ┆
0x6660…6680       1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a   ┆                                ┆

Reduced view