DataMuseum.dkPresents historical artifacts from the history of: CR80 Hard and Floppy Disks |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CR80 Hard and Floppy Disks Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 29832 (0x7488) Types: TextFile Names: »INSPEC.SRC«
└─⟦af81bc460⟧ Bits:30005550 8" CR80 Floppy CR80FD_0034 ( MATRIX Source and Abs-files ) └─⟦af81bc460⟧ Intel_ISIS_II └─ ⟦this⟧ »INSPEC.SRC«
\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 \r LESTAB MACRO #PRNUM\r LD BC,#PRNUM\r CALL ESTABR\r ENDM\r \r LSUSPN MACRO #PRNUM\r LD BC,#PRNUM\r CALL SUSPND\r ENDM\r \r GESTAM MACRO\r LD HL,ONOFF\r LD (HL),0FFH\r ENDM\r \r GSUSPM MACRO\r LD HL,ONOFF\r LD (HL),0\r ENDM\r \r UPDATM MACRO #PRNUM,#NO\r LD HL,DELAY+#PRNUM\r LD (HL),#NO\r ENDM\r \r IDEPAS MACRO\r NOP\r ENDM\r \r OGEPAS MACRO #NO\r NOP\r ENDM\r \r ODEPAS MACRO #NO\r NOP\r ENDM\r \r OGEPAC MACRO \r NOP\r ENDM\r \r ODEPAC MACRO\r NOP\r ENDM\r \r OGEPA MACRO #NO\r NOP\r ENDM\r \r ODEPA MACRO #NO\r NOP\r ENDM\r \r LIST S\r ;******************************************************************************\r ;* *\r ;* D O R A A P P L I C A T I O N S / W *\r ;* *\r ;* DEVICE: MATRIX *\r ;* *\r ;* MODULE: INSPECTION PROCESS *\r ;* *\r ;******************************************************************************\r \r PUBLIC SCANPR,CNTPULS,STAC10\r EXTRN CONDIT,ECOND2,PRTSAV,TAB2PX,PXPORT,TAB3VX,DELAY\r EXTRN ESTABR,SYSRAM,CDCONT,TAB1VX,VXT1CK,TABVID,SCOMMON\r EXTRN VXCREC,VXCKCO,VXCSEN,TAB2VX,VXPORT,VXAID,TABTFK\r EXTRN QAQEST,QUEST,QEMPTY,SUBDEQ,SUBENQ\r EXTRN QXI,QIX,QKE,INVEST\r \r LINK DEFL 0\r INSPNR DEFL 10\r PORT22 DEFL 4042H\r PORT33 DEFL 0022H\r PORT34 DEFL 0024H\r PORT42 DEFL 4040H\r PORT43 DEFL 4048H\r PORT44 DEFL 0042H\r PORT45 DEFL 004AH\r PORT46 DEFL 4041H\r PORT47 DEFL 4044H\r PORT48 DEFL 0044H\r PORT67 DEFL 4028H\r PORT68 DEFL 4024H\r \r \r CSEG\r SCANPR: LD SP,STAC10 ;INITIALIZE STACKPOINTER\r \r CALL SCOMMON\r EI\r \r *******************************************************************************\r ; MATRIX I/F INITIALIZATION :\r *******************************************************************************\r UPDATM 10,5 ;UPDATE PAUSE-DELAY\r VID0: LD HL,DSTCNT\r LD A,60\r LD (HL),A ;INITIALIZE VIDEO DESTINATION COUNTER\r LD HL,TFKCNT\r LD A,60\r LD (HL),A ;INITIALIZE TFK DESTINATION COUNTER\r \r VID1: LD HL,DSTCNT\r DEC (HL) ;IF ALL VIDEO DESTINATION HAVE BEEN\r JR Z,VIDEND ;RUNNED THROUGH THEN SKIP\r ;ELSE\r LD D,0\r LD E,(HL)\r LD HL,VXT1CK\r ADD HL,DE\r LD A,(HL)\r CP 0\r JR Z,VID1 ;IF NON VALID VIDEO DEST. THEN TRY NEXT ONE\r PUSH AF ;SAVE DEST.CODE\r LD A,10\r LD HL,SRCCNT\r LD (HL),A ;INITIALIZE SOURCE COUNTER\r VID2: POP AF ;GET DEST.CODE\r PUSH AF\r BIT 7,A\r JR NZ,INVI45\r BIT 6,A\r JR NZ,INVI2\r \r INVI1: LD BC,PORT46 ;IF DEST. = 1-20 (KRA 1-20) THEN\r OUT (C),A ;SET CODE FOR DEST. ON PORT46\r LD BC,PORT42\r JR VID3\r INVI2: LD BC,PORT47 ;IF DEST. = 21-40 (KRA 21-40) THEN\r OUT (C),A ;SET CODE FOR DEST. ON PORT47\r LD BC,PORT42\r JR VID3\r INVI45: LD BC,PORT48 ;IF DEST. = 41-46,51-59 (KRA 41-46,51-59) THEN\r OUT (C),A ;SET CODE FOR DEST. ON PORT48\r LD BC,PORT44\r \r VID3: LD HL,SRCCNT\r LD E,(HL)\r LD D,0\r LD HL,VXCSEN\r ADD HL,DE\r LD A,(HL) ;SET CODE FOR SOURCE(UNITS) ON\r OUT (C),A ;PORT\r JR TFK0\r \r VIDEND: INC (HL)\r LD HL,INIFLAG\r SET 0,(HL) ;SET VIDEO CONSULT. TERMINATED-FLAG\r \r ; ------------------------\r TFK0: LD HL,INIFLAG\r BIT 1,(HL)\r JR NZ,WAIT1 ;IF TFK CONSULT. IS TERMINATED THEN SKIP\r ;ELSE\r TFK1: LD HL,TFKCNT\r DEC (HL) ;IF ALL TFK DESTINATIONS HAVE BEEN \r JR Z,TFKEND ;RUNNED THROUGH THEN SKIP\r ;ELSE\r LD A,(HL) ;GET TFK DEST.NO.\r LD HL,TFKSAV\r LD (HL),A ;SAVE DEST.NO.\r PUSH AF ;SAVE DEST.NO.\r TFK2: LD HL,QEMPTY\r CALL SUBDEQ\r JR C,TFK3\r CALL SCOMMON\r EI\r JR TFK2\r TFK3: PUSH DE\r POP IX\r LD (IX+2),02H ;INSERT QUESTION COMMAND CODE IN BUFFER\r LD (IX+3),0 ;INSERT DUMMY SOURCE NO.\r POP AF\r LD (IX+4),A ;INSERT ACTUAL DESTINATION NO.\r LD HL,QAQEST\r CALL SUBENQ ;ENQUE BUFFER IN TFK Q-HEAD\r ACTIVATE S,11 ;ACTIVATE TFK PROCESS\r JR WAIT1\r \r TFKEND: INC (HL)\r LD HL,INIFLAG\r SET 1,(HL) ;SET TFK CONSULT. TERMINATED-FLAG\r \r ; ------------------------\r WAIT1: CALL PAUSE ;WAIT\r \r LD HL,INIFLAG\r BIT 1,(HL)\r JR NZ,VID4 ;IF TFK CONSULTATION THEN \r TFK4: LD HL,QUEST ;BEGIN\r CALL SUBDEQ ; GET REPLY-BUFFER FROM TFK PROCESS\r JR C,TFK5 ;\r CALL SCOMMON ;\r EI ;\r JR TFK4 ;\r TFK5: PUSH DE ;\r POP IX ;\r BIT 0,(IX+2) ;\r LD A,(TFKSAV) ;\r JR Z,TFK5A ;\r CP (IX+4) ; IF NACK-REPLY OR WRONG DESTINATION\r JR Z,TFK5B ; THEN\r TFK5A: LD (IX+4),A ; SET SOURCE = 0FFH\r LD A,0FFH ;\r LD (IX+3),A ;\r \r TFK5B: LD HL,TFKTAB ; BEGIN\r LD D,0 ;\r LD E,(IX+4) ;\r ADD HL,DE ;\r LD A,(IX+3) ; UPDATE TFK INIT.TABLE\r LD (HL),A ; WITH SOURCE NO.\r ; END\r TFK6: PUSH IX ;\r POP DE ;\r LD HL,QEMPTY ;\r CALL SUBENQ ; RETURN REPLY-BUFFER TO EMPTY BUFFER QUEUE\r ;END\r \r VID4: LD HL,INIFLAG\r BIT 0,(HL)\r JR NZ,INI1 ;IF VIDEO CONSULT. THEN\r ;BEGIN\r POP AF ;\r PUSH AF ;\r BIT 7,A ;\r JR NZ,CH45 ;\r BIT 6,A ;\r JR NZ,CH2 ;\r ;\r CH1: LD BC,PORT43 ; IF DEST. = 1-20 THEN\r IN A,(C) ; GET MATRIX REPLY ON PORT43\r JR VID5 ;\r CH2: LD BC,PORT43 ; IF DEST. = 21-40 THEN\r IN A,(C) ; GET MATRIX REPLY ON PORT43\r SRL A ; SHIFT\r SRL A ;\r SRL A ;\r SRL A ;\r JR VID5 ;\r CH45: LD BC,PORT45 ; IF DEST. = 41-46,51-59 THEN\r IN A,(C) ; GET MATRIX REPLY ON PORT45\r ;\r VID5: AND 0FH ;\r CP 0EH ;\r CALL Z,FOUND ; IF SOURCE = 1-10 THEN CALL FOUND\r CP 0DH ;\r CALL Z,FOUND ; IF SOURCE = 11-20 THEN CALL FOUND\r CP 0CH ;\r CALL Z,FOUND ; IF SOURCE = 21-30 THEN CALL FOUND\r CP 0BH ;\r CALL Z,FOUND ; IF SOURCE = 31-40 THEN CALL FOUND\r ;\r LD HL,SRCCNT ; ELSE\r DEC (HL) ; DECREMENT SOURCE COUNTER\r JP NZ,VID2 ; AND TRY NEXT SOURCE(UNIT) IF NOT = 0\r POP AF ;\r JR INI1 ;END\r \r FOUND: LD B,A ;SAVE RECEIVE CODE\r LD A,0EH ;\r SUB B ;\r LD E,A ;\r SLA A ;\r SLA A ;\r SLA A ;\r ADD A,E ;\r ADD A,E ;CALCULATE NO. OF TENS(0,10,20 OR 30)\r LD HL,SRCCNT ;GET SOURCE(UNITS)\r ADD A,(HL) ;CALCULATE SOURCE NO.\r LD C,A ;\r LD A,1 ;\r LD (HL),A ;SET SOURCE COUNTER = 1\r LD A,35 ;\r CP C ;\r LD A,B ;GET RECEIVE CODE\r RET C ;IF CALCULATED SOURCE NO. IS TOO BIG THEN RET.\r LD A,30 ;\r CP C ;OR\r LD A,B ;\r RET Z ;IF SOURCE = TEST THEN RETURN\r LD HL,DSTCNT ;ELSE\r LD E,(HL) ;\r LD D,0 ;\r LD HL,INITAB ;\r ADD HL,DE ;UPDATE INITIALIZING TABLE WITH SOURCE NO.\r LD (HL),C ;\r RET ;\r \r ; ------------------------\r INI1: LD HL,INIFLAG\r BIT 0,(HL) ;IF MORE VIDEO DESTINATIONS LEFT\r JP Z,VID1 ;THEN REPEAT\r BIT 1,(HL) ;IF MORE TFK DESTINATIONS LEFT\r JP Z,TFK1 ;THEN REPEAT\r \r ;------------------------------------------------------------------------------\r LD BC,(PORT52)\r IN A,(C)\r VTRA6: BIT 5,A\r JR NZ,VTRA7 ;IF VTRA6 ON T2-PULSE PLAN THEN\r PUSH AF ;BEGIN\r LD A,6 ; CHECK IF ALLREADY INTERLOCKED ON T2\r CALL VTRROUT ; AND IF NO, THEN UPDATE INIT. TABLE\r POP AF ;END\r VTRA7: BIT 6,A\r JR NZ,VTRA8 ;IF VTRA8 ON T2-PULSE PLAN THEN\r PUSH AF ;BEGIN\r LD A,7 ; CHECK IF ALLREADY INTERLOCKED ON T2\r CALL VTRROUT ; AND IF NO, THEN UPDATE INIT. TABLE\r POP AF ;END\r VTRA8: BIT 7,A\r JR NZ,INI2 ;IF VTRA8 ON T2-PULSE PLAN THEN\r ;BEGIN\r LD A,8 ; CHECK IF ALLREADY INTERLOCKED ON T2\r CALL VTRROUT ; AND IF NO, THEN UPDATE INIT. TABLE\r JR INI2 ;END\r \r VTRROUT LD BC,7 ;\r LD HL,INITAB+18 ;\r CPIR ;\r RET Z ;RETURN IF ALLREADY INTERLOCKED ON T2\r ;ELSE\r LD HL,INITAB+63 ;\r LD D,0 ;\r LD E,A ;UPDATE THE APROPRIATE ST5 PARALLEL\r ADD HL,DE ;INPUT LINE IN INIT. TABLE WITH THE VTRA NO.\r LD (HL),A ;\r RET ;\r \r ;------------------------------------------------------------------------------\r INI2: LD BC,(PORT58)\r IN A,(C)\r BIT 4,A\r JR NZ,DIA21 ;IF DIA1 ON T2-PULSE PLAN THEN\r PUSH AF ;BEGIN\r LD A,13 ; CHECK IF ALLREADY INTERLOCKED ON T2\r CALL DIART2 ; AND IF NO, THEN UPDATE INIT. TABLE\r POP AF ;END\r DIA21: BIT 5,A\r JR NZ,INI3 ;IF DIA2 ON T2-PULSE PLAN THEN\r ;BEGIN\r LD A,14 ; CHECK IF ALLREADY INTERLOCKED ON T2\r CALL DIART2 ; AND IF NO, THEN UPDATE INIT. TABLE\r JR INI3 ;END\r \r DIART2: LD BC,7 ;\r LD HL,INITAB+18 ;\r CPIR ;\r RET Z ;RETURN IF ALLREADY INTERLOCKED ON T2\r ;ELSE\r LD HL,INITAB+52 ;\r LD D,0 ;\r LD E,A ;UPDATE THE APROPRIATE ST5 PARALLEL\r ADD HL,DE ;INPUT LINE IN INIT. TABLE WITH DIA NO.\r LD (HL),A ;\r RET ;\r \r ;------------------------\r \r INI3: LD BC,(PORT60)\r IN A,(C)\r BIT 4,A\r JR NZ,DIA22 ;IF DIA ON T3-PULSE PLAN THEN\r PUSH AF ;BEGIN\r LD A,13 ; CHECK IF ALLREADY INTERLOCKED ON T3\r CALL DIART3 ; AND IF NO, THEN UPDATE INIT. TABLE\r POP AF ;END\r DIA22: BIT 5,A\r JR NZ,INI4 ;IF DIA2 ON T3-PULSE PLAN THEN\r ;BEGIN\r LD A,14 ; CHECK IF ALLREADY INTERLOCKED ON T3\r CALL DIART3 ; AND IF NO, THEN UPDATE INIT. TABLE\r JR INI4 ;END\r \r DIART3: LD BC,3 ;\r LD HL,INITAB+25 ;\r CPIR ;\r RET Z ;RETURN IF ALLREADY INTERLOCKED ON T3\r ;ELSE\r LD HL,INITAB+59 ;\r LD D,0 ;\r LD E,A ;UPDATE THE APROPRIATE STM PARALLEL \r ADD HL,DE ;INPUT LINE IN INIT. TABLE WITH DIA NO.\r LD (HL),A ;\r RET ;\r \r ;------------------------------------------------------------------------------\r INI4: LD BC,(PORT62)\r IN A,(C)\r BIT 7,A\r JR NZ,INI5 ;IF STM ON T1-PULSE PLAN THEN\r LD A,19 ;BEGIN\r LD BC,7 ;\r LD HL,INITAB+18 ;\r CPIR ;\r JR Z,INI5 ; IF NOT ALLREADY INTERLOCKED ON T1 THEN\r LD HL,INITAB+67 ; UPDATE THE APROPRIATE ST5 PARALLEL\r LD (HL),A ; INPUT LINE IN INIT. TABLE WITH STM NO.\r ;END\r \r ;------------------------------------------------------------------------------\r INI5: LD BC,PORT67\r IN A,(C)\r BIT 0,A\r JR NZ,INI6 ;IF ST5 CAM.DEL. ON THEN\r LD A,20 ;BEGIN\r LD BC,7 ;\r LD HL,INITAB+18 ;\r CPIR ; IF NOT ALLREADY INTERLOCKED WITH\r JR Z,INI6 ; CAM.DEL. ON ST5 THEN\r LD HL,INITAB+68 ; UPDATE THE APROPRIATE ST5 PARALLEL\r LD (HL),A ; INPUT LINE IN INIT. TABLE WITH ST-CITY NO.\r ;END\r \r ;------------------------------------------------------------------------------\r INI6: LD BC,(PORT64)\r IN A,(C)\r KGEN11: BIT 0,A\r JR NZ,KGEN21 ;IF KGEN1 ON T2-PULSE PLAN THEN\r LD E,31 ;UPDATE THE APROPRIATE ST5 PARALLEL\r LD HL,INITAB+61 ;INPUT LINE IN INIT. TABLE WITH KGEN1 NO.\r LD (HL),E\r KGEN21: BIT 1,A\r JR NZ,INI7 ;IF KGEN2 ON T2-PULSE PLAN THEN\r LD E,32 ;UPDATE THE APROPRIATE ST5 PARALLEL\r LD HL,INITAB+62 ;INPUT LINE IN INIT. TABLE WITH KGEN2 NO.\r LD (HL),E\r \r INI7: LD BC,(PORT66)\r IN A,(C)\r KGEN12: BIT 0,A\r JR NZ,KGEN22 ;IF KGEN1 ON T3-PULSE PLAN THEN\r LD E,31 ;UPDATE THE APROPRIATE ST5 PARALLEL\r LD HL,INITAB+74 ;INPUT LINE IN INIT. TABLE WITH KGEN1 NO.\r LD (HL),E\r KGEN22: BIT 1,A\r JR NZ,INI8 ;IF KGEN2 ON T3-PULSE PLAN THEN\r LD E,32 ;UPDATE THE APROPRIATE ST5 PARALLEL\r LD HL,INITAB+75 ;INPUT LINE IN INIT. TABLE WITH KGEN2 NO.\r LD (HL),E\r \r ;------------------------------------------------------------------------------\r INI8: LD B,33 ;TXT1 SOURCE NO.\r LD HL,INITAB+58\r LD A,(HL)\r CP 16\r CALL Z,CN1TX1 ;IF TXT1 TO CNR1 THEN UPDATE INIT. TABLE\r CP 17\r CALL Z,CN2TX1 ;IF TXT1 TO CNR2 THEN UPDATE INIT. TABLE\r CP 18\r CALL Z,ST5TX1 ;IF TXT1 TO ST5 THEN UPDATE INIT. TABLE\r CP 19\r CALL Z,STMTX1 ;IF TXT1 TO STM THEN UPDATE INIT. TABLE\r \r LD B,34 ;TXT2 SOURCE NO.\r LD HL,INITAB+59\r LD A,(HL)\r CP 16\r CALL Z,CN1TX2 ;IF TXT2 TO CNR1 THEN UPDATE INIT. TABLE\r CP 17\r CALL Z,CN2TX2 ;IF TXT2 TO CNR2 THEN UPDATE INIT. TABLE\r CP 18\r CALL Z,ST5TX2 ;IF TXT2 TO ST5 THEN UPDATE INIT. TABLE\r CP 19\r CALL Z,STMTX2 ;IF TXT2 TO STM THEN UPDATE INIT. TABLE\r JR INI9\r \r CN1TX1: LD HL,INITAB+80\r LD (HL),B\r RET\r CN2TX1: LD HL,INITAB+84\r LD (HL),B\r RET\r ST5TX1: LD HL,INITAB+63\r LD (HL),B\r RET\r STMTX1: LD HL,INITAB+76\r LD (HL),B\r RET\r CN1TX2: LD HL,INITAB+81\r LD (HL),B\r RET\r CN2TX2: LD HL,INITAB+85\r LD (HL),B\r RET\r ST5TX2: LD HL,INITAB+64\r LD (HL),B\r RET\r STMTX2: LD HL,INITAB+77\r LD (HL),B\r RET\r \r ;---------------------------------------------------------------------------\r INI9: LD HL,INITAB+51 ;\r LD C,9 ;\r LD A,0 ;\r CL0: LD (HL),A ;CLEAR EXTRA CP DESTINATIONS\r INC HL ;\r DEC C ;\r JR NZ,CL0 ;\r \r ;------------------------------------------------------------------------------\r LD BC,1\r LD HL,INITAB ;WHILE MORE TFK DESTINATIONS DO\r NXT1: INC HL ;BEGIN\r LD A,(HL) ;\r CP 0 ;\r JR NZ,NXT2 ; IF VIDEO DESTINATION RELEASED THEN\r PUSH HL ; BEGIN\r LD HL,TFKTAB ;\r ADD HL,BC ; LOAD THE SOURCE NO. OF THE CORRE-\r LD A,(HL) ; SPONDING TFK DESTINATION IN INIT. TABLE\r LD E,A ; IF :\r CP 0 ;\r JR Z,NXT11 ; SOURCE = 00\r CP 36 ;\r JR Z,NXT11 ; SOURCE = 36\r CP 37 ;\r JR Z,NXT11 ; SOURCE = 37\r CP 0FFH ;\r JR Z,NXT10 ;\r LD A,38 ;\r CP C ;\r JR Z,NXT11 ; DESTIN.= 38\r LD A,39 ;\r CP C ;\r JR Z,NXT11 ; DESTIN.= 39\r LD A,47 ;\r CP C ;\r JR Z,NXT11 ; DESTIN.= 47\r LD A,48 ;\r CP C ;\r JR Z,NXT11 ; DESTIN.= 48\r ; ELSE SET\r NXT10: LD E,00 ; SOURCE = 00\r ;\r NXT11: POP HL ;\r LD (HL),E ; END\r NXT2: INC BC ;\r LD A,49 ;\r CP C ;\r JR NZ,NXT1 ;END-WHILE\r \r LD HL,TFKTAB+58\r LD DE,INITAB+58\r LDI ;TRANSFER TEXT1 STATUS TO INIT.TABLE\r LDI ;TRANSFER TEXT2 STATUS TO INIT.TABLE\r \r ******************************************************************************\r RSTART: LD A,0FFH\r \r LD BC,PORT22 ; INTERCOM\r OUT (C),A\r \r LD A,0BFH ; PRESET MATRIX INPUT ADDR.\r LD BC,PORT33 ; KRE 1.1 TO TEST GENERATOR\r OUT (C),A\r LD BC,PORT34 ; KRE 2.1\r OUT (C),A\r \r LD A,00\r LD BC,(PORT35) ; DESTIN 8- 1 --\r OUT (C),A ; I\r LD BC,(PORT36) ; - " - 16- 9 I\r OUT (C),A ; I\r LD BC,(PORT37) ; - " - 24-17 -- S 1\r OUT (C),A ; I\r LD BC,(PORT38) ; - " - 32-25 I\r OUT (C),A ; I\r LD BC,(PORT39) ; - " - 40,-,-,37,36,35,34,33 --\r OUT (C),A\r LD BC,(PORT40) ; - " - 52,51,46,45,44,43,42,41 --\r OUT (C),A ; I--S 2\r LD BC,(PORT41) ; - " - --,59,58,57,56,55,54,53 --\r OUT (C),A\r \r LD A,0FFH\r LD BC,PORT42 ; KRA 1-20 (PARTLY, PORT 46)\r OUT (C),A ; KRA 21-40 (PARTLY, PORT 47)\r \r LD BC,PORT44 ; KRA 41-48, 51-59 (PARTLY, PORT 48)\r OUT (C),A\r \r LD BC,PORT46 ; KRA 1-20 (PARTLY, PORT 42)\r OUT (C),A\r LD BC,PORT47 ; KRA 21-40 (PARTLY, PORT 42)\r OUT (C),A\r LD BC,PORT48 ; KRA 41-48, 51-59 (PARTLY, PORT 44)\r OUT (C),A\r LD BC,(PORT49) ; T1 ---\r OUT (C),A ; I\r ; I\r LD BC,(PORT51) ; T2 -- IM1 SRC 8,7,6,5,4,3,2,1\r OUT (C),A ; I\r ; I\r LD BC,(PORT53) ; T3 ---\r OUT (C),A\r \r LD BC,(PORT55) ; T1 ---\r OUT (C),A ; I\r ; I\r LD BC,(PORT57) ; T2 -- IM2 SRC -,--,14,13,12,11,10,9\r OUT (C),A ; I IM3 -,30,--,--,--,--,--,-\r ; I\r LD BC,(PORT59) ; T3 ---\r OUT (C),A\r \r LD BC,(PORT61) ; T1 ---\r OUT (C),A ; I\r ; I\r LD BC,(PORT63) ; T2 -- IM2 SRC --,15,--,--,--,--,--,31\r OUT (C),A ; I IM3 19,--,28,27,34,33,32,--\r ; I\r LD BC,(PORT65) ; T3 ---\r OUT (C),A\r \r LD BC,PORT68 ; CAM. DELEG. -,-,CNR2,CNR2,CNR1,CNR1,ST5,ST5\r OUT (C),A ; I I OFF ON OFF ON OFF ON\r ; I I\r ; +-+--ATR ON AIR\r \r ;-------------- PULSE MATRIX INITIALIZATION\r \r CALL PAUSE ; WAIT\r \r LD A,00 ; SOURCES 1-8 TO PULSE PLANE T1\r LD BC,(PORT49) ;\r CALL INIPX ;\r \r LD A,80H ; SOURCES 9-14,30 TO PULSE PLANE T1\r LD BC,(PORT55) ;\r CALL INIPX ;\r \r LD A,80H ; SOURCES 15,27-28,31-34 TO PULSE PLANE T1\r LD BC,(PORT61) ;\r CALL INIPX ;\r \r LD A,7FH ; SOURCE 19 (STM) TO PULSE PLANE T3\r LD BC,(PORT65) ;\r CALL INIPX ;\r \r LD IX,PRTSAV\r LD (IX),0\r LD (IX+1),0FFH\r LD (IX+2),0FFH\r LD (IX+3),0\r LD (IX+4),0FFH\r LD (IX+5),0FFH\r LD (IX+6),80H\r LD (IX+7),0FFH\r LD (IX+8),7FH\r \r ;-------------- CAM. DELEG. INITIALIZATION\r \r LD A,0D5H ; SET ALL CAM. DELEG. TO OFF\r LD (CDCONT),A ; CAMERA DELEGATION CHECK BYTE\r LD BC,PORT68 ; AND ATR1, ATR2 TO 'OFF AIR'\r OUT (C),A ;\r \r LESTAB 8 ; IO2 TIMER: TERMINATES CAM. DELEG. ACTION\r ; AFTER DELAY \r \r ;-------------- VIDEO MATRIX INITIALIZATION\r \r LD A,0FFH ;\r \r LD BC,(PORT35) ;\r OUT (C),A ;\r LD BC,(PORT36) ;\r OUT (C),A ;\r LD BC,(PORT37) ;\r OUT (C),A ;\r LD BC,(PORT38) ;\r OUT (C),A ;\r LD BC,(PORT39) ;\r OUT (C),A ;\r LD BC,(PORT40) ;\r OUT (C),A ;\r LD BC,(PORT41) ;\r OUT (C),A ;\r \r LD A,1EH\r LD HL,TABVID-1\r LD B,61\r AGAIN: INC HL\r LD (HL),A\r DJNZ AGAIN\r \r ;----------------------- TFK MATRIX INITIALIZATION\r AUD1: LD HL,QEMPTY\r CALL SUBDEQ\r JR C,AUD2\r CALL SCOMMON\r EI\r JR AUD1\r AUD2: LD HL,QUEST\r CALL SUBENQ\r LD BC,0\r PUSH BC\r \r AUD3: LD HL,QUEST\r CALL SUBDEQ\r JR C,AUD4\r CALL SCOMMON\r EI\r JR AUD3\r AUD4: POP BC\r INC BC\r LD A,60\r CP C\r JR Z,AUDEND\r PUSH BC\r \r LD HL,TFKTAB\r ADD HL,BC\r LD A,(HL) ;SKIP INITIALIZATION IF ALLREADY RELEASED\r CP 0\r JR Z,AUD4\r \r PUSH DE\r POP IX\r LD (IX+2),0\r LD (IX+3),0\r LD (IX+4),C\r LD HL,QAQEST\r CALL SUBENQ\r ACTIVATE S,11\r JR AUD3\r AUDEND: LD HL,QEMPTY\r CALL SUBENQ\r \r ;------------------------------------------------------------------------------\r SENDOUT LD HL,INITAB\r LD C,0\r NXTDST: INC HL\r INC C ;NEXT DESTINATION\r LD A,86\r CP C\r JR Z,INIEND ;WHILE MORE DESTINATIONS IN INIT.TABLE DO\r ;BEGIN\r LD A,(HL) ; GET SOURCE NO. IN INIT.TABLE\r CP 0 ;\r JR Z,NXTDST ; IF SOURCE <> 0 THEN\r PUSH HL ; BEGIN\r PUSH BC ;\r PUSH AF ;\r Q1: LD HL,QEMPTY ;\r CALL SUBDEQ ;\r JR C,Q2 ;\r CALL SCOMMON ;\r EI ;\r JR Q1 ;\r Q2: PUSH DE ;\r POP IX ;\r POP AF ;\r POP BC ;\r PUSH BC ;\r LD (IX+2),80H ; INSERT ESTABL.COMMAND CODE IN BUFFER\r LD (IX+3),A ; INSERT SOURCE NO. IN BUFFER\r LD (IX+4),C ; INSERT DESTINATION NO. IN BUFFER\r LD HL,QXI ;\r CALL SUBENQ ;\r CALL INVEST ; INVESTIGATE CP STATUS\r LD HL,QIX ;\r CALL SUBDEQ ;\r PUSH DE ;\r POP IX ;\r LD A,(IX+2) ;\r AND 49H ;\r JR NZ,Q4 ; IF POSSIBLE CP THEN\r LD (IX+2),80H ; BEGIN\r LD HL,QKE ;\r CALL SUBENQ ; SEND BUFFER TO QKE AND\r ACTIVATE S,9 ; ACTIVATE EXECUTE MODULE\r LD HL,CONDIT ;\r SET 2,(HL) ; SET BUSY = 1\r Q3: LD HL,CONDIT ;\r BIT 2,(HL) ;\r JR Z,Q4 ;\r CALL SCOMMON ; WAIT UNTIL BUSY = 0\r EI ;\r JR Q3 ; END\r Q4: POP BC ; RESTORE DESTINATION COUNTER\r POP HL ; RESTORE INIT.TABLE ADDRESS\r JR NXTDST ; END\r ;END-WHILE\r \r \r ******************************************************************************\r ******************************************************************************\r ;--------------- END OF MATRIX I/F INITIALIZATION ------------------------------\r \r INIEND: LD HL,CONDIT\r RES 2,(HL) ;RESET BUSY BIT\r RES 6,(HL) ;RESET INITIALIZATION IN PROGRESS FLAG\r JR ININIT\r \r \r INIPX: LD (PXPORT),BC\r OUT (C),A\r \r LESTAB 7 ;IO1 TIMER : TERMINATES PULSE ACTION \r ; AFTER DELAY\r \r CALL PAUSE\r RET\r ;\r *******************************************************************************\r ININIT: LD A,9\r LD (CNTPULS),A ;INITIALIZE PULSE PORT NUMBER\r LD A,61\r LD (CNTDST),A ;INITIALIZE VIDEO DESTINATION NUMBER\r \r INSP0: UPDATM 10,250\r LESTAB 10\r PASSIVATE S,INSPNR\r \r INSP1: CALL SCOMMON\r EI\r LD HL,CONDIT\r BIT 2,(HL)\r JR NZ,INSP1 ;IF BUSY = 1 THEN WAIT\r BIT 6,(HL)\r JR NZ,INSP1 ;IF INITIALIZATION IN PROGRESS THEN WAIT\r ;ELSE\r SET 2,(HL) ;SET BUSY = 1\r \r UPDATM 10,5 ;UPDATE PAUSE-DELAY\r \r ;-----------------------------------------------------------------------------\r ; CAMERA DELEGATION MODULE :\r \r CDCHECK LD BC,PORT67 ;CAM.DELEG. CHECK PORT\r IN A,(C)\r AND 3FH\r LD D,A\r \r LD A,(CDCONT)\r AND 3FH\r BIT 0,A\r JR Z,ST5ON ;IF ST5 DEL.ON GOTO ST5ON\r BIT 2,A\r JR Z,CNR1ON ;IF CNR1 DEL.ON GOTO CNR1ON\r BIT 4,A\r JR Z,CNR2ON ;IF CNR2 DEL.ON GOTO CNR2ON\r ;ELSE\r CDOFF: LD A,D\r CP 15H\r JR NZ,ERRCD ;IF DEL.OFF CODE ON CHECK PORT GOTO ERRCD\r JR PUCHECK\r \r ST5ON: LD A,D\r CP 16H\r JR NZ,ERRCD ;IF ST5 DEL.ON CODE ON CHECK PORT GOTO ERRCD\r JR PUCHECK\r \r CNR1ON: LD A,D\r CP 19H\r JR NZ,ERRCD ;IF NO CNR1 DEL.ON CODE ON CH. PORT GOTO ERRCD\r JR PUCHECK\r \r CNR2ON: LD A,D\r CP 25H\r JR NZ,ERRCD ;IF NO CNR2 DEL.ON CODE ON CH. PORT GOTO ERRCD\r JR PUCHECK\r ;IF ERROR THEN\r ERRCD: LD HL,ECOND2 ;BEGIN\r SET 1,(HL) ; SET DEVICE CONTROL ERROR BIT\r LD A,(CDCONT) ;\r LD BC,PORT68 ;\r OUT (C),A ; RE-ESTABLISH OUTPUT TO CAM.DEL.PORT\r ;\r ;\r LESTAB 8 ; IO2 TIMER: TERMINATES CAM.DELEG ACTION\r ; AFTER DELAY(8-16MSEC)\r ;END\r \r ;----------------------------------------------------------------------------\r ; PULSE INSPECTION MODULE :\r \r PUCHECK LD HL,CNTPULS\r DEC (HL) ;NEXT PULSE-PORT\r LD A,(HL)\r PUSH AF\r \r LD HL,PRTSAV\r LD B,0\r LD C,A\r ADD HL,BC\r LD E,(HL) ;GET CONTENT OF OUTP.PORT CONT.SAVING CELL\r SLA A\r SLA A\r ADD A,6\r LD HL,TAB2PX\r LD B,0\r LD C,A\r ADD HL,BC\r LD C,(HL)\r INC HL\r LD B,(HL)\r IN A,(C) ;GET CONTENT OF PULSE-CHECK INPUT PORT\r LD D,A\r \r POP AF\r CP 3\r JR Z,PU2\r CP 4\r JR Z,PU2\r CP 5\r JR NZ,PU3\r \r PU2: LD A,E ;\r AND 7FH ;\r LD E,A ;IF GROUP3 THEN MASK OUT \r LD A,D ;BIT 7 IN BYTE\r AND 7FH ;\r LD D,A ;\r \r PU3: LD A,E ;COMPARE DESIRED OUTPUT CONTENT WITH\r CP D ;ACTUAL INPUT FROM PULSE CHECK PORT\r JR Z,PUEND ;IF NO IDENTITY THEN\r LD BC,3 ;BEGIN\r AND A ;\r SBC HL,BC ;\r LD C,(HL) ; GET OUTPUT PORT-ADDRESS\r INC HL ;\r LD B,(HL) ;\r LD (PXPORT),BC ; SAVE PORT-ADDRESS FOR PULSE TERMINATION\r LD A,E ;\r OUT (C),A ; RE-OUTPUT PULSE-BYTE\r LD HL,ECOND2 ;\r SET 1,(HL) ; SET DEVICE CONTROL ERROR BIT\r ;\r LESTAB 7 ; IO1 TIMER: TERMINATES PULSE ACTION\r ; AFTER DELAY(8-16MSEC)\r ;END\r \r PUEND: LD A,0\r LD HL,CNTPULS\r CP (HL)\r JR NZ,TFKCHK ;IF ALL PULSE CHECK PORTS HAVE BEEN\r LD A,9 ;RUNNED THROUGH THEN\r LD (HL),A ;RE-ESTABLISH PORT-COUNTER\r \r ;-----------------------------------------------------------------------------\r ; TFK INSPECTION MODULE (1):\r \r TFKCHK: LD HL,CNTDST\r DEC (HL) ;NEXT DESTINATION\r JR NZ,TFKCH0 ;IF ALL DESTINATIONS HAVE BEEN\r LD A,60 ;RUNNED THROUGH THEN\r LD (HL),A ;RE-ESTABLISH DESTINATION COUNTER\r TFKCH0: LD HL,QEMPTY ;ELSE\r CALL SUBDEQ ;GET BUFFER\r JR NC,VICHECK\r PUSH DE ;BEGIN\r POP IX ;\r LD (IX+2),02H ; INSERT QUESTION COMMAND CODE IN BUFFER\r LD (IX+3),00 ; INSERT DUMMY SOURCE NO.\r LD A,(CNTDST) ;\r LD (IX+4),A ; INSERT DESTINATION NO.\r LD HL,QAQEST ;\r CALL SUBENQ ; ENQUE BUFFER IN TFK QUESTION QUEUE\r ACTIVATE S,11 ; AND ACTIVATE TFK PROCESS\r LD HL,TFKFLAG ;\r SET 0,(HL) ; SET TFK INSPECTION FLAG\r ;END\r \r ;-----------------------------------------------------------------------------\r ; VIDEO INSPECTION MODULE :\r \r VICHECK LD HL,CNTDST\r LD E,(HL) ;GET DESTINATION NO.\r LD HL,VXT1CK\r LD D,0\r ADD HL,DE\r LD A,(HL)\r CP 0\r JP Z,TFKCH2 ;IF NON VALID VIDEO DESTINATION THEN\r ;TRY NEXT ONE ELSE\r PUSH AF\r LD HL,TABVID\r ADD HL,DE\r LD E,(HL) ;GET SOURCE NO.\r LD D,0\r LD HL,VXCREC\r ADD HL,DE\r LD A,(HL) ;GET EXPECTED CODE\r LD (VXCKCO),A ;SAVE\r POP AF\r \r BIT 7,A\r JR NZ,VI45\r BIT 6,A\r JR NZ,VI2\r \r VI1: LD BC,PORT46 ;IF DEST. = 1-20 (KRA 1-20)\r OUT (C),A ;THEN SET CODE FOR DEST.ON PORT46\r LD BC,PORT42 ;\r ;\r LD HL,VXCSEN ;SET CODE FOR SOURCE(UNITS) ON PORT42\r ADD HL,DE ;\r LD A,(HL) ;\r OUT (C),A ;OUTPUT\r ;\r CALL PAUSE ;WAIT 16-24MSEC\r ;\r LD BC,PORT43 ;\r IN A,(C) ; E.G. XXXX 1110\r AND 0FH ; 0000 1111\r LD D,A ; = 0000 1110\r ;\r LD A,(VXCKCO) ; E.G. 1110 1110\r AND 0FH ; 0000 1111\r ; = 0000 1110\r CP D ;\r JR NZ,ERRVI ;IF ERROR GOTO ERRVI\r JP TFKCH2 ;\r \r VI2: LD BC,PORT47 ;IF DEST. = 21-40 (KRA 21-40)\r OUT (C),A ;THEN SET CODE FOR DESTINATION ON PORT47\r LD BC,PORT42 ;\r ;\r LD HL,VXCSEN ;SET CODE FOR SOURCE(UNITS) ON PORT42\r ADD HL,DE ;\r LD A,(HL) ;\r OUT (C),A ;OUTPUT\r ;\r CALL PAUSE ;WAIT 16-24MSEC\r ;\r LD BC,PORT43 ;\r IN A,(C) ; E.G. 1110 XXXX\r AND 0F0H ; 1111 0000\r LD D,A ; = 1110 0000\r ;\r LD A,(VXCKCO) ;\r AND 0F0H ;\r \r CP D ;\r JR NZ,ERRVI ;IF ERROR GOTO ERRVI\r JP TFKCH2 ;\r \r VI45: LD BC,PORT48 ;IF DEST. = 41-46,51-59(KRA 41-46,51-59)\r OUT (C),A ;THEN SET CODE FOR DESTINATION ON PORT48\r LD BC,PORT44 ;\r ;\r LD A,E ;\r CP 30 ;\r JR NZ,VI451 ;IF SOURCE = TEST(WHICH MEANS RELEASED) THEN\r LD A,0FH ;\r LD (VXCKCO),A ;SET EXPECTED CODE = 0FH\r VI451: LD HL,VXCSEN ;SET CODE FOR SOURCE(UNITS) ON PORT42\r ADD HL,DE ;\r LD A,(HL) ;\r OUT (C),A ;OUTPUT\r ;\r CALL PAUSE ;WAIT 16-24MSEC\r ;\r LD BC,PORT45 ;\r IN A,(C) ;\r AND 0FH ;\r LD D,A ;\r ;\r LD A,(VXCKCO) ;\r AND 0FH ;\r ;\r CP D ;\r JR NZ,ERRVI ;IF ERROR GOTO ERRVI\r JR TFKCH2 ;\r \r ;IF ERROR THEN RE-ESTABLISH OUTPUT\r ;TO VIDEO MATRIX\r ERRVI: LD A,(CNTDST) ;BEGIN\r PUSH AF ; SAVE DESTINATION NO.\r LD E,A ;\r LD D,0 ;\r LD HL,TABVID ;\r ADD HL,DE ;\r LD E,(HL) ; GET SOURCE NO.\r LD HL,TAB1VX ;\r ADD HL,DE ;\r LD A,(HL) ; GET SOURCE CODE FROM TAB1VX\r ;\r LD BC,PORT33 ;\r OUT (C),A ; OUTPUT\r LD BC,PORT34 ;\r OUT (C),A ; OUTPUT\r ;\r CALL PAUSE ; WAIT 16-24MSEC\r ;\r POP AF ; GET DESTINATION NO.\r LD D,0 ;\r LD E,A ;\r LD HL,TAB2VX ;\r ADD HL,DE ;\r LD E,(HL) ; GET TAB2VX CODE\r LD A,E ;\r AND 0F0H ; MASK THE CONTENT BITS\r BIT 3,E ; SHIFT ?\r JR Z,E1 ;\r SRL A ;\r SRL A ;\r SRL A ;\r SRL A ;\r ;\r E1: CPL ;\r LD D,A ; PORT CONTENT IN D-REG.\r ;\r LD A,E ; FIND THE ACTUAL OUTPUT PORT\r AND 07H ;\r LD C,A ;\r LD (VXAID),A ; SAVE VXAID(VXAID IS DERIVED FROM THE\r ; TAB2VX AND POINTS TO THE TAB3VX,\r SLA C ; WHERE THE ACTUAL PORT ADDR. IS\r ; PLACED. THE VXAID IS USED , WHEN\r LD B,0 ; THE ACTION IS TERMINATED. IF\r LD HL,TAB3VX ; VXAID = 7, THEN THE PORT IS SHARED)\r ADD HL,BC ;\r LD C,(HL) ; LOWER PORT BYTE TO C-REG.\r INC HL ;\r LD B,(HL) ; LOWER PORT BYTE TO B-REG.\r ;\r ; VXAID STILL IN A-REG.\r CP 07H ; IS THE PORT SHARED\r JR NZ,E2 ; IF NO THEN OUTPUT\r ; ELSE\r IN A,(C) ;\r OR 7FH ; SAVE BIT 7\r AND D ;\r LD D,A ;\r E2: LD (VXPORT),BC ; SAVE PORT ADDRESS FOR VIDEO TERMINATION\r OUT (C),D ; OUTPUT\r LD HL,ECOND2 ;\r SET 1,(HL) ; SET DEVICE CONTROL ERROR BIT\r ;\r LESTAB 9 ; IO3 TIMER: TERMINATES VIDEO ACTION\r ; AFTER DELAY(8-16MSEC)\r ;\r CALL PAUSE ; WAIT 16-24MSEC\r ;END\r \r ;-----------------------------------------------------------------------------\r ; TFK INSPECTION MODULE (2):\r \r TFKCH2: LD HL,TFKFLAG\r BIT 0,(HL)\r JR Z,INSPEND ;IF TFK INSPECTION FLAG IS SET THEN\r ;BEGIN\r RES 0,(HL) ; RESET TFK INSPECTION FLAG\r TFKCH3: LD HL,QUEST ;\r CALL SUBDEQ ; GET REPLY-BUFFER\r JR C,TFKCH4 ;\r CALL SCOMMON ;\r EI ;\r JR TFKCH3 ;\r TFKCH4: PUSH DE ;\r POP IX ;\r BIT 0,(IX+2) ;\r JR Z,TFKERR ; IF NACK-REPLY GOTO TFKERR\r LD HL,CNTDST ;\r LD A,(HL) ; GET EXPECTED DESTINATION REPLY\r CP (IX+4) ; GET DESTINATION NO. IN REPLY\r JR NZ,TFKERR ; IF NO IDENTITY GOTO TFKERR\r LD C,A ;\r LD B,0 ;\r LD HL,TABTFK ;\r ADD HL,BC ;\r LD A,(HL) ; GET EXPECTED SOURCE REPLY\r CP (IX+3) ; GET SOURCE NO. IN REPLY\r JR NZ,TFKERR ; IF NO IDENTITY GOTO TFKERR\r LD HL,QEMPTY ;\r CALL SUBENQ ; RETURN BUFFER TO EMPTY BUFFER QUEUE\r JR INSPEND ; GOTO INSPEND\r ; IF ERROR IN TFK INSPECTION THEN\r TFKERR: LD HL,ECOND2 ; BEGIN\r SET 1,(HL) ; SET DEVICE CONTROL ERROR BIT\r LD (IX+2),01H ; INSERT ESTABLISH COMMAND CODE IN BUFFER\r LD HL,CNTDST ;\r LD A,(HL) ;\r LD (IX+4),A ; INSERT DESTINATION NO.\r LD B,0 ;\r LD C,A ;\r LD HL,TABTFK ;\r ADD HL,BC ;\r LD A,(HL) ; GET SOURCE NO.\r CP 0 ;\r JR NZ,ERT1 ; IF SOURCE = 00 THEN\r LD A,38 ; REPLACE IT WITH MTC NO.(38)\r ERT1: LD (IX+3),A ; INSERT SOURCE NO.\r LD HL,QAQEST ;\r CALL SUBENQ ; ENQUE IN TFK QUEUE(CORRECTION)\r ACTIVATE S,11 ; AND ACTIVATE TFK PROCESS\r ERT2: LD HL,QUEST ;\r CALL SUBDEQ ;\r JR C,ERT3 ;\r CALL SCOMMON ; WAIT FOR REPLY\r EI ;\r JR ERT2 ;\r ERT3: LD HL,QEMPTY ;\r CALL SUBENQ ; RETURN BUFFER TO EMPTY BUFFER QUEUE\r JR INSPEND ; END\r ;END\r \r ;-----------------------------------------------------------------------------\r INSPEND LD HL,CONDIT\r RES 2,(HL) ;RESET BUSY-BIT\r JP INSP0\r \r \r PAUSE: LESTAB 10\r PASSIVATE S,10\r CALL SCOMMON\r EI\r RET\r \r PORT35 DW 4034H\r PORT36 DW 4038H\r PORT37 DW 4039H\r PORT38 DW 403AH\r PORT39 DW 403CH\r PORT40 DW 4021H\r PORT41 DW 4022H\r \r PORT49 DW 4030H\r PORT50 DW 4029H\r PORT51 DW 4031H\r PORT52 DW 402AH\r PORT53 DW 4032H\r PORT54 DW 402CH\r PORT55 DW 4058H\r PORT56 DW 4050H\r PORT57 DW 4059H\r PORT58 DW 4051H\r PORT59 DW 4060H\r PORT60 DW 4052H\r PORT61 DW 4061H\r PORT62 DW 4054H\r PORT63 DW 4062H\r PORT64 DW 405AH\r PORT65 DW 4064H\r PORT66 DW 405CH\r \r \r DSEG\r INIFLAG DS 1\r DSTCNT DS 1\r SRCCNT DS 1\r TFKCNT DS 1\r TFKSAV DS 1\r INITAB DS 86\r TFKTAB DS 49\r CNTPULS DS 1\r CNTDST DS 1\r TFKFLAG DS 1\r DS 32\r STAC10:\r END\r