DataMuseum.dk

Presents historical artifacts from the history of:

Intel ISIS Floppy Disks

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

See our Wiki for more about Intel ISIS Floppy Disks

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦4fa1f6d54⟧ TextFile

    Length: 27037 (0x699d)
    Types: TextFile
    Names: »EXEC.SRC«

Derivation

└─⟦af81bc460⟧ Bits:30005550 8" CR80 Floppy CR80FD_0034 ( MATRIX Source and Abs-files )
└─⟦af81bc460⟧ Intel_ISIS_II
    └─ ⟦this⟧ »EXEC.SRC« 

TextFile

;******************************************************************************\r
;*                                                                            *\r
;* D O R A     A P P L I C A T I O N     S / W                                *\r
;*                                                                            *\r
;* DEVICE: MATRIX (I/F 104)                                                   *\r
;*                                                                            *\r
;* MODULE: EXECUTE PROCESS                                                    *\r
;*                                                                            *\r
;******************************************************************************\r
\r
LINK	EQU	0\r
VIDEO	EQU	12\r
AUDIO	EQU	11\r
STATNR	EQU	8\r
EXECUTE	EQU	09\r
PANEL	EQU	07\r
PORT20	DEFL	4020H\r
PORT68	DEFL	4024H\r
\r
;PASSIVATE\r
;ACTIVATE\r
\r
	NLIST	S\r
PASSIVATE	MACRO	#ID,#NO\r
					;DESRIP: THE MODULE PASSIVATES\r
					;	SPECIFIED PROCES.\r
					;	IF LINK IS SET AND ACTIV\r
					;	SPECIAL PROCESS IS PASSIVATED\r
					;	THE LINK-ELEMENT IS \r
					;	DECREMENTED\r
					;DESTR:	REG F,H,L\r
	IF	'#ID'.EQ.'S'\r
	LD	HL,SYSRAM+200H+#NO*10H+5\r
					;IMPLEMENT ADD OF STATUS-BIT\r
	IF	LINK.EQ.1\r
	BIT	7,(HL)			;\r
	JR	Z,O#$YM			;IF PROCESS WAS NOT PASSIVE THEN\r
	LD	HL,SYSRAM+0FBH		;BEGIN\r
	DEC	(HL)			;DEC LINK-ELEMENT\r
	LD	HL,SYSRAM+200H+#NO*10H+5\r
					;END\r
O#$YM:	ENDIF\r
	ENDIF\r
	IF	'#ID'.EQ.'N'\r
	LD	HL,SYSRAM+200H+S*10H+#NO*20H+5\r
					;IMPLEMENT ADD OF STATUS-BIT\r
	ENDIF\r
	RES	7,(HL)			;PASSIVATE\r
	ENDM\r
ACTIVATE	MACRO	#ID,#NO\r
					;DESRIP: THE MODULE ACTIVATES\r
					;	SPECIFIED PROCES.\r
					;	IF LINK IS SET AND PASSIV\r
					;	SPECIAL PROCESS IS ACTIVATED\r
					;	THE LINK-ELEMENT IS \r
					;	INCREMENTED\r
					;DESTR:	REG F,H,L\r
	IF	'#ID'.EQ.'S'\r
	LD	HL,SYSRAM+200H+#NO*10H+5\r
					;IMPLEMENT ADD OF STATUS-BIT\r
	IF	LINK.EQ.1\r
	BIT	7,(HL)			;\r
	JR	NZ,O#$YM		;IF PROCESS WAS NOT ACTIVE THEN\r
	LD	HL,SYSRAM+0FBH	;BEGIN\r
	INC	(HL)			;INC LINK-ELEMENT\r
	LD	HL,SYSRAM+200H+#NO*10H+5\r
					;END\r
O#$YM:	ENDIF\r
	ENDIF\r
	IF	'#ID'.EQ.'N'\r
	LD	HL,SYSRAM+200H+S*10H+#NO*20H+5\r
					;IMPLEMENT ADD OF STATUS-BIT\r
	ENDIF\r
	SET	7,(HL)			;ACTIVATE\r
	ENDM\r
	LIST	S\r
\r
	PUBLIC	EXEC,STAC09\r
	EXTRN	SYSRAM,SUBDEQ,SUBENQ,SCOMMON,CPSTAT,CPSPEC,ECOND2\r
	EXTRN	QKE,QEV,QME,QEA,QEK,QET,QEMPTY,QTEMP\r
\r
	CSEG\r
\r
EXEC:	LD	SP,STAC09	;INITIALIZE PRIVAT STACKPOINTER\r
	LD	A,0\r
	LD	(FLAG1),A	;CLEAR CP ERROR-FLAG + NACK-FLAG\r
	LD	(ACKCNT),A	;CLEAR ACKCOUNT\r
PASPRO:	PASSIVATE S,EXECUTE\r
	CALL	SCOMMON\r
	EI\r
START:	LD	HL,QKE\r
	CALL	SUBDEQ		;DEQUE INCOMING BUFFER\r
	JR	C,ST1		;IF NO MORE INCOMING BUFFERS AND\r
				;WHILE BUFFERS IN TEMPORARY QUEUE DO\r
				;BEGIN\r
B0:	LD	HL,QTEMP	;\r
	CALL	SUBDEQ		;  GET BUFFER FROM TEMPORARY QUEUE\r
	JR	NC,PASPRO	;  IF NO MORE BUFFERS, PASSIVATE EXECUTE PROC.\r
	PUSH	DE		;  SAVE TEMPORARY BUFFER ADDRESS\r
B1:	LD	HL,QEMPTY	;\r
	CALL	SUBDEQ		;\r
	JR	C,B2		;\r
	CALL	SCOMMON		;\r
	EI			;\r
	JR	B1		;\r
B2:	POP	HL		;  GET TEMPORARY BUFFER ADDRESS\r
	PUSH	HL		;  SAVE   ----------------\r
	LD	BC,5		;\r
	LDIR			;\r
	LD	BC,5		;\r
	EX	DE,HL		;\r
	AND	A		;\r
	SBC	HL,BC		;\r
	EX	DE,HL		;\r
	LD	HL,QEK		;\r
	CALL	SUBENQ		;  SEND REPLY-BUFFER TO KEYBOARD MODULE\r
	ACTIVATE S,PANEL	;\r
	POP	DE		;  GET TEMPORARY BUFFER ADDRESS\r
	LD	HL,QET		;\r
	CALL	SUBENQ		;  SEND REPLY-BUFFER TO STATUS TRANSM. PROCESS\r
	ACTIVATE S,STATNR	;\r
	JR	B0		;END-WHILE\r
\r
ST1:	LD	(QKEBUF),DE	;SAVE BUFFERADDRESS\r
	LD	IX,(QKEBUF)\r
	LD	A,(IX+2)\r
	CP	80H\r
	JR	Z,ESTREL	;GOTO ESTABLISH/RELEASE ROUTINE\r
	CP	00H\r
	JR	Z,ESTREL	;GOTO ESTABLISH/RELEASE ROUTINE\r
	CP	20H\r
	JP	Z,LISTEN	;GOTO LISTEN-ROUTINE\r
	CP	08H\r
	JP	Z,ONAIR		;GOTO ONAIR-ROUTINE\r
	CP	10H\r
	JP	Z,DISUPD	;GOTO DISPLAY UPDATING-ROUTINE\r
\r
	JP	TEST		;GOTO TEST-ROUTINE\r
\r
\r
*******************************************************************************\r
*******************************************************************************\r
*                 	ESTABLISH/RELEASE ROUTINE                             *\r
*******************************************************************************\r
ESTREL:	BIT	7,(IX+2)\r
	JR	NZ,ESTISH	;IF ESTABLISH COMMAND THEN GOTO ESTISH ELSE\r
	JP	RELEASE		;GOTO RELEASE\r
\r
;------------------------------------------------------------------------------\r
;-----------------------------------------------------------------------------\r
ESTISH:	LD	H,(IX+3)\r
	LD	L,(IX+4)\r
	CALL	CPSPEC		;GET ADDRESS OF 1.BYTE OF CP SPEC.\r
	LD	(SPECSAV),HL	;SAVE THE ADDRESS\r
\r
	LD	A,0FFH\r
	AND	(HL)\r
	JP	Z,CRP1		;IF VIDEO/PULSE MATRIX CP THEN\r
\r
\r
EST1:	LD	HL,QEMPTY	;BEGIN\r
	CALL	SUBDEQ		;  GET EMPTY BUFFER\r
	JR	C,EST2		;\r
	CALL	SCOMMON		;\r
	EI			;\r
	JR	EST1		;\r
EST2:	LD	(QEVBUF),DE	;  SAVE VIDEO BUFFER ADDRESS\r
	LD	IY,(QEVBUF)	;\r
	LD	IX,(QKEBUF)	;\r
	LD	A,(IX+3)	;  TRANSFER SOURCE AND DESTINATION\r
	LD	(IY+3),A	;  TO VIDEO BUFFER\r
	LD	A,(IX+4)	;\r
	LD	(IY+4),A	;\r
	LD	HL,(SPECSAV)	;\r
	LD	A,(HL)		;\r
	AND	0FCH		;\r
	LD	(IY+2),A	;  TRANSFER 1.BYTE OF CP SPEC. TO VIDEO BUF.\r
	BIT	5,A		;\r
	JR	Z,EST8		;  IF NO PULSE-CP THEN SKIP PULSE UPDATING\r
	BIT	2,A		;  ELSE\r
	JR	Z,EST4		;\r
	BIT	3,A		;\r
	JR	NZ,EST5		;\r
EST3:				;  BEGIN\r
	CALL	STMROUT		;    UPDATE PULSE IN ACCORDANCE WITH\r
	JR	EST8		;    STATUS OF STM, (T1) OR (T3)\r
				;  END ELSE\r
EST4:				;  BEGIN\r
	NOP			;    UPDATE PULSE IN ACCORDANCE WITH (T2)\r
	JR	EST8		;  END ELSE\r
EST5:				;  BEGIN\r
	LD	HL,CPSTAT+17	;\r
	LD	B,7		;\r
EST6:	LD	A,(HL)		;\r
	AND	7FH		;    MASK OUT ON AIR BIT\r
	CP	19		;\r
	JR	Z,EST7		;\r
	INC	HL		;\r
	DEC	B		;\r
	JR	NZ,EST6		;\r
	LD	A,(CPSTAT+66)	;\r
	AND	7FH		;    UPDATE PULSE IN ACCORDANCE WITH (T3)\r
	CP	19		;    EXCEPT IF STM HAS A ST5 INPUT AS\r
	JR	NZ,EST8		;    DESTINATION THEN\r
EST7:				;    BEGIN\r
	LD	A,(IY+2)	;\r
	AND	0F0H		;\r
	OR	04H		;      UPDATE PULSE IN ACCORDANCE WITH (T1)\r
	LD	(IY+2),A	;\r
				;    END\r
				;  END\r
				;\r
EST8:	LD	IY,(QEVBUF)	;\r
      	SET	0,(IY+2)	;  SET ESTABLISH-BIT\r
	LD	HL,QEV		;\r
	LD	DE,(QEVBUF)	;\r
	CALL	SUBENQ		;  SEND BUFFER TO VIDEO/PULSE MODULE\r
	ACTIVATE S,VIDEO	;\r
	LD	HL,ACKCNT	;\r
	INC	(HL)		;  INCREMENT ACKCOUNT\r
	JP	CRP1		;END\r
\r
;------------------------------------------------------------------------------\r
RELEASE	LD	A,(IX+3)\r
	CP	00H\r
	JP	Z,CRP20		;IF ALLREADY RELEASED, THEN SKIP RELEASING\r
\r
	LD	H,(IX+3)\r
	LD	L,(IX+4)\r
	CALL	CPSPEC		;GET ADDRESS OF 1.BYTE OF CP SPEC.\r
	LD	(SPECSAV),HL	;SAVE THE ADDRESS\r
\r
	LD	A,0FCH\r
	AND	(HL)\r
	JR	Z,CRP1		;IF VIDEO/PULSE MATRIX CP THEN\r
\r
\r
REL1:	LD	HL,QEMPTY	;BEGIN\r
	CALL	SUBDEQ		;  GET EMPTY BUFFER\r
	JR	C,REL2		;\r
	CALL	SCOMMON		;\r
	EI			;\r
	JR	REL1		;\r
REL2:	LD	(QEVBUF),DE	;  SAVE VIDEO BUFFER ADDRESS\r
	LD	IY,(QEVBUF)	;\r
	LD	IX,(QKEBUF)	;\r
	LD	A,(IX+3)	;  TRANSFER SOURCE AND DESTINATION\r
	LD	(IY+3),A	;  TO VIDEO BUFFER\r
	LD	A,(IX+4)	;\r
	LD	(IY+4),A	;\r
	LD	HL,(SPECSAV)	;\r
	LD	A,(HL)		;\r
	AND	0FCH		;\r
	LD	(IY+2),A	;  TRANSFER 1.BYTE OF CP SPEC. TO VIDEO-BUF.\r
	BIT	5,A		;\r
	JR	Z,REL4		;  IF NO PULSE CP THEN SKIP PULSE UPDATING\r
	BIT	2,A		;  ELSE\r
	JR	Z,REL3		;\r
	BIT	3,A		;\r
	JR	NZ,REL3		;  IF (T1)-INDICATION THEN\r
				;  BEGIN\r
	LD	A,(IY+2)	;\r
	OR	0CH		;\r
	LD	(IY+2),A	;    UPDATE TEMPORARY PULSE TO (T3)\r
				;\r
	CALL	STMROUT		;    UPDATE PULSE IN ACCORDANCE WITH\r
	JR	REL4		;    STATUS OF STM, (T1) OR (T3)\r
				;  END ELSE\r
REL3:				;  BEGIN\r
	LD	A,(IY+2)	;\r
	AND	0F0H		;\r
	OR	04H		;\r
	LD	(IY+2),A	;    UPDATE PULSE IN ACCORDANCE WITH (T1)\r
				;  END\r
				;\r
REL4:	LD	IY,(QEVBUF)	;\r
      	RES	0,(IY+2)	;  RESET ESTABLISH-BIT\r
	LD	HL,QEV		;\r
	LD	DE,(QEVBUF)	;\r
	CALL	SUBENQ		;  SEND BUFFER TO VIDEO/PULSE MODULE\r
	ACTIVATE S,VIDEO	;\r
	LD	HL,ACKCNT	;\r
	INC	(HL)		;  INCREMENT ACKCOUNT\r
				;END\r
\r
;------------------------------------------------------------------------------\r
;------------------------------------------------------------------------------\r
CRP1:	LD	IX,(SPECSAV)\r
	BIT	4,(IX+1)\r
	JR	Z,CRP6		;IF AUDIO/TIME CODE MATRIX CP THEN\r
				;BEGIN\r
CRP2:	LD	HL,QEMPTY	;\r
	CALL	SUBDEQ		;  GET EMPTY BUFFER\r
	JR	C,CRP3		;\r
	CALL	SCOMMON		;\r
	EI			;\r
	JR	CRP2		;\r
CRP3:	LD	(QEVBUF),DE	;  SAVE AUDIO BUFFER ADDRESS\r
	LD	IY,(QEVBUF)	;\r
	LD	IX,(QKEBUF)	;\r
	LD	A,(IX+3)	;  TRANSFER SOURCE AND DESTINATION\r
	LD	(IY+3),A	;  TO AUDIO BUFFER\r
	LD	A,(IX+4)	;\r
	LD	(IY+4),A	;\r
	BIT	7,(IX+2)	;\r
	JR	Z,CRP4		;\r
	LD	(IY+2),01H	;  SET/RESET ESTABLISH-BIT\r
	JR	CRP5		;  IN ACCORDANCE WITH COMMAND\r
CRP4:	LD	(IY+2),00H	;\r
				;\r
CRP5:	LD	HL,QEA		;\r
	LD	DE,(QEVBUF)	;\r
	CALL	SUBENQ		;  SEND BUFFER TO AUDIO/TIME CODE MODULE\r
	ACTIVATE S,AUDIO	;\r
	LD	HL,ACKCNT	;\r
	INC	(HL)		;  INCREMENT ACKCOUNT\r
				;END\r
;------------------------------------------------------------------------------\r
\r
CRP6:	PASSIVATE S,EXECUTE\r
	CALL	SCOMMON\r
	EI\r
	CALL	ACKROUT		;COLLECT ACK/NACK-REPLY'S\r
	LD	A,(ACKCNT)\r
	AND	0FFH	\r
	JR	NZ,CRP6\r
\r
	LD	A,(FLAG1)\r
	BIT	2,A		;IF CP ERROR-FLAG IS SET THEN\r
	JP	NZ,CRP16	;SKIP EXTRA CP CHECKING , ELSE\r
	LD	IX,(SPECSAV)\r
	BIT	0,(IX)\r
	JP	Z,CRP16		;IF EXTRA CP THEN\r
;------------------------------------------------------------------------------\r
				;BEGIN\r
CRP7:	LD	HL,QEMPTY	;\r
	CALL	SUBDEQ		;  GET EMPTY BUFFER\r
	JR	C,CRP8		;\r
	CALL	SCOMMON		;\r
	EI			;\r
	JR	CRP7		;\r
CRP8:	LD	(QEVBUF),DE	;  SAVE VIDEO BUFFER ADDRESS\r
	LD	IY,(QEVBUF)	;\r
	LD	IX,(SPECSAV)	;\r
	LD	A,(IX+2)	;\r
	LD	(IY+3),A	;  TRANSFER SOURCE AND DESTINATION\r
	LD	A,(IX+3)	;  TO VIDEO BUFFER\r
	LD	(IY+4),A	;\r
	LD	IX,(QKEBUF)	;\r
	BIT	7,(IX+2)	;\r
	JR	Z,CRP9		;  SET/RESET ESTABLISH-BIT\r
	LD	(IY+2),41H	;  IN ACCORDANCE WITH COMMAND\r
	JR	CRP10		;\r
CRP9:	LD	(IY+2),40H	;\r
				;\r
CRP10:	LD	HL,QEV		;\r
	LD	DE,(QEVBUF)	;\r
	CALL	SUBENQ		;  SEND BUFFER TO VIDEO/PULSE MODULE\r
	ACTIVATE S,VIDEO	;\r
	LD	HL,ACKCNT	;\r
	INC	(HL)		;  INCREMENT ACKCOUNT\r
CRP11:	LD	HL,QEMPTY	;\r
	CALL	SUBDEQ		;  GET EMPTY BUFFER\r
	JR	C,CRP12		;\r
	CALL	SCOMMON		;\r
	EI			;\r
	JR	CRP11		;\r
CRP12:	LD	(QEVBUF),DE	;  SAVE AUDIO BUFFER ADDRESS\r
	LD	IY,(QEVBUF)	;\r
	LD	IX,(SPECSAV)	;\r
	LD	A,(IX+2)	;\r
	LD	(IY+3),A	;  TRANSFER SOURCE AND DESTINATION\r
	LD	A,(IX+3)	;  TO AUDIO BUFFER\r
	LD	(IY+4),A	;\r
	LD	IX,(QKEBUF)	;\r
	BIT	7,(IX+2)	;\r
	JR	Z,CRP13		;  SET/RESET ESTABLISH-BIT\r
	LD	(IY+2),01H	;  IN ACCORDANCE WITH COMMAND\r
	JR	CRP14		;\r
CRP13:	LD	(IY+2),00H	;\r
				;\r
CRP14:	LD	HL,QEA		;\r
	LD	DE,(QEVBUF)	;\r
	CALL	SUBENQ		;  SEND BUFFER TO AUDIO/TIME CODE MODULE\r
	ACTIVATE S,AUDIO	;\r
	LD	HL,ACKCNT	;\r
	INC	(HL)		;  INCREMENT ACKCOUNT\r
				;\r
CRP15:	PASSIVATE S,EXECUTE\r
	CALL	SCOMMON\r
	EI			\r
	CALL	ACKROUT		;  COLLECT ACK/NACK-REPLY'S\r
	LD	A,(ACKCNT)	\r
	AND	0FFH		\r
	JR	NZ,CRP15	;END\r
\r
;------------------------------------------------------------------------------\r
CRP16:	LD	A,(FLAG1)\r
	BIT	7,A\r
	JP	NZ,CRP21	;IF NACK-FLAG IS NOT SET THEN\r
				;BEGIN\r
	BIT	2,A		;\r
	JR	NZ,CRP19	;  IF CP ERROR-FLAG IS NOT SET THEN\r
				;\r
				;  BEGIN\r
	LD	IX,(QKEBUF)	;\r
	SET	6,(IX+2)	;    SET ACK-BIT IN BUFFER\r
				;\r
	CALL	BUFTEMP		;    ENQUE REPLY-BUFFER IN TEMPORARY QUEUE\r
				;\r
	LD	IX,(QKEBUF)	;\r
	BIT	7,(IX+2)	;\r
	CALL	Z,ATROAR	;    IF RELEASE COMMAND THEN CALL\r
				;    ATR RELEASE CHECK SUBROUTINE\r
	LD	HL,CPSTAT-1	;\r
	LD	B,0		;\r
	LD	C,(IX+4)	;\r
	ADD	HL,BC		;\r
	LD	A,(HL)		;\r
	AND	80H		;    SAVE ON AIR-BIT\r
	BIT	7,(IX+2)	;    UPDATE STATUS TABLE WITH SOURCE/RELEASE\r
	JR	Z,CRP17		;\r
	LD	D,(IX+3)	;\r
	OR	D		;\r
	LD	(HL),A		;\r
	JR	CRP18		;\r
CRP17:	LD	(HL),A		;\r
				;\r
CRP18:	BIT	7,(IX+2)	;\r
	JR	Z,CRP22		;    IF ESTABLISH COMMAND THEN\r
				;    BEGIN\r
	LD	A,(IX+3)	;\r
	LD	(SRCEBUF),A	;      SAVE SOURCE NO.\r
	LD	A,(IX+4)	;\r
	LD	(DESTBUF),A	;      SAVE DESTINATION NO.\r
	CALL	OAROUT		;      CALL ON AIR SUBROUTINE\r
	JR	CRP22		;    END\r
				;  END\r
				;  ELSE\r
CRP19:				;  BEGIN\r
	LD	IX,(QKEBUF)	;    CALL ATR RELEASE CHECK SUBROUTINE\r
	CALL	ATROAR		;\r
	LD	HL,CPSTAT-1	;\r
	LD	B,0		;\r
	LD	C,(IX+4)	;\r
	ADD	HL,BC		;    UPDATE STATUS TABLE WITH RELEASE\r
	LD	A,(HL)		;\r
	AND	80H		;    SAVE ON AIR-BIT\r
	LD	(HL),A		;\r
	LD	HL,ECOND2	;\r
	SET	1,(HL)		;    SET DEVICE CONTROL ERROR BIT\r
	BIT	7,(IX+2)	;\r
	JR	Z,CRP20		;    IF ESTABLISH COMMAND THEN\r
				;    BEGIN\r
	LD	HL,FLAG1	;\r
	RES	2,(HL)		;      RESET CP ERROR-FLAG\r
	SET	7,(HL)		;      SET NACK-FLAG\r
	RES	7,(IX+2)	;      CONVERT TO RELEASE-COMMAND\r
	JR	CRP22		;    END ELSE\r
CRP20:				;    BEGIN\r
	RES	6,(IX+2)	;      RESET ACK-BIT IN BUFFER\r
				;\r
	CALL	BUFTEMP		;      ENQUE REPLY-BUFFER IN TEMPORARY QUEUE\r
				;\r
	JR	CRP22		;    END\r
				;  END\r
				;END\r
				;ELSE\r
CRP21:				;BEGIN\r
	LD	IX,(QKEBUF)	;\r
	SET	7,(IX+2)	;  RE-ESTABLISH COMMAND BYTE IN BUFFER\r
	RES	6,(IX+2)	;  RESET ACK-BIT IN BUFFER\r
				;\r
	CALL	BUFTEMP		;  ENQUE REPLY-BUFFER IN TEMPORARY QUEUE\r
				;\r
	JR	CRP22		;END\r
;------------------------------------------------------------------------------\r
CRP22:	LD	IX,(QKEBUF)\r
	LD	A,(FLAG1)\r
	BIT	7,A\r
	JP	NZ,ESTREL	;IF NACK-FLAG IS SET GOTO ESTREL AGAIN\r
	JP	START\r
\r
\r
\r
\r
\r
*******************************************************************************\r
*******************************************************************************\r
*                           LISTEN  ROUTINE                                   *\r
*******************************************************************************\r
LISTEN:	LD	HL,QEMPTY\r
	CALL	SUBDEQ		;GET EMPTY BUFFER\r
	JR	C,L2\r
	CALL	SCOMMON\r
	EI\r
	JR	LISTEN\r
L2:	LD	(QEVBUF),DE	;SAVE AUDIO BUFFER ADDRESS\r
	LD	IY,(QEVBUF)	\r
	LD	IX,(QKEBUF)\r
	LD	A,(IX+3)	;TRANSFER SOURCE AND DESTINATION\r
	LD	(IY+3),A	;TO AUDIO BUFFER\r
	LD	A,(IX+4)\r
	LD	(IY+4),A\r
	LD	(IY+2),80H	;SET LISTEN-BIT IN BUFFER\r
	LD	HL,QEA\r
	LD	DE,(QEVBUF)\r
	CALL	SUBENQ		;SEND BUFFER TO AUDIO/TIME CODE MODULE\r
	ACTIVATE S,AUDIO\r
	LD	HL,ACKCNT\r
	INC	(HL)		;INCREMENT ACKCOUNT\r
	JR	WAIT		;GOTO WAIT-ROUTINE\r
\r
\r
\r
\r
\r
*******************************************************************************\r
*******************************************************************************\r
*                            TEST  ROUTINE                                    *\r
*******************************************************************************\r
TEST:	LD	HL,QEMPTY\r
	CALL	SUBDEQ		;GET EMPTY BUFFER\r
	JR	C,TS2\r
	CALL	SCOMMON\r
	EI\r
	JR	TEST\r
TS2:	LD	(QEVBUF),DE	;SAVE VIDEO BUFFER ADDRESS\r
	LD	IY,(QEVBUF)\r
	LD	IX,(QKEBUF)\r
	LD	A,(IX+2)	;GET COMMAND BYTE FROM INCOMING BUFFER\r
	CP	04H\r
	JR	Z,ST5TST	;GOTO ST5TEST-ROUTINE\r
	CP	02H\r
	JR	Z,CNRTST	;GOTO CNRTEST-ROUTINE\r
\r
STMTST:				;BEGIN\r
	LD	HL,CPSTAT+17	;\r
	LD	BC,7		;\r
	LD	A,19		;\r
	CPIR			;\r
	JR	Z,CNRTST	;\r
	LD	HL,CPSTAT+66	;\r
	CP	(HL)		;  IF STM HAS A ST5 INPUT AS DESTINATION\r
	JR	Z,CNRTST	;  THEN GOTO CNRTEST-ROUTINE(T1) , ELSE\r
	LD	(IY+2),2CH	;  UPDATE PULSE IN ACCORDANCE WITH (T3)\r
	JR	T1		;END\r
\r
CNRTST:				;BEGIN\r
	LD	(IY+2),24H	;  UPDATE PULSE IN ACCORDANCE WITH (T1)\r
	JR	T1		;END\r
\r
ST5TST:				;BEGIN\r
	LD	(IY+2),28H	;  UPDATE PULSE IN ACCORDANCE WITH (T2)\r
				;END\r
\r
T1:	LD	(IY+3),30	;INSERT SOURCE = TEST\r
	LD	(IY+4),00H	;INSERT DUMMY DESTINATION\r
	LD	HL,QEV\r
	LD	DE,(QEVBUF)\r
	CALL	SUBENQ		;SEND BUFFER TO VIDEO/PULSE MODULE\r
	ACTIVATE S,VIDEO\r
	LD	HL,ACKCNT\r
	INC	(HL)		;INCREMENT ACKCOUNT\r
\r
;------------------------------------------------------------------------------\r
WAIT:	PASSIVATE S,EXECUTE\r
	CALL	SCOMMON\r
	EI\r
	CALL	ACKROUT		;COLLECT ACK/NACK-REPLY'S\r
	LD	A,(ACKCNT)\r
	AND	0FFH\r
	JR	NZ,WAIT\r
\r
	LD	A,(FLAG1)\r
	BIT	2,A\r
	JR	NZ,W1		;IF CP ERROR-FLAG IS NOT SET THEN\r
				;BEGIN\r
	LD	IX,(QKEBUF)	;\r
	SET	6,(IX+2)	;  SET ACK-BIT IN BUFFER\r
	JR	W2		;END ELSE\r
W1:				;BEGIN\r
	LD	IX,(QKEBUF)	;\r
	RES	6,(IX+2)	;  RESET ACK-BIT IN BUFFER\r
	LD	HL,ECOND2	;\r
	SET	1,(HL)		;  SET DEVICE CONTROL ERROR-BIT\r
				;END\r
W2:	CALL	BUFTEMP		;ENQUE REPLY-BUFFER IN TEMPORARY QUEUE\r
	JP	START		;GOTO START\r
\r
\r
\r
\r
\r
*******************************************************************************\r
*******************************************************************************\r
*                          ON AIR ROUTINE                                     *\r
*******************************************************************************\r
ONAIR:	LD	HL,QEMPTY\r
	CALL	SUBENQ		;RETURN BUFFER TO EMPTY BUFFER QUEUE\r
	LD	A,(IX+3)\r
	LD	(SRCEBUF),A	;SAVE SOURCE NO.\r
	LD	A,(IX+4)\r
	LD	(DESTBUF),A	;SAVE DSETINATION NO.\r
        CALL	OAROUT		;CALL ON AIR SUBROUTINE\r
	JP	START		;GOTO START\r
\r
*******************************************************************************\r
*******************************************************************************\r
*                        DISPLAY UPDATING ROUTINE                             *\r
*******************************************************************************\r
DISUPD:	LD	BC,0\r
UPD1:	INC	BC\r
	LD	A,86\r
	CP	C\r
	JP	Z,START		;WHILE MORE DISPLAYS LEFT DO\r
				;BEGIN\r
	PUSH	BC		;\r
UPD2:	LD	HL,QEMPTY	;\r
	CALL	SUBDEQ		;  GET EMPTY BUFFER\r
	JR	C,UPD3		;\r
	CALL	SCOMMON		;\r
	EI			;\r
	JR	UPD2		;\r
UPD3:	PUSH	DE		;\r
	POP	IX		;\r
	POP	BC		;\r
	LD	HL,CPSTAT-1	;\r
	ADD	HL,BC		;\r
	LD	A,(HL)		;  GET SOURCE NO. FROM CURRENT DESTINATION\r
	AND	7FH		;\r
	LD	(IX+3),A	;  TRANSFER SOURCE NO. TO BUFFER\r
	LD	(IX+4),C	;  TRANSFER DESTINATION NO. TO BUFFER\r
	JR	Z,UPD4		;\r
	LD	A,0D0H		;  COMMAND BYTE IF SOURCE NO. NOT RELEASE\r
	JR	UPD5		;\r
UPD4:	LD	A,10H		;  COMMAND BYTE IF SOURCE NO. = RELEASE\r
UPD5:	LD	(IX+2),A	;  TRANSFER COMMAND BYTE TO BUFFER\r
	PUSH	BC		;\r
	LD	HL,QEK		;\r
	CALL	SUBENQ		;  SEND BUFFER TO KEYBOARD MODULE\r
	ACTIVATE S,PANEL	;\r
	POP	BC		;\r
	JR	UPD1		;END\r
\r
*******************************************************************************\r
\r
;------------------------------------------------------------------------------\r
;                     	   SPECIAL SUBROUTINES :                               \r
;------------------------------------------------------------------------------\r
\r
\r
;BUFTEMP:	SUBROUTINE, WHICH IS ENQUEING REPLY-BUFFERS IN TEMPORARY QUEUE\r
\r
BUFTEMP	LD	DE,(QKEBUF)\r
	LD	HL,QTEMP\r
	CALL	SUBENQ		;ENQUE REPLY-BUFFER IN TEMPORARY QUEUE\r
	LD	A,0\r
	LD	(ACKCNT),A	;CLEAR ACKCOUNT\r
	LD	HL,FLAG1\r
	LD	(HL),A		;CLEAR CP ERROR-FLAG + NACK-FLAG\r
	RET\r
\r
\r
\r
;------------------------------------------------------------------------------\r
;ACKROUT:	SUBROUTINE, WHICH IS COLLECTING REPLY-BUFFERS FROM AUDIO/TIME-\r
;		CODE AND VIDEO/PULSE MATRIX MODULES.\r
\r
ACKROUT	LD	HL,QME\r
	CALL	SUBDEQ		;DEQUE BUFFER\r
	RET	NC		;WHILE BUFFERS LEFT IN QUEUE DO\r
				;BEGIN\r
	PUSH	DE		;\r
	POP	IX		;\r
	BIT	0,(IX+2)	;\r
	JR	NZ,A1		;\r
	LD	HL,FLAG1	;\r
	SET	2,(HL)		;  IF NACK-REPLY THEN SET CP ERROR-FLAG\r
A1:	LD	HL,QEMPTY	;\r
	CALL	SUBENQ		;  RETURN BUFFER TO EMPTY BUFFER QUEUE\r
	LD	HL,ACKCNT	;\r
	DEC	(HL)		;  DECREMENT ACKCOUNT\r
	JR	ACKROUT		;END\r
\r
\r
\r
;------------------------------------------------------------------------------\r
;STMROUT:	SUBROUTINE, WHICH CHECKS IF SOURCE = STM. \r
;		IF NOT, PULSE TYPE (T1) IS SEND TO THE SOURCE IN QUESTION.\r
;		IF YES, IT WILL CHECK, IF ANY SOURCES HAS STM AS DESTINATION,\r
;		AND IF YES AGAIN, THE PULSE TYPE OF STM WILL BE SENT OUT TO \r
;		THEM.\r
\r
STMROUT	LD	A,(IY+3)\r
	CP	19\r
	JR	Z,S1		;IF STM IS NOT SOURCE THEN\r
				;BEGIN\r
	LD	A,(IY+2)	;\r
	AND	0F3H		;\r
	OR	04H		;  UPDATE PULSE IN ACCORDANCE WITH (T1)\r
	LD	(IY+2),A	;\r
	RET			;END ELSE\r
\r
S1:	LD	HL,CPSTAT+24	;BEGIN\r
	LD	(STMBUF),HL	;\r
	LD	A,3		;\r
	LD	(CNTBUF),A	;  WHILE STM-DESTINATIONS 25-27 THEN\r
				;  BEGIN\r
S11:	CALL	SCHECK		;\r
	LD	HL,STMBUF	;\r
	INC	(HL)		;    CHECK TYPE OF SOURCE\r
	LD	HL,CNTBUF	;\r
	DEC	(HL)		;\r
	JR	NZ,S11		;  END\r
				;\r
	LD	HL,CPSTAT+71	;\r
	LD	(STMBUF),HL	;\r
	LD	A,6		;\r
	LD	(CNTBUF),A	;  WHILE STM-DESTINATIONS 72-77 THEN\r
				;  BEGIN\r
S21:	CALL	SCHECK		;\r
	LD	HL,STMBUF	;\r
	INC	(HL)		;    CHECK TYPE OF SOURCE\r
	LD	HL,CNTBUF	;\r
	DEC	(HL)		;\r
	JR	NZ,S21		;  END\r
				;\r
				;\r
	LD	BC,PORT20	;\r
	IN	A,(C)		;\r
	AND	07H		;\r
	CP	06H		;\r
	RET	NZ		;  IF TEST-PULSES FOLLOW STM THEN\r
				;  BEGIN\r
	LD	A,30		;    (A) = TEST-SOURCE NO. (ENTRY TO PULSOUT)\r
	CALL	PULSOUT		;    COPY PULSE-TYPE OF STM TO TEST-SIGNAL\r
				;  END\r
	RET			;END\r
\r
\r
SCHECK:	LD	HL,(STMBUF)\r
       	LD	A,(HL)\r
	AND	7FH\r
	CP	1\r
	RET	C\r
	CP	16		;CHECK IF THE SOURCE IS ONE OF THE RELEVANT\r
	CALL	C,PULSOUT	;SOURCES 1-15 AND CALL PULSOUT IF YES\r
	RET	C\r
\r
	CP	27\r
	RET	C\r
	CP	29		;CHECK IF THE SOURCE IS ONE OF THE RELEVANT\r
	CALL	C,PULSOUT	;SOURCES 27,28 AND CALL PULSOUT IF YES\r
	RET	C\r
\r
	CP	31\r
	RET	C\r
	CP	36		;CHECK IF THE SOURCE IS ONE OF THE RELEVANT\r
	CALL	C,PULSOUT	;SOURCES 31-35 AND CALL PULSOUT IF YES\r
	RET\r
\r
\r
PULSOUT	LD	(SRCEBUF),A	;SAVE SOURCE NO.\r
P1:     LD	HL,QEMPTY\r
	CALL	SUBDEQ		;GET EMPTY BUFFER\r
	JR	C,P2\r
	CALL	SCOMMON\r
	EI\r
	JR	P1\r
P2:	EX	DE,HL\r
	INC	HL\r
	INC	HL\r
	LD	IY,(QEVBUF)\r
	LD	A,(IY+2)\r
	AND	2CH		;TRANSFER PULSE-CARACTERISTICS\r
	LD	(HL),A		;OF STM TO VIDEO BUFFER\r
	INC	HL		\r
	LD	A,(SRCEBUF)\r
	LD	(HL),A		;TRANSFER SOURCE-NO. TO VIDEO BUFFER\r
	INC	HL\r
	LD	(HL),00H	;DUMMY DESTINATION\r
	LD	DE,4\r
	AND	A\r
	SBC	HL,DE\r
	EX	DE,HL		;(DE)=BUFFER-STARTADDRESS\r
	LD	HL,QEV\r
	CALL	SUBENQ		;SEND BUFFER TO VIDEO/PULSE MODULE\r
	ACTIVATE S,VIDEO\r
	LD	HL,ACKCNT\r
	INC	(HL)		;INCREMENT ACKCOUNT\r
	SCF	    		;SET CARRY-FLAG\r
	RET\r
\r
\r
\r
;------------------------------------------------------------------------------\r
;ATROAR :	SUBROUTINE, WHICH IS CHECKING IF AN ATR SOURCE IS RELEASED\r
;		FROM ONE OF THE DESTINATIONS 41-46 AND IF YES, THEN RESETS\r
;		THE ON AIR INDICATION FOR THE ATR CONCERNED.\r
\r
ATROAR:	LD	A,(IX+4)\r
	CP	41\r
	RET	C\r
	CP	47\r
	RET	NC\r
	LD	HL,CPSTAT-1\r
	LD	B,0\r
	LD	C,A\r
	ADD	HL,BC\r
	LD	A,(HL)\r
	AND	7FH\r
	CP	36\r
	JR	Z,ATR1\r
	CP	37\r
	JR	Z,ATR2\r
	RET\r
ATR1:	LD	BC,PORT68\r
	IN	A,(C)\r
	SET	6,A		;RESET ATR1 ON AIR INDICATION\r
	OUT	(C),A\r
	RET\r
ATR2:	LD	BC,PORT68\r
	IN	A,(C)\r
	SET	7,A		;RESET ATR2 ON AIR INDICATION\r
	OUT	(C),A\r
	RET\r
\r
\r
\r
;------------------------------------------------------------------------------\r
;OAROUT:	SUBROUTINE, WHICH IN CASE OF DESTINATIONS 41-46 AND SOURCES\r
;		36,37(ATR'S) IS COPYING THE ON/OFF AIR-INDICATION OF THE DESTI-\r
;		NATION TO THE ATR CONCERNED.\r
;		IN CASE OF AN ON AIR-INDICATION FOR ONE OF THE DESTINATIONS\r
;		18-31,41-46,69-71 WHICH IN ADDITION HAS A VIDEO SOURCE(1-12)\r
;		CONNECTED, THE SUBROUTINE CHECKS, IF ANY TEXTGENERATORS IS CON-\r
;		NECTED TO THE MIXER IN QUESTION AND IF YES , A BUFFER IS ENQUED\r
;		IN INCOMING QUEUE INDICATING THAT A CP IS TO BE ESTABLISHED,\r
;		TRANSFERRING THE TIME CODE OF THE VIDEO SOURCE CONCERNED TO THE\r
;		TEXTGENERATOR(S) CONCERNED.\r
\r
OAROUT:	LD	A,(DESTBUF)	;\r
	CP	41		;\r
	JR	C,R4A		;\r
	CP	47		;\r
	JR	NC,R4A		;\r
				;\r
	LD	HL,CPSTAT-1	;\r
	LD	B,0		;IF ONE OF DESTINATIONS 41-46 AND\r
	LD	A,(DESTBUF)	;IF ONE THE SOURCES 36,37 THEN\r
	LD	C,A		;\r
	ADD	HL,BC		;\r
	LD	A,(HL)		;\r
	LD	B,A		;\r
	AND	7FH		;\r
	CP	36		;\r
	JR	Z,R1		;\r
	CP	37		;\r
	JR	NZ,R4A		;\r
				;BEGIN\r
R1:	LD	A,B		;  GET SOURCE FROM TABLE\r
	LD	BC,PORT68	;\r
	BIT	7,(HL)		;\r
	JR	Z,OARES		;  IF ON AIR-INDICATION THEN\r
OASET:	AND	7FH		;  BEGIN\r
	CP	36		;\r
	JR	NZ,R2		;\r
	IN	A,(C)		;\r
	RES	6,A		;    SET ATR1 ON AIR-INDIC.\r
	OUT	(C),A		;\r
	RET			;    ELSE\r
R2:	IN	A,(C)		;\r
	RES	7,A		;    SET ATR2 ON AIR-INDIC.\r
	OUT	(C),A		;\r
	RET			;  END ELSE\r
OARES:	AND	7FH		;  BEGIN\r
	CP	36		;\r
	JR	NZ,R3		;\r
	IN	A,(C)		;\r
	SET	6,A		;    SET ATR1 OFF AIR-INDIC.\r
	OUT	(C),A		;\r
	RET			;    ELSE\r
R3:	IN	A,(C)		;\r
	SET	7,A		;    SET ATR2 OFF AIR-INDIC.\r
	OUT	(C),A		;\r
	RET			;  END\r
				;END ELSE\r
\r
R4A:	LD	HL,TXTTAB\r
	LD	BC,8\r
	LD	A,(DESTBUF)\r
	CPIR\r
	JR	NZ,R4B		;IF NO MIXER(TEXTGEN) DESTINATION GOTO R4B\r
	LD	A,1\r
	CP	C\r
	JR	NC,CNR2MX	;IF CNR2(TEXTGEN) DESTINATION GOTO CNR2MX\r
	LD	A,3\r
	CP	C\r
	JR	NC,CNR1MX	;IF CNR1(TEXTGEN) DESTINATION GOTO CNR1MX\r
	LD	A,5\r
	CP	C\r
	JR	NC,STMMX	;IF STM(TEXTGEN) DESTINATION GOTO STMMX\r
				;ELSE\r
ST5MX:	LD	HL,ST5TAB\r
	LD	C,10		;CHECK IF VIDEO SOURCE(1-12) IS\r
	CALL	VIROUT		;COUPLED TO THE MIXER AND\r
	JR	NZ,R4B		;GOTO R4B IF YES\r
	RET\r
STMMX:	LD	HL,STMTAB\r
	LD	C,3		;CHECK IF VIDEO SOURCE(1-12) IS\r
	CALL	VIROUT		;COUPLED TO THE MIXER AND\r
	JR	NZ,R4B		;GOTO R4B IF YES\r
	RET\r
CNR1MX:	LD	HL,CNR1TAB\r
	LD	C,5		;CHECK IF VIDEO SOURCE(1-12) IS\r
	CALL	VIROUT		;COUPLED TO THE MIXER AND\r
	JR	NZ,R4B		;GOTO R4B IF YES\r
	RET\r
CNR2MX:	LD	HL,CNR2TAB\r
	LD	C,5		;CHECK IF VIDEO SOURCE(1-12) IS\r
	CALL	VIROUT		;COUPLED TO THE MIXER AND\r
	JR	NZ,R4B		;GOTO R4B IF YES\r
	RET\r
\r
VIROUT:	LD	D,0\r
	LD	E,(HL)\r
	PUSH	HL\r
	LD	HL,CPSTAT-1\r
	ADD	HL,DE\r
	LD	A,(HL)\r
	LD	B,A\r
	AND	7FH\r
	POP	HL\r
	JR	Z,VI1\r
	CP	13\r
	JR	NC,VI1\r
	BIT	7,B\r
	JR	Z,VI1\r
	LD	A,E		;IF ON AIR DESTINATION IS FOUND THEN\r
	LD	(DESTBUF),A	;CONTINUE ON AIR SUBROUTINE WITH NEW DESTIN.\r
	RET			;RETURN IF VIDEO SOURCE FOUND(Z-FLAG RESET)\r
VI1:	INC	HL\r
	DEC	C\r
	JR	NZ,VIROUT\r
	RET			;RETURN IF VIDEO SOURCE NOT FOUND(Z-FLAG SET)\r
\r
\r
R4B:				;BEGIN\r
	LD	HL,CPSTAT-1	;\r
	LD	B,0		;\r
	LD	A,(DESTBUF)	;\r
	LD	C,A		;\r
	ADD	HL,BC		;\r
	LD	A,(HL)		;\r
	BIT	7,A		;\r
	RET	Z		;  IF DESTINATION IS ON AIR THEN\r
				;  BEGIN\r
	AND	7FH		;\r
	CP	1		;\r
	RET 	C		;\r
	CP	13		;    IF THE SOURCE IS ONE OF THE \r
	RET	NC		;    VIDEO SOURCES 1-12 THEN\r
				;    BEGIN\r
	LD	(SRCEBUF),A	;      SAVE VIDEO SOURCE NO.\r
	LD	A,(DESTBUF)	;\r
	LD	HL,ST5TAB	;\r
	LD	E,63		;\r
	LD	BC,10		;      IF DEST. IS ONE OF THE ST5-DESTINATIONS\r
	CPIR			;      18-24,69-71 THEN CALL TXTROUT SUBROUTINE\r
	CALL	Z,TXTROUT	;      (E) = NO. OF TXT3-INPUT\r
	RET	Z		;\r
				;\r
	LD	E,76		;\r
	LD	BC,3		;      IF DEST. IS ONE OF THE STM-DESTINATIONS\r
	CPIR			;      25-27 THEN CALL TXTROUT SUBROUTINE\r
	CALL	Z,TXTROUT	;      (E) = NO. OF TXT3-INPUT\r
	RET	Z		;\r
				;\r
	LD	E,80		;\r
	LD	BC,5		;      IF DEST. IS ONE OF THE CNR1-DESTINATIONS\r
	CPIR			;      28-29,41-43 THEN CALL TXTROUT SUBROUTINE\r
	CALL	Z,TXTROUT	;      (E) = NO. OF TXT3-INPUT\r
	RET	Z		;\r
				;\r
	LD	E,84		;\r
	LD	BC,5		;      IF DEST. IS ONE OF THE CNR2-DESTINATIONS\r
	CPIR			;      30-31,44-46 THEN CALL TXTROUT SUBROUTINE\r
	CALL	Z,TXTROUT	;      (E) = NO. OF TXT3-INPUT\r
				;    END\r
				;  END\r
	RET			;END\r
\r
\r
TXTROUT	LD	HL,CPSTAT-1\r
	LD	D,0\r
	ADD	HL,DE\r
	LD	(QEVBUF),HL\r
	LD	A,58		;(A) = TXT3-FEEDBACK LINE NO.\r
	LD	(DESTBUF),A	;SAVE TXTGEN3. NO.\r
	LD	A,(HL)\r
	AND	7FH		;IF TXT3-GEN. IS CONNECTED TO THE MIXER\r
	CP   	33		;CONCERNED THEN SEND ESTABLISH-BUFFER\r
	CALL	Z,ENQUE		;TO INCOMING QUEUE WITH DEST. = 58\r
	LD	A,59		;(A) = TXT4-FEEDBACK LINE NO.\r
	LD	(DESTBUF),A	;SAVE TXTGEN4. NO.\r
	LD	HL,(QEVBUF)\r
	INC	HL\r
	LD	A,(HL)\r
	AND	7FH		;IF TXT4-GEN. IS CONNECTED TO THE MIXER\r
	CP	34		;CONCERNED THEN SEND ESTABLISH-BUFFER\r
	CALL	Z,ENQUE		;TO INCOMING QUEUE WITH DEST. = 59\r
	LD	A,00H\r
	AND	0FFH		;SET ZERO-FLAG\r
	RET\r
\r
\r
ENQUE:	LD	HL,DESTBUF\r
	LD	B,0\r
	LD	C,(HL)\r
	LD	HL,CPSTAT-1\r
	ADD	HL,BC\r
	LD	A,(HL)\r
	AND	7FH\r
	LD	HL,SRCEBUF\r
	CP	(HL)\r
	RET	Z		;RETURN IF ALLREADY ESTABLISHED\r
				;ELSE\r
EN1:    LD	HL,QEMPTY	;BEGIN\r
	CALL	SUBDEQ		;  GET EMPTY BUFFER\r
	JR	C,EN2		;\r
	CALL	SCOMMON		;\r
	EI			;\r
	JR	EN1		;\r
EN2:	PUSH	DE		;\r
	POP	IY		;\r
	LD	(IY+2),80H	;  SET ESTABLISH-BIT\r
	LD	A,(SRCEBUF)	;\r
	LD	(IY+3),A	;  SOURCE = VIDEO SOURCE NO.\r
	LD	A,(DESTBUF)	;\r
	LD	(IY+4),A	;  DESTINATION = TXTGEN. NO.\r
	LD	HL,QKE		;\r
	CALL	SUBENQ		;  ENQUE BUFFER IN INCOMING QUEUE\r
	RET			;END\r
\r
\r
\r
\r
ST5TAB	DB	18\r
	DB	19\r
	DB	20\r
	DB	21\r
	DB	22\r
	DB	23\r
	DB	24\r
	DB	69\r
	DB	70\r
	DB	71\r
STMTAB	DB	25\r
	DB	26\r
	DB	27\r
CNR1TAB	DB	28\r
	DB	29\r
	DB	41\r
	DB	42\r
	DB	43\r
CNR2TAB	DB	30\r
	DB	31\r
	DB	44\r
	DB	45\r
	DB	46\r
\r
\r
TXTTAB	DB	63\r
	DB	64\r
	DB	76\r
	DB	77\r
	DB	80\r
	DB	81\r
	DB	84\r
	DB	85\r
\r
\r
\r
	DSEG\r
FLAG1	DS	1\r
ACKCNT	DS	1\r
CNTBUF	DS	1\r
SRCEBUF	DS	1\r
DESTBUF	DS	1\r
QKEBUF	DS	2\r
QEVBUF	DS	2\r
SPECSAV	DS	2\r
STMBUF	DS	2\r
	DS	64\r
STAC09:\r
	\r
	END\r