Google
 

Trailing-Edge - PDP-10 Archives - bb-m403a-bk - va1445.lst
There are no other files named va1445.lst in the archive.
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22
TABLE OF CONTENTS

     8-  316	LOW CORE -- TRAP VECTORS
     9-  430	LOW CORE -- COMMON GLOBAL DATA
    10-  550	LOW CORE -- KLINIK DATA BASE
    11-  584	LOW CORE -- COMMIUNICATIONS REGION DATA BASE
    12-  619	LOW CORE -- QUEUED PROTOCOL DATA BASE
    13-  725	LOW CORE -- KEEP-ALIVE DATA BASE
    14-  739	LOW CORE -- CORE MANAGER DATA BASE
    15-  775	LOW CORE -- CLOCK REQUEST LIST
    17-  816	LOW CORE -- TERMINAL SERVICE DATA BASE
    18-  874	LOW CORE -- PDP-11 CTY SERVICE DATA BASE
    19-  889	LOW CORE -- TERMINAL DRIVER DATA BASE
    20-  909	LOW CORE -- DATA LINE SCANNER DATA BASE
    21-  939	LOW CORE -- DH-11 DATA BASE
    30-  995	LOW CORE -- DECTAPE DRIVER DATA BASE
    32- 1028	LOW CORE -- DISC DRIVER DATA BASE
    33- 1047	LOW CORE -- FE DRIVER DATA BASE
    34- 1086	LOW CORE -- CD-11 DRIVER DATA BASE
    35- 1131	LOW CORE -- LP-20 DRIVER DATA BASE
    36- 1218	LOW CORE -- STD (SYSTEM TASK DIRECTORY)
    37- 1340	LOW CORE -- ATL (ACTIVE TASK LIST)
    38- 1403	LOW CORE -- TPD (TASK PARTITION DIRECTORY)
    39- 1464	LOW CORE -- DEVICE QUEUE POINTERS
    40- 1517	LOW CORE -- LOGICAL UNIT TABLES
    41- 1631	LOW CORE -- KL10 HARDWARE ENVIRONMENT DATA
    42- 1659	LOW CORE -- INITLM (INITIALIZATION)
    43- 1688	LOW CORE -- TRAP SERVICE FOR COMMON PROGRAM TRAPS
    44- 1808	LOW CORE -- CRASH ROUTINE
    45- 1895	LOW CORE -- I/O PAGE SNAPSHOT
    46- 1945	EXEC MODULE ONE -- TITLE PAGE
    47- 2002	EXEC MODULE ONE -- SYSTEM NOTES
    48- 2057	EXEC MODULE ONE -- GLOSSARY
    48- 2082	MACRO CALLS (MCALL)
    49- 2094	EXEC MODULE ONE -- SYMBOLIC DEFINITIONS
    65- 2676	EXEC MODULE ONE -- NUL TASK
    67- 2765	EXEC MODULE TWO -- SERVICE FOR "EMT" & "TRAP" INSTRUCTIONS
    68- 3031	EXEC MODULE THREE -- SCAN OF ACTIVE TASK LIST
    75- 3422	EXEC MODULE NINE -- COMMON RETURN TO INTERRUPTED PROGRAM
    80- 3833	SECONDARY PROTOCOL -- COPYRIGHT STATEMENT
    81- 3896	SECONDARY PROTOCOL -- BOOT PROTOCOL SERVICE
    82- 4138	POWERFAIL HANDLER -- COPYRIGHT STATEMENT
    83- 4189	POWERFAIL -- POWER DOWN
    84- 4274	POWERFAIL -- POWER UP ENTRY
    85- 4323	POWERFAIL -- POWER FAIL RESTART
    86- 4391	DTE DIRECTIVES -- COPYRIGHT STATEMENT
    87- 4447	DTE20 EMT DISPATCH DECODER
    88- 4526	$DORBL -- RING THE KL-10 DOORBELL
    89- 4557	$DTEOF -- TURN THE DTE20 OFF
    90- 4593	$DTEON -- TURN THE DTE20 ON
    91- 4720	$DPMYG -- DEPOSIT INTO MY GENERAL SECTION
    92- 4767	$EXMYG -- EXAMINE MY GENERAL SECTION
    93- 4803	$EXMYN -- EXAMINE MY SECTION FOR PROCESSOR N
    94- 4837	$DPMYN -- DEPOSIT INTO MY SECTION FOR COMM WITH PROCESSOR N
    95- 4871	$EXHSG -- EXAMINE HIS GENERAL COMMUNICATION SECTION
    96- 4906	$EXHSM -- EXAMINE HIS SECTION FOR COMMUNICATING WITH ME
    97- 4940	$KLDFX -- EXECUTE A DIAGNOSTIC FUNCTION
    98- 5037	$PRVDP -- PRIVILEDGED DEPOSIT
    99- 5068	$PRVEX -- PRIVILEDGED EXAMINE
DMDTE	- DTE DIRECTIVES MODULE	MACRO M1113  10-NOV-81 17:22
TABLE OF CONTENTS

   100- 5107	$RWDRG -- READ/WRITE DIAGNOSTIC REGISTER
   101- 5146	CESCHK -- CHECK FOR CLOCK ERROR STOP
   102- 5167	ASIGN LUN -- COPYRIGHT STATEMENT
   103- 5204	DIRECTIVE -- ASSIGN LUN
   104- 5309	GET LUN INFO -- COPYRIGHT STATEMENT
   105- 5345	DIRECTIVE -- GET LUN INFORMATION
   106- 5412	GET TIME PARAMETERS -- COPYRIGHT STATEMENT
   107- 5448	DIRECTIVE -- GET TIME PARAMETERS
   108- 5519	SIGNIFICANT EVENT DIRECTIVES -- COPYRIGHT STATEMENT
   109- 5561	DIRECTIVE -- CLEAR EVENT FLAG
   110- 5611	DIRECTIVE -- SET EVENT FLAG
   111- 5661	DIRECTIVE -- DECLARE SIGNIFICANT EVENT
   112- 5722	DIRECTIVE -- READ EVENT FLAG
   113- 5770	DIRECTIVE -- READ ALL EVENT FLAGS
   114- 5813	DIRECTIVE -- WAITFOR SINGLE EVENT FLAG
   115- 5876	DIRECTIVE -- WAITFOR LOGICAL 'OR' OF FLAGS
   116- 5968	DIRECTIVE -- WAITFOR NEXT SIGNIFICANT EVENT
   117- 6004	MARK TIME -- COPYRIGHT STATEMENT
   118- 6040	DIRECTIVE -- MARK TIME
   119- 6139	CANCEL MARK TIME -- COPYRIGHT STATEMENT
   120- 6176	DIRECTIVE -- CANCEL MARK-TIME REQUESTS
   121- 6236	EXIT -- COPYRIGHT STATEMENT
   122- 6273	DIRECTIVE -- TASK EXIT
   123- 6316	QUEUE I/O -- COPYRIGHT STATEMENT
   124- 6354	DIRECTIVE -- QUEUE I/O
   125- 6681	SEND AND RECEIVE -- COPYRIGT STATEMENT
   126- 6722	DIRECTIVE -- SEND DATA
   127- 6778	DIRECTIVE -- SEND AND REQUEST OR RESUME
   129- 6999	DIRECTIVE -- RECEIVE DATA
   130- 7036	DIRECTIVE -- RECEIVE DATA OR EXIT
   131- 7077	DIRECTIVE -- RECEIVE DATA OR SUSPEND
   132- 7218	SPECIFY SST TABLE -- COPYRIGHT STATEMENT
   133- 7254	DIRECTIVE -- SPECIFY SST VECTOR TABLE FOR TASK
   134- 7307	SPECIFY AST SERVICE -- COPYRIGHT STATEMENT
   135- 7343	DIRECTIVE -- SPECIFY POWER FAIL AST
   136- 7399	REQUEST AND EXECUTE -- COPYRIGHT STATEMENT
   137- 7435	DIRECTIVE -- TASK SCHEDULING -- REQUEST
   138- 7559	GET TASK PARAMETERS -- COPYRIGHT STATEMENT
   139- 7595	DIRECTIVE -- GET TASK PARAMETERS
   140- 7683	GET PARTITION PARAMETERS -- COPYRIGHT STATEMENT
   141- 7720	DIRECTIVE -- GET PARTITION PARAMETERS
   142- 7819	CLOCK HANDLER -- COPYRIGHT STATEMENT
   143- 7861	CLOCK TICK RECOGNITION
   144- 7925	QUEUED PROTOCOL DRIVER -- COPYRIGHT STATEMENT
   147- 8120	QUEUED PROTOCOL DRIVER -- PROTOCOL PACKET SERVICE DISPATCH
   148- 8159	QUEUED PROTOCOL DRIVER -- DISPATCH TABLE
   149- 8196	QUEUED PROTOCOL DRIVER -- UNRECOGNIZED FUNCTION
   150- 8206	QUEUED PROTOCOL DRIVER -- ENABLE/DISABLE REMOTE TERMINALS
   151- 8217	QUEUED PROTOCOL DRIVER -- ENABLE/DISABLE SENDALL AND XOFF PROCESSING
   152- 8230	QUEUED PROTOCOL DRIVER -- ENABLE/DISABLE SENDALLS
   153- 8251	QUEUED PROTOCOL DRIVER -- HANGUP
   154- 8297	QUEUED PROTOCOL DRIVER -- ACKNOWLEDGE DEVICE
   155- 8309	QUEUED PROTOCOL DRIVER -- SET LINE ALLOCATION
   156- 8323	QUEUED PROTOCOL DRIVER -- SET LINE SPEED
   157- 8379	QUEUED PROTOCOL DRIVER -- STOP LINE INPUT
   158- 8410	QUEUED PROTOCOL DRIVER -- BREAK-THROUGH WRITE
   159- 8427	QUEUED PROTOCOL DRIVER -- XOFF
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22
TABLE OF CONTENTS

   160- 8455	QUEUED PROTOCOL DRIVER -- XON
   161- 8487	QUEUED PROTOCOL DRIVER -- HERE IS INITIAL STATUS
   162- 8528	QUEUED PROTOCOL DRIVER -- RETURN TIME OF DAY
   163- 8543	QUEUED PROTOCOL DRIVER -- STRING DATA
   164- 8576	QUEUED PROTOCOL DRIVER -- LINE NUMBER - CHARACTER
   165- 8621	QUEUED PROTOCOL DRIVER -- RETURN TIME OF DAY
   166- 8645	QUEUED PROTOCOL DRIVER -- FLUSH DEVICE OUTPUT QUEUE
   167- 8664	QUEUED PROTOCOL DRIVER -- RECIEVE KLINIK PARAMETERS
   168- 8684	QUEUED PROTOCOL DRIVER -- SET/CLEAR HOST DEBUG MODE
   169- 8699	QUEUED PROTOCOL DRIVER -- SENDALL
   170- 8848	QUEUED PROTOCOL DRIVER -- COPY BUFFER
   171- 8892	QUEUED PROTOCOL DRIVER -- MAP DH-11 TO DM-11
   172- 8921	QUEUED PROTOCOL DRIVER -- FIND LINE SPEED
   173- 8954	QUEUED PROTOCOL DRIVER -- FIND DEVICE NAME
   174- 8989	QUEUED PROTOCOL DRIVER -- FIND DEVICE NAME
   175- 9078	DTE-20 DRIVER -- COPYRIGHT STATEMENT
   176- 9122	DTE-20 DRIVER -- DTE-20 INTERRUPT HEAD
   177- 9198	DTE-20 DRIVER -- TO-10 DONE SERVICE
   178- 9302	DTE-20 DRIVER -- TO-11 DONE SERVICE
   179- 9418	DTE-20 DRIVER -- DOORBELL SERVICE
   180- 9555	DTE-20 DRIVER -- START TO ELEVEN DIRECT TRANSFER
   181- 9623	DTE-20 DRIVER -- START TO ELEVEN INDIRECT TRANSFER
   182- 9693	DTE-20 DRIVER -- UPDATE AND TRANSMIT FRONT-END KEEP-ALIVE COUNT
   183- 9728	DTE-20 DRIVER -- START TO TEN QUEUE
   184- 9789	DTE-20 DRIVER -- SEND STATUS TO TEN
   185- 9824	DTE-20 DRIVER -- GET A BUFFER FOR INCOMING TRANSFER
   186- 9875	DTE-20 DRIVER -- START BYTE TRANSFER
   187- 9901	DTE-20 DRIVER -- LOAD TO-11 QUEUE NODE
   188- 9927	TERMINAL DRIVER -- COPYRIGHT STATEMENT
   189-10051	TERMINAL DRIVER -- DEFINITIONS
   192-10270	TERMINAL DRIVER -- TTINI (TTY QUEUE SERVICE)
   193-10310	TERMINAL DRIVER -- TIMEOUT SERVICE
   194-10329	TERMINAL DRIVER -- ACK ALL SERVICE
   195-10346	TERMINAL DRIVER -- QUEUED PROTOCOL KEEP-ALIVE SERVICE
   196-10436	TERMINAL DRIVER -- GENERAL ERROR LOGGING
   197-10449	TERMINAL DRIVER -- CTY SERVICE
   198-10497	TERMINAL DRIVER -- CTY I/O DONE SERVICE
   199-10511	TERMINAL DRIVER -- CTY INPUT SERVICE
   200-10528	TERMINAL DRIVER -- CTY OUTPUT SERVICE
   201-10557	TERMINAL DRIVER -- $DHOUT (DH-11 OUTPUT INTERRUPT)
   202-10600	TERMINAL DRIVER -- STTYDN (REMOVE PROCESSED OUTPUT NODE)
   204-10671	TERMINAL DRIVER -- STNXT (START NEXT OUTPUT OPERATION)
   205-10718	TERMINAL DRIVER -- .DHSTO (START DH-11 OUTPUT)
   206-10747	TERMINAL DRIVER -- $TTOUT (DL11 OUTPUT INTERRUPT)
   207-10778	TERMINAL DRIVER -- .DLSTO (START DL-11 OUTPUT)
   208-10805	TERMINAL DRIVER -- .TTACK (ACKNOWLEDGE A TTY LINE)
   209-10852	TERMINAL DRIVER -- OUTPT3 (PDP-11 CTY OUTPUT ROUTINES)
   210-10930	TERMINAL DRIVER -- INPTT (PDP-11 CTY INPUT ROUTINES)
   211-10965	TERMINAL DRIVER -- ECHOB (PDP-11 CTY ECHO ROUTINES)
   212-11081	TERMINAL DRIVER -- .KW11S (KW11 LINE CLOCK INTERRUPT)
   213-11143	TERMINAL DRIVER -- $DHINP (DH-11 INPUT INTERRUPT)
   215-11315	TERMINAL DRIVER -- $TTINP (DL-11 INPUT INTERRUPT)
   216-11348	TERMINAL DRIVER -- TTSTCH (STORE CHARACTER IN TO10Q)
   217-11449	TERMINAL DRIVER -- .DLINT (DL-11E DATASET INTERRUPT SERVICE)
   218-11504	TERMINAL DRIVER -- TTCTY (CTY SERVICE)
   219-11651	TERMINAL DRIVER -- DHSAV (DH-11 REGISTER SAVE/RESTORE CO-ROUTINE)
   220-11710	TERMINAL DRIVER -- .STDHL (SET UP DH-11 LINE NUMBER IN CONTROLLER)
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22
TABLE OF CONTENTS

   221-11744	TERMINAL DRIVER -- .DHSPR (RESET TO DEFAULT AUTO-BAUD SPEED)
   222-11775	TERMINAL DRIVER -- .DHSPF (FLAG AUTO-BAUD REPORT)
   223-11804	TERMINAL DRIVER -- .DHSPD (SET LINE SPEED)
   224-11846	TERMINAL DRIVER -- $DMINT (DM-11/BB MODEM CONTROL INTERRUPT)
   225-11953	TERMINAL DRIVER -- .STTYD (DIALUP/HANGUP SERVICE)
   226-11997	TERMINAL DRIVER -- .DMHUP (DM-11/BB HANGUP)
   227-12026	TERMINAL DRIVER -- .STPDM (STOP DM-11/BB SCAN)
   228-12055	TERMINAL DRIVER -- .DLHUP (DL-11E HANGUP)
   229-12107	TERMINAL DRIVER -- .DLTMO (DL-11E MODEM CONTROL TIMEOUT)
   230-12243	TERMINAL DRIVER -- .DHTMO (DH-11 CONTROLLER TIMEOUT)
   231-12416	TERMINAL DRIVER -- .DMTMO (DM-11/BB MODEM CONTROL TIMEOUT)
   232-12512	TERMINAL DRIVER -- .TTFDI (INPUT CONTROL SERVICE)
   233-12550	TERMINAL DRIVER -- .TTERL (TERMINAL ERROR LOGGING)
   234-12607	TERMINAL DRIVER -- .TTXOF (DEVICE DEPENDENT XOFF PROCESSING)
   235-12659	TERMINAL DRIVER -- .TTSTP (STOP TERMINAL OUTPUT)
   236-12684	TERMINAL DRIVER -- .TTXON (DEVICE DEPENDENT XON PROCESSING)
   237-12751	TERMINAL DRIVER -- .TTRST (RESET A TERMINAL LINE)
   238-12794	TERMINAL DRIVER -- CHECK INPUT XOFF DELAY
   239-12822	TERMINAL DRIVER -- .TTICK (INPUT BUFFER CHECKS)
   240-12857	TERMINAL DRIVER -- .TTQDS (QUEUED PROTOCOL INPUT DISABLE SERVICE)
   241-12902	TERMINAL DRIVER -- .TTIXC (INPUT CONTROL CHECKS)
   242-12935	TERMINAL DRIVER -- .TTDIS (DISABLE INPUT FROM LINE)
   243-13015	TERMINAL DRIVER -- .TTENB (ENABLE INPUT FOR LINE)
   244-13082	TERMINAL DRIVER -- .TTBTW (BREAK-THROUGH WRITE FUNCTION)
   245-13138	TERMINAL DRIVER -- BLDPKT (BUILD A TERMINAL PACKET)
   246-13174	TERMINAL DRIVER -- .TTSW2 (FIND OFFSET INTO "STSW2" TABLE)
   247-13196	TERMINAL DRIVER -- .TFXON (FORCE AN XON FOR A LINE)
   249-13238	SYSTEM COMMON SUBROUTINES -- COPYRIGHT STATEMENT
   251-13324	SCOMM MODULE -- BITTBL (ASH/BIC/BIS SIMULATION)
   252-13344	SCOMM MODULE -- .CEFN   (CONVERT EFN)
   253-13415	SCOMM MODULE -- .CKDEL  (CLOCK DELETE)
   255-13497	SCOMM MODULE -- ..ERLG	(ERROR LOGGING)
   256-13551	SCOMM MODULE -- ..IODN	(SUBROUTINE TO COMPLETE I/O)
   257-13607	SCOMM MODULE -- ..DQRN	(DEQUEUE A NORMAL REQUEST)
   258-13725	SCOMM MODULE -- ..SEFN	(SET EVENT FLAG)
   259-13766	SCOMM MODULE -- ..DSEV	(DECLARE SIGNIFICANT EVENT)
   260-13784	SCOMM MODULE -- DIV216   (DIV R2 BY 16)
   261-13812	SCOMM MODULE -- ..NDEL	(NODE DELETE)
   262-13839	SCOMM MODULE -- ..IPRI	(INSERT NODE BY PRIORITY)
   263-13878	SCOMM MODULE -- ..NADD	(NODE ADD)
   264-13907	SCOMM MODULE -- ..PICK	(PICK A NODE)
   265-13952	SCOMM MODULE -- ..ENB0	(ENABLE TASK SWITCHING)
   266-13995	SCOMM MODULE -- ..FSTD	(FIND STD ENTRY)
   267-14046	SCOMM MODULE -- ..ALCB/..ALC2	(ALLOCATE CORE)
   268-14138	SCOMM MODULE -- ..DECB/..DECN/..DEC2 (DEALLOCATE CORE)
   269-14235	SCOMM MODULE -- ..ALOW	(ALLOCATE OR WAIT)
   270-14256	SCOMM MODULE -- ..STTY (START TERMINAL OUTPUT)
   271-14387	SCOMM MODULE -- ..STPT	(STOP TTY)
   272-14465	SCOMM MODULE -- ..STCH	(STORE CHARACTER IN TO 10 QUEUE)
   273-14506	SCOMM MODULE -- ..SACK	(SEND ACKNOWLEDGEMENT)
   274-14553	SCOMM MODULE -- ..STFC	(STORE FUNCTION)
   275-14609	SCOMM MODULE -- ..STIN	(START INDIRECT FUNCTION)
   276-14690	SCOMM MODULE -- ..STQ	(STORE IN TO 10 QUEUE)
   277-14756	SCOMM MODULE -- ..WFED	(WAIT FOR EXAMINE/DEPOSIT)
   279-14993	SCOMM MODULE -- ..SWED	(START AND WAIT FOR EXAMINE/DEPOSIT)
   280-15046	SCOMM MODULE -- ..DTSP	(STOP DTE PROTOCOLS)
   281-15071	SCOMM MODULE -- ..DTP2	(START SECONDARY PROTOCOL)
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22
TABLE OF CONTENTS

   282-15098	SCOMM MODULE -- ..DTP1 (START PRIMARY PROTOCOL)
   283-15124	SCOMM MODULE -- ..VXFR	(VALADATE TRANSFER)
   284-15278	SCOMM MODULE -- ..BLXO	(BLOCK OUTPUT) ..BLXI  (BLOCK INPUT)
   285-15375	SCOMM MODULE -- ..VTOL	(MAP VIRTUAL TO LOGICAL BLOCK, EXTERNAL)
   286-15460	SCOMM MODULE -- ..VVLL	(MAP VIRTUAL TO LOGICAL BLOCK, INTERNAL)
   288-15561	END
RSXFC	-- RSX20F PARAMETER FIL	MACRO M1113  10-NOV-81 17:22  PAGE 1


      1						.TITLE	RSXFC	-- RSX20F PARAMETER FILE (TOPS-10 SYSTEM DEFINITION)
      2						.IDENT	/013100/
      3					;
      4					;                             COPYRIGHT (C) 1977, 1978 BY
      5					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
      6					;
      7					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
      8					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
      9					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
     10					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
     11					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
     12					;
     13					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
     14					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
     15					;       CORPORATION.
     16					;
     17					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
     18					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
     19					;
     20					; VERSION 13-10
     21					;
     22					; ALAN D. PECKHAM  19-APR-77
     23					;
     24					; MODIFIED BY:
     25					;
     26					;		R. BELANGER -- ELIMINATE 1090T "ARPA" CONFIGURATTION
     27					;		R. BELANGER -- ADD 1091 CONFIGURATION
     28					;
     29					; FUNCTION: THIS MODULE PROVIDES THE PARAMETERS FOR ASSEMBLY OF RSX20F FOR
     30					;  THE TOPS-10 SYSTEM.
     31					;
     32					; EQUATED SYMBOLS
     33					;
     34		000001 				$TOP10	=1	; DEFINE TOPS-10 OPTION
     35
     36		000001 				$LP20	=1	; INCLUDE LP20 DRIVER
     37		000002 				L$$P20	=2	; INCLUDE 2 LP-20'S
     38		000001 				$CD11	=1	; INCLUDE CD11 CARD READER DRIVER
     39		000001 				$RP04	=1	; INCLUDE RP04 DISK DRIVER
     40		000001 				$FE	=1	; INCLUDE FE PSEUDO-DEVICE DRIVER
     41		000001 				$F11	=1	; INCLUDE FILES-11 ACP
     42		000001 				$DH11	=1	; INCLUDE DH11 DRIVER
     43		000010 				D$$H11	=8.	; INCLUDE 8 DH-11'S
     44		000001 				$DBDTE	=1	; INCLUDE DTE20 DEBUGGING CODE
     45		000001 				$DTE	=1	; INCLUDE DTE20 DTE DRIVER
     46		000001 				R$$11D	=1	; RSX-11D BASE
     47
     48					.IF DF	$T1091
     49						$TOP10	=1	; DEFINE TOPS-10 BASE FOR 1091
     50					.ENDC			; $T1091
     51
     52					.IF DF	$TOP10
     53					.IF NDF	$T1091
     54		000001 				$DTA	=1	; INCLUDE DECTAPE DRIVER FOR TOPS-10
     55					.IFF
     56						$RX11	=1	; INCLUDE FLOPPY DRIVER FOR TOPS-10/1091
     57					.ENDC			; $T1091
RSXFC	-- RSX20F PARAMETER FIL	MACRO M1113  10-NOV-81 17:22  PAGE 1-1


     58					.ENDC			; $TOP10
     59
     60					.IF DF	$TOP20
     61						$RX11	=1	; INCLUDE FLOPPY DRIVER
     62					.ENDC			; $TOP20
RSX20F	-- RESIDENT EXECUTIVE (	MACRO M1113  10-NOV-81 17:22  PAGE 2


     64						.TITLE	RSX20F	-- RESIDENT EXECUTIVE (SYSTEM DEFINITION)
     65						.IDENT	/014450/
     66						.ENABL	AMA
     67						.LIST	MEB
     68						.NLIST	CND
     69					;
     70					;                             COPYRIGHT (C) 1975, 1978 BY
     71					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
     72					;
     73					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
     74					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
     75					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
     76					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
     77					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
     78					;
     79					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
     80					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
     81					;       CORPORATION.
     82					;
     83					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
     84					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
     85					;
     86					; R.  MCLEAN   19-MAR-75
     87					;
     88					;  VERSION 14-45
     89					;
     90					; MODIFIED BY:
     91					;
RSX20F	-- RESIDENT EXECUTIVE (	MACRO M1113  10-NOV-81 17:22  PAGE 3


     93					;
     94					; SET VERSION OF RSX20F EXEC HERE
     95					;
     96		000014 			RSX$$V	=	14		; VERSION 14
     97		000045 			RSX$$E	=	45		; EDIT 45
     98					;
     99					; RELEASE VERSION
    100					;
    101		000126 			RSX$$K	=	'V		; KEY FOR RELEASE-TYPE
    102									; "V" -- RELEASE
    103									; "X" -- EXPERIMENTAL
    104									; "Y" -- FIELD/LOAD TEST
    105		000000 			RSX$$F	=	0		; DEFINE FORM AS NULL
    108		000101 			RSX$$F	=	'A		; TOPS-10 FORM OF THE EXEC.
    119					;
    120					; DTE-20 REGISTER OFFSETS
    121					;
    122		000036 			DAG3	=36
    123		000034 			STATD	=34
    124		000032 			DAG2	=32
    125		000030 			DAG1	=30
    126		000022 			T11AD	=22
    127		000020 			T10AD	=20
    128		000016 			T11BC	=16
    129		000010 			TNAD1	=10
    130		000012 			TNAD2	=12
    131		000006 			DXWD1	=6
    132		000004 			DXWD2	=4
    133		000002 			DXWD3	=2
RSX20F	-- RESIDENT EXECUTIVE (	MACRO M1113  10-NOV-81 17:22  PAGE 4


    135					;+
    136					; MACRO TO SET IDENT FOR EXEC MODULES.
    137					; FORMAT OF CALL IS:
    138					;	IDENT$	VERSION,EDIT
    139					; OR
    140					;	IDENT$	VERSION,EDIT,RSX$$F
    141					; IF MODULE CODING CHANGES WITH DIFFERENT FORMS
    142					;-
    143
    144						.MACRO	IDENT$ VER,EDT,FRM,NUM
    145						.IF	B,NUM
    146						.IF	B,FRM
    147						IDENT$	\VER,\EDT,0,0
    148						.IFF
    149						.IF	EQ,<FRM-'A>
    150						IDENT$	\VER,\EDT,A,0
    151						.IFF
    152						.IF	EQ,<FRM-'B>
    153						IDENT$	\VER,\EDT,B,0
    154						.IFF
    155						IDENT$	\VER,\EDT,E,0
    156						.ENDC
    157						.ENDC
    158						.ENDC
    159						.MEXIT
    160						.IFF
    161						.IF	GE,VER-10
    162						.IF	GE,EDT-10
    163						.LIST
    164						.IDENT	/'FRM'VER'EDT'0/
    165						.NLIST
    166						.IFF
    167						.LIST
    168						.IDENT	/'FRM'VER'0'EDT'0/
    169						.NLIST
    170						.ENDC
    171						.IFF
    172						.IF	GE,EDT-10
    173						.LIST
    174						.IDENT	/'FRM'0'VER'EDT'0/
    175						.NLIST
    176						.IFF
    177						.LIST
    178						.IDENT	/'FRM'0'VER'0'EDT'0/
    179						.NLIST
    180						.ENDC
    181						.ENDC
    182						.ENDC
    183						.ENDM	IDENT$
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 6


    186						.TITLE	LC -- LOW CORE FOR RSX20F
    187	000000					IDENT$	RSX$$V,RSX$$E,RSX$$F
						.IDENT	/A14450/
    188					;
    189					;
    190					;                             COPYRIGHT (C) 1975, 1978 BY
    191					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
    192					;
    193					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
    194					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
    195					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
    196					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
    197					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
    198					;
    199					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
    200					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
    201					;       CORPORATION.
    202					;
    203					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
    204					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
    205					;
    206					;		MODULE: LOW CORE
    207					;
    208					;		VERSION: 14-36
    209					;
    210					;		AUTHOR: R. MCLEAN
    211					;
    212					;		DATE: 19 JUL 75
    213					;
    214					;
    215					;	THIS MODULE CONTAINS:
    216					;
    217					;	1 -- CODE TO SERVICE LOW CORE TRAPS AND ERRORS
    218					;	2 -- TRAP VECTORS
    219					;	3 -- SYSTEM COMMON DATABASE
    220					;	4 -- INITIALIZATION CODE
    221					;	5 -- PATCH SPACE
    222					;
    223					; MODIFICATIONS:
    224					;
    225					;	NO.	DATE		PROGRAMMER	PURPOSE
    226					;	---	----		----------	-------
    227					;	001	03-FEB-77	R. BELANGER	ADD DL11E INTERRUPT VECTORS
    228					;	002	15-MAR-77	R. BELANGER	LIMIT SIZE OF PATCH SPACE
    229					;						TO 40 BYTES AND DEFINE SYMBOL .PAT..
    230					;	003	18-AUG-77	R. BELANGER	DIFFERENTIATE BETWEEN DTE-20
    231					;						BUS TIMEOUTS AND OTHERS
    232					;	004	28-AUG-77	R. BELANGER	LOAD CRASH CODE INTO 0 AND 2
    233					; TCO 4.2212	08-MAR-79	R. BELANGER	INTEGRATE SYTEM COMMON DATABASE
    234					; TCO 4.2217	19-MAR-79	R. BELANGER	SNAPSHOT EBUS PARITY ERRORS
    235					; TCO 4.2245	10-APR-79	R. BELANGER	ADD FRAMING ERROR LOGGING
    236					; TCO 4.2263	29-MAY-79	R. BELANGER	PAD DECTAPE DRIVER DATABASE
    237					; TCO 4.2309	25-JUN-79	R. BELANGER	ADD BELL 212A MODEM SUPPORT
    238					; TCO 4.2314	29-JUN-79	R. BELANGER	SNAPSHOT I/O PAGE ON CRASH
    239					; TCO 4.2333	16-JUL-79	R. BELANGER	ADD KL10 HARDWARE DATA
    240					; TCO 5.1004	12-SEP-79	R. BELANGER	ADD NON-CONTIGUOUS DEVICE SUPPORT
    241					; TCO 5.1008	11-OCT-79	R. BELANGER	ADD EBUS PARITY ERROR AND DEX ERROR LOGGING
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 6-1


    242					; TCO 5.1009	15-0CT-79	R. BELANGER	ADD RH-11 ERROR LOGGING
    243					; TCO 5.1015	25-OCT-79	R. BELANGER	ADD TERMINAL INPUT CONTROL TABLE
    244					; TCO 4.1.1035	16-NOV-79	R. BELANGER	ADD QUEUE ARBITRATION
    245					; TCO 4.1.1066	10-JAN-80	R. BELANGER	ROUND-ROBIN DEFERRED ACKS
    246					; TCO 4.1.1091	12-FEB-80	R. BELANGER	FIX MISSING DM-11/BB'S
    247					; TCO 4.1.1092	25-FEB-80	R. BELANGER	LOCAL INPUT CONTROL
    248					; TCO 4.1.1104	05-MAR-80	R. BELANGER	CHANGE KEEP-ALIVE
    249					; TCO 4.1.1121	19-MAR-80	R. BELANGER	SUPPORT BLOCKED DTE-20
    250					; TCO 4.1.1137	-5-APR-80	R. BELANGER	REDEFINE PATCH SPACE TO UNUSED VECTORS
    251					;						REMOVE DEFERRED ACK SUPPORT
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 7


    253					;
    254					;
    255					; MACRO LIBRARY CALLS
    256					;
    257						.MCALL	.CRASH,MFPS,CALL
    258						.MCALL	.PUDEN,.STDEN,.ATLEN
    259						.MCALL	$DEF,F11DF$
    260						.MCALL	.TPDEN,.PUDEN,.DQPEN
    261
    262	000000					$DEF
    263	000000					F11DF$
    264
    265						.MACRO	RSXVR$ KEY,FRM,VER,EDT,NUM
    266						.IF	B,NUM
    267						.IF	NB,FRM
    268						RSXVR$	\KEY,\FRM,\VER,\EDT,0
    269						.IFF
    270						RSXVR$	\KEY,200,\VER,\EDT,0
    271						.ENDC
    272						.MEXIT
    273						.IFF
    274						.IF	GE,VER-10
    275						.IF	GE,EDT-10
    276						.ASCIZ	<KEY><FRM>\'VER'-'EDT'\<200>
    277						.IFF
    278						.ASCIZ	<KEY><FRM>\'VER'-0'EDT'\<200>
    279						.ENDC
    280						.IFF
    281						.IF	GE,EDT-10
    282						.ASCIZ	<KEY><FRM>\0'VER'-'EDT'\<200>
    283						.IFF
    284						.ASCIZ	<KEY><FRM>\0'VER'-0'EDT'\<200>
    285						.ENDC
    286						.ENDC
    287						.ENDC
    288						.ENDM	RSXVR$
    289					;
    290					;	MACRO FOR GENERATING LOW CORE
    291					;
    292						.MACRO	PSW	PRI,TRPADR,UNIT
    293						.IF	B,<TRPADR>
    294						 .WORD	.-LOWCOD+1
    295						.IFF
    296						 .WORD	TRPADR
    297						.ENDC		; IFB <TRPADR>
    298						.IF	B,<UNIT>
    299						 .WORD	0+<40*PRI>+4000
    300						.IFF
    301						 .WORD	UNIT+<40*PRI>+4000
    302						.ENDC		; IFB <UNIT>
    303						.ENDM		; PSW
    304					;
    305						.MACRO	DHPSW	U
    306						 .WORD	$DMINT		; DM-11/BB #'U INTERRUPT
    307						 .WORD	U+<40*6>+4000
    308						 .WORD	.-LOWCOD+1	; ILLEGAL INTERRUPT
    309						 .WORD	<40*6>+4000
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 7-1


    310						 .WORD	$DHINP		; DH-11 #'U INPUT INTERRUPT
    311						 .WORD	U+<40*6>+4000
    312						 .WORD	$DHOUT		; DH-11 #'U OUTPUT INTERRUPT
    313						 .WORD	U+<40*6>+4000
    314						.ENDM
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 8
LOW CORE -- TRAP VECTORS

    316						.SBTTL	LOW CORE -- TRAP VECTORS
    317
    318		000000'			LOWCOD==.
    319	000000					PSW	6		; ILLEGAL INTERRUPT
	000000	000001 				 .WORD	.-LOWCOD+1
	000002	004300 				 .WORD	0+<40*6>+4000
    320					;
    321	000004					PSW	7,COMTRP,0	; TRAP TO 4 (TIMEOUT)
	000004	011426'				 .WORD	COMTRP
	000006	004340 				 .WORD	0+<40*7>+4000
    322					;
    323	000010					PSW	7,COMTRP,2	; RESERVED INSTRUCTION
	000010	011426'				 .WORD	COMTRP
	000012	004342 				 .WORD	2+<40*7>+4000
    324					;
    325	000014					PSW	6,COMTRP,4	; T BIT OR BPT TRAP
	000014	011426'				 .WORD	COMTRP
	000016	004304 				 .WORD	4+<40*6>+4000
    326					;
    327	000020					PSW	6,COMTRP,6	; IOT TRAP
	000020	011426'				 .WORD	COMTRP
	000022	004306 				 .WORD	6+<40*6>+4000
    328					;
    329	000024					PSW	7,.PWRDN	; POWER FAIL (POWER DOWN)
	000024	017574'				 .WORD	.PWRDN
	000026	004340 				 .WORD	0+<40*7>+4000
    330					;
    331	000030					PSW	7,EMTTRP,STXDX	; EMT TRAP
	000030	013036'				 .WORD	EMTTRP
	000032	004340 				 .WORD	STXDX+<40*7>+4000
    332					;
    333	000034					PSW	6,.DRSRN	; TRAP TRAP
	000034	013352'				 .WORD	.DRSRN
	000036	004300 				 .WORD	0+<40*6>+4000
    334					;
    335	000040				.PAT1.::			; [4.1.1137] PATCH SPACE -- 20 BYTES
    336		000004 				.REPT	4
    337						PSW	6		; ILLEGAL INTERRUPTS
    338						.ENDR
	000040	000041 				 .WORD	.-LOWCOD+1
	000042	004300 				 .WORD	0+<40*6>+4000
	000044	000045 				 .WORD	.-LOWCOD+1
	000046	004300 				 .WORD	0+<40*6>+4000
	000050	000051 				 .WORD	.-LOWCOD+1
	000052	004300 				 .WORD	0+<40*6>+4000
	000054	000055 				 .WORD	.-LOWCOD+1
	000056	004300 				 .WORD	0+<40*6>+4000
    339					;
    340	000060					PSW	6,$TTINP,0	; TTY LINE 0 INPUT (CTY)
	000060	036166'				 .WORD	$TTINP
	000062	004300 				 .WORD	0+<40*6>+4000
    341	000064					PSW	6,$TTOUT,0	; TTY LINE 0 OUTPUT (CTY)
	000064	034224'				 .WORD	$TTOUT
	000066	004300 				 .WORD	0+<40*6>+4000
    342					;
    343		000002 				.REPT	2.
    344						PSW	6		; ILLEGAL TRAPS
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 8-1
LOW CORE -- TRAP VECTORS

    345						.ENDR
	000070	000071 				 .WORD	.-LOWCOD+1
	000072	004300 				 .WORD	0+<40*6>+4000
	000074	000075 				 .WORD	.-LOWCOD+1
	000076	004300 				 .WORD	0+<40*6>+4000
    346					;
    347	000100					PSW	6,.KW11S	; CLOCK INTERRUPT
	000100	035366'				 .WORD	.KW11S
	000102	004300 				 .WORD	0+<40*6>+4000
    348					;
    349		000002 				.REPT	2
    350						PSW	6		; ILLEGAL INTERRUPT
    351						.ENDR
	000104	000105 				 .WORD	.-LOWCOD+1
	000106	004300 				 .WORD	0+<40*6>+4000
	000110	000111 				 .WORD	.-LOWCOD+1
	000112	004300 				 .WORD	0+<40*6>+4000
    352					;
    353	000114					PSW	7,.PARER	; PARITY ERROR
	000114	011702'				 .WORD	.PARER
	000116	004340 				 .WORD	0+<40*7>+4000
    354					;
    355	000120				.PAT2.::			; [4.1.1137] PATCH SPACE -- 74 BYTES
    356		000017 				.REPT	15.
    357						PSW	6		; ILLEGAL INTERRUPT
    358						.ENDR
	000120	000121 				 .WORD	.-LOWCOD+1
	000122	004300 				 .WORD	0+<40*6>+4000
	000124	000125 				 .WORD	.-LOWCOD+1
	000126	004300 				 .WORD	0+<40*6>+4000
	000130	000131 				 .WORD	.-LOWCOD+1
	000132	004300 				 .WORD	0+<40*6>+4000
	000134	000135 				 .WORD	.-LOWCOD+1
	000136	004300 				 .WORD	0+<40*6>+4000
	000140	000141 				 .WORD	.-LOWCOD+1
	000142	004300 				 .WORD	0+<40*6>+4000
	000144	000145 				 .WORD	.-LOWCOD+1
	000146	004300 				 .WORD	0+<40*6>+4000
	000150	000151 				 .WORD	.-LOWCOD+1
	000152	004300 				 .WORD	0+<40*6>+4000
	000154	000155 				 .WORD	.-LOWCOD+1
	000156	004300 				 .WORD	0+<40*6>+4000
	000160	000161 				 .WORD	.-LOWCOD+1
	000162	004300 				 .WORD	0+<40*6>+4000
	000164	000165 				 .WORD	.-LOWCOD+1
	000166	004300 				 .WORD	0+<40*6>+4000
	000170	000171 				 .WORD	.-LOWCOD+1
	000172	004300 				 .WORD	0+<40*6>+4000
	000174	000175 				 .WORD	.-LOWCOD+1
	000176	004300 				 .WORD	0+<40*6>+4000
	000200	000201 				 .WORD	.-LOWCOD+1
	000202	004300 				 .WORD	0+<40*6>+4000
	000204	000205 				 .WORD	.-LOWCOD+1
	000206	004300 				 .WORD	0+<40*6>+4000
	000210	000211 				 .WORD	.-LOWCOD+1
	000212	004300 				 .WORD	0+<40*6>+4000
    359					;
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 8-2
LOW CORE -- TRAP VECTORS

    361	000214					PSW	6,$DTINT	; DECTAPE INTERRUPT
	000214	000000G				 .WORD	$DTINT
	000216	004300 				 .WORD	0+<40*6>+4000
    365					;
    366		000002 				.REPT	2.
    367						PSW	6		; ILLEGAL INTERRUPT
    368						.ENDR
	000220	000221 				 .WORD	.-LOWCOD+1
	000222	004300 				 .WORD	0+<40*6>+4000
	000224	000225 				 .WORD	.-LOWCOD+1
	000226	004300 				 .WORD	0+<40*6>+4000
    369					;
    370	000230					PSW	4,$CDINT	; CARD READER INTERRUPT
	000230	000000G				 .WORD	$CDINT
	000232	004200 				 .WORD	0+<40*4>+4000
    371					;
    372	000234				.PAT3.::			; [4.1.1137] PATCH SPACE -- 20 BYTES
    373		000004 				.REPT	4.
    374						PSW	6		; ILLEGAL INTERRUPT
    375						.ENDR
	000234	000235 				 .WORD	.-LOWCOD+1
	000236	004300 				 .WORD	0+<40*6>+4000
	000240	000241 				 .WORD	.-LOWCOD+1
	000242	004300 				 .WORD	0+<40*6>+4000
	000244	000245 				 .WORD	.-LOWCOD+1
	000246	004300 				 .WORD	0+<40*6>+4000
	000250	000251 				 .WORD	.-LOWCOD+1
	000252	004300 				 .WORD	0+<40*6>+4000
    376					;
    377	000254					PSW	4,.DBINT	; RH-11 (RP04/RP06) INTERRUPT
	000254	000000G				 .WORD	.DBINT
	000256	004200 				 .WORD	0+<40*4>+4000
    378					;
    379	000260					PSW	6		; ILLEGAL INTERRUPT
	000260	000261 				 .WORD	.-LOWCOD+1
	000262	004300 				 .WORD	0+<40*6>+4000
    380					;
    384	000264					PSW	6		; RX-11 INTERRUPT
	000264	000265 				 .WORD	.-LOWCOD+1
	000266	004300 				 .WORD	0+<40*6>+4000
    386					;
    387	000270					PSW	6		; ILLEGAL INTERRUPT
	000270	000271 				 .WORD	.-LOWCOD+1
	000272	004300 				 .WORD	0+<40*6>+4000
    388	000274					PSW	6		; ILLEGAL INTERRUPT
	000274	000275 				 .WORD	.-LOWCOD+1
	000276	004300 				 .WORD	0+<40*6>+4000
    389					;
    390	000300					PSW	6,$TTINP,1	; DL-11E # 0 INPUT (KLINIK) INTERRUPT
	000300	036166'				 .WORD	$TTINP
	000302	004301 				 .WORD	1+<40*6>+4000
    391	000304					PSW	6,$TTOUT,1	; DL-11E # 0 OUTPUT (KLINIK) INTERRUPT
	000304	034224'				 .WORD	$TTOUT
	000306	004301 				 .WORD	1+<40*6>+4000
    392					;
    393	000310					PSW	6		; ILLEGAL INTERRUPT
	000310	000311 				 .WORD	.-LOWCOD+1
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 8-3
LOW CORE -- TRAP VECTORS

	000312	004300 				 .WORD	0+<40*6>+4000
    394	000314					PSW	6		; ILLEGAL INTERRUPT
	000314	000315 				 .WORD	.-LOWCOD+1
	000316	004300 				 .WORD	0+<40*6>+4000
    395					;
    396		000000 				U=0
    397						.IRP	U,<0,1,2,3,4,5,6,7>
    398						DHPSW	U
    399					;
    400						.ENDR
	000320	037626'				 .WORD	$DMINT		; DM-11/BB #0 INTERRUPT
	000322	004300 				 .WORD	0+<40*6>+4000
	000324	000325 				 .WORD	.-LOWCOD+1	; ILLEGAL INTERRUPT
	000326	004300 				 .WORD	<40*6>+4000
	000330	035534'				 .WORD	$DHINP		; DH-11 #0 INPUT INTERRUPT
	000332	004300 				 .WORD	0+<40*6>+4000
	000334	033552'				 .WORD	$DHOUT		; DH-11 #0 OUTPUT INTERRUPT
	000336	004300 				 .WORD	0+<40*6>+4000
	000340	037626'				 .WORD	$DMINT		; DM-11/BB #1 INTERRUPT
	000342	004301 				 .WORD	1+<40*6>+4000
	000344	000345 				 .WORD	.-LOWCOD+1	; ILLEGAL INTERRUPT
	000346	004300 				 .WORD	<40*6>+4000
	000350	035534'				 .WORD	$DHINP		; DH-11 #1 INPUT INTERRUPT
	000352	004301 				 .WORD	1+<40*6>+4000
	000354	033552'				 .WORD	$DHOUT		; DH-11 #1 OUTPUT INTERRUPT
	000356	004301 				 .WORD	1+<40*6>+4000
	000360	037626'				 .WORD	$DMINT		; DM-11/BB #2 INTERRUPT
	000362	004302 				 .WORD	2+<40*6>+4000
	000364	000365 				 .WORD	.-LOWCOD+1	; ILLEGAL INTERRUPT
	000366	004300 				 .WORD	<40*6>+4000
	000370	035534'				 .WORD	$DHINP		; DH-11 #2 INPUT INTERRUPT
	000372	004302 				 .WORD	2+<40*6>+4000
	000374	033552'				 .WORD	$DHOUT		; DH-11 #2 OUTPUT INTERRUPT
	000376	004302 				 .WORD	2+<40*6>+4000
	000400	037626'				 .WORD	$DMINT		; DM-11/BB #3 INTERRUPT
	000402	004303 				 .WORD	3+<40*6>+4000
	000404	000405 				 .WORD	.-LOWCOD+1	; ILLEGAL INTERRUPT
	000406	004300 				 .WORD	<40*6>+4000
	000410	035534'				 .WORD	$DHINP		; DH-11 #3 INPUT INTERRUPT
	000412	004303 				 .WORD	3+<40*6>+4000
	000414	033552'				 .WORD	$DHOUT		; DH-11 #3 OUTPUT INTERRUPT
	000416	004303 				 .WORD	3+<40*6>+4000
	000420	037626'				 .WORD	$DMINT		; DM-11/BB #4 INTERRUPT
	000422	004304 				 .WORD	4+<40*6>+4000
	000424	000425 				 .WORD	.-LOWCOD+1	; ILLEGAL INTERRUPT
	000426	004300 				 .WORD	<40*6>+4000
	000430	035534'				 .WORD	$DHINP		; DH-11 #4 INPUT INTERRUPT
	000432	004304 				 .WORD	4+<40*6>+4000
	000434	033552'				 .WORD	$DHOUT		; DH-11 #4 OUTPUT INTERRUPT
	000436	004304 				 .WORD	4+<40*6>+4000
	000440	037626'				 .WORD	$DMINT		; DM-11/BB #5 INTERRUPT
	000442	004305 				 .WORD	5+<40*6>+4000
	000444	000445 				 .WORD	.-LOWCOD+1	; ILLEGAL INTERRUPT
	000446	004300 				 .WORD	<40*6>+4000
	000450	035534'				 .WORD	$DHINP		; DH-11 #5 INPUT INTERRUPT
	000452	004305 				 .WORD	5+<40*6>+4000
	000454	033552'				 .WORD	$DHOUT		; DH-11 #5 OUTPUT INTERRUPT
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 8-4
LOW CORE -- TRAP VECTORS

	000456	004305 				 .WORD	5+<40*6>+4000
	000460	037626'				 .WORD	$DMINT		; DM-11/BB #6 INTERRUPT
	000462	004306 				 .WORD	6+<40*6>+4000
	000464	000465 				 .WORD	.-LOWCOD+1	; ILLEGAL INTERRUPT
	000466	004300 				 .WORD	<40*6>+4000
	000470	035534'				 .WORD	$DHINP		; DH-11 #6 INPUT INTERRUPT
	000472	004306 				 .WORD	6+<40*6>+4000
	000474	033552'				 .WORD	$DHOUT		; DH-11 #6 OUTPUT INTERRUPT
	000476	004306 				 .WORD	6+<40*6>+4000
	000500	037626'				 .WORD	$DMINT		; DM-11/BB #7 INTERRUPT
	000502	004307 				 .WORD	7+<40*6>+4000
	000504	000505 				 .WORD	.-LOWCOD+1	; ILLEGAL INTERRUPT
	000506	004300 				 .WORD	<40*6>+4000
	000510	035534'				 .WORD	$DHINP		; DH-11 #7 INPUT INTERRUPT
	000512	004307 				 .WORD	7+<40*6>+4000
	000514	033552'				 .WORD	$DHOUT		; DH-11 #7 OUTPUT INTERRUPT
	000516	004307 				 .WORD	7+<40*6>+4000
    401		000040 				U=<20-D$$H11>*4
    402					;
    403	000520				.PAT4.::			; [4.1.1137] PATCH SPACE -- 200 BYTES
    404		000040 				.REPT	U
    405						PSW	6		; ILLEGAL INTERRUPT
    406						.ENDR
	000520	000521 				 .WORD	.-LOWCOD+1
	000522	004300 				 .WORD	0+<40*6>+4000
	000524	000525 				 .WORD	.-LOWCOD+1
	000526	004300 				 .WORD	0+<40*6>+4000
	000530	000531 				 .WORD	.-LOWCOD+1
	000532	004300 				 .WORD	0+<40*6>+4000
	000534	000535 				 .WORD	.-LOWCOD+1
	000536	004300 				 .WORD	0+<40*6>+4000
	000540	000541 				 .WORD	.-LOWCOD+1
	000542	004300 				 .WORD	0+<40*6>+4000
	000544	000545 				 .WORD	.-LOWCOD+1
	000546	004300 				 .WORD	0+<40*6>+4000
	000550	000551 				 .WORD	.-LOWCOD+1
	000552	004300 				 .WORD	0+<40*6>+4000
	000554	000555 				 .WORD	.-LOWCOD+1
	000556	004300 				 .WORD	0+<40*6>+4000
	000560	000561 				 .WORD	.-LOWCOD+1
	000562	004300 				 .WORD	0+<40*6>+4000
	000564	000565 				 .WORD	.-LOWCOD+1
	000566	004300 				 .WORD	0+<40*6>+4000
	000570	000571 				 .WORD	.-LOWCOD+1
	000572	004300 				 .WORD	0+<40*6>+4000
	000574	000575 				 .WORD	.-LOWCOD+1
	000576	004300 				 .WORD	0+<40*6>+4000
	000600	000601 				 .WORD	.-LOWCOD+1
	000602	004300 				 .WORD	0+<40*6>+4000
	000604	000605 				 .WORD	.-LOWCOD+1
	000606	004300 				 .WORD	0+<40*6>+4000
	000610	000611 				 .WORD	.-LOWCOD+1
	000612	004300 				 .WORD	0+<40*6>+4000
	000614	000615 				 .WORD	.-LOWCOD+1
	000616	004300 				 .WORD	0+<40*6>+4000
	000620	000621 				 .WORD	.-LOWCOD+1
	000622	004300 				 .WORD	0+<40*6>+4000
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 8-5
LOW CORE -- TRAP VECTORS

	000624	000625 				 .WORD	.-LOWCOD+1
	000626	004300 				 .WORD	0+<40*6>+4000
	000630	000631 				 .WORD	.-LOWCOD+1
	000632	004300 				 .WORD	0+<40*6>+4000
	000634	000635 				 .WORD	.-LOWCOD+1
	000636	004300 				 .WORD	0+<40*6>+4000
	000640	000641 				 .WORD	.-LOWCOD+1
	000642	004300 				 .WORD	0+<40*6>+4000
	000644	000645 				 .WORD	.-LOWCOD+1
	000646	004300 				 .WORD	0+<40*6>+4000
	000650	000651 				 .WORD	.-LOWCOD+1
	000652	004300 				 .WORD	0+<40*6>+4000
	000654	000655 				 .WORD	.-LOWCOD+1
	000656	004300 				 .WORD	0+<40*6>+4000
	000660	000661 				 .WORD	.-LOWCOD+1
	000662	004300 				 .WORD	0+<40*6>+4000
	000664	000665 				 .WORD	.-LOWCOD+1
	000666	004300 				 .WORD	0+<40*6>+4000
	000670	000671 				 .WORD	.-LOWCOD+1
	000672	004300 				 .WORD	0+<40*6>+4000
	000674	000675 				 .WORD	.-LOWCOD+1
	000676	004300 				 .WORD	0+<40*6>+4000
	000700	000701 				 .WORD	.-LOWCOD+1
	000702	004300 				 .WORD	0+<40*6>+4000
	000704	000705 				 .WORD	.-LOWCOD+1
	000706	004300 				 .WORD	0+<40*6>+4000
	000710	000711 				 .WORD	.-LOWCOD+1
	000712	004300 				 .WORD	0+<40*6>+4000
	000714	000715 				 .WORD	.-LOWCOD+1
	000716	004300 				 .WORD	0+<40*6>+4000
    407					;
    408	000720					PSW	6,$TTINP,4	; DL-11E # 3 INPUT (DN20 #2)
	000720	036166'				 .WORD	$TTINP
	000722	004304 				 .WORD	4+<40*6>+4000
    409	000724					PSW	6,$TTOUT,4	; DL-11E # 3 OUTPUT (DN20 #2)
	000724	034224'				 .WORD	$TTOUT
	000726	004304 				 .WORD	4+<40*6>+4000
    410					;
    411	000730					PSW	6,$TTINP,3	; DL-11E # 2 INPUT (DN20 #1)
	000730	036166'				 .WORD	$TTINP
	000732	004303 				 .WORD	3+<40*6>+4000
    412	000734					PSW	6,$TTOUT,3	; DL-11E # 2 OUTPUT (DN20 #1)
	000734	034224'				 .WORD	$TTOUT
	000736	004303 				 .WORD	3+<40*6>+4000
    413					;
    414	000740					PSW	6,$TTINP,2	; DL-11E # 1 INPUT (DN20 #0)
	000740	036166'				 .WORD	$TTINP
	000742	004302 				 .WORD	2+<40*6>+4000
    415	000744					PSW	6,$TTOUT,2	; DL-11E # 1 OUTPUT (DN20 #0)
	000744	034224'				 .WORD	$TTOUT
	000746	004302 				 .WORD	2+<40*6>+4000
    416					;
    418	000750					PSW	4,$LPINT,1	; LP-20 #1 INTERRUPT
	000750	000000G				 .WORD	$LPINT
	000752	004201 				 .WORD	1+<40*4>+4000
    419	000754					PSW	4,$LPINT,0	; LP-20 #0 INTERRUPT
	000754	000000G				 .WORD	$LPINT
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 8-6
LOW CORE -- TRAP VECTORS

	000756	004200 				 .WORD	0+<40*4>+4000
    424					;
    425		000004 				.REPT	4
    426						PSW	7,.DTINT	; DTE-20 # 0 INTERRUPT VECTORS
    427						.ENDR
	000760	027624'				 .WORD	.DTINT
	000762	004340 				 .WORD	0+<40*7>+4000
	000764	027624'				 .WORD	.DTINT
	000766	004340 				 .WORD	0+<40*7>+4000
	000770	027624'				 .WORD	.DTINT
	000772	004340 				 .WORD	0+<40*7>+4000
	000774	027624'				 .WORD	.DTINT
	000776	004340 				 .WORD	0+<40*7>+4000
    428					;
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 9
LOW CORE -- COMMON GLOBAL DATA

    430						.SBTTL	LOW CORE -- COMMON GLOBAL DATA
    431
    432	001000				.FESTB::
    433	001000	004150 				.WORD	<.LCEND-.FESTB>/2 ; [4.2333] WORD SIZE OF THIS STATUS BLOCK
    434	001002				.EXEND::
    435	001002	000000 	000000 			.LIMIT			; DEFINE LIMITS OF THE FRONT-END
    436									; FIRST WORD LOW LIMIT
    437									; SECOND WORD IS HIGH LIMIT
    438					;
    439					;	CURRENT TASK POINTER (POINTS TO ACTIVE TASK LIST NODE OF CURRENT TASK
    440					;
    441
    442	001006				.CRTSK::
    443	001006	000000 				.WORD	0
    444
    445	001010				.COMEF::
    446	001010	000000 	000000 			.WORD	0,0		; COMMON EVENT FLAGS
    447
    448	001014				.SERFG::
    449	001014	000000 				.WORD	0		; SIG EVENT FLAG
    450	001016				.SEWFL::
    451	001016	000000 				.WORD	0		; SIG EVENT WAIT FLAG
    452	001020				SPSAV::
    453	001020	000000 				.WORD	0		; SAVE AREA FOR STACK
    454					;
    455	001022				PARSAV::
    456	001022					.BLKW	2		; SAVE AREA FOR PARITY ERROR REGISTERS
    457									; (USED BY LC)
    458					;
    459					;	.PFAIL INDICATES POWER FAIL IN PROGRESS
    460					;	IT IS USED ONLY TO INDICATE TO PRI7 TASKS THAT
    461					;	POWER FAIL UNDERWAY AND A RETURN TO THE PROGRAM
    462					;	SHOULD NOT OCCUR
    463					;
    464	001026				.PFAIL::
    465	001026	000000 				.WORD	0
    466	001030				.PFIOW::
    467	001030	000000 				.WORD	0		; POWER FAIL RECOVERY FLAG
    468	001032				PWRXSP::
    469	001032	000000 				.WORD	0		; BUFFER FOR STACK POINTER
    470	001034				CROBAR::
    471	001034	000000 				.WORD	0		; POWER-UP CROBAR TIMER
    472	001036				.VERNO::
    473	001036					RSXVR$	RSX$$K,RSX$$F,RSX$$V,RSX$$E ; RSX20F VERSION NUMBER.
	001036	   126 	   101 	   061 		.ASCIZ	<126><101>\14-45\<200>
	001041	   064 	   055 	   064
	001044	   065 	   200 	   000
    474						.EVEN
    475	001050				.CKASS::
    476	001050	000000 				.WORD	0		; AST ADDRESS FOR CURRENT TASK (CLOCK)
    477	001052				.PFASS::
    478	001052	000000 				.WORD	0		; AST ADDRESS FOR CURRENT TASK (POWER FAIL)
    479
    480	001054					.BLKW	20
    481					;
    482	001114				.MSIZE::
    483	001114	001600 				.WORD	1600		; MEMORY SIZE
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 9-1
LOW CORE -- COMMON GLOBAL DATA

    484	001116				EMTSTK::
    485	001116	000000 				.WORD	0		; EMT SAVED DURING EMT STACK
    486	001120				TRPASV::
    487	001120	000000 				.WORD	0		; SAVED PS OF EMT/TRAP
    488
    489					;
    490					;	THE NEXT TWO BYTES MUST BE KEPT TOGETHER IN THEIR CURRENT ORDER !!!!
    491					;
    492
    493	001122				.NOERR::
    494	001122	000401 				.WORD	401		; DO NOT RECOGNIZE KL ERROR IF NON-ZERO
    495		001123'			.NOHLT	==	.NOERR+1	; DO NOT PANIC IF KL HALTS IF NON-ZERO
    496
    497	001124				.TKTN::
    498	001124	000000 				.WORD	0		; NON ZERO IF TKTN REQUIRED
    499	001126				.KLITK::
    500	001126	000000 				.WORD	0		; KL ATTENTION REQUEST
    501
    502	001130				.KLERQ::
    503	001130	000000 				.WORD	0		; KLERR SNAPSHOT INTERLOCK
    504
    505	001132				.KLIWD::
    506	001132	000000 				.WORD	0		; KL WORD TO DETERMINE BOOT PARAMETERS
    507
    508	001134				.TICKS::
    509	001134	000000 				.WORD	0		; CLOCK TICK COUNTER
    510	001136				.CLKSW::
    511	001136	000000 				.WORD	0		; CLOCK OVERFLOW SWITCH
    512	001140				.DATE::
    513	001140				.DATE3::
    514	001140	000000 				.WORD	0		; FRONT-END DATE VALID FLAG
    515									; FRONT-END DATE IS VALID IF .NE. 0
    516	001142				.YEAR::
    517	001142	003673 				.WORD	1979.		; DECIMAL YEAR
    518	001144				.DAY::
    519	001144	   000 				.BYTE	0.		; DAY OF MONTH
    520	001145				.MON::
    521	001145	   000 				.BYTE	0.		; MONTH OF YEAR
    522	001146				.DST::
    523	001146	   000 				.BYTE	0		; DAYLIGHT SAVING TIME FLAG
    524	001147				.DOW::
    525	001147	   000 				.BYTE	0		; DAY OF WEEK INDEX
    526	001150				.SSM::
    527	001150	000000 	000400 			.WORD	0,400		; ELAPSED TIME IN SECONDS SINCE MIDNIGHT
    528	001154				.TKPS::
    529	001154	000074 				.WORD	.CYLTM		; CLOCK RATE IN JIFFIES
    530
    531	001156				.SYUIC::
    532	001156	002405 				.WORD	5.*400+5.	; SYSTEM UIC [5,5]
    533	001160				.BTPRM::
    534	001160	000000 				.WORD	0		; BOOT PARAMETER
    535	001162				.BTSCH::
    536	001162	000000 				.WORD	0		; CHARACTER SAVED -- FOR SECONDARY PROTOCOL
    537	001164				.ACKAL::
    538	001164	000001 				.WORD	1		; ACK ALL SWITCH
    539	001166				.KLERW::
    540	001166	000000 				.WORD	0		; KL WORD FOR ERROR REPORTING BY SETSPD
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 9-2
LOW CORE -- COMMON GLOBAL DATA

    541	001170				.FEMOD::
    542	001170	000001 				.WORD	1		; FRONT END CONSOLE MODE FLAG
    543	001172				.KLRLD::
    544	001172	   000 				.BYTE	0		;KL RELOAD FLAG
    545	001173				.KLFCF::
    546	001173	   001 				.BYTE	1		;KL FAULT CONTINUATION FLAG
    547	001174				.KLFLG::
    548	001174	000000 				.WORD	0		; FLAG FOR PARSER TO INDICATE STATE OF KL10
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 10
LOW CORE -- KLINIK DATA BASE

    550						.SBTTL	LOW CORE -- KLINIK DATA BASE
    551					;
    552					;	NOTE --
    553					;	THE NEXT 32 BYTES MUST REMAIN CONTIGUOUS AND IN THE SAME ORDER
    554					;
    555
    556	001176				.KLNPB::
    557	001176	000026 				.WORD	KLNPLN		; KLINIK PARAMETER BLOCK LENGTH
    558									; BUFFER FOR PARAMETER SAVE STARTS HERE
    559	001200				.KLNLB::			;
    560	001200				.KLNBC::
    561	001200	000024 				.WORD	KLNPLN-2	; BYTE COUNT FOR TRANSFER
    562	001202				.KLNFT::
    563	001202	000000 				.WORD	0		; KLINIK ENABLE START TIME --
    564									;	SECONDS SINCE MIDNIGHT
    565	001204				.KLNFD::
    566	001204	   000 	   000 	   000 		.BYTE	0,0,0,0		; KLINIK ENABLE START DATE
	001207	   000
    567	001210				.KLNTT::
    568	001210	000000 				.WORD	0		; KLINIK ENABLE END TIME --
    569									;	 SECONDS SINCE MIDNIGHT
    570	001212				.KLNTD::
    571	001212	   000 	   000 	   000 		.BYTE	0,0,0,0		; KLINIK ENABLE END DATE
	001215	   000
    572	001216				.KLNMD::
    573	001216	   000 	   000 			.BYTE	0,0		; KLINIK MODE FLAGS
    574					.EVEN				;
    575		000016 			KLNLGL==.-.KLNFT		; KLINIK EVENT LOG BUFFER LENGTH IN BYTES
    576		001220'			.KLNPE==.
    577	001220				.KLNPW::
    578	001220	000000 	000000 	000000 		.WORD	0,0,0		; ASCII PASSWORD FOR KLINIK
    579					.EVEN
    580		000026 			KLNPLN==.-.KLNBC		; SAVE BUFFER LENGTH IN BYTES
    581	001226				.KLNSW::
    582	001226	   000 	   000 			.BYTE	0,0		; KLINIK LINE STATUS BYTES
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 11
LOW CORE -- COMMIUNICATIONS REGION DATA BASE

    584						.SBTTL	LOW CORE -- COMMIUNICATIONS REGION DATA BASE
    585
    586					;
    587					;	POINTERS TO COMMUNICATIONS AREA
    588					;
    589	001230				COMBSE::
    590	001230	000000 				.WORD	0	; BASE OF COMMUNICATION AREA
    591	001232				PRMEMN::
    592	001232	000000 				.WORD	0	; MY PROCESSOR NUMBER
    593	001234				DEPOF::
    594	001234	000000 				.WORD	0	; DEPOSIT OFFSET FROM EXAMINE
    595					;
    596					;
    597					;	PROCESSOR IDENTIFICATION TABLE
    598					;
    599					;	PROTBL FORMAT:
    600					;
    601					; 		DTENM -- ADDRESS OF DTE-20 TO ACCESS THIS PROCESSOR
    602		000000 			DTENM=0
    603					;		 EMYN -- ADDRESS TO COMMUNICATE TO PROCESSOR 0
    604		000002 			EMYN==2
    605					;		 DMYN -- ADDRESS TO COMMUNICATE TO PROCESSOR 0 (WRITE)
    606		000004 			DMYN==4
    607					;		 EHSG -- ADDRESS FROM GENERAL
    608		000006 			EHSG==6
    609					;		 EHSM -- ADDRESS FROM SPECIFIC
    610		000010 			EHSM==10
    611
    612	001236				PROTBL::
    613	001236	174400 				.WORD	174400	; DTENM
    614	001240	000000 				.WORD	0	; EMYN
    615	001242	000000 				.WORD	0	; DMYN
    616	001244	000000 				.WORD	0	; EHSG
    617	001246	000000 				.WORD	0	; EHSM
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 12
LOW CORE -- QUEUED PROTOCOL DATA BASE

    619						.SBTTL	LOW CORE -- QUEUED PROTOCOL DATA BASE
    620
    621	001250				.CRQZ::
    622	001250	000000 				.WORD	0		; CURRENT QUEUE SIZE
    623	001252				.CPFN::
    624	001252	000000 				.WORD	0		; CURRENT FUNCTION IN TO 10 QUEUE
    625	001254				.CPDV::
    626	001254	000000 				.WORD	0		; CURRENT DEVICE IN TO 10 QUEUE
    627	001256				.CRSZ::
    628	001256	000000 				.WORD	0		; CURRENT SIZE OF TO10 QUEUE
    629	001260				.CRPB::
    630	001260	000000 				.WORD	0		; CURRENT BUFFER POINTER IN TO10 QUEUE
    631	001262				.CRHD::
    632	001262	000000 				.WORD	0		; HEAD OF CURRENT TO10 QUEUE
    633	001264				.CRSB::
    634	001264	000000 				.WORD	0		; POINTER TO CURRENT FUNCTION SIZE
    635
    636	001266				DTEMSK::
    637	001266	000000 				.WORD	0		; DTE DEVICE EVENT FLAG MASK
    638	001270				DTEADR::
    639	001270	000000 				.WORD	0		; DTE DEVICE INDIRECT FLAG ADDRESS
    640
    641	001272				TO11NP::
    642	001272	000000 				.WORD	0		; NODE POINTER FOR NODE
    643	001274				TO11HD::
    644	001274	000000 				.WORD	0		; COUNT OF BYTES IN THIS QUEUE
    645	001276				TO11FN::
    646	001276	000000 				.WORD	0		; TO ELEVEN FUNCTION CODE
    647	001300				TO11DV::
    648	001300	000000 				.WORD	0		; TO ELEVEN DEVICE NUMBER
    649	001302				TO11SP::
    650	001302	000000 				.WORD	0		; SPACE
    651	001304				TO11FW::
    652	001304	000000 				.WORD	0		; FIRST WORD OF FUNCTION
    654	001306				TO11GW::
    655	001306	177777 				.WORD	-1		; GUARD WORD FOR DTE20
    656	001310				TO11AS::
    657	001310	000000 				.WORD	0		; ADDRESS SAVE
    658	001312				TO11BS::
    659	001312	000000 				.WORD	0		; BYTE COUNT SAVE
    660	001314				TO10SZ::
    661	001314	000000 				.WORD	0		; BYTE COUNT OF XFER
    662	001316				TO10AS::
    663	001316	000000 				.WORD	0
    665
    666	001320				STSTT::
    667	001320	000001 	000000 	000000 		.WORD	1,0,0		; TO 10 STATUS
    668
    669		001324'			TO10QC==STSTT+4			; TO 10 QUEUE COUNT
    670		001325'			TO11QC==STSTT+5			; TO 11 QUEUE COUNT
    671
    672	001326	001326'			TO10Q:: .WORD	.		; LISTHEAD FOR TO 10 QUEUE
    673	001330	001326'				.WORD	.-2
    674
    675	001332				EQSZ::
    676	001332	000000 				.WORD	0		; ELEVEN QUEUE SIZE
    677
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 12-1
LOW CORE -- QUEUED PROTOCOL DATA BASE

    678	001334				TO11Q::
    679	001334	000000 				.WORD	0		; TO 11 QUEUE
    680	001336				STATI::
    681	001336					.BLKW	3		; STATUS/SCRATCH WORD FOR EXAMINES/DEPOSITS
    682	001344				DEXST::
    683	001344	000000 				.WORD	0		; DEXDONE TIMEOUT
    684	001346				DEXTM3::
    685	001346	000000 				.WORD	0		; EXAMINE WORD 3 (TEMP STORAGE) TO BE
    686	001350				DEXTM2::
    687	001350	000000 				.WORD	0		; EXAMINE WORD 2 -USED ONLY BECAUSE EXAMINE
    688	001352				DEXTM1::
    689	001352	000000 				.WORD	0		; EXAMINE WORD 1 - OR DEPOSIT MAY FAIL AND MUST BE REDONE
    690	001354				.PRADR::
    691	001354	000000 				.WORD	0		; ADDRESS OF PRIV OFFSET TABLE ENTRY
    692	001356				.PRSTA::
    693	001356	174434 				.WORD	174434		; PRIVILEDGED DTE20 STATUS WORD
    694	001360				.PRDTE::
    695	001360	174400 				.WORD	174400		; FIRST DTE ADDRESS OF PRIVILEDGED DTE20
    696	001362				.PRDCT::
    697	001362	000000 				.WORD	0		; DOORBELL COUNTER FOR KLINIT.
    698					;
    699					;	THE NEXT TWO BYTES MUST REMAIN CONTIGUOUS AND IN THE SAME ORDER
    700					;
    701	001364				.DXRTY::
    702	001364	   001 				.BYTE	1		; [5.1008] DEX ERROR PROCESSING FLAG (SEE BELOW)
    703	001365				.EBRTY::
    704	001365	   001 				.BYTE	1		; [5.1008] EBUS PARITY ERROR PROCESSING FLAG
    705									;		+1 -- NO EBUS PARITY ERROR
    706									;		 0 -- RETRY SUCCEEDED
    707									;		-1 -- RETRY FAILED
    708					;
    709					;	THE NEXT TWO WORDS MUST REMAIN CONTIGUOUS AND IN THE SAME ORDER
    710					;
    711	001366				.EBPEQ::
    712	001366	000000 				.WORD	0		; [4.2217] CONTAINS POINTER TO DTE-20 EBUS PARITY
    713									;	       SNAPSHOT IF ALLOCATION WAS SUCCESSFUL
    714	001370				.EBPEC::
    715	001370	000000 				.WORD	0		; [5.1008] COUNT OF NODES IN THIS QUEUE (MAX = 2)
    716
    717	001372				.PRPSE::
    718	001372	   000 				.BYTE	0		; PROTOCOL PAUSE FLAG
    719	001373				TOXQIP::
    720	001373	   000 				.BYTE	0		; [4.1.1035] TO 10 QUEUE IN PROGRESS FLAG
    721						.EVEN
    722	001374				.DTBLK::
    723	001374	000000 				.WORD	0		; [4.1.1121] HOLDS RE-ENTRY POINT TO START BLOCKED TRANSFER
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 13
LOW CORE -- KEEP-ALIVE DATA BASE

    725						.SBTTL	LOW CORE -- KEEP-ALIVE DATA BASE
    726
    727	001376				KPAL0::
    728	001376	000000 	000000 	000000 		.WORD	0,0,0		; 10 KEEP ALIVE
    729	001404				OKPAL0::
    730	001404	000000 				.WORD	0		; SAVED KEEP ALIVE
    731	001406				KPAL1::
    732	001406	000000 				.WORD	0		; [4.1.1104] 11 KEEP ALIVE
    733	001410				.KPAC::
    734	001410	000005 				.WORD	5		; COUNTER FOR KEEP-ALIVE.
    735	001412				.KACFL::
    736	001412	000001 				.WORD	1		; [4.2107] FLAG TO ALLOW XCT 71
    737									; [4.2107] OR DUMP/RELOAD ON KEEP-ALIVE CEASE
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 14
LOW CORE -- CORE MANAGER DATA BASE

    739						.SBTTL	LOW CORE -- CORE MANAGER DATA BASE
    740
    741		076000 				.BGBST==76000		; START OF BIG BUFFER
    742		002000 				.BGLEN==2000		; LENGTH OF BIG BUFFER
    743
    744					;
    745					;	POOL FREE CORE AREA
    746					;
    747	001414				.BGBUF::
    748	001414	076000 				.WORD	.BGBST		; BIG BUFFER SPACE (1000 EACH)
    749	001416	002000 				.WORD	.BGLEN
    750
    751	001420				.FREPL::
    752	001420	000000 				.WORD	0		; FREE POOL BASE ADDRESS
    753	001422	000000 				.WORD	0		; FREE POOL SIZE IN BYTES
    754
    755	001424				.POLLH::
    756	001424	001430'				.WORD	.POLST		; HEAD OF POOL
    757	001426	002330'				.WORD	.POLND		; END OF POOL
    758
    759	001430				.POLST::
    760	001430	001470'				.WORD	.+40
    761	001432	001424'				.WORD	.POLLH
    762	001434					.BLKW	14.
    763
    764		000015 				.REPT	15
    765						.WORD	.+40
    766						.WORD	.-40
    767						.BLKW	14.
    768						.ENDR
	001470	001530'				.WORD	.+40
	001472	001432'				.WORD	.-40
	001530	001570'				.WORD	.+40
	001532	001472'				.WORD	.-40
	001570	001630'				.WORD	.+40
	001572	001532'				.WORD	.-40
	001630	001670'				.WORD	.+40
	001632	001572'				.WORD	.-40
	001670	001730'				.WORD	.+40
	001672	001632'				.WORD	.-40
	001730	001770'				.WORD	.+40
	001732	001672'				.WORD	.-40
	001770	002030'				.WORD	.+40
	001772	001732'				.WORD	.-40
	002030	002070'				.WORD	.+40
	002032	001772'				.WORD	.-40
	002070	002130'				.WORD	.+40
	002072	002032'				.WORD	.-40
	002130	002170'				.WORD	.+40
	002132	002072'				.WORD	.-40
	002170	002230'				.WORD	.+40
	002172	002132'				.WORD	.-40
	002230	002270'				.WORD	.+40
	002232	002172'				.WORD	.-40
	002270	002330'				.WORD	.+40
	002272	002232'				.WORD	.-40
    769
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 14-1
LOW CORE -- CORE MANAGER DATA BASE

    770	002330				.POLND::
    771	002330	001424'				.WORD	.POLLH
    772	002332	002272'				.WORD	.-40
    773	002334					.BLKW	14.
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 15
LOW CORE -- CLOCK REQUEST LIST

    775						.SBTTL	LOW CORE -- CLOCK REQUEST LIST
    776
    777					;
    778					;	CLOCK LIST (LIST OF ENTRIES IN THE CLOCK QUEUE TO RECEIVE
    779					;	EVENT FLAGS SET ON COMPLETION OF CLOCK TIMER
    780					;
    781		000007 			.CLKSZ==7.	; CLOCK QUEUE SIZE
    782		000014 			C.SZ=14		; CLOCK ENTRY SIZE LOCAL DEFINITION (NOTE: IS A GLOBAL VAR.)
    783
    784	002370				.CLKBA::
    785	002370	007152'				.WORD	TTYTSK
    786	002372	000000 				.WORD	0
    787	002374	000074 				.WORD	.CYLTM
    788	002376	000074 				.WORD	.CYLTM
    789	002400	000100 				.WORD	EF.TMO
    790	002402	007172'				.WORD	TTYTSK+A.EF
    791		000074 				.REPT	.CLKSZ-2*C.SZ
    792						.WORD	0
    793						.ENDR
	002404	000000 				.WORD	0
	002406	000000 				.WORD	0
	002410	000000 				.WORD	0
	002412	000000 				.WORD	0
	002414	000000 				.WORD	0
	002416	000000 				.WORD	0
	002420	000000 				.WORD	0
	002422	000000 				.WORD	0
	002424	000000 				.WORD	0
	002426	000000 				.WORD	0
	002430	000000 				.WORD	0
	002432	000000 				.WORD	0
	002434	000000 				.WORD	0
	002436	000000 				.WORD	0
	002440	000000 				.WORD	0
	002442	000000 				.WORD	0
	002444	000000 				.WORD	0
	002446	000000 				.WORD	0
	002450	000000 				.WORD	0
	002452	000000 				.WORD	0
	002454	000000 				.WORD	0
	002456	000000 				.WORD	0
	002460	000000 				.WORD	0
	002462	000000 				.WORD	0
	002464	000000 				.WORD	0
	002466	000000 				.WORD	0
	002470	000000 				.WORD	0
	002472	000000 				.WORD	0
	002474	000000 				.WORD	0
	002476	000000 				.WORD	0
	002500	000000 				.WORD	0
	002502	000000 				.WORD	0
	002504	000000 				.WORD	0
	002506	000000 				.WORD	0
	002510	000000 				.WORD	0
	002512	000000 				.WORD	0
	002514	000000 				.WORD	0
	002516	000000 				.WORD	0
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 15-1
LOW CORE -- CLOCK REQUEST LIST

	002520	000000 				.WORD	0
	002522	000000 				.WORD	0
	002524	000000 				.WORD	0
	002526	000000 				.WORD	0
	002530	000000 				.WORD	0
	002532	000000 				.WORD	0
	002534	000000 				.WORD	0
	002536	000000 				.WORD	0
	002540	000000 				.WORD	0
	002542	000000 				.WORD	0
	002544	000000 				.WORD	0
	002546	000000 				.WORD	0
	002550	000000 				.WORD	0
	002552	000000 				.WORD	0
	002554	000000 				.WORD	0
	002556	000000 				.WORD	0
	002560	000000 				.WORD	0
	002562	000000 				.WORD	0
	002564	000000 				.WORD	0
	002566	000000 				.WORD	0
	002570	000000 				.WORD	0
	002572	000000 				.WORD	0
    794	002574				.CLKEA::
    795	002574	000000 				.WORD	0		; END OF CLOCK LIST
    796
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 17
LOW CORE -- TERMINAL SERVICE DATA BASE

    816						.SBTTL	LOW CORE -- TERMINAL SERVICE DATA BASE
    817
    818	002576				.INHDM::
    819	002576	000001 				.WORD	1		; INBIBIT/ENABLE REMOTE LINES (0)=ENABLE
    820	002600				.ABCNT::
    821	002600	000000 				.WORD	0		; COUNT OF AUTO BAUDED LINES
    822	002602				.ABFLG::
    823	002602	000000 				.WORD	0		; FLAG FOR "SETSPD"
    824					;
    825					;	SENDALL MESSAGE POINTERS
    826					;
    827	002604				.SNDLP::
    828	002604	000000 				.WORD	0		; POINTER TO SENDALL BUFFER IN USE
    829	002606				.SNDBF::
    830	002606	000000 	000000 	000000 		.WORD	0,0,0,0		; SENDALL BUFFER RING
	002614	000000
    831	002616				.SNDCN::
    832	002616	000000 	000000 	000000 		.WORD	0,0,0,0		; SENDALL TTY COUNT (THIS AND ABOVE MUST BE TOGETHER)
	002624	000000
    833	002626				.CRSND::
    834	002626	000000 				.WORD	0		; CURRENT SENDALL NODE POINTER -- USED BY ..STTY
    835	002630				.BRKCH::
    836	002630	000034 				.WORD	'\-100		; BREAK CHARACTER (^\)
    837	002632				.TTP11::
    838	002632	000000 				.WORD	0		; TTY PDP11 INPUT IN PROGRESS
    839	002634				.CTYPT::
    840	002634				CTYPTR::
    841	002634	002776'				.WORD	DLTBL		; CONSOLE TTY TABLE POINTER
    842	002636				.KLNPT::
    843	002636				KLNPTR::
    844	002636	003006'				.WORD	DLETBL		; KLINIK LINE POINTER
    845	002640				$UNIT::
    846	002640	000000 				.WORD	0		; DH-11 UNIT NUMBER IF CTY
    847	002642				$BTMSK::
    848	002642	000000 				.WORD	0		; MASK TO START CONSOLE TTY (DH-11)
    849	002644				DMTMP::
    850	002644	000000 				.WORD	0		; TEMPORARY STORAGE FOR DM-11/BB CONTROLLER NUMBER
    851	002646				DHTMP::
    852	002646	000000 				.WORD	0		; TEMPORARY STORAGE FOR DH-11 CONTROLLER NUMBER
    853	002650				DLTMP::
    854	002650	000000 				.WORD	0		; TEMPORARY STORAGE FOR DL-11 CONTROLLER NUMBER
    855	002652				DHSTSV::
    856	002652	000000 				.WORD	0		; DH-11 TABLE POINTER SAVE
    857	002654				.TTELQ::
    858	002654	000000 				.WORD	0		; [4.2245] TERMINAL ERROR LOGGING QUEUE POINTER
    859					;
    860					;	THE NEXT TWO WORDS MUST REMAIN CONTIGUOUS AND IN THE SAME ORDER
    861					;
    862	002656				.TTELC::
    863	002656	000000 				.WORD	0		; [5.1008] COUNT OF NODES IN THIS QUEUE
    864	002660				.TTELB::
    865	002660	000000 				.WORD	0		; [4.2245] TEMPORARY BUFFER FOR ERROR LOGGING
    866					;
    867					;	THE NEXT TWO BYTES MUST REMAIN CONTIGUOUS AND IN THE SAME ORDER
    868					;
    869	002662				TMOCNT::
    870	002662	   012 				.BYTE	^D10		; [4.2309] TERMINAL TIMEOUT COUNTER
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 17-1
LOW CORE -- TERMINAL SERVICE DATA BASE

    871	002663	   026 				.BYTE	^D22		; [4.2309] MODEM TIMEOUT COUNTER
    872						.EVEN
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 18
LOW CORE -- PDP-11 CTY SERVICE DATA BASE

    874						.SBTTL	LOW CORE -- PDP-11 CTY SERVICE DATA BASE
    875
    876	002664				CTYSTS::
    877		000020 				.REPT	16.		; CONSOLE TTY STATUS BLOCK
    878						.WORD	0
    879						.ENDR
	002664	000000 				.WORD	0
	002666	000000 				.WORD	0
	002670	000000 				.WORD	0
	002672	000000 				.WORD	0
	002674	000000 				.WORD	0
	002676	000000 				.WORD	0
	002700	000000 				.WORD	0
	002702	000000 				.WORD	0
	002704	000000 				.WORD	0
	002706	000000 				.WORD	0
	002710	000000 				.WORD	0
	002712	000000 				.WORD	0
	002714	000000 				.WORD	0
	002716	000000 				.WORD	0
	002720	000000 				.WORD	0
	002722	000000 				.WORD	0
    880	002724				CNT::
    881	002724	000000 				.WORD	0
    882	002726				BYCNT::
    883	002726	000000 				.WORD	0
    884	002730				CRADR::
    885	002730	000000 				.WORD	0
    886	002732				TTPKT::
    887	002732	000000 				.WORD	0		; I/O PACKET ADDRESS
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 19
LOW CORE -- TERMINAL DRIVER DATA BASE

    889						.SBTTL	LOW CORE -- TERMINAL DRIVER DATA BASE
    890
    891					;
    892					;	TTY TABLES
    893					;
    894					; CONTROLLER IMPURE DATA TABLES (INDEXED BY CONTROLLER (UNIT) NUMBER)
    895					;
    896
    897	002734				DMTBL::
    898	002734	170500 	003046'			.WORD	170500,DHTBL		; DM11BB TABLE
    899	002740	170510 	003246'			.WORD	170510,16.*8.+DHTBL
    900	002744	170520 	003446'			.WORD	170520,16.*8.*2.+DHTBL
    901	002750	170530 	003646'			.WORD	170530,16.*8.*3.+DHTBL
    902	002754	170540 	004046'			.WORD	170540,16.*8.*4.+DHTBL
    903	002760	170550 	004246'			.WORD	170550,16.*8.*5.+DHTBL
    904	002764	170560 	004446'			.WORD	170560,16.*8.*6.+DHTBL
    905	002770	170570 	004646'			.WORD	170570,16.*8.*7.+DHTBL
    906	002774	000000 				.WORD	0			; [5.1004] END OF TABLE MARKER
    907		002776'			DMTBE==.
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 20
LOW CORE -- DATA LINE SCANNER DATA BASE

    909						.SBTTL	LOW CORE -- DATA LINE SCANNER DATA BASE
    910
    911					;	THE DATA LINE SCANNER TABLE IS ORGANIZED AS FOLLOWS:
    912					;	THE DL-11'S ARE FIRST IN THE TABLE AND THE DL-11C (CTY) IS UNIT 0,
    913					;	THE DL-11E(S) FOLLOW AND BEGIN AT UNIT 1. THE DH-11'S FOLLOW THE
    914					;	DL-11E'S
    915					;
    916					;	ALL TERMINALS HAVE A FOUR WORD ENTRY IN THE FOLLOWING FORMAT:
    917					;
    918					;	+----------------------------------+
    919					;	!    OUTPUT THREAD LIST POINTER    !
    920					;	+----------------------------------+
    921					;	!	EXTERNAL PAGE POINTER	   !
    922					;	+----------------------------------+
    923					;	!	 TERMINAL SPEED WORD	   !
    924					;	+----------------------------------+
    925					;	!	 TERMINAL STATUS WORD	   !
    926					;	+----------------------------------+
    927
    928	002776				TTTBL::					; START OF DATA LINE SCANNER TABLE
    929	002776				DLTBL::
    930	002776	000000 	177560 	000000 		.WORD	0,177560,0,TT.CTY	; TERMINAL STATUS FOR DL-11C
	003004	000002
    931	003006				DLETBL::				; DL-11E TABLE
    932	003006	000000 	175610 	000000 		.WORD	0,175610,0,TT.RMT	; DL-11E # 0 (KLINIK)
	003014	000100
    933	003016	000000 	175630 	000000 		.WORD	0,175630,0,TT.RMT	; DL-11E # 1
	003024	000100
    934	003026	000000 	175640 	000000 		.WORD	0,175640,0,TT.RMT	; DL-11E # 2
	003034	000100
    935	003036	000000 	175650 	000000 		.WORD	0,175650,0,TT.RMT	; DL-11E # 3
	003044	000100
    936		000005 			DLCNT	==.-DLTBL/8.			; NUMBER OF DL-11'S
    937		000004 			DLECNT	==.-DLETBL/8.			; NUMBER OF DL-11E'S
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 21
LOW CORE -- DH-11 DATA BASE

    939						.SBTTL	LOW CORE -- DH-11 DATA BASE
    940
    941	003046				DHTBL::
    942		000020 				.REPT	16.
    943						.WORD	0,160020,16003,0	; DH-11 MUX CONRTOLLER 0
    944						.ENDR
	003046	000000 	160020 	016003 		.WORD	0,160020,16003,0	; DH-11 MUX CONRTOLLER 0
	003054	000000
	003056	000000 	160020 	016003 		.WORD	0,160020,16003,0	; DH-11 MUX CONRTOLLER 0
	003064	000000
	003066	000000 	160020 	016003 		.WORD	0,160020,16003,0	; DH-11 MUX CONRTOLLER 0
	003074	000000
	003076	000000 	160020 	016003 		.WORD	0,160020,16003,0	; DH-11 MUX CONRTOLLER 0
	003104	000000
	003106	000000 	160020 	016003 		.WORD	0,160020,16003,0	; DH-11 MUX CONRTOLLER 0
	003114	000000
	003116	000000 	160020 	016003 		.WORD	0,160020,16003,0	; DH-11 MUX CONRTOLLER 0
	003124	000000
	003126	000000 	160020 	016003 		.WORD	0,160020,16003,0	; DH-11 MUX CONRTOLLER 0
	003134	000000
	003136	000000 	160020 	016003 		.WORD	0,160020,16003,0	; DH-11 MUX CONRTOLLER 0
	003144	000000
	003146	000000 	160020 	016003 		.WORD	0,160020,16003,0	; DH-11 MUX CONRTOLLER 0
	003154	000000
	003156	000000 	160020 	016003 		.WORD	0,160020,16003,0	; DH-11 MUX CONRTOLLER 0
	003164	000000
	003166	000000 	160020 	016003 		.WORD	0,160020,16003,0	; DH-11 MUX CONRTOLLER 0
	003174	000000
	003176	000000 	160020 	016003 		.WORD	0,160020,16003,0	; DH-11 MUX CONRTOLLER 0
	003204	000000
	003206	000000 	160020 	016003 		.WORD	0,160020,16003,0	; DH-11 MUX CONRTOLLER 0
	003214	000000
	003216	000000 	160020 	016003 		.WORD	0,160020,16003,0	; DH-11 MUX CONRTOLLER 0
	003224	000000
	003226	000000 	160020 	016003 		.WORD	0,160020,16003,0	; DH-11 MUX CONRTOLLER 0
	003234	000000
	003236	000000 	160020 	016003 		.WORD	0,160020,16003,0	; DH-11 MUX CONRTOLLER 0
	003244	000000
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 22
LOW CORE -- DH-11 DATA BASE

    946		000020 				.REPT	16.
    947						.WORD	0,160040,16003,0	; DH-11 MUX CONTROLLER 1
    948						.ENDR
	003246	000000 	160040 	016003 		.WORD	0,160040,16003,0	; DH-11 MUX CONTROLLER 1
	003254	000000
	003256	000000 	160040 	016003 		.WORD	0,160040,16003,0	; DH-11 MUX CONTROLLER 1
	003264	000000
	003266	000000 	160040 	016003 		.WORD	0,160040,16003,0	; DH-11 MUX CONTROLLER 1
	003274	000000
	003276	000000 	160040 	016003 		.WORD	0,160040,16003,0	; DH-11 MUX CONTROLLER 1
	003304	000000
	003306	000000 	160040 	016003 		.WORD	0,160040,16003,0	; DH-11 MUX CONTROLLER 1
	003314	000000
	003316	000000 	160040 	016003 		.WORD	0,160040,16003,0	; DH-11 MUX CONTROLLER 1
	003324	000000
	003326	000000 	160040 	016003 		.WORD	0,160040,16003,0	; DH-11 MUX CONTROLLER 1
	003334	000000
	003336	000000 	160040 	016003 		.WORD	0,160040,16003,0	; DH-11 MUX CONTROLLER 1
	003344	000000
	003346	000000 	160040 	016003 		.WORD	0,160040,16003,0	; DH-11 MUX CONTROLLER 1
	003354	000000
	003356	000000 	160040 	016003 		.WORD	0,160040,16003,0	; DH-11 MUX CONTROLLER 1
	003364	000000
	003366	000000 	160040 	016003 		.WORD	0,160040,16003,0	; DH-11 MUX CONTROLLER 1
	003374	000000
	003376	000000 	160040 	016003 		.WORD	0,160040,16003,0	; DH-11 MUX CONTROLLER 1
	003404	000000
	003406	000000 	160040 	016003 		.WORD	0,160040,16003,0	; DH-11 MUX CONTROLLER 1
	003414	000000
	003416	000000 	160040 	016003 		.WORD	0,160040,16003,0	; DH-11 MUX CONTROLLER 1
	003424	000000
	003426	000000 	160040 	016003 		.WORD	0,160040,16003,0	; DH-11 MUX CONTROLLER 1
	003434	000000
	003436	000000 	160040 	016003 		.WORD	0,160040,16003,0	; DH-11 MUX CONTROLLER 1
	003444	000000
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 23
LOW CORE -- DH-11 DATA BASE

    950		000020 				.REPT	16.
    951						.WORD	0,160060,16003,0	; DH-11 MUX CONTROLLER 2
    952						.ENDR
	003446	000000 	160060 	016003 		.WORD	0,160060,16003,0	; DH-11 MUX CONTROLLER 2
	003454	000000
	003456	000000 	160060 	016003 		.WORD	0,160060,16003,0	; DH-11 MUX CONTROLLER 2
	003464	000000
	003466	000000 	160060 	016003 		.WORD	0,160060,16003,0	; DH-11 MUX CONTROLLER 2
	003474	000000
	003476	000000 	160060 	016003 		.WORD	0,160060,16003,0	; DH-11 MUX CONTROLLER 2
	003504	000000
	003506	000000 	160060 	016003 		.WORD	0,160060,16003,0	; DH-11 MUX CONTROLLER 2
	003514	000000
	003516	000000 	160060 	016003 		.WORD	0,160060,16003,0	; DH-11 MUX CONTROLLER 2
	003524	000000
	003526	000000 	160060 	016003 		.WORD	0,160060,16003,0	; DH-11 MUX CONTROLLER 2
	003534	000000
	003536	000000 	160060 	016003 		.WORD	0,160060,16003,0	; DH-11 MUX CONTROLLER 2
	003544	000000
	003546	000000 	160060 	016003 		.WORD	0,160060,16003,0	; DH-11 MUX CONTROLLER 2
	003554	000000
	003556	000000 	160060 	016003 		.WORD	0,160060,16003,0	; DH-11 MUX CONTROLLER 2
	003564	000000
	003566	000000 	160060 	016003 		.WORD	0,160060,16003,0	; DH-11 MUX CONTROLLER 2
	003574	000000
	003576	000000 	160060 	016003 		.WORD	0,160060,16003,0	; DH-11 MUX CONTROLLER 2
	003604	000000
	003606	000000 	160060 	016003 		.WORD	0,160060,16003,0	; DH-11 MUX CONTROLLER 2
	003614	000000
	003616	000000 	160060 	016003 		.WORD	0,160060,16003,0	; DH-11 MUX CONTROLLER 2
	003624	000000
	003626	000000 	160060 	016003 		.WORD	0,160060,16003,0	; DH-11 MUX CONTROLLER 2
	003634	000000
	003636	000000 	160060 	016003 		.WORD	0,160060,16003,0	; DH-11 MUX CONTROLLER 2
	003644	000000
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 24
LOW CORE -- DH-11 DATA BASE

    954		000020 				.REPT	16.
    955						.WORD	0,160100,16003,0	; DH-11 MUX CONTROLLER 3
    956						.ENDR
	003646	000000 	160100 	016003 		.WORD	0,160100,16003,0	; DH-11 MUX CONTROLLER 3
	003654	000000
	003656	000000 	160100 	016003 		.WORD	0,160100,16003,0	; DH-11 MUX CONTROLLER 3
	003664	000000
	003666	000000 	160100 	016003 		.WORD	0,160100,16003,0	; DH-11 MUX CONTROLLER 3
	003674	000000
	003676	000000 	160100 	016003 		.WORD	0,160100,16003,0	; DH-11 MUX CONTROLLER 3
	003704	000000
	003706	000000 	160100 	016003 		.WORD	0,160100,16003,0	; DH-11 MUX CONTROLLER 3
	003714	000000
	003716	000000 	160100 	016003 		.WORD	0,160100,16003,0	; DH-11 MUX CONTROLLER 3
	003724	000000
	003726	000000 	160100 	016003 		.WORD	0,160100,16003,0	; DH-11 MUX CONTROLLER 3
	003734	000000
	003736	000000 	160100 	016003 		.WORD	0,160100,16003,0	; DH-11 MUX CONTROLLER 3
	003744	000000
	003746	000000 	160100 	016003 		.WORD	0,160100,16003,0	; DH-11 MUX CONTROLLER 3
	003754	000000
	003756	000000 	160100 	016003 		.WORD	0,160100,16003,0	; DH-11 MUX CONTROLLER 3
	003764	000000
	003766	000000 	160100 	016003 		.WORD	0,160100,16003,0	; DH-11 MUX CONTROLLER 3
	003774	000000
	003776	000000 	160100 	016003 		.WORD	0,160100,16003,0	; DH-11 MUX CONTROLLER 3
	004004	000000
	004006	000000 	160100 	016003 		.WORD	0,160100,16003,0	; DH-11 MUX CONTROLLER 3
	004014	000000
	004016	000000 	160100 	016003 		.WORD	0,160100,16003,0	; DH-11 MUX CONTROLLER 3
	004024	000000
	004026	000000 	160100 	016003 		.WORD	0,160100,16003,0	; DH-11 MUX CONTROLLER 3
	004034	000000
	004036	000000 	160100 	016003 		.WORD	0,160100,16003,0	; DH-11 MUX CONTROLLER 3
	004044	000000
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 25
LOW CORE -- DH-11 DATA BASE

    958		000020 				.REPT	16.
    959						.WORD	0,160120,16003,0	; DH-11 MUX CONTROLLER 4
    960						.ENDR
	004046	000000 	160120 	016003 		.WORD	0,160120,16003,0	; DH-11 MUX CONTROLLER 4
	004054	000000
	004056	000000 	160120 	016003 		.WORD	0,160120,16003,0	; DH-11 MUX CONTROLLER 4
	004064	000000
	004066	000000 	160120 	016003 		.WORD	0,160120,16003,0	; DH-11 MUX CONTROLLER 4
	004074	000000
	004076	000000 	160120 	016003 		.WORD	0,160120,16003,0	; DH-11 MUX CONTROLLER 4
	004104	000000
	004106	000000 	160120 	016003 		.WORD	0,160120,16003,0	; DH-11 MUX CONTROLLER 4
	004114	000000
	004116	000000 	160120 	016003 		.WORD	0,160120,16003,0	; DH-11 MUX CONTROLLER 4
	004124	000000
	004126	000000 	160120 	016003 		.WORD	0,160120,16003,0	; DH-11 MUX CONTROLLER 4
	004134	000000
	004136	000000 	160120 	016003 		.WORD	0,160120,16003,0	; DH-11 MUX CONTROLLER 4
	004144	000000
	004146	000000 	160120 	016003 		.WORD	0,160120,16003,0	; DH-11 MUX CONTROLLER 4
	004154	000000
	004156	000000 	160120 	016003 		.WORD	0,160120,16003,0	; DH-11 MUX CONTROLLER 4
	004164	000000
	004166	000000 	160120 	016003 		.WORD	0,160120,16003,0	; DH-11 MUX CONTROLLER 4
	004174	000000
	004176	000000 	160120 	016003 		.WORD	0,160120,16003,0	; DH-11 MUX CONTROLLER 4
	004204	000000
	004206	000000 	160120 	016003 		.WORD	0,160120,16003,0	; DH-11 MUX CONTROLLER 4
	004214	000000
	004216	000000 	160120 	016003 		.WORD	0,160120,16003,0	; DH-11 MUX CONTROLLER 4
	004224	000000
	004226	000000 	160120 	016003 		.WORD	0,160120,16003,0	; DH-11 MUX CONTROLLER 4
	004234	000000
	004236	000000 	160120 	016003 		.WORD	0,160120,16003,0	; DH-11 MUX CONTROLLER 4
	004244	000000
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 26
LOW CORE -- DH-11 DATA BASE

    962		000020 				.REPT	16.
    963						.WORD	0,160140,16003,0	; DH-11 MUX CONTROLLER 5
    964						.ENDR
	004246	000000 	160140 	016003 		.WORD	0,160140,16003,0	; DH-11 MUX CONTROLLER 5
	004254	000000
	004256	000000 	160140 	016003 		.WORD	0,160140,16003,0	; DH-11 MUX CONTROLLER 5
	004264	000000
	004266	000000 	160140 	016003 		.WORD	0,160140,16003,0	; DH-11 MUX CONTROLLER 5
	004274	000000
	004276	000000 	160140 	016003 		.WORD	0,160140,16003,0	; DH-11 MUX CONTROLLER 5
	004304	000000
	004306	000000 	160140 	016003 		.WORD	0,160140,16003,0	; DH-11 MUX CONTROLLER 5
	004314	000000
	004316	000000 	160140 	016003 		.WORD	0,160140,16003,0	; DH-11 MUX CONTROLLER 5
	004324	000000
	004326	000000 	160140 	016003 		.WORD	0,160140,16003,0	; DH-11 MUX CONTROLLER 5
	004334	000000
	004336	000000 	160140 	016003 		.WORD	0,160140,16003,0	; DH-11 MUX CONTROLLER 5
	004344	000000
	004346	000000 	160140 	016003 		.WORD	0,160140,16003,0	; DH-11 MUX CONTROLLER 5
	004354	000000
	004356	000000 	160140 	016003 		.WORD	0,160140,16003,0	; DH-11 MUX CONTROLLER 5
	004364	000000
	004366	000000 	160140 	016003 		.WORD	0,160140,16003,0	; DH-11 MUX CONTROLLER 5
	004374	000000
	004376	000000 	160140 	016003 		.WORD	0,160140,16003,0	; DH-11 MUX CONTROLLER 5
	004404	000000
	004406	000000 	160140 	016003 		.WORD	0,160140,16003,0	; DH-11 MUX CONTROLLER 5
	004414	000000
	004416	000000 	160140 	016003 		.WORD	0,160140,16003,0	; DH-11 MUX CONTROLLER 5
	004424	000000
	004426	000000 	160140 	016003 		.WORD	0,160140,16003,0	; DH-11 MUX CONTROLLER 5
	004434	000000
	004436	000000 	160140 	016003 		.WORD	0,160140,16003,0	; DH-11 MUX CONTROLLER 5
	004444	000000
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 27
LOW CORE -- DH-11 DATA BASE

    966		000020 				.REPT	16.
    967						.WORD	0,160160,16003,0	; DH-11 MUX CONTROLLER 6
    968						.ENDR
	004446	000000 	160160 	016003 		.WORD	0,160160,16003,0	; DH-11 MUX CONTROLLER 6
	004454	000000
	004456	000000 	160160 	016003 		.WORD	0,160160,16003,0	; DH-11 MUX CONTROLLER 6
	004464	000000
	004466	000000 	160160 	016003 		.WORD	0,160160,16003,0	; DH-11 MUX CONTROLLER 6
	004474	000000
	004476	000000 	160160 	016003 		.WORD	0,160160,16003,0	; DH-11 MUX CONTROLLER 6
	004504	000000
	004506	000000 	160160 	016003 		.WORD	0,160160,16003,0	; DH-11 MUX CONTROLLER 6
	004514	000000
	004516	000000 	160160 	016003 		.WORD	0,160160,16003,0	; DH-11 MUX CONTROLLER 6
	004524	000000
	004526	000000 	160160 	016003 		.WORD	0,160160,16003,0	; DH-11 MUX CONTROLLER 6
	004534	000000
	004536	000000 	160160 	016003 		.WORD	0,160160,16003,0	; DH-11 MUX CONTROLLER 6
	004544	000000
	004546	000000 	160160 	016003 		.WORD	0,160160,16003,0	; DH-11 MUX CONTROLLER 6
	004554	000000
	004556	000000 	160160 	016003 		.WORD	0,160160,16003,0	; DH-11 MUX CONTROLLER 6
	004564	000000
	004566	000000 	160160 	016003 		.WORD	0,160160,16003,0	; DH-11 MUX CONTROLLER 6
	004574	000000
	004576	000000 	160160 	016003 		.WORD	0,160160,16003,0	; DH-11 MUX CONTROLLER 6
	004604	000000
	004606	000000 	160160 	016003 		.WORD	0,160160,16003,0	; DH-11 MUX CONTROLLER 6
	004614	000000
	004616	000000 	160160 	016003 		.WORD	0,160160,16003,0	; DH-11 MUX CONTROLLER 6
	004624	000000
	004626	000000 	160160 	016003 		.WORD	0,160160,16003,0	; DH-11 MUX CONTROLLER 6
	004634	000000
	004636	000000 	160160 	016003 		.WORD	0,160160,16003,0	; DH-11 MUX CONTROLLER 6
	004644	000000
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 28
LOW CORE -- DH-11 DATA BASE

    970		000020 				.REPT	16.
    971						.WORD	0,160200,16003,0	; DH-11 MUX CONTROLLER 7
    972						.ENDR
	004646	000000 	160200 	016003 		.WORD	0,160200,16003,0	; DH-11 MUX CONTROLLER 7
	004654	000000
	004656	000000 	160200 	016003 		.WORD	0,160200,16003,0	; DH-11 MUX CONTROLLER 7
	004664	000000
	004666	000000 	160200 	016003 		.WORD	0,160200,16003,0	; DH-11 MUX CONTROLLER 7
	004674	000000
	004676	000000 	160200 	016003 		.WORD	0,160200,16003,0	; DH-11 MUX CONTROLLER 7
	004704	000000
	004706	000000 	160200 	016003 		.WORD	0,160200,16003,0	; DH-11 MUX CONTROLLER 7
	004714	000000
	004716	000000 	160200 	016003 		.WORD	0,160200,16003,0	; DH-11 MUX CONTROLLER 7
	004724	000000
	004726	000000 	160200 	016003 		.WORD	0,160200,16003,0	; DH-11 MUX CONTROLLER 7
	004734	000000
	004736	000000 	160200 	016003 		.WORD	0,160200,16003,0	; DH-11 MUX CONTROLLER 7
	004744	000000
	004746	000000 	160200 	016003 		.WORD	0,160200,16003,0	; DH-11 MUX CONTROLLER 7
	004754	000000
	004756	000000 	160200 	016003 		.WORD	0,160200,16003,0	; DH-11 MUX CONTROLLER 7
	004764	000000
	004766	000000 	160200 	016003 		.WORD	0,160200,16003,0	; DH-11 MUX CONTROLLER 7
	004774	000000
	004776	000000 	160200 	016003 		.WORD	0,160200,16003,0	; DH-11 MUX CONTROLLER 7
	005004	000000
	005006	000000 	160200 	016003 		.WORD	0,160200,16003,0	; DH-11 MUX CONTROLLER 7
	005014	000000
	005016	000000 	160200 	016003 		.WORD	0,160200,16003,0	; DH-11 MUX CONTROLLER 7
	005024	000000
	005026	000000 	160200 	016003 		.WORD	0,160200,16003,0	; DH-11 MUX CONTROLLER 7
	005034	000000
	005036	000000 	160200 	016003 		.WORD	0,160200,16003,0	; DH-11 MUX CONTROLLER 7
	005044	000000
    973
    974		000200 			DHCNT	==.-DHTBL/8.			; COUNT OF DH-11'S
    975		000205 			TTCNT	==.-TTTBL/8.			; NUMBER OF ENTRIES OF DATA LINE SCANNER TABLE
    976		005046'			TTYEND==.
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 29
LOW CORE -- DH-11 DATA BASE

    978					;
    979					; TERMINAL INPUT CONTROL TABLE, ONE WORD PER LINE
    980					;
    981	005046				.TTS2F::
    982	005046	000000 				.WORD	0		; [5.1015] FLAG FOR CLOCK SERVICE
    983	005050				.S2IDC::
    984	005050	000000 				.WORD	0		; [4.1.1092] CURRENT COUNT OF LOCALLY DISABLED LINES
    985	005052				.S2ITP::
    986	005052	002776'				.WORD	TTTBL		; [4.1.1092] TABLE POSITION OF LAST LOCALLY ENABLED LINE
    987	005054				.IBFLO::
    988	005054	001600 				.WORD	1600		; [4.1.1092] INPUT BUFFER LOW THRESHOLD
    989	005056				.IBFOK::
    990	005056	002000 				.WORD	2000		; [4.1.1092] INPUT BUFFER OK THRESHOLD
    991	005060				STSW2::
    992	005060					.BLKW	TTCNT		; [5.1015] STATUS BLOCK FOR EACH LINE
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 30
LOW CORE -- DECTAPE DRIVER DATA BASE

    995						.SBTTL	LOW CORE -- DECTAPE DRIVER DATA BASE
    996	005472				DTRTC::
    997	005472	000000 				.WORD	0		; ERROR RETRY COUNT AND DRIVE RESET FLAG
    998	005474				DTRNA::
    999	005474	000000 				.WORD	0		; REQUEST NODE ADDRESS
   1000	005476				DTBUF::
   1001	005476	000000 	000000 			.WORD	0,0		; DECTAPE BUFFER
   1002	005502				DTCNT::
   1003	005502	000000 				.WORD	0		; BUFFER SIZE
   1004	005504				DTCW2::
   1005	005504	000000 				.WORD	0
   1006	005506				DTCW3::
   1007	005506	000000 				.WORD	0
   1008	005510					.BLKB	10		; [4.2263] PADDING
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 32
LOW CORE -- DISC DRIVER DATA BASE

   1028						.SBTTL	LOW CORE -- DISC DRIVER DATA BASE
   1029
   1030	005520				RPRTC::
   1031	005520	000000 				.WORD	0		; RETRY COUNT FOR CURRENT OPERATION
   1032	005522				RPRNA::
   1033	005522	000000 				.WORD	0		; ADDRESS OF RNA
   1034	005524				RPBUF::
   1035	005524	000000 	000000 			.WORD	0,0		; BUFFER ADDRESS
   1036	005530				RPCNT::
   1037	005530	000000 				.WORD	0		; SIZE
   1038	005532				RPUNIT::
   1039	005532	000000 				.WORD	0		; CURRENT UNIT
   1040	005534				RPCW2::
   1041	005534	000000 				.WORD	0
   1042	005536				.RPELQ::
   1043	005536	000000 				.WORD	0		; [5.1009] RH-11 ERROR LOGGING QUEUE LISTHEAD
   1044	005540				.RPELC::
   1045	005540	000000 				.WORD	0		; [5.1009] RH-11 ERROR LOGGING QUEUE COUNT
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 33
LOW CORE -- FE DRIVER DATA BASE

   1047						.SBTTL	LOW CORE -- FE DRIVER DATA BASE
   1048
   1049	005542				FETBL::
   1050	005542	000000 				.WORD	0		; ENTRY FOR FE0:
   1051	005544	000000 				.WORD	0		; ENTRY FOR FE1:
   1052	005546	000000 				.WORD	0		; ENTRY FOR FE2:
   1053	005550	000000 				.WORD	0		; ENTRY FOR FE3:
   1054	005552				NODADR::
   1055	005552	000000 				.WORD	0
   1056	005554				ADRSAV::
   1057	005554	000000 				.WORD	0		; ADDRESS SAVED
   1058	005556				BYTESA::
   1059	005556	000000 				.WORD	0		; COUNT
   1060	005560				STSWD::
   1061	005560	000000 	000000 			.WORD	0,0		; STATUS WORDS
   1062	005564				TO10PK::
   1063	005564	000000 				.WORD	0		; -11 REQUEST TO -10
   1064	005566					.BLKB	20
   1065	005606				DNBLK::
   1066	005606	000000 				.WORD	0		; RESPONSE TO -10 REQUEST
   1067	005610				DNFCN::
   1068	005610	000000 				.WORD	0
   1069	005612	000000 	000000 			.WORD	0,0
   1070	005616				DNSTS::
   1071	005616	000000 	000000 			.WORD	0,0
   1072	005622	000000 				.WORD	0
   1073	005624				BLKTT::
   1074	005624					.BLKW	20
   1075	005664				.RPUNT::
   1076	005664	000000 				.WORD	0		; RP UNIT NUMBER FOR RPADR ETC.
   1077	005666				.FEACT::
   1078	005666	000000 				.WORD	0		; FE DEVICE AVAILABLE FOR DB ACCESS WHEN .NE. 0
   1079	005670				.RPADR::
   1080	005670	000000 	000000 			.WORD	0,0		; !!!!RPADR AND RPSIZ MUST BE IN THIS ORDER
   1081	005674				.RPSIZ::
   1082	005674	000000 	000000 			.WORD	0,0		; !!!
   1083
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 34
LOW CORE -- CD-11 DRIVER DATA BASE

   1086						.SBTTL	LOW CORE -- CD-11 DRIVER DATA BASE
   1087
   1088		177160 				CDST==177160		; CONTROL AND STATUS REGISTER ADDRESS
   1089		177162 				CDCC==177162		; COLUMN COUNT REGISTER ADDRESS
   1090		177164 				CDBA==177164		; BUS ADDRESS REGISTER ADDRESS
   1091		177166 				CDDB==177166		; DATA BUFFER REGISTER ADDRESS
   1092
   1093	005700				CREVFG::
   1094	005700	005702'				.WORD	CRCEVF		; ADDRESS OF CR TASK'S EVENT FLAGS
   1095	005702				CRCEVF::
   1096	005702					.BLKW	1		; CURRENT EVENT FLAGS
   1097	005704				CRHUNG::
   1098	005704	000000 				.WORD	0		; # TIMES CR WAS CAUGHT SNOOZING
   1099	005706				.CRPFL::
   1100	005706	000000 				.WORD	0		; POWER FAIL FLAG FOR CARD READER
   1101					;
   1102	005710				CRSTBH::
   1103	005710					.BLKW	1		; HEADER WORD (UNIT/BYTE COUNT) OF STATUS BLOCK
   1104	005712				CRSTBK::
   1105	005712					.BLKW	2+1+<<CDDB+2-CDST>/2> ; STATUS RETURN BLOCK TO -10
   1106		000016 			CRSTLN==.-CRSTBK
   1107					;
   1108	005730				CRBUFH::
   1109	005730					.BLKW	1		; HEADER WORD (UNIT/BYTE COUNT) OF DATA BUFFER
   1110	005732				CRBUFF::
   1111	005732					.BLKW	80.		; DATA BUFFER FROM CD-11
   1112		000240 			CRBFLN==.-CRBUFF
   1113	006172	000000 				.WORD	0		; FOR OVERRUN
   1114					;
   1115					; CR DEVICE STATUS TABLE
   1116					;
   1117	006174				CRTBL::
   1118		006174'			CRTHD==.			; THREADED LIST POINTER (FOR ..STCR)
   1119	006174	000000 				.WORD	0
   1120		006176'			CREXP==.			; EXTERNAL PAGE ADDR OF CD-11
   1121	006176	177160 				.WORD	CDST
   1122		006200'			CRSTS==.			; STATUS BITS
   1123	006200	000000 				.WORD	0
   1124	006202	000000 				.WORD	0		; (NOT USED)
   1125					;
   1126		000010 			CRSIZE==.-CRTBL
   1127
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 35
LOW CORE -- LP-20 DRIVER DATA BASE

   1131						.SBTTL	LOW CORE -- LP-20 DRIVER DATA BASE
   1132
   1133		175400 				LPEXPA==175400		; EXTERNAL PAGE ADDRESS OF LPCSRA
   1134		000020 				LPEXPZ==20		; SIZE OF  EXTERNAL PAGE ADDRESSES IN BYTES
   1135
   1136					;
   1137					; MISCELLANEOUS VARIABLES
   1138					;
   1139	006204				LPUNIT::
   1140	006204					.BLKW	1		; LP UNIT # FROM PS ON INTERRUPT
   1141					;
   1142	006206				LPEVFG::
   1143	006206	006210'				.WORD	LPCEVF		; ADDRESS OF WHERE TO SET EVENT FLAGS FOR LP TASK
   1144					;
   1145	006210				LPCEVF::
   1146	006210					.BLKW	1		; CURRENT EVENT FLAGS
   1147					;
   1148	006212				LPHUNG::
   1149	006212	000000 				.WORD	0		; COUNT OF # TIMES LP WAS HUNG
   1150					;
   1151	006214				.LPPFL::
   1152	006214	000000 				.WORD	0		; POWER FAIL FLAG
   1153					;
   1154	006216				LPSTBH::
   1155	006216					.BLKW	1		; HEADER WORD (UNIT/BYTE COUNT)
   1156	006220				LPSTBK::
   1157	006220					.BLKB	4+2+2+LPEXPZ	; STATUS RETURN BLOCK TO -10
   1158						.EVEN
   1159		000030 			LPSTLN==.-LPSTBK
   1160					;
   1161					;
   1162					; LP DEVICE STATUS TABLE
   1163					;  ONE ENTRY FOR EVERY LP, SIZE= LPSIZE
   1164					;
   1165	006250				LPTBL::
   1166		000000 			$$$UNI=0			; START WITH UNIT 0
   1167		000002 				.REPT	L$$P20		; MAKE ONE FOR EACH LP
   1168					;
   1169					LPSTS==	0			; MISC STATUS BITS: *** MUST BE ZERO ***
   1170						.WORD	$$$UNI
   1171					LPCSA==	2			; EXTERNAL PAGE ADDRESS FOR THIS LP
   1172						.WORD	LPEXPA+<20*$$$UNI>
   1173					LPTHD==	4			; POINTER TO THREADED OUTPUT QUEUE
   1174									; ZERO IF NO QUEUE
   1175						.WORD	0
   1176					LPITH==	6			; INTERRUPT-LEVEL THREAD POINTER
   1177									; POINTS TO CURRENT BUFFER BEING
   1178									; OUTPUT AT INTERRUPT LEVEL
   1179						.WORD	0
   1180					;
   1181					$$$UNI=$$$UNI+1
   1182						.ENDR
	006250	000000 				.WORD	$$$UNI
	006252	175400 				.WORD	LPEXPA+<20*$$$UNI>
	006254	000000 				.WORD	0
	006256	000000 				.WORD	0
	006260	000001 				.WORD	$$$UNI
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 35-1
LOW CORE -- LP-20 DRIVER DATA BASE

	006262	175420 				.WORD	LPEXPA+<20*$$$UNI>
	006264	000000 				.WORD	0
	006266	000000 				.WORD	0
   1183		000010 			LPSIZE==<.-LPTBL>/L$$P20	; SIZE OF EACH ENTRY
   1184					;
   1185					; SECOND (PARALLEL) LP TABLE-- INDEXES ARE FROM LPTBL
   1186					;
   1187	006270				LPTBL2::
   1188		000010 				.REPT	LPSIZE*L$$P20/2	; MAKE SPACE
   1189						.WORD	0
   1190						.ENDR
	006270	000000 				.WORD	0
	006272	000000 				.WORD	0
	006274	000000 				.WORD	0
	006276	000000 				.WORD	0
	006300	000000 				.WORD	0
	006302	000000 				.WORD	0
	006304	000000 				.WORD	0
	006306	000000 				.WORD	0
   1191					;
   1192		000020 			LPMCB==	0+LPTBL2-LPTBL		; MULTI-CHARACTER BUFFER (TWO BYTES)
   1193		000022 			LPCSM==	2+LPTBL2-LPTBL		; ACCUMULATED CHECKSUM (LOW BYTE IS TRASH)
   1194		000024 			LPRTY==	4+LPTBL2-LPTBL		; RETRY COUNTER
   1195					;
   1196					; THIRD (PARALLEL) LP TABLE-- INDEXES ARE ALSO FROM LPTBL
   1197					;
   1198	006310				LPTBL3::
   1199		000010 				.REPT	LPSIZE*L$$P20/2	; MAKE SPACE
   1200						.WORD	0
   1201						.ENDR
	006310	000000 				.WORD	0
	006312	000000 				.WORD	0
	006314	000000 				.WORD	0
	006316	000000 				.WORD	0
	006320	000000 				.WORD	0
	006322	000000 				.WORD	0
	006324	000000 				.WORD	0
	006326	000000 				.WORD	0
   1202					;
   1203		000040 			LPRMA==	0+LPTBL3-LPTBL		; RAM/VFU DATA ADDRESS
   1204		000042 			LPRMZ==	2+LPTBL3-LPTBL		; RAM/VFU DATA BUFFER SIZE
   1205		000044 			LPRMC==	4+LPTBL3-LPTBL		; CURRENT POINTER INTO RAM/VFU DATA
   1206					;
   1207					; POINTERS TO LPTBL BY UNIT NUMBER
   1208					;
   1209	006330				LPUTBL::
   1210		000000 			$$$UNI=0
   1211		000002 				.REPT	L$$P20		; ONE PER LP
   1212						.WORD	LPTBL+<$$$UNI*LPSIZE>
   1213					$$$UNI=$$$UNI+1
   1214						.ENDR
	006330	006250'				.WORD	LPTBL+<$$$UNI*LPSIZE>
	006332	006260'				.WORD	LPTBL+<$$$UNI*LPSIZE>
   1215
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 36
LOW CORE -- STD (SYSTEM TASK DIRECTORY)

   1218						.SBTTL	LOW CORE -- STD (SYSTEM TASK DIRECTORY)
   1219
   1220					;
   1221					;	SYSTEM TASK DIRECTORY
   1222					;
   1223	006334				.STDTA::
   1224	006334	006342'				.WORD	.STDTB		; STD ALPHA TABLE ADDRESS
   1225	006336				.STDTC::
   1226	006336	000044 				.WORD	36.		; STD ALPHA TABLE MAX SIZE *2
   1227	006340				.STDTZ::
   1228	006340	000024 				.WORD	24		; STD "SIZE" (2N-2)
   1229					;
   1230	006342				.STDTB::
   1232	006342	006746'				.WORD	STDCDR		; CARD READER ENTRY
   1234	006344	006406'				.WORD	STDDTE		; DTE CLOCK ENTRY
   1236	006346	006506'				.WORD	STDDTP		; DECTAPE
   1239	006350	006446'				.WORD	STDFED		; FE DRIVER
   1245	006352	006546'				.WORD	STDF11		; F11ACP
   1248	006354	006706'				.WORD	STDLPT		; LP20
   1250	006356	007046'				.WORD	STDQPR		; QUEUE'D PROTOCOL
   1252	006360	006606'				.WORD	STDRPT		; RP04 ENTRY
   1254	006362	007006'				.WORD	STDTTY		; TTY ENTRY
   1256	006364	006646'				.WORD	STDINS		; INSTALL
   1258	006366	000000 	000000 	000000 		.WORD	0,0,0,0,0,0,0
	006374	000000 	000000 	000000
	006402	000000
   1272	006404	000000 				.WORD	0
   1280					;
   1281					;
   1282					;
   1283	006406				STDDTE::
   1284	006406					.STDEN	DTE20,DTETPD,SF.TA!SF.FX!SF.ST,200,0,DTEHD,0,0,0,0,0,0
	006406	016045 	146260 			.RAD50	"DTE20"
	006412	007572'				.WORD	DTETPD
	006414	100003 				.WORD	SF.TA!SF.FX!SF.ST
	006416	   200 	   000 			.BYTE	200,0
	006420	024652'				.WORD	DTEHD
	006422	000000 				.WORD	0
	006424	000000 				.WORD	0
	006426	000000 				.WORD	0
	006430	000000 				.WORD	0
	006432	006432'				.WORD	.
	006434	006432'				.WORD	.-2
	006436	000000 				.WORD	0
	006440	000000 				.WORD	0
	006442	000000 				.WORD	0
	006444	000000 				.WORD	0
   1286					;
   1287	006446				STDFED::
   1288	006446					.STDEN	FE....,FETPD,SF.TA!SF.FX!SF.ST,176,0,FEHD,0,0,0,0,0,0
	006446	023144 	131574 			.RAD50	"FE...."
	006452	007612'				.WORD	FETPD
	006454	100003 				.WORD	SF.TA!SF.FX!SF.ST
	006456	   176 	   000 			.BYTE	176,0
	006460	000000G				.WORD	FEHD
	006462	000000 				.WORD	0
	006464	000000 				.WORD	0
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 36-1
LOW CORE -- STD (SYSTEM TASK DIRECTORY)

	006466	000000 				.WORD	0
	006470	000000 				.WORD	0
	006472	006472'				.WORD	.
	006474	006472'				.WORD	.-2
	006476	000000 				.WORD	0
	006500	000000 				.WORD	0
	006502	000000 				.WORD	0
	006504	000000 				.WORD	0
   1291					;
   1292	006506				STDDTP::
   1293	006506					.STDEN	DT....,DTTPD,SF.TA!SF.FX!SF.ST,176,0,DTHD,0,0,0,0,0,0
	006506	016074 	131574 			.RAD50	"DT...."
	006512	007732'				.WORD	DTTPD
	006514	100003 				.WORD	SF.TA!SF.FX!SF.ST
	006516	   176 	   000 			.BYTE	176,0
	006520	000000G				.WORD	DTHD
	006522	000000 				.WORD	0
	006524	000000 				.WORD	0
	006526	000000 				.WORD	0
	006530	000000 				.WORD	0
	006532	006532'				.WORD	.
	006534	006532'				.WORD	.-2
	006536	000000 				.WORD	0
	006540	000000 				.WORD	0
	006542	000000 				.WORD	0
	006544	000000 				.WORD	0
   1301					;
   1302	006546				STDF11::
   1307	006546					.STDEN	F11ACP,F11TPD,SF.ST,220,<<DT0PEN-.PUDBA>/U.SZ>,145400,7700,0,145400,145400,0,5
	006546	025167 	003310 			.RAD50	"F11ACP"
	006552	007772'				.WORD	F11TPD
	006554	100000 				.WORD	SF.ST
	006556	   220 	   011 			.BYTE	220,<DT0PEN-.PUDBA>/U.SZ
	006560	145400 				.WORD	145400
	006562	007700 				.WORD	7700
	006564	000000 				.WORD	0
	006566	145400 				.WORD	145400
	006570	145400 				.WORD	145400
	006572	006572'				.WORD	.
	006574	006572'				.WORD	.-2
	006576	000000 				.WORD	0
	006600	000000 				.WORD	0
	006602	000005 				.WORD	5
	006604	000000 				.WORD	0
   1314					;
   1315	006606				STDRPT::
   1316	006606					.STDEN	RP....,RPTPD,SF.TA!SF.FX!SF.ST,176,0,RPHD,0,0,0,0,0,0
	006606	071434 	131574 			.RAD50	"RP...."
	006612	007752'				.WORD	RPTPD
	006614	100003 				.WORD	SF.TA!SF.FX!SF.ST
	006616	   176 	   000 			.BYTE	176,0
	006620	000000G				.WORD	RPHD
	006622	000000 				.WORD	0
	006624	000000 				.WORD	0
	006626	000000 				.WORD	0
	006630	000000 				.WORD	0
	006632	006632'				.WORD	.
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 36-2
LOW CORE -- STD (SYSTEM TASK DIRECTORY)

	006634	006632'				.WORD	.-2
	006636	000000 				.WORD	0
	006640	000000 				.WORD	0
	006642	000000 				.WORD	0
	006644	000000 				.WORD	0
   1319					;
   1320	006646				STDINS::
   1321	006646					.STDEN	.INST.,INSTPD,SF.FX!SF.ST,200,0,INSHD,0,0,INSTAL,INSTK-16,0,0
	006646	130166 	074774 			.RAD50	".INST."
	006652	007552'				.WORD	INSTPD
	006654	100002 				.WORD	SF.FX!SF.ST
	006656	   200 	   000 			.BYTE	200,0
	006660	000000G				.WORD	INSHD
	006662	000000 				.WORD	0
	006664	000000 				.WORD	0
	006666	000000G				.WORD	INSTAL
	006670	177762G				.WORD	INSTK-16
	006672	006672'				.WORD	.
	006674	006672'				.WORD	.-2
	006676	000000 				.WORD	0
	006700	000000 				.WORD	0
	006702	000000 				.WORD	0
	006704	000000 				.WORD	0
   1324					;
   1325	006706				STDLPT::
   1326	006706					.STDEN	LPDRV,LPTPD,SF.TA!SF.FX!SF.ST,176,0,LPHD,0,0,0,0,0,0
	006706	046604 	071760 			.RAD50	"LPDRV"
	006712	007652'				.WORD	LPTPD
	006714	100003 				.WORD	SF.TA!SF.FX!SF.ST
	006716	   176 	   000 			.BYTE	176,0
	006720	000000G				.WORD	LPHD
	006722	000000 				.WORD	0
	006724	000000 				.WORD	0
	006726	000000 				.WORD	0
	006730	000000 				.WORD	0
	006732	006732'				.WORD	.
	006734	006732'				.WORD	.-2
	006736	000000 				.WORD	0
	006740	000000 				.WORD	0
	006742	000000 				.WORD	0
	006744	000000 				.WORD	0
   1329					;
   1330	006746				STDCDR::
   1331	006746					.STDEN	CDDRV,CDRTPD,SF.TA!SF.FX!SF.ST,210,0,CRHD,0,0,57252,55130-16,0,0
	006746	011544 	071760 			.RAD50	"CDDRV"
	006752	007672'				.WORD	CDRTPD
	006754	100003 				.WORD	SF.TA!SF.FX!SF.ST
	006756	   210 	   000 			.BYTE	210,0
	006760	000000G				.WORD	CRHD
	006762	000000 				.WORD	0
	006764	000000 				.WORD	0
	006766	057252 				.WORD	57252
	006770	055112 				.WORD	55130-16
	006772	006772'				.WORD	.
	006774	006772'				.WORD	.-2
	006776	000000 				.WORD	0
	007000	000000 				.WORD	0
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 36-3
LOW CORE -- STD (SYSTEM TASK DIRECTORY)

	007002	000000 				.WORD	0
	007004	000000 				.WORD	0
   1333					;
   1334	007006				STDTTY::
   1335	007006					.STDEN	TTYDRV,TTYTPD,SF.TA!SF.FX!SF.ST,177,0,TTYHD,0,0,0,0,0,0
	007006	100071 	015746 			.RAD50	"TTYDRV"
	007012	007632'				.WORD	TTYTPD
	007014	100003 				.WORD	SF.TA!SF.FX!SF.ST
	007016	   177 	   000 			.BYTE	177,0
	007020	031736'				.WORD	TTYHD
	007022	000000 				.WORD	0
	007024	000000 				.WORD	0
	007026	000000 				.WORD	0
	007030	000000 				.WORD	0
	007032	007032'				.WORD	.
	007034	007032'				.WORD	.-2
	007036	000000 				.WORD	0
	007040	000000 				.WORD	0
	007042	000000 				.WORD	0
	007044	000000 				.WORD	0
   1336					;
   1337	007046				STDQPR::
   1338	007046					.STDEN	QDPROT,QPRTPD,SF.TA!SF.FX!SF.ST,176,0,BTPHD,0,0,0,0,0,0
	007046	065360 	071354 			.RAD50	"QDPROT"
	007052	007712'				.WORD	QPRTPD
	007054	100003 				.WORD	SF.TA!SF.FX!SF.ST
	007056	   176 	   000 			.BYTE	176,0
	007060	016032'				.WORD	BTPHD
	007062	000000 				.WORD	0
	007064	000000 				.WORD	0
	007066	000000 				.WORD	0
	007070	000000 				.WORD	0
	007072	007072'				.WORD	.
	007074	007072'				.WORD	.-2
	007076	000000 				.WORD	0
	007100	000000 				.WORD	0
	007102	000000 				.WORD	0
	007104	000000 				.WORD	0
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 37
LOW CORE -- ATL (ACTIVE TASK LIST)

   1340						.SBTTL	LOW CORE -- ATL (ACTIVE TASK LIST)
   1341
   1342					;
   1343					;	ACTIVE TASK LISTHEAD
   1344					;
   1345	007106				.ATLLH::
   1346	007106	007112'				.WORD	DTETSK		; FORWARD POINTER IN ACTIVE TASK LIST
   1347	007110	007512'				.WORD	NULTSK		; NULL TASK
   1348					;
   1349					;
   1350	007112				DTETSK::
   1351	007112					.ATLEN	TTYTSK,.ATLLH,DTESP,0,200,DTEHD,TS.RUN,0,STDDTE,0,0,0,0,0,0,0
	007112	007152'				.WORD	TTYTSK
	007114	007106'				.WORD	.ATLLH
	007116	025132'				.WORD	DTESP
	007120	000000 				.WORD	0
	007122	000200 				.WORD	200
	007124	024652'				.WORD	DTEHD
	007126	   010 	   000 			.BYTE	TS.RUN,0
	007130	006406'				.WORD	STDDTE
	007132	000000 	000000 			.WORD	0,0
	007136	000000 	000000 	000000 		.WORD	0,0,0,0
	007144	000000
	007146	000000 				.WORD	0
	007150	000000 				.WORD	0
   1352					;
   1353	007152				TTYTSK::
   1354	007152					.ATLEN	RPTSK,DTETSK,TTYSP,0,177,TTYHD,TS.RUN,0,STDTTY,0,0,0,0,0,0,0
	007152	007212'				.WORD	RPTSK
	007154	007112'				.WORD	DTETSK
	007156	032216'				.WORD	TTYSP
	007160	000000 				.WORD	0
	007162	000177 				.WORD	177
	007164	031736'				.WORD	TTYHD
	007166	   010 	   000 			.BYTE	TS.RUN,0
	007170	007006'				.WORD	STDTTY
	007172	000000 	000000 			.WORD	0,0
	007176	000000 	000000 	000000 		.WORD	0,0,0,0
	007204	000000
	007206	000000 				.WORD	0
	007210	000000 				.WORD	0
   1355					;
   1357	007212				RPTSK::
   1358	007212					.ATLEN	LPTSK,TTYTSK,RPSTK,0,176,RPHD,TS.RUN,0,STDRPT,0,0,0,0,0,0,0
	007212	007252'				.WORD	LPTSK
	007214	007152'				.WORD	TTYTSK
	007216	000000G				.WORD	RPSTK
	007220	000000 				.WORD	0
	007222	000176 				.WORD	176
	007224	000000G				.WORD	RPHD
	007226	   010 	   000 			.BYTE	TS.RUN,0
	007230	006606'				.WORD	STDRPT
	007232	000000 	000000 			.WORD	0,0
	007236	000000 	000000 	000000 		.WORD	0,0,0,0
	007244	000000
	007246	000000 				.WORD	0
	007250	000000 				.WORD	0
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 37-1
LOW CORE -- ATL (ACTIVE TASK LIST)

   1362					;
   1364	007252				LPTSK::
   1365	007252					.ATLEN	CDTSK,RPTSK,LPSTK,0,176,LPHD,TS.RUN,0,STDLPT,0,0,0,0,0,0,0
	007252	007312'				.WORD	CDTSK
	007254	007212'				.WORD	RPTSK
	007256	000000G				.WORD	LPSTK
	007260	000000 				.WORD	0
	007262	000176 				.WORD	176
	007264	000000G				.WORD	LPHD
	007266	   010 	   000 			.BYTE	TS.RUN,0
	007270	006706'				.WORD	STDLPT
	007272	000000 	000000 			.WORD	0,0
	007276	000000 	000000 	000000 		.WORD	0,0,0,0
	007304	000000
	007306	000000 				.WORD	0
	007310	000000 				.WORD	0
   1370	007312				CDTSK::
   1371	007312					.ATLEN	DTTSK,LPTSK,CRSTK,CDRTPD,176,CRHD,TS.RUN,0,STDCDR,0,0,0,0,0,0,0
	007312	007352'				.WORD	DTTSK
	007314	007252'				.WORD	LPTSK
	007316	000000G				.WORD	CRSTK
	007320	007672'				.WORD	CDRTPD
	007322	000176 				.WORD	176
	007324	000000G				.WORD	CRHD
	007326	   010 	   000 			.BYTE	TS.RUN,0
	007330	006746'				.WORD	STDCDR
	007332	000000 	000000 			.WORD	0,0
	007336	000000 	000000 	000000 		.WORD	0,0,0,0
	007344	000000
	007346	000000 				.WORD	0
	007350	000000 				.WORD	0
   1375					;
   1377	007352				DTTSK::
   1378	007352					.ATLEN	FETSK,CDTSK,DTSTK,0,176,DTHD,TS.RUN,0,STDDTP,0,0,0,0,0,0,0
	007352	007412'				.WORD	FETSK
	007354	007312'				.WORD	CDTSK
	007356	000000G				.WORD	DTSTK
	007360	000000 				.WORD	0
	007362	000176 				.WORD	176
	007364	000000G				.WORD	DTHD
	007366	   010 	   000 			.BYTE	TS.RUN,0
	007370	006506'				.WORD	STDDTP
	007372	000000 	000000 			.WORD	0,0
	007376	000000 	000000 	000000 		.WORD	0,0,0,0
	007404	000000
	007406	000000 				.WORD	0
	007410	000000 				.WORD	0
   1382					;
   1384	007412				FETSK::
   1385	007412					.ATLEN	DXTSK,DTTSK,FESTK,0,176,FEHD,TS.RUN,0,STDFED,0,0,0,0,0,0,0
	007412	007452'				.WORD	DXTSK
	007414	007352'				.WORD	DTTSK
	007416	000000G				.WORD	FESTK
	007420	000000 				.WORD	0
	007422	000176 				.WORD	176
	007424	000000G				.WORD	FEHD
	007426	   010 	   000 			.BYTE	TS.RUN,0
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 37-2
LOW CORE -- ATL (ACTIVE TASK LIST)

	007430	006446'				.WORD	STDFED
	007432	000000 	000000 			.WORD	0,0
	007436	000000 	000000 	000000 		.WORD	0,0,0,0
	007444	000000
	007446	000000 				.WORD	0
	007450	000000 				.WORD	0
   1389					;
   1394	007452				DXTSK::
   1396					;
   1397	007452				QPRTSK::
   1398	007452					.ATLEN	NULTSK,DXTSK,.BTSTK,0,1,BTPHD,TS.RUN,0,STDQPR,0,0,0,0,0,0,0
	007452	007512'				.WORD	NULTSK
	007454	007452'				.WORD	DXTSK
	007456	016312'				.WORD	.BTSTK
	007460	000000 				.WORD	0
	007462	000001 				.WORD	1
	007464	016032'				.WORD	BTPHD
	007466	   010 	   000 			.BYTE	TS.RUN,0
	007470	007046'				.WORD	STDQPR
	007472	000000 	000000 			.WORD	0,0
	007476	000000 	000000 	000000 		.WORD	0,0,0,0
	007504	000000
	007506	000000 				.WORD	0
	007510	000000 				.WORD	0
   1399					;
   1400	007512				NULTSK::
   1401	007512					.ATLEN	.ATLLH,QPRTSK,NTKXSP,0,0,NULHD,TS.RUN,0,0,0,0,0,0,0,0,0
	007512	007106'				.WORD	.ATLLH
	007514	007452'				.WORD	QPRTSK
	007516	012522'				.WORD	NTKXSP
	007520	000000 				.WORD	0
	007522	000000 				.WORD	0
	007524	012242'				.WORD	NULHD
	007526	   010 	   000 			.BYTE	TS.RUN,0
	007530	000000 				.WORD	0
	007532	000000 	000000 			.WORD	0,0
	007536	000000 	000000 	000000 		.WORD	0,0,0,0
	007544	000000
	007546	000000 				.WORD	0
	007550	000000 				.WORD	0
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 38
LOW CORE -- TPD (TASK PARTITION DIRECTORY)

   1403						.SBTTL	LOW CORE -- TPD (TASK PARTITION DIRECTORY)
   1404
   1405					;
   1406					;	TASK PARTITION DIRECTORY
   1407					;
   1408	007552				.TPDBA::
   1410					;
   1411	007552				INSTPD::
   1412	007552					.TPDEN	INSTPD,INSHD,0,0,TF.OU
	007552	000000 	000000 			.WORD	0,0
	007552	035203 	077604 			.RAD50	"INSTPD"
	007556	000000G				.WORD	INSHD
	007560	000000 				.WORD	0
	007562	000000 				.WORD	0
	007564	000002 				.WORD	TF.OU
	007566	007566'				.WORD	.
	007570	007566'				.WORD	.-2
   1414					;
   1415	007572				DTETPD::
   1416	007572					.TPDEN	DTETPD,DTEHD,0,0,TF.OU
	007572	000000 	000000 			.WORD	0,0
	007572	016045 	077604 			.RAD50	"DTETPD"
	007576	024652'				.WORD	DTEHD
	007600	000000 				.WORD	0
	007602	000000 				.WORD	0
	007604	000002 				.WORD	TF.OU
	007606	007606'				.WORD	.
	007610	007606'				.WORD	.-2
   1418					;
   1419	007612				FETPD::
   1420	007612					.TPDEN	FETPD,FEHD,0,0,TF.OU
	007612	000000 	000000 			.WORD	0,0
	007612	023134 	062240 			.RAD50	"FETPD"
	007616	000000G				.WORD	FEHD
	007620	000000 				.WORD	0
	007622	000000 				.WORD	0
	007624	000002 				.WORD	TF.OU
	007626	007626'				.WORD	.
	007630	007626'				.WORD	.-2
   1422					;
   1423	007632				TTYTPD::
   1424	007632					.TPDEN	TTYTPD,TTYHD,0,0,TF.OU
	007632	000000 	000000 			.WORD	0,0
	007632	100071 	077604 			.RAD50	"TTYTPD"
	007636	031736'				.WORD	TTYHD
	007640	000000 				.WORD	0
	007642	000000 				.WORD	0
	007644	000002 				.WORD	TF.OU
	007646	007646'				.WORD	.
	007650	007646'				.WORD	.-2
   1426					;
   1427	007652				LPTPD::
   1428	007652					.TPDEN	LPTPD,LPHD,0,0,TF.OU
	007652	000000 	000000 			.WORD	0,0
	007652	046624 	062240 			.RAD50	"LPTPD"
	007656	000000G				.WORD	LPHD
	007660	000000 				.WORD	0
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 38-1
LOW CORE -- TPD (TASK PARTITION DIRECTORY)

	007662	000000 				.WORD	0
	007664	000002 				.WORD	TF.OU
	007666	007666'				.WORD	.
	007670	007666'				.WORD	.-2
   1431					;
   1432	007672				CDRTPD::
   1433	007672					.TPDEN	CDRTPD,CRHD,0,0,TF.OU
	007672	000000 	000000 			.WORD	0,0
	007672	011562 	077604 			.RAD50	"CDRTPD"
	007676	000000G				.WORD	CRHD
	007700	000000 				.WORD	0
	007702	000000 				.WORD	0
	007704	000002 				.WORD	TF.OU
	007706	007706'				.WORD	.
	007710	007706'				.WORD	.-2
   1435					;
   1436	007712				QPRTPD::
   1437	007712					.TPDEN	QPRTPD,BTPHD,0,0,TF.OU
	007712	000000 	000000 			.WORD	0,0
	007712	066322 	077604 			.RAD50	"QPRTPD"
	007716	016032'				.WORD	BTPHD
	007720	000000 				.WORD	0
	007722	000000 				.WORD	0
	007724	000002 				.WORD	TF.OU
	007726	007726'				.WORD	.
	007730	007726'				.WORD	.-2
   1439					;
   1440	007732				DTTPD::
   1441	007732					.TPDEN	DTTPD,DTHD,0,0,TF.OU
	007732	000000 	000000 			.WORD	0,0
	007732	016064 	062240 			.RAD50	"DTTPD"
	007736	000000G				.WORD	DTHD
	007740	000000 				.WORD	0
	007742	000000 				.WORD	0
	007744	000002 				.WORD	TF.OU
	007746	007746'				.WORD	.
	007750	007746'				.WORD	.-2
   1449					;
   1450	007752				RPTPD::
   1451	007752					.TPDEN	RPTPD,RPHD,0,0,TF.OU
	007752	000000 	000000 			.WORD	0,0
	007752	071424 	062240 			.RAD50	"RPTPD"
	007756	000000G				.WORD	RPHD
	007760	000000 				.WORD	0
	007762	000000 				.WORD	0
	007764	000002 				.WORD	TF.OU
	007766	007766'				.WORD	.
	007770	007766'				.WORD	.-2
   1454					;
   1455	007772				F11TPD::
   1456	007772					.TPDEN	F11TPD,145400,12400,0,0
	007772	000000 	000000 			.WORD	0,0
	007772	025167 	077604 			.RAD50	"F11TPD"
	007776	145400 				.WORD	145400
	010000	012400 				.WORD	12400
	010002	000000 				.WORD	0
	010004	000000 				.WORD	0
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 38-2
LOW CORE -- TPD (TASK PARTITION DIRECTORY)

	010006	010006'				.WORD	.
	010010	010006'				.WORD	.-2
   1458					;
   1459	010012				GENTPD::
   1460	010012					.TPDEN	GEN,100000,45400,0,0
	010012	000000 	000000 			.WORD	0,0
	010012	026226 				.RAD50	"GEN"
	010016	100000 				.WORD	100000
	010020	045400 				.WORD	45400
	010022	000000 				.WORD	0
	010024	000000 				.WORD	0
	010026	010026'				.WORD	.
	010030	010026'				.WORD	.-2
   1461					;
   1462	010032				.TPDEA::		;END OF TPD
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 39
LOW CORE -- DEVICE QUEUE POINTERS

   1464						.SBTTL	LOW CORE -- DEVICE QUEUE POINTERS
   1465
   1466					;
   1467					;	DEVICE QUEUE POINTERS
   1468					;
   1469		000020 			Q.SZ=20		; QUEUE ENTRY SIZE (NOTE:IS A GLOBAL VAR.)
   1470
   1471		000001 				D.CCTY==1	; DEVICE CODE FOR CTY
   1472	010032				.DQPBA::
   1473	010032					.DQPEN	TTTBL,8.,..STTY,..STPT,IGNO,IGNO,0,TTCNT
	010032	002776'				.WORD	TTTBL
	010034	000010 				.WORD	8.
	010036	044726'				.WORD	..STTY
	010040	045142'				.WORD	..STPT
	010042	012140'				.WORD	IGNO
	010044	012140'				.WORD	IGNO
	010046	000000 				.WORD	0
	010050	000205 				.WORD	TTCNT
   1474
   1475		000002 				D.CDL1==2	; DEVICE CODE FOR DL-11
   1476	010052				.DQDL1::
   1477	010052					.DQPEN	DLTBL,8.,..STTY,..STPT,IGNO,IGNO,0,DLCNT
	010052	002776'				.WORD	DLTBL
	010054	000010 				.WORD	8.
	010056	044726'				.WORD	..STTY
	010060	045142'				.WORD	..STPT
	010062	012140'				.WORD	IGNO
	010064	012140'				.WORD	IGNO
	010066	000000 				.WORD	0
	010070	000005 				.WORD	DLCNT
   1478
   1479		000003 				D.CDH1==3	; DEVICE CODE FOR DH-11 (1)
   1480	010072				.DQDH0::
   1481	010072					.DQPEN	DHTBL,8.,..STTY,..STPT,IGNO,IGNO,0,DHCNT
	010072	003046'				.WORD	DHTBL
	010074	000010 				.WORD	8.
	010076	044726'				.WORD	..STTY
	010100	045142'				.WORD	..STPT
	010102	012140'				.WORD	IGNO
	010104	012140'				.WORD	IGNO
	010106	000000 				.WORD	0
	010110	000200 				.WORD	DHCNT
   1482
   1483		000004 				D.CDLS==4	; DEVICE CODE FOR DATA LINE SCANNER (1)
   1484	010112				.DQDLS::
   1485	010112					.DQPEN	TTTBL,8.,..STTY,..STPT,IGNO,IGNO,0,TTCNT
	010112	002776'				.WORD	TTTBL
	010114	000010 				.WORD	8.
	010116	044726'				.WORD	..STTY
	010120	045142'				.WORD	..STPT
	010122	012140'				.WORD	IGNO
	010124	012140'				.WORD	IGNO
	010126	000000 				.WORD	0
	010130	000205 				.WORD	TTCNT
   1486
   1487		000005 				D.CLPT==5	; DEVICE CODE FOR LPT
   1488	010132				.DQLPT::
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 39-1
LOW CORE -- DEVICE QUEUE POINTERS

   1489	010132					.DQPEN	LPTBL,8.,..STLP,..SPLP,IGNO,..AKLP,0,2
	010132	006250'				.WORD	LPTBL
	010134	000010 				.WORD	8.
	010136	000000G				.WORD	..STLP
	010140	000000G				.WORD	..SPLP
	010142	012140'				.WORD	IGNO
	010144	000000G				.WORD	..AKLP
	010146	000000 				.WORD	0
	010150	000002 				.WORD	2
   1490
   1491		000006 				D.CCDR==6	; DEVICE CODE FOR CDR
   1492	010152				.DQCDR::
   1493	010152					.DQPEN	CRTBL,8.,..STCR,IGNO,IGNO,..AKCR,0,1
	010152	006174'				.WORD	CRTBL
	010154	000010 				.WORD	8.
	010156	000000G				.WORD	..STCR
	010160	012140'				.WORD	IGNO
	010162	012140'				.WORD	IGNO
	010164	000000G				.WORD	..AKCR
	010166	000000 				.WORD	0
	010170	000001 				.WORD	1
   1494
   1495		000007 				D.CCLK==7	; DEVICE CODE FOR CLOCK
   1496	010172					.DQPEN	0,0,IGNO,IGNO,IGNO,IGNO,0,1
	010172	000000 				.WORD	0
	010174	000000 				.WORD	0
	010176	012140'				.WORD	IGNO
	010200	012140'				.WORD	IGNO
	010202	012140'				.WORD	IGNO
	010204	012140'				.WORD	IGNO
	010206	000000 				.WORD	0
	010210	000001 				.WORD	1
   1497
   1498		000010 				D.FEPD==10	; PSEUDO DEVICE FOR FE
   1499	010212					.DQPEN	FETBL,2.,.FEST,IGNO,IGNO,.FEACK,0,4
	010212	005542'				.WORD	FETBL
	010214	000002 				.WORD	2.
	010216	000000G				.WORD	.FEST
	010220	012140'				.WORD	IGNO
	010222	012140'				.WORD	IGNO
	010224	000000G				.WORD	.FEACK
	010226	000000 				.WORD	0
	010230	000004 				.WORD	4
   1500
   1501
   1502	010232				.DQPEA::			; END OF DEVICE QUEUE POINTER TABLE
   1503		000010 			.DQPSZ==.DQPEA-.DQPBA/Q.SZ	; SIZE OF DEVICE QUEUE POINTER TABLE
   1504
   1505					;
   1506					;	NOTE -- THESE PSUEDO-DEVICES ARE OUTPUT-ONLY AND
   1507					;		ARE ASSOCIATED WITH ERROR LOGGING
   1508					;
   1509		000200 				D.CCPU==200		; PSEUDO DEVICE PDP10 CPU
   1510		000201 				D.CKLE==201		; KL ERROR PSEUDO DEVICE
   1511		000202 				D.CDTE==202		; [5.1008] DTE-20 PSEUDO DEVICE CODE
   1512		000203 				D.CRJP==203		; [5.1009] RH-11/RJP-04/06 PSEUDO DEVICE CODE
   1513		000204 				D.CDMB==204		; [4.1.1091] DM-11/BB CONFIGURATION CODE
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 39-2
LOW CORE -- DEVICE QUEUE POINTERS

   1514		000205 				D.CLOG==205		; ASCII 'PARSER.LOG'
   1515		000210 				D.CKLN==210		; KLINIK PSEUDO-DEVICE
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 40
LOW CORE -- LOGICAL UNIT TABLES

   1517						.SBTTL	LOW CORE -- LOGICAL UNIT TABLES
   1518
   1519					;
   1520					;	LOGICAL UNIT TABLE
   1521					;
   1522	010232				.PUDBA::			; START OF LOGICAL UNIT TABLE
   1523					;
   1524		000001 				L.TTY==1	; LOGICAL UNIT 1
   1525	010232				TTPEN::
   1526	010232					.PUDEN	TT,0,0,UC.REC!UC.CCL!UC.TTY,0,0,80.,TTPEN,TTYTSK,0,0,0
	010232	   124 	   124 			.ASCII	"TT"
	010234	   000 				.BYTE	0
	010235	   000 				.BYTE	0
	010236	000007 				.WORD	UC.REC!UC.CCL!UC.TTY
	010240	000000 				.WORD	0
	010242	000000 				.WORD	0
	010244	000120 				.WORD	80.
	010246	000000 				.WORD	0
	010250	010232'				.WORD	TTPEN
	010252	007152'				.WORD	TTYTSK
	010254	010254'				.WORD	.
	010256	010254'				.WORD	.-2
	010260	000000 				.WORD	0
	010262	   005 	   005 			.BYTE	5,5
	010264	000000 				.WORD	0
	010266	177777 				.WORD	-1
	010270	135600 				.RAD50	/0/
	010272	000000 				.WORD	0
	010274	000000 				.WORD	0
	010276	000000 				.WORD	0
	010300	000000 				.WORD	0
   1527					;
   1528		000002 				L.RP4==2
   1529						;DVCH=CH.OFF+CH.NAT*400+CH.OFF+CH.NAT
   1530		110220 				DVCH=110220
   1531						;FW=UF.TL!UF.RH
   1532		000300 				FW=300
   1533						;C1=UC.MNT!UC.F11!UC.DIR
   1534		140010 				C1=140010
   1535						;C1DB=UC.MNT!UC.F11!UC.DIR!UC.ETB
   1536		140110 				C1DB=140110
   1537					;
   1539	010302				RPPEN::
   1540	010302					.PUDEN	DB,0,FW,C1DB,0,0,512.,RPPEN,RPTSK,DVCH,F11,0
	010302	   104 	   102 			.ASCII	"DB"
	010304	   000 				.BYTE	0
	010305	   300 				.BYTE	FW
	010306	140110 				.WORD	C1DB
	010310	000000 				.WORD	0
	010312	000000 				.WORD	0
	010314	001000 				.WORD	512.
	010316	000000 				.WORD	0
	010320	010302'				.WORD	RPPEN
	010322	007212'				.WORD	RPTSK
	010324	010324'				.WORD	.
	010326	010324'				.WORD	.-2
	010330	000000 				.WORD	0
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 40-1
LOW CORE -- LOGICAL UNIT TABLES

	010332	   005 	   005 			.BYTE	5,5
	010334	110220 				.WORD	DVCH
	010336	177777 				.WORD	-1
	010340	025167 				.RAD50	/F11/
	010342	000000 				.WORD	0
	010344	000000 				.WORD	0
	010346	000000 				.WORD	0
	010350	000000 				.WORD	0
   1541					; THIS IS DONE TO KEEP .PUDEN MACROS SHORTER THAN 80 CHARS
   1542		010346'			.=.-4
   1543	010346	000002 				.WORD	2
   1544	010350	050700 				.WORD	50700		; RP SIZE IS 140000. BLOCKS
   1545	010352				.RP1PE::
   1546	010352					.PUDEN DB,1,FW,C1DB,0,0,512.,.RP1PE,RPTSK,DVCH,F11,0
	010352	   104 	   102 			.ASCII	"DB"
	010354	   001 				.BYTE	1
	010355	   300 				.BYTE	FW
	010356	140110 				.WORD	C1DB
	010360	000000 				.WORD	0
	010362	000000 				.WORD	0
	010364	001000 				.WORD	512.
	010366	000000 				.WORD	0
	010370	010352'				.WORD	.RP1PE
	010372	007212'				.WORD	RPTSK
	010374	010374'				.WORD	.
	010376	010374'				.WORD	.-2
	010400	000000 				.WORD	0
	010402	   005 	   005 			.BYTE	5,5
	010404	110220 				.WORD	DVCH
	010406	177777 				.WORD	-1
	010410	025167 				.RAD50	/F11/
	010412	000000 				.WORD	0
	010414	000000 				.WORD	0
	010416	000000 				.WORD	0
	010420	000000 				.WORD	0
   1547		010416'				.=.-4
   1548	010416	000002 				.WORD	2
   1549	010420	050700 				.WORD	50700
   1550	010422				.RP2PE::
   1551	010422					.PUDEN DB,2,FW,C1DB,0,0,512.,.RP2PE,RPTSK,DVCH,F11,0
	010422	   104 	   102 			.ASCII	"DB"
	010424	   002 				.BYTE	2
	010425	   300 				.BYTE	FW
	010426	140110 				.WORD	C1DB
	010430	000000 				.WORD	0
	010432	000000 				.WORD	0
	010434	001000 				.WORD	512.
	010436	000000 				.WORD	0
	010440	010422'				.WORD	.RP2PE
	010442	007212'				.WORD	RPTSK
	010444	010444'				.WORD	.
	010446	010444'				.WORD	.-2
	010450	000000 				.WORD	0
	010452	   005 	   005 			.BYTE	5,5
	010454	110220 				.WORD	DVCH
	010456	177777 				.WORD	-1
	010460	025167 				.RAD50	/F11/
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 40-2
LOW CORE -- LOGICAL UNIT TABLES

	010462	000000 				.WORD	0
	010464	000000 				.WORD	0
	010466	000000 				.WORD	0
	010470	000000 				.WORD	0
   1552		010466'				.=.-4
   1553	010466	000002 				.WORD	2
   1554	010470	050700 				.WORD	50700
   1555	010472				.RP3PE::
   1556	010472					.PUDEN DB,3,FW,C1DB,0,0,512.,.RP3PE,RPTSK,DVCH,F11,0
	010472	   104 	   102 			.ASCII	"DB"
	010474	   003 				.BYTE	3
	010475	   300 				.BYTE	FW
	010476	140110 				.WORD	C1DB
	010500	000000 				.WORD	0
	010502	000000 				.WORD	0
	010504	001000 				.WORD	512.
	010506	000000 				.WORD	0
	010510	010472'				.WORD	.RP3PE
	010512	007212'				.WORD	RPTSK
	010514	010514'				.WORD	.
	010516	010514'				.WORD	.-2
	010520	000000 				.WORD	0
	010522	   005 	   005 			.BYTE	5,5
	010524	110220 				.WORD	DVCH
	010526	177777 				.WORD	-1
	010530	025167 				.RAD50	/F11/
	010532	000000 				.WORD	0
	010534	000000 				.WORD	0
	010536	000000 				.WORD	0
	010540	000000 				.WORD	0
   1557		010536'				.=.-4
   1558	010536	000002 				.WORD	2
   1559	010540	050700 				.WORD	50700
   1560	010542				.RP4PE::
   1561	010542					.PUDEN DB,4,FW,C1DB,0,0,512.,.RP4PE,RPTSK,DVCH,F11,0
	010542	   104 	   102 			.ASCII	"DB"
	010544	   004 				.BYTE	4
	010545	   300 				.BYTE	FW
	010546	140110 				.WORD	C1DB
	010550	000000 				.WORD	0
	010552	000000 				.WORD	0
	010554	001000 				.WORD	512.
	010556	000000 				.WORD	0
	010560	010542'				.WORD	.RP4PE
	010562	007212'				.WORD	RPTSK
	010564	010564'				.WORD	.
	010566	010564'				.WORD	.-2
	010570	000000 				.WORD	0
	010572	   005 	   005 			.BYTE	5,5
	010574	110220 				.WORD	DVCH
	010576	177777 				.WORD	-1
	010600	025167 				.RAD50	/F11/
	010602	000000 				.WORD	0
	010604	000000 				.WORD	0
	010606	000000 				.WORD	0
	010610	000000 				.WORD	0
   1562		010606'				.=.-4
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 40-3
LOW CORE -- LOGICAL UNIT TABLES

   1563	010606	000002 				.WORD	2
   1564	010610	050700 				.WORD	50700
   1565	010612				.RP5PE::
   1566	010612					.PUDEN DB,5,FW,C1DB,0,0,512.,.RP5PE,RPTSK,DVCH,F11,0
	010612	   104 	   102 			.ASCII	"DB"
	010614	   005 				.BYTE	5
	010615	   300 				.BYTE	FW
	010616	140110 				.WORD	C1DB
	010620	000000 				.WORD	0
	010622	000000 				.WORD	0
	010624	001000 				.WORD	512.
	010626	000000 				.WORD	0
	010630	010612'				.WORD	.RP5PE
	010632	007212'				.WORD	RPTSK
	010634	010634'				.WORD	.
	010636	010634'				.WORD	.-2
	010640	000000 				.WORD	0
	010642	   005 	   005 			.BYTE	5,5
	010644	110220 				.WORD	DVCH
	010646	177777 				.WORD	-1
	010650	025167 				.RAD50	/F11/
	010652	000000 				.WORD	0
	010654	000000 				.WORD	0
	010656	000000 				.WORD	0
	010660	000000 				.WORD	0
   1567		010656'				.=.-4
   1568	010656	000002 				.WORD	2
   1569	010660	050700 				.WORD	50700
   1570	010662				.RP6PE::
   1571	010662					.PUDEN DB,6,FW,C1DB,0,0,512.,.RP6PE,RPTSK,DVCH,F11,0
	010662	   104 	   102 			.ASCII	"DB"
	010664	   006 				.BYTE	6
	010665	   300 				.BYTE	FW
	010666	140110 				.WORD	C1DB
	010670	000000 				.WORD	0
	010672	000000 				.WORD	0
	010674	001000 				.WORD	512.
	010676	000000 				.WORD	0
	010700	010662'				.WORD	.RP6PE
	010702	007212'				.WORD	RPTSK
	010704	010704'				.WORD	.
	010706	010704'				.WORD	.-2
	010710	000000 				.WORD	0
	010712	   005 	   005 			.BYTE	5,5
	010714	110220 				.WORD	DVCH
	010716	177777 				.WORD	-1
	010720	025167 				.RAD50	/F11/
	010722	000000 				.WORD	0
	010724	000000 				.WORD	0
	010726	000000 				.WORD	0
	010730	000000 				.WORD	0
   1572		010726'				.=.-4
   1573	010726	000002 				.WORD	2
   1574	010730	050700 				.WORD	50700
   1575	010732				.RP7PE::
   1576	010732					.PUDEN DB,7,FW,C1DB,0,0,512.,.RP7PE,RPTSK,DVCH,F11,0
	010732	   104 	   102 			.ASCII	"DB"
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 40-4
LOW CORE -- LOGICAL UNIT TABLES

	010734	   007 				.BYTE	7
	010735	   300 				.BYTE	FW
	010736	140110 				.WORD	C1DB
	010740	000000 				.WORD	0
	010742	000000 				.WORD	0
	010744	001000 				.WORD	512.
	010746	000000 				.WORD	0
	010750	010732'				.WORD	.RP7PE
	010752	007212'				.WORD	RPTSK
	010754	010754'				.WORD	.
	010756	010754'				.WORD	.-2
	010760	000000 				.WORD	0
	010762	   005 	   005 			.BYTE	5,5
	010764	110220 				.WORD	DVCH
	010766	177777 				.WORD	-1
	010770	025167 				.RAD50	/F11/
	010772	000000 				.WORD	0
	010774	000000 				.WORD	0
	010776	000000 				.WORD	0
	011000	000000 				.WORD	0
   1577		010776'				.=.-4
   1578	010776	000002 				.WORD	2
   1579	011000	050700 				.WORD	50700
   1581		000003 				L.DT0==3
   1583	011002				DT0PEN::
   1584	011002					.PUDEN	DT,0,FW,C1,0,0,512.,DT0PEN,DTTSK,DVCH,F11,0
	011002	   104 	   124 			.ASCII	"DT"
	011004	   000 				.BYTE	0
	011005	   300 				.BYTE	FW
	011006	140010 				.WORD	C1
	011010	000000 				.WORD	0
	011012	000000 				.WORD	0
	011014	001000 				.WORD	512.
	011016	000000 				.WORD	0
	011020	011002'				.WORD	DT0PEN
	011022	007352'				.WORD	DTTSK
	011024	011024'				.WORD	.
	011026	011024'				.WORD	.-2
	011030	000000 				.WORD	0
	011032	   005 	   005 			.BYTE	5,5
	011034	110220 				.WORD	DVCH
	011036	177777 				.WORD	-1
	011040	025167 				.RAD50	/F11/
	011042	000000 				.WORD	0
	011044	000000 				.WORD	0
	011046	000000 				.WORD	0
	011050	000000 				.WORD	0
   1585		011050'			.=.-2
   1586	011050	001102 				.WORD	1102
   1587	011052				DT1PEN::
   1588	011052					.PUDEN	DT,1,FW,C1,0,0,512.,DT1PEN,DTTSK,DVCH,F11,0
	011052	   104 	   124 			.ASCII	"DT"
	011054	   001 				.BYTE	1
	011055	   300 				.BYTE	FW
	011056	140010 				.WORD	C1
	011060	000000 				.WORD	0
	011062	000000 				.WORD	0
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 40-5
LOW CORE -- LOGICAL UNIT TABLES

	011064	001000 				.WORD	512.
	011066	000000 				.WORD	0
	011070	011052'				.WORD	DT1PEN
	011072	007352'				.WORD	DTTSK
	011074	011074'				.WORD	.
	011076	011074'				.WORD	.-2
	011100	000000 				.WORD	0
	011102	   005 	   005 			.BYTE	5,5
	011104	110220 				.WORD	DVCH
	011106	177777 				.WORD	-1
	011110	025167 				.RAD50	/F11/
	011112	000000 				.WORD	0
	011114	000000 				.WORD	0
	011116	000000 				.WORD	0
	011120	000000 				.WORD	0
   1589		011120'			.=.-2
   1590	011120	001102 				.WORD	1102
   1606					;
   1607	011122				LP0PUD::
   1608	011122					.PUDEN	LP,0,0,UC.REC!UC.CCL,0,0,132.,LP0PUD,LPTSK,0,0,0
	011122	   114 	   120 			.ASCII	"LP"
	011124	   000 				.BYTE	0
	011125	   000 				.BYTE	0
	011126	000003 				.WORD	UC.REC!UC.CCL
	011130	000000 				.WORD	0
	011132	000000 				.WORD	0
	011134	000204 				.WORD	132.
	011136	000000 				.WORD	0
	011140	011122'				.WORD	LP0PUD
	011142	007252'				.WORD	LPTSK
	011144	011144'				.WORD	.
	011146	011144'				.WORD	.-2
	011150	000000 				.WORD	0
	011152	   005 	   005 			.BYTE	5,5
	011154	000000 				.WORD	0
	011156	177777 				.WORD	-1
	011160	135600 				.RAD50	/0/
	011162	000000 				.WORD	0
	011164	000000 				.WORD	0
	011166	000000 				.WORD	0
	011170	000000 				.WORD	0
   1611					;
   1612	011172				FE0PUD::
   1613	011172					.PUDEN	FE,0,UF.RH,C1,0,0,512.,FE0PUD,FETSK,DVCH,T20,0
	011172	   106 	   105 			.ASCII	"FE"
	011174	   000 				.BYTE	0
	011175	   200 				.BYTE	UF.RH
	011176	140010 				.WORD	C1
	011200	000000 				.WORD	0
	011202	000000 				.WORD	0
	011204	001000 				.WORD	512.
	011206	000000 				.WORD	0
	011210	011172'				.WORD	FE0PUD
	011212	007412'				.WORD	FETSK
	011214	011214'				.WORD	.
	011216	011214'				.WORD	.-2
	011220	000000 				.WORD	0
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 40-6
LOW CORE -- LOGICAL UNIT TABLES

	011222	   005 	   005 			.BYTE	5,5
	011224	110220 				.WORD	DVCH
	011226	177777 				.WORD	-1
	011230	101036 				.RAD50	/T20/
	011232	000000 				.WORD	0
	011234	000000 				.WORD	0
	011236	000000 				.WORD	0
	011240	000000 				.WORD	0
   1615					;
   1616	011242				SY0PUD::
   1620
   1623	011242					.PUDEN	SY,0,0,0,0,0,0,DT0PEN,0,0,0,0
	011242	   123 	   131 			.ASCII	"SY"
	011244	   000 				.BYTE	0
	011245	   000 				.BYTE	0
	011246	000000 				.WORD	0
	011250	000000 				.WORD	0
	011252	000000 				.WORD	0
	011254	000000 				.WORD	0
	011256	000000 				.WORD	0
	011260	011002'				.WORD	DT0PEN
	011262	000000 				.WORD	0
	011264	011264'				.WORD	.
	011266	011264'				.WORD	.-2
	011270	000000 				.WORD	0
	011272	   005 	   005 			.BYTE	5,5
	011274	000000 				.WORD	0
	011276	177777 				.WORD	-1
	011300	135600 				.RAD50	/0/
	011302	000000 				.WORD	0
	011304	000000 				.WORD	0
	011306	000000 				.WORD	0
	011310	000000 				.WORD	0
   1628	011312				.PUDEA::
   1629							; END OF LOGICAL UNIT ABLE
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 41
LOW CORE -- KL10 HARDWARE ENVIRONMENT DATA

   1631						.SBTTL	LOW CORE -- KL10 HARDWARE ENVIRONMENT DATA
   1632
   1633
   1634	011312				.CPUSN::
   1635	011312	000000 				.WORD	0		; [4.2333] KL10 CPU SERIAL NUMBER
   1636									; [4.2333] .EQ. 0 ==> MUST BE READ
   1637									; [4.2333] .LT. 0 ==> CAN'T BE READ
   1638									; [4.2333] .GT. 0 ==> ALREADY READ
   1639	011314				.HRDWR::
   1640	011314	000000 				.WORD	0		; [4.2333] HARDWARE OPTION BIT MASK
   1641
   1642		000001 				H.KUDF==BIT0		; [4.2333] UNDEFINED
   1643		000002 				H.KMOS==BIT1		; [4.2333] MOS MASTER OSCILLATOR
   1644		000004 				H.KEXT==BIT2		; [4.2333] EXTENDED ADDRESING
   1645		000010 				H.KCHN==BIT3		; [4.2333] INTERNAL CHANNELS
   1646		000020 				H.KCAC==BIT4		; [4.2333] CACHE
   1647		000040 				H.KPWR==BIT5		; [4.2333] LINE FREQUENCY
   1648									; [4.2333] .EQ. 0 ==> 60 HZ.
   1649									; [4.2333] .NE. 0 ==> 50 HZ.
   1650	011316				.MISC::
   1651	011316	   000 				.BYTE	0		; MISC. , SEE BELOW FOR BIT DEFINETIONS
   1652
   1653		000001 				M.TAKP==BIT0		; USED IN KLEDEF TO SEE IF TAKE SHOULD BE DONE
   1654		000002 				M.PARQ==BIT1		; USED IN TTYDRR WHEN PARSER IS REQUESTED
   1655	011317				.ATOTAK::
   1656	011317	   001 				.BYTE	1		; THE AUTO-TAKE FLAG - DEFAULT OFF
   1657		011320'				.LCEND==.		; [4.2333] DEFINE THE END OF THE STATUS BLOCK
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 42
LOW CORE -- INITLM (INITIALIZATION)

   1659						.SBTTL	LOW CORE -- INITLM (INITIALIZATION)
   1660
   1661					;
   1662					;	INITIALIZATION CODE ALSO DOUBLES AS
   1663					;	EMERGENCY STACK AREA FOR CRASH
   1664					;
   1665	011320				INITLM::
   1666	011320	013700 	001004'			MOV	.EXEND+2,R0	; GET ABSOLUTE EXEC LIMIT
   1667	011324	062700 	000003 			ADD	#3,R0		; ROUND UP TO NEXT 4 BYTES
   1668	011330	042700 	000003 			BIC	#3,R0		; SO
   1669	011334	010037 	001420'			MOV	R0,.FREPL	; SET BASE OF FREE POOL
   1670	011340	012701 	075774 			MOV	#.BGBST-4,R1	; END OF FREE POOL MINUS 10 BYTES
   1671	011344	160001 				SUB	R0,R1		; COMPUTE SIZE OF FREE POOL
   1672	011346	005020 				CLR	(R0)+		; INDICATE NO LINKS
   1673	011350	010110 				MOV	R1,@R0		; SET FREE POOL SIZE
   1674	011352	010137 	001422'			MOV	R1,.FREPL+2	; HERE TOO
   1675	011356	013700 	001414'			MOV	.BGBUF,R0
   1676	011362	005020 				CLR	(R0)+
   1677	011364	012710 	002000 			MOV	#.BGLEN,@R0
   1678	011370	105237 	001123'			INCB	.NOERR+1	; SET FORCED STOP
   1679	011374	010706 				MOV	PC,SP		; SET UP THE STACK
   1680	011376	012737 	000200 	001014'		MOV	#EV.PF,.SERFG+0	; SET POWER FAIL
   1681	011404	012737 	004000 	177776 		MOV	#4000,@#PS	; ENABLE INTERRUPTS
   1682	011412	012746 	013610'			MOV	#ASXE1,-(SP)
   1683	011416	162706 	000006 			SUB	#6,SP		; SET UP INITIAL TO TEN Q
   1684	011422	000137 	046130'			JMP	INIAN		; GO DO IT
   1685						;
   1686	011426				EMGSTK::			; EMERGENCY STACK AREA
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 43
LOW CORE -- TRAP SERVICE FOR COMMON PROGRAM TRAPS

   1688						.SBTTL	LOW CORE -- TRAP SERVICE FOR COMMON PROGRAM TRAPS
   1689					;
   1690					;	TRAPS HANDLED HERE ARE:
   1691					;
   1692					;	TRAP TO 4 (DEVICE OR MEMORY TIMEOUT AND 11 CATCH ALL)
   1693					;	TRAP TO 10 (ILLEGAL INSTRUCTION)
   1694					;	T-BIT AND BPT TRAPS
   1695					;	IOT INSTRUCTION
   1696					;	TRAP INSTRUCTION
   1697					;
   1698					;	ILLEGAL INTERRUPTS TRAP HERE.  THEY ARE DETERMINED
   1699					;	BY PLACING AN ODD ADDRESS IN UNUSED TRAP VECTORS
   1700					;	WHEN THE PROCESSOR TRAPS TO AN ILLEGAL TRAP VECTOR IT WIL
   1701					;	PUT THE ILLEGAL (ODD) ADDRESS IN THE PC AND TRAP TO 4
   1702					;	THIS WILL THEN ALLOW THE FIELD SERVICE PEOPLE TO
   1703					;	DETERMINE WHAT LOCATION THE PROCESSOR HAS PICKED
   1704					;	TO DO AN ILLEGAL TRAP
   1705					;
   1706					;
   1707					;	GENERALLY THESE TRAPS LIKE THE OTHERS THAT TRAP TO UN ATTACHED
   1708					;	TRAP VECTORS ARE FATAL.  THESE HAVE BEEN SEPARATED OUT
   1709					;	BECAUSE THEY ARE PROBABLY PROGRAM ERRORS AND NOT
   1710					;	HARDWARE ERRORS.  IT IS POSSIBLE THAT IF THESE ARE
   1711					;	SEPARATED FROM HARDWARE TRAPS THAT IT WILL BE POSSIBLE
   1712					;	TO PROVIDE SOME PROGRAM DEBUGGING BY IDENTIFICATION OF
   1713					;	THESE SPECIFIC TYPES.
   1714					;
   1715					;	HARDWARE/SOFTWARE ERROR TRAPS HANDLED HERE ARE:
   1716					;
   1717					;	1. TRAP TO UNASSIGNED TRAP VECTOR
   1718					;	2. PARITY ERROR
   1719					;	3. RESERVED INSTRUCTION TRAP
   1720					;	4. IOT TRAP
   1721					;
   1722					;	STACK SUMMARY:
   1723					;			0(SP) -- TRAP PC
   1724					;			2(SP) -- TRAP PS
   1725					;
   1726						.ENABL	LSB
   1727	011426				COMTRP:
   1728	011426	013737 	177776 	001120'		MOV	PS,TRPASV	; SAVE THE COMTRP PS
   1729	011434	042737 	177760 	001120'		BIC	#177760,TRPASV	; MASK OFF PRIORITY BITS
   1730	011442	022706 	001000 			CMP	#1000,SP	; LEGAL STACK?
   1731	011446	103403 				BLO	10$		; YES -- NOT RED VIOLATION
   1732	011450	012706 	011426'			MOV	#EMGSTK,SP	; NO -- BETTER RESCUE STACK
   1733	011454	000450 				BR	30$		; THEN CRASH SYSTEM
   1734						;
   1735	011456				10$:
   1736	011456	010546 				MOV	R5,-(SP)
   1737	011460	032766 	000340 	000004 		BIT	#340,4(SP)	; EXEC?
   1738	011466	001043 				BNE	30$		; YES -- CRASH
   1739									; FIND THE TRAP VECTOR
   1740	011470	013705 	001006'			MOV	.CRTSK,R5	; FIND THE CURRENT TASK
   1741	011474	016505 	000016 			MOV	A.TD(R5),R5	; FIND STD POINTER
   1742	011500	016505 	000030 			MOV	S.SS(R5),R5	; FIND THE SST VECTOR
   1743	011504	001410 				BEQ	CMNABO		; NONE -- CRASH
   1744	011506	063705 	001120'			ADD	TRPASV,R5	; FIND WHICH VECTOR
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 43-1
LOW CORE -- TRAP SERVICE FOR COMMON PROGRAM TRAPS

   1745	011512					MFPS	@R5,R5		; FIND THE ADDRESS
	011512	011505 				MOV	@R5,R5
   1746	011514	001404 				BEQ	CMNABO		; NONE FOUND -QUIT
   1747	011516	012637 	001116'			MOV	(SP)+,EMTSTK	; SAVE R5 FOR COMMON TRAP
   1748	011522	000137 	013326'			JMP	.SSTCO
   1749						;
   1750	011526				CMNABO::
   1751	011526	013705 	001006'			MOV	.CRTSK,R5	; FIND THE CURRENT TASK
   1752	011532	013765 	001120'	000024 		MOV	TRPASV,A.FM+0(R5) ;SET THE REASON FOR ABORT
   1753	011540	112765 	000004 	000014 		MOVB	#TS.TKN,A.TS(R5) ;SET TASK STATUS TO ABORT
   1754	011546	005237 	001124'			INC	.TKTN		; SET TKTN FLAG
   1755	011552	026527 	000006 	007772'		CMP	A.PD(R5),#F11TPD ;FILES 11 TPD?
   1756	011560	001003 				BNE	20$		; NO -- TKTN WILL WORK
   1757	011562					.CRASH	FTA		; YES -- CAN'T GET TKTN IN
	011562	000004 				IOT
	011564	   106 	   124 	   101 		.ASCIZ	/FTA/
	011567	   000
   1758						;
   1759	011570				TRPXIT:
   1760	011570				20$:
   1761	011570	012605 				MOV	(SP)+,R5	; RESTORE R5
   1762	011572	000137 	014632'			JMP	..INTX		; RETURN
   1763						;
   1764	011576				30$:
   1765	011576	013705 	001120'			MOV	TRPASV,R5	; DO COMMON CRASH PROCEDURE
   1766	011602	000175 	011606'			JMP	@CRSTB(R5)	; CRASH
   1767						.DSABL	LSB
   1768					;
   1769	011606				CRSTB:
   1770	011606	011616'				.WORD	TRP4
   1771	011610	011666'				.WORD	RESERV
   1772	011612	011674'				.WORD	BPTTRP
   1773	011614	011732'				.WORD	IOTTRP
   1774					;
   1775	011616				TRP4:
   1776	011616	012705 	000004 			MOV	#4,R5		; POINT TO TRAP VECTOR
   1777	011622	011546 				MOV	(R5),-(SP)	; SAVE IT
   1778	011624	012715 	011644'			MOV	#10$,(R5)	; SET UP TEMPORARY VECTOR
   1779	011630	005777 	167522 			TST	@.PRSTA		; WAS IT THE DTE20??
   1780	011634	012615 				MOV	(SP)+,(R5)	; NO -- OTHER BUS TIMEOUT
   1781	011636					.CRASH	T04
	011636	000004 				IOT
	011640	   124 	   060 	   064 		.ASCIZ	/T04/
	011643	   000
   1782						;
   1783	011644				10$:				; HERE ON DTE-20 BUS TIMEOUT
   1784	011644	022626 				CMP	(SP)+,(SP)+	; GET RID OF SECOND TRAP PS, PC
   1785	011646	012615 				MOV	(SP)+,(R5)	; RESTORE TRAP VECTOR
   1786	011650	032737 	004000 	001012'		BIT	#EF.PFR,.COMEF+2 ; POWERFAIL IN PROGRESS??
   1787	011656	001344 				BNE	TRPXIT		; YES -- IGNORE TRAP
   1788	011660					.CRASH	DTD		; NO -- DTE20 IS DEAD
	011660	000004 				IOT
	011662	   104 	   124 	   104 		.ASCIZ	/DTD/
	011665	   000
   1789						;
   1790	011666				RESERV:
   1791	011666					.CRASH	RES
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 43-2
LOW CORE -- TRAP SERVICE FOR COMMON PROGRAM TRAPS

	011666	000004 				IOT
	011670	   122 	   105 	   123 		.ASCIZ	/RES/
	011673	   000
   1792						;
   1793	011674				BPTTRP:
   1794	011674					.CRASH	TBT
	011674	000004 				IOT
	011676	   124 	   102 	   124 		.ASCIZ	/TBT/
	011701	   000
   1795						;
   1796	011702				.PARER:
   1797	011702	012700 	172100 			MOV	#.PARRG,R0	; SET UP POINTER TO REGISTERS
   1798	011706	012737 	011724'	000004 		MOV	#20$,@#4	; SET UP TO POINT TO CRASH MESSAGE ON NXM
   1799	011714	012701 	001022'			MOV	#PARSAV,R1	; SET UP SAVE AREA POINTER
   1800	011720				10$:
   1801	011720	012021 				MOV	(R0)+,(R1)+
   1802	011722	000776 				BR	10$
   1803						;
   1804	011724				20$:
   1805	011724					.CRASH	MPE		; MEMORY PARITY ERROR
	011724	000004 				IOT
	011726	   115 	   120 	   105 		.ASCIZ	/MPE/
	011731	   000
   1806						;
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 44
LOW CORE -- CRASH ROUTINE

   1808						.SBTTL	LOW CORE -- CRASH ROUTINE
   1809					;
   1810					;	CRASH -- SUBROUTINE THAT WILL NOT RETURN TO SAVE THE
   1811					;	INFORMATION NECESSARY WHEN THE MACHINE ENTERS AN UNRECOVERABLE
   1812					;	STATE THAT REQUIRES RE-LOAD.  CRASH ATTEMPTS TO SAVE ALL THE
   1813					;	VOLATILE REGISTERS THAT MIGHT BE NECESSARY TO DEBUG
   1814					;	THE SOFTWARE OR HARDWARE WHEN THE PDP-11 SYSTEM CRASHES.
   1815					;
   1816					;	STACK SUMMARY:
   1817					;
   1818					;			0(SP) -- IOT TRAP PC
   1819					;			2(SP) -- IOT TRAP PS
   1820					;
   1821	011732				IOTTRP:
   1822	011732	016605 	000002 			MOV	2(SP),R5	; TRAP PC POINTS TO THE CRASH CODE TEXT
   1823	011736	010637 	001020'			MOV	SP,SPSAV	; SAVE SP
   1824	011742	012706 	011426'			MOV	#EMGSTK,SP	; SET UP THE EMERGENCY STACK POINTER
   1825	011746					CALL	.IOSNP		; [4.2314] SNAPSHOT THE I/O PAGE
	011746	004737 	012156'			JSR	PC,.IOSNP
   1826	011752	010546 				MOV	R5,-(SP)
   1827	011754	012705 	012142'			MOV	#CMSG,R5	; SET UP THE CRASH MESSAGE POINTER
   1828	011760					CALL	20$		; PRINT THE MESSAGE
	011760	004737 	012074'			JSR	PC,20$
   1829	011764	011605 				MOV	(SP),R5		; CRASH CODE POINTER TO R5
   1830	011766	010446 				MOV	R4,-(SP)	; SAVE R4
   1831	011770	005004 				CLR	R4		; CLEAR R4
   1832	011772	012524 				MOV	(R5)+,(R4)+	; SAVE THE CRASH CODE
   1833	011774	011524 				MOV	(R5),(R4)+	;
   1834	011776	013705 	001022'			MOV	PARSAV,R5	; GET PARITY ERROR DATA
   1835	012002	006205 				ASR	R5		; POSITION IT
   1836	012004	006205 				ASR	R5		;
   1837	012006	006205 				ASR	R5		;
   1838	012010	006205 				ASR	R5		;
   1839	012012	006205 				ASR	R5		;
   1840	012014	150544 				BISB	R5,-(R4)	; SAVE IT IN HIGH BYTE
   1841	012016	012604 				MOV	(SP)+,R4	; RESTORE REGISTERS
   1842	012020	012605 				MOV	(SP)+,R5	; CRASH CODE POINTER TO R5
   1843	012022					CALL	20$		; PRINT THE CRASH CODE
	012022	004737 	012074'			JSR	PC,20$
   1844					;
   1845					; CLOSED LOOP TO RING THE KL DOORBELL AND REQUEST A RELOAD.  IN RESPONSE TO
   1846					; THIS REQUEST, THE KL10 WILL "PUSH THE ELECTRONIC SWITCH" IN THE BM873 ROM.
   1847					; THIS WILL:
   1848					;
   1849					;	1. FORCE A "POWERFAIL" TRAP
   1850					;	2. DUMP AN RELOAD THE FRONT-END
   1851					;
   1852					; NOTE THAT THE FRONT-END CPU MUST BE RUNNING FOR THE CONTEXT SAVE OF THE
   1853					; POWERFAIL TRAP TO COMPLETE PROPERLY.
   1854					;
   1855	012026				10$:
   1856	012026	012737 	000006 	000004 		MOV	#6,@#4		; FORCE AN EARLY HALT IF NXM
   1857	012034	005037 	000006 			CLR	@#6
   1858	012040	013705 	001360'			MOV	.PRDTE,R5	; FIND DTE20
   1859	012044	062705 	000006 			ADD	#6,R5		; POINT TO DEXWD1
   1860	012050	012725 	000004 			MOV	#LOAD11,(R5)+
   1861	012054	012725 	010000 			MOV	#DEP,(R5)+
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 44-1
LOW CORE -- CRASH ROUTINE

   1862	012060	012725 	000022 			MOV	#22,(R5)+	; REQUEST RELOAD
   1863	012064	012777 	000400 	167264 		MOV	#TO10DB,@.PRSTA	; RING BELL
   1864	012072	000755 				BR	10$
   1865						;
   1866	012074				20$:				;
   1867	012074	105737 	001226'			TSTB	.KLNSW+0	; IS KLINIK ACTIVE??
   1868	012100	003402 				BLE	30$		; NOT THAT WE CARE...
   1869	012102	111537 	175616 			MOVB	(R5),@#PRB1	; YES -- PRINT A CHARACTER ON KLINIK LINE
   1870	012106				30$:				;
   1871	012106	112537 	177566 			MOVB	(R5)+,@#PRB0	; PRINT THE SAME CHARACTER ON THE CTY
   1872	012112				40$:				;
   1873	012112	105737 	177564 			TSTB	@#PRS0		; IS THE CTY DONE???
   1874	012116	100375 				BPL	40$		; NO -- WAIT SOME MORE
   1875	012120	105737 	001226'			TSTB	.KLNSW+0	; YES -- IS KLINIK ACTIVE??
   1876	012124	003403 				BLE	50$		; NO -- NOT THAT WE CARE...
   1877	012126	105737 	175614 			TSTB	@#PRS1		; YES -- IS THE KLINIK LINE FINISHED??
   1878	012132	100367 				BPL	40$		; NO -- WAIT SOME MORE
   1879	012134				50$:				;
   1880	012134	105715 				TSTB	(R5)		; MESSAGE DONE??
   1881	012136	001356 				BNE	20$		; NO -- CONTINUE THE MESSAGE
   1882	012140				IGNO::
   1883	012140					RETURN			; YES -- RETURN TO CALLER
	012140	000207 				RTS	PC
   1884					;
   1885					;
   1886					;
   1887					;	AFTER THE SYSTEM HALTS THE PDP-10 WILL EVENTUALLY REALIZE
   1888					;	THAT THE PDP11 HAS CRASHED AND ATTEMPT TO
   1889					;	RELOAD IT.
   1890					;
   1891	012142				CMSG:
   1892	012142	   015 	   012 	   061 		.ASCIZ	<15><12>"11-HALT"<15><12>
	012145	   061 	   055 	   110
	012150	   101 	   114 	   124
	012153	   015 	   012 	   000
   1893						.EVEN
LC -- LOW CORE FOR RSX20F	MACRO M1113  10-NOV-81 17:22  PAGE 45
LOW CORE -- I/O PAGE SNAPSHOT

   1895						.SBTTL	LOW CORE -- I/O PAGE SNAPSHOT
   1896
   1897					;+
   1898					; .IOSNP -- SNAPHOT THE I/O PAGE INTO THE GEN PARTITION
   1899					;
   1900					; THIS SUBROUTINE IS INVOKED WHENEVER RSX-20F REQUESTS A RELOAD.
   1901					; THE CONTENT OF ALL REGISTERS IN THE I/O PAGE (160000 - 177776) ARE
   1902					; LOADED INTO THE GEN PARTITION (100000 - 107776).  NON-EXISTENT REGISTERS
   1903					; CONTAIN "123456" IN THE DUMP.
   1904					;
   1905					; INPUTS:
   1906					;
   1907					;	NONE.
   1908					;
   1909					; OUTPUTS:
   1910					;
   1911					;	THE I/O PAGE IS LOADED INTO 100000 THRU 107776.
   1912					;
   1913					; NOTE:
   1914					;
   1915					;	THIS ROUTINE MUST BE CALLED AT BR6, OR HIGHER.
   1916					;-
   1917
   1918		007777 				IOPSIZ = <177776-160000>/2
   1919
   1920	012156				.IOSNP:
   1921	012156	010046 				MOV	R0,-(SP)	;;; [4.2314] SAVE REGISTERS
   1922	012160	010146 				MOV	R1,-(SP)
   1923	012162	010246 				MOV	R2,-(SP)
   1924	012164	013746 	000004 			MOV	@#4,-(SP)	;;; [4.2314] SAVE TRAP-AT-4 VECTOR
   1925	012170	012737 	012232'	000004 		MOV	#30$,@#4	;;; [4.2314] SET ALTERNATE VECTOR
   1926	012176	012700 	160000 			MOV	#160000,R0	;;; [4.2314] BASE OF I/O PAGE
   1927	012202	012701 	100000 			MOV	#100000,R1	;;; [4.2314] BASE OF GEN PARTITION
   1928	012206	012702 	007777 			MOV	#IOPSIZ,R2	;;; [4.2314] I/O PAGE SIZE
   1929	012212				10$:
   1930	012212	012021 				MOV	(R0)+,(R1)+	;;; [4.2314] SAVE THE I/O PAGE
   1931	012214				20$:
   1932	012214	077202 				SOB	R2,10$		;;; [4.2314] LOOP TILL DONE
   1933	012216	012637 	000004 			MOV	(SP)+,@#4	;;; [4.2314] RESTORE VECTOR
   1934	012222	012602 				MOV	(SP)+,R2	;;; [4.2314] AND REGISTERS
   1935	012224	012601 				MOV	(SP)+,R1
   1936	012226	012600 				MOV	(SP)+,R0
   1937	012230					RETURN			;;; [4.2314] TO CALLER
	012230	000207 				RTS	PC
   1938	012232				30$:
   1939	012232	012721 	123456 			MOV	#123456,(R1)+	;;; [4.2314] MARK NON-EXISTENT REGISTER
   1940	012236	032626 				BIT	(SP)+,(SP)+	;;; [4.2314] RESET STACK
   1941	012240	000765 				BR	20$		;;; [4.2314] AND CONTINUE
   1942						;
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 46
LOW CORE -- I/O PAGE SNAPSHOT

   1944						.TITLE	SCH	- TASK SCHEDULER & GLOBAL DEFS
   1945						.SBTTL	EXEC MODULE ONE -- TITLE PAGE
   1946	012242					IDENT$	14,42,RSX$$F
						.IDENT	/A14420/
   1947					;
   1948					;                             COPYRIGHT (C) 1975, 1978 BY
   1949					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   1950					;
   1951					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   1952					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   1953					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   1954					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   1955					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   1956					;
   1957					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   1958					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   1959					;       CORPORATION.
   1960					;
   1961					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   1962					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   1963					;
   1964					;
   1965					;		MODULE: EXEC MODULE ONE
   1966					;
   1967					;		VERSION: 14-42
   1968					;
   1969					;		AUTHOR:  R. MCLEAN
   1970					;
   1971					;		DATE: 19 MAR 75
   1972					;
   1973					;
   1974					;	THIS MODULE CONTAINS:
   1975					;
   1976					;	1 -- SYSTEM NOTES,
   1977					;	2 -- GLOSSARY,
   1978					;	3 -- SYMBOLIC DEFINITIONS,
   1979					;	4 -- NUL TASK.
   1980					;
   1981					; MODIFICATIONS:
   1982					;
   1983					;	NO.	DATE		PROGRAMMER	PURPOSE
   1984					;	---	----		----------	-------
   1985					;	001	18-OCT-76	A. PECKHAM	ADDITIONAL .KLIWD FLAGS
   1986					;	002	20-OCT-76	A. PECKHAM	FIX FOR F11 PARTITION
   1987					;						LOAD REQUEST FAILURE.
   1988					;	003	03-FEB-77	R. BELANGER	CHANGED KLR EVENT FLAG
   1989					;						ADDED KLD EVENT FLAG
   1990					;	004	04-MAR-77	R. BELANGER	ADDED CODE IN NULL TASK
   1991					;						TO INVOKE TIME OF DAY TASK
   1992					;	005	07-MAR-77	A. PECKHAM	REMOVE BUG FROM DOWN MESSAGE CODE.
   1993					;	006	01-JUL-77	R. BELANGER	ADD KLINIK EVENT LOGGING CODES.
   1994					;	007	18-AUG-77	R. BELANGER	ADD POWER RESTART IN PROGRESS FLAG
   1995					;	008	05-OCT-77	R. BELANGER	ADD COMM REGION INVALID FLAG
   1996					;	009	27-MAY-78	R. BELANGER	DEFINE PROTOCOL TIMEOUT FLAG FOR "TKTN"
   1997					;  TCO 4.1.1035	16-NOV-79	R. BELANGER	CHANGES TO SUPPORT QUEUE ARBITRATION
   1998					;  TCO 4.1.1105	11-MAR-80	R. BELANGER	CHANGE "EF.PR1" RECOGNITION
   1999					;  TCO 5.1127	08-AUG-80	S. LEAPLINE	MAKE SNDMSG GLOBAL FOR HOST DEBUG
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 46-1
EXEC MODULE ONE -- TITLE PAGE

   2000					;	010	27-MAR-81	S. LEAPLINE	REMOVE "RSUM" AND "SPND"
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 47
EXEC MODULE ONE -- SYSTEM NOTES

   2002						.SBTTL	EXEC MODULE ONE -- SYSTEM NOTES
   2003					;+
   2004					; PROCESSOR PRIORITIES
   2005					;
   2006					; PERIPHERIAL DEVICE INTERRUPT SERVICE ROUTINES RUN AT PROCESSOR PRIORITY
   2007					; LEVELS FOUR THRU SEVEN (4-7).  ALSO, PARTS OF THE SOFTWARE THAT CANNOT BE
   2008					; INTERRUPTED ARE ALSO RUN AT PRIORITY SEVEN (PRI=7).  THESE UNINTERRUPTABLE
   2009					; PERIODS ARE AS SHORT AS POSSIBLE.
   2010					;
   2011					; PRIORITY LEVELS ZERO THRU THREE (0-3) ARE USED BY THE SYSTEM AS OPERATION
   2012					; INDICATORS.  I.E., THERE ARE NO "SOFTWARE INTERRUPTS", AND THEREFORE, THERE
   2013					; IS NO PRECEDENCE IMPLIED (OR ENVOKED) BY LEVELS ZERO THRU THREE.
   2014					;
   2015					; LEVEL ZERO (PRI=0) IS USED EXCLUSIVELY FOR TASK EXECUTION.
   2016					;
   2017					; LEVELS ONE, TWO, AND THREE ARE USED FOR "SYSTEM LEVEL" EXECUTION.
   2018					;
   2019					; LEVEL TWO (PRI=2) IS USED FOR THE RECOGNITION OF "SYSTEM EVENTS".
   2020					; THESE EVENTS ARE INDICATED IN THE "SYSTEM EVENT RECOGNITION" FLAG
   2021					; '.SERFG' AND ARE RECOGNIZED (SERVICED) ONLY WHEN RETURNING TO
   2022					; TASK EXECUTION (VIZ., FROM AN INTERRUPT, OR FROM A DIRECTIVE).
   2023					; SYSTEM EVENTS ARE (1) SIGNIFICANT EVENT DECLARATIONS, (2) CLOCK
   2024					; TICKS, AND (3) POWER FAILURE RECOVERIES.
   2025					;
   2026					; LEVEL THREE (PRI=3) IS USED FOR EXECUTION OF ROUTINES WHICH CANNOT BE
   2027					; INTERRUPTED BY SIGNIFICANT-EVENT OR CLOCK-TICK RECOGNITION, BUT CAN BE
   2028					; INTERRUPTED BY PERIPHERIAL DEVICE INTERRUPTS
   2029					;  IN THESE CASES, THE LEVEL
   2030					; MAY BE SET TO THREE BY ANY MEANS, BUT MUST BE LOWERED TO ZERO BY
   2031					; TRANSFERRING CONTROL TO '..INTX' TO ALLOW RECOGNITION OF "SYSTEM
   2032					; EVENTS THAT MIGHT HAVE OCCURED WHILE RUNNING AT PRI=3.
   2033					; THE SYSTEM TRACE (DEBUGGING) ROUTINE  RUNS AT PRI=7.
   2034					;
   2035					;
   2036					;
   2037					; FORMAT OF PROCESSOR STATUS (PS) WORD
   2038					;
   2039					;	C CPP RXX XLL LTN ZVC
   2040					;
   2041					;	CC	CURRENT MODE (00:KERNEL, 11:USER)
   2042					;	PP	PREVIOUS MODE (00:KERNEL, 11:USER)
   2043					;	R	REGISTER CLEAR (BIT ALWAYS CLEAR)
   2044					;	XXX	UNUSED BITS
   2045					;	LLL	PROCESSOR PRIORITY LEVEL
   2046					;	T	TRACE BIT
   2047					;	N	CONDITION CODE -- NEGATIVE
   2048					;	Z	CONDITION CODE -- ZERO
   2049					;	V	CONDITION CODE -- OVERFLOW
   2050					;	C	CONDITION CODE -- CARRY
   2051					;
   2052					; KEY TEXT IN THIS LISTING IS DELIMITED BY LINES CONATINING A ";+" AND A ";-"
   2053					; AS THE FIRST TWO CHARACTERS OF A SOURCE LINE.  A ";+" LINE  DEFINES THE
   2054					; BEGINNING OF A BLOCK OF KEY TEXT, AND A ";-" LINE DEFINES THE END.
   2055					;-
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 48
EXEC MODULE ONE -- GLOSSARY

   2057						.SBTTL	EXEC MODULE ONE -- GLOSSARY
   2058					;+
   2059					;
   2060					;
   2061					; ATL -- ACTIVE TASK LIST
   2062					;
   2063					; CKL -- CLOCK LIST
   2064					;
   2065					; DTL -- DTE20 LIST
   2066					;
   2067					; MRL -- MEMORY REQUEST LIST
   2068					;
   2069					; PUD -- PHYSICAL UNIT DEVICE TABLE
   2070					;
   2071					; DEQUE -- DOUBLE ENDED QUEUE.  FORWARD AND BACKWARD CIRCULAR LINKAGES.
   2072					;
   2073					; EXTERNAL PAGE -- 4K PAGE OF REAL MEMORY SPACE (760000-777776) CONTAINING
   2074					; CPU & PERIPHERIAL DEVICE CONTROL & STATUS REGISTERS (THE DEVICE PAGE).
   2075					;
   2076					; ISR -- INTERRUPT SERVICE ROUTINE
   2077					;
   2078					;
   2079					; STD -- SYSTEM TASK DIRECTORY
   2080					;-
   2081
   2082						.SBTTL	MACRO CALLS (MCALL)
   2083
   2087						.MCALL	.ENB0,.INH0,.ENB6,.INH6,.INH,.ENB,.INH5,.ENB5,.CRASH,RQST$
   2088						.MCALL	DIR$,CLEF$S,QIOW$,WTSE$,WTSE$S,.STKM,$DEF
   2089						.MCALL	CALL,RETURN,DTON$S,MFPS,MTPS,MTPI,MFPI,.DQPEN,DECL$S,CMKT$S
   2090						.MCALL	MRKT$,WTLO$,WSIG$S,WTLO$C,CLEF$C,QIOSY$,MRKT$S
   2091	012242					QIOSY$
   2092	012242					$DEF
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 49
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS

   2094						.SBTTL	EXEC MODULE ONE -- SYMBOLIC DEFINITIONS
   2095					;
   2096					; EXTERNAL PAGE DEFINITIONS
   2097					;
   2098		177776 			PS==177776	;PROCESSOR STATUS WORD
   2099		177546 			LKS==177546	;KW11L CLOCK
   2100		177560 			KBS0==177560	;CTY TTY
   2101		177562 			KBB0==177562	;CTY BUFFER (INPUT)
   2102		177564 			PRS0==177564	;CTY OUTPUT STATUS
   2103		177566 			PRB0==177566	;CTY OUTPUT BUFFER
   2104		175610 			KBS1==175610
   2105		175612 			KBB1==175612
   2106		175614 			PRS1==175614
   2107		175616 			PRB1==175616
   2108		173000 			.BM873==173000	;START OF BOOTSTRAP
   2109		172100 			.PARRG==172100	;PARITY ERROR REGISTER 0
   2110					;
   2111		000340 			PR7==340	;PRIORITY 7
   2112		000340 			PRI7==340
   2113		000100 			.INTEN==000100	;INTERRUPT ENABLE BIT
   2114					;
   2115		172360 			KPAR0=172360	;KERNEL PAGE ADDRESS REG 0
   2116		172362 			KPAR1=172362	;REG 1
   2117		172364 			KPAR2=172364	;REG 2
   2118		172366 			KPAR3=172366	;REG 3
   2119		172370 			KPAR4=172370	;REG 4
   2120		172372 			KPAR5=172372	;REG 5
   2121		172374 			KPAR6=172374	;REG 6
   2122		172376 			KPAR7=172376	;REG 7
   2123					;
   2124		172300 			KPDR0=172300	;KERNEL PAGE DESCRIPTOR REGISTER 0
   2125		172302 			KPDR1=172302	;REG 1
   2126		172304 			KPDR2=172304	;REG 2
   2127		172306 			KPDR3=172306	;REG 6
   2128		172310 			KPDR4=172310	;REG 4
   2129		172312 			KPDR5=172312	;REG 5
   2130		172314 			KPDR6=172314	;REG 6
   2131		172316 			KPDR7=172316	;REG 7
   2132					;
   2133		177640 			UPAR0=177640	;USER PAGE ADDRESS REG 0
   2134		177642 			UPAR1=177642	;REG 1
   2135		177644 			UPAR2=177644	;REG 2
   2136		177646 			UPAR3=177646	;REG 3
   2137		177650 			UPAR4=177650	;REG 4
   2138		177652 			UPAR5=177652	;RRG 5
   2139		177654 			UPAR6=177654	;REG 6
   2140		177656 			UPAR7=177656	;REG 7
   2141					;
   2142		177600 			UPDR0=177600	;USER PAGE DESCRIPTOR REG 0
   2143		177602 			UPDR1=177602	;REG 1
   2144		177604 			UPDR2=177604	;REG 2
   2145		177606 			UPDR3=177606	;REG 3
   2146		177610 			UPDR4=177610	;REG 4
   2147		177612 			UPDR5=177612	;REG 5
   2148		177614 			UPDR6=177614	;REG 6
   2149		177616 			UPDR7=177616	;REG 7
   2150					;
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 49-1
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS

   2151		000046 			$DSW==46	;DIRECTIVE STATUS WORD
   2152		000050 			.FSRPT==50	;FCS POINTER
   2153		000054 			N.OVPT==54	;FCP OVERLAY POINTER
   2154					;
   2155					;
   2156					; SYSTEM TRACE (T-BIT) DEBUGGING AID CONDITIONAL DEFINITIONS
   2157					;
   2158		000020 			TBIT==20	;TRACE BIT IN PS
   2159					;
   2160		000000 			STXAS==0	;SIGNIFICANT EVENT RECOGNITION (ATL SCAN) TRACE SWITCH
   2161		000000 			STXCS==0	;CLOCK TICK RECOGNITION TRACE SWITCH
   2162		000000 			STXDX==0	;DIRECTIVE EXECUTION TRACE SWITCH
   2163					;
   2164					; PRIVLEDGED TASK EVENT FLAG BIT MASKS
   2165					;
   2166		000001 			EF.DTE==1	;EVENT FLAG FOR DTE20 DOORBELL (UNUSED)
   2167		000001 			E.DTE==1.
   2168		000002 			EF.CLK==2	;EVENT FLAG FOR CLOCK (UNUSED)
   2169		000002 			E.CLK==2.
   2170		000004 			EF.TTY==4	;EVENT FLAG FOR TTY INPUT COMPLETE (UNUSED)
   2171		000003 			E.TTY==3.
   2172		000010 			EF.NIR==10	;EVENT FLAG TO SIGNAL QIO REQUEST ENTERED (DRIVERS)
   2173		000004 			E.NIR==4.
   2174		000020 			EF.IOD==20	;EVENT FLAG TO SIGNAL QIO REQUEST DONE (DRIVERS)
   2175		000005 			E.IOD==5.
   2176		000040 			EF.BOV==40	;EVENT FLAG TO SIGNAL NOT ENOUGH NODE SPACE (UNUSED)
   2177		000006 			E.BOV==6.
   2178		000100 			EF.TMO==100	;EVENT FLAG TO SIGNAL TIMOUT REQUEST FOR TTY (TTYDRR & SCOMM)
   2179		000007 			E.TMO==7.
   2180		000200 			EF.RQM==200	;REQUEST MCR (TTYDRR)
   2181		000010 			E.RQM==8.
   2182		000400 			EF.WFM==400	;WAIT FOR MARK TIME (UNUSED)
   2183		000011 			E.WFM==9.
   2184		001000 			EF.RKR==1000	; +++003 REQUEST KLINIK RING SERVICE (TTYDRR)
   2185		000012 			E.RKR==10.	; +++003
   2186		002000 			EF.RKH==2000	; +++003 REQUEST KLINIK HANG-UP SERVICE (TTYDRR)
   2187		000013 			E.RKH==11.	; +++003
   2188		004000 			EF.RSS==4000	; +++009 REQUEST SETSPD FOR AUTOBAUD (TTYDRR)
   2189		000014 			E.RSS==12.	; +++009
   2190					;
   2191					; RESERVED LOCAL EVENT FLAG BIT MASKS (25. - 32.)
   2192					;
   2193		100000 			EF.SND==100000	;SEND ALL FINISHED
   2194		000040 			E.FSND==32.
   2195					;
   2196					; RESERVED GLOBAL EVENT FLAG BIT MASKS (57. - 64.)
   2197					;
   2198		100000 			EF.PR1==100000	; [4.1.1105] PRIMARY PROTOCOL RUNNING FLAG
   2199		000100 			E.FPR1==64.
   2200		040000 			EF.CTC==040000	; [4.1.1105] ^C FLAG
   2201		000077 			E.FCTC==63.
   2202		020000 			EF.PR2==020000	;SECONDARY PROTOCOL RUNNING FLAG
   2203		000076 			E.FPR2==62.
   2204		010000 			EF.RKP==010000	; +++003 KLINIK PARAMETERS RECIEVED (QPRDTE, SAVE)
   2205		000075 			E.FRKP==61.
   2206		004000 			EF.PFR==004000	; +++007 POWER FAIL RESTART IN PROGRESS (SCOMM, KLINIT)
   2207		000074 			E.FPFR==60.
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 49-2
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS

   2208		002000 			EF.CRI==002000	; +++008 COMM REGION IS INVALID (BOOT, TKTN)
   2209		000073 			E.FCRI==59.
   2210		001000 			EF.FCP==001000	; FAULT CONTINUATION IN PROGRESS (BOOT)
   2211		000072 			E.FFCP==58.
   2212					;
   2213					; COMMON NODE DEFINITONS
   2214					;
   2215		000000 			N.FP==0		;FORWARD POINTER
   2216		000002 			N.BP==2		;BACKWARD POINTER
   2217		000010 			N.PR==10	;PRIORITY BYTE
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 50
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS

   2219					; TPD -- TASK PARTITION DIRECTORY
   2220					;
   2221					; THE "TPD" IS A FIXED LIST OF ENTRIES DESCRIBING EACH PARTITION IN A
   2222					; SYSTEM.
   2223					;  CONSISTING OF ENTRIES OF THE FOLLOWING FORMAT:
   2224					;
   2225		000000 			T.PN==00 ; WD. 00 (B 00) -- PARTITION NAME (FIRST HALF)
   2226						 ; WD. 01 (B 02) -- PARTITION NAME (SECOND HALF)
   2227		000004 			T.BA==04 ; WD. 02 (B 04) -- BASE ADDRESS OF PARTITION (IN BYTES)
   2228		000006 			T.PZ==06 ; WD. 03 (B 06) -- SIZE OF PARTITION (IN BYTES)
   2229		000010 			T.FW==10 ; WD. 04 (B 10) -- PARTITION FLAGS WORD
   2230		000012 			T.HP==12 ; WD. 05 (B 12) -- 1/64 TH OF BASE ADR OF FIRST HOLE, OR ZERO IF NO HOLES.
   2231		000014 			T.RF==14 ; WD. 06 (B 14) -- MRL LISTHEAD (FORWARD LINKAGE)
   2232		000016 			T.RB==16 ; WD. 07 (B 16) -- MRL LISTHEAD (BACKWARD LINKAGE)
   2233					;
   2234		000020 			T.SZ==20		;SIZE (IN BYTES) OF TPD ENTRIES
   2235					;
   2236					;
   2237					;	FLAGS WORD BIT DEFINITIONS:
   2238					;
   2239		000002 			TF.OU==000002	;[01] SET IF OCCUPIED USER CONTROLLED PARTITION.
   2240					;
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 51
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS

   2242					;
   2243					;	TASK HEADER DEFINITIONS
   2244					;
   2245		000000 			H.CSP==0		;CURRENT STACK POINTER (UNUSED)
   2246		000002 			H.HSZ==2		;LENGTH OF HEADER
   2247		000046 			H.DSW==46		;DIRECTIVE STATUS WORD SAVE AREA
   2248		000050 			H.FCP==50		;FCP SAVE AREA
   2249		000052 			H.FOR==52		;FORTRAN SAVE AREA
   2250		000054 			H.OVL==54		;OVERLAY SAVE AREA
   2251		000074 			H.IPS==74		;INITIAL PS
   2252		000076 			H.IPC==76		;INITIAL PC
   2253		000100 			H.ISP==100		;INITIAL SP
   2254		000106 			H.TKVA==106		;TASK SST VECTOR ADDRESS
   2255		000130 			H.LUT==130		;LOGICAL UNIT TABLE SIZE
   2256					;
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 52
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS

   2258					;
   2259					; STD -- SYSTEM TASK DIRECTORY
   2260					;
   2261					; THE SYSTEM TASK DIRECTORY IS A MEMORY RESIDENT DIRECTORY OF ALL TASKS
   2262					; THAT HAVE BEEN INSTALLED INTO A SYSTEM THAT ARE NOT PREMANENTLY RESIDENT.
   2263					;  THIS DIRECTORY CONSISTS OF TWO
   2264					; PARTS: (1) A FIXED SIZE AREA OF ONE WORD FOR EACH TASK THAT COULD
   2265					; BE INSTALLED AT ANY TIME, AND (2) AN STD ENTRY FOR EACH TASK THAT IS
   2266					; INSTALLED.  THE FIXED SIZED AREA IS CALLED THE "ALPHA TABLE AREA", AND
   2267					; PROVIDES SPACE FOR AN ALPHABETICALLY ORDERED CONTIGUOUS LIST POINTERS
   2268					; TO STD ENTRIES (TO FACILLATE BINARY SEARCH FOR STD ENTRY BY TASK NAME).
   2269					; EACH STD ENTRY IS OF THE FOLLOWING FORMAT:
   2270					;
   2271		000000 			S.TN==00 ; WD. 00 (B 00) -- TASK NAME (6 CHAR IN RADIX-50, 2 WORDS)
   2272						 ; WD. 01 (B 02) -- (SECOND HALF OF TASK NAME)
   2273		000004 			S.TD==04 ; WD. 02 (B 04) -- DEFAULT TASK PARTITION (TPD ADDRESS)
   2274		000006 			S.FW==06 ; WD. 03 (B 06) -- FLAGS WORD
   2275		000010 			S.DP==10 ; WD. 04 (B 10) -- DEFAULT PRIORITY (BYTE)
   2276		000011 			S.DI==11 ;        (B 11) -- SYSTEM DISK INDICATOR (BYTE)
   2277		000012 			S.BA==12 ; WD. 05 (B 12) -- 1/64 TH OF BASE ADDRESS OF LOAD IMAGE
   2278		000014 			S.LZ==14 ; WD. 06 (B 14) -- SIZE OF LOAD IMAGE
   2279		000016 			S.TZ==16 ; WD. 07 (B 16) -- MAX TASK SIZE
   2280		000020 			S.PC==20 ; WD. 10 (B 20) -- INITIAL PC OF TASK
   2281		000022 			S.SP==22 ; WD. 11 (B 22) -- INITIAL SP OF TASK
   2282		000024 			S.RF==24 ; WD. 12 (B 24) -- SEND AND REQUEST QUEUE FORWARD PTR
   2283		000026 			S.RB==26 ; WD. 13 (B 26) -- SEND AND REQUEST QUEUE BACKWARD PTR
   2284		000030 			S.SS==30 ; WD. 14 (B 30) -- SST VECTOR TABLE ADDRESS
   2285		000032 			S.DL==32 ; WD. 15 (B 32) -- LOAD IMAGE FIRST BLOCK NUMBER (32-BITS)
   2286						 ; WD. 16 (B 34)    (SECOND HALF OF DISK ADDRESS)
   2287					;
   2288		000036 			S.SZ==36		;SIZE OF STD ENTRY
   2289					;
   2290					;
   2291					;
   2292					;	FLAGS WORD BIT DEFINITIONS:
   2293					;
   2294		000001 			SF.TA==000001	;[00] SET WHEN TASK IS ACTIVE
   2295		000001 			SF.PT==000001	;[00] SET WHEN TASK IS PRIVILEDGED (ACTIVE FOR NOW)
   2296		000002 			SF.FX==000002	;[01] SET WHEN TASK IS FIXED IN MEMORY
   2297		000004 			SF.EX==000004	;[02] SET WHEN TASK IS TO BE REMOVED ON EXIT
   2298		040000 			SF.IR==040000	;[14] SET WHEN INSTALL IS REQUESTED
   2299		100000 			SF.ST==100000	;[15] SET WHEN TASK IS SYSTEM TASK
   2300					;
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 53
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS

   2302					;
   2303					; ATL -- ACTIVE TASK LIST
   2304					;
   2305					; THE "ATL" IS A PRIORITY ORDERED DEQUE OF "ATL" NODES FOR ACTIVE TASKS
   2306					; THAT HAVE MEMORY ALLOCATED FOR THEIR EXECUTION.  THE TASKS REPRESENTED
   2307					; BY ENTRIES IN THE ATL ARE EITHER MEMORY RESIDENT, OR A REQUEST FOR THEIR
   2308					; LOADING HAS BEEN QUEUED.  THE LISTHEAD FOR THIS DEQUE IS IN THE SYSTEM
   2309					; COMMUNICATIONS AREA (SCOM), AND THE NODES ARE OF THE FOLLOWING FORMAT:
   2310					;
   2311						 ; WD. 00 (B 00) -- FORWARD LINKAGE
   2312						 ; WD. 01 (B 02) -- BACKWARD LINKAGE
   2313		000004 			A.SP==04 ; WD. 02 (B 04) -- STACK POINTER (R6) OF RUNNING TASK
   2314						 ;			WHEN TASK IS NOT CURRENT TASK
   2315		000006 			A.PD==06 ; WD. 03 (B 06) -- TASK'S RUN PARTITION (TPD ADDRESS)
   2316		000010 			A.RP==10 ; WD. 04 (B 10) -- TASK'S RUN PRIORITY (BYTE)
   2317		000012 			A.HA==12 ; WD. 05 (B 12) -- 1/64TH REAL ADR OF LOAD IMAGE
   2318		000014 			A.TS==14 ; WD. 06 (B 14) -- TASK STATUS (BYTE)
   2319		000015 			A.FB==15 ; WD. 06 (B 15) -- TASK FLAGS BYTE
   2320		000016 			A.TD==16 ; WD. 07 (B 16) -- SYSTEM TASK DIRECTORY (STD) ENTRY ADDRESS
   2321		000020 			A.EF==20 ; WD. 10 (B 20) -- TASK'S EVENT FLAGS (1-32)
   2322						 ; WD. 11 (B 22) -- (SECOND HALF OF TASK'S EVENT FLAGS)
   2323		000024 			A.FM==24 ; WD. 12 (B 24) -- TASK'S EVENT FLAGS MASKS (64-BITS)
   2324						 ; WD. 13 (B 26) -- (SECOND WORD OF FLAGS MASK)
   2325						 ; WD. 14 (B 30) -- (THIRD WORD OF FLAGS MASK)
   2326						 ; WD. 15 (B 32) -- (FOURTH WORD OF FLAGS MASK)
   2327		000034 			A.PF==34 ; WD. 16 (B 34) -- POWER FAIL AST TRAP ADDRESS
   2328					;
   2329		000036 			A.SZ==36		;SIZE OF ATL
   2330					;
   2331					; TASK STATUS VALUES ARE DESCRIBED AT 'ASXDT'
   2332					;
   2333					; BEFORE EXECUTION , THE FIRST THREE
   2334					; FLAGS MASK WORDS ARE USED AS FOLLOWS:
   2335					;
   2336					;	A.FM+0 -- ADDRESS OF TASK LOAD I/O REQUEST DEQUE LISTHEAD,
   2337					;	A.FM+2 -- ADDRESS OF TASK LOAD I/O REQUEST NODE,
   2338					;
   2339					; MRL -- MEMORY REQUIRED LIST
   2340					;
   2341					; THE "MRL" IS A PRIORITY ORDERED DEQUE OF "ATL" NODES FOR ACTIVE TASKS
   2342					; THAT REQUIRE MEMORY IN A PARTITION.  EACH PARTITION HAS ITS OWN MRL.
   2343					; WHENEVER A NON-FIXED TASK RUNNING IN A PARTITION EXITS, AN
   2344					; ATTEMPT IS MADE TO ASSIGN MEMORY TO THE FIRST (HIGHEST PRIORITY)
   2345					; TASK IN THE LIST.  IF MEMORY IS FOUND, THE TASK'S NODE IS
   2346					; MOVED FROM THE "MRL" TO THE "ATL" DEQUE.  THE MRL LISTHEAD IS IN
   2347					; THE TPD ENTRY FOR THE CORRESPONDING PARTITION.
   2348					;
   2349					;
   2350					;	FLAGS BYTE BIT DEFINITIONS
   2351					;
   2352		000200 			AF.PP==200	;[07] SET WHEN TASK IS PRIMARY PROTOCOL TASK
   2353					;
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 54
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS

   2355					;
   2356					; CKL -- CLOCK TABLE
   2357					;
   2358					; THE CLOCK LIST IS A TABLE CONSISTING OF ONE ENTRY FOR EACH OPERATION
   2359					; SCHEDULED TO BE PERFORMED AT SOME FUTURE TIME.  A "SCHEDULE DELTA-
   2360					; TIME" EACH ENTRY (IF ANY) OF THE CLOCK QUEUE IS DECREMENTED
   2361					; AT EACH CLOCK TICK UNTIL THE ENTRY "COMES DUE", AT WHICH TIME THE
   2362					; INDICATED OPERATION IS PERFORMED.  CLOCK TABLE ENTRIES ARE OF
   2363					; FOLLOWING FORMAT.
   2364					;
   2365		000000 			C.AT==00 ; WD. 00 -- ATL NODE ADDRESS OF REQUESTOR
   2366		000002 			C.AS==02 ; WD. 02 -- AST TRAP ADDRESS OF REQUESTOR
   2367		000004 			C.SD==04 ; WD. 02 -- SCHEDULE DELTA IN TICKS (16-BITS)
   2368		000006 			C.RS==06 ; WD. 03 -- RESCHEDULE DELTA IN TICKS (16-BITS)
   2369		000010 			C.FM==10 ; WD. 04 -- FLAG MASK (BIS SRC)
   2370		000012 			C.FA==12 ; WD. 05 -- FLAGS WORD ADR (BIS DST ADR)
   2371					;
   2372		000014 			C.SZ==14 ; SIZE OF CLOCK TABLE ENTRY
   2373					;
   2374					;
   2375		000074 			.CYLTM==60.	;CYCLE TIME OF CLOCK
   2376					;
   2377		000005 			.KALSC==5	;TIMEOUT INTERVAL FOR KL10
   2378					;
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 55
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS

   2380					;
   2381					; DTE -- DTE TABLE
   2382					;
   2383					; THE DTE LIST IS A TABLE CONSISTING OF ONE ENTRY FOR EACH OPERATION
   2384					; SCHEDULED TO BE PERFORMED AT SOME FUTURE TIME WHEN THE DTE20
   2385					; INTERRUPTS.  THE DTE20 TABLE ENTRIES ARE OF THE FOLLOWING
   2386					; FORMAT.
   2387					;
   2388		000000 			D.AT==00 ; WD. 00 -- ATL NODE ADDRESS OF REQUESTOR
   2389		000002 			D.FM==02 ; WD. 01 -- FLAG MASK (BIS SRC)
   2390		000004 			D.FA==04 ; WD. 02 -- FLAGS WORD ADR (BIS DIST ADR)
   2391					;
   2392		000006 			D.SZ==06 ; SIZE OF DTE20 TABLE ENTRY
   2393					;
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 56
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS

   2395					;
   2396					;	KLI PARAMETER WORD DEFINITIONS (.KLIWD)
   2397					;
   2398		000001 			KL.LRM==1		;LOAD RAMS
   2399		000002 			KL.CFM==2		;CONFIGURE MEMORY
   2400		000004 			KL.LVB==4		;LOAD VBOOT
   2401		000010 			KL.VBN==10		;VBOOT START AT START+1
   2402		000020 			KL.VBD==20		;DUMP MONITOR
   2403		000040 			KL.SPF==40		;START AT LOC 70 (AFTER POWER FAIL)
   2404		000100 			KL.LCA==100		; +001 LOAD CACHE
   2406		000200 			KL.SSC==200		; +001 START AT LOCATION 407 (AFTER SYSTEM CRASH)
   2408		000400 			KL.CFL==400		; +001  IF = 0, CONFIGURE FROM FILE
   2409		001000 			KL.KAC==1000		; [4.2107] KEEP-ALIVE-CEASED ERROR
   2410		002000 			KL.DEF==2000		; OPERATOR ACTUATED REBOOT
   2411		004000 			KL.REQ==4000		; KLINIT REQUESTED
   2412		010000 			KL.ABO==10000		; KLINIT CANCELED
   2413					;
   2414					; ALL BITS 0 IMPLIES ASK QUESTIONS TO CONTROL LOADING
   2415					;
   2416					;
   2417					;	PARAMETER DEFINITIONS FOR KL ERROR WORD
   2418					;
   2419		000001 			KS.TSP==1		;TEN STOPPED (HALTED)
   2420		000002 			KS.CES==2		;CLOCK ERROR STOP
   2421		000004 			KS.EPE==4		;E BOX PARITY ERROR
   2422		000010 			KS.DEX==10		;DEPOSIT EXAMINE ERROR
   2423		000020 			KS.CST==20		;KEEP ALIVE STOPPED
   2424		000040 			KS.TRR==40		;TEN REQUEST'S RE-BOOT
   2425		000100 			KS.PFT==100		;POWER FAIL RESTART
   2426		000200 			KS.PTO==200		; +++012 PROTOCOL TIMEOUT
   2427		000400 			KS.FME==400		;FAST MEMORY PARITY ERROR
   2428		001000 			KS.CPE==1000		;CRAM PARITY ERROR
   2429		002000 			KS.DPE==2000		;DRAM PARITY ERROR
   2430		004000 			KS.FCF==4000		;FAULT-CONTNUATION FAILED
   2431					;
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 57
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS

   2433					;
   2434					; PUD -- PHYSICAL UNIT DEVICE TABLE
   2435					;
   2436					; THE "PUD" IS A FIXED LIST OF ENTRIES DESCRIBING EACH PHYSICAL DEVICE-
   2437					; UNIT IN A SYSTEM.
   2438					;  CONSISTS OF ENTRIES OF THE FOLLOWING FORMAT:
   2439					;
   2440		000000 			U.DN==00 ; WD. 00 (B 00) -- DEVICE NAME (2 ASCII CHARS)
   2441		000002 			U.UN==02 ; WD. 01 (B 02) -- UNIT NUMBER (BYTE)
   2442		000003 			U.FB==03 ;        (B 03) -- FLAGS (BYTE)
   2443		000004 			U.C1==04 ; WD. 02 (B 04) -- CHARACTERISTICS WORD ONE (DEVICE INDEPENDENT INDICATORS)
   2444		000006 			U.C2==06 ; WD. 03 (B 06) -- CHARACTERISTICS WORD TWO (DEVICE DEPENDENT INDICATORS
   2445		000010 			U.C3==10 ; WD. 04 (B 10) -- CHARACTERISTICS WORD THREE (DEVICE DEPENDENT INDICATORS)
   2446		000012 			U.C4==12 ; WD. 05 (B 12) -- CHARACTERISTICS WORD FOUR (SIZE OF BLOCK, BUFFER, LINE)
   2447		000014 			U.AF==14 ; WD. 06 (B 14) -- ATTACH FLAG (ATL NODE ADDRESS OF ATTAC HING TASK
   2448		000016 			U.RP==16 ; WD. 07 (B 16) -- REDIRECT POINTER
   2449		000020 			U.HA==20 ; WD. 10 (B 20) -- HANDLER TASK ATL NODE ADDRESS
   2450		000022 			U.RF==22 ; WD. 11 (B 22) -- UNIT REQUEST DEQUE LISTHEAD (FWD PNTR)
   2451		000024 			U.RB==24 ; WD. 12 (B 24) -- UNIT REQUEST DEQUE LISTHEAD (BKG PNTR)
   2452					;
   2453					; PHYSICAL UITS ARE CONSIDERED "VOLUMES" BY THE FILES SYSTEM, AND THE
   2454					; REMAINDER OF THE PUD ENTRY IS A "VOLUME CONTROL BLOCK".
   2455					;
   2456		000026 			U.VA==26 ; WD. 13 (B 26) -- ADDRESS OF VOLUME CONTROL BLOCK EXTENSION
   2457		000030 			U.UI==30 ; WD. 14 (B 30) -- USER IDENTIFICATION CODE (UIC)
   2458		000030 			U.PC==30 ;        (B 30) -- UIC PROGRAMMER CODE
   2459		000031 			U.GC==31 ;        (B 31) -- UIC GROUP CODE
   2460		000032 			U.VP==32 ; WD. 15 (B 32) -- VOLUME PROTECTION WORD
   2461		000032 			U.CH==32 ;        (B 32) -- CHARACTERISTICS FLAGS
   2462						 ;        (B 33) -- RESERVED BYTE
   2463		000034 			U.AR==34 ; WD. 16 (B 34) -- ACCESS RIGHTS FLAGS WORD
   2464		000036 			U.DACP==36;WD. 20 (B 36) -- DEFAULT ACP NAME, RAD50 (FIRST WORD)
   2465		000040 			U.ACP==40 ; WD. 20 (B 40) -- STD ENTRY ADDRESS OF CURRENT ACP
   2466		000042 			U.TF==42 ; WD. 21 (B 42) -- TERMINAL FLAGS WORD
   2467		000042 			U.PR==42 ;        (B 42) -- TERMINAL PRIVILEDGE WORD
   2468		000043 			U.FO==43 ;        (B 43) -- TERMINAL FORMS BYTE
   2469		000044 			U.LBH==44 ; WD. 22 (B 44) -- HIGH ORDER - TOTAL # OF BLOCKS FOR DEVICE
   2470		000046 			U.LBN==46 ; WD. 24 (B46) -- LOW ORDER TOTAL # OF BLOCKS FOR DEVICE
   2471		000050 			U.SZ==50		;SIZE (IN BYTES OF PUD ENTRIES
   2472					;
   2473					;	FLAGS BYTE DEFINITIONS
   2474					;
   2475		000040 			UF.RD==040		; **************TEMP*********
   2476		000200 			UF.RH==200	; [7] SET WHEN HANDLER TASK IS DECLARED RESIDENT
   2477		000100 			UF.TL==100	; [6] SET WHEN HANDLER TASK RECOGNIZES LOAD AND RECORD
   2478		000040 			UF.OFL==040	; [5] SET WHEN DEVICE IS OFFLINE
   2479					;
   2480					;	BIT DEFINITIONS FOR CHARACTERISTICS WORD ONE
   2481					;
   2482		000001 			UC.REC==000001	;[00] SET IF RECORD ORIENTED DEVICE (VIZ., TT,LP, CR)
   2483		000002 			UC.CCL==000002	;[01] SET IF CARRIAGE CONTROL DEVICE (VIZ., TT LP)
   2484		000004 			UC.TTY==000004	;[02] SET IF TTY DEVICE (VIZ., KSR, LA30)
   2485		000010 			UC.DIR==000010	;[03] SET IF DEVICE IS A DIRECTORY DEVICE
   2486		000020 			UC.SDI==000020	;[04] SET  IF DEVICE IS A SINGLE DIRECTORY DEVICE
   2487		000040 			UC.SQD==000040	;[05] SET IF DEVICE IS A SEQUENTIAL DEVICE
   2488		000100 			UC.ETB==000100  ;[06] SET IF DEVICE IS EIGHTEEN BIT MODE
   2489		000400 			UC.INB==000400	;+003 [08] SET IF THE DEVICE IS INTERMEDIATE BUFFERED
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 57-1
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS

   2490		001000 			UC.SWL==001000	;[09] SET IF THE DEVICE IS SOFTWARE WRITE LOCKED
   2491		002000 			UC.ISP==002000	;[10] SET IF DEVICE IS INPUT SPOOLED
   2492		004000 			UC.0SP==004000	;[11] SET IF DEVICE IS OUTPUT SPOOLED
   2493		010000 			UC.PSE==010000	;[12] SET IF DEVICE IS PSEUDO DEVICE
   2494		020000 			UC.COM==020000	;[13] SET IF DEVICE IS COMMUNICATIONS CHANNEL
   2495		040000 			UC.F11==040000	;[14] SET IF DEVICE IS FILES-11
   2496		100000 			UC.MNT==100000	;[15] SET IF DEVICE IS MOUNTABLE
   2497					;
   2498					;	BIT DEFINITIONS FOR CHARACTERISTICS WORD TWO
   2499					;
   2500		000200 			CH.OFF==200	;VOLUME IS OFF-LINE
   2501		000100 			CH.FOR==100	;VOLUME IS FOREIGN
   2502		000040 			CH.UNL==40	;DISMOUNT PENDING
   2503		000020 			CH.NAT==20	;ATTACH/DETACH NOT PERMITTED
   2504		000010 			CH.NDC==10	;DEVICE CONTROL FUNCTIONS NOT PERMITTED
   2505		000001 			CH.LAB==1	;VOLUME IS LABELED TAPE
   2506					;
   2507					;	BIT DEFINITIONS FOR TERMINAL PRIVILEDGE BYTE
   2508					;
   2509		000001 			UT.PR==1	;SET IF TY ID PRIVILEDGED
   2510		000002 			UT.SL==2	;SET IF TTY IS SLAVED
   2511		000004 			UT.LG==4	;SET IF TERMINAL IS LOGGED ON
   2512					;
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 58
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS

   2514					;
   2515					; TASK TERMINATION NOTICE ERROR CODES FOR A.FM+0
   2516					;
   2517		000012 			TN.EMT==12		;NON-RSX EMT
   2518		000014 			TN.TRP==14		;TRAP INSTRUCTION
   2519		000040 			TN.LRF==40		;LOAD FAILURE
   2520					;
   2521					; SEND AND REQUEST QUEUE ENTRY
   2522					;
   2523		000004 			Q.SI==04 ; WD. 02 (B 04) -- SYSTEM TASK LIST ADDRESS
   2524		000006 			Q.D1==06 ; WD. 03 (B 06) -- FIRST DATA WORD
   2525					;
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 59
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS

   2527					;
   2528					;	DEVICE QUEUE POINTER TABLE (TO 11 QUEUE ENTRIES)
   2529					;
   2530		000000 			Q.DA==0	; WD. 00 (B 00) -- ADDRESS OF DEVICE TABLE LIST
   2531		000002 			Q.TS==02 ; WD. 01 (B 02) -- SIZE OF AN ENTRY IN THE DEVICE TABLE LIST
   2532		000004 			Q.ST==04 ; WD. 02 (B 04) -- ADDRESS OF DEVICE START SUBROUTINE
   2533		000006 			Q.SP==06 ; WD. 03 (B 06) -- ADDRESS OF DEVICE STOP SUBROUTINE
   2534						; WD. 04 (B 10) -- SPARE
   2535		000012 			Q.AK==12 ; WD. 05 (B 12) -- ACKNOWLEDGE ROUTINE
   2536						 ; WD. 06 (B 14) -- SPARE
   2537		000016 			Q.DZ==16 ; WD. 07 (B 16) -- DEVICE COUNT
   2538		000020 			Q.SZ==20	; SIZE OF TABLE ENTRY
   2539					;
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 60
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS

   2541					;
   2542					;	DEVICE ERROR LOGGING INFORMATION AND STATUS BLOCK DEFINITONS
   2543					;
   2544					;	WORD 0 -- STANDARD STATUS BITS (DV.XXX)
   2545					;
   2546					;	1	DEVICE-DEPENDENT BITS
   2547					;	2	...........
   2548					;	N
   2549					;
   2550					;	DEVICE ERROR LOGGING BITS (FIRST WORD BITS ONLY)
   2551					;
   2552		000001 			DV.NXD==1	;NON-EX DEVICE
   2553		000002 			DV.OFL==2	;OFF-LINE
   2554		000004 			DV.OIR==4	;HARDWARE ERROR. OPERATOR INTERVENTION REQ'D
   2555		000010 			DV.SCN==10	;SOFTWARE CONDITION. ACKNOWLEDGE REQUIRED
   2556		000020 			DV.IOP==20	;I/O IN PROGRESS
   2557		000040 			DV.EOF==40	;END-OF-FILE ENCOUNTERED
   2558		000100 			DV.LOG==100	;ERROR LOGGING REQUIRED
   2559		000200 			DV.URE==200	;UN-RECOVERABLE ERROR
   2560		000400 			DV.F11==400	;ERROR ON FROM -11 REQUEST
   2561		001000 			DV.HNG==1000	;DEVICE HUNG
   2562		002000 			DV.LIN==2000	;DEVICE LOST INTERRUPT ENABLE
   2563		004000 			DV.CFG==4000	; CONFIGURATION INFORMATION
   2564					;
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 61
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS

   2566					;
   2567					; KLINIK EVENT LOGGING CODES
   2568					;
   2569
   2570		000000 			K.LUND==0		; UNDEFINED CODE
   2571
   2572		000001 			K.LSCK==1		; SET/CLEAR KLINIK COMMAND
   2573		000001 				K.LSKL==1	; SET KLINIK
   2574		177777 				K.LCKL==-1	; CLEAR KLINIK
   2575
   2576		000002 			K.LRNG==2		; KLINIK RING
   2577		000001 				K.LRAC==1	; ACCEPTED (WINDOW OPEN)
   2578		177777 				K.LRRJ==-1	; REJECTED (WINDOW CLOSED)
   2579
   2580		000003 			K.LDSC==3		; KLINIK LINE DISCONNECT
   2581		000001 				K.LDCM==1	; DIRECTED DISCONNECT (COMMAND)
   2582		177777 				K.LDRP==-1	; CARRIER DROP
   2583
   2584		000004 			K.LCON==4		; KLINIK LINE CONNECT
   2585		000001 				K.LROP==1	; REMOTE -- OPERATOR MODE
   2586		000002 				K.LRPR==2	; REMOTE -- PROGRAMMER MODE
   2587		000003 				K.LRMN==3	; REMOTE -- MAINTENANCE MODE
   2588		177777 				K.LUSR==-1	; USER MODE
   2589
   2590		000005 			K.LBPW==5		; BAD PASSWORD
   2591
   2592		000006 			K.LLTO==6		; LOGON TIMEOUT
   2593
   2594		000007 			K.LRBA==7		; KLINIK ACTIVE ON REBOOT
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 62
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS

   2596					;
   2597					;	OFFSETS FOR SST TRAPS TABLE IN USER'S AREA
   2598					;
   2599		000000 			T.RAP4==0		;TRAP AT 4
   2600		000002 			T.RAPM==2		;MEMORY PROTECT VIOLATOION
   2601		000004 			T.RAPB==4		;T BIT OR BPT TRAP
   2602		000006 			T.RAPI==6		;IOT TRAP
   2603		000010 			T.RAPR==10		;RESERVED INSTRUCTION TRAP
   2604		000012 			T.RAPE==12		;EMT TRAP (NON RSX)
   2605		000014 			T.RAPT==14		;TRAP TRAP
   2606		000016 			T.RAPF==16		;FLOATING POINT TRAP
   2607					;
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 63
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS

   2609					;
   2610					; IRQ -- I/O REQUEST QUEUE
   2611					;
   2612					; THE "IRQ" IS A PRIORITY ORDERED DEQUE OF I/O REQUEST NODES WITH ITS
   2613					; LISTHEAD IN THE PUD ENTRY OF THE PHYSICAL UNIT FOR WHICH THE I/O
   2614					; REQUEST WAS QUEUED.  EACH PHYSICAL UNIT HAS ITS OWN I/O REQUEST QUEUE.
   2615					; I/O REQUEST NODES ARE CREATED AND QUEUED PRIMARILY BY THE "QUEUE I/O"
   2616					; DIRECTIVE.  HOWEVER, THE EXEC ALSO CREATES I/O REQUESTS TO:
   2617					; (1) LOAD A TASK IMAGE,
   2618					; I/O REQUEST NODES ARE
   2619					; THE FOLLOWING FORMAT.
   2620					;
   2621						 ; WD. 00 (B 00) -- FORWARD LINKAGE
   2622						 ; WD. 01 (B 02) -- BACKWARD LINKAGE
   2623		000004 			R.TD==04 ; WD. 02 (B 04) -- STD NODE OF REQUESTOR
   2624		000006 			R.AT==06 ; WD. 03 (B 06) -- ATL NODE OF REQUESTOR ***
   2625		000010 			R.PR==10 ; WD. 04 (B 10) -- PRIORITY (BYTE)
   2626		000011 			R.DP==11 ;        (B 11) -- DPB SIZE (BYTE) ***
   2627		000012 			R.LU==12 ; WD. 05 (B 12) -- LOGICAL UNIT NUMBER (BYTE)
   2628		000013 			R.FN==13 ;        (B 13) -- EVENT FLAG NUMBER (BYTE)
   2629		000014 			R.FC==14 ; WD. 06 (B 14) -- I/O FUNCTION CODE
   2630		000016 			R.SB==16 ; WD. 07 (B 16) -- ADDRESS OF STATUS BLOCK
   2631		000020 			R.AS==20 ; WD. 10 (B 20) -- AST ADDRESS
   2632		000022 			R.UI==22 ; WD. 11 (B 22) -- UIC (UNUSED)
   2633		000024 			R.PB==24 ; WD. 12 (B 24) -- PARAMETER #1
   2634						 ; WD. 13 (B 26) -- PARAMETER #2
   2635						 ; WD. 14 (B 30) -- PARAMETER #3
   2636						 ; WD. 15 (B 32) -- PARAMETER #4
   2637						 ; WD. 16 (B 34) -- PARAMETER #5
   2638						 ; WD. 17 (B 36) -- PARAMETER #6
   2639					;
   2640					; THE LOW ORDER THREE-BITS OF THE I/O FUNCTION CODE ARE USED BY THE SYSTEM
   2641					; AS FOLLOWS:
   2642					;
   2643							;[0] -- RESERVED FOR FUTURE USE
   2644		000002 			RF.XR==000002	;RESERVED
   2645							;[2] -- RESERVED FOR FUTURE USE
   2646					;
   2647					; *** WHENEVER AN I/O REQUEST IS QUEUED BY THE "QUEUE I/O" DIRECTIVE, THE
   2648					; DPB SIZE AND THE REQUESTOR'S ATL NODE ADDRESS ARE RECORDED IN THE I/O
   2649					; REQUEST NODE.  WHENEVER AN I/O REQUEST IS QUEUED AS A RESULT OF ANOTHER
   2650					; DIRECTIVE (VIZ., "REQUEST" CAUSING A TASK IMAGE TO BE LOADED), THE DPB
   2651					; SIZE AND THE REQUESTOR'S ATL NODE ADDRESS ARE SET TO ZERO.  THUS, BOTH
   2652					; BOTH THE DPB SIZE AND THE ATL NODE ADDRESS ARE ALSO "EXEC REQUEST"
   2653					; INDICATORS.
   2654					;
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 64
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS

   2656					;+
   2657					;  SIGNIFICANT EVENT FLAG DEFINITIONS
   2658					;
   2659					;
   2660					; THE HIGH-ORDER BYTE '.SERFG+1' IS INCREMENTED WHENEVER A CLOCK
   2661					; TICK OCCURS (WHENEVER THE CLOCK INTERRUPT SERVICE ROUTINE RUNS).
   2662					; HENCE, '.SERFG+1' IS A BYTE CONTAINING A COUNT OF UNRECOGNIZED
   2663					; CLOCK TICKS.
   2664					;
   2665					; THE BITS OF THE LOW-ORDER BYTE '.SERFG+0' ARE USED TO FLAG THE
   2666					; FOLLOWING EVENTS:
   2667					;
   2668		000001 			EV.SE==001 ; [0] SET WHENEVER A SIGNIFICANT EVENT IS TO BE
   2669						   ; RECOGNIZED,
   2670					;
   2671		000002 			EV.AS==002 ; [1] SET WHEN POWER FAIL IS REQUIRED
   2672		000200 			EV.PF==200 ; [7] SET WHEN POWER DOWN HAS OCCURRED AND MUST BE RECOGNIZED
   2673						   ;     ** MUST BE SIGN BIT **
   2674					;-
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 65
EXEC MODULE ONE -- NUL TASK

   2676						.SBTTL	EXEC MODULE ONE -- NUL TASK
   2677					;
   2678					; THE NUL TASK EXISTS TO ELIMINATE EXCEPTION TESTING WHEN SCANNING THE
   2679					; ACTIVE TASK LIST, AND WHEN PROCESSING DIRECTIVES THAT CAUSE AN
   2680					; ATL SCAN TO CONTINUE FROM THE NEXT TASK OF LOWER PRIORITY THAN THE
   2681					; DIRECTIVE ISSUING TASK.
   2682					;
   2683					; THE NUL TASK IS THE LOWEST PRIORITY TASK IN A SYSTEM.
   2684					;
   2685					; THE NUL TASK HAS AN ATL NODE WITH STATUS OF "RUNNING", BUT HAS NO STD
   2686					; ENTRY.
   2687					;
   2688					; THE NUL TASK DOES NOT RESIDE IN A PARTITION.
   2689					;
   2690					; THE NUL TASK EXECUTION CONSISTS OF "WAIT" INSTRUCTIONS (TO INCREASE
   2691					; UNIBUS THROUGHPUT).  HOWEVER, THE NUL TASK DOES HAVE CONTEXT, AND CAN
   2692					; EXECUTE PDP-11 INSTRUCTIONS
   2693					;
   2694					;
   2695	012242				NULHD::	.STKM	170017,0,0,0,0,0,0,NTKXEP,174000,NTKXSP
	012310	000000 	000000 	000000 		.WORD	0,0,0,0
	012316	000000
	012336	174000 	012546'	012522'		.WORD	174000,NTKXEP,NTKXSP
	012372	000005 				.WORD	5
	012374	010232'				.WORD	TTPEN
	012376	000000 				.WORD	0
	012400	000000 				.WORD	0
	012402	000000 				.WORD	0
	012404	000000 				.WORD	0
	012406	000000 				.WORD	0
	012410	000000 				.WORD	0
	012412	000000 				.WORD	0
	012414	000000 				.WORD	0
	012416	000000 				.WORD	0
	012420	000000 				.WORD	0
	012522	170017 				.WORD	170017
	012524	000000 				.WORD	0
	012526	000000 				.WORD	0
	012530	000000 				.WORD	0
	012532	000000 				.WORD	0
	012534	000000 				.WORD	0
	012536	012546'				.WORD	NTKXEP
	012540	174000 				.WORD	174000
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 66
EXEC MODULE ONE -- NUL TASK

   2697	012542				NTKXEN:
   2698	012542					.ENB6			; ENABLE INTERRUPTS
	012542	012637 	177776 			MOV	(SP)+,@#PS
   2699	012546				NTKXEP:
   2700	012546	000001 				WAIT
   2701	012550	000001 				WAIT
   2702	012552	005200 				INC	R0
   2703	012554					.INH6			; [4.1.1035] DISALLOW INTERRUPTS
	012554	013746 	177776 			MOV	@#PS,-(SP)
	012560	112737 	000300 	177776 		MOVB	#300,@#PS
   2704	012566	005737 	001012'			TST	.COMEF+2	;;; [4.1.1105] IF PRIMARY PROTOCOL IS DEAD
   2705	012572	100033 				BPL	40$		;;; [4.1.1105] THEN SEND DOWN MESSAGE
   2706	012574	005737 	001164'			TST	.ACKAL		;;; IF ACKAL HAS NOT BEEN SENT
   2707	012600	001002 				BNE	20$		;;; THEN KL MAY STILL BE SHAKY
   2708	012602	105037 	013034'			CLRB	SNDMSG		;;; OTHERWISE RESET MSG FLAG
   2709	012606				20$:
   2710	012606	005737 	001124'			TST	.TKTN		;;; CHECK FOR TASK TERMINATION REQUIRED
   2711	012612	001410 				BEQ	30$		;;; NO -- LOOK AT TIME OF DAY FLAG
   2712	012614	005037 	001124'			CLR	.TKTN		;;; CLEAR REQUEST FOR TASK TERMINTATION
   2714	012620					.ENB6			;;; ENABLE INTERRUPTS
	012620	012637 	177776 			MOV	(SP)+,@#PS
   2715	012624					DIR$	#.TKTN.		; REQUEST TASK TERMINATION
	012624	012746 	012740'			MOV	#.TKTN.,-(SP)
	012630	104375 				EMT	375
   2716	012632	000745 				BR	NTKXEP		; AND CONTINUE
   2717						;
   2721	012634				30$:
   2722	012634	005737 	001136'			TST	.CLKSW		;;; NEED TIME CHANGE?
   2723	012640	100340 				BPL	NTKXEN		;;; [4.1.1035] NO -- JUST GO ON
   2724	012642	005037 	001136'			CLR	.CLKSW		;;; YES -- RESET CLOCK SWITCH
   2725	012646					.ENB6			;;; ENABLE INTERRUPTS
	012646	012637 	177776 			MOV	(SP)+,@#PS
   2726	012652					DIR$	#.TOD.		; REQUEST TIME OF DAY TASK
	012652	012746 	012722'			MOV	#.TOD.,-(SP)
	012656	104375 				EMT	375
   2727	012660	000732 				BR	NTKXEP		; AND CONTINUE IDLE LOOP
   2728						;
   2729	012662				40$:
   2730	012662	105737 	001372'			TSTB	.PRPSE		;;; ARE WE JUST PAUSING??
   2731	012666	001347 				BNE	20$		;;; YES -- BACK TO MAIN LOOP
   2732	012670	005737 	013034'			TST	SNDMSG		;;; HAVE WE INFORMED THE TTYS ?
   2733	012674	001344 				BNE	20$		;;; YES -- DON'T RE-SEND
   2734	012676	012704 	012756'			MOV	#DWNMSG,R4	;;; SEND DOWN MESSAGE
   2735	012702					CALL	COPBUF		;;; COPY BUFFER TO FREE SPACE
	012702	004737 	027312'			JSR	PC,COPBUF
   2736	012706	010004 				MOV	R0,R4		;;; SET UP TO SEND IT
   2737	012710					CALL	.SNDAL		;;; SEND MESSAGE
	012710	004737 	027006'			JSR	PC,.SNDAL
   2738	012714	105237 	013034'			INCB	SNDMSG		;;; SYSTEM DOWN MESSAGE HAS BEEN SENT.
   2739	012720	000732 				BR	20$		;;; CHECK FOR TERMINATION NOTIFICATION
   2740						;
   2741	012722				.TOD.:
   2742	012722					RQST$	MIDNIT
	012722	   013 	   007 			.BYTE	11.,7
	012724	051254 	054374 			.RAD50	/MIDNIT/
	012730	000000 	000000 			.WORD	0,0
	012734	000000 				.WORD
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 66-1
EXEC MODULE ONE -- NUL TASK

	012736	   000 	   000 			.BYTE	,
   2743
   2745	012740				.TKTN.:
   2746	012740					RQST$	TKTN
	012740	   013 	   007 			.BYTE	11.,7
	012742	077314 	053600 			.RAD50	/TKTN/
	012746	000000 	000000 			.WORD	0,0
	012752	000000 				.WORD
	012754	   000 	   000 			.BYTE	,
   2748
   2749	012756				DWNMSG:
   2750	012756	000000 	000060 	012770'		.WORD	0,60,DWNMS,DWNMSZ,DWNMSZ*400
	012764	000043 	021400
   2751
   2756	012770				DWNMS:
   2757	012770	   015 	   012 	   007 		.ASCII	<15><12><7><7><7>/%DECSYSTEM-10 NOT RUNNING/<15><12><7><7><7>
	012773	   007 	   007 	   045
	012776	   104 	   105 	   103
	013001	   123 	   131 	   123
	013004	   124 	   105 	   115
	013007	   055 	   061 	   060
	013012	   040 	   116 	   117
	013015	   124 	   040 	   122
	013020	   125 	   116 	   116
	013023	   111 	   116 	   107
	013026	   015 	   012 	   007
	013031	   007 	   007
   2759		000043 			DWNMSZ=.-DWNMS
   2760						.EVEN
   2761	013034				SNDMSG::
   2762	013034	   001 				.BYTE	1		;  +++005 A SYSTEM DOWN MSG HAS BEEN SENT
   2763	013035	   000 				.BYTE	0		; [5.1127] HOST DEBUG NO MESSAGE FLAG
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 67
EXEC MODULE TWO -- SERVICE FOR "EMT" & "TRAP" INSTRUCTIONS

   2765						.SBTTL	EXEC MODULE TWO -- SERVICE FOR "EMT" & "TRAP" INSTRUCTIONS
   2766					;
   2767					;
   2768					;	EMT INSTRUCTIONS ARE ONLY EXECUTED BY NON-INTERRUPT SERVICE ROUTINES
   2769					;
   2770					;	DIRECTIVE DISPATCH -- CONTROL IS TRANSFERRED TO A DIRECTIVE SERVICE
   2771					;	ROUTINE PER DIRECTIVE IDENTIFICATION CODE (DIC)
   2772					;
   2773					;	REGISTER DEFINITIONS ON EXIT:
   2774					;	R0 -- PC OF EMT INSTRUCTION
   2775					;	R1 -- POINTER TO WORD FOLLOWING DIC & SIZE
   2776					;	R2 -- DPB SIZE
   2777					;	R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
   2778					;	R5 -- CURRENT TASK POINTER
   2779					;
   2780		000020 			EM.DRO==20	;OFFSET TO DPB OR DPB POINTER ON STACK
   2781					;
   2782					;
   2783					;
   2784	013036	010546 			EMTTRP::MOV	R5,-(SP)	;SAVE R5 INCASE OF TRAP(SST)
   2785	013040	016605 	000002 			MOV	2(SP),R5	;=PC+2 OF EMT INSTRUCTION
   2786	013044	024527 				CMP	-(R5),(PC)+	;WAS IT A
   2787	013046	104375 				EMT	375		; DIRECTIVE ?
   2788	013050	001421 				BEQ	10$		;YES -- LEGAL DIRECTIVE REQUEST
   2789	013052	011637 	001116'			MOV	@SP,EMTSTK	;SAVE R5
   2790	013056	111516 				MOVB	@R5,@SP		;NO -- MUST SET IT UP FOR SST
   2791	013060	013705 	001006'			MOV	.CRTSK,R5	;FIND THE CURRENT TASK POINTER
   2792	013064	016505 	000016 			MOV	A.TD(R5),R5	;FIND STD ADDRESS
   2793	013070	016505 	000030 			MOV	S.SS(R5),R5	;FIND THE SST TABLE
   2794	013074	001403 				BEQ	5$		;NONE -- FORGET IT
   2795	013076					MFPS	T.RAPE(R5),R5	;IS THERE AN ENTRY IN THE TABLE?
	013076	016505 	000012 			MOV	T.RAPE(R5),R5
   2796	013102	001106 				BNE	.SSTET		;DO SST SERVICE
   2797
   2798	013104	012737 	000012 	001120'	5$:	MOV	#TN.EMT,TRPASV	;SAVE THE TERMINATION TYPE
   2799	013112	000513 				BR	CMNABT		;AND GO TO COMMON ABORT
   2800
   2801	013114				10$:				;REMOVE THE SAVED R0 -- NOT NEEDED NOW
   2802									;SAVE REGISTERS
   2803	013114	010446 				MOV	R4,-(SP)
   2804	013116	010346 				MOV	R3,-(SP)
   2805	013120	010246 				MOV	R2,-(SP)
   2806	013122	010146 				MOV	R1,-(SP)
   2807	013124	010046 				MOV	R0,-(SP)
   2808	013126	010637 	001116'			MOV	SP,EMTSTK	;SAVE EMT STACK POINTER
   2810	013132	016601 	000020 			MOV	EM.DRO(SP),R1	;FIND THE DIRECTIVE OR DIRECTIVE POINTER
   2816					;
   2817					;	IF R1 IS EVEN, IT IS ASSUMED TO BE A DPB POINTER
   2818					;	IF R1 IS ODD, IT IS ASSUMED TO BE THE FIRST WORD OF A DPB THAT
   2819					;	HAS BEEN PUSHED ONTO THE STACK.
   2820					;
   2821					;
   2822					;	TEST FOR ODD OR EVEN
   2823					;
   2824	013136	032701 	000001 			BIT	#1,R1
   2825	013142	001003 				BNE	20$
   2826					;
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 67-1
EXEC MODULE TWO -- SERVICE FOR "EMT" & "TRAP" INSTRUCTIONS

   2827					;	EVEN -- R1 CONTAINS A DPB POINTER (ADDRESS).
   2828					;
   2829	013144					MFPS	@R1,R2		;FIND THE FIRST DPB WORD
	013144	011102 				MOV	@R1,R2
   2830	013146	010203 				MOV	R2,R3		;FIND THE DIRECTIVE IDENTIFICATION CODE
   2831	013150	000405 				BR	30$		;EXECUTE DIRECTIVE
   2832					;
   2833					;	ODD WORD ON STACK -- DPB IS ON THE ISSUING
   2834					;	TASK'S STACK, AND R1 CONTAINS THE FIRST DPB WORD.
   2835					;
   2836					;	SET R1 TO THE DPB ADDRESS, R2 TO THE DPB SIZE (IN WORDS),
   2837					;	R3 TO THE DIRECTIVE IDENTIFICATION CODE.
   2838					;
   2839	013152	010102 			20$:	MOV	R1,R2		;SET DPB SIZE IN R2
   2840	013154	010103 				MOV	R1,R3		;SET DIRECTIVE CODE
   2841	013156	010601 				MOV	SP,R1		;FIND THE ADDRESS OF THE DPB
   2842	013160	062701 	000020 			ADD	#EM.DRO,R1	;POINT PAST SAVED STACK
   2843	013164	042703 	177400 		30$:	BIC	#177400,R3
   2844	013170	105002 				CLRB	R2
   2845	013172	000302 				SWAB	R2		;SET SIZE IN LOW ORDER
   2846					;
   2847					;	R3 CONTAINS  THE DIRECTIVE IDENTIFICATION CODE.
   2848					; THE DIC IS AN ODD QUANTITY AND SHOULD BE IN THE RANGE
   2849					;	001-127.(MAX RANGE)
   2850					;
   2851	013174	005721 				TST	(R1)+		;ADVANCE R1 TO POINT TO THE WORD FOLLOWING
   2852									;THE FIRST WORD DPB WORD.
   2853	013176	013705 	001006'			MOV	.CRTSK,R5	;SET UP CURRENT TASK POINTER
   2854	013202	022703 	000102 			CMP	#DIRMAX,R3	;CHECK TO SEE IF LEGAL DIRECTIVE
   2855	013206	103001 				BHIS	DIROK		;OK -- LEGAL RANGE
   2856	013210	104635 			DS.99:	TRAP	DE.99		;ILLEGAL DIRECTIVE
   2857	013212	000173 	013215'		DIROK:	JMP	@DIRDPT-1(R3)	;DISPATCH TO APPROPRIATE DIRECTIVE SERVICE CODE.
   2858					;
   2859	013216	022542'			DIRDPT:	.WORD	.D.QIO	;001. -- QIO
   2860	013220	022542'				.WORD	.D.QIO	;003. -- QIO AND WAIT
   2861	013222	021670'				.WORD	.D.GLI	;005. -- GET LUN INFORMATION
   2862	013224	021564'				.WORD	.D.ASS	;007. -- ASSIGN LUN
   2863	013226	020344'				.WORD	.D.DTE	;009. -- DTE20 FUNCTIONS
   2864	013230	023662'				.WORD	.D.REQ	;011. -- REQUEST
   2865	013232	023212'				.WORD	.D.SEN	;013. -- SEND
   2866	013234	023226'				.WORD	.D.SAR	;015. -- SEND AND REQUEST
   2867	013236	023460'				.WORD	.D.REC	;017. -- RECEIVE
   2868	013240	023460'				.WORD	.D.ROE	;019. -- RECEIVE OR EXIT
   2869	013242	023460'				.WORD	.D.ROS	;021. -- RECEIVE OR SUSPEND
   2870	013244	022350'				.WORD	.D.MKT	;023. -- MARK TIME
   2871	013246	023640'				.WORD	.D.PUT	;025. -- POWER UP AST
   2872	013250	022452'				.WORD	.D.CMT	;027. -- CANCEL MARK TIME REQUESTS
   2873	013252	013210'				.WORD	DS.99	; 029. -- ILLEGAL DIRECTIVE
   2874	013254	022034'				.WORD	.D.CEF	;031. -- CLEAR EVENT FLAG
   2875	013256	022052'				.WORD	.D.SEF	;033. -- SET EVENT FLAG
   2876	013260	022070'				.WORD	.D.DSE	;035. -- DECLARE SIGNIFICANT EVENT
   2877	013262	022112'				.WORD	.D.REF	;037. -- READ EVENT FLAG
   2878	013264	022126'				.WORD	.D.RAF	;039. -- READ ALL EVENT FLAGS
   2879	013266	022152'				.WORD	.D.WFS	;041. -- WAIT FOR SINGLE EVENT FLAG
   2880	013270	022230'				.WORD	.D.WFL	;043. -- WAIT FOR LOGICAL "OR" OF EVENT FLAGS
   2881	013272	013210'				.WORD	DS.99	;045. -- SUSPEND EXECUTION -- 010 REMOVED -- ILLEGAL
   2882	013274	013210'				.WORD	DS.99	;047. -- RESUME TASK EXECUTION -- 010 REMOVED -- ILLEGAL
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 67-2
EXEC MODULE TWO -- SERVICE FOR "EMT" & "TRAP" INSTRUCTIONS

   2883	013276	022336'				.WORD	.D.WSE	;049. -- WAIT FOR NEXT SIGNIFICANT EVENT
   2884	013300	022520'				.WORD	.D.EXT	;051. -- TASK EXIT
   2889	013302	013210'				.WORD	DS.99	; 053. -- ILLEGAL DIRECTIVE
   2890	013304	013210'				.WORD	DS.99	; 055. -- ILLEGAL DIRECTIVE
   2892	013306	023626'				.WORD	.D.STV	;057. -- SPECIFY SST VECTOR
   2893	013310	021720'				.WORD	.D.GTP	;059. -- GET TIME PARAMETERS
   2894	013312	013210'				.WORD	DS.99	;061. -- ILLEGAL
   2895	013314	024110'				.WORD	.D.GPP	;063. -- GET TASK PARAMETERS
   2896	013316	024232'				.WORD	.D.GMP	;065. -- GET PARTITION PARAMETERS
   2897		000102 			DIRMAX=.-DIRDPT	;LEGAL NUMBER OF DIRECTIVES
   2898					;
   2899					; .SSTET -- SST FOR TRAP AND EMT'S
   2900					;
   2901	013320				.SSTET::
   2902	013320	105066 	000001 			CLRB	1(SP)		;CLEAR HIGH BYTE
   2903	013324	006316 				ASL	@SP		;MULTIPLY BY 2
   2904	013326				.SSTCO::
   2906	013326	012746 	004000 			MOV	#004000,-(SP)	;SET PS
   2910	013332	010546 				MOV	R5,-(SP)	;SET TRAP ADDRESS
   2911	013334	013705 	001116'			MOV	EMTSTK,R5	;RESTORE R5
   2912	013340	000002 				RTI			;RETURN TO USER
   2913					;
   2914	013342	013705 	001116'		CMNABT:	MOV	EMTSTK,R5	;RESTORE R5
   2915	013346	000137 	011526'			JMP	CMNABO		;AND GO TO COMMON ABORT
   2916					;
   2917					; CONTROL IS RETUNRED TO ".DR.NS" TO EXIT DIRECTIVE SERVICE WITHOUT ALTERING
   2918					; AN ISSUING TASK'S DIRECTIVE STATUS OR CONDITION CODES.
   2919					;
   2920					; DIRECTIVE RETURN STATUSES
   2921					;
   2922		000000 			DR.00==0		;DIRECTIVE RETURN 00
   2923		000001 			DR.01==1		;DIRECTIVE RETURN 01
   2924		000002 			DR.02==2		;DIRECTIVE RETURN 02
   2925		000003 			DR.03==3		;DIRECTIVE RETURN 03
   2926					;
   2927					; DIRECTIVE ERROR RETURNS
   2928					;
   2929		000377 			DE.01==-1&377		;ERR 01
   2930		000376 			DE.02==-2&377		;ERR 02
   2931		000375 			DE.03==-3&377		;ERR 03
   2932		000374 			DE.04==-4&377		;ERR 04
   2933		000373 			DE.05==-5&377		;ERR 05
   2934		000372 			DE.06==-6&377		;ERR 06
   2935		000371 			DE.07==-7&377		;ERR 07
   2936		000370 			DE.08==-8.&377		;ERR 08
   2937		000367 			DE.09==-9.&377		;ERR 09
   2938		000366 			DE.10==-10.&377		;ERR 10
   2939		000365 			DE.11==-11.&377		;ERR 11
   2940		000260 			DE.80==-80.&377		;ERR 80
   2941		000257 			DE.81==-81.&377		;ERR 81
   2942		000246 			DE.90==-90.&377		;ERR 90
   2943		000245 			DE.91==-91.&377		;ERR 91
   2944		000244 			DE.92==-92.&377		;ERR 92
   2945		000243 			DE.93==-93.&377		;ERR 93
   2946		000242 			DE.94==-94.&377		;ERR 94
   2947		000241 			DE.95==-95.&377		;ERR 95
   2948		000240 			DE.96==-96.&377		;ERR 96
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 67-3
EXEC MODULE TWO -- SERVICE FOR "EMT" & "TRAP" INSTRUCTIONS

   2949		000237 			DE.97==-97.&377		;ERR 97
   2950		000236 			DE.98==-98.&377		;ERR 98
   2951		000235 			DE.99==-99.&377		;ERR 99
   2952					;
   2953	013352	132766 	000340 	000002 	.DRSRN::BITB	#340,2(SP)	;FROM EXEC?
   2954	013360	001025 				BNE	20$		;YES -- CONTIUE
   2955	013362	011646 				MOV	@SP,-(SP)	;PUT IT ON STACK TWICE
   2956	013364	162716 	000002 			SUB	#2,@SP
   2957	013370	117616 	000000 			MOVB	@(SP),@SP
   2958	013374	010537 	001116'			MOV	R5,EMTSTK
   2959	013400	013705 	001006'			MOV	.CRTSK,R5	;FIND THE CURRENT TASK
   2960	013404	016505 	000016 			MOV	A.TD(R5),R5	;FIND STD ADDRESS
   2961	013410	016505 	000030 			MOV	S.SS(R5),R5	;IS THERE AN SST VECTOR?
   2962	013414	001403 				BEQ	10$		;NO -- CRASH
   2963	013416					MFPS	T.RAPT(R5),R5	;FIND THE ADDRESS
	013416	016505 	000014 			MOV	T.RAPT(R5),R5
   2964	013422	001336 				BNE	.SSTET		;NONE -- CRASH
   2965	013424	012737 	000014 	001120'	10$:	MOV	#TN.TRP,TRPASV	;SET TRAP TYPE
   2966	013432	000743 				BR	CMNABT		;AND GO TO COMMON ABORT
   2967					;
   2968					;
   2969	013434	162716 	000002 		20$:	SUB	#2,@SP		;FIND THE TRAP VALUE
   2970	013440	113600 				MOVB	@(SP)+,R0
   2971	013442	100006 				BPL	DRXCOM		;BRANCH IF THE DIRECTIVE SUCCEEDED
   2972	013444	013706 	001116'		DEXCOM:	MOV	EMTSTK,SP	;RESTORE STACK FOR REGISTER SAVE
   2973	013450	052766 	000001 	000016 		BIS	#1,EM.DRO-2(SP)	;SET CC-C -2(ISSUING TASK'S PS)
   2974	013456	000405 				BR	DRXRR		;---
   2975					;
   2976	013460				.DR.NS::			;RETURN NO STATUS
   2977	013460	013706 	001116'		DRXCOM:	MOV	EMTSTK,SP	;RESTORE STACK FOR REGISTER SAVE
   2978	013464	042766 	000001 	000016 		BIC	#1,EM.DRO-2(SP)	;CLEAR CC-C -2(ISSUING TASK'S PS)
   2979	013472				DRXRR:				;-----
   2980	013472	010037 	000046 			MOV	R0,$DSW		;SAVE THE DSW
   2981	013476	012600 				MOV	(SP)+,R0	;POP (RESORE) R0
   2982	013500	012601 				MOV	(SP)+,R1	;POP (RESTORE) R1
   2983	013502	012602 				MOV	(SP)+,R2	;POP (RESTORE) R2
   2984	013504	012603 				MOV	(SP)+,R3	;POP (RESTORE) R3
   2986	013506	016604 	000010 			MOV	10(SP),R4	;FIND DPB OR DPB ADDRESS
   2991	013512	106004 				RORB	R4		;ADDRESS OR DPB?
   2992	013514	103402 				BCS	10$		;DPB -- FOUND SIZE REQ'D
   2993	013516	012704 	000400 			MOV	#400,R4		;SET UP TO POP ONLY 1 WORD
   2994	013522	105004 			10$:	CLRB	R4
   2995	013524	000304 				SWAB	R4		;PUT SIZE IN LOW ORDER
   2996	013526	006304 				ASL	R4		;MAKE +2 FOR COUNT
   2998	013530	062704 	000020 			ADD	#EM.DRO,R4	;POINT TO USER STACK LOCATION
   2999	013534	063704 	001116'			ADD	EMTSTK,R4
   3005	013540	016644 	000006 			MOV	6(SP),-(R4)	;RESET STACK
   3006	013544	016644 	000004 			MOV	4(SP),-(R4)
   3007	013550	016644 	000002 			MOV	2(SP),-(R4)
   3008	013554	011644 				MOV	@SP,-(R4)
   3009	013556	010406 				MOV	R4,SP		;SET STACK POINTER
   3010					;
   3011					; A DIRECTIVE HAS BEEN PROCESSED -- IF A TASK IS CURRENT (THE ISSUING
   3012					; TASK) ITS PS, PC, R5, & R4 ARE ON THE KERNEL STACK, AND '.CRTSK' POINTS
   3013					; TO THE ATL NODE OF THAT TASK.  IF A TASK IS NOT CURRENT (ISSUING
   3014					; TASK EXIT'ED), '.CRTSK' IS SET TO ZERO.
   3015					;
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 67-4
EXEC MODULE TWO -- SERVICE FOR "EMT" & "TRAP" INSTRUCTIONS

   3016					; R0 CONTAINS THE ADDRESS OF THE NEXT ATL NODE TO BE EXAMINED.
   3017					;
   3018	013560	032766 	000340 	000006 		BIT	#PRI7,+6(SP)	;IS PROCESSOR PRIORITY OF DIRECTIVE ISSUING TASK ZERO?
   3019	013566	001403 				BEQ	20$		;YES -- SCAN ATL FROM ENTRY POINTED TO BY R5.
   3020	013570	012604 				MOV	(SP)+,R4	;NO -- TASK SWITCHING HAS BEEN INHIBITED BY ISSUING TASK,
   3021	013572	012605 				MOV	(SP)+,R5	;RESTORE R4, R5, PC, & PS, AND RETURN TO ISSUING TASK.
   3022	013574	000002 				RTI			;(PRIORITY IS ZEROED IF TASK EXIT'ED.)
   3023					;
   3024					; TRANSFER CONTROL TO THE SCAN ATL ROUTINE AT PRIORITY TWO,
   3025					; PREVIOUS MODE: USER, CURRENT MODE: KERNEL, AND CC'S ZERO.
   3026					;
   3027	013576	012746 	034100 		20$:	MOV	#034100+STXAS,-(SP)
   3028	013602	012746 	013624'			MOV	#ASXE2,-(SP)
   3029	013606	000002 				RTI
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 68
EXEC MODULE THREE -- SCAN OF ACTIVE TASK LIST

   3031						.SBTTL	EXEC MODULE THREE -- SCAN OF ACTIVE TASK LIST
   3032					;+
   3033					; THE ACTIVE TASK LIST (ATL) IS A PRIORITY ORDERED LIST OF TASKS THAT
   3034					; HAVE BEEN ASSIGNED MEMORY SPACE FOR EXECUTION, AND HAVE NOT EXIT'ED.
   3035					;
   3036					; THE SYSTEM IS DRIVEN BY SCANNING THE ATL FROM THE TOP (HIGH PRIORITY)
   3037					; WHETHER A TASK IS CAPABLE OF EXECUTION IS INDICATED BY THE 'A.TS'TH
   3038					; BYTE OF EACH ATL NODE (ENTRY).
   3039					;
   3040					; THE ATL IS SCANNED DOWNWARD FROM A TASK WHENEVER THAT TASK VOLUNTARILY
   3041					; STOPS EXECUTION (VIZ., WAITFOR, EXIT) AND A SIGNIFICANT
   3042					; EVENT HAS NOT BEEN DECLARED.
   3043					;
   3044					; SIGNIFICANT EVENTS ARE DECLARED BY TASKS (PRI=0) VIA SYSTEM DIRECTIVES,
   3045					; AND BY INTERRUPT SERVICE ROUTINES (PRI 4,5,6,7) VIA SYSTEM SUBROUTINES.
   3046					; A DECLARATION OF A SIGNIFICANT EVENT IS INDICATED BY THE SOFTWARE FLAG
   3047					; (BYTE) '.SERFG+0'.
   3048					;
   3049					; CONTROL IS TRANSFERRED TO THE ATL SCAN ROUTINE UNDER TWO CONDITIONS:
   3050					; (1) WHEN CONTROL IS RETURNED TO A TASK (PRI 0) VIA THE "COMMON RETURN TO
   3051					; INTERRUPTED PROGRAM" AND A SIGNIFICANT EVENT HAS BEEN DECLARED (NON-ZERO
   3052					; '.SERFG+0'), AND (2) WHEN CONTROL IS RETURNED FROM A DIRECTIVE SERVICE
   3053					; ROUTINE.
   3054					;
   3055					; THERE ARE TWO ENTRY POINTS TO THE ATL SCAN ROUTINE:
   3056					; ASXE1 -- TO SCAN THE ATL DOWNWARD FROM THE TOP.  I.E., TO EFFECT A
   3057					; DECLARATION OF A SIGNIFICANT EVENT.
   3058					;
   3059					; CONTROL IS TRANSFERRED TO 'ASXE1' FROM THE 'COMMON RETURN TO INTERRUPTED
   3060					; PROGRAM', OR FROM ATL SCAN TASK STATUS SERVICE, WHENEVER A SIGNIFICANT
   3061					; EVENT DECLARATION IS TO BE EFFECTED.
   3062					;
   3063					; ASXE2 -- TO SERVICE THE STATUS OF THE TASK WHOSE ATL NODE ADDRESS
   3064					; IS IN R5, AND THEN TO EITHER: (1) RETURN CONTROL TO THAT TASK,
   3065					; (2) SCAN THE ATL FROM THAT TASK THRU LOWER PRIORITY TASKS, OR
   3066					; (3) TO SCAN THE ATL FROM THE TOP.
   3067					;
   3068					; CONTROL IS TRANSFERRED TO 'ASXE2' FROM THE COMMON EXIT FOR DIRECTIVE
   3069					; (EMT 375) SERVICE CODE.
   3070					;
   3071					; IF A SIGNIFICANT EVENT HAS BEEN DECLARED (EITHER COINCIDENTLY OR AS
   3072					; A RESULT OF DIRECTIVE EXECUTION) CONTROL IS TRANSFERRED TO 'ASXE1'.
   3073					; HOWEVER, THE DECISION TO TRANSFER TO 'ASXE1' IS NOT MADE UNTIL THE
   3074					; "TASK STATUS SERVICE" FOR THE DIRECTIVE ISSUING TASK HAS BEEN PERFORMED.
   3075					;
   3076					; WHENEVER CONTROL IS TRANSFERRED TO THE ATL SCAN ROUTINE AND A TASK IS
   3077					; CURRENT, THE PS, PC, R5, & R4 OF THE CURRENT TASK  HAVE BEEN PUSHED
   3078					; ONTO THE  STACK.
   3079					;-
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 69
EXEC MODULE THREE -- SCAN OF ACTIVE TASK LIST

   3081	013610	142737 	000001 	001014'	ASXE1::	BICB	#EV.SE,.SERFG+0	;CLEAR SIGNIFICANT EVENT FLAG, AND SET
   3082	013616	012705 	007106'			MOV	#.ATLLH,R5	;R5 TO THE ADDRESS OF THE FIRST ATL NODE.
   3083									;DISPATCH PER TASK STATUS
   3084					;
   3085					; SCAN LOOP -- AFTER PROCESSING AN ATL ENTRY, CONTROL IS TRANSFERRED EITHER:
   3086					; (1) TO 'ASXSCN' TO PROCESS THE NEXT ATL NODE, OR (2) TO 'ASXTE' TO
   3087					; TERMINATE THE ATL SCAN (A RUNABLE TASK HAS BEEN FOUND).
   3088					;
   3089					; CONTROL IS TRANSFERRED HERE FROM A ATL SCAN SERVICE ROUTINE, WITH THE
   3090					;  STACK AND R5 UNCHANGED FROM THE DISPATCH TO THAT SERVICE ROUTINE.
   3091					;
   3092	013622	011505 			ASXSCN:	MOV	@R5,R5		;ADVANCE R5 TO THE NEXT ATL NODE,
   3093	013624	116504 	000014 		ASXE2:	MOVB	A.TS(R5),R4	;DISPATCH PER ACTIVE TASK STATUS, WITH
   3094	013630	000174 	013632'			JMP	@ASXDT-02(R4)	;R0 = ATL NODE ADR & R4 = STATUS.
   3095					;
   3096	013634				ASXDT:		;STATUS DEFINITIONS & DISPATCH ADDRESS TABLE.
   3097							;
   3098							;THE DISPATCH ROUTINE AT 'ASXE2' EXPECTS THE DISPATCH TABLE
   3099							;TO BEGIN WITH STATUS "02" AND INCREASE SEQUENTIALLY BY TWOS.
   3100							;
   3101					;
   3102		000002 			TS.LRQ==02	;TASK LOAD REQEUST QUEUED
   3103	013634	014032'				ASXLRQ
   3104		000004 			TS.TKN==04	;TASK WAITING FOR TERMINATION NOTICE
   3105	013636	013622'				ASXSCN
   3106		000006 			TS.LRF==06	;TASK LOAD REQUEST FAILED
   3107	013640	013774'				ASXLRF
   3108		000010 			TS.RUN==10	;** TASK IS RUNNING
   3109	013642	014442'				ASXTE
   3110		000012 			TS.SUS==12	;** TASK IS SUSPENDED
   3111	013644	013622'				ASXSCN
   3112		000014 			TS.WF0==14	;** TASK WAITING FOR AN EVENT FLAG 1-14
   3113							;** ('TS.WF0'-'TS.WS4' ARE EXPECTED IN SEQUENCE
   3114							;** BY THE WAITFOR DIRECTIVES.)
   3115	013646	013662'				ASXWR0
   3116		000016 			TS.WF1==16	;** TASK WAITING FOR AN EVENT FLAG 17-32
   3117	013650	013672'				ASXWR1
   3118		000020 			TS.WF2==20	;** TASK WAITING FOR AN EVENT FLAG 33-48
   3119	013652	013702'				ASXWR2
   3120		000022 			TS.WF3==22	;** TASK WAITING FOR AN EVENT FLAG 49-64
   3121	013654	013712'				ASXWR3
   3122		000024 			TS.WF4==24	;** TASK WAITING FOR AN EVENT FLAG 1-64
   3123	013656	013722'				ASXWR4
   3124		000026 			TS.EXT==26	;TASK EXITED
   3125	013660	014150'				ASXEXT
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 70
EXEC MODULE THREE -- SCAN OF ACTIVE TASK LIST

   3127					;
   3128					; SERVICE FOR "WAITFOR" TASK STATUSES
   3129					;
   3130					; A TASK (THE TASK WHOSE ATL NODE IS POINTED TO BY R5) HAS ISSUED A
   3131					; WAITFOR DIRECTIVE.  IF ANY INDICATED EVENT FLAG IS SET, CHANGE TASK'S
   3132					; TO "RUNNING", AND TERMINATE ATL SCAN TO RUN THE TASK.
   3133					;
   3134					; TASK IS WAITING FOR INDICATED FLAG(S) IN RANGE ZERO (FLAGS 1-16)
   3135					;
   3136	013662	036565 	000024 	000020 	ASXWR0:	BIT	A.FM+0(R5),A.EF+0(R5)
   3137	013670	000433 				BR	ASXCMN
   3138					;
   3139					; TASK IS WAITING FOR INDICATED FLAG(S) IN RANGE ONE (FLAGS 17-32)
   3140					;
   3141	013672	036565 	000024 	000022 	ASXWR1:	BIT	A.FM+0(R5),A.EF+2(R5)
   3142	013700	000427 				BR	ASXCMN
   3143					;
   3144					; TASK IS WAITING FOR INDICATED FLAG(S) IN RANGE TWO (FLAGS 33-48)
   3145					;
   3146	013702	036537 	000024 	001010'	ASXWR2:	BIT	A.FM+0(R5),.COMEF+0
   3147	013710	000423 				BR	ASXCMN
   3148					;
   3149					; TASK IS WAITING FOR INDICATED FLAG(S) IN RANGE THREE (FLAGS 49-64)
   3150					;
   3151	013712	036537 	000024 	001012'	ASXWR3:	BIT	A.FM+0(R5),.COMEF+2
   3152	013720	000417 				BR	ASXCMN
   3153					;
   3154					; TASK IS WAITING FOR INDICATED FLAG(S) IN RANGE FOUR (FLAGS 1-64)
   3155					;
   3156	013722	036565 	000024 	000020 	ASXWR4:	BIT	A.FM+0(R5),A.EF+0(R5)
   3157	013730	001014 				BNE	WFXSET
   3158	013732	036565 	000026 	000022 		BIT	A.FM+2(R5),A.EF+2(R5)
   3159	013740	001010 				BNE	WFXSET
   3160	013742	036537 	000030 	001010'		BIT	A.FM+4(R5),.COMEF+0
   3161	013750	001004 				BNE	WFXSET
   3162	013752	036537 	000032 	001012'		BIT	A.FM+6(R5),.COMEF+2
   3163	013760	001720 			ASXCMN:	BEQ	ASXSCN
   3164	013762				WFXSET:
   3165	013762	112765 	000010 	000014 		MOVB	#TS.RUN,A.TS(R5)
   3166	013770	000137 	014442'			JMP	ASXTE
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 71
EXEC MODULE THREE -- SCAN OF ACTIVE TASK LIST

   3168					;
   3169					; SERVICE FOR TASK STATUS: LOAD REQUEST FAILED
   3170					;
   3171	013774	012765 	000040 	000024 	ASXLRF:	MOV	#TN.LRF,A.FM+0(R5) ;SET LOAD REQUEST FAILURE
   3172	014002	112765 	000004 	000014 		MOVB	#TS.TKN,A.TS(R5) ;SET TERMINATION NOTICE REQUESTED
   3173	014010	005237 	001124'			INC	.TKTN		;REQUEST TASK TERMINATION
   3174	014014	026527 	000006 	007772'		CMP	A.PD(R5),#F11TPD ;F11  TPD PARTITION?
   3175	014022	001300 				BNE	ASXE2		;NO -- CONTINUE
   3176	014024					.CRASH	LRF		;LOAD REQUEST FAILURE
	014024	000004 				IOT
	014026	   114 	   122 	   106 		.ASCIZ	/LRF/
	014031	   000
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 72
EXEC MODULE THREE -- SCAN OF ACTIVE TASK LIST

   3178					;
   3179					; SERVICE FOR TASK REQUEST QUEUE'D SERVICE
   3180					;
   3181	014032	006265 	000020 		ASXLRQ:	ASR	A.EF+0(R5)	;CHECK FOR REQUEST TO LOAD DONE
   3182	014036	103271 				BCC	ASXSCN		;NO -- CONTINUE TO WAIT
   3183	014040	105765 	000030 			TSTB	A.FM+4(R5)	;DID THE I/O SUCCEED?
   3184	014044	100753 				BMI	ASXLRF		;NO -- COMPLAIN
   3185	014046	112765 	000010 	000014 		MOVB	#TS.RUN,A.TS(R5) ;SET THE TASK STATUS TO RUNNING
   3186	014054	016504 	000012 			MOV	A.HA(R5),R4	;FIND THE HEADER ADDRESS
   3193	014060	016446 	000106 			MOV	H.TKVA(R4),-(SP) ;SAVE THE SST ADDRESS
   3194	014064	016446 	000076 			MOV	H.IPC(R4),-(SP)	;SAVE INITIAL PC
   3195	014070	016446 	000074 			MOV	H.IPS(R4),-(SP)	;SAVE INITIAL PS
   3196	014074	016446 	000130 			MOV	H.LUT(R4),-(SP)	;FIND OVERLAY LUN
   3197	014100	006316 				ASL	@SP		;MAKE OFFSET
   3198	014102	006316 				ASL	@SP
   3199	014104	062716 	000126 			ADD	#H.LUT-2,@SP	;POINT TO START OF LUT
   3200	014110	060416 				ADD	R4,@SP		;POINT TO CORRECT LUT
   3201	014112	016536 	000022 			MOV	A.EF+2(R5),@(SP)+ ;SET LUT
   3202	014116	016404 	000100 			MOV	H.ISP(R4),R4	;FIND INITIAL STACK
   3203	014122	012644 				MOV	(SP)+,-(R4)	;STORE THE PS
   3204	014124	012644 				MOV	(SP)+,-(R4)	;STORE THE PC
   3205	014126	162704 	000014 			SUB	#14,R4		;INCLUDE REGISTER SAVE
   3206	014132	010465 	000004 			MOV	R4,A.SP(R5)	;SET STACK VALUE
   3207	014136	016504 	000016 			MOV	A.TD(R5),R4	;FIND THE STD ADDRESS
   3208	014142	012664 	000030 			MOV	(SP)+,S.SS(R4)	;SET SST ADDRESS
   3209	014146	000535 				BR	ASXTE		;GO TO START THE TASK
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 73
EXEC MODULE THREE -- SCAN OF ACTIVE TASK LIST

   3211					;
   3212					; SERVICE FOR TASK STATUS: EXIT
   3213					;
   3214	014150	010446 			ASXEXT:	MOV	R4,-(SP)
   3215	014152	010346 				MOV	R3,-(SP)
   3216	014154	010246 				MOV	R2,-(SP)
   3217	014156	010146 				MOV	R1,-(SP)
   3218	014160	010046 				MOV	R0,-(SP)
   3219	014162	016502 	000016 			MOV	A.TD(R5),R2	;FIND THE STD ADDRESS
   3220	014166	016500 	000006 			MOV	A.PD(R5),R0	;FIND THE TPD ADDRESS
   3221	014172	042762 	000001 	000006 		BIC	#SF.TA,S.FW(R2)	;CLEAR ACTIVE FLAG IN STD
   3222	014200				10$:
   3223	014200	032762 	000002 	000006 		BIT	#SF.FX,S.FW(R2)	;CHECK TO SEE IF TASK FIXED
   3224	014206	001003 				BNE	20$		;YES -- DON'T FREE CORE
   3225					;
   3226					;
   3227					; FREE MEMORY (AND POSSIBLY START TASK WAITING FOR MEMORY) AND RETURN
   3228					; ATL NODE TO POOL.
   3229					;
   3230	014210	042760 	000002 	000010 		BIC	#TF.OU,T.FW(R0) ;RELEASE PARTITION
   3231					;
   3232					;
   3233	014216	010504 			20$:	MOV	R5,R4		;POINT R5 TO THE NEXT LOWEST PRIORITY TASK'S
   3234	014220	010501 				MOV	R5,R1		;ATL NODE, DELETE NODE FROM ATL, AND RETURN
   3235	014222	011505 				MOV	@R5,R5		;IT TO THE POOL.
   3236	014224					CALL	..NDEL
	014224	004737 	044062'			JSR	PC,..NDEL
   3237	014230	012704 	001424'			MOV	#.POLLH,R4	;RETURN THE NODE TO THE POOL
   3238	014234					CALL	..NADD
	014234	004737 	044176'			JSR	PC,..NADD
   3239	014240	032762 	000004 	000006 		BIT	#SF.EX,S.FW(R2)	;HAS THE TASK BEEN REQUESTED TO EXIT?
   3240	014246	001426 				BEQ	50$		;NO -- JUST CONTINUE
   3241	014250	010046 				MOV	R0,-(SP)	;SAVE R0 (TPD ADDRESS)
   3242	014252	013700 	006334'			MOV	.STDTA,R0	;FIND THE HEAD OF THE STD LIST
   3243	014256	013703 	006340'			MOV	.STDTZ,R3	;FIND THE SIZE OF THE LIST
   3244	014262	162737 	000002 	006340'		SUB	#2,.STDTZ	;RESET THE SIZE FOR NOW IT IS SMALLER
   3245	014270	006203 				ASR	R3		;DIVIDE BY 2
   3246	014272	005203 				INC	R3		;MAKE 1 LARGER BECAUSE IT IS 2*N-2
   3247	014274	020210 			30$:	CMP	R2,@R0		;THE CORRECT ENTRY?
   3248	014276	001403 				BEQ	40$		;YES -- FOUND IT
   3249	014300	005720 				TST	(R0)+		;NO -- CONTINUE SEARCH
   3250	014302	005303 				DEC	R3		;CONTINUE SCAN
   3251	014304	000773 				BR	30$
   3252					;
   3253	014306	016020 	000002 		40$:	MOV	2(R0),(R0)+	;MOVE ENTRIES BACK
   3254	014312	077303 				SOB	R3,40$		;UNTIL DONE
   3255	014314	010201 				MOV	R2,R1		;RETURN NODE TO POOL
   3256									;NOTE -- R4 STILL POINTS TO .POLLH
   3257									;FROM ABOVE RETURN OF ATL!!!!!
   3258	014316					CALL	..NADD		;RETURN NODE
	014316	004737 	044176'			JSR	PC,..NADD
   3259	014322	012600 				MOV	(SP)+,R0	;RESTORE R0
   3260	014324	032760 	000002 	000010 	50$:	BIT	#TF.OU,T.FW(R0)	;CHECK FOR PARTITION OCCUPIED
   3261	014332	001025 				BNE	60$		;YES -- DON'T TRY TO START TASK
   3262	014334	010004 				MOV	R0,R4		;SET UP TO PICL A NODE FROM MRL
   3263	014336	062704 	000014 			ADD	#T.RF,R4	;POINT TO MRL
   3264	014342					CALL	..PICK		;PICK NODE
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 73-1
EXEC MODULE THREE -- SCAN OF ACTIVE TASK LIST

	014342	004737 	044240'			JSR	PC,..PICK
   3265	014346	103417 				BCS	60$		;NONE FOUND -- DON'T ATTEMPT TO START
   3266	014350	010401 				MOV	R4,R1		;SAVE THE NODE ADDRESS FOUND
   3267	014352	022424 				CMP	(R4)+,(R4)+	;POINT TO THE ENTRIES IN THE NDOE
   3268	014354	012402 				MOV	(R4)+,R2	;SET UP TO CALL .REQS
   3269	014356	012403 				MOV	(R4)+,R3
   3270	014360	012446 				MOV	(R4)+,-(SP)	;PUSH PRI
   3271	014362	012704 	001424'			MOV	#.POLLH,R4	;RETURN THE NODE TO THE POOL
   3272	014366					CALL	..NADD		;RETURN NODE
	014366	004737 	044176'			JSR	PC,..NADD
   3273	014372	012604 				MOV	(SP)+,R4	;GET THE PRIORITY
   3274	014374	042762 	000001 	000006 		BIC	#SF.TA,S.FW(R2) ;CLEAR TASK ACTIVE FLAGS
   3275	014402					CALL	.REQS		;REQUEST THE TASK
	014402	004737 	015046'			JSR	PC,.REQS
   3276					;
   3277	014406	012600 			60$:	MOV	(SP)+,R0	;POP (RESTORE) R0,R2,R1
   3278	014410	012601 				MOV	(SP)+,R1
   3279	014412	012602 				MOV	(SP)+,R2
   3280	014414	012603 				MOV	(SP)+,R3
   3281	014416	012604 				MOV	(SP)+,R4
   3282					;
   3283					; IF EXITING TASK IS NOT "CURRENT", ITS CONTEXT IS STORED IN ITS STACK.
   3284					; IF EXITING TASK IS "CURRENT", ITS PS, PC, R5, & R4 ARE STORED ON THE
   3285					;  STACK AND THE REMAINDER OF ITS CONTEXT IS LOADED.
   3286					;
   3287					; R1 CONTAINS THE ADDRESS OF THE ATL NODE (WHICH HAS BEEN RETURNED TO THE
   3288					; POOL) OF THE EXITING TASK.
   3289					;
   3290	014420	020537 	001006'			CMP	R5,.CRTSK	;IF EXITING TASK IS "CURRENT", REMOVE (POP)
   3291	014424	001004 				BNE	70$		;ITS R4, R5, PC, & PS FROM THE  STACK
   3292	014426	062706 	000010 			ADD	#8.,SP		;(POP)
   3293	014432	005037 	001006'			CLR	.CRTSK
   3294	014436				70$:
   3295	014436	000137 	013624'			JMP	ASXE2		;DISPATCH PER STATUS OF TASK POINTED TO BY R5.
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 74
EXEC MODULE THREE -- SCAN OF ACTIVE TASK LIST

   3297					;
   3298					; TERMINATION OF ATL SCAN -- A TASK THAT CAN BE RUN HAS BEEN FOUND
   3299					;
   3300					; CONTROL IS TRANSFERRED HERE WITH THE PS, PC, R5, & R4 OF THE CURRENT
   3301					; TASK PUSHED ONTO THE  STACK.
   3302					;
   3303					; CONTROL IS TRANSFERRED HERE EITHER BY DIRECT DISPATCH, OR FROM AN ATL
   3304					; SCAN SERVICE ROUTINE.  IN EITHER CASE, THE  STACK AND R5 ARE
   3305					; UNCHANGED FROM THE LAST ATL SCAN DISPATCH.
   3306	014442	020537 	001006'		ASXTE:	CMP	R5,.CRTSK	;IS CONTROL RETURNING TO CURRENT TASK?
   3307	014446	001461 				BEQ	CSDONE		;YES -- RESTORE R5, R4, PS, & PC FROM STACK
   3308	014450	132737 	000001 	001014'		BITB	#EV.SE,.SERFG+0	;NO -- HAS A SIGNIFICANT EVENT OCCURRED?
   3309	014456	001402 				BEQ	10$
   3310	014460	000137 	013610'			JMP	ASXE1		;YES -- RESTART ATL SCAN
   3311
   3312	014464	112737 	000340 	177776 	10$:	MOVB	#340,@#PS	;INHIBIT INTERRUPTS WHILE CONTEXT SWITCHING
   3313	014472	013704 	001006'			MOV	.CRTSK,R4	;NO -- IS THERE A CURRENT TASK?
   3314	014476	001420 				BEQ	40$		;NO -- (CURRENT TASK EXITED) NO CONTEXT TO SAVE
   3315									;YES -- SAVE CONTEXT OF OLD CURRENT TASK, AND
   3316									;LOAD CONTEXT OF NEW CURRENT TASK.
   3317
   3319	014500	010346 				MOV	R3,-(SP)	;PUSH R3
   3320	014502	010246 				MOV	R2,-(SP)	;PUSH R2
   3321	014504	010146 				MOV	R1,-(SP)	;PUSH R1
   3322	014506	010046 				MOV	R0,-(SP)	;PUSH R0
   3323	014510	016400 	000012 			MOV	A.HA(R4),R0	;FIND THE HEADER ADDRESS
   3330	014514	062700 	000046 			ADD	#H.DSW,R0	;POINT TO DSW
   3331	014520	012701 	000046 			MOV	#$DSW,R1	;POINT TO DSW
   3332	014524	012120 				MOV	(R1)+,(R0)+	;SAVE THE CONTEXT OF LOW CORE
   3333	014526	012120 				MOV	(R1)+,(R0)+
   3334	014530	012120 				MOV	(R1)+,(R0)+
   3335	014532	011110 				MOV	@R1,@R0
   3336	014534	010664 	000004 			MOV	SP,A.SP(R4)	;SAVE OLD PS
   3337	014540	016506 	000004 		40$:	MOV	A.SP(R5),SP	;SET UP NEW STACK
   3338	014544	016500 	000012 			MOV	A.HA(R5),R0	;RESTORE CONTEXT
   3345	014550	062700 	000054 			ADD	#H.DSW+6,R0	;POINT TO DSW SAVE
   3346	014554	012701 	000054 			MOV	#$DSW+6,R1
   3347	014560	011011 				MOV	@R0,@R1
   3348	014562	014041 				MOV	-(R0),-(R1)
   3349	014564	014041 				MOV	-(R0),-(R1)
   3350	014566	014041 				MOV	-(R0),-(R1)
   3351	014570	012600 				MOV	(SP)+,R0	;RESTORE REGISTERS FROM THE IS TASK
   3352	014572	012601 				MOV	(SP)+,R1
   3353	014574	012602 				MOV	(SP)+,R2
   3354	014576	012603 				MOV	(SP)+,R3
   3356
   3393
   3394	014600	010537 	001006'			MOV	R5,.CRTSK	;SET NEW '.CRTSK' (ATL NODE ADR OF CURRENT TASK).
   3395	014604	142737 	000300 	177776 		BICB	#300,@#PS	;LOWER TO PRI 1 AFTER CONTEXT SWITCH
   3396
   3397	014612				CSDONE:		;CONTEXT SWITCH (IF REQUIRED) IS DONE.
   3399	014612	052766 	004000 	000006 		BIS	#4000,6(SP)	;SET REG SET 1
   3400	014620	042766 	170000 	000006 		BIC	#170000,6(SP)	;CLEAR OFF MODE BITS
   3402					;
   3403					; A TASK'S PS, PC, R5, & R4 ARE ON THE  STACK, AND THE TASK'S ATL
   3404					; NODE ADDRESS IS IN R5.  I.E., CONDITIONS ARE CORRECT FOR AN ATL SCAN
   3405					;
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 74-1
EXEC MODULE THREE -- SCAN OF ACTIVE TASK LIST

   3406					;
   3407					; IF THE TASK'S STATUS IS "RUNNING", CONTROL IS RETURNED TO THE TASK
   3408					; (UNLESS A SIGNIFICANT EVENT HAS BEEN DECLARED, IN WHICH CASE, CONTROL
   3409					; WILL BE RETURNED LATER).
   3410					;
   3411					;
   3412	014626	012604 				MOV	(SP)+,R4	;POP (RESTORE) R4
   3413	014630	012605 				MOV	(SP)+,R5	;POP (RESTORE) R5
   3414					;
   3415					; TRANSFER CONTROL TO TASK VIA COMMON "RETURN TO INTERRUPTED PROGRAM"
   3416					; ROUTINE (CLOCK AND/OR EVENT RECOGNITION MAY CAUSE ACTUAL TRANSFER TO
   3417					; OCCUR LATER IN REAL TIME).
   3418					;
   3419					;	BR	..INTX
   3420						;
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 75
EXEC MODULE NINE -- COMMON RETURN TO INTERRUPTED PROGRAM

   3422						.SBTTL	EXEC MODULE NINE -- COMMON RETURN TO INTERRUPTED PROGRAM
   3423					;
   3424					; MOST INTERRUPT SERVICE ROUTINES ARE CONTAINED WITHIN I/O HANDLER TASKS
   3425					; CONTROL IS TRANSFERRED TO A TASK CONTAINED INTERRUPT SERVICE ROUTINE,
   3426					; WHEN THE INTERRUPT SERVICE ROUTINE WAS "CONNECTED" TO THE INTERRUPT.
   3427					;
   3428					; CONTROL IS TRANSFERRED TO A TASK CONTAINED INTERRUPT SERVICE ROUTINE
   3429					; WITH THE INTERRUPTED PROGRAM'S PS & PC,
   3430					;
   3431					; ALL TASK CONTAINED INTERRUPT SERVICE ROUTINES EXIT VIA "JMP ..INTX" WITH
   3432					; PS & PC OF THE INTERRUPTED PROGRAM
   3433					;
   3434					; THE '..INTX' ROUTINE  EFFECTS A RETURN OF CONTROL
   3435					; TO THE INTERRUPTED PROGRAM.
   3436					;
   3437					; WITH THE PS & PC OF THE INTERRUPTED PROGRAM ON THE  STACK.
   3438					;
   3439					; THE 'EXINTX' ROUTINE EFFECTS A RETURN TO THE INTERRUPTED PROGRAM.
   3440					;
   3441					; WHENEVER CONTROL IS RETURNED TO OTHER THAN A TASK (NON-ZERO PRI),
   3442					; CONTROL IS TRANSFERRED DIRECTLY TO THE INTERRUPTED PROGRAM.  HOWEVER,
   3443					; WHEN CONTROL IS BEING RETURNED TO A TASK (PRI=0), THE "SYSTEM
   3444					; EVENT RECOGNITION FLAG" IN THE SYSTEM COMMUNICANTIONS AREA (SCOM) IS
   3445					; EXAMINED, AND IF FOUND NON-ZERO, THE INDICATED EVENTS ARE RECOGNIZED
   3446					; BEFORE CONTROL IS RETURNED TO THE INTERRUPTED TASK.
   3447					;
   3448
   3449	014632				..INTX::			;NORMAL ISR EXIT
   3450	014632	052737 	000340 	177776 		BIS	#000340,@#PS	;;;INHIBIT INTERRUPTS (RAISE PRIORITY TO 7)
   3451	014640	032766 	000340 	000002 		BIT	#000340,+2(SP)	;;;IS CONTROL RETURNING TO A TASK (PRI=0)?
   3452	014646	001010 				BNE	CRTNXA		;;;YES -- EXAMINE SYSTEM EVENT RECOGNITION FLAG
   3453
   3454	014650	005737 	001026'			TST	.PFAIL		;;;POWER FAIL SERVICE?
   3455	014654	001402 				BEQ	CRTNX1		;;;NO -- JUST RETURN
   3456	014656	000137 	017574'			JMP	.PWRDN		;;;YES -- POWER DOWN
   3457
   3458	014662	005737 	001014'		CRTNX1:	TST	.SERFG		;;;** ANY UNRECOGNIZED "SYSTEM EVENTS"?
   3459	014666	001001 				BNE	CRTNX3		;;;** YES -- TRANSFER CONTROL TO APPROPRIATE
   3460									;;;** EVENT RECOGNITON ROUTINE.
   3461	014670				CRTNXA:
   3462					;	CMP	.DBRTT,SP	;;;** ## NO -- IS CONTROL RETURNING FROM SYSTEM
   3463					;	BNE	10$		;;;** ## TRACE DEBUGGING ROUTINE?
   3464					;	CLR	.DBRTT		;;;** ## YES -- RETURN VIA "RTT" INSTEAD OF "RTI"
   3465					;	RTT			;;;** ##
   3466	014670				10$:				;;;** ##
   3467	014670	000002 			CRTNX2:	RTI			;;;** NO -- RETURN CONTROL TO TASK
   3468
   3469									;** A RACE CONDITION EXISTS WHENEVER A
   3470									;POWER FAILURE OCCURS WHILE EXECUTING
   3471									;BETWEEN 'CRTNX1' AND 'CRTNX2'.  TO
   3472									;AVOID THIS CONDITION, THE POWER FAIL
   3473									;TRAP SERVICE ROUTINE SETS THE PC TO
   3474									;'CRTNX1' WHENEVER IT INTERRUPTS EXECUTION
   3475									;IN THE RANGE 'CRTNX1' THRU 'CRTNX2'.
   3476					;
   3477					; A SYSTEM EVENT IS TO BE RECOGNIZED (NON-ZERO '.SERFG'), CONTROL IS
   3478					; TRANSFERRED TO SERVICE ROUTINE PER '.SERFG'
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 75-1
EXEC MODULE NINE -- COMMON RETURN TO INTERRUPTED PROGRAM

   3479					;   PRI=2, CONDITION CODES CLEARED, AND THE
   3480					; INTERRUPTED TASK'S PS, PC, R5 & R4 PUSHED ONTO THE  STACK.
   3481					;
   3482	014672	010546 			CRTNX3:	MOV	R5,-(SP)	;;;PUSH R5
   3483	014674	010446 				MOV	R4,-(SP)	;;;PUSH R4
   3484
   3485	014676	012746 	034100 			MOV	#034100,-(SP)
   3486	014702	105737 	001015'			TSTB	.SERFG+1	;;;UN-RECOGNIZED CLOCK TICK(S)?
   3487	014706	001403 				BEQ	10$		;;;
   3488						 			;;;YES -- RECOGNIZE CLOCK TICKS (NORMALLY
   3489	014710	012746 	024364'			MOV	#.TICK,-(SP)	;;;ONLY ONE)
   3490	014714	000002 				RTI			;;;
   3491	014716	132737 	000201 	001014'	10$:	BITB	#EV.SE!EV.PF,.SERFG+0	;;;NO -- SIGNIFICANT EVENT RECOGNITION?
   3492	014724	100437 				BMI	60$			;;;OR POWER FAIL
   3493	014726	001403 				BEQ	30$		;;;
   3494						 			;;;YES -- SCAN ATL FROM THE TOP
   3495	014730	012746 	013610'		20$:	MOV	#ASXE1,-(SP)	;;;
   3496	014734	000002 				RTI			;;;
   3497
   3498	014736	132737 	000002 	001014'	30$:	BITB	#EV.AS,.SERFG+0	;;;AST?
   3499	014744	001435 				BEQ	70$		;;;YIPES -- GOOFED AND SYSTEM BROKEN
   3500	014746	010316 				MOV	R3,@SP		;;;SAVE CONTEXT
   3501	014750	010246 				MOV	R2,-(SP)
   3502	014752	010146 				MOV	R1,-(SP)
   3503	014754	010046 				MOV	R0,-(SP)
   3507	014756	012746 	004000 			MOV	#004000,-(SP)
   3509	014762	013746 	001050'			MOV	.CKASS,-(SP)	;;;SET AST ADDRESS
   3510	014766	001411 				BEQ	50$		;;;NOT THIS TYPE
   3511	014770	005037 	001050'			CLR	.CKASS		;;;CLEAR THIS FOR NEXT TIME
   3512	014774	005737 	001052'			TST	.PFASS		;;;POWER FAIL ALSO?
   3513	015000	001334 				BNE	CRTNX3		;;;YES -- BETTER DO IT TOO
   3514	015002	142737 	000002 	001014'	40$:	BICB	#EV.AS,.SERFG+0	;;;CLEAR THIS FLAG
   3515	015010	000002 				RTI			;;;RETURN TO USER
   3516
   3517	015012	013716 	001052'		50$:	MOV	.PFASS,@SP	;;;SET UP POWER FAIL AST
   3518	015016	005037 	001052'			CLR	.PFASS		;;;CLEAR POWER FAIL AST ADDRESS
   3519	015022	000767 				BR	40$		;;;AND RETURN TO USER
   3520
   3521	015024	142737 	000200 	001014'	60$:	BICB	#EV.PF,.SERFG+0	;;;CLEAR POWER FAIL FLAG
   3522	015032					CALL	.PFRST		;;;POWER FAIL RESTART
	015032	004737 	020126'			JSR	PC,.PFRST
   3523	015036	000734 				BR	20$		;;;RETURN
   3524
   3525	015040				70$:	.CRASH	IAS		;;;CRASH SYSTEM UNKNOWN SIG EVENT
	015040	000004 				IOT
	015042	   111 	   101 	   123 		.ASCIZ	/IAS/
	015045	   000
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 76
EXEC MODULE NINE -- COMMON RETURN TO INTERRUPTED PROGRAM

   3527					;
   3528					;  .REQS -- SUBROUTINE TO ATTEMPT TO MAKE A TASK ACTIVE
   3529					;
   3530					; ENTRY CONDITIONS:
   3531					;
   3532					;	R2 -- STD ENTRY ADDRESS (TASK ID ) OF REQUESTED TASK
   3533					;	R3 -- TPD ENTRY ADDRESS, OR ZERO (DEFAULT PARTITION) , FOR REQUESTED TASK
   3534					;	R4 -- RUN PRIORITY, OR ZERO (DEFAULT PRIORITY), FOR REQUESTED TASK
   3535					;
   3536					;  CALLING SEQUENCE:
   3537					;
   3538					;	CALL	.REQS
   3539					;
   3540					;   EXIT CONDITIONS:
   3541					;
   3542					;	R2=00 -- TASK MADE ACTIVE
   3543					;	R2=02 -- TASK NOT MADE ACTIVE, TASK ALREADY ACTIVE
   3544					;	R2=06 -- TASK NOT MADE ACTIVE, INSUFFICIENT POOL NODE(S)
   3545					;
   3546					;	REGISTERS ALTERED:
   3547					;	R0,R1,R2,R3,R4
   3548					;
   3549					;
   3550	015046	032762 	000001 	000006 	.REQS::	BIT	#SF.TA,S.FW(R2)	;IS TASK ACTIVE?
   3551	015054	001403 				BEQ	10$		;NO -- IT IS LEGAL TO ACTIVATE IT
   3552	015056	012702 	000002 			MOV	#2,R2		;YES -- RETURN +2
   3553	015062					RETURN
	015062	000207 				RTS	PC
   3554
   3555	015064	005703 			10$:	TST	R3		;CHECK THE PARTITION
   3556	015066	001002 				BNE	20$		;PARTITION SPECIFIED
   3557	015070	016203 	000004 			MOV	S.TD(R2),R3	;PARTITION NOT SPECIFIED -- USE DEFAULT
   3558	015074	005704 			20$:	TST	R4		;PRIORITY?
   3559	015076	001002 				BNE	30$		;YES -- DON'T USE DEFAULT
   3560	015100	156204 	000010 			BISB	S.DP(R2),R4	;FIND THE DEFAULT PRIORITY
   3561	015104	010446 			30$:	MOV	R4,-(SP)	;SAVE PRI
   3562	015106	010346 				MOV	R3,-(SP)	;SAVE TPD
   3563	015110	012704 	001424'			MOV	#.POLLH,R4	;PICK AN ATL NODE
   3564	015114					CALL	..PICK
	015114	004737 	044240'			JSR	PC,..PICK
   3565	015120	103004 				BCC	50$		;GOT NODE
   3566	015122	022626 			40$:	CMP	(SP)+,(SP)+	;REMOVE SAVED TPD AND PRI
   3567	015124	012702 	000006 			MOV	#6,R2		;COMPLAIN NO NODES AVAILABLE
   3568	015130					RETURN			;RETURN TO CALLER
	015130	000207 				RTS	PC
   3569
   3570	015132	032762 	000002 	000006 	50$:	BIT	#SF.FX,S.FW(R2)	;FIXED IN CORE?
   3571	015140	001436 				BEQ	70$		;NO -- MUST READ THE TASK IN
   3572	015142	010401 				MOV	R4,R1		;SAVE NODE ADDRESS
   3573	015144	016204 	000022 			MOV	S.SP(R2),R4	;SET UP STACK
   3574	015150	062704 	000014 			ADD	#14,R4		;SET POINTER TO PC
   3575	015154	016224 	000020 			MOV	S.PC(R2),(R4)+	;SET PC
   3576	015160	012724 	174000 			MOV	#174000,(R4)+	;SET UP PS
   3577	015164	012703 	000010 			MOV	#TS.RUN,R3	;SET UP TO START TASK
   3578	015170	010104 			60$:	MOV	R1,R4		;SAVE THE ATL NODE ADDRESS
   3579	015172	022424 				CMP	(R4)+,(R4)+	;MOVE OVER LISTHEAD
   3580	015174	016224 	000022 			MOV	S.SP(R2),(R4)+	;SET INITIAL STACK POINTER
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 76-1
EXEC MODULE NINE -- COMMON RETURN TO INTERRUPTED PROGRAM

   3581	015200	012624 				MOV	(SP)+,(R4)+	;SET UP TPD AND PRI
   3582	015202	012624 				MOV	(SP)+,(R4)+
   3583	015204	016224 	000012 			MOV	S.BA(R2),(R4)+	;SET BASE ADDRESS
   3584	015210	010324 				MOV	R3,(R4)+	;SET RUN STATE
   3585	015212	010224 				MOV	R2,(R4)+	;SET STD NODE ADDRESS
   3586	015214	005024 				CLR	(R4)+
   3587	015216	005064 	000012 			CLR	A.PF-A.EF-2(R4)	;CLEAR POWER FAIL AST ADDRESS
   3588	015222	052762 	000001 	000006 		BIS	#SF.TA,S.FW(R2)	;SET TASK ACTIVE
   3589	015230	012702 	007106'			MOV	#.ATLLH,R2	;INSERT NODE INTO ATL
   3590	015234	000535 				BR	120$
   3591
   3592	015236	032763 	000002 	000010 	70$:	BIT	#TF.OU,T.FW(R3)	;PARTITION BUSY?
   3593	015244	001116 				BNE	110$		;YES -- BETER PUT IN MRL
   3594	015246	010446 				MOV	R4,-(SP)	;SAVE NODE ADDRESS OF ATL NODE
   3595	015250	012701 	000040 			MOV	#32.,R1		;PICK AN I/O NODE
   3596	015254					CALL	..ALCB
	015254	004737 	044416'			JSR	PC,..ALCB
   3597	015260	010004 				MOV	R0,R4		;SET CORRECT NODE ADDRESS
   3598	015262	103006 				BCC	80$		;GOT ONE
   3599	015264	012601 				MOV	(SP)+,R1	;NONE AVAILABLE -- RETURN ATL NODE
   3600	015266	012704 	001424'			MOV	#.POLLH,R4
   3601	015272					CALL	..NADD		;ADD NODE BACK TO ATL
	015272	004737 	044176'			JSR	PC,..NADD
   3602	015276	000711 				BR	40$		;RETURN +6
   3603
   3604	015300	010446 			80$:	MOV	R4,-(SP)	;SAVE NODE ADDRESS
   3605	015302	022424 				CMP	(R4)+,(R4)+	;MOVE OVER LISTHEAD
   3606	015304	010224 				MOV	R2,(R4)+	;SET UP STD ADDRESS
   3607	015306	016624 	000002 			MOV	2(SP),(R4)+	;SET UP ATL NODE ADDRESS
   3608	015312	012724 	175014 			MOV	#250.*400+12.,(R4)+ ;SET UP PRI/DPB SIZE
   3609	015316	012724 	000400 			MOV	#400,(R4)+	;SET EFN
   3610	015322	012724 	000050 			MOV	#IO.LTK,(R4)+	;CLAIM THIS IS A READ
   3611	015326	005024 				CLR	(R4)+		;NO I/O STATUS
   3612	015330	005024 				CLR	(R4)+		;NO AST ADDRESS
   3613	015332	022424 				CMP	(R4)+,(R4)+	;ADDRESS IS NOT SPECIFIED HERE
   3614	015334	016224 	000014 			MOV	S.LZ(R2),(R4)+	;SET UP INITIAL SIZE
   3615	015340	005024 				CLR	(R4)+		;SKIP THIS PARAMETER
   3616	015342	016224 	000032 			MOV	S.DL(R2),(R4)+	;SET UP DISK ADDRESS
   3617	015346	016224 	000034 			MOV	S.DL+2(R2),(R4)+ ;LOW ORDER DISK ADDRESS
   3618	015352	012601 				MOV	(SP)+,R1	;RESTORE R1
   3619	015354	016603 	000002 			MOV	2(SP),R3	;RESTORE THE TPD ADDRESS
   3620	015360	032763 	000002 	000010 		BIT	#TF.OU,T.FW(R3)	;PARTITON OCCUPIED?
   3621	015366	001407 				BEQ	90$		;NO -- MUST BE OK TO LOAD
   3622	015370	012603 				MOV	(SP)+,R3	;YES -- BETTER ADD IT TO MRL
   3623	015372	012601 				MOV	(SP)+,R1	;RESTORE ATL ADDRESS
   3624	015374	010361 	000030 			MOV	R3,A.FM+4(R1)	;SET THE NODE ADDRESS IN FLAGS MASK WORD TO PRESERVE IT
   3625	015400	012703 	100002 			MOV	#TS.LRQ+100000,R3 ;SET LOAD REQUEST QUEUE'D AND PARTITION BUSY
   3626	015404	000671 				BR	60$		;SET UP ATL
   3627
   3628	015406	010246 			90$:	MOV	R2,-(SP)	;SAVE STD ADDRESS
   3629	015410	052763 	000002 	000010 		BIS	#TF.OU,T.FW(R3)	;DECLARE THE PARTITION OCCUPIED
   3630	015416	005003 				CLR	R3		;FIND PUD ENTRY
   3631	015420	156203 	000011 			BISB	S.DI(R2),R3	;SET DISK INDICATOR
   3632	015424	012702 	010232'			MOV	#.PUDBA,R2	;SET UP FOR ..IPRI
   3633	015430	062702 	000050 		100$:	ADD	#U.SZ,R2	;POINT TO AN ENTRY
   3634	015434	077303 				SOB	R3,100$		;LOOP UNTIL CORRECT ENTRY FOUND
   3635	015436	010203 				MOV	R2,R3		;SAVE THE LOGICAL UNIT NUMBER
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 76-2
EXEC MODULE NINE -- COMMON RETURN TO INTERRUPTED PROGRAM

   3636	015440	062702 	000022 			ADD	#U.RF,R2	;POINT TO LISTHEAD
   3637	015444					CALL	..IPRI		;ENTER IN LIST
	015444	004737 	044122'			JSR	PC,..IPRI
   3638	015450	014202 				MOV	-(R2),R2	;FIND ATL NODE ADDRESS OF HANDLER TASK
   3639	015452	052762 	000010 	000020 		BIS	#EF.NIR,A.EF(R2) ;START HANDLER
   3640	015460					CALL	..DSEV		;DECLARE SIG EVENT
	015460	004737 	044026'			JSR	PC,..DSEV
   3641	015464	012602 				MOV	(SP)+,R2	;RESTORE STD ADDRESS
   3642	015466	012601 				MOV	(SP)+,R1	;RESTORE R1 (ATL NODE ADDRESS)
   3643	015470	010361 	000022 			MOV	R3,A.EF+2(R1)	;SAVE THE OVERLAY PUD ADDRESS
   3644	015474	012703 	000002 			MOV	#TS.LRQ,R3	;SET UP TO INDICATE LOAD REQUEST QUEUE'D
   3645	015500	000633 				BR	60$		;AND START TASK
   3646
   3647	015502	010401 			110$:	MOV	R4,R1		;SAVE THE NODE ADDRESS
   3648	015504	052762 	000001 	000006 		BIS	#SF.TA,S.FW(R2)	;SET TASK ACTIVE
   3649	015512	022424 				CMP	(R4)+,(R4)+
   3650	015514	010224 				MOV	R2,(R4)+	;SAVE THE ATTRIBUTES OF THIS CALL
   3651	015516	012624 				MOV	(SP)+,(R4)+
   3652	015520	012624 				MOV	(SP)+,(R4)+
   3653	015522	010302 				MOV	R3,R2		;FIND THE MRL
   3654	015524	062702 	000014 			ADD	#T.RF,R2	;POINT TO IT IN TPD
   3655	015530				120$:	CALL	..IPRI		;INSERT THIS NODE IN MRL BY PRI
	015530	004737 	044122'			JSR	PC,..IPRI
   3656	015534	005002 				CLR	R2		;DECLARE TASK ACTIVE
   3657	015536					RETURN			;RETURN TO CALLER
	015536	000207 				RTS	PC
   3658
   3659	015540	104401 			.RQESD::TRAP	DR.01		;RETURN +1
   3660	015542	104771 				TRAP	DE.07		;RETURN -7
   3661	015544	104401 				TRAP	DR.01		;RETURN+1 (CURRENTLY UNUSED)
   3662	015546	104777 				TRAP	DE.01		;RETURN -1
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 77
EXEC MODULE NINE -- COMMON RETURN TO INTERRUPTED PROGRAM

   3664					;
   3665					;  .FEPPU -- SUBROUTINE TO FETCH PARTITION AND PRIORITY
   3666					;
   3667					;  ENTRY CONDITIONS:
   3668					;
   3669					;	R1 -- DPB PLUS SIX -- POINTING TO FOLLOWING DATA IN PREVIOUS SPACE
   3670					;		[PARTITION NAME (FIRST HALF),
   3671					;		[PARTITION NAME (SECOND HALF),
   3672					;		[PRIORITY],
   3673					;		[UNUSED].
   3674					;
   3675					;	IT IS ASSUMED THAT THESE WORDS CAN BE FETCHED WITHOUT SEGMENT FAULT.
   3676					;
   3677					;	R2 -- STD ENTRY OF TASK TO FIT IN PARTITION
   3678					;	R5 -- ATL NODE ADDRESS OF ISSUING TASK
   3679					;
   3680					;	CALLING SEQUENCE:
   3681					;
   3682					;	CALL	.FEPPU
   3683					;
   3684					;  EXIT CONDITIONS:
   3685					;
   3686					;	R1 -- ADVANCED BY 8 (4 WORDS)
   3687					;	R3 -- TPD ENTRY ADDRESS, OR ZERO (DEFAULT PARTITION)
   3688					;	R4 -- RUN PRIORITY, OR ZERO (DEFAULT PRIORITY)
   3689					;
   3690					;	REGISTERS ALTERED R1,R3,R4
   3691					;
   3692	015550				.FEPPU::MFPI	(R1)+		;PUSH 2-WORD PARTITION NAME ONTO STACK
	015550	012146 				MOV	(R1)+,-(SP)
   3693	015552					MFPI	(R1)+
	015552	012146 				MOV	(R1)+,-(SP)
   3694	015554	005003 				CLR	R3		;CLEAR R3 (TPD ADDRESS
   3695	015556	005766 	000002 			TST	2(SP)		;WAS A PARTITION NAME SPECIFIED?
   3696	015562	001423 				BEQ	20$		;NO -- RETURN WITH ZERO IN R3
   3697	015564	012703 	007552'			MOV	#.TPDBA,R3	;YES -- SET UP TO SCAN TPD FOR PARTITION
   3698	015570	020327 	007552'		10$:	CMP	R3,#.TPDBA	;END OF TPD?
   3699	015574	001425 				BEQ	X.X94		;YES -- RETURN STS=-94.
   3700	015576	162703 	000020 			SUB	#T.SZ,R3	;NO -- SET UP R3 TO EXAMINE ENTRY
   3701	015602	021366 	000002 			CMP	@R3,2(SP)	;PARTITION NAME MATCH?
   3702	015606	001370 				BNE	10$		;NO -- CHECK NEXT TPD
   3703	015610	026316 	000002 			CMP	2(R3),@SP	;MAYBE -- CHECK SECOND HALF OF NAME
   3704	015614	001365 				BNE	10$		;NO -- CHECK NEXT TPD
   3705	015616	016204 	000016 			MOV	S.TZ(R2),R4	;SET R4 TO THE NUMBER OF 32-WORD BLOCKS
   3706									;REQUIRED FOR THE TASK INDICATED BY R2.
   3707	015622	020463 	000006 			CMP	R4,T.PZ(R3)	;IS PARTITION LARG ENOUGH FOR TASK?
   3708	015626	101401 				BLOS	20$		;YES -- SET R4 PER PRIORITY SPECIFIED
   3709	015630	104775 				TRAP	DE.03		;NO -- RETURN STS=-03
   3710
   3711	015632	022626 			20$:	CMP	(SP)+,(SP)+	;REMOVE PARTITION NAME FROM STACK
   3712	015634					MFPS	(R1)+,R4	;SET R4 TO PRIORITY INDICATOR
	015634	012104 				MOV	(R1)+,R4
   3713	015636	020427 	000372 			CMP	R4,#250.	;IS PRIORITY GREATER THAN 250?
   3714	015642	101003 				BHI	X.X95		;YES -- RETURN STS=-95.
   3715	015644	005721 				TST	(R1)+		;MOVE OVER UNUSED WORD
   3716	015646					RETURN			;RETURN TO CALLER
	015646	000207 				RTS	PC
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 77-1
EXEC MODULE NINE -- COMMON RETURN TO INTERRUPTED PROGRAM

   3717
   3718	015650	104642 			X.X94:	TRAP	DE.94		;RETURN STS=94.
   3719	015652	104641 			X.X95:	TRAP	DE.95		;RETURN STS=95.
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 78
EXEC MODULE NINE -- COMMON RETURN TO INTERRUPTED PROGRAM

   3721					;
   3722					; .VCLUN -- VERIFY & CONVER LOGICAL UNIT NUMBER
   3723					;
   3724					; ENTRY CONDITIONS:
   3725					;
   3726					;	R5 -- ATL NODE ADR OF DIRECTIVE ISSUING TASK
   3727					;	TOP OF STACK -- LOGICAL UNIT NUMBER
   3728					;
   3729					; CALLING SEQUENCE:
   3730					;
   3731					;	CALL  .VCLUN
   3732					;
   3733					; EXIT CONDITIONS:
   3734					;
   3735					;	R4 -- POINTS TO FIRST LUT ENTRY
   3736					;	CC-C SET IF TASK NOT FOUND
   3737					;
   3738					;	IF LUN IS ASSIGNED TO A PHYSICAL UNIT, THE  LUN (ON TOP OF
   3739					;	STACK) IS REPLACED BY THE ADDRESS OF THE CORRESPONDING PUD
   3740					;	ENTRY.
   3741					;
   3742					;	IF AN INVALID LUN, RETURN STS-96.
   3743					;
   3744					;	IF THE LUN IS NOT ASSIGNED, IT IS REPLACED BY A ZERO.
   3745					;
   3746					;
   3747					; REGISTERS ALTERED:
   3748					;
   3749					;	NONE
   3750					;
   3751	015654	010046 			.VCLUN::MOV	R0,-(SP)	;PUSH  (SAVE) R0
   3752	015656	016600 	000004 			MOV	4(SP),R0	;LUN MINUS ONE TO R0
   3753	015662	005300 				DEC	R0
   3754
   3759	015664	016504 	000012 			MOV	A.HA(R5),R4	;POINT TO HEADER ADDRESS
   3766	015670	062704 	000130 			ADD	#H.LUT,R4
   3768
   3769	015674	020024 				CMP	R0,(R4)+	;IS LUN <1, OR >MAX FOR TASK?
   3770	015676	103013 				BHIS	X9X96		;YES -- RETURN STS=-96
   3771	015700	006300 				ASL	R0		;NO -- SET LUT CONTENTS (PER LUN) IN R0
   3772	015702	006300 				ASL	R0
   3773	015704	060400 				ADD	R4,R0
   3774	015706	011000 				MOV	@R0,R0		;(PUD ENT ADR OR ZERO IN R0)
   3775	015710	001402 				BEQ	10$		;IF ASSIGNED, EFFECT REDIRECTION (IF ANY)
   3776	015712	016000 	000016 			MOV	U.RP(R0),R0
   3777	015716				10$:
   3778	015716	010066 	000004 			MOV	R0,4(SP)	;REPLACE LUN (ON STACK) BY PUD
   3779									;ENTRY ADDRESS (OR ZERO).
   3780
   3781	015722	012600 				MOV	(SP)+,R0	;POP (RESTORE) R0
   3782	015724					RETURN			;EXIT SUBROUTINE
	015724	000207 				RTS	PC
   3783					;
   3784					; COMMON JMP'S TO DIRECTIVE EXITS
   3785					;
   3786	015726	104640 			X9X96:	TRAP	DE.96
SCH	- TASK SCHEDULER & GLOB	MACRO M1113  10-NOV-81 17:22  PAGE 79
EXEC MODULE NINE -- COMMON RETURN TO INTERRUPTED PROGRAM

   3788					;
   3789					;	.STAST -- SUBROUTINE TO SET AN AST IN A TASK
   3790					;
   3791					;  ENTRY CONDITONS:
   3792					;
   3793					;	R5 -- ACTIVE TASK LIST POINTER
   3794					;	R4 -- ENTRY ADDRESS
   3795					;
   3796					;	CALLING SEQUENCE:
   3797					;
   3798					;	CALL	.STAST
   3799					;
   3800					;	EXIT CONDITIONS:
   3801					;
   3802					;	CC-C CLEAR -- AST SET AND ALL OK
   3803					;	CC-C SET -- THE TASK IS CURRENT AND CAN'T SET AST
   3804					;
   3805	015730	010246 			.STAST::MOV	R2,-(SP)	;SAVE REGISTERS
   3806	015732	010346 				MOV	R3,-(SP)
   3807	015734					CALL	..DSEV		;DECLARE A SIG EVENT
	015734	004737 	044026'			JSR	PC,..DSEV
   3808	015740	012702 	000006 			MOV	#6,R2		;SET UP TO SAVE REGISTERS
   3809	015744	000241 				CLC			;ASSUME SUCCESS
   3810	015746					.INH0			;;INHIBIT INTERRUPTS
	015746	013746 	177776 			MOV	@#PS,-(SP)
	015752	112737 	000140 	177776 		MOVB	#140,@#PS
   3811	015760	020537 	001006'			CMP	R5,.CRTSK		;;CURRENT TASK?
   3812	015764	001415 				BEQ	30$		;;YES 0-- BETTER SET CARRY
   3813	015766	016503 	000004 			MOV	A.SP(R5),R3	;;SET UP A POINTER TO THE TASK'S STACK
   3814	015772	010443 				MOV	R4,-(R3)	;;SET UP NEW PC
   3818	015774	012743 	004000 			MOV	#004000,-(R3)
   3820	016000	016343 	000016 		10$:	MOV	16(R3),-(R3)	;SET UP NEW STACK SAVE
   3821	016004	077203 				SOB	R2,10$		;;CONTINUE TIL DONE
   3822	016006				20$:	.ENB0			;ENABLE INTERRUPTS
	016006	004737 	044302'			JSR	PC,..ENB0
   3823	016012	012603 				MOV	(SP)+,R3	;RESTORE
   3824	016014	012602 				MOV	(SP)+,R2
   3825	016016					RETURN			;RETURN TO CALLER
	016016	000207 				RTS	PC
   3826
   3827	016020	005216 			30$:	INC	@SP		;ENABLE INTERRUPTS
   3828	016022	152737 	000002 	001014'		BISB	#EV.AS,.SERFG+0	;SET AST REQUIRED
   3829	016030	000766 				BR	20$		;AND RETURN
   3830						;
BOOT -- BOOT PROTOCOL HANDLER	MACRO M1113  10-NOV-81 17:22  PAGE 80
EXEC MODULE NINE -- COMMON RETURN TO INTERRUPTED PROGRAM

   3832						.TITLE	BOOT -- BOOT PROTOCOL HANDLER
   3833						.SBTTL	SECONDARY PROTOCOL -- COPYRIGHT STATEMENT
   3834	016032					IDENT$	14,37
						.IDENT	/014370/
   3835
   3836					;
   3837					;                             COPYRIGHT (C) 1975, 1978 BY
   3838					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   3839					;
   3840					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   3841					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   3842					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   3843					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   3844					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   3845					;
   3846					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   3847					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   3848					;       CORPORATION.
   3849					;
   3850					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   3851					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   3852					;
   3853					;		MODULE: "BOOT PROTOCOL HANDLER"
   3854					;
   3855					;		VERSION: 14-37
   3856					;
   3857					;		AUTHOR: R. MCLEAN
   3858					;
   3859					;		DATE: 12 OCT 76
   3860					;
   3861					;	THIS MODULE CONTAINS:
   3862					;
   3863					;	1 -- CODE TO SERVICE BOOT PROTOCOL ETC.
   3864					;
   3865					; MODIFIED:
   3866					;	NO.	DATE		PROGRAMMER	PURPOSE
   3867					;	---	----		----------	-------
   3868					;	001	12-OCT-76	R. BELANGER	CHANGED PHYSICAL EXAMINES &
   3869					;						DEPOSITS TO EPT RELATIVE
   3870					;	002	21-OCT-76	A. PECKHAM	ADDITION OF CODE TO COUNT
   3871					;						DOORBELLS.
   3872					;
   3873					;	003	04-NOV-76	R. BELANGER	ADDED CODE TO DELETE
   3874					;						ENTRIES FROM TO10Q ON
   3875					;						PRIMARY PROTOCOL RESTART.
   3876					;	004	29-NOV-76	A. PECKHAM	CHANGES TOO NUMEROUS TO MENTION.
   3877					;	005	07-MAR-77	A. PECKHAM	ADDED CHANGE TO AVOID RESETTING TO -10 Q.
   3878					;	006	21-MAR-77	A. PECKHAM	FIXED BUG IN ACKNOWLEGE
   3879					;	007	28-AUG-77	R. BELANGER	RESET POWERFAIL FLAG ON
   3880					;						PRIMARY PROTOCOL START
   3881					;	008	07-OCT-77	R. BELANGER	IGNORE COMM REGION IF SO DIRECTED BY "TKTN"
   3882					;
   3883					;	009	27-MAY-78	R. BELANGER	ADD PROTOCOL TIMEOUT
   3884					;   TCO 4.2207	08-MAR-79	R. BELANGER	FIX BUG WHICH CAN CAUSE
   3885					;						PROTOCOL PAUSE LOOPS
   3886					;  TCO 4.1.1035	16-NOV-79	R. BELANGER	ADD QUEUE ARBITRATION
   3887					;  TCO 4.1.1121	19-MAR-80	R. BELANGER	SUPPORT BLOCKED DTE-20
BOOT -- BOOT PROTOCOL HANDLER	MACRO M1113  10-NOV-81 17:22  PAGE 80-1
SECONDARY PROTOCOL -- COPYRIGHT STATEMENT

   3888					;  TCO 4.1.1137	05-APR-80	R. BELANGER	REMOVE SUPPORT FOR RESTRICTED DTE-20
   3889					;
   3890					;	MACRO CALLS
   3891					;
   3892						.MCALL	CALL,RETURN,.STKM,CLEF$S,WTSE$S,QIOW$,DTON$S,.CRASH
   3893						.MCALL	WSIG$S,.ENB0,.INH6,.ENB6,$DEF
   3894	016032					$DEF
BOOT -- BOOT PROTOCOL HANDLER	MACRO M1113  10-NOV-81 17:22  PAGE 81
SECONDARY PROTOCOL -- BOOT PROTOCOL SERVICE

   3896						.SBTTL	SECONDARY PROTOCOL -- BOOT PROTOCOL SERVICE
   3897					;
   3898					;	BTPRO -- ROUTINE TO HANDLE THE PROTOCOL TRANSITION INTO
   3899					;	SECONDARY PROTOCOL.
   3900					;	IT IS ASSUMED THAT THIS PROTOCOL WILL BE USED
   3901					;	DURING INITALIZATION AND IN CASE OF MONITOR CRASHED ETC
   3902					;	WHEN THE NORMAL MEANS OF COMMUNICATIONS THRU THE COMM REGION ARE DESTROYED
   3903					;
   3904					;	"EF.CRI" INDICATES THAT THE FRONT-END BELEIVES THE COMM-REGION TO BE
   3905					;	INVALID.  THIS BIT IS SET ON POWERFAIL AND BY "KLI" ON A KL RELOAD.
   3906					;	IF THE COMM REGION INVALID FLAG IS NOT SET, THE TRANSITION INTO SECONDARY
   3907					;	PROTOCOL IS TIMED-OUT FOR 30 SECONDS.  IF NO TRANSITION IS MADE WITHIN
   3908					;	THAT PERIOD, THE KL IS RELOADED.
   3909					;
   3910					;	NOTE -- IF THE COMM-REGION IS FOUND TO BE VALID DURING A NORMAL PROTOCOL
   3911					;		TRANSITION, PRIMARY PROTOCOL IS IS IMMEDIATELY RE-ENTERED.
   3912					;
   3913					;	IF SUCCESS IN COMMUNICATION WITH THE KL IT WILL ENTER SECONDARY
   3914					;	PROTOCOL (OR RE-ENTER PRIMARY PROTOCOL)
   3915					;
   3916
   3917	016032				BTPHD::
   3918	016032					.STKM	0,1,2,3,4,5,0,BTPRO,174000,.BTSTK
	016100	000000 	000000 	000000 		.WORD	0,0,0,0
	016106	000000
	016126	174000 	016332'	016312'		.WORD	174000,BTPRO,.BTSTK
	016162	000005 				.WORD	5
	016164	010232'				.WORD	TTPEN
	016166	000000 				.WORD	0
	016170	000000 				.WORD	0
	016172	000000 				.WORD	0
	016174	000000 				.WORD	0
	016176	000000 				.WORD	0
	016200	000000 				.WORD	0
	016202	000000 				.WORD	0
	016204	000000 				.WORD	0
	016206	000000 				.WORD	0
	016210	000000 				.WORD	0
	016312	000000 				.WORD	0
	016314	000001 				.WORD	1
	016316	000002 				.WORD	2
	016320	000003 				.WORD	3
	016322	000004 				.WORD	4
	016324	000005 				.WORD	5
	016326	016332'				.WORD	BTPRO
	016330	174000 				.WORD	174000
   3919
   3920	016332				BTPRO:
   3921	016332	105037 	001372'			CLRB	.PRPSE		; RESET THE PAUSE FLAG
   3922	016336					WTSE$S	#E.FPR2		;WAIT FOR ACTIVATION.
	016336	012746 	000076 			MOV	#E.FPR2,-(SP)
	016342	012746 				MOV	(PC)+,-(SP)
	016344	   051 	   002 			.BYTE	41.,2
	016346	104375 				EMT	375
   3923	016350	052737 	100000 	007432'		BIS	#BIT15,FETSK+A.EF ;SET SECONDARY PROTOCOL FLAG FOR FETSK
   3924	016356	013700 	001154'			MOV	.TKPS,R0	; +++009 TICKS PER SECOND TO R0
   3925	016362	012701 	000036 			MOV	#^D30,R1	; +++009 30. SECONDS
BOOT -- BOOT PROTOCOL HANDLER	MACRO M1113  10-NOV-81 17:22  PAGE 81-1
SECONDARY PROTOCOL -- BOOT PROTOCOL SERVICE

   3926	016366				5$:
   3927	016366					CALL	$MUL		; +++009 CALCULATE PAUSE PERIOD
	016366	004737 	000000G			JSR	PC,$MUL
   3928	016372	010104 				MOV	R1,R4		; +++009 SAVE IT IN R4
   3929	016374	013700 	001360'			MOV	.PRDTE,R0	;FIND ADDRESS OF PRIVILEDGED DTE
   3930	016400	013705 	001356'			MOV	.PRSTA,R5
   3931	016404	012715 	000010 			MOV	#INTROF,@R5	;CLEAR THE STATUS
   3932	016410	000405 				BR	20$		;GO LOOK FOR CHANGE TO BOOT PROTOCOL
   3933						;
   3934	016412				10$:
   3935	016412					.ENB6			;;;ENABLE INTERRUPTS
	016412	012637 	177776 			MOV	(SP)+,@#PS
   3936	016416					WSIG$S			;WAIT FOR SIG EVENT
	016416	012746 				MOV	(PC)+,-(SP)
	016420	   061 	   001 			.BYTE	49.,1
	016422	104375 				EMT	375
   3937	016424				20$:
   3938	016424					.INH6			;INHIBIT INTERRUPTS
	016424	013746 	177776 			MOV	@#PS,-(SP)
	016430	112737 	000300 	177776 		MOVB	#300,@#PS
   3939	016436	032737 	002000 	001012'		BIT	#EF.CRI,.COMEF+2 ;;; +++008 IS THE COMM REGION VALID??
   3940	016444	001020 				BNE	30$		;;; +++008 NO -- GO ON
   3941	016446	112737 	177777 	001372'		MOVB	#-1,.PRPSE	;;; +++009 MARK THAT  WE ARE PAUSING
   3942	016454	005060 	000010 			CLR	TNAD1(R0)	;;; MAYBE -- LOOK FOR PROTOCOL CHANGE
   3943	016460	005060 	000012 			CLR	TNAD2(R0)	;;;BY TESTING RELATIVE ADDR WORD
   3944	016464					CALL	..WFED		;;; [4.1.1121] WAIT FOR EXAMINE
	016464	004737 	046216'			JSR	PC,..WFED
   3945	016470	103453 				BCS	47$		;;;KL HAS BEEN LOST..
   3946	016472	005760 	000002 			TST	DXWD3(R0)	;;;IF NON-ZERO
   3947	016476	001403 				BEQ	30$		;;;THEN EXAMINE VALID, SO
   3948	016500	010702 				MOV	PC,R2		;;; +++006 SAY NO ACKNOWLEGE NEEDED
   3949	016502	000137 	017440'			JMP	120$		;;; +++005 RETURN TO PRIMARY PROTOCOL.
   3950						;
   3951	016506				30$:
   3952	016506	032760 	004000 	000030 		BIT	#DS04,DAG1(R0)	;;;CHECK FOR CLOCK ERROR STOP
   3953	016514	001174 				BNE	86$		;;;STOP ALL PROTOCOLS IF SO
   3954	016516				31$:
   3955	016516	032715 	004000 			BIT	#TO11DB,@R5	;;;WAIT OR A DOORBELL INTERRUPT
   3956	016522	001021 				BNE	40$		;;; +++009 GOT ONE -- PROCESS IT
   3957	016524	032737 	002000 	001012'		BIT	#EF.CRI,.COMEF+2 ;;; +++009 IS THIS A PAUSE??
   3958	016532	001327 				BNE	10$		;;; +++009 YES -- WAIT FOR SECONDARY PROTOCOL
   3959	016534	077452 				SOB	R4,10$		;;; +++009 NO -- DID WE TIME OUT??
   3960	016536	105237 	001124'			INCB	.TKTN		;;; +++009 YES -- SAY GOODNIGHT....
   3961	016542	105237 	001122'			INCB	.NOERR		;;; +++009 DON'T CARE ABOUT ERRORS NOW
   3962	016546	052737 	000200 	001126'		BIS	#KS.PTO,.KLITK	;;; +++009 FLAG PROTOCOL TIMEOUT
   3963	016554					CALL	..DTSP		;;; [4.2207] STOP ALL PROTOCOLS
	016554	004737 	046770'			JSR	PC,..DTSP
   3964	016560					.ENB6			;;; +++009 ALLOW INTERRUPTS
	016560	012637 	177776 			MOV	(SP)+,@#PS
   3965	016564	000662 				BR	BTPRO		; +++009 AND GO BACK TO SLEEP
   3966						;
   3967	016566				40$:
   3968	016566	042737 	001000 	001012'		BIC	#EF.FCP,.COMEF+2 ;;;CLEAR FAULT CONTINUATION IN PROGRESS IN CASE
   3969	016574	005237 	001362'			INC	.PRDCT		;;; +002 ONE MORE DOORBELL....
   3970	016600	012760 	004000 	000010 		MOV	#PRTOFF!EPTR,TNAD1(R0) ;;; +001 PROTECT OFF
   3971	016606	012760 	000451 	000012 		MOV	#DTECMD,TNAD2(R0) ;;;READ THE COMMAND PASSED
   3972	016614					CALL	..WFED		;;; [4.1.1121] WAIT FOR EXAMINE DEPOSIT
BOOT -- BOOT PROTOCOL HANDLER	MACRO M1113  10-NOV-81 17:22  PAGE 81-2
SECONDARY PROTOCOL -- BOOT PROTOCOL SERVICE

	016614	004737 	046216'			JSR	PC,..WFED
   3973	016620				47$:
   3974	016620	103534 				BCS	87$
   3975	016622	012715 	002000 			MOV	#INT11C,@R5	;;;ALLOW MORE DOORBEL INTERRUPTS
   3976	016626	122760 	000011 	000003 		CMPB	#11,DXWD3+1(R0)	;;;LOOK AT THE COMMAND WORD
   3977	016634	001266 				BNE	10$		;;;NOT WHAT WE WANT...
   3978					;
   3979					;	CHANGE PROTOCOL TO SECONDARY (FUNCTION 11)
   3980					;
   3981	016636				50$:
   3982	016636	105037 	001372'			CLRB	.PRPSE		;;; +++009 RESET PAUSE FLAG
   3983	016642	012760 	177777 	000002 		MOV	#-1,DXWD3(R0)	;;;ACKNOWLEDGE THE COMMAND
   3984	016650	052760 	014000 	000010 		BIS	#DEP!EPTR!PRTOFF,TNAD1(R0) ;;; +001 SET DEPOSIT IN TEN MEMORY FLAG
   3985	016656	012760 	000444 	000012 		MOV	#DTEFLG,TNAD2(R0) ;;;START TRANSFER TO DTE FLAG WORD
   3986	016664					CALL	..WFED		;;; [4.1.1121] WAIT FOR EXAMINE DEPOSIT
	016664	004737 	046216'			JSR	PC,..WFED
   3987	016670	103510 				BCS	87$		;;;TEN STOPPED
   3988	016672	012715 	000400 			MOV	#TO10DB,@R5	;;;SET 10'S DOORBELL
   3989	016676	005037 	001162'			CLR	.BTSCH		;;;CLEAR ANY SAVED CHARACTERS
   3990					;
   3991					;	AT THIS POINT WE ARE OFFICIALLY IN SECONDARY PROTOCOL
   3992					;
   3993					;	THIS IS THE MAIN COMMAND LOOP WHICH PROCESSES THE SECONDARY
   3994					;	PROTOCOL COMMANDS AND PASSES CTY CHARACTERS TO THE -10.
   3995					;
   3996	016702				60$:
   3997	016702					.ENB6			;;;ENABLE INTERRUPTS
	016702	012637 	177776 			MOV	(SP)+,@#PS
   3998	016706					WSIG$S			;WAIT FOR SIG EVENT
	016706	012746 				MOV	(PC)+,-(SP)
	016710	   061 	   001 			.BYTE	49.,1
	016712	104375 				EMT	375
   3999	016714					.INH6			;INHIBIT INTERRUPTS
	016714	013746 	177776 			MOV	@#PS,-(SP)
	016720	112737 	000300 	177776 		MOVB	#300,@#PS
   4000	016726	032715 	004000 			BIT	#TO11DB,@R5	;;;WAIT FOR ANOTHER DOORBELL
   4001	016732	001073 				BNE	90$		;;;FOUND IT -- CHECK THE COMMAND
   4002	016734	032760 	004000 	000030 		BIT	#DS04,DAG1(R0)	;;;CHECK FOR CLOCK ERROR STOP
   4003	016742	001061 				BNE	86$		;;;YES -- STOP PROTOCOL
   4004	016744				70$:
   4005	016744	113701 	001162'			MOVB	.BTSCH,R1	;;;CHECK FOR CTY CHARACTER
   4006	016750	001754 				BEQ	60$
   4007					;
   4008					;	TRANSFER CTY CHARACTER TO -10
   4009					;
   4010	016752				80$:
   4011	016752	012760 	004000 	000010 		MOV	#PRTOFF!EPTR,TNAD1(R0) ;;; +001 SET PROTECT OFF
   4012	016760	012760 	000456 	000012 		MOV	#DTEMTI,TNAD2(R0) ;;;PICK UP THE INPUT BUSY FLAG
   4013	016766				81$:
   4014	016766					CALL	..WFED		;;; [4.1.1121] WAIT FOR EXAMINE DEPOSIT
	016766	004737 	046216'			JSR	PC,..WFED
   4015	016772	103447 				BCS	87$		;;;TEN STOPPED
   4016	016774	005760 	000004 			TST	DXWD2(R0)
   4017	017000	001340 				BNE	60$		;;;TEN CAN'T ACCEPT ANOTHER CHARACTER YET
   4018	017002	042701 	177600 			BIC	#^C177,R1	;;;MASK OFF JUNK
   4019	017006	010160 	000002 			MOV	R1,DXWD3(R0)	;;;PUT THE WORD IN THE DTE
   4020	017012	005060 	000004 			CLR	DXWD2(R0)
BOOT -- BOOT PROTOCOL HANDLER	MACRO M1113  10-NOV-81 17:22  PAGE 81-3
SECONDARY PROTOCOL -- BOOT PROTOCOL SERVICE

   4021	017016	005060 	000006 			CLR	DXWD1(R0)
   4022	017022	012760 	014000 	000010 		MOV	#DEP!PRTOFF!EPTR,TNAD1(R0) ;;; +001 SET DEP!PRTOFF!EPTR DEPOSIT FLAG
   4023	017030	012760 	000450 	000012 		MOV	#DTEF11,TNAD2(R0) ;;;STORE THE CHARACTER IN THE 10
   4024	017036					CALL	..WFED		;;; [4.1.1121] WAIT FOR EXAMINE/DEPOSIT
	017036	004737 	046216'			JSR	PC,..WFED
   4025	017042	103423 				BCS	87$		;;;TEN STOPPED
   4026	017044	105037 	001162'			CLRB	.BTSCH		;;;CHARACTER HAS NOW BEEN SENT
   4027	017050	012760 	177777 	000002 		MOV	#-1,DXWD3(R0)	;;;SET CHARACTER IN BUFFER FLAG
   4028	017056	012760 	014000 	000010 		MOV	#DEP!PRTOFF!EPTR,TNAD1(R0) ;;; +001 SET DEP!PRTOFF!EPTR DEPOSIT FLAG
   4029	017064	012760 	000456 	000012 		MOV	#DTEMTI,TNAD2(R0) ;;;TRANSFER TO 10 MEMORY
   4030	017072					CALL	..WFED		;;; [4.1.1121] WAIT FOR TRANSFER
	017072	004737 	046216'			JSR	PC,..WFED
   4031	017076	103405 				BCS	87$		;;;TEN STOPPED
   4032	017100	012715 	000400 			MOV	#TO10DB,@R5	;;;SET THE 10'S DOORBELL
   4033	017104	000676 				BR	60$		;;;CONTINUE POLLING
   4034					;
   4035					;	AN ERROR ON EXAMINE / DEPOSIT TURNS OFF BOOT PROTOCOL
   4036					;
   4037	017106				86$:
   4038	017106					CALL	..WFED		;;; [4.1.1121] RECOGNIZE ERROR, THEN
	017106	004737 	046216'			JSR	PC,..WFED
   4039	017112				87$:
   4040	017112					.ENB0			;;; +++006 ENABLE INTERRUPTS
	017112	004737 	044302'			JSR	PC,..ENB0
   4041	017116	000137 	016332'			JMP	BTPRO		;AND GO TO WAIT FOR REACTIVATION.
   4042					;
   4043					;	RECIEVE A COMMAND FROM THE -10
   4044					;
   4045	017122				90$:
   4046	017122	005237 	001362'			INC	.PRDCT		;;; +002 ONE MORE DOORBELL...
   4047	017126	012760 	004000 	000010 		MOV	#PRTOFF!EPTR,TNAD1(R0) ;;; +001 SET PROTECT OFF
   4048	017134	012760 	000451 	000012 		MOV	#DTECMD,TNAD2(R0) ;;;READ THE COMMAND WORD
   4049	017142					CALL	..WFED		;;; [4.1.1121] WAIT FOR EXAMINE DEPOSIT
	017142	004737 	046216'			JSR	PC,..WFED
   4050	017146	012715 	002000 			MOV	#INT11C,@R5	;;;WARNING !!!!!DON'T MOVE THIS INSTRUCTION!!!!!!!
   4051									;;;DOORBELL MUST NOT BE CLEARED BEFORE THE
   4052									;;;10 FINISHES THE SET DOORBELL!!!!!!
   4053									;;;IT IS GUARANTEED TO BE SAFE AFTER ..WFED
   4054	017152	103757 				BCS	87$		;;;TEN STOPPED
   4055	017154	122760 	000012 	000003 		CMPB	#12,DXWD3+1(R0)	;;;MONITOR MODE CONTROL OFF?
   4056	017162	001443 				BEQ	100$		;;;YES -- RE-ENTER RSX20F
   4057	017164	122760 	000011 	000003 		CMPB	#11,DXWD3+1(R0)	;;;MONITOR MODE CONTROL ON?
   4058	017172	001003 				BNE	95$		;;;NO -- MUST BE CTY CHARACTER
   4059	017174	012715 	002000 			MOV	#INT11C,@R5	;;;ALLOW MORE DOORBELLS AND
   4060	017200	000616 				BR	50$		;;;ACKNOWLEDGE THE COMMAND.
   4061					;
   4062					;	OUTPUT A CHARACTER TO THE CTY (FUNCTION 10)
   4063					;
   4064	017202				95$:
   4065	017202	116037 	000002 	017572'		MOVB	DXWD3(R0),QPROAD ;;;OUTPUT A CHARACTER
   4066	017210					.ENB6			;;;ENABLE INTERRUPTS
	017210	012637 	177776 			MOV	(SP)+,@#PS
   4067	017214					DIR$	#QPROMS		;OUTPUT CHARACTER
	017214	012746 	017550'			MOV	#QPROMS,-(SP)
	017220	104375 				EMT	375
   4068	017222					.INH6			;INHIBIT INTERRUPTS
	017222	013746 	177776 			MOV	@#PS,-(SP)
BOOT -- BOOT PROTOCOL HANDLER	MACRO M1113  10-NOV-81 17:22  PAGE 81-4
SECONDARY PROTOCOL -- BOOT PROTOCOL SERVICE

	017226	112737 	000300 	177776 		MOVB	#300,@#PS
   4069	017234	012760 	177777 	000002 		MOV	#-1,DXWD3(R0)	;;;ACKNOWLEDGE CHARACTER OUTPUT
   4070	017242	012760 	014000 	000010 		MOV	#DEP!PRTOFF!EPTR,TNAD1(R0) ;;; +001 SET DEPOSIT
   4071	017250	012760 	000455 	000012 		MOV	#DTEMTD,TNAD2(R0) ;;;START TRANSFER TO INDICATE CHARACTER OUTPUT
   4072	017256					CALL	..WFED		;;; [4.1.1121] WAIT FOR EXAMINE DEPOSIT
	017256	004737 	046216'			JSR	PC,..WFED
   4073	017262	103713 				BCS	87$		;;;WHOOPS !
   4074	017264	012715 	000400 			MOV	#TO10DB,@R5	;;;CLEAR THE 11 DOORBELL AND SET THE 10'S DOORBELL
   4075	017270	000625 				BR	70$		;;;CONTINUE POLLING
   4076					;
   4077					;	CHANGE PROTOCOL TO PRIMARY (FUNCTION 12)
   4078					;
   4079	017272				100$:
   4080	017272	005037 	001374'			CLR	.DTBLK		;;; [4.1.1121] DTE-20 IS NO LONGER BLOCKED
   4081	017276	005002 				CLR	R2		;;; +++006 NEED ACKNOWLEGE
   4082	017300	042737 	006000 	001012'		BIC	#EF.PFR!EF.CRI,.COMEF+2 ;;; +++007 GUARD AGAINST SPURIOUS POWERFAIL
   4083									;;; +++008 DECLARE COMM REGION VALID
   4084	017306	032760 	000001 	000002 		BIT	#1,DXWD3(R0)	;;;CHECK FOR RE-INIT
   4085	017314	001451 				BEQ	120$		;;; +++006 NO
   4086	017316				110$:
   4087	017316	010046 				MOV	R0,-(SP)
   4088	017320				113$:
   4089	017320	013704 	001326'			MOV	TO10Q,R4	;;; +003 Q LISTHEAD TO R4
   4090	017324	022704 	001326'			CMP	#TO10Q,R4	;;; +003 DONE?
   4091	017330	001416 				BEQ	112$		;;; +003 YES -- LEAVE
   4092	017332					CALL	..NDEL		;;; +003 NO -- REMOVE THIS ENTRY FROM Q
	017332	004737 	044062'			JSR	PC,..NDEL
   4093	017336	005764 	000012 			TST	12(R4)		;;; +003 TEST INDIRECT INDICATOR
   4094	017342	003003 				BGT	111$		;;; +003 NOT INDIRECT -- GO ON
   4095	017344	056474 	000024 	000026 		BIS	24(R4),@26(R4)	;;; +003 INDIRECT -- DECLARE XFER COMPLETE
   4096	017352				111$:
   4097	017352	010400 				MOV	R4,R0		;;; +003 SET UP TO
   4098	017354	016001 	000004 			MOV	4(R0),R1	;;; +003 RETURN CORE BLOCK
   4099	017360					CALL	..DECB		;;; +003 RETURN IT
	017360	004737 	044552'			JSR	PC,..DECB
   4100	017364	000755 				BR	113$		;;; +003 DO NEXT ENTRY IN Q
   4101						;
   4102	017366				112$:
   4103	017366	005037 	001324'			CLR	TO10QC		;;; +003 DONE -- CLEAR CURRENT COUNTS
   4104	017372	005037 	001254'			CLR	.CPDV		;;; CLEAR CURRENT TO-10 DEVICE
   4105	017376	013700 	001262'			MOV	.CRHD,R0	;;; GET CURRENT NODE
   4106	017402	062700 	000010 			ADD	#10,R0		;;; POINT TO DATA AREA
   4107	017406	010037 	001260'			MOV	R0,.CRPB	;;; AND SET BUFFER POINTER.
   4108	017412	005060 	177776 			CLR	-2(R0)		;;; CLEAR ENTRY COUNT
   4109	017416	016000 	177774 			MOV	-4(R0),R0	;;; GET LENGTH OF NODE
   4110	017422	162700 	000012 			SUB	#10.,R0		;;; ADJUST,
   4111	017426	010037 	001256'			MOV	R0,.CRSZ	;;; AND SET BUFFER SIZE.
   4112	017432	005037 	001250'			CLR	.CRQZ		;;; NOTHING ENTERED YET.
   4113	017436	012600 				MOV	(SP)+,R0
   4114	017440				120$:				;;; +++005
   4115	017440	105037 	001373'			CLRB	TOXQIP		;;; [4.1.1035] RESET THE QUEUE INTERLOCK
   4116	017444					CLEF$S	#E.FPR2		;;;TURN SECONDARY PROTOCOL OFF
	017444	012746 	000076 			MOV	#E.FPR2,-(SP)
	017450	012746 				MOV	(PC)+,-(SP)
	017452	   037 	   002 			.BYTE	31.,2
	017454	104375 				EMT	375
   4117	017456					DTON$S			;;;ENABLE DTE20
BOOT -- BOOT PROTOCOL HANDLER	MACRO M1113  10-NOV-81 17:22  PAGE 81-5
SECONDARY PROTOCOL -- BOOT PROTOCOL SERVICE

	017456	012746 	000003 			MOV	#DF.ON,-(SP)
	017462	012746 	001011 			MOV	#400*2.+DR.DTE,-(SP)
	017466	104375 				EMT	375
   4118	017470	103610 				BCS	87$		;;; +++006 LOST COMM REGION
   4119	017472	005702 				TST	R2		;;; +++006 ACKNOWLEGE??
   4120	017474	001013 				BNE	130$		;;; +++006 NO -- GO ON
   4121	017476	012760 	177777 	000002 		MOV	#-1,DXWD3(R0)	;;; +++006 ACK THE COMMAND
   4122	017504	012760 	014000 	000010 		MOV	#DEP!EPTR!PRTOFF,TNAD1(R0) ;;; +++001 SET DEPOSIT
   4123	017512	012760 	000444 	000012 		MOV	#DTEFLG,TNAD2(R0)  ;;;  +++006 START IT
   4124	017520					CALL	..WFED		;;; [4.1.1121] WAIT FOR IT
	017520	004737 	046216'			JSR	PC,..WFED
   4125	017524				130$:				;;;  +++006
   4126	017524	012715 	000440 			MOV	#INTRON!TO10DB,@R5 ;;;ENABLE INTERRUPTS
   4127	017530					.ENB0			;;;ENABLE INTERRUPTS
	017530	004737 	044302'			JSR	PC,..ENB0
   4128	017534	005237 	001164'			INC	.ACKAL		;SEND ACK ALL
   4129	017540	005037 	005666'			CLR	.FEACT		;FE IS NOW AVAILABLE
   4130	017544	000137 	016332'			JMP	BTPRO		;WAIT FOR PROTOCOL REACTIVICATION.
   4131						;
   4132	017550				QPROMS:
   4133	017550					QIOW$	IO.WLB,1,2,0,0,0,<QPROAD,1,0>
	017550	   003 	   011 			.BYTE	3,$$$ARG
	017552	000400 				.WORD	IO.WLB
	017554	000001 				.WORD	1
	017556	   002 	   000 			.BYTE	2,0
	017560	000000 				.WORD	0
	017562	000000 				.WORD	0
	017564	017572'				.WORD	QPROAD
	017566	000001 				.WORD	1
	017570	000000 				.WORD	0
   4134	017572				QPROAD:
   4135	017572	000000 				.WORD	0
PF -- POWER FAIL HANDLER	MACRO M1113  10-NOV-81 17:22  PAGE 82
SECONDARY PROTOCOL -- BOOT PROTOCOL SERVICE

   4137						.TITLE	PF -- POWER FAIL HANDLER
   4138						.SBTTL	POWERFAIL HANDLER -- COPYRIGHT STATEMENT
   4139	017574					IDENT$	14,05
						.IDENT	/014050/
   4140					;
   4141					;                             COPYRIGHT (C) 1975, 1978 BY
   4142					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   4143					;
   4144					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   4145					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   4146					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   4147					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   4148					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   4149					;
   4150					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   4151					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   4152					;       CORPORATION.
   4153					;
   4154					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   4155					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   4156					;
   4157					;		MODULE: "POWER FAIL"
   4158					;
   4159					;		VERSION: 14-05
   4160					;
   4161					;		AUTHOR: R. MCLEAN
   4162					;
   4163					;		DATE: 19 JUL 75
   4164					;
   4165					;
   4166					;	THIS MODULE CONTAINS:
   4167					;
   4168					;	1 -- CODE TO SUPPORT POWER FAIL
   4169					;
   4170					; MODIFICATIONS:
   4171					;
   4172					;	NO.	DATE		PROGRAMMER	REASON
   4173					;	---	----		----------	------
   4174					;	001	10-AUG-77	R. BELANGER	WAIT FOR KL CROBAR TO
   4175					;						SETTLE ON POWER RESTART
   4176					;	002	18-AUG-77	R. BELANGER	FLAG POWER RESTART
   4177					;  TCO 4.2205	08-MAR-79	R. BELANGER	RESET SENADALL DATABASE
   4178					;						ON POWER UP
   4179					;  TCO 4.2249	09-MAY-79	R. BELANGER	ALLOW POWER FAIL RECOVERY
   4180					;						TO COMPLETE BEFORE NOTIFYING KL10
   4181					;						MODIFY PARITY REGISTER INITIALIZATION
   4182					;						NOT NOT ALTER CPU PRIORITY ON TRAP
   4183
   4185						.MCALL	CALL,$DEF,.CRASH
   4186	017574					$DEF
PF -- POWER FAIL HANDLER	MACRO M1113  10-NOV-81 17:22  PAGE 83
POWERFAIL -- POWER DOWN

   4189						.SBTTL	POWERFAIL -- POWER DOWN
   4190
   4191					;+
   4192					;	POWER FAILURE AND RECOVERY SERVICE
   4193					;
   4194					;	WHEN A POWER FAILURE TRAP OCCURS, THE VOLATILE REGISTERS
   4195					;	ARE SAVED AND THE TRAP VEECTOR FOR POWER UP IS SET.
   4196					;
   4197					;	IF POWER FAIL INTERRUPTS A PRI 7 (I/O INITALIZE OR DTE
   4198					;	EXAMINE/DEPOSIT) THEN .PFAIL IS SET AND RTI
   4199					;	IS EXECUTED.  ROUTINES WHICH BREAK DOWN FROM PRI7
   4200					;	MUST CHECK TO SEE IF .PFAIL IS SET AND JUMP TO
   4201					;	.PFRTN -- THIS WILL ALLOW THEM TO FINISH AND
   4202					;	STILL PROTECT POWERFAIL FROM FAILING
   4203					;
   4204					;
   4205					;	NOTE: POWERFAIL TRAP CANNOT BE INHIBITED.
   4206					;	POWER FAIL TRAP SERVICE CAN NOT USE ROUTINES THAT INHIBIT
   4207					;	INTERRUPTS TO AVOID RACE CONDITIONS
   4208					;
   4209					;	NOTE: ALL MEMORY IS ASSUMED TO BE NON-VOLATILE (IT CANNOT BE
   4210					;	SAVED IN THE TIME PERMITTED FOR POWER FAIL SAVE)
   4211					;
   4212					;	NOTE: A KL10 INITIATED FRONT-END RELOAD SIMULATES A POWER-FAIL
   4213					;	TRAP TO STOP THE FRONT-END
   4214					;
   4215					;	POWER DOWN ENTRY -- CONTROL IS TRANSFERRED HERE (VIA POWER
   4216					;	FAIL TRAP VECTOR) AT PRIORITY SEVEN.
   4217					;
   4218					;	STACK SUMMARY:
   4219					;
   4220					;	0(SP) -- POWERFAIL TRAP PC
   4221					;	2(SP) -- POWERFAIL TRAP PS
   4222					;	4(SP) -- BEGINNING OF INTERRUPTED PROCESS STACK
   4223					;-
   4224
   4225	017574				.PWRDN::
   4226	017574	052737 	006000 	001012'		BIS	#EF.PFR!EF.CRI,.COMEF+2 ; +++002 ALWAYS FLAG POWER FAIL (ALWAYS!)
   4227	017602	016646 	000002 			MOV	2(SP),-(SP)	;FIND THE PS
   4228	017606	042716 	177437 			BIC	#177437,@SP	;MASK OFF ALL BUT PRI
   4229	017612	022726 	000340 			CMP	#340,(SP)+	;IS IT PRI 7?
   4230	017616	001005 				BNE	10$		;NO -- THEN ACCEPT POWER FAIL
   4231	017620	005237 	001026'			INC	.PFAIL		;SET POWER FAIL ERROR
   4232	017624	105237 	001014'			INCB	.SERFG+0	; +++001 LEST WE FORGET...
   4233	017630	000006 				RTT			;RETURN TO CALLER
   4234
   4235	017632	013746 	000006 		10$:	MOV	@#6,-(SP)	;SAVE LOW CORE
   4236	017636	013746 	000004 			MOV	@#4,-(SP)
   4237	017642	012737 	017716'	000004 		MOV	#20$,@#4	;SET UP TO HALT IF FAKE POWER FAIL
   4238	017650	012737 	000340 	000006 		MOV	#340,@#6	;SET PRIORITY 7 IN ODD ADDRESS TRAP ADDRESS
   4239					;
   4240					; STACK SUMMARY:
   4241					;
   4242					;	 0(SP) -- SAVED ABSOLUTE 4
   4243					;	 2(SP) -- SAVED ABSOLUTE 6
   4244					;	 4(SP) -- POWERFAIL TRAP PC
   4245					;	 6(SP) -- POWERFAIL TRAP PS
PF -- POWER FAIL HANDLER	MACRO M1113  10-NOV-81 17:22  PAGE 83-1
POWERFAIL -- POWER DOWN

   4246					;	10(SP) -- INTERRUPTED PROCESS STACK
   4247					;
   4248	017656	005737 	173000 			TST	.BM873		;IF NOT POWER FAIL THIS WILL TRAP TO 4
   4249									; AND IMMEDIATELY HALT AT "20$" BELOW,
   4250									; IN WHICH CASE THE TRAP PS/PC WILL BE ON STACK
   4251	017662	010046 				MOV	R0,-(SP)	;SAVE REGISTERS
   4252	017664	010146 				MOV	R1,-(SP)
   4253	017666	010246 				MOV	R2,-(SP)
   4254	017670	010346 				MOV	R3,-(SP)
   4255	017672	010446 				MOV	R4,-(SP)
   4256	017674	010546 				MOV	R5,-(SP)
   4257	017676	010637 	001032'			MOV	SP,PWRXSP	;SAVE STACK REGISTER
   4258	017702	012737 	017720'	000024 		MOV	#PWR.UP,@#24	;SET UP POWER UP TRAP VECTOR ADDRESS
   4259	017710	012737 	000006 	001034'		MOV	#6,CROBAR	; +++001 SET UP CROBAR COUNTER
   4260	017716	000000 			20$:	HALT
   4261					;
   4262					; CRASH (NON-POWERFAIL) STACK SUMMARY:
   4263					;
   4264					;	 0(SP) -- BM873 ROM TRAP PC
   4265					;	 2(SP) -- BM873 ROM TRAP PS
   4266					;	 4(SP) -- SAVED ABSOLUTE 4
   4267					;	 6(SP) -- SAVED ABSOLUTE 6
   4268					;	10(SP) -- POWERFAIL TRAP PC
   4269					;	12(SP) -- POWERFAIL TRAP PS
   4270					;	14(SP) -- INTERRUPTED PROCESS STACK
   4271					;
   4272					; THE TOP OF THIS STACK IS POINTED TO BY LOCATION 54 IN THE CRASH DUMP
PF -- POWER FAIL HANDLER	MACRO M1113  10-NOV-81 17:22  PAGE 84
POWERFAIL -- POWER UP ENTRY

   4274						.SBTTL	POWERFAIL -- POWER UP ENTRY
   4275
   4276					;
   4277					;
   4278					;	POWER UP ENTRY
   4279					;
   4280	017720				PWR.UP::
   4281	017720	013706 	001032'			MOV	PWRXSP,SP	;RESTORE STACK POINTER
   4282	017724	012737 	017720'	000004 		MOV	#PWR.UP,@#4	; +++001 MAKE BUS TIMEOUT TRAP TO "PWR.UP"
   4283	017732	012737 	004340 	000006 		MOV	#4340,@#6
   4284	017740	005337 	001034'			DEC	CROBAR		; +++001 COUNT THIS ATTEMPT
   4285	017744	003003 				BGT	10$		; +++001 ALL OK IF STILL .GT. 0
   4286	017746					.CRASH	CBR		; +++001 CRASH IF MORE THAN ONE MINUTE
	017746	000004 				IOT
	017750	   103 	   102 	   122 		.ASCIZ	/CBR/
	017753	   000
   4287						;
   4288	017754				10$:
   4289	017754	013701 	001360'			MOV	.PRDTE,R1	; +++001 ADDRESS OF DTE20 TO R1
   4290	017760					CALL	20$		; +++001 WAIT FOR KL CROBAR
	017760	004737 	020100'			JSR	PC,20$
   4291	017764					CALL	20$		; +++001 AND BE VERY SURE OF IT
	017764	004737 	020100'			JSR	PC,20$
   4292	017770	012761 	000100 	000032 		MOV	#DRESET,DAG2(R1) ; +++001 RESET THE DTE20
   4293	017776	005037 	001026'			CLR	.PFAIL		;CLEAR POWER FAIL FLAG
   4294	020002	012737 	177777 	001030'		MOV	#-1,.PFIOW	;SET POWER FAIL BITS TO INTERRUPT ROUTINES
   4295	020010	012605 				MOV	(SP)+,R5	;RESTORE REGISTERS
   4296	020012	012604 				MOV	(SP)+,R4
   4297	020014	012603 				MOV	(SP)+,R3
   4298	020016	012602 				MOV	(SP)+,R2
   4299	020020	012601 				MOV	(SP)+,R1
   4300	020022	012600 				MOV	(SP)+,R0
   4301	020024	012637 	000004 			MOV	(SP)+,@#4	;RESTORE LOW CORE
   4302	020030	012637 	000006 			MOV	(SP)+,@#6
   4303	020034	012737 	017574'	000024 		MOV	#.PWRDN,@#24	;SET UP POWER DOWN TRAP AGAIN
   4304	020042	052737 	000100 	001126'		BIS	#KS.PFT,.KLITK	;FORCE POWER RESTART
   4305	020050	012737 	000401 	001122'		MOV	#401,.NOERR	;SET NO ERROR OR HALT
   4306	020056					CALL	..DTSP		;TURN OFF PROTOCOL TASKS
	020056	004737 	046770'			JSR	PC,..DTSP
   4307	020062	105237 	001124'			INCB	.TKTN		;TASK TERMINATION REQUEST
   4308	020066	152737 	000200 	001014'		BISB	#EV.PF,.SERFG+0	;INDICATE POWER FAIL & SIG EVENT
   4309	020074	000137 	014632'			JMP	..INTX		;RETURN TO INTERRUPTED ROUTINE
   4310						;
   4311	020100				20$:				; +++001
   4312	020100	012700 	000454 			MOV	#^D<5*60>,R0	; +++001 WAIT FOR CROWBAR TO SETTLE (5 SECONDS)
   4313	020104				30$:				; +++001
   4314	020104	105737 	177546 			TSTB	@#LKS		; +++001 CHECK WITH CLOCK
   4315	020110	100375 				BPL	30$		; +++001 WAIT FOR TICK
   4316	020112	105037 	177546 			CLRB	@#LKS		; +++001 CLEAR CLOCK FLAG
   4317	020116	077006 				SOB	R0,30$		; +++001 WAIT THE FULL COUNT
   4318	020120	005777 	161232 			TST	@.PRSTA		; +++001 LOOK AT DTE20 STATUS REGISTER
   4319									; +++001 IF NOT THERE (CROBAR TRUE) TRAP
   4320									; +++001 TO "PWR.UP", ELSE GO ON
   4321	020124					RETURN			; +++001 MADE IT -- RETURN
	020124	000207 				RTS	PC
PF -- POWER FAIL HANDLER	MACRO M1113  10-NOV-81 17:22  PAGE 85
POWERFAIL -- POWER FAIL RESTART

   4323						.SBTTL	POWERFAIL -- POWER FAIL RESTART
   4324
   4325					;	.PFAIL INDICATES POWER FAIL IN PROGRESS
   4326					;	.PFIOW IS BIT ENCODED TO INDICATE POWER FAIL
   4327					;	OCCURED AND POWER UP RECOVERY IS NECESSARY
   4328
   4329	020126				.PFRST::
   4330	020126	013746 	000004 			MOV	@#4,-(SP)	; SAVE ABSOLUTE 4 (NEXM STOP)
   4331	020132	010046 				MOV	R0,-(SP)	; SAVE REGISTERS
   4332	020134	010146 				MOV	R1,-(SP)
   4333	020136	010246 				MOV	R2,-(SP)
   4334	020140	010346 				MOV	R3,-(SP)
   4335	020142	010446 				MOV	R4,-(SP)
   4336	020144	010546 				MOV	R5,-(SP)
   4337	020146	012737 	177777 	001030'		MOV	#-1,.PFIOW	; INDICATE POWER/FAIL TTY ENABLE
   4338	020154	012702 	002604'			MOV	#.SNDLP,R2	; [4.2205] INIT SENDALL POINTER
   4339	020160	012703 	000004 			MOV	#4,R3		; [4.2205] INIT SENDALL COUNTER
   4340	020164	005022 				CLR	(R2)+		; [4.2205] CLEAR SENDALL INDEX
   4341	020166				10$:
   4342	020166	005062 	000010 			CLR	10(R2)		; [4.2205] CLEAR SENDALL COUNT
   4343	020172	012200 				MOV	(R2)+,R0	; [4.2205] GET BUFFER POINTER
   4344	020174	001402 				BEQ	20$		; [4.2205] GO ON IF NULL
   4345	020176					CALL	..DECN		; [4.2205] DEALLOCATE THE BUFFER
	020176	004737 	044546'			JSR	PC,..DECN
   4346	020202				20$:
   4347	020202	077307 				SOB	R3,10$		; [4.2205] LOOP THROUGH ALL 4 NODES
   4348	020204					CALL	.DHTMO		; [4.2205] DO TIMEOUT
	020204	004737 	040646'			JSR	PC,.DHTMO
   4349	020210					CALL	.DLTMO
	020210	004737 	040336'			JSR	PC,.DLTMO
   4350	020214					CALL	.DMTMO
	020214	004737 	041126'			JSR	PC,.DMTMO
   4351	020220	005237 	006214'			INC	.LPPFL
   4352	020224	005237 	005706'			INC	.CRPFL
   4353	020230	005037 	002600'			CLR	.ABCNT
   4354	020234	005037 	002602'			CLR	.ABFLG
   4355	020240	105037 	001372'			CLRB	.PRPSE
   4356	020244	005037 	001030'			CLR	.PFIOW		; CLEAR POWER FAIL FLAG
   4357	020250	012704 	000020 			MOV	#16.,R4		; SET UP TO RESTORE PARITY ERROR REGISTERS
   4358	020254	012705 	172100 			MOV	#.PARRG,R5	; SET UP THE ADDRESS OF THE REGISTERS
   4359	020260	012737 	020340'	000004 		MOV	#PARLOT,@#4	; [4.2249] SET UP 4 TO TRAP TO "PARLOT"
   4360
   4361						.ENABL	LSB
   4362
   4363	020266				PARLOA:
   4364	020266	012725 	000001 			MOV	#1,(R5)+	; [4.2249] ENABLE PARITY CHECKING
   4365	020272				10$:
   4366	020272	077403 				SOB	R4,PARLOA	; [4.2249] LOOP THROUGH ALL REGISTERS
   4367	020274	012605 				MOV	(SP)+,R5	; [4.2249] DONE -- RESTORE REGISTERS
   4368	020276	012604 				MOV	(SP)+,R4
   4369	020300	012603 				MOV	(SP)+,R3
   4370	020302	012602 				MOV	(SP)+,R2
   4371	020304	012601 				MOV	(SP)+,R1
   4372	020306	012600 				MOV	(SP)+,R0
   4373	020310	012637 	000004 			MOV	(SP)+,@#4	; [4.2249] RESTORE LOW CORE
   4374	020314	042737 	004000 	001012'		BIC	#EF.PFR,.COMEF+2 ; [4.2249] CLEAR POWERFAIL IN PROGRESS FLAG
   4375	020322	012737 	000100 	177546 		MOV	#.INTEN,@#LKS	; [4.2249] ENABLE CLOCK
PF -- POWER FAIL HANDLER	MACRO M1113  10-NOV-81 17:22  PAGE 85-1
POWERFAIL -- POWER FAIL RESTART

   4377	020330	012777 	000400 	161020 		MOV	#TO10DB,@.PRSTA	; [4.2249] RING THE DOORBELL TO TELL 10 WE ARE HERE AND READY
   4379	020336					RETURN			; [4.2249] RETURN TO CALLER
	020336	000207 				RTS	PC
   4380					;
   4381					; HERE ON A TRAP FROM A NON-EXISTENT PARITY REGISTER
   4382					;
   4383	020340				PARLOT:
   4384	020340	032626 				BIT	(SP)+,(SP)+	; [4.2249] FLUSH THE TRAP PS/PC
   4385	020342	000753 				BR	10$		; [4.2249] AND CONTINUE THROUGH ALL REGISTERS
   4386						;
   4387
   4388						.DSABL	LSB
DMDTE	- DTE DIRECTIVES MODULE	MACRO M1113  10-NOV-81 17:22  PAGE 86
POWERFAIL -- POWER FAIL RESTART

   4390						.TITLE	DMDTE	- DTE DIRECTIVES MODULE
   4391						.SBTTL	DTE DIRECTIVES -- COPYRIGHT STATEMENT
   4392	020344					IDENT$	14,25
						.IDENT	/014250/
   4393					;
   4394					;                             COPYRIGHT (C) 1975, 1978 BY
   4395					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   4396					;
   4397					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   4398					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   4399					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   4400					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   4401					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   4402					;
   4403					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   4404					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   4405					;       CORPORATION.
   4406					;
   4407					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   4408					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   4409					;
   4410					;		MODULE: "DTE20" DIRECTIVE
   4411					;
   4412					;		VERSION: 14-25
   4413					;
   4414					;		AUTHOR: R. MCLEAN
   4415					;
   4416					;		DATE: 19 MAR 75
   4417					;
   4418					;
   4419					;	THIS MODULE CONTAINS:
   4420					;
   4421					;	1 --  CODE TO SERVICE THE DTE20 EMT SERVICE
   4422					;
   4423					; MODIFICATIONS:
   4424					;
   4425					;	NO.	DATE		PROGRAMMER	PURPOSE
   4426					;	---	----		----------	-------
   4427					;	001	14-MAR-77	R. BELANGER	CONDITIONALLY REMOVE UNUSED
   4428					;						DTE-20 EMT SERVICES
   4429					;	002	01-APR-77	A. PECKHAM	FIX BUG IN "$DTEON"
   4430					;	003	18-AUG-77	R. BELANGER	FIX "$DTEON" TO RETURN CORRECT STATUS
   4431					;						AND NOT START PRIMARY PROTOCOL IF
   4432					;						"..SWED" FAILS.
   4433					;	004	21-FEB-78	R. BELANGER	FIX "$DTEON" TO SET UP
   4434					;						"PROTBL" PROPERLY.
   4435					;  TCO 4.2107	06-DEC-78	R. BELANGER	INITIALIZE KEEP-ALIVE DATA-BASE
   4436					;						IN "$DTEON".
   4437					; TCO 4.1.1105	11-MAR-80	R. BELANGER	CHANGE "EF.PR1" RECOGNITION
   4438					; TCO 4.1.1121	19-MAR-80	R. BELANGER	SUPPORT BLOCKED DTE-20
   4439					; TCO 4.1.1137	05-APR-80	R. BELANGER	REMOVE RESTRICTED DTE-20 SUPPORT
   4440					;
   4441					;	MACRO CALLS
   4442
   4443						.MCALL	CALL,RETURN,MFPI,MTPI,MFPS,MTPS,.CRASH,.INH,.ENB,$DEF
   4444
   4445	020344					$DEF
DMDTE	- DTE DIRECTIVES MODULE	MACRO M1113  10-NOV-81 17:22  PAGE 87
DTE20 EMT DISPATCH DECODER

   4447						.SBTTL	DTE20 EMT DISPATCH DECODER
   4448					;
   4449					;	CALLED BY EMT DISPATCH
   4450					;	THIS ROUTINE DECODES THE SPECIFIC DTE FUNCTION CODE
   4451					;	AND DISPATCHES TO THE CORRECT FUNCTION
   4452					;
   4453					;	ENTRY CONDITIONS:
   4454					;
   4455					;	R1 -- ADDRESS OF DPB
   4456					;	R2 -- SIZE OF DPB
   4457					;	R3 -- DIRECTIVE IDENTIFICATION CODE
   4458					;	R5 -- ATL NODE ADDRESS OF ISSUING TASK (.CRTSK)
   4459					;
   4460					;	REGISTERS SAVED AND RESTORED BY EMT SERVICE
   4461					;
   4462					;	R0,R1,R2,R3,R4,R5
   4463					;
   4464					;	REGISTERS FOR USER AND DOES NOT REQUIRE EMT SERVICE
   4465					;	ROUTINES TO SAVE EMT'S REGISTERS.
   4466					;
   4467					;	EXIT TO DTE EMT SERVICE ROUTINE CONDITIONS:
   4468					;
   4469					;	3(SP) -- FUNCTION CODE PLUS HIGH ORDER BYTE OF SECOND WORD  OF DPB
   4470					;	R0 -- POINTER TO EXAMINE/DEPOSIT ADDRESSES
   4471					;	R1 -- WORD 5 OF DPB
   4472					;	R2 -- WORD 3 OF DPB
   4473					;	R3 -- WORD 4 OF DPB
   4474					;	R4 -- ADDRESS OF DPB
   4475					;	R5 -- ATL NODE ADDRESS OF ISSUING TASK (.CRTSK)
   4476					;
   4477					;
   4478					;
   4479	020344				.D.DTE::
   4480	020344	005046 				CLR	-(SP)
   4481	020346	005046 				CLR	-(SP)
   4482	020350	010146 				MOV	R1,-(SP)	;SAVE POINTER TO DPB FOR R4
   4483	020352					MFPS	(R1)+,R0	;PUT THE FUNCTION CODE IN R0
	020352	012100 				MOV	(R1)+,R0
   4484	020354	150066 	000002 			BISB	R0,2(SP)
   4485	020360	105000 				CLRB	R0
   4486	020362	010066 	000004 			MOV	R0,4(SP)
   4487	020366	010204 				MOV	R2,R4		;SAVE SIZE OF DPB
   4488	020370	005046 				CLR	-(SP)		;SET DEFAULT PROCESSOR NUMBER
   4489	020372	162704 	000002 			SUB	#2,R4		;CHECK COUNT OF PARAMETERS
   4490	020376	001407 				BEQ	10$		;IF ZERO REGISTERS DON'T NEED BE SET UP (NO PARAMS)
   4491	020400					MFPS	(R1)+,R2	;MOVE THE CPU ADDRESS
	020400	012102 				MOV	(R1)+,R2
   4492	020402					MFPS	(R1)+,R3	;MOVE IN OFFSET ADDRESS TO COMM AREA
	020402	012103 				MOV	(R1)+,R3
   4493	020404	162704 	000002 			SUB	#2,R4		;CHECK TO SEE IF CPU PARAMETER
   4494	020410	001402 				BEQ	10$		;NO -- DON'T ATTEMPT TO SET REGISTER
   4495	020412					MFPS	(R1)+,@SP	;YES -- SET CPU NUMBER
	020412	012116 				MOV	(R1)+,@SP
   4496	020414	001031 				BNE	CPUERR		; [4.1.1137] ERROR IF NOT CPU 0
   4497	020416				10$:
   4498	020416	012601 				MOV	(SP)+,R1	;SET CPU NUMBER
   4499	020420	012604 				MOV	(SP)+,R4
DMDTE	- DTE DIRECTIVES MODULE	MACRO M1113  10-NOV-81 17:22  PAGE 87-1
DTE20 EMT DISPATCH DECODER

   4500	020422	012700 	001236'			MOV	#PROTBL,R0	; [4.1.1137] FIND PROCESSOR BLOCK
   4501	020426	006316 				ASL	@SP		;MULTIPLY FUNCTION CODE BY 2 TO FORM OFFSET
   4502	020430	062716 	020440'			ADD	#DTEDSP-2,@SP	;POINT INTO DISPATCH TABLE
   4503	020434	017616 	000000 			MOV	@(SP),@SP
   4504	020440	000136 				JMP	@(SP)+		;GO TO ROUTINE AND REMOVE ELEMENTFROM STACK
   4505						;
   4506	020442	020502'			DTEDSP:	.WORD	$DORBL		;RING DORBELL (FUNCTION CODE 1)
   4507	020444	020504'				.WORD	$DTEOF		;TURN OFF DTE20 (FUNCTION CODE 2)
   4508	020446	020512'				.WORD	$DTEON		;TURN ON DTE20 (FUNCTION CODE 3)
   4509	020450	021110'				.WORD	$DPMYG		;DEPOSIT MY GENERAL SECTION (FUNCTION CODE 4)
   4510	020452	021142'				.WORD	$EXMYG		;EXAMINE MY GENERAL SECTION (FUNCTION CODE 5)
   4511	020454	021152'				.WORD	$EXMYN		;EXAMINE MY SECTION FOR CPU N (FUNCTION CODE 6)
   4512	020456	021160'				.WORD	$DPMYN		;DEPOSIT MY SECTION FOR CPU N (FUNCTION CODE 7)
   4513	020460	021166'				.WORD	$EXHSG		;EXAMINE HIS GENERAL COMM (FUNCTION CODE 10)
   4514	020462	021174'				.WORD	$EXHSM		;EXAMINE HIS SECTION FOR ME (FUNCTION CODE 11)
   4515	020464	021202'				.WORD	$KLDFR		;START KL10 DIAGNOSTIC FUNCTION READ
   4516	020466	021342'				.WORD	$KLDFW		;START KL10 DIAGNOSTIC FUNCTION WRITE
   4517	020470	021320'				.WORD	$KLDFX		;START KL10 DIAGNOSTIC FUNCTION (FUNCTION CODE 12)
   4518	020472	021454'				.WORD	$PRVEX		;PRIVILEDGED EXAMINE (FUNCTION 13)
   4519	020474	021440'				.WORD	$PRVDP		;PRIVILEDGED DEPOSIT (FUNCTION 14)
   4520	020476	021510'				.WORD	$RWDRG		;READ/WRITE DIAGNOSTIC REGISTER (FUNCTION 15)
   4521						;
   4522	020500				CPUERR:
   4523	020500	104776 				TRAP	DE.02		; ILLEGAL CPU
   4524						;
DMDTE	- DTE DIRECTIVES MODULE	MACRO M1113  10-NOV-81 17:22  PAGE 88
$DORBL -- RING THE KL-10 DOORBELL

   4526						.SBTTL	$DORBL -- RING THE KL-10 DOORBELL
   4527
   4528					;+
   4529					;	$DORBL -- RING THE DOORBELL OF THE KL-10 SPECIFIED
   4530					;
   4531					;		* * *  U N S U P P O R T E D  F U N C T I O N  * * *
   4532					;
   4533					;-
   4534
   4535	020502				$DORBL::
   4552
   4553	020502	104635 				TRAP	DE.99		; +++001 THIS ISN'T HERE
   4554						;
DMDTE	- DTE DIRECTIVES MODULE	MACRO M1113  10-NOV-81 17:22  PAGE 89
$DTEOF -- TURN THE DTE20 OFF

   4557						.SBTTL	$DTEOF -- TURN THE DTE20 OFF
   4558
   4559					;+
   4560					;	$DTEOF -- TURN OFF THE DTE20
   4561					;
   4562					;	CALLING SEQUENCE:
   4563					;
   4564					;	JMP	$DTEOF
   4565					;
   4566					;	EXIT CONDITIONS:
   4567					;
   4568					;	R0 --1 TO INDICATE SUCCESS
   4569					;	CC-C CLEAR TO INDICATE SUCCESS
   4570					;
   4571					;	ERROR CONDITIONS: NONE
   4572					;
   4573					;	REGISTERS SAVED AND RESTORED BY EMT SERVICE
   4574					;-
   4575
   4576	020504				$DTEOF::
   4589	020504					CALL	..DTP2		;+ START UP SECONDARY PROTOCOL.
	020504	004737 	047006'			JSR	PC,..DTP2
   4590	020510	104401 				TRAP	DR.01		;RETURN STATUS OK
   4591						;
DMDTE	- DTE DIRECTIVES MODULE	MACRO M1113  10-NOV-81 17:22  PAGE 90
$DTEON -- TURN THE DTE20 ON

   4593						.SBTTL	$DTEON -- TURN THE DTE20 ON
   4594
   4595					;+
   4596					;	$DTEON -- TURN ON THE DTE20
   4597					;	THIS ROUTINE WILL SET UP THE TABLES NECESSARY TO
   4598					;	INITALIZE THE COMMUNICATON BETWEEN THE PDP10 AND PDP11'S
   4599					;
   4600					;	CALLING SEQUENCE:
   4601					;
   4602					;	JMP	$DTEON
   4603					;
   4604					;	EXIT CONDITIONS:
   4605					;
   4606					;	R0 --1 TO INDICATE SUCCESS
   4607					;	CC-C CLEAR TO INDICATE SUCCESS
   4608					;
   4609					;	ERROR CONDITIONS:
   4610					;
   4611					;	R0 -2 -- E BOX STOPPED
   4612					;	CC-C SET
   4613					;
   4614					;	REGISTERS SAVED AND RESTORED BY EMT SERVICE
   4615					;-
   4616
   4617	020512				$DTEON::
   4618	020512	010546 				MOV	R5,-(SP)
   4619	020514	011000 				MOV	(R0),R0		;;; [4.1.1137] FIND THE COMMON DTE20
   4620	020516	005001 				CLR	R1		;;;SET UP TO FIND PROCESSOR NUMBER
   4621	020520	005002 				CLR	R2		;;;START TRANSFER OF ABS WORD 0 OF EPT (MY PROCESSOR NUMBER
   4622	020522	012703 	001346'			MOV	#DEXTM3,R3	;;;SET UP ADDRESS TO STORE WORDS
   4623	020526					CALL	..SWED		;;; [4.1.1121] WAIT FOR EXAMINE/DEPOSIT
	020526	004737 	046670'			JSR	PC,..SWED
   4624	020532	103417 				BCS	1$		;;;E BOX STOP
   4625	020534	011304 				MOV	@R3,R4		;;;YES --FIND OFFSET TO MY R/W AREA
   4626	020536	113702 	001351'			MOVB	@#DEXTM2+1,R2	;;;FIND THE PROCESSOR NUMBER
   4627									;;; PROCESSOR NUMBER TO LOW ORDER BITS
   4628	020542	042702 	177740 			BIC	#^C37,R2	;;;MASK OFF JUNK(0.-31. LEGAL)
   4629	020546	010237 	001232'			MOV	R2,PRMEMN	;;;SAVE PROCESSOR NUMBER
   4630	020552	005202 				INC	R2		;;;FIND COMMUNICATIONS VIRTUAL 2
   4631	020554	010237 	001230'			MOV	R2,COMBSE	;;;SAVE BASE OF COMMUNICATIONS AREA
   4632	020560	060402 				ADD	R4,R2		;;;ADD OFFSET TO BASE OF COMM AREA
   4633	020562	010237 	001234'			MOV	R2,DEPOF	;;;SET CORRECT OFFSETT
   4634	020566					CALL	..SWED		;;; [4.1.1121] WAIT FOR TRANSFER
	020566	004737 	046670'			JSR	PC,..SWED
   4635	020572				1$:
   4636	020572	103543 				BCS	80$		;;; +++003
   4637	020574				2$:
   4638	020574	013705 	001350'			MOV	@#DEXTM2,R5	;;;PICK UP THE NUMBER OF 8 TM BLOCKS
   4639	020600	042705 	177770 			BIC	#177770,R5	;;;FIND THE NUMBER OF 8 WORD BLOCKS IN MY AREA
   4640	020604	162705 	000002 			SUB	#2,R5		;;;ACCOUNT FOR MY GENERAL SECTION
   4641	020610	010246 				MOV	R2,-(SP)
   4642	020612	010546 				MOV	R5,-(SP)	;;;SAVE COUNT OF BLOCKS
   4643	020614				16$:
   4644									;;; +++002
   4645	020614	062766 	000020 	000002 		ADD	#FORPRO,2(SP)	;;;LOOK AT A COMMUNICATIONS AREA TO ANOTHER PROCESSOR
   4646	020622	016602 	000002 			MOV	2(SP),R2
   4647	020626					CALL	..SWED		;;; [4.1.1121] WAIT FOR TRANSFER
DMDTE	- DTE DIRECTIVES MODULE	MACRO M1113  10-NOV-81 17:22  PAGE 90-1
$DTEON -- TURN THE DTE20 ON

	020626	004737 	046670'			JSR	PC,..SWED
   4648	020632	103523 				BCS	80$		;;; +++003 E BOX STOPPED
   4649	020634	011304 				MOV	@R3,R4		;;;FIND PROCESSOR NUMBER
   4650	020636	012705 	001236'			MOV	#PROTBL,R5	;SET INITIAL POINTER
   4651	020642	042704 	177770 			BIC	#177770,R4	;;;MASK OFF JUNK
   4652
   4659
   4660	020646				19$:
   4661	020646	013704 	001350'			MOV	@#DEXTM2,R4	;;;FIND NUMBER OF 8 WORD BLOCS
   4662	020652	042704 	177770 			BIC	#177770,R4	;;;MASK OFF POSSIBLE GARBAGE
   4663	020656	160416 				SUB	R4,@SP		;;;UPDATE COUNT OF BLOCKS
   4664	020660	005015 				CLR	@R5		;;;SET UP TO CLEAR TABLE IF NO DTE
   4665	020662	013704 	001352'			MOV	@#DEXTM1,R4	;;;PICK UP DTE NUMBER
   4666	020666	032704 	000004 			BIT	#4,R4		;;;DTE HERE?
   4667	020672	001422 				BEQ	20$		;;;NO -- DON'T ENTER IN TABLE
   4668	020674	000304 				SWAB	R4		;;;MAKE MOD 40 (8)
   4669	020676	006004 				ROR	R4
   4670	020700	006004 				ROR	R4
   4671	020702	006004 				ROR	R4
   4672	020704	042704 	177637 			BIC	#177637,R4	;;;MASKOFF JUNK
   4673	020710	062704 	174400 			ADD	#174400,R4	;;;POINT TO FIRST BLOCK OF DTE'S
   4674	020714	020437 	001360'			CMP	R4,.PRDTE	;;;PRIMARY DTE?
   4675	020720	001002 				BNE	10$		;;;NO -- DON'T SET TABLE POINTER
   4676	020722	010537 	001354'			MOV	R5,.PRADR	;;;SAVE TABLE OFFSET
   4677	020726				10$:
   4678	020726	010415 				MOV	R4,@R5		;;;SET DTE ADDRESS IN TABLE
   4679	020730	005014 				CLR	@R4		 ;;; [4.1.1105] SET UP DELAY COUNTER
   4680	020732	012764 	000040 	000034 		MOV	#INTRON,STATD(R4) ;;;YES -- ENABLE INTERRUPT ON IT
   4681	020740				20$:
   4682	020740	010265 	000002 			MOV	R2,EMYN(R5) 	;;;SET THE ADDRESS OF EXAMINE MY AREA FOR N
   4683									;;;MAKE ADDRESS OF THE ADDRESS OF DEPOSIT MY AREA FOR N
   4684	020744	010265 	000004 			MOV	R2,DMYN(R5) 	;;;STORE IT
   4685	020750	163765 	001234'	000004 		SUB	DEPOF,DMYN(R5) 	;;;RESTORE ADDRESS FOR EXAMINE OF THIS BLOCK
   4686	020756	062702 	000001 			ADD	#PROPNT-FORPRO,R2 ;;;READ POINTER TO HIS COMM AREA
   4687	020762					CALL	..SWED		;;; [4.1.1121] WAIT FOR EXAMINE/DEPOSIT
	020762	004737 	046670'			JSR	PC,..SWED
   4688	020766	103445 				BCS	80$		;;; +++003 E BOX STOPPED
   4689	020770	011302 				MOV	@R3,R2		;;;FIND THE EXAMINE ADDRESS
   4690	020772	063702 	001230'			ADD	COMBSE,R2	;;;ADD OFFSET TO COMMON AREA
   4691	020776	010265 	000006 			MOV	R2,EHSG(R5) 	;;;SET EHSG ADDRESS IN TABLE
   4692	021002	062702 	000020 			ADD	#FORPRO,R2	;;;POINT TO HIS FIRST TABLE FOR OTHER PROCESSORS
   4693	021006				50$:
   4694	021006					CALL	..SWED		;;; [4.1.1121] WAIT FOR EXAMINE/DEPOSIT
	021006	004737 	046670'			JSR	PC,..SWED
   4695	021012	103433 				BCS	80$		;;; +++003
   4696	021014	123713 	001232'			CMPB	PRMEMN,@R3 	;;;SAME PROCESSOR NUMBER?
   4697	021020	001411 				BEQ	60$		;;;YES -- FOUND MY ENTRY
   4698	021022	013704 	001350'			MOV	@#DEXTM2,R4	;;;NO -- FIND NEXT ENTRY IN LIST
   4699	021026	042704 	177770 			BIC	#177770,R4	;;;IT IS IN 8 WORD INCREMENTS
   4700	021032	006304 				ASL	R4		;;;SO IT MUST BE SHIFTED LEFT 3 BITS
   4701	021034	006304 				ASL	R4		;;;
   4702	021036	006304 				ASL	R4		;;;
   4703	021040	060402 				ADD	R4,R2		;;;READ NEXT BLOCK
   4704	021042	000761 				BR	50$		;;;AND TRY AGAIN
   4705						;
   4706	021044				60$:
   4707	021044	010265 	000010 			MOV	R2,EHSM(R5)	;;;STORE EHSM ADDRESS
DMDTE	- DTE DIRECTIVES MODULE	MACRO M1113  10-NOV-81 17:22  PAGE 90-2
$DTEON -- TURN THE DTE20 ON

   4708	021050	011605 				MOV	@SP,R5		;;;DONE ALL BLOCKS??
   4709	021052	101260 				BHI	16$		;;; +++002 NO -- TRY NEXT BLOCK
   4710	021054				70$:
   4711	021054	112737 	000005 	001410'		MOVB	#.KALSC,.KPAC+0	;;; [4.2107] INIT KEEP-ALIVE TIMER
   4712	021062	112737 	000001 	001411'		MOVB	#1,.KPAC+1	;;; [4.2107] AND RETRY COUNTER
   4713	021070	013737 	001376'	001404'		MOV	KPAL0,OKPAL0	;;; [4.2107] INIT LAST KEEP ALIVE COUNT
   4714	021076					CALL	..DTP1		;;;START THE PRIMARY PROTOCOL TASK
	021076	004737 	047036'			JSR	PC,..DTP1
   4715	021102				80$:				;;; +++003
   4716	021102	012605 				MOV	(SP)+,R5	;;; +++003 RESTORE R5
   4717	021104	000137 	013460'			JMP	.DR.NS		;RETURN STATUS IN R0
   4718						;
DMDTE	- DTE DIRECTIVES MODULE	MACRO M1113  10-NOV-81 17:22  PAGE 91
$DPMYG -- DEPOSIT INTO MY GENERAL SECTION

   4720						.SBTTL	$DPMYG -- DEPOSIT INTO MY GENERAL SECTION
   4721
   4722					;+
   4723					;	$DPMYG -- DEPOSIT INTO MY GENERAL SECTION WITH PROCESSOR N
   4724					;
   4725					;	ENTRY CONDITIONS:
   4726					;
   4727					;	R2 -- ADDRESS OF PDP-10 LOCATION TO TRANSFER  RELATIVE TO MY GEN REGION
   4728					;	R3 -- ADDRESS OF PDP-11 CORE ADDRESS TO WRITE FROM
   4729					;	CALLING SEQUENCE:
   4730					;
   4731					;	JMP		$DPMYG
   4732					;
   4733					;	EXIT CONDITIONS:
   4734					;
   4735					;	R0 -- +1 TRANSFER COMPLETED
   4736					;	CC-C CLEAR -- TRANSFER COMPLETED
   4737					;
   4738					;	ERROR CONDITIONS:
   4739					;
   4740					;	CC-C SET
   4741					;
   4742					;	R0 -2  -- E BOX STOPPED
   4743					;	R0 -3 -- SECONDARY PROTOCOL IN USE
   4744					;
   4745					;	REGISTERS SAVED AND RESTORED BY EMT SERVICE
   4746					;-
   4747
   4748	021110				$DPMYG::
   4749	021110	005001 				CLR	R1
   4750	021112				DPCMN:
   4751	021112	052701 	010000 			BIS	#DEP,R1		;;;SET DEPOSIT BIT IN ADDRESS WORD
   4752	021116				CMEDP:
   4753	021116	005737 	001012'			TST	.COMEF+2	;;; [4.1.1105] PRIMARY PROTOCOL RUNNING?
   4754	021122	100006 				BPL	DPMSEP		;;; [4.1.1105] NO -- ERROR
   4755	021124	011000 				MOV	@R0,R0		;;;FIND DTE20 ADDRESS
   4756	021126					CALL	..SWED		;;; [4.1.1121] WAIT FOR EXAMINE/DEPOSIT
	021126	004737 	046670'			JSR	PC,..SWED
   4757	021132	103401 				BCS	DPSEC		;;;ERROR -2
   4758	021134	104401 				TRAP	DR.01
   4759						;
   4760	021136				DPSEC:
   4761	021136	104776 				TRAP	DE.02		;E BOX STOPPED
   4762						;
   4763	021140				DPMSEP:
   4764	021140	104775 				TRAP	DE.03		;SECONDARY PROTOCOL IN USE
   4765						;
DMDTE	- DTE DIRECTIVES MODULE	MACRO M1113  10-NOV-81 17:22  PAGE 92
$EXMYG -- EXAMINE MY GENERAL SECTION

   4767						.SBTTL	$EXMYG -- EXAMINE MY GENERAL SECTION
   4768
   4769					;+
   4770					;	$EXMYG -- EXAMINE MY (PDP-11) GENERAL SECTION
   4771					;
   4772					;	ENTRY CONDITIONS:
   4773					;
   4774					;	R2 -- ADDRESS OF A PDP10 ADDRESS TO EXAMINE RELATIVE TO THE BASE OF MY GENERAL SECTION
   4775					;	R3 -- ADDRESS OF THE THREE WORD BLOCK TO TRANSFER TO
   4776					;
   4777					;	CALLING SEQUENCE:
   4778					;
   4779					;	JMP	$EXMYG
   4780					;
   4781					;	EXIT CONDITIONS:
   4782					;
   4783					;	R0 -- +1 SUCCESS
   4784					;	CC-C CLEAR -- SUCCESS
   4785					;
   4786					;	ERROR CONDITIONS:
   4787					;
   4788					;	CC-C SET
   4789					;
   4790					;	R0 -2 -- E BOX STOPPED
   4791					;	R0 -3 -- SECONDARY PROTOCOL IN USE
   4792					;
   4793					;	REGISTERS SAVED AND RESTORED BY EMT SERVICE
   4794					;-
   4795
   4796	021142				$EXMYG::
   4797	021142	063702 	001234'			ADD	DEPOF,R2	;ADD DEPOSIT OFFSET TO EXAMINE ADDRESS
   4798	021146				EXCMN:
   4799	021146	005001 				CLR	R1		;;;CLEAR HIGH ORDER 10 ADDRESS (FORCES EXAMINE)
   4800	021150	000762 				BR	CMEDP
   4801						;
DMDTE	- DTE DIRECTIVES MODULE	MACRO M1113  10-NOV-81 17:22  PAGE 93
$EXMYN -- EXAMINE MY SECTION FOR PROCESSOR N

   4803						.SBTTL	$EXMYN -- EXAMINE MY SECTION FOR PROCESSOR N
   4804
   4805					;+
   4806					;	$EXMYN -- EXAMINE MY SECTION FOR COMMUNICATING WITH PROCESSOR N
   4807					;
   4808					;	ENTRY CONDITIONS:
   4809					;
   4810					;	R2 -- ADDRESS WORD WITHIN REGION TO EXAMINE
   4811					;	R3 -- PDP-11 CORE ADDRESS
   4812					;
   4813					;	CALLING SEQUENCE:
   4814					;
   4815					;	JMP	$EXMYN
   4816					;
   4817					;	EXIT CONDITIONS:
   4818					;
   4819					;	R0 -- +1 - SUCCESS
   4820					;	CC-C CLEAR -- SUCCESS
   4821					;
   4822					;	ERROR CONDITIONS:
   4823					;
   4824					;	CC-C SET
   4825					;	R0 -1 -- ILLEGAL CPU NUMBER
   4826					;	R0 -2 -- E BOX STOPPED
   4827					;	R0 -3 -- SECONDARY PROTOCOL IN USE
   4828					;
   4829					;	REGISTERS SAVED AND RESTORED BY EMT SERVICE
   4830					;-
   4831
   4832	021152				$EXMYN::
   4833	021152	066002 	000002 			ADD	EMYN(R0),R2	;SET CALCULATED ADDRESS TO COMM AREA
   4834	021156	000773 				BR	EXCMN		;GO TO COMMON AREA
   4835						;
DMDTE	- DTE DIRECTIVES MODULE	MACRO M1113  10-NOV-81 17:22  PAGE 94
$DPMYN -- DEPOSIT INTO MY SECTION FOR COMM WITH PROCESSOR N

   4837						.SBTTL	$DPMYN -- DEPOSIT INTO MY SECTION FOR COMM WITH PROCESSOR N
   4838
   4839					;+
   4840					;	$DPMYN --  DEPOSIT INTO MY SECTION FOR COMMUNICATING WITH PROCESSOR N
   4841					;
   4842					;	ENTRY CONDITIONS:
   4843					;
   4844					;	R2 -- ADDRESS WORD WITHIN REGION TO DEPOSIT
   4845					;	R3 -- ADDRESS IN PDP-11 TO TRANSFER FROM
   4846					;
   4847					;	CALLING SEQUENCE:
   4848					;
   4849					;	JMP	$DPMYN
   4850					;
   4851					;	EXIT CONDITIONS:
   4852					;
   4853					;	R0 -- +1 -SUCCESS
   4854					;	CC-C CLEAR - SUCCESS
   4855					;
   4856					;	ERROR CONDITIONS:
   4857					;
   4858					;	CC-C SET
   4859					;	R0 -1 -- ILLEGAL CPU NUMBER
   4860					;	R0 -2 -- E BOX STOPPED
   4861					;	R0 -3 -- SECONDARY PROTOCOL IN USE
   4862					;
   4863					;	REGISTERS SAVED AND RESTORED BY EMT SERVICE
   4864					;-
   4865
   4866	021160				$DPMYN::
   4867	021160	066002 	000004 			ADD	DMYN(R0),R2	;FIND CORRECT ADDRESS IN COMMON AREA
   4868	021164	000752 				BR	DPCMN		;DEPOSIT IN COMMON AREA
   4869						;
DMDTE	- DTE DIRECTIVES MODULE	MACRO M1113  10-NOV-81 17:22  PAGE 95
$EXHSG -- EXAMINE HIS GENERAL COMMUNICATION SECTION

   4871						.SBTTL	$EXHSG -- EXAMINE HIS GENERAL COMMUNICATION SECTION
   4872
   4873					;+
   4874					;	$EXHSG -- EXAMINE HIS GENERAL COMMUNICATION SECTION
   4875					;
   4876					;	ENTRY CONDITIONS:
   4877					;
   4878					;	R2 -- WORD NUMBER IN HIS GENERAL SECTION
   4879					;	R3 -- ADDRESS TO STORE EXAMINE
   4880					;
   4881					;	CALLING SEQUENCE:
   4882					;
   4883					;	JMP	$EXHSG
   4884					;
   4885					;	EXIT CONDITIONS:
   4886					;
   4887					;	R0 -- +1 - SUCCESS
   4888					;	CC-C CLEAR - SUCCESS
   4889					;
   4890					;	ERROR CONDITIONS:
   4891					;
   4892					;	R0 -1 -- ILLEGAL CPU NUMBER
   4893					;	R0 -2 -- EBOX STOPPED
   4894					;	R0 -3  -- SECONDARY PROTOCOL IN USE
   4895					;
   4896					;	CC-C SET
   4897					;
   4898					;	REGISTERS SAVED AND RESTORED BY EMT SERVICE
   4899					;-
   4900
   4901	021166				$EXHSG::
   4902	021166	066002 	000006 			ADD	EHSG(R0),R2	;FIND OFFSET TO COMMUNICATIONS AREA
   4903	021172	000765 				BR	EXCMN		;GO TO COMMON EXAMINE
   4904						;
DMDTE	- DTE DIRECTIVES MODULE	MACRO M1113  10-NOV-81 17:22  PAGE 96
$EXHSM -- EXAMINE HIS SECTION FOR COMMUNICATING WITH ME

   4906						.SBTTL	$EXHSM -- EXAMINE HIS SECTION FOR COMMUNICATING WITH ME
   4907
   4908					;+
   4909					;	$EXHSM -- EXAMINE HIS SECTION FOR COMMUNICATING WITH ME
   4910					;
   4911					;	ENTRY CONDITIONS:
   4912					;
   4913					;	R2 -- ADDRESS OF WORD WITHIN REGION TO EXAMINE
   4914					;	R3 -- ADDRESS TO STORE PDP-10 WORD
   4915					;
   4916					;	CALLING SEQUENCE:
   4917					;
   4918					;	JMP	$EXHSM
   4919					;
   4920					;	EXIT CONDITIONS:
   4921					;
   4922					;	R0 -- +1 - SUCCESS
   4923					;	CC-C CLEAR - SUCCESS
   4924					;
   4925					;	ERROR CONDITIONS:
   4926					;
   4927					;	CC-C SET
   4928					;	R0 -1 -- ILLEGAL CPU NUMBER
   4929					;	R0 -2 -- E BOX STOPPED
   4930					;	R0 -3 -- SECONDARY PROTOCOL IN USE
   4931					;
   4932					;	REGISTERS SAVED AND RESTORED BY EMT SERVICE
   4933					;-
   4934
   4935	021174				$EXHSM::
   4936	021174	066002 	000010 			ADD	EHSM(R0),R2	;FIND OFFSET INTO COMM AREA
   4937	021200	000762 				BR	EXCMN		;GO TO EXAMINE
   4938						;
DMDTE	- DTE DIRECTIVES MODULE	MACRO M1113  10-NOV-81 17:22  PAGE 97
$KLDFX -- EXECUTE A DIAGNOSTIC FUNCTION

   4940						.SBTTL	$KLDFX -- EXECUTE A DIAGNOSTIC FUNCTION
   4941
   4942					;+
   4943					;	$KLDFX -- EXECUTE A DIAGNOSTIC FUNCTION
   4944					;
   4945					;	THIS FUNCTION WILL LOAD AND READ THE EBUS.
   4946					;	IT DOES A DATA SEND OPERATION IF IT IS A WRITE FUNCTION
   4947					;	AND IT ALWAYS RETURNS THE STATUS OF THE DIAGNOSTIC REGISTERS
   4948					;	AND EBUS (DEXWD1-3) AFTER EACH FUNCTION.
   4949					;
   4950					;	ENTRY CONDITIONS:
   4951					;
   4952					;	00(SP) -- FUNCTION TO BE EXECUTED (BITS 15-9)
   4953					;	R3 -- ADDRESS OF FOUR WORD BLOCK TO STORE DIAG1-3
   4954					;	R2 -- PDP11 6 WORD BLOCK THE FIRST 3 WORDS ARE
   4955					;	USED TO STORE THE CONTENTS IN THE E BUS THE SECOND 3 WORDS
   4956					;	ARE USED TO STORE THE RESULTS OF THE DIAGNOSTIC FUNCTION E BUS
   4957					;
   4958					;	CALL	$KLDFX
   4959					;
   4960					;	EXIT CONDITIONS:
   4961					;
   4962					;	CC-C CLEAR
   4963					;	R0 -- +1 -- SUCCESS
   4964					;
   4965					;	ERROR CONDITIONS:
   4966					;
   4967					;	-2 -- FUNCTION FAILED
   4968					;
   4969					;	REGISTERS SAVED AND RESTORED BY EMT SERVICE
   4970					;
   4971					;-
   4972
   4973	021202				$KLDFR::
   4974	021202	011001 				MOV	(R0),R1		; [4.1.1137] POINT TO THE DTE-20
   4975	021204	012600 				MOV	(SP)+,R0	;RESTORE FUNCTION
   4976	021206					CALL	CESCHK		;RESET DTE-20 IF CLOCK ERROR STOP
	021206	004737 	021540'			JSR	PC,CESCHK
   4977	021212	042700 	000777 			BIC	#777,R0		;MASK OFF FUNCTION CODE
   4978	021216	052700 	000211 			BIS	#DIKL10!DCOMST!DFUNC,R0 ;SET DIAGNOSTIC FUNCTION START BITS
   4979	021222	062702 	000006 			ADD	#6,R2		;DON'T DO THE E BUS WRITE
   4980	021226				KLCST:
   4981	021226	010061 	000030 			MOV	R0,DAG1(R1)	;START FUNCTION
   4982	021232	012737 	003000 	001344'		MOV	#3000,DEXST	;TIME OUT FUNCTION
   4983	021240				10$:
   4984	021240	032761 	000001 	000030 		BIT	#DCOMST,DAG1(R1) ;WAIT FOR THE FUNCTION TO COMPLETE
   4985	021246	001404 				BEQ	22$
   4986	021250	005337 	001344'			DEC	DEXST		;COUNT DOWN
   4987	021254	100371 				BPL	10$
   4988	021256	104776 				TRAP	DE.02		;TRAP ERROR
   4989						;
   4990	021260				22$:
   4991	021260					MTPS	DXWD3(R1),(R2)+	;STORE THE FOUND WORD IN PDP11
	021260	016122 	000002 			MOV	DXWD3(R1),(R2)+
   4992	021264					MTPS	DXWD2(R1),(R2)+
	021264	016122 	000004 			MOV	DXWD2(R1),(R2)+
   4993	021270					MTPS	DXWD1(R1),(R2)+
DMDTE	- DTE DIRECTIVES MODULE	MACRO M1113  10-NOV-81 17:22  PAGE 97-1
$KLDFX -- EXECUTE A DIAGNOSTIC FUNCTION

	021270	016122 	000006 			MOV	DXWD1(R1),(R2)+
   4994	021274	005703 				TST	R3		;ANYWHERE TO STORE?
   4995	021276	001407 				BEQ	20$		;NO -- FORGET IT
   4996	021300	010104 				MOV	R1,R4		; YES -- POINT TO THE DTE-20
   4997	021302	062704 	000030 			ADD	#DAG1,R4	; DIAGNOSTIC REGISTERS
   4998	021306					MTPS	(R4)+,(R3)+	;STORE DIAGNOSITC REGISTERS
	021306	012423 				MOV	(R4)+,(R3)+
   4999	021310					MTPS	(R4)+,(R3)+
	021310	012423 				MOV	(R4)+,(R3)+
   5000	021312					MTPS	(R4)+,(R3)+
	021312	012423 				MOV	(R4)+,(R3)+
   5001	021314					MTPS	(R4)+,(R3)+
	021314	012423 				MOV	(R4)+,(R3)+
   5002	021316				20$:
   5003	021316	104401 				TRAP	DR.01		;SET OK RETURN TO CALLER
   5004						;
   5005	021320				$KLDFX::
   5006	021320	011001 				MOV	(R0),R1		; [4.1.1137] POINT TO THE DTE-20
   5007	021322	012600 				MOV	(SP)+,R0	;FIND FUNCTION BITS
   5008	021324					CALL	CESCHK		;RESET DTE-20 IF CLOCK ERROR STOP
	021324	004737 	021540'			JSR	PC,CESCHK
   5009	021330	042700 	000777 			BIC	#777,R0		;CLEAR OFF LOW ORDER FUNCTION CODE
   5010	021334	052700 	000201 			BIS	#DCOMST!DFUNC,R0 ;SET DIAG FUNCTION EXECUTE
   5011	021340	000410 				BR	$KLDFC		;ENTER COMMON CODE
   5012						;
   5013	021342				$KLDFW::
   5014	021342	011001 				MOV	(R0),R1		; [4.1.1137] POINT TO THE DTE-20
   5015	021344	012600 				MOV	(SP)+,R0	;FIND FUNCTION BITS
   5016	021346					CALL	CESCHK		;RESET DTE-20 IF CLOCK ERROR STOP
	021346	004737 	021540'			JSR	PC,CESCHK
   5017	021352	042700 	000777 			BIC	#777,R0		;MASK OFF LOW ORDER FUNCTION CODE
   5018	021356	052700 	000215 			BIS	#DCOMST!DSEND!DIKL10!DFUNC,R0
   5019	021362				$KLDFC::
   5020	021362					MFPS	(R2)+,DXWD3(R1)	;STORE THE OUTPUT FOR THE EBUS
	021362	012261 	000002 			MOV	(R2)+,DXWD3(R1)
   5021	021366					MFPS	(R2)+,DXWD2(R1)
	021366	012261 	000004 			MOV	(R2)+,DXWD2(R1)
   5022	021372					MFPS	(R2)+,DXWD1(R1)
	021372	012261 	000006 			MOV	(R2)+,DXWD1(R1)
   5023	021376	032700 	000004 			BIT	#DSEND,R0	;DIAG WRITE?
   5024	021402	001711 				BEQ	KLCST		;GO TO COMMON OUTPUT EQOUTINE
   5025	021404				10$:
   5026	021404	012761 	000014 	000030 		MOV	#DIKL10!DSEND,DAG1(R1)	;WRITE
   5027	021412	012761 	010000 	000010 		MOV	#DEP,TNAD1(R1)	;SIMULATE DEPOSIT
   5028	021420	005061 	000012 			CLR	TNAD2(R1)
   5029	021424				20$:
   5030	021424	010046 				MOV	R0,-(SP)	;SAVE R0
   5031	021426	010100 				MOV	R1,R0
   5032	021430					CALL	..WFED		; [4.1.1121] WAIT FOR DEX DONE
	021430	004737 	046216'			JSR	PC,..WFED
   5033	021434	012600 				MOV	(SP)+,R0
   5034	021436	000673 				BR	KLCST
   5035						;
DMDTE	- DTE DIRECTIVES MODULE	MACRO M1113  10-NOV-81 17:22  PAGE 98
$PRVDP -- PRIVILEDGED DEPOSIT

   5037						.SBTTL	$PRVDP -- PRIVILEDGED DEPOSIT
   5038
   5039					;+
   5040					;	$PRVDP -- PRIVILEDGED DEPOSIT OF THE KL10 MEMORY
   5041					;
   5042					;
   5043					;	ENTRY CONDITIONS:
   5044					;
   5045					;	R0 -- PROCESSOR TABLE POINTER
   5046					;	R1 -- WORD 5 OF DPB
   5047					;	R2 -- WORD 3 OF DPB
   5048					;	R3 -- WORD 4 OF DPB
   5049					;	R4 -- ADDRESS OF DPB
   5050					;	R5 -- ATL NODE ADDRESS OF ISSUING TASK
   5051					;
   5052					;	CALLING SEQUENCE:
   5053					;
   5054					;	JMP	$PRVDP
   5055					;
   5056					;	ERROR CONDITIONS:
   5057					;
   5058					;	REGISTERS SAVED AND RESTORED BY EMT SERVICE
   5059					;-
   5060
   5061	021440				$PRVDP::
   5062	021440					MFPS	2(R2),R1	;SET UP THE INTERNAL ADDRESS 2(PDP11 ADDRESS
	021440	016201 	000002 			MOV	2(R2),R1
   5063	021444	052601 				BIS	(SP)+,R1	;SET HIGH ORDER OF PRIVILEDGE
   5064	021446	052701 	010000 			BIS	#DEP,R1		;SET PRIVILEDGED DEPOSIT
   5065	021452	000405 				BR	PRVCM
   5066						;
DMDTE	- DTE DIRECTIVES MODULE	MACRO M1113  10-NOV-81 17:22  PAGE 99
$PRVEX -- PRIVILEDGED EXAMINE

   5068						.SBTTL	$PRVEX -- PRIVILEDGED EXAMINE
   5069
   5070					;+
   5071					;	$PRVEX -- PRIVILEDGED EXAMINE OF THE KL10 MEMORY
   5072					;
   5073					;	ENTRY CONDITIONS:
   5074					;
   5075					;	R0 -- PROCESSOR TABLE POINTER
   5076					;	R1 -- WORD 5 OF DPB
   5077					;	R2 -- WORD 3 OF DPB
   5078					;	R3 -- WORD 4 OF DPB
   5079					;	R4 -- ADDRESS OF DPB
   5080					;	R5 -- ATL NODE ADDRESS OF ISSUING TASK
   5081					;
   5082					;	CALLING SEQUENCE:
   5083					;
   5084					;	JMP	$PRVEX
   5085					;
   5086					;	ERROR CONDITIONS:
   5087					;
   5088					;	REGISTERS SAVED AND RESTORED BY EMT SERVICE
   5089					;-
   5090
   5091	021454				$PRVEX::
   5092	021454					MFPS	2(R2),R1	;SET UP THE INTERNAL ADDRESS 2(PDP11 ADDRESS
	021454	016201 	000002 			MOV	2(R2),R1
   5093	021460	052601 				BIS	(SP)+,R1	;SET HIGH ORDER OF PRIVILEDGE
   5094	021462	042701 	010000 			BIC	#DEP,R1		;INSURE THAT IT IS AN EXAMINE
   5095	021466				PRVCM:
   5096	021466	052701 	004000 			BIS	#PRTOFF,R1	;SET PRIVILEDGED EXAMINE/DEPOSIT
   5097	021472					MFPS	@R2,R2		;LOWER ORDER HALF
	021472	011202 				MOV	@R2,R2
   5098	021474	011000 				MOV	(R0),R0		; [4.1.1137] POINT TO THE DTE-20
   5099	021476					CALL	..SWED		; [4.1.1121] START-WAIT FOR EXAMINE/DEPOSIT
	021476	004737 	046670'			JSR	PC,..SWED
   5100	021502	103401 				BCS	20$		;E BOX STOPPED ERROR
   5101	021504	104401 				TRAP	DR.01		;MUST BE OK -- RETURN TO USER
   5102						;
   5103	021506				20$:
   5104	021506	104776 				TRAP	DE.02		;RETURN EBOX STOPPED ERROR
   5105						;
DMDTE	- DTE DIRECTIVES MODULE	MACRO M1113  10-NOV-81 17:22  PAGE 100
$RWDRG -- READ/WRITE DIAGNOSTIC REGISTER

   5107						.SBTTL	$RWDRG -- READ/WRITE DIAGNOSTIC REGISTER
   5108
   5109					;+
   5110					;
   5111					;	$RWDRG -- PRIVILEDGED READ/WRITE OF DIAGNOSTIC DTE20 REGISTERS
   5112					;
   5113					;	ENTRY CONDITIONS:
   5114					;
   5115					;	R0 -- PROCESSOR TABLE POINTER
   5116					;	R1 -- WORD 5 OF DPB
   5117					;	R2 -- WORD 3 OF DPB
   5118					;	R3 -- WORD 4 OF DPB
   5119					;	R4 -- ADDRESS OF DPB
   5120					;	R5 -- ATL NODE ADDRESS OF ISSUING TASK
   5121					;
   5122					;	CALLING SEQUENCE:
   5123					;
   5124					;	JMP	$RWDRG
   5125					;
   5126					;	ERROR CONDITIONS:
   5127					;
   5128					;	REGISTERS SAVED AND RESTORED BY EMT SERVICE
   5129					;-
   5130
   5131	021510				$RWDRG::
   5132	021510	011001 				MOV	(R0),R1		; [4.1.1137] POINT TO THE DTE-20
   5133	021512	000316 				SWAB	@SP		;FIND THE REGISTER NUMBER
   5134	021514	062601 				ADD	(SP)+,R1	;MAKE EXTERNAL PAGE OFFSET
   5135	021516	005702 				TST	R2		;IS IT WRITE?
   5136	021520	001402 				BEQ	10$		;NO -- DON'T SET IT
   5137	021522					MFPS	@R2,DAG1(R1)	;YES -- SET REGISTER
	021522	011261 	000030 			MOV	@R2,DAG1(R1)
   5138	021526				10$:
   5139	021526	005703 				TST	R3		;RETURN ADDRESS SPECIFIED?
   5140	021530	001402 				BEQ	20$		;NO -- THEN RETURN ALL OK
   5141	021532					MTPS	DAG1(R1),@R3	;SET IN USER SPACE
	021532	016113 	000030 			MOV	DAG1(R1),@R3
   5142	021536				20$:
   5143	021536	104401 				TRAP	DR.01		;MUST BE OK -- RETURN TO USER
   5144						;
DMDTE	- DTE DIRECTIVES MODULE	MACRO M1113  10-NOV-81 17:22  PAGE 101
CESCHK -- CHECK FOR CLOCK ERROR STOP

   5146						.SBTTL	CESCHK -- CHECK FOR CLOCK ERROR STOP
   5147
   5148					;+
   5149					;	CESCHK -- CHECK FOR CLOCK ERROR STOP
   5150					;
   5151					;	ENTRY CONDITIONS:
   5152					;
   5153					;	R1 -- ADDRESS OF CURRENT DTE-20
   5154					;
   5155					;	NO REGISTERS MODIFIED
   5156					;-
   5157
   5158	021540				CESCHK:
   5159	021540	005061 	000030 			CLR	DAG1(R1)	;CLEAR ALL FLAGS
   5160	021544	032761 	004000 	000030 		BIT	#DS04,DAG1(R1)	;CLOCK ERROR STOP UP?
   5161	021552	001403 				BEQ	10$		;NO-- JUST RETURN
   5162	021554	012761 	000100 	000032 		MOV	#DRESET,DAG2(R1) ;YES-- RESET DTE-20
   5163	021562				10$:
   5164	021562					RETURN			;FROM CESCHK
	021562	000207 				RTS	PC
DMASS	- "ASSIGN LUN" DIRECTIV	MACRO M1113  10-NOV-81 17:22  PAGE 102
CESCHK -- CHECK FOR CLOCK ERROR STOP

   5166						.TITLE	DMASS	- "ASSIGN LUN" DIRECTIVE MODULE
   5167						.SBTTL	ASIGN LUN -- COPYRIGHT STATEMENT
   5168	021564					IDENT$	1,0
						.IDENT	/001000/
   5169					;
   5170					;                             COPYRIGHT (C) 1975, 1978 BY
   5171					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   5172					;
   5173					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   5174					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   5175					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   5176					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   5177					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   5178					;
   5179					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   5180					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   5181					;       CORPORATION.
   5182					;
   5183					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   5184					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   5185					;
   5186					;		MODULE: "ASSIGN LUN" DIRECTIVE
   5187					;
   5188					;		VERSION: 01-00
   5189					;
   5190					;		AUTHOR: R. MCLEAN
   5191					;
   5192					;		DATE: 19 JUL 75
   5193					;
   5194					;
   5195					;	THIS MODULE CONTAINS:
   5196					;
   5197					;	1 -- CODE TO SERVICE THE "ASSIGN LUN" DIRECTIVE.
   5198					;
   5199					;	MACRO DEFINITIONS
   5200					;
   5201						.MCALL	CALL,RETURN
   5202						.MCALL	MFPI,MFPS
DMASS	- "ASSIGN LUN" DIRECTIV	MACRO M1113  10-NOV-81 17:22  PAGE 103
DIRECTIVE -- ASSIGN LUN

   5204						.SBTTL	DIRECTIVE -- ASSIGN LUN
   5205					;+
   5206					; THE "ASSIGN LUN" DIRECTIVE
   5207					;
   5208					; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO ASSIGN A LOGICAL UNIT NUMBER (LUN)
   5209					; TO A PHYSICAL DEVICE-UNIT.
   5210					;
   5211					; A FOUR-WORD DPB OF THE FOLLOWING FORMAT IS USED TO ASSIGN A LUN
   5212					; TO A PHYSICAL DEVICE:
   5213					;
   5214					;	WD. 00 -- DIC (07.) & DPB SIZE (4.),
   5215					;	WD. 01 -- LOGICAL UNIT NUMBER,
   5216					;	WD. 02 -- PHYSICAL DEVICE NAME,
   5217					;	WD. 03 -- PHYSICAL DEVICE UNIT NUMBER.
   5218					;
   5219					; A TWO-WORD DPB OF THE FOLLOWING FORMAT IS USED TO DEASSIGN (ASSIGN
   5220					; TO "NONE") A LUN:
   5221					;
   5222					;	WD. 00 -- DIC (07.) & DPB SIZE (2.),
   5223					;	WD. 01 -- LOGICAL UNIT NUMBER.
   5224					;
   5225					; THE FOLLOWING STATUS IS RETURNED:
   5226					;
   5227					; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
   5228					; OF ONE (+1).
   5229					;
   5230					; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
   5231					;
   5232					;	-90 -- LUN USAGE INTERLOCKED (VIZ., FILE OPEN),
   5233					;	-92 -- INVALID DEVICE AND/OR UNIT,
   5234					;	-96 -- INVALID LOGICAL UNIT NUMBER,
   5235					;	-98 -- PART OF DPB IS OUT OF ISSUING TASK'S ADDRESS SPACE,
   5236					;	-99 -- DIC OR DPB SIZE IS INVALID.
   5237					;-
   5238					; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
   5239					; DIRECTIVE ISSUING TASK'S PS, PC, & R1-R5 PUSHED ONTO THE
   5240					;  STACK, AND R0-R5 SET AS FOLLOWS:
   5241					;	R0 -- PC OF EMT INSTRUCTION
   5242					;	R1 -- POINTER TO WORD FOLLOWING DIC & SIZE
   5243					;	R2 -- DPB SIZE
   5244					;	R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
   5245					;	R5 -- ATL NODE ADDRESS OF ISSUING TASK ('.CRTSK')
   5246					;
   5247					; R5 IS LEFT UNALTERED (I.E. POINTING TO ISSUING TASK'S ATL NODE).
   5248					;
   5249					;
   5250					; LUN ASSIGNMENT -- CHECK FOR VALIDITY OF LUN & DEVICE-UNIT AND ASSIGN
   5251					; IF NOT INTERLOCKED.
   5252					;
   5253	021564				.D.ASS::MFPI	@R1		;VALIDATE LUN, AND SETUP  TO ACCESS TASK
	021564	011146 				MOV	@R1,-(SP)
   5254									;HEADER, BY PUSHING LUN AND CALLING
   5255									;SUBROUTINE TO CONVERT & VERIFY.
   5256	021566					CALL	.VCLUN		;IF INVALID LUN, RETURN STS=-96.
	021566	004737 	015654'			JSR	PC,.VCLUN
   5257	021572	010416 				MOV	R4,@SP		;PUD ENTRY ADR ON STACK REPLACED BY LUT ADDRESS
   5258					;
DMASS	- "ASSIGN LUN" DIRECTIV	MACRO M1113  10-NOV-81 17:22  PAGE 103-1
DIRECTIVE -- ASSIGN LUN

   5259	021574	005003 				CLR	R3		;SET UP INCASE OF DEASSIGNMENT
   5260	021576	020227 	000002 			CMP	R2,#2		;IS THIS LUN DEASSIGNMENT?
   5261	021602	001422 				BEQ	60$		;YES -- DEASSIGN LUN
   5267					;
   5268	021604				45$:	MFPI	(R1)+		;PUSH LUN, AND LEAVE R1 POINTING TO DEV NAME
	021604	012146 				MOV	(R1)+,-(SP)
   5269					;
   5270	021606					MFPS	(R1)+,R4	;SET R4 TO DEVICE NAME.
	021606	012104 				MOV	(R1)+,R4
   5271									;R0 CONTAINS DEVICE UNIT NUMBER
   5272	021610					MFPS	@R1,R0
	021610	011100 				MOV	@R1,R0
   5273					;
   5274					; SCAN PUD FOR DEVICE-UNIT IN R4-R0.
   5275					;
   5276	021612	012703 	010232'			MOV	#.PUDBA,R3	;USE R3 TO SCAN PUD
   5277	021616				20$:
   5278	021616	020327 	011312'			CMP	R3,#.PUDEA	;END OF PUD?
   5279	021622	001001 				BNE	30$
   5280	021624	104644 				TRAP	DE.92		;YES -- DEVICE-UNIT NOT FOUND
   5281	021626	021304 			30$:	CMP	@R3,R4		;NO -- DEVICE NAME MATCH?
   5282	021630	001003 				BNE	40$		;NO -- CHECK NEXT ENTRY
   5283	021632	126300 	000002 			CMPB	U.UN(R3),R0	;YES -- UNIT NUMBER MATCH?
   5284	021636	001403 				BEQ	50$		;YES -- DEVICE-UNIT FOUND
   5285									;NO -- CHECK NEXT ENTRY
   5286	021640				40$:
   5287	021640	062703 	000050 			ADD	#U.SZ,R3	;ADVANCE R3 TO NEXT PUD ENTRY (IF ANY), AND
   5288	021644	000764 				BR	20$		;CHECK FOR DEVICE-UNIT MATCH.
   5289					;
   5290					; INDICATED DEVICE-UNIT FOUND IN PUD -- PUD ENTRY ADDRESS IS IN R3
   5291					;
   5292	021646	012600 			50$:	MOV	(SP)+,R0	;SET R0 TO LUN
   5293					;
   5294					; R3 CONTAINS A VALUE (PUD ENTRY ADDRESS OR ZERO) TO BE SET IN THE
   5295					; THE FIRST WORD OF THE LUT PER LUN IN R0.
   5296					;
   5297	021650				60$:
   5298	021650	006300 				ASL	R0		;SET R0 TO FOUR TIMES THE LUN
   5299	021652	006300 				ASL	R0
   5300	021654	062600 				ADD	(SP)+,R0	;POINT TO LUT AS SAVED
   5301					;
   5302	021656	005740 				TST	-(R0)		;IS LUN LOCKED IN USE?
   5303	021660	001401 				BEQ	70$
   5304	021662	104646 				TRAP	DE.90		;YES -- RETURN STS=-90.
   5305	021664	010340 			70$:	MOV	R3,-(R0)	;NO -- MAKE ASSIGNMENT, AND
   5306	021666	104401 				TRAP	DR.01		;RETURN STS=+1
DMGLI	- "GET LUN INFO" DIRECT	MACRO M1113  10-NOV-81 17:22  PAGE 104
DIRECTIVE -- ASSIGN LUN

   5308						.TITLE	DMGLI	- "GET LUN INFO" DIRECTIVE MODULE
   5309						.SBTTL	GET LUN INFO -- COPYRIGHT STATEMENT
   5310	021670					IDENT$	1,0
						.IDENT	/001000/
   5311					;
   5312					;                             COPYRIGHT (C) 1975, 1978 BY
   5313					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   5314					;
   5315					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   5316					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   5317					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   5318					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   5319					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   5320					;
   5321					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   5322					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   5323					;       CORPORATION.
   5324					;
   5325					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   5326					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   5327					;
   5328					;		MODULE: "GET LUN INFO" DIRECTIVE
   5329					;
   5330					;		VERSION: 01-00
   5331					;
   5332					;		AUTHOR: R. MCLEAN
   5333					;
   5334					;		DATE: 19 JUL 75
   5335					;
   5336					;
   5337					;	THIS MODULE CONTAINS:
   5338					;
   5339					;	1 -- CODE TO SERVICE THE "GET LUN INFO" DIRECTIVE.
   5340					;
   5341					;	MACROS
   5342					;
   5343						.MCALL	CALL,RETURN,MTPI,MFPI,MFPS
DMGLI	- "GET LUN INFO" DIRECT	MACRO M1113  10-NOV-81 17:22  PAGE 105
DIRECTIVE -- GET LUN INFORMATION

   5345						.SBTTL	DIRECTIVE -- GET LUN INFORMATION
   5346					;+
   5347					; THE "GET LUN INFORMATION" DIRECTIVE
   5348					;
   5349					; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO FILL A SIX WORD BUFFER
   5350					; WITH INFORMATION ABOUT A PHYSICAL UNIT TO WHICH IT IS ASSIGNED.
   5351					; IF REQUESTS TO THE PHYSICAL UNIT HAVE BEEN RE-DIRECTED TO ANOTHER
   5352					; UNIT, THE INFORMATION RETURNED WILL DESCRIBE THE EFFECTIVE ASSIGNMENT.
   5353					;
   5354					; A THREE WORD DPB OF THE FOLLOWING FORMAT IS USED:
   5355					;
   5356					;	WD. 00 -- DIC (05.) & DPB SIZE (3.),
   5357					;	WD. 01 -- LUN,
   5358					;	WD. 02 -- ADDRESS OF SIX-WORD BUFFER.
   5359					;
   5360					;
   5361					; THE SIX WORD BUFFER IS FILLED WITH THE FIRST SIX WORDS OF THE
   5362					; CORRESPONDING PUD ENTRY AS FOLLOWS:
   5363					;
   5364					;	WD. 00 -- NAME OF ASSIGNED DEVICE,
   5365					;	WD. 01 -- UNIT NUMBER OF ASSIGNED DEVICE & FLAGS BYTE,
   5366					;	WD. 02 -- DEVICE CHARACTERISTICS WD. #1,
   5367					;	WD. 03 -- DEVICE CHARACTERISTICS WD. #2,
   5368					;	WD. 04 -- DEVICE CHARACTERISTICS WD. #3,
   5369					;	WD. 05 -- DEVICE CHARACTERISTICS WD. #4.
   5370					;
   5371					; THE FOLLOWING STATUS IS RETURNED:
   5372					;
   5373					; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
   5374					; OF ONE (+1).
   5375					;
   5376					; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
   5377					;
   5378					;	-05 -- UNASSIGNED LUN,
   5379					;
   5380					;	-95 -- INVALID BUFFER SIZE ( 1> OR >U.SZ)
   5381					;	-96 -- INVALID LOGICAL UNIT NUMBER,
   5382					;	-98 -- PART OF DPB OR BUFFER IS OUT OF TASK'S ADDRESS SPACE,
   5383					;	-99 -- DIC OR DPB SIZE IS INVALID.
   5384					;-
   5385									;R0 CONTAINS BUFFER ADDRESS (LAST DPB WORD)
   5386					;
   5387	021670	006302 			.D.GLI::ASL	R2		;MULTIPLY THE DPB SIZE BY 2
   5393					;
   5394					;
   5395	021672				10$:	MFPI	(R1)+		;PUSH LUN, AND CONVERT TO PUD ENTRY ADR
	021672	012146 				MOV	(R1)+,-(SP)
   5396	021674					CALL	.VCLUN		;IF INVALID LUN, RETURN STS=-96.
	021674	004737 	015654'			JSR	PC,.VCLUN
   5397	021700	012604 				MOV	(SP)+,R4	;SET R4 TO PUD ENTRY ADR IF LUN ASSIGNED
   5398	021702	001001 				BNE	20$		;IF UN-ASSIGNED LUN, RETURN STS=-05.
   5399	021704	104773 				TRAP	DE.05
   5400					;
   5401					; FILL BUFFER -- IF SEGMENT FAULT, RETURN STS=-98.
   5402					;
   5403	021706				20$:	MFPS	(R1),R0
	021706	011100 				MOV	(R1),R0
DMGLI	- "GET LUN INFO" DIRECT	MACRO M1113  10-NOV-81 17:22  PAGE 105-1
DIRECTIVE -- GET LUN INFORMATION

   5404	021710	012446 			30$:	MOV	(R4)+,-(SP)
   5405	021712					MTPI	(R0)+
	021712	012620 				MOV	(SP)+,(R0)+
   5406	021714	077203 				SOB	R2,30$
   5407					;
   5408	021716	104401 				TRAP	DR.01		;RETURN STS=+1
   5409					;
DMGTP	- "GET TIME PARAMETERS"	MACRO M1113  10-NOV-81 17:22  PAGE 106
DIRECTIVE -- GET LUN INFORMATION

   5411						.TITLE	DMGTP	- "GET TIME PARAMETERS" DIRECTIVE MODULE
   5412						.SBTTL	GET TIME PARAMETERS -- COPYRIGHT STATEMENT
   5413	021720					IDENT$	1,0
						.IDENT	/001000/
   5414					;
   5415					;                             COPYRIGHT (C) 1975, 1978 BY
   5416					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   5417					;
   5418					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   5419					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   5420					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   5421					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   5422					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   5423					;
   5424					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   5425					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   5426					;       CORPORATION.
   5427					;
   5428					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   5429					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   5430					;
   5431					;		MODULE: "GET TIME PARAMETERS" DIRECTIVE
   5432					;
   5433					;		VERSION: 01-00
   5434					;
   5435					;		AUTHOR: R. MCLEAN
   5436					;
   5437					;		DATE: 19 JUL 75
   5438					;
   5439					;
   5440					;	THIS MODULE CONTAINS:
   5441					;
   5442					;	1 -- CODE TO SERVICE THE "GET TIME PARAMETERS" DIRECTIVE.
   5443					;
   5444					;	MACROS
   5445					;
   5446						.MCALL	CALL,RETURN,MTPI,MFPS
DMGTP	- "GET TIME PARAMETERS"	MACRO M1113  10-NOV-81 17:22  PAGE 107
DIRECTIVE -- GET TIME PARAMETERS

   5448						.SBTTL	DIRECTIVE -- GET TIME PARAMETERS
   5449					;+
   5450					; THE "GET TIME PARAMETERS" DIRECTIVE
   5451					;
   5452					; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO FILL AN INDICATED EIGHT WORD BUFFER
   5453					; WITH CURRENT TIME PARAMETERS.
   5454					;
   5455					; A TWO WORD DPB OF THE FOLLOWING FORMAT IS USED:
   5456					;
   5457					;	WD. 00 -- DIC (59.) & DPB SIZE (2.),
   5458					;	WD. 01 -- ADDRESS OF 8-WORD BUFFER.
   5459					;
   5460					; THE 8-WORD BUFFER IS FILLED AS FOLLOWS:
   5461					;
   5462					;	WD. 0 -- YEAR (SINCE 1900),
   5463					;	WD. 1 -- MONTH OF YEAR,
   5464					;	WD. 2 -- DAY OF MONTH,
   5465					;	WD. 3 -- HOUR OF DAY,
   5466					;	WD. 4 -- MINUTE OF HOUR,
   5467					;	WD. 5 -- SECOND OF MINUTE,
   5468					;	WD, 6 -- TICK OF SECOND,
   5469					;	WD. 7 -- TICKS PER SECOND.
   5470					;
   5471					; THE FOLLOWING STATUS IS RETURNED:
   5472					;
   5473					; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
   5474					; OF ONE (+1).
   5475					;
   5476					; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
   5477					;
   5478					;	-98 -- PART OF DPB OR BUFFER IS OUT OF TASK'S ADDRESS SPACE,
   5479					;	-99 -- DIC OR DPB SIZE IS INVALID.
   5480					;
   5481	021720	013746 	001154'		.D.GTP::MOV	.TKPS,-(SP)	;PUSH TICKS-PER-SECOND
   5482	021724	010104 				MOV	R1,R4		;SAVE DPB POINTER
   5483	021726	013700 	001150'			MOV	.SSM,R0		;FIND HOURS
   5484	021732	012701 	003410 			MOV	#60.*30.,R1
   5485	021736					CALL	$DIV		;DIVIDE
	021736	004737 	000000G			JSR	PC,$DIV
   5486	021742	010003 				MOV	R0,R3		;SAVE ANSWER
   5487	021744	010100 				MOV	R1,R0		;SET UP REMAINDER FOR NEXT DIVIDE
   5488	021746	012701 	000036 			MOV	#30.,R1
   5489	021752					CALL	$DIV		;FIND MIN
	021752	004737 	000000G			JSR	PC,$DIV
   5490	021756	005046 				CLR	-(SP)		;TICKS NOT RETURNED
   5491	021760	006301 				ASL	R1
   5492	021762	010146 				MOV	R1,-(SP)	;SAVE SECONDS
   5493	021764	010046 				MOV	R0,-(SP)
   5494	021766	010346 				MOV	R3,-(SP)	;HOURS
   5495	021770	005046 				CLR	-(SP)
   5496	021772	113716 	001144'			MOVB	.DAY,@SP
   5497	021776	005216 				INC	@SP
   5498	022000	005046 				CLR	-(SP)
   5499	022002	113716 	001145'			MOVB	.MON,@SP
   5500	022006	005216 				INC	@SP
   5501	022010	013746 	001142'			MOV	.YEAR,-(SP)
   5502	022014	162716 	003554 			SUB	#1900.,@SP
DMGTP	- "GET TIME PARAMETERS"	MACRO M1113  10-NOV-81 17:22  PAGE 107-1
DIRECTIVE -- GET TIME PARAMETERS

   5503					;
   5504					;
   5505					; MOVE TIME PARAMETERS FROM KERNEL STACK TO 8-WORD BUFFER IN USER SPACE
   5506					;
   5507					;
   5508	022020	012703 	000010 			MOV	#8.,R3
   5509					;
   5510	022024					MFPS	(R4),R4		;FIND BUFFER ADDRESS
	022024	011404 				MOV	(R4),R4
   5511	022026				10$:
   5512	022026					MTPI	(R4)+		;MOVE WORD
	022026	012624 				MOV	(SP)+,(R4)+
   5513	022030	077302 				SOB	R3,10$		;LOOP 8 TIMES
   5514					;
   5515	022032	104401 				TRAP	DR.01		;RETURN STS=+1
   5516					;
DMSED	- SIGNIFICANT EVENT DIR	MACRO M1113  10-NOV-81 17:22  PAGE 108
DIRECTIVE -- GET TIME PARAMETERS

   5518						.TITLE	DMSED	- SIGNIFICANT EVENT DIRECTIVES MODULE
   5519						.SBTTL	SIGNIFICANT EVENT DIRECTIVES -- COPYRIGHT STATEMENT
   5520	022034					IDENT$	1,0
						.IDENT	/001000/
   5521					;
   5522					;                             COPYRIGHT (C) 1975, 1978 BY
   5523					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   5524					;
   5525					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   5526					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   5527					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   5528					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   5529					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   5530					;
   5531					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   5532					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   5533					;       CORPORATION.
   5534					;
   5535					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   5536					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   5537					;
   5538					;		MODULE: SIGNIFICANT EVENT DIRECTIVES
   5539					;
   5540					;		VERSION: 01-00
   5541					;
   5542					;		AUTHOR:  R. MCLEAN
   5543					;
   5544					;		DATE: 19 MAR 75
   5545					;
   5546					;
   5547					;	THIS MODULE CONTAINS:
   5548					;
   5549					;	1 -- CODE TO SERVICE THE "WAITFOR SINGLE EVENT FLAG" DIRECTIVE,
   5550					;	2 -- CODE TO SERVICE THE "WAITFOR LOGICAL 'OR' OF FLAGS" DIRECTIVE,
   5551					;	3 -- CODE TO SERVICE THE "WAIT FOR NEXT SIGNIFICANT EVENT" DIRECTIVE.
   5552					;	4 -- CODE TO SERVICE THE "CLEAR EVENT FLAG" DIRECTIVE,
   5553					;	5 -- CODE TO SERVICE THE "SET EVENT FLAG" DIRECTIVE,
   5554					;	6 -- CODE TO SERVICE THE "DECLARE SIG EVENT" DIRECTIVE,
   5555					;	7 -- CODE TO SERVICE THE "READ EVENT FLAGS" DIRECTIVE
   5556					;
   5557					;	MACROS
   5558
   5559						.MCALL	CALL,RETURN,MTPS,MFPS,MFPI,MTPI
DMSED	- SIGNIFICANT EVENT DIR	MACRO M1113  10-NOV-81 17:22  PAGE 109
DIRECTIVE -- CLEAR EVENT FLAG

   5561						.SBTTL	DIRECTIVE -- CLEAR EVENT FLAG
   5562					;+
   5563					;	THE "CLEAR EVENT FLAG" DIRECTIVE
   5564					;
   5565					;	THIS DIRECTIVE INSTRUCTS THE SYSTEM TO CLEAR AND INDICATE
   5566					;	EVENT FLAG AND REPORT THE FLAG'S POLARITY BEFORE CLEARING.
   5567					;
   5568					;	A TWO WORD DPB OF THE FOLLOWING FORMAT IS USED;
   5569					;
   5570					;	WD. 00 -- DIC (31.) & DPB SIZE (2.)
   5571					;	WD. 01 -- EVENT FLAG NUMBER (EFN)
   5572					;
   5573					;	THE FOLLOWING STATUS IS RETURNED:
   5574					;
   5575					;
   5576					; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS OF:
   5577					;
   5578					;	R0 -- +0 -- FLAG WAS ALREADY RESET,
   5579					;	R0 -- +2 -- FLAG WAS SET.
   5580					;
   5581					; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
   5582					;
   5583					;	R0 -- -97 -- EFN>64 OR EFN<1,
   5584					;	R0 -- -99 -- DIC OR DPB SIZE IS INVALID.
   5585					;-
   5586					; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
   5587					; DIRECTIVE ISSUING TASK'S PS, PC, & R0-R5 PUSHED ONTO THE
   5588					;  STACK, AND R0-R5 SET AS FOLLOWS:
   5589					;	R0 -- PC OF EMT INSTRUCTION
   5590					;	R1 -- WORD FOLLOWING THE DIC & SIZE
   5591					;	R2 -- SIZE OF DPB (IN WORDS),
   5592					;	R3 -- DIC (DIRECTIVE IDENTIFICATION CODE )
   5593					;	R5 -- ATL NODE ADDRESS OF ISSUING TASK (.CRTSK)
   5594					;
   5595					;
   5596					;
   5597	022034				.D.CEF::CALL	.CEFN		;CONVERT EFN TO: (1) FLAG WORD ADDRESS
	022034	004737 	043062'			JSR	PC,.CEFN
   5598									;IN R2, AND (2) FLAG MASK IN R3 (R2 IS
   5599									;POINTING TO EFN).  IF EFN<0, OR EFN>64.,
   5600									;RETURN STS=-97.  IF EFN=0 (NO EVENT FLAG
   5601									;SPECIFIED), RETURN WITH R2=R3=00.
   5602									;CONDITION CODES ARE SET PER "TST R3".
   5603					;
   5604									;EVENT FLAG SPECIFIED?
   5605	022040	001443 				BEQ	SEX97		;NO -- RETURN STS=-97
   5606	022042	030312 				BIT	R3,@R2		;YES -- IS FLAG CLEARED?
   5607	022044	001410 				BEQ	SEXP0		;YES -- RETURN STS=+0
   5608	022046	040312 				BIC	R3,@R2		;NO -- CLEAR FLAG & RETURN STS=+2
   5609	022050	104402 			SEXP2:	TRAP	DR.02		;COMMON RETURN -- STS=+2
DMSED	- SIGNIFICANT EVENT DIR	MACRO M1113  10-NOV-81 17:22  PAGE 110
DIRECTIVE -- SET EVENT FLAG

   5611					.SBTTL	DIRECTIVE -- SET EVENT FLAG
   5612					;+
   5613					; THE "SET EVENT FLAG" DIRECTIVE
   5614					;
   5615					; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO SET AND INDICATED EVENT FLAG
   5616					; AND REPORT THE FLAG'S POLARITY BEFORE SETTING.
   5617					;
   5618					; A TWO WORD DPB OF THE FOLLOWING FORMAT IS USED:
   5619					;
   5620					;	WD. 00 -- DIC (33.) & DPB SIZE (2.),
   5621					;	WD. 01 -- EVENT FLAG NUMBER (EFN).
   5622					;
   5623					; THE FOLLOWING STATUS IS RETURNED:
   5624					;
   5625					; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS OF:
   5626					;
   5627					;	R0 -- +0 -- FLAG WAS CLEARED,
   5628					;	R0 --+2 -- FLAG WAS SET.
   5629					;
   5630					; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
   5631					;
   5632					;	R0 -- -97 -- EFN>64 OR EFN<1,
   5633					;	R0 -- -99 -- DIC OR DPB SIZE IS INVALID.
   5634					;-
   5635					; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
   5636					; DIRECTIVE ISSUING TASK'S PS, PC, & R0-R5 PUSHED ONTO THE
   5637					;  STACK, AND R0-R5 SET AS FOLLOWS:
   5638					;	R0 -- PC OF EMT INSTRUCTION
   5639					;	R1 -- WORD FOLLOWING DIC % SIZE
   5640					;	R2 -- DPB SIZE
   5641					;	R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
   5642					;	R5 -- ATL NODE ADDRESS OF ISSUING TASK (.CRTSK)
   5643					;
   5644					;
   5645									;R1 IS POINTING TO EFN IN DPB
   5646					;
   5647	022052				.D.SEF::CALL	.CEFN		;CONVERT EFN TO: (1) FLAG WORD ADDRESS
	022052	004737 	043062'			JSR	PC,.CEFN
   5648									;IN R2, AND (2) FLAG MASK IN R3 (R2 IS
   5649									;POINTING TO EFN).  IF EFN<0, OR EFN>64.,
   5650									;RETURN STS=-97.  IF EFN=0 (NO EVENT FLAG
   5651									;SPECIFIED), RETURN WITH R2=R3=00.
   5652									;CONDITION CODES ARE SET PER "TST R3".
   5653					;
   5654									;EVENT FLAG SPECIFIED?
   5655	022056	001434 				BEQ	SEX97		;NO -- RETURN STS=-97
   5656	022060	030312 			SEXCM:	BIT	R3,@R2		;YES -- IS FLAG ALREADY SET?
   5657	022062	001372 				BNE	SEXP2		;YES -- RETURN STS=+2
   5658	022064	050312 				BIS	R3,@R2		;NO -- SET FLAG & RETURN STS=+0
   5659	022066	104400 			SEXP0:	TRAP	DR.00		;COMMON RETURN -- STS=+0
DMSED	- SIGNIFICANT EVENT DIR	MACRO M1113  10-NOV-81 17:22  PAGE 111
DIRECTIVE -- DECLARE SIGNIFICANT EVENT

   5661					.SBTTL	DIRECTIVE -- DECLARE SIGNIFICANT EVENT
   5662					;+
   5663					; THE "DECLARE SIGNIFICANT EVENT" DIRECTIVE
   5664					;
   5665					; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO DECLARE A SIGNIFICANT EVENT
   5666					; AND OPTIONALLY SET AN EVENT FLAG & AND REPORT ITS POLARITY BEFORE
   5667					; IT WAS SET.
   5668					;
   5669					; A TWO WORD DBP OF THE FOLLOWING FORMAT IS USED TO (1) READ AN EVENT
   5670					; FLAG, (2) SET THE EVENT FLAG, (3) DECLARE A SIGNIFICANT EVENT, AND
   5671					; (4) REPORT THE PRE-EVENT FLAG POLARITY:
   5672					;
   5673					;	WD. 00 -- DIC (35.) & DPB SIZE (2.),
   5674					;	WD. 01 -- EVENT FLAG NUMBER (EFN).
   5675					;
   5676					; A ONE WORD DPB OF THE FOLLOWING FORMAT IS USED TO (1) DECLARE A
   5677					; SIGNIFICANT EVENT:
   5678					;
   5679					;	WD. 00 -- DIC (07.) & DPB SIZE (2.).
   5680					;	WD. 01 -- NO EVENT FLAG SPECIFIED
   5681					;
   5682					; THE FOLLOWING STATUS IS RETURNED:
   5683					;
   5684					; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS OF:
   5685					;
   5686					;	R0 -- +1 -- NO EVENT FLAG SPECIFIED,
   5687					;	R0 -- +0 -- SPECIFIED FLAG WAS CLEARED,
   5688					;	R0 --+2 -- SPECIFIED FLAG WAS SET.
   5689					;
   5690					; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
   5691					;
   5692					;	R0 -- -97 -- EFN<1 OR EFN>64.,
   5693					;	R0 -- -99 -- DIC OR DPB SIZE IS INVALID.
   5694					;-
   5695					; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
   5696					; DIRECTIVE ISSUING TASK'S PS, PC, & R0-R5 PUSHED ONTO THE
   5697					; KERNEL STACK, AND R0-R5 SET AS FOLLOWS:
   5698					;	R0 -- PC OF EMT INSTRUCTION
   5699					;	R1 -- WORD FOLLOWING DIC & SIZE
   5700					;	R2 -- DPB SIZE
   5701					;	R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
   5702					;	R5 -- ATL NODE ADDRESS OF ISSUING TASK (.CRTSK)
   5703					;
   5704					;
   5705					;
   5706	022070				.D.DSE::CALL	..DSEV		;SET SIGNIFICANT EVENT FLAG
	022070	004737 	044026'			JSR	PC,..DSEV
   5707	022074	005302 				DEC	R2
   5708	022076	001401 				BEQ	5$
   5709	022100	104400 				TRAP	DR.00
   5710	022102				5$:	CALL	.CEFN		;YES -- R1 IS POINTING TO EFN IN DPB.
	022102	004737 	043062'			JSR	PC,.CEFN
   5711									;CONVERT EFN TO: (1) FLAG WORD ADDRESS
   5712									;IN R2, AND (2) FLAG MASK IN R3 (R2 IS
   5713									;POINTING TO EFN).  IF EFN<0, OR EFN>64.,
   5714									;RETURN STS=-97.  IF EFN=0 (NO EVENT FLAG
   5715									;SPECIFIED), RETURN WITH R2=R3=00.
DMSED	- SIGNIFICANT EVENT DIR	MACRO M1113  10-NOV-81 17:22  PAGE 111-1
DIRECTIVE -- DECLARE SIGNIFICANT EVENT

   5716									;CONDITION CODES ARE SET PER "TST R3".
   5717					;
   5718									;EVENT FLAG SPECIFIED?
   5719	022106	001417 				BEQ	SEXP1		;NO -- RETURN STS=1.
   5720	022110	000763 				BR	SEXCM		;GO TO COMMON TEST
DMSED	- SIGNIFICANT EVENT DIR	MACRO M1113  10-NOV-81 17:22  PAGE 112
DIRECTIVE -- READ EVENT FLAG

   5722					.SBTTL	DIRECTIVE -- READ EVENT FLAG
   5723					;+
   5724					; THE "READ EVENT FLAG" DIRECTIVE
   5725					;
   5726					; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO READ AND INDICATED EVENT FLAG.
   5727					;
   5728					; A TWO WORD DPB OF THE FOLLOWING FORMAT IS USED:
   5729					;
   5730					;	WD. 00 -- DIC (37.) & DPB SIZE (2.),
   5731					;	WD. 01 -- EVENT FLAG NUMBER (EFN).
   5732					;
   5733					; THE FOLLOWING STATUS IS RETURNED:
   5734					;
   5735					; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS OF:
   5736					;
   5737					;	R0 -- +0 -- FLAG WAS CLEARED,
   5738					;	R0 -- +2 -- FLAG WAS SET.
   5739					;
   5740					; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
   5741					;
   5742					;	R0 -- -97 -- EFN>64 OR EFN<1,
   5743					;	R0 -- -99 -- DIC OR DPB SIZE IS INVALID.
   5744					;-
   5745					; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
   5746					; DIRECTIVE ISSUING TASK'S PS, PC, & R0-R5 PUSHED ONTO THE
   5747					;  STACK, AND R0-R5 SET AS FOLLOWS:
   5748					;	R0 -- PC OF EMT INSTRUCTION
   5749					;	R1 -- WORD FOLLOWING DIC & SIZE
   5750					;	R2 -- DPB SIZE
   5751					;	R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
   5752					;	R5 -- ATL NODE ADDRESS OF ISSUING TASK (.CRTSK)
   5753					;
   5754					;
   5755									;R1 IS POINTING TO EFN IN DPB.
   5756					;
   5757	022112				.D.REF::CALL	.CEFN		;CONVERT EFN TO: (1) FLAG WORD ADDRESS
	022112	004737 	043062'			JSR	PC,.CEFN
   5758									;IN R2, AND (2) FLAG MASK IN R3 (R2 IS
   5759									;POINTING TO EFN).  IF EFN<0, OR EFN>64.,
   5760									;RETURN STS=-97.  IF EFN=0 (NO EVENT FLAG
   5761									;SPECIFIED), RETURN WITH R2=R3=00.
   5762									;CONDITION CODES ARE SET PER "TST R3".
   5763					;
   5764									;EVENT FLAG SPECIFIED?
   5765	022116	001414 				BEQ	SEX97		;NO -- RETURN STS=-97
   5766	022120	030312 				BIT	R3,@R2		;YES -- IS FLAG SET?
   5767	022122	001352 				BNE	SEXP2		;YES -- RETURN STS=+2
   5768	022124	104400 				TRAP	DR.00		;NO -- RETURN STS=+0
DMSED	- SIGNIFICANT EVENT DIR	MACRO M1113  10-NOV-81 17:22  PAGE 113
DIRECTIVE -- READ ALL EVENT FLAGS

   5770					.SBTTL	DIRECTIVE -- READ ALL EVENT FLAGS
   5771					;+
   5772					; THE "READ ALL FLAGS" DIRECTIVE
   5773					;
   5774					; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO READ ALL SIXTY-FOUR
   5775					; EVENT FLAGS FOR THE ISSUING TASK AND RECORD THEIR POLARITIES
   5776					; IN A SIXTY-FOUR BIT (4-WORD) BUFFER.
   5777					;
   5778					; A TWO WORD DPB OF THE FOLLOWING FORMAT IS USED:
   5779					;
   5780					;	WD. 00 -- DIC (39.) & DPB SIZE (2.),
   5781					;	WD. 01 -- ADDRESS  OF 64-BIT BUFFER.
   5782					;
   5783					; THE FOLLOWING STATUS IS RETURNED:
   5784					;
   5785					; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
   5786					; OF ONE (+1).
   5787					;
   5788					; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
   5789					;
   5790					;	R0 -- -99 -- DIC OR DPB SIZE IS INVALID.
   5791					;-
   5792					; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
   5793					; DIRECTIVE ISSUING TASK'S PS, PC, & R0-R5 PUSHED ONTO THE
   5794					;  STACK, AND R0-R5 SET AS FOLLOWS:
   5795					;	R0 -- PC OF EMT INSTRUCTION
   5796					;	R1 -- WORD FOLLOWING DIC & SIZE
   5797					;	R2 -- DPB SIZE
   5798					;	R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
   5799					;	R5 -- ATL NODE ADDRESS OF ISSUING TASK (.CRTSK)
   5800					;
   5801					;
   5802					; FILL FOUR WORD BUFFER
   5803					;
   5804	022126				.D.RAF::MTPS   A.EF+0(R5),(R1)+	;FLAGS 1-16 TO BUF+0
	022126	016521 	000020 			MOV	A.EF+0(R5),(R1)+
   5805	022132					MTPS   A.EF+2(R5),(R1)+	;FLAGS 17-32 TO BUF+2
	022132	016521 	000022 			MOV	A.EF+2(R5),(R1)+
   5806	022136					MTPS	.COMEF+0,(R1)+	;FLAGS 33-48 TO BUF+4
	022136	013721 	001010'			MOV	.COMEF+0,(R1)+
   5807	022142					MTPS	.COMEF+2,(R1)+	;FLAGS 49-64 TO BUF+6
	022142	013721 	001012'			MOV	.COMEF+2,(R1)+
   5808					;
   5809	022146	104401 			SEXP1:	TRAP	DR.01		;RETURN STS=+1
   5810					;
   5811	022150	104637 			SEX97:	TRAP	DE.97
DMSED	- SIGNIFICANT EVENT DIR	MACRO M1113  10-NOV-81 17:22  PAGE 114
DIRECTIVE -- WAITFOR SINGLE EVENT FLAG

   5813					.SBTTL	DIRECTIVE -- WAITFOR SINGLE EVENT FLAG
   5814					;+
   5815					; THE "WAIT FOR SINGLE EVENT FLAG" DIRECTIVE
   5816					;
   5817					; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO SUSPEND THE EXECUTION OF THE
   5818					; ISSUING TASK UNTIL AN INDICATED EVENT FLAG IS SET.  IF THE FLAG IS SET
   5819					; AT ISSUANCE, TASK EXECUTION IS EFFECTIVELY NOT SUSPENDED.  (ACTUALLY, THE
   5820					; TASK IS ALWAYS SUSPENDED, BUT R0 IS LEFT POINTING TO THE ISSUING TASK'S
   5821					; ATL NODE; AND THEREFORE, A CHECK IS ALWAYS MADE BY THE ATL SCAN ROUTINE.)
   5822					;
   5823					; A TWO WORD DPB OF THE FOLLOWING FORMAT IS USED:
   5824					;
   5825					;	WD. 00 -- DIC (41.) & DPB SIZE (2.),
   5826					;	WD. 01 -- EVENT FLAG NUMBER (EFN).
   5827					;
   5828					; THE FOLLOWING STATUS IS RETURNED:
   5829					;
   5830					; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
   5831					; OF ONE (+1).
   5832					;
   5833					; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
   5834					;
   5835					;	R0 -- -97 -- INVALID EVENT FLAG NUMBER (<1 OR >64.),
   5836					;	R0 -- -99 -- DIC OR DPB SIZE IS INVALID.
   5837					;-
   5838					;
   5839					;
   5840					; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
   5841					; DIRECTIVE ISSUING TASK'S PS, PC, & R0-R5 PUSHED ONTO THE
   5842					;  STACK, AND R0-R5 SET AS FOLLOWS:
   5843					;	R0 -- PC OF EMT INSTRUCTION
   5844					;	R1 -- WORD FOLLOWING DIC & SIZE
   5845					;	R2 -- DPB SIZE
   5846					;	R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
   5847					;	R5 -- ATL NODE ADDRESS OF ISSUING TASK (.CRTSK)
   5848					;
   5849					;
   5850	022152	011103 			.D.WFS::MOV	@R1,R3		;SET R3 TO EFN
   5851									;IS AN EVENT FLAG SPECIFIED (NON-ZERO EFN)?
   5852	022154				.D.WFO::			;SPECIAL ENTRY POINT FOR QIO AND WAIT
   5853	022154	001775 				BEQ	SEX97		;NO -- RETURN STS=-97.
   5854	022156	020327 	000100 			CMP	R3,#64.		;YES -- IS EFN IN RANGE: 0-64.?
   5855	022162	101372 				BHI	SEX97		;NO -- RETURN STS=-97.
   5856					;
   5857	022164	005303 				DEC	R3		;YES -- CONVERT EFN TO FLAG SET NUMBER (R2),
   5858	022166	005002 				CLR	R2		;AND FLAG MASK (R1)
   5859	022170					CALL	DIV216		;DIVIDE R2 BY 16.
	022170	004737 	044036'			JSR	PC,DIV216
   5860	022174	012701 	000001 			MOV	#1,R1
   5861	022200	005303 			10$:	DEC	R3		;DO AN ASH	R3,R1
   5862	022202	100402 				BMI	20$
   5863	022204	006301 				ASL	R1
   5864	022206	000774 				BR	10$
   5865	022210				20$:
   5866					;
   5867					;
   5868	022210	006302 				ASL	R2		;CONVERT SET NUMBER (0,1,2,3) TO TASK
DMSED	- SIGNIFICANT EVENT DIR	MACRO M1113  10-NOV-81 17:22  PAGE 114-1
DIRECTIVE -- WAITFOR SINGLE EVENT FLAG

   5869	022212	062702 	000014 			ADD	#TS.WF0,R2	;STATUS FOR ATL NODE.
   5870					;
   5871	022216	010165 	000024 			MOV	R1,A.FM+0(R5)	;SET MASK AND STATUS IN ATL NODE
   5872	022222	110265 	000014 			MOVB	R2,A.TS(R5)
   5873					;
   5874	022226	104401 				TRAP	DR.01		;RETURN STS=+1
DMSED	- SIGNIFICANT EVENT DIR	MACRO M1113  10-NOV-81 17:22  PAGE 115
DIRECTIVE -- WAITFOR LOGICAL 'OR' OF FLAGS

   5876					.SBTTL	DIRECTIVE -- WAITFOR LOGICAL 'OR' OF FLAGS
   5877					;+
   5878					; THE "WAITFOR LOGICAL 'OR' OF FLAGS" DIRECTIVE
   5879					;
   5880					;
   5881					; IF THE INDICATED CONDITION IS MET AT ISSUANCE, TASK EXECUTION IS
   5882					; EFFECTIVELY NOT SUSPENDED.  (ACTUALLY, THE TASK IS ALWAYS SUSPENDED,
   5883					;
   5884					;
   5885					; A THREE WORD DPB OF THE FOLLOWING FORMAT IS USED TO WAIT FOR EVENT FLAGS OF A GIVEN SET
   5886					;
   5887					;	WD. 00 -- DIC (43.) & DPB SIZE (3.)
   5888					;	WD. 01 -- SET NUMBER
   5889					;	WD. 02 -- FLAGS MASK FOR THIS SET
   5890					;
   5891					;
   5892					; A FIVE-WORD DPB OF THE FOLLOWING FORMAT IS USED TO WAITFOR EVENT FLAGS
   5893					; OF SET FOUR:
   5894					;
   5895					;	WD. 00 -- DIC (15.) & DPB SIZE (5.),
   5896					;	WD. 01 -- MASK WORD FOR FLAGS 1-16,
   5897					;	WD. 02 -- MASK WORD FOR FLAGS 17-32,
   5898					;	WD. 03 -- MASK WORD FOR FLAGS 33-48,
   5899					;	WD. 04 -- MASK WORD FOR FLAGS 49-64.
   5900					;
   5901					; MASK WORD BITS FROM RIGHT-TO-LEFT REPRESENT INCREASING EVENT FLAG
   5902					; NUMBERS, AND A SET MASK WORD BIT INDICATES "WAITFOR THE CORRESPONDING
   5903					; EVENT FLAG".
   5904					;
   5905					; THE FOLLOWING STATUS IS RETURNED.
   5906					;
   5907					; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
   5908					; OF ONE (+1).
   5909					;
   5910					; CC-C SET TO INDICATE REJECTION, AND DIRECTIVE STATUS OF:
   5911					;
   5912					;	R0 -- -97 -- NO EVENT FLAG SPECIFIED IN MASK WORD(S),
   5913					;	R0 -- -99 -- DIC OR DPB SIZE IS INVALID.
   5914					;-
   5915					; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
   5916					; DIRECTIVE ISSUING TASK'S PS, PC, & R0-R5 PUSHED ONTO THE
   5917					; KERNEL STACK, AND R0-R5 SET AS FOLLOWS:
   5918					;	R0 -- PC OF EMT INSTRUCTION
   5919					;	R1 -- WORD FOLLOWING DIC & SIZE
   5920					;	R2 -- DPB SIZE
   5921					;	R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
   5922					;	R5 -- ATL NODE ADDRESS OF ISSUING TASK (.CRTSK)
   5923					;
   5924					;
   5925					;
   5926					; EVEN FLAG SET IS FOUR.  I.E., WAIT FOR ANY OF SIXTY-FOUR EVENT FLAGS.
   5927					;
   5928					; SET 64-BIT FLAGS MASK IN ATL NODE AND ACCUMULATE 'OR' OF MASK WORDS
   5929					; IN R2.  THE 64-BIT MASK IS SET BY MOVING FOUR WORDS FROM THE DPB TO
   5930					; THE ATL NODE.
   5931					;
   5932					; IF NO FLAG INDICATED (ALL 64 BITS ARE ZERO), RETURN STS=-97.
DMSED	- SIGNIFICANT EVENT DIR	MACRO M1113  10-NOV-81 17:22  PAGE 115-1
DIRECTIVE -- WAITFOR LOGICAL 'OR' OF FLAGS

   5933					;
   5934	022230	022702 	000005 		.D.WFL::CMP	#5,R2		;THREE OR 5 WORD DPB?
   5935	022234	001020 				BNE	10$		;THREE WORD DPB (WAIT FOR ONE SET)
   5936	022236	010502 				MOV	R5,R2		;SETUP R2 TO FILL ATL NODE
   5937	022240	062702 	000024 			ADD	#A.FM,R2
   5938	022244					MFPS	(R1)+,@R2	;MASK FOR FLAGS 1-16
	022244	012112 				MOV	(R1)+,@R2
   5939	022246	012203 				MOV	(R2)+,R3
   5940									;MASK FOR FLAGS 17-32
   5941	022250					MFPS	(R1)+,@R2
	022250	012112 				MOV	(R1)+,@R2
   5942	022252	052203 				BIS	(R2)+,R3
   5943									;MASK FOR FLAGS 33-48
   5944	022254					MFPS	(R1)+,@R2
	022254	012112 				MOV	(R1)+,@R2
   5945	022256	052203 				BIS	(R2)+,R3
   5946	022260					MFPS	@R1,@R2		;MASK FOR FLAGS 49-64 (LAST DPB WORD)
	022260	011112 				MOV	@R1,@R2
   5947	022262	051203 				BIS	@R2,R3
   5948	022264	001731 				BEQ	SEX97		;RETURN STS=-97 IF NO FLAG INDICATED
   5949					;
   5950	022266	112765 	000024 	000014 		MOVB	#TS.WF4,A.TS(R5) ;SET WAITFOR-SET-FOUR TASK STATUS
   5951					;
   5952	022274	104401 				TRAP	DR.01		;RETURN DIRECTIVE STS=+1
   5953					;
   5954	022276				10$:	MFPS	(R1)+,R2	;FIND THE SET NUMBER
	022276	012102 				MOV	(R1)+,R2
   5955	022300	001415 				BEQ	30$		;ILLEGAL SET NUMBER
   5956	022302					MFPS	(R1)+,R3	;FIND THE FLAGS TO WAIT FOR
	022302	012103 				MOV	(R1)+,R3
   5957	022304	020227 	000004 			CMP	R2,#4		;LEGAL SET NUMBER?
   5958	022310	101011 				BHI	30$		;NO -- ILLEGAL SET TO WAIT FOR
   5959	022312	005302 				DEC	R2		;DECREMENT SO SET1 IS 0
   5960	022314	006302 				ASL	R2		;MULTIPLY BY 2
   5961	022316	062702 	000014 			ADD	#TS.WF0,R2	;POINT TO THE CORRECT ATL STATUS
   5962	022322	110265 	000014 			MOVB	R2,A.TS(R5)	;SET THE CORRECT STATUS IN THE ATL NODE
   5963	022326	010365 	000024 			MOV	R3,A.FM(R5)	;SET UP THE FLAGS MASK WORD FOR THESE EVENT FLAGS
   5964	022332	104401 				TRAP	DR.01		;RETURN STS +1
   5965					;
   5966	022334	104636 			30$:	TRAP	DE.98		;ILLEGAL SET NUMBER
DMSED	- SIGNIFICANT EVENT DIR	MACRO M1113  10-NOV-81 17:22  PAGE 116
DIRECTIVE -- WAITFOR NEXT SIGNIFICANT EVENT

   5968					.SBTTL	DIRECTIVE -- WAITFOR NEXT SIGNIFICANT EVENT
   5969					;+
   5970					; THE "WAIT FOR NEXT SIGNIFICANT EVENT" DIRECTIVE
   5971					;
   5972					; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO SUSPEND THE EXECUTION OF THE
   5973					; ISSUING TASK UNTIL THE NEXT SIGNIFICANT EVENT HAS BEEN DECLARED.
   5974					;
   5975					; A ONE WORD DPB OF THE FOLLOWING FORMAT IS USED:
   5976					;
   5977					;	WD. 00 -- DIC (49.) & DPB SIZE (1.).
   5978					;
   5979					; THE FOLLOWING STATUS IS RETURNED:
   5980					;
   5981					; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
   5982					; OF ONE (+1).
   5983					;
   5984					; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
   5985					;
   5986					;	R0 -- -99 -- DIC OR DPB SIZE IS INVALID.
   5987					;-
   5988					; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
   5989					; DIRECTIVE ISSUING TASK'S PS, PC, & R0-R5 PUSHED ONTO THE
   5990					; KERNEL STACK, AND R0-R5 SET AS FOLLOWS:
   5991					;	R0 -- PC OF EMT INSTRUCTION
   5992					;	R1 -- WORD FOLLOWING DIC & SIZE
   5993					;	R2 -- DPB SIZE
   5994					;	R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
   5995					;	R5 -- ATL NODE ADDRESS OF ISSUING TASK (.CRTSK)
   5996					;
   5997					;
   5998	022336	011505 			.D.WSE::MOV	@R5,R5		;ADVANCE R5 (ATL NODE POINTER)
   5999	022340	012737 	000001 	001016'		MOV	#EV.SE,.SEWFL
   6000	022346	104401 				TRAP	DR.01		;RETURN STS=+1.
   6001					;
DMMKT	- "MARK TIME" DIRECTIVE	MACRO M1113  10-NOV-81 17:22  PAGE 117
DIRECTIVE -- WAITFOR NEXT SIGNIFICANT EVENT

   6003						.TITLE	DMMKT	- "MARK TIME" DIRECTIVE MODULE
   6004						.SBTTL	MARK TIME -- COPYRIGHT STATEMENT
   6005	022350					IDENT$	1,0
						.IDENT	/001000/
   6006					;
   6007					;                             COPYRIGHT (C) 1975, 1978 BY
   6008					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   6009					;
   6010					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   6011					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   6012					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   6013					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   6014					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   6015					;
   6016					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   6017					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   6018					;       CORPORATION.
   6019					;
   6020					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   6021					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   6022					;
   6023					;		MODULE: "MARK TIME" DIRECTIVE
   6024					;
   6025					;		VERSION: 01-00
   6026					;
   6027					;		AUTHOR:  R. MCLEAN
   6028					;
   6029					;		DATE: 19 APR 75
   6030					;
   6031					;
   6032					;	THIS MODULE CONTAINS:
   6033					;
   6034					;	1 -- CODE TO SERVICE THE "MARK TIME" DIRECTIVE.
   6035					;
   6036					;	MACROS
   6037
   6038						.MCALL	CALL,RETURN,MFPI,MTPI,MTPS,MFPS
DMMKT	- "MARK TIME" DIRECTIVE	MACRO M1113  10-NOV-81 17:22  PAGE 118
DIRECTIVE -- MARK TIME

   6040						.SBTTL	DIRECTIVE -- MARK TIME
   6041					;+
   6042					; THE "MARK TIME" DIRECTIVE
   6043					;
   6044					; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO DECLARE A SIGNIFICANT EVENT
   6045					; IN AN INDICATED TIME INTERVAL FROM ISSUANCE.
   6046					;
   6047					; IF AN EVENT FLAG IS SPECIFIED, IT IS CLEARED AT ISSUANCE AND SET
   6048					; AT THE TIME OF THE SIGNIFICANT EVENT.
   6049					;
   6050					;
   6051					; IF  AN EVENT FLAG NUMBER
   6052					; IS SPECIFIED, THE SIGNIFICANT EVENT WILL STILL OCCUR AFTER
   6053					; THE INDICATED TIME INTERVAL.
   6054					;
   6055					; A FOUR WORD DPB OF THE FOLLOWING FORMAT IS USED:
   6056					;
   6057					;	WD. 00 -- DIC (23.) & DPB SIZE (5.),
   6058					;	WD. 01 -- EVENT FLAG NUMBER (EFN),
   6059					;	WD. 02 -- TIME INTERVAL MAGNITUDE, ( IN TICS)
   6060					;	WD. 03 -- RESCHEDULE INTERVAL (IN TICS)
   6061					;	WD. 04 -- AST TRAP ADDRESS
   6062					;
   6063					; THE FOLLOWING STATUS IS RETURNED:
   6064					;
   6065					; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
   6066					; OF ONE (+1).
   6067					;
   6068					; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
   6069					;
   6070					;	-01 -- UNAVAILABLE ENTRY (FOR CLOCK LIST),
   6071					;
   6072					;	-97 -- INVALID EVENT FLAG NUMBER (EFN<0 OR EFN>64),
   6073					;	-99 -- DIC OR DPB SIZE IS INVALID.
   6074					;-
   6075					; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
   6076					; DIRECTIVE ISSUING TASK'S PS, PC, & R0-R5 PUSHED ONTO THE
   6077					;  STACK, AND R0-R5 SET AS FOLLOWS:
   6078					;
   6079					; R5 IS LEFT UNALTERED (I.E. POINTING TO ISSUING TASK'S ATL NODE).
   6080					;
   6081					;
   6082									;R1 IS POINTING TO EFN IN DPB
   6083					;
   6084					;
   6085	022350				.D.MKT::CALL	.CEFN		;CONVERT EFN TO: (1) FLAG WORD ADDRESS
	022350	004737 	043062'			JSR	PC,.CEFN
   6086									;IN R2, AND (2) FLAG MASK IN R3 (R2 IS
   6087									;POINTING TO EFN).  IF EFN<0, OR EFN>64.,
   6088									;RETURN STS=-97.  IF EFN=0 (NO EVENT FLAG
   6089									;SPECIFIED), RETURN WITH R2=R3=00.
   6090									;CONDITION CODES ARE SET PER "TST R3".
   6091					;
   6092	022354	001001 				BNE	10$		;ALL OK WITH EFN
   6093	022356	104637 				TRAP	DE.97		;RETURN STS=-97
   6094	022360	062701 	000004 		10$:	ADD	#4,R1		;R1 IS POINTING TO THE EFN, ADVANCE TO THE
   6095									;FIRST WORD (MAGNITUDE) OF TIME INTERVAL.
DMMKT	- "MARK TIME" DIRECTIVE	MACRO M1113  10-NOV-81 17:22  PAGE 118-1
DIRECTIVE -- MARK TIME

   6096					;
   6097	022364	010246 				MOV	R2,-(SP)	;PUSH EFN WORD ADDRESS
   6098	022366	010346 				MOV	R3,-(SP)	;PUSH EFN MASK
   6099					;
   6100	022370					MFPI	(R1)		;PUSH THE RESCHED INTERVAL
	022370	011146 				MOV	(R1),-(SP)
   6101	022372					MFPI	-(R1)		;PUSH TIME INTERVAL MAGNITUED MAGNITUDE
	022372	014146 				MOV	-(R1),-(SP)
   6102	022374					MFPI	4(R1)		;PUSH AST TRAP ADDRES
	022374	016146 	000004 			MOV	4(R1),-(SP)
   6103					;
   6104					;
   6105					; STACK & REGISTER SUMMARY:
   6106					;
   6107					;	SP+10 -- FLAG WORD ADDRESS (OR ZERO)
   6108					;	SP+06 -- FLAG MASK (OR ZERO)
   6109					;	SP+04 -- TIME RESCHEDULE INTERVAL
   6110					;	SP+02 -- TIME INTERVAL
   6111					;	SP+00 -- AST TRAP ADDRESS
   6112					;
   6113					;	R5 -- ATL NODE ADDRESS OF ISSUING TASK
   6114					;	R1 -- ADDRESS OF NODE FOR CLOCK QUEUE
   6115					;
   6116	022400	046676 	000006 	000010 		BIC	+6(SP),@+10(SP)	;CLEAR INDICATED EVENT FLAG
   6117					;
   6118	022406	012700 	002370'			MOV	#.CLKBA,R0	;POINT TO BEGINNING OF CLOCK LIST
   6119	022412	022700 	002574'		20$:	CMP	#.CLKEA,R0	;END OF LIST?
   6120	022416	001001 				BNE	30$		;NO -- MUST BE OK
   6121	022420	104777 				TRAP	DE.01		;YES -- RAN OUT OF CLOCK ENTRIES
   6122	022422	005710 			30$:	TST	@R0		;LOOK FOR A FREE ENTRY
   6123	022424	001403 				BEQ	40$		;FOUND ONE
   6124	022426	062700 	000014 			ADD	#C.SZ,R0	;NOT HERE -- TRYNEXT ENTRY
   6125	022432	000767 				BR	20$
   6126					;
   6127					;
   6128	022434	010520 			40$:	MOV	R5,(R0)+	;ATL NODE OF ISSUING TASK
   6129	022436	012620 				MOV	(SP)+,(R0)+	;AST ADDRESS
   6130	022440	012620 				MOV	(SP)+,(R0)+	;(POP) SCHEDULE INTERVAL
   6131	022442	012620 				MOV	(SP)+,(R0)+	;(POP) RESCHEDULE INTERVAL
   6132	022444	012620 				MOV	(SP)+,(R0)+	;(POP) EVENT FLAG MASK
   6133	022446	012620 				MOV	(SP)+,(R0)+	;(POP) EVENT FLAG WORD ADDRESS
   6134					;
   6135	022450	104401 				TRAP	DR.01		;RETURN STS=+1
   6136					;
DMCMT	- "CANCEL MARK TIME" DI	MACRO M1113  10-NOV-81 17:22  PAGE 119
DIRECTIVE -- MARK TIME

   6138						.TITLE	DMCMT	- "CANCEL MARK TIME" DIRECTIVE MODULE
   6139						.SBTTL	CANCEL MARK TIME -- COPYRIGHT STATEMENT
   6140	022452					IDENT$	1,0
						.IDENT	/001000/
   6141					;
   6142					;                             COPYRIGHT (C) 1975, 1978 BY
   6143					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   6144					;
   6145					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   6146					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   6147					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   6148					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   6149					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   6150					;
   6151					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   6152					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   6153					;       CORPORATION.
   6154					;
   6155					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   6156					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   6157					;
   6158					;		MODULE: "CANCEL MARK TIME" DIRECTIVE
   6159					;
   6160					;		VERSION: 01-00
   6161					;
   6162					;		AUTHOR:  R. MCLEAN
   6163					;
   6164					;		DATE: 19 MAR 75
   6165					;
   6166					;
   6167					;	THIS MODULE CONTAINS:
   6168					;
   6169					;	1 -- CODE TO SERVICE THE "CANCEL MARK TIME" DIRECTIVE.
   6170					;
   6171					;	MACROS
   6172					;
   6173
   6174						.MCALL	CALL,RETURN
DMCMT	- "CANCEL MARK TIME" DI	MACRO M1113  10-NOV-81 17:22  PAGE 120
DIRECTIVE -- CANCEL MARK-TIME REQUESTS

   6176						.SBTTL	DIRECTIVE -- CANCEL MARK-TIME REQUESTS
   6177					;+
   6178					; THE "CANCEL MARK-TIME REQUESTS" DIRECTIVE
   6179					;
   6180					; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO CANCEL MARK-TIME REQUESTS
   6181					; THAT HAVE BEEN MADE BY THE ISSUING TASK.
   6182					;
   6183					; A ONE WORD DPB OF THE FOLLOWING FORMAT IS USED TO CANCEL ALL MARK-TIME
   6184					; REQUESTS THAT HAVE BEEN MADE BY THE ISSUING TASK:
   6185					;
   6186					;	WD. 00 -- DIC (21.) & DPB SIZE (1.).
   6187					;
   6188					;
   6189					; THE FOLLOWING STATUS IS RETURNED:
   6190					;
   6191					; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
   6192					; OF ONE (R0 - +1).
   6193					;
   6194					; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
   6195					;
   6196					;	R0 -- -97 -- INVALID EVENT FLAG NUMBER (EFN<0 OR EFN>64),
   6197					;	R0 -- -99 -- DIC OR DPB SIZE IS INVALID.
   6198					;-
   6199					; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
   6200					; DIRECTIVE ISSUING TASK'S PS, PC, & R0-R5 PUSHED ONTO THE
   6201					;  STACK, AND R0-R5 SET AS FOLLOWS:
   6202					;	R0 -- PC OF EMT INSTRUCTION
   6203					;	R1 -- WORD FOLLOWING DIC & SIZE
   6204					;	R2 -- DPB SIZE
   6205					;	R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
   6206					;
   6207					;
   6208					; ALL MARK-TIME REQUESTS BY THE ISSUING TASK ARE TO BE DELETED
   6209					; FROM THE CLOCK QUEUE.
   6210					;
   6211					;
   6212	022452	010546 			.D.CMT::MOV	R5,-(SP)	;SAVE CURRENT TASK POINTER
   6213	022454	012704 	002370'			MOV	#.CLKBA,R4	;USE R4 TO SCAN DEQUE
   6214					;
   6215	022460	020427 	002574'		50$:	CMP	R4,#.CLKEA	;END OF SCAN (END OF DEQUE)?
   6216	022464	001002 				BNE	60$
   6217	022466	012605 				MOV	(SP)+,R5	;RESTORE CURRENT TASK POINTER
   6218	022470	104401 				TRAP	DR.01		;YES -- RETURN STS=+1.
   6219									;NO -- CHECK NODE POINTED TO BY R4
   6220	022472	026405 	000000 		60$:	CMP	C.AT(R4),R5	;YES -- WAS REQUEST MADE BY ISSUING TASK?
   6221	022476	001005 				BNE	45$		;NO -- NEXT NODE
   6222									;DELETE NODE (PER R4) FROM CLOCK QUEUE, AND
   6223	022500					CALL	.CKDEL		;QUEUE NODE (R4 IS NOT ALTERED).
	022500	004737 	043150'			JSR	PC,.CKDEL
   6224					;
   6225					;
   6226	022504	000765 				BR	50$		;TEST FOR END OF DEQUE
   6227					;
   6228	022506	012605 			90$:	MOV	(SP)+,R5	;RESTORE CURRENT TASK POINTER
   6229	022510	104637 				TRAP	DE.97		;TO RETURN STS=-97.
   6230					;
   6231	022512	062704 	000014 		45$:	ADD	#C.SZ,R4	;UPDATE THE Q SIZE TO LOOK AT NEXT ENTRY
DMCMT	- "CANCEL MARK TIME" DI	MACRO M1113  10-NOV-81 17:22  PAGE 120-1
DIRECTIVE -- CANCEL MARK-TIME REQUESTS

   6232	022516	000760 				BR	50$
   6233					;
DMEXT	- "EXIT" DIRECTIVE MODU	MACRO M1113  10-NOV-81 17:22  PAGE 121
DIRECTIVE -- CANCEL MARK-TIME REQUESTS

   6235						.TITLE	DMEXT	- "EXIT" DIRECTIVE MODULE
   6236						.SBTTL	EXIT -- COPYRIGHT STATEMENT
   6237	022520					IDENT$	1,0
						.IDENT	/001000/
   6238					;
   6239					;                             COPYRIGHT (C) 1975, 1978 BY
   6240					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   6241					;
   6242					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   6243					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   6244					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   6245					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   6246					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   6247					;
   6248					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   6249					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   6250					;       CORPORATION.
   6251					;
   6252					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   6253					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   6254					;
   6255					;		MODULE: "EXIT" DIRECTIVE
   6256					;
   6257					;		VERSION: 01-00
   6258					;
   6259					;		AUTHOR: R. MCLEAN
   6260					;
   6261					;		DATE: 19 MAR 75
   6262					;
   6263					;
   6264					;	THIS MODULE CONTAINS:
   6265					;
   6266					;	1 -- CODE TO SERVICE THE "EXIT" DIRECTIVE
   6267					;
   6268					;	MACROS
   6269					;
   6270
   6271						.MCALL	CALL,RETURN
DMEXT	- "EXIT" DIRECTIVE MODU	MACRO M1113  10-NOV-81 17:22  PAGE 122
DIRECTIVE -- TASK EXIT

   6273						.SBTTL	DIRECTIVE -- TASK EXIT
   6274					;+
   6275					; THE "TASK EXIT" DIRECTIVE
   6276					;
   6277					; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO TERMINATE THE EXECUTION OF THE
   6278					; ISSUING TASK.
   6279					;
   6280					; A ONE WORD DPB OF THE FOLLOWING FORMAT IS USED:
   6281					;
   6282					;	WD. 00 -- DIC (27.) & DPB SIZE (1.).
   6283					;
   6284					; THE FOLLOWING STATUS IS RETURNED:
   6285					;
   6286					; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
   6287					; OF ONE (+1).
   6288					;
   6289					; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
   6290					;
   6291					;	-99 -- DIC OR DPB SIZE IS INVALID.
   6292					;-
   6293					; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
   6294					; DIRECTIVE ISSUING TASK'S PS, PC, & R1-R5 PUSHED ONTO THE
   6295					;  STACK, AND R0-R5 SET AS FOLLOWS:
   6296					;	R1 -- ADDRESS OF WORD FOLLOWING DIC & SIZE
   6297					;	R2 -- DPB SIZE
   6298					;	R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
   6299					;	R5 -- ATL NODE ADDRESS OF ISSUING TASK (.CRTSK)
   6300					;
   6301					;
   6302					; R5 IS LEFT UNALTERED (I.E. POINTING TO ISSUING TASK'S ATL NODE).
   6303					;
   6304					; R5 CONTAINS THE EXITING TASK'S ATL NODE ADDRESS.
   6305					;
   6306	022520	042766 	000340 	000020 	.D.EXT::BIC  #000340,EM.DRO(SP)	;SET ISSUING TASK'S PROCESSRO PRIROITY TO ZERO TO
   6307									;PREVENT RETURN TO TASK IF EXIT DIRECTIVE HAS
   6308									;BEEN ISSUED FROM NON TASK LEVEL
   6309					;
   6310	022526	112765 	000026 	000014 		MOVB  #TS.EXT,A.TS(R5)	;CHANGE STATUS TO "EXIT", INDICATE
   6311	022534	005065 	000024 			CLR	A.FM+0(R5)	;NO TERMINATION NOTIFICATION, AND
   6312	022540	104401 				TRAP	DR.01		;EXIT DIRECTIVE SERVICE (SET STS=+1)
   6313					;
DMQIO	- "QUEUE I/O" DIRECTIVE	MACRO M1113  10-NOV-81 17:22  PAGE 123
DIRECTIVE -- TASK EXIT

   6315						.TITLE	DMQIO	- "QUEUE I/O" DIRECTIVE MODULE
   6316						.SBTTL	QUEUE I/O -- COPYRIGHT STATEMENT
   6317	022542					IDENT$	1,0
						.IDENT	/001000/
   6318					;
   6319					;                             COPYRIGHT (C) 1975, 1978 BY
   6320					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   6321					;
   6322					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   6323					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   6324					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   6325					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   6326					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   6327					;
   6328					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   6329					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   6330					;       CORPORATION.
   6331					;
   6332					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   6333					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   6334					;
   6335					;		MODULE: "QUEUE I/O" DIRECTIVE
   6336					;
   6337					;		VERSION: 01-00
   6338					;
   6339					;		AUTHOR: R. MCLEAN
   6340					;
   6341					;		DATE: 19 JUL 75
   6342					;
   6343					;
   6344					;	THIS MODULE CONTAINS:
   6345					;
   6346					;	1 -- CODE TO SERVICE THE "QUEUE I/O" DIRECTIVE.
   6347					;	2 -- CODE TO SERVICE THE "QUEUE I/O AND WAIT" DIRECTIVE.
   6348					;
   6349					;	MACROS
   6350					;
   6351
   6352						.MCALL	CALL,RETURN,MFPI,MTPI,MTPS,MFPS
DMQIO	- "QUEUE I/O" DIRECTIVE	MACRO M1113  10-NOV-81 17:22  PAGE 124
DIRECTIVE -- QUEUE I/O

   6354						.SBTTL	DIRECTIVE -- QUEUE I/O
   6355					;+
   6356					; THE "QUEUE I/O" DIRECITVE
   6357					;
   6358					; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO PLACE AN I/O REQUEST FOR AN
   6359					; INDICATED DEVICE IN A QUEUE OF PRIORITY ORDERED REQUESTS FOR THAT DEVICE-
   6360					; UNIT.  THE DEVICE-UNIT IS SPECIFIED AS A LOGICAL UNIT NUMBER (LUN), WHICH
   6361					; IS MAPPED INTO A PHYSICAL UNIT SPECIFICATION PER LUN ASSIGNMENT.
   6362					;
   6363					; EACH LUN IS REPRESENTED BY AN ENTRY IN THE ISSUING TASK'S LUT (LOGICAL
   6364					; UNIT TABLE) IN THE TASK'S HEADER.  EACH PHYSICAL UNIT IS REPRESENTED
   6365					; BY AN ENTRY IN THE PUD (PHYSICAL UNIT DIRECTORY).  WHEN A LUN IS
   6366					; ASSIGNED TO A PHYSICAL UNIT, THE ADDRESS OF THE CORRESPONDING PUD
   6367					; ENTRY IS SET IN THE CORRESPONDING LUT ENTRY.  WHEN A LUN IS NOT
   6368					; ASSIGNED TO A PHYSICAL UNIT ("DEASSIGNED" OR "ASSIGNED TO NONE"), THE
   6369					; CORRESPONDING LUT ENTRY IS SET TO ZERO.
   6370					;
   6371					; NORMALLY, A SIGNIFICANT EVENT IS DECLARED BY HANDLER TASKS (VIA SYSTEM
   6372					; SUBROUTINES) UPON I/O COMPLETION.
   6373					;
   6374					;	IF AN EVENT FLAG IS SPECIFIED, IT IS CLEARED WHEN THE REQUEST
   6375					;	IS QUEUED, AND SET AT THE SIGNIFICANT EVENT.
   6376					;
   6377					;	IF AN AST SERVICE ENTRY POINT IS SPECIFIED, THE AST WILL OCCUR
   6378					;	UPON I/O COMPLETION WITH THE TASK'S PS, PC, VIRTUAL ZERO (DIRECTIVE
   6379					;	STATUS), AND [ADDRESS OF I/O STATUS BLOCK] PUSHED ONTO THE TASK'S
   6380					;	(USER) STACK.
   6381					;
   6382					; A 6-12 WORD DPB OF THE FOLLOWING FORMAT IS USED:
   6383					;
   6384					;	WD. 00 -- DIC (01.) & DPB SIZE (6-12),
   6385					;	WD. 01 -- I/O FUNCTION CODE,
   6386					;	WD. 02 -- LUN,
   6387					;	WD. 03 -- [EFN] & [PRIORITY],
   6388					;	WD. 04 -- [ADDRESS OF I/O STATUS BLOCK],
   6389					;	WD. 05 -- [I/O DONE AST SERVICE ENTRY POINT],
   6390					;	WD. 06 -- PARAMETER #1,
   6391					;	WD. 07 -- PARAMETER #2,
   6392					;	WD. 10 -- PARAMETER #3,
   6393					;	WD. 11 -- PARAMETER #4,
   6394					;	WD. 12 -- PARAMETER #5,
   6395					;	WD. 13 -- PARAMETER #6.
   6396					;
   6397					; THE FORMAT OF THE I/O REQUEST NODE CREATED IS DESCRIBED
   6398					; UNDER "SYMBOLIC DEFINITIONS".
   6399					;
   6400					; THE FOLLOWING STATUS IS RETURNED:
   6401					;
   6402					; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
   6403					; OF ONE (+1).
   6404					;
   6405					; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
   6406					;
   6407					;	-01 -- UNAVAILABLE POOL NODE FOR REQUEST QUEUE,
   6408					;	-05 -- UNASSIGNED LUN,
   6409					;
   6410					;	-95 -- INVALID PRIORITY (>250.),
DMQIO	- "QUEUE I/O" DIRECTIVE	MACRO M1113  10-NOV-81 17:22  PAGE 124-1
DIRECTIVE -- QUEUE I/O

   6411					;	-96 -- INVALID LUN,
   6412					;	-97 -- INVALID EFN (>64.),
   6413					;	-98 -- PART OF DPB IS OUT OF ISSUING TASK'S ADDRESS SPACE,
   6414					;	-99 -- DIC OR DPB SIZE IS INVALID.
   6415					; THE "QUEUE I/O AND WAIT" DIRECITVE
   6416					;
   6417					; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO PLACE AN I/O REQUEST FOR AN
   6418					; INDICATED DEVICE IN A QUEUE OF PRIORITY ORDERED REQUESTS FOR THAT DEVICE-
   6419					; UNIT.  THE DEVICE-UNIT IS SPECIFIED AS A LOGICAL UNIT NUMBER (LUN), WHICH
   6420					; IS MAPPED INTO A PHYSICAL UNIT SPECIFICATION PER LUN ASSIGNMENT.
   6421					;
   6422					; EACH LUN IS REPRESENTED BY AN ENTRY IN THE ISSUING TASK'S LUT (LOGICAL
   6423					; UNIT TABLE) IN THE TASK'S HEADER.  EACH PHYSICAL UNIT IS REPRESENTED
   6424					; BY AN ENTRY IN THE PUD (PHYSICAL UNIT DIRECTORY).  WHEN A LUN IS
   6425					; ASSIGNED TO A PHYSICAL UNIT, THE ADDRESS OF THE CORRESPONDING PUD
   6426					; ENTRY IS SET IN THE CORRESPONDING LUT ENTRY.  WHEN A LUN IS NOT
   6427					; ASSIGNED TO A PHYSICAL UNIT ("DEASSIGNED" OR "ASSIGNED TO NONE"), THE
   6428					; CORRESPONDING LUT ENTRY IS SET TO ZERO.
   6429					;
   6430					; NORMALLY, A SIGNIFICANT EVENT IS DECLARED BY HANDLER TASKS (VIA SYSTEM
   6431					; SUBROUTINES) UPON I/O COMPLETION.
   6432					;
   6433					;	IF AN EVENT FLAG IS SPECIFIED, IT IS CLEARED WHEN THE REQUEST
   6434					;	IS QUEUED, AND SET AT THE SIGNIFICANT EVENT.
   6435					;	IF AN EVENT FLAG IS SPECIFIED, A WAIT DIRECTIVE IS ALSO
   6436					;	EXECUTED BEFORE TASK SWITCHING IS ENABLED.
   6437					;
   6438					;	IF NO EVENT FLAG IS SPECIFIED THE I/O WILL BE QUEUE'D
   6439					;	AND THE WAIT DIRECTIVE WILL BE REJECTED (STATUS -97.)
   6440					;
   6441					;
   6442					;	IF AN AST SERVICE ENTRY POINT IS SPECIFIED, THE AST WILL OCCUR
   6443					;	UPON I/O COMPLETION WITH THE TASK'S PS, PC, VIRTUAL ZERO (DIRECTIVE
   6444					;	STATUS), AND [ADDRESS OF I/O STATUS BLOCK] PUSHED ONTO THE TASK'S
   6445					;	(USER) STACK.
   6446					;
   6447					; A 6-12 WORD DPB OF THE FOLLOWING FORMAT IS USED:
   6448					;
   6449					;	WD. 00 -- DIC (03.) & DPB SIZE (6-12),
   6450					;	WD. 01 -- I/O FUNCTION CODE,
   6451					;	WD. 02 -- LUN,
   6452					;	WD. 03 -- [EFN] & [PRIORITY],
   6453					;	WD. 04 -- [ADDRESS OF I/O STATUS BLOCK],
   6454					;	WD. 05 -- [I/O DONE AST SERVICE ENTRY POINT],
   6455					;	WD. 06 -- PARAMETER #1,
   6456					;	WD. 07 -- PARAMETER #2,
   6457					;	WD. 10 -- PARAMETER #3,
   6458					;	WD. 11 -- PARAMETER #4,
   6459					;	WD. 12 -- PARAMETER #5,
   6460					;	WD. 13 -- PARAMETER #6.
   6461					;
   6462					; THE FORMAT OF THE I/O REQUEST NODE CREATED IS DESCRIBED
   6463					; UNDER "SYMBOLIC DEFINITIONS".
   6464					;
   6465					; THE FOLLOWING STATUS IS RETURNED:
   6466					;
   6467					; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
DMQIO	- "QUEUE I/O" DIRECTIVE	MACRO M1113  10-NOV-81 17:22  PAGE 124-2
DIRECTIVE -- QUEUE I/O

   6468					; OF ONE (+1).
   6469					;
   6470					; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
   6471					;
   6472					;	-01 -- UNAVAILABLE POOL NODE FOR REQUEST QUEUE,
   6473					;	-05 -- UNASSIGNED LUN,
   6474					;	-06 -- HANDLER TASK NOT DECLARED RESIDENT,
   6475					;
   6476					;	-95 -- INVALID PRIORITY (>250.),
   6477					;	-96 -- INVALID LUN,
   6478					;	-97 -- INVALID EFN (>64.), OR 0 EVENT FLAG (I/O QUEUE'D BUT WAIT NOT EXECUTED),
   6479					;	-98 -- PART OF DPB IS OUT OF ISSUING TASK'S ADDRESS SPACE,
   6480					;	-99 -- DIC OR DPB SIZE IS INVALID.
   6481					;-
   6482					; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
   6483					; DIRECTIVE ISSUING TASK'S PS, PC, & R5-R0 PUSHED ONTO THE
   6484					; KERNEL STACK, AND R5-R0 SET AS FOLLOWS:
   6485					; R5 IS LEFT UNALTERED (I.E. POINTING TO ISSUING TASK'S ATL NODE).
   6486					;
   6487	022542	010346 			.D.QIO::MOV	R3,-(SP)	;SAVE THE DIC TO DETERMINE IF QIO& WAIT OR JUST QIO.
   6488					;
   6489	022544				20$:	MFPS	(R1)+,R3	;SET R3 TO FUNCTION CODE
	022544	012103 				MOV	(R1)+,R3
   6490									;(LEAVE R1 POINTING TO LUN WORD)
   6491					;
   6492	022546					MFPI	(R1)+		;PUSH LUN, AND CONVERT TO PUD ENTRY ADR
	022546	012146 				MOV	(R1)+,-(SP)
   6493	022550					CALL	.VCLUN		;(LEAVE R1 POINTING TO EFN/PRI WORD)
	022550	004737 	015654'			JSR	PC,.VCLUN
   6494									;IF INVALID LUN, RETURN STS=-96.
   6495	022554	011600 				MOV	@SP,R0		;SET R0 TO PUD ENTRY ADR IF LUN ASSIGNED
   6496	022556	001001 				BNE	40$		;IF UN-ASSIGNED LUN, RETURN STS=-05.
   6497	022560	104773 				TRAP	DE.05
   6498	022562	010246 			40$:	MOV	R2,-(SP)	;PUSH DPB SIZE
   6499					;
   6500									;TO ACCESS REQUESTOR'S HEADER BY '.VCLUN').
   6501					;
   6502	022564					MFPI	+4(R1)		;PUSH I/O DONE AST ENTRY PT (OR ZERO)
	022564	016146 	000004 			MOV	+4(R1),-(SP)
   6503					;
   6504	022570					MFPI	+02(R1)		;PUSH I/O STATUS BLOCK ADR (OR ZERO),
	022570	016146 	000002 			MOV	+02(R1),-(SP)
   6505	022574	011602 				MOV	@SP,R2		;AND CLEAR TWO-WORD STATUS BLOCK.
   6506	022576	001404 				BEQ	50$		;(IF SPECIFIED).  IF PART OF STATUS
   6507	022600	005046 				CLR	-(SP)		;OUT OF ADDRESS SPACE, RETURN
   6508	022602					MTPI	(R2)+
	022602	012622 				MOV	(SP)+,(R2)+
   6509	022604	005046 				CLR	-(SP)
   6510	022606					MTPI	@R2
	022606	012612 				MOV	(SP)+,@R2
   6511	022610				50$:
   6512	022610	010346 				MOV	R3,-(SP)	;PUSH I/O FUNCTION CODE WORD
   6513					;
   6514									;R1 IS POINTING TO [EFN] IN DPB.
   6515					;
   6516	022612					CALL	.CEFN		;CONVERT EFN TO: (1) FLAG WORD ADDRESS
	022612	004737 	043062'			JSR	PC,.CEFN
DMQIO	- "QUEUE I/O" DIRECTIVE	MACRO M1113  10-NOV-81 17:22  PAGE 124-3
DIRECTIVE -- QUEUE I/O

   6517									;IN R2, AND (2) FLAG MASK IN R3 (R2 IS
   6518									;POINTING TO EFN).  IF EFN<0, OR EFN>64.,
   6519									;RETURN STS=-97.  IF EFN=0 (NO EVENT FLAG
   6520									;SPECIFIED), RETURN WITH R2=R3=00.
   6521									;CONDITION CODES ARE SET PER "TST R3".
   6522					;
   6523	022616					MFPS	@R1,R4		;SET PRIORITY IN R4, EFN IN HIGH ORDER
	022616	011104 				MOV	@R1,R4
   6524									;BYTE OF R0, AND ZERO IN LOW ORDER BYTE
   6525	022620	010400 				MOV	R4,R0		;OF R0
   6526	022622	105004 				CLRB	R4
   6527	022624	000304 				SWAB	R4
   6528	022626	000300 				SWAB	R0
   6529	022630	105000 				CLRB	R0
   6530									;IS A PRIORITY SPECIFIED?
   6531	022632	001002 				BNE	70$		;YES -- CHECK ITS VALIDITY
   6532	022634	156504 	000010 			BISB	A.RP(R5),R4	;NO -- USE RUN PARIORITY OF ISSUING TASK
   6533									;("BISB" INTO A CLEARED R4 EFFECTS A
   6534									;"MOVB" WITHOUT SIGN EXTENSION.)
   6535					;
   6536	022640				70$:	MFPI	-(R1)		;PUSH LUN & FORM LUN/EFN WORD ON STACK.
	022640	014146 				MOV	-(R1),-(SP)
   6537	022642	050016 				BIS	R0,@SP		;(R1 IS LEFT POINTING TO LUN)
   6538					;
   6539	022644	010446 				MOV	R4,-(SP)	;PUSH PRI/BYTE RESERVED FOR DPB SIZE
   6540					;
   6541					; STACK & REGISTER SUMMARY:
   6542					;
   6543					;	SP+14 -- PUD ENTRY ADDRESS
   6544					;	SP+12 -- DPB SIZE
   6545					;	SP+10 -- AST ENTRY PT (OR ZERO)
   6546					;	SP+06 -- I/O STATUS BUF ADR (OR ZERO)
   6547					;	SP+04 -- I/O FUNCTION CODE
   6548					;	SP+02 -- LUN/EFN WORD
   6549					;	SP+00 -- PRI/RESERVED BYTE
   6550					;
   6551					;	R5 -- ATL NODE ADR OF ISSUING TASK
   6552					;	R2 & R3 SETUP TO CLEAR EVENT FLAG
   6553					;
   6554	022646	116666 	000012 	000001 		MOVB	+12(SP),+1(SP)	;SET DPB SIZE IN "PRI/DPB-SIZE" WORD
   6555					;
   6556	022654	010100 				MOV	R1,R0		;SETUP R0 TO FETCH I/O PARAMETERS (FROM DPB)
   6557	022656	062700 	000010 			ADD	#10,R0
   6558	022662	010046 				MOV	R0,-(SP)	;SAVE R0
   6559					;
   6560	022664	012701 	000040 			MOV	#32.,R1		;SET UP TO PICK A NODE
   6561	022670					CALL	..ALCB
	022670	004737 	044416'			JSR	PC,..ALCB
   6562	022674	010001 				MOV	R0,R1		;SET UP NODE ADDRESS
   6563	022676	103001 				BCC	79$		;OK -- CHECK FUNCTION CODE
   6564	022700	104777 				TRAP	DE.01		;NO -- RETURN POOL EMPTY ERROR
   6565					;
   6566					;
   6567					;
   6568					; REQUEST CAN BE MADE -- STACK & REGISTER SUMMARY:
   6569					;
   6570					;	SP+14 -- PUD ENTRY ADDRESS
DMQIO	- "QUEUE I/O" DIRECTIVE	MACRO M1113  10-NOV-81 17:22  PAGE 124-4
DIRECTIVE -- QUEUE I/O

   6571					;	SP+12 -- DPB SIZE
   6572					;	SP+10 -- AST ENTRY PT (OR ZERO)
   6573					;	SP+06 -- I/O STATUS BUF ADR (OR ZERO)
   6574					;	SP+04 -- I/O FUNCTION CODE
   6575					;	SP+02 -- LUN/EFN WORD
   6576					;	SP+00 -- PRI/DPB SIZE
   6577					;
   6578					;	R5 -- ATL NODE ADR OF ISSUING TASK
   6579					;	R1 -- I/O REQUEST NODE ADDRESS
   6580					;	R2 & R3 SETUP TO CLEAR EVENT FLAG
   6581					;	R0 -- POINTING TO FIRST PARAMETER WORD IN DPB
   6582					;
   6583	022702	040312 			79$:	BIC	R3,@R2		;CLEAR EVENT FLAG, IFF SPECIFIED.
   6584									;NOTE -- IF NO EFN SPECIFIED, R3=R3=00.
   6585									;I.E., NO BITS IN LOCATION ZERO ARE CLEARED.
   6586	022704	012600 				MOV	(SP)+,R0	;RESTORE BUFFER ADDRESS
   6587					;
   6588					; FILL I/O REQUEST NODE
   6589					;
   6590	022706	010104 				MOV	R1,R4		;SETUP R4 TO FILL NODE
   6591	022710	022424 				CMP	(R4)+,(R4)+	;MOVE OVER LISTHEAD
   6592	022712	016524 	000016 			MOV	A.TD(R5),(R4)+	;SET STD ADDRESS
   6593					;
   6594	022716	010524 				MOV	R5,(R4)+	;SET ATL NODE ADR OF REQUESTOR
   6595	022720	012624 				MOV	(SP)+,(R4)+	;(POP) SET PRI/DPB-SIZE WORD
   6596	022722	011603 				MOV	@SP,R3		;SAVE LUN/EFN
   6597	022724	012624 				MOV	(SP)+,(R4)+	;(POP) SET LUN/EFN WORD
   6598	022726	012624 				MOV	(SP)+,(R4)+	;(POP) SET I/O FUNCTION CODE
   6599	022730	012624 				MOV	(SP)+,(R4)+	;(POP) SET I/O STATUS BLK ADR (OR ZERO)
   6600	022732	012624 				MOV	(SP)+,(R4)+	;(POP) SET AST ENTRY PT (OR ZERO)
   6601	022734	013724 	001156'			MOV	.SYUIC,(R4)+	;SET THE UIC
   6602					;
   6603	022740	012602 				MOV	(SP)+,R2	;(POP) SET DPB SIZE IN R2, CONVERT
   6604	022742	162702 	000006 			SUB	#6.,R2		;TO NUMBER OF I/O PARAMETERS, AND
   6605	022746	001402 				BEQ	90$		;MOVE PARAMETERS FROM DPB TO I/O
   6606	022750				80$:				;REQUEST NODE.
   6607	022750					MFPS	(R0)+,(R4)+
	022750	012024 				MOV	(R0)+,(R4)+
   6608	022752	077202 				SOB	R2,80$
   6609	022754				90$:
   6610					;
   6611					;
   6612	022754	012602 				MOV	(SP)+,R2	;(POP) SET R2 TO PUD ENTRY ADDRESS, AND
   6613	022756	016204 	000020 			MOV	U.HA(R2),R4	;SET R2 TO HANDLER TASK'S ATL NODE ADDRESS.
   6614					;
   6615					; IF FUNCTION CODE 'RF.XR' IS SET, THIS FUNCTION IS AN "EXPRESS" FUNCTION.
   6616					; EXPRESS REQUESTS ARE NORMALLY DE-QUEUED BEFORE NORMAL REQUESTS. VIZ.,
   6617					; "KILL READ REQUEST", OR "RUNDOWN I/O ON TASK".
   6618					;
   6619	022762	010137 	023200'			MOV	R1,QNDSV	;SAVE THE QIO NODE ADDRESS
   6620	022766	016100 	000014 			MOV	R.FC(R1),R0	;FIND THE FUNCTION CODE
   6621	022772	020027 	002500 			CMP	R0,#IO.STC	;CHECK TO SEE IF LEGAL
   6622	022776	101457 				BLOS	95$		;YES -- DON'T NEED FCP
   6623	023000	010246 				MOV	R2,-(SP)
   6624	023002	010346 				MOV	R3,-(SP)
   6625	023004	010203 				MOV	R2,R3		;FIND THE PUD ADDRESS
   6626	023006	016302 	000040 			MOV	U.ACP(R3),R2	;FIND THE STD ADDRESS OF THE ACP
DMQIO	- "QUEUE I/O" DIRECTIVE	MACRO M1113  10-NOV-81 17:22  PAGE 124-5
DIRECTIVE -- QUEUE I/O

   6627	023012	001015 				BNE	77$		;FOUND ACP -- DON'T DIDDLE CODES
   6628	023014	022700 	011000 			CMP	#IO.WVB,R0	;IS CODE WRITE VIRTUAL?
   6629	023020	001003 				BNE	74$		;NO -- LOOK FOR READ
   6630	023022	012761 	000400 	000014 		MOV	#IO.WLB,R.FC(R1) ;YES SET FUNCTON CODE
   6631	023030	022700 	010400 		74$:	CMP	#IO.RVB,R0	;IS FUNCTION CODE READ VIRTUAL?
   6632	023034	001036 				BNE	93$		;NO -- FORGET IT
   6633	023036	012761 	001000 	000014 		MOV	#IO.RLB,R.FC(R1) ;SET FUNCTION CODE
   6634	023044	000432 				BR	93$
   6635	023046				77$:
   6639	023046	020027 	010400 			CMP	R0,#IO.RVB	;CHECK FOR READ/WRITE VIRTUAL
   6640	023052	001403 				BEQ	71$		;YES -- ATTEMPT TO MAP IT
   6641	023054	020027 	011000 			CMP	R0,#IO.WVB	;MAYBE TRY WRITE
   6642	023060	001003 				BNE	73$		;NO -- CALL FCP
   6643	023062				71$:	CALL	..VTOL		;TRY AND MAP
	023062	004737 	047150'			JSR	PC,..VTOL
   6644	023066	103021 				BCC	93$		;MADE IT -- DON'T CALL FCP
   6645	023070	010337 	023202'		73$:	MOV	R3,QNDSV+2	;SET PUD ADDRESS
   6646	023074	016137 	000014 	023204'		MOV	R.FC(R1),QNDSV+4	;SET FUNCTION CODE
   6647	023102	012701 	023206'			MOV	#PRMBLK,R1	;POINTER TO BUFFER ADDRESS AND EFN
   6648	023106					CALL	.SEND		;SEND BLOCK
	023106	004737 	023360'			JSR	PC,.SEND
   6649	023112	005003 				CLR	R3
   6650	023114	005004 				CLR	R4		;SET DEFAULT PARTITION AND PRI FOR ACP
   6651	023116	010102 				MOV	R1,R2
   6652	023120					CALL	.REQS		;REQ ACP
	023120	004737 	015046'			JSR	PC,.REQS
   6653	023124	012603 				MOV	(SP)+,R3
   6654	023126	012602 				MOV	(SP)+,R2
   6655	023130	000413 				BR	100$
   6656					;
   6657	023132	012603 			93$:	MOV	(SP)+,R3	;RESTORE
   6658	023134	012602 				MOV	(SP)+,R2
   6659	023136				95$:				;(R2 CONTAINS PUD ENTRY ADDRESS)
   6660	023136	062702 	000022 			ADD	#U.RF,R2	;SET R2 TO I/O REQUEST DEQUE LISTHEAD ADR
   6661									;(R1 IS SET TO REQUEST NODE ADDRESS)
   6662	023142					CALL	..IPRI		;AND INSERT REQUEST NODE BY PRIORITY.
	023142	004737 	044122'			JSR	PC,..IPRI
   6663	023146	052764 	000010 	000020 		BIS	#EF.NIR,A.EF+0(R4) ;NO -- SET TRIGGER EVENT FLAG 'EF.NIR'.
   6664	023154					CALL	..DSEV		;DECLARE SIGNIFICANT EVENT TO EFFECT "TRIGGER"
	023154	004737 	044026'			JSR	PC,..DSEV
   6665					;
   6666	023160	022627 	000003 		100$:	CMP	(SP)+,#3	;CHECK THE DIC TO SEE IF QIO AND WAIT
   6667	023164	001401 				BEQ	120$		;YES -- ISSUE THE WAIT
   6668					;				;NO -- JUST RETURN
   6669	023166	104401 				TRAP	DR.01		;RETURN STS=+1
   6670					;
   6671	023170	105003 			120$:	CLRB	R3		;SET UP FOR THE WAIT DIRECTIVE
   6672	023172	000303 				SWAB	R3
   6673	023174	000137 	022154'			JMP	.D.WFO		;ISSUE WAIT DIRECTIVE
   6674					;
   6675	023200	000000 	000000 	000000 	QNDSV:	.WORD	0,0,0		;SAVE AREA FOR NODE
   6676					;
   6677	023206	023200'			PRMBLK:	.WORD	QNDSV		;POINTER TO SEND BUFFER
   6678	023210	000000 				.WORD	0		;EFN (0)
DMSAR	- SEND & RECEIVE DIRECT	MACRO M1113  10-NOV-81 17:22  PAGE 125
DIRECTIVE -- QUEUE I/O

   6680						.TITLE	DMSAR	- SEND & RECEIVE DIRECTIVES MODULE
   6681						.SBTTL	SEND AND RECEIVE -- COPYRIGT STATEMENT
   6682	023212					IDENT$	2,0
						.IDENT	/002000/
   6683					;
   6684					;                             COPYRIGHT (C) 1975, 1978 BY
   6685					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   6686					;
   6687					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   6688					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   6689					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   6690					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   6691					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   6692					;
   6693					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   6694					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   6695					;       CORPORATION.
   6696					;
   6697					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   6698					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   6699					;
   6700					;
   6701					;		MODULE: SEND & RECEIVE DIRECTIVES
   6702					;
   6703					;		VERSION: 01-00
   6704					;
   6705					;		AUTHOR: R. MCLEAN
   6706					;
   6707					;		DATE: 19 MAY 75
   6708					;
   6709					;
   6710					;	THIS MODULE CONTAINS:
   6711					;
   6712					;	1 -- CODE TO SERVICE THE "SEND DATA" DIRECTIVE,
   6713					;	2 -- CODE TO SERVICE THE "SEND AND REQUEST OR RESUME" DIRECTIVE,
   6714					;	3 -- CODE TO SERVICE THE "RECEIVE DATA" DIRECTIVE,
   6715					;	4 -- CODE TO SERVICE THE "RECEIVE OR EXIT" DIRECTIVE,
   6716					;	5 -- CODE TO SERVICE THE "RECEIVE OR SUSPEND" DIRECTIVE,
   6717					;
   6718					;	MACROS
   6719					;
   6720						.MCALL	CALL,RETURN,MTPI,MTPS,MFPI,MFPS
DMSAR	- SEND & RECEIVE DIRECT	MACRO M1113  10-NOV-81 17:22  PAGE 126
DIRECTIVE -- SEND DATA

   6722						.SBTTL	DIRECTIVE -- SEND DATA
   6723					;+
   6724					; THE "SEND DATA" DIRECTIVE
   6725					;
   6726					; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO QUEUE (FIFO) A THIRTEEN WORD
   6727					; BLOCK OF DATA FOR A TASK TO RECEIVE.
   6728					;
   6729					; A FIVE WORD DPB OF THE FOLLOWING FORMAT IS USED:
   6730					;
   6731					;	WD. 00 -- DIC (13.) & DPB SIZE (5.),
   6732					;	WD. 01 -- RECEIVER TASK NAME (FIRST HALF),
   6733					;	WD. 02 -- RECEIVER TASK NAME (SECOND HALF),
   6734					;	WD. 03 -- ADDRESS OF THIRTEEN WORD DATA BLOCK,
   6735					;	WD. 04 -- [EVENT FLAG NUMBER (EFN)].
   6736					;
   6737					; WHEN AN EVENT FLAG IS SPECIFIED, A SIGNIFICANT EVENT IS DECLARED
   6738					; (IF THE DIRECTIVE IS PERFORMED) AND THE INDICATED EVENT FLAG IS SET.
   6739					;
   6740					; THE FOLLOWING STATUS IS RETURNED:
   6741					;
   6742					; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
   6743					; OF ONE (+1).
   6744					;
   6745					; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
   6746					;
   6747					;	-02 -- RECEIVER TASK NOT INSTALLED (NO STD ENTRY FOUND),
   6748					;	-04 -- INSUFFICIENT POOL NODES FOR "SEND",
   6749					;
   6750					;	-97 -- INVALID EVENT FLAG NUMBER (EFN<0 OR EFN>64),
   6751					;	-99 -- DIC OR DPB SIZE IS INVALID.
   6752					;-
   6753					; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
   6754					; DIRECTIVE ISSUING TASK'S PS, PC, & R1-R5 PUSHED ONTO THE
   6755					;  STACK, AND R0-R5 SET AS FOLLOWS:
   6756					;	R0 -- PC OF EMT INSTRUCTION
   6757					;	R1 -- POINTER TO WORD FOLLOWING DIC & SIZE
   6758					;	R2 -- DPB SIZE
   6759					;	R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
   6760					;	R5 -- ATL NODE ADDRESS OF ISSUING TASK ('.CRTSK')
   6761					;
   6762					; R5 IS LEFT UNALTERED (I.E. POINTING TO ISSUING TASK'S ATL NODE).
   6763					;
   6764	023212				.D.SEN::CALL	..FSTD		;SET R2 TO STD ENTRY ADDRESS, OR TO
	023212	004737 	044336'			JSR	PC,..FSTD
   6765									;ZERO IF TASK NAME NOT FOUND (AND SET
   6766									;CONDITION CODES PER "TST R2").
   6767									;
   6768									;ADVANCE R1 BY FOUR (PAST TASK NAME).
   6769					;
   6770	023216	001406 				BEQ	.X.02		;IF TASK NOT INSTALLED, RETURN STS=-02.
   6771					;
   6772					; R1 IS POINTING TO DPB WD. 03, AND R2 CONTAINS STD NODE ADR OF RECEIVER.
   6773					;
   6774	023220				10$:	CALL	.SEND		;SEND DATA & SET EVENT FLAG PER R1 & R2
	023220	004737 	023360'			JSR	PC,.SEND
   6775					;
   6776	023224	104401 				TRAP	DR.01		;RETURN STS=+1.
DMSAR	- SEND & RECEIVE DIRECT	MACRO M1113  10-NOV-81 17:22  PAGE 127
DIRECTIVE -- SEND AND REQUEST OR RESUME

   6778					.SBTTL	DIRECTIVE -- SEND AND REQUEST OR RESUME
   6779					;+
   6780					; THE "SEND AND REQUEST OR RESUME" DIRECTIVE
   6781					;
   6782					; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO QUEUE (FIFO) A THIRTEEN WORD
   6783					; BLOCK OF DATA FOR A TASK TO RECEIVE, AND TO REQUEST OR RESUME THE
   6784					; EXECUTION OF THE RECEIVER TASK.
   6785					;
   6786					; THIS DIRECTIVE HAS THE EFFECT OF ISSUING A "SEND DATA" DIRECTIVE
   6787					; FOLLOWED BY A "REQUEST" OR "RESUME" DIRECTIVE, EXCEPT THAT (1) NO TASK
   6788					; SWITCHING CAN OCCUR BETWEEN THE SEND AND THE REQUEST OR RECEIVE, AND
   6789					; (2) IF THE SEND IS NOT PERFORMED, NEITHER THE REQEST NOR THE RESUME
   6790					; WILL BE ATTEMPTED.
   6791					;
   6792					; I.E., IF DATA IS SENT TO AN INACTIVE TASK, THAT TASK WILL BE REQUESTED;
   6793					; IF DATA IS SENT TO A SUSPENDED TASK, THAT TASK WILL BE RESUMED.
   6794					;
   6795					; A NINE WORD DPB OF THE FOLLOWING FORMAT IS USED:
   6796					;
   6797					;	WD. 00 -- DIC (15.) & DPB SIZE (9.),
   6798					;	WD. 01 -- RECEIVER TASK NAME (FIRST HALF),
   6799					;	WD. 02 -- RECEIVER TASK NAME (SECOND HALF),
   6800					;	WD. 03 -- [PARTITION NAME (FIRST HALF)],
   6801					;	WD. 04 -- [PARTITION NAME (SECOND HALF)],
   6802					;	WD. 05 -- [PRIORITY],
   6803					;	WD. 06 -- 0,
   6804					;	WD. 07 -- ADDRESS OF THIRTEEN WORD DATA BLOCK,
   6805					;	WD. 10 -- [EVENT FLAG NUMBER (EFN)].
   6806					;
   6807					; WHEN AN EVENT FLAG IS SPECIFIED, A SIGNIFICANT EVENT IS DECLARED
   6808					; (IF THE DIRECTIVE IS PERFORMED) AND THE INDICATED EVENT FLAG IS SET.
   6809					;
   6810					; THE FOLLOWING STATUS IS RETURNED:
   6811					;
   6812					; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE
   6813					; STATUS OF:
   6814					;
   6815					;	+1 -- DATA SENT AND TASK REQUESTED,
   6816					;	+2 -- DATA SEND AND TASK RESUMED,
   6817					;	+3 -- DATA SENT TO AN NON-SUSPENDED ACTIVE TASK.
   6818					;
   6819					; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
   6820					;
   6821					;	-01 -- [R] INSUFFICIENT POOL NODES AVAILABLE FOR "REQUEST",
   6822					;	-02 -- [B] RECEIVER TASK NOT INSTALLED (NO STD ENTRY FOUND),
   6823					;	-03 -- [R] PARTITION TOO SMALL FOR RECEIVER TASK,
   6824					;	-04 -- [B] INSUFFICIENT POOL NODES FOR "SEND",
   6825					;	-08 -- [R] RECEIVER TASK IS DISABLED,
   6826					;
   6827					;	-80 -- [B] DIRECTIVE ISSUED BY "BACKGROUND" TASK,
   6828					;	-94 -- [R] PARTITION NOT IN SYSTEM (NO TPD ENTRY FOUND),
   6829					;	-95 -- [R] INVALID PRIORITY SPECIFIED (<0 OR >250.),
   6830					;	-97 -- [B] INVALID EVENT FLAG NUMBER (EFN<0 OR EFN>64),
   6831					;	-99 -- [B] DIC OR DPB SIZE IS INVALID.
   6832					;
   6833					; [R] -- REQUEST OR RESUME REJECTED
   6834					; [B] -- BOTH SEND & REQUEST OR RESUME REJECTED
DMSAR	- SEND & RECEIVE DIRECT	MACRO M1113  10-NOV-81 17:22  PAGE 127-1
DIRECTIVE -- SEND AND REQUEST OR RESUME

   6835					;-
   6836					; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
   6837					; DIRECTIVE ISSUING TASK'S PS, PC, & R1-R5 PUSHED ONTO THE
   6838					;  STACK, AND R0-R5 SET AS FOLLOWS:
   6839					;	R0 -- PC OF EMT INSTRUCTION
   6840					;	R1 -- POINTER TO WORD FOLLOWING DIC & SIZE
   6841					;	R2 -- DPB SIZE
   6842					;	R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
   6843					;	R5 -- ATL NODE ADDRESS OF ISSUING TASK ('.CRTSK')
   6844					;
   6845					; R5 IS LEFT UNALTERED (I.E. POINTING TO ISSUING TASK'S ATL NODE).
   6846					;
   6847	023226				.D.SAR::CALL	..FSTD		;SET R2 TO STD ENTRY ADDRESS, OR TO
	023226	004737 	044336'			JSR	PC,..FSTD
   6848									;ZERO IF TASK NAME NOT FOUND (AND SET
   6849									;CONDITION CODES PER "TST R2").
   6850									;
   6851									;ADVANCE R1 BY FOUR (PAST TASK NAME).
   6852					;
   6853	023232	001001 				BNE	SKX		;IF TASK NOT INSTALLED, RETURN STS=-02.
   6854	023234	104776 			.X.02:	TRAP	DE.02
   6855					;
   6856	023236	010146 			SKX:	MOV	R1,-(SP)	;PUSH (SAVE) R1 & R2, AND ADVANCE R1 TO POINT
   6857	023240	010246 				MOV	R2,-(SP)	;TO DPB WD. 07.
   6858	023242	062701 	000010 			ADD	#8.,R1
   6859					;
   6860					; R1 IS POINTING TO DPB WD. 07, AND R2 CONTAINS STD ENTRY ADR OF RECEIVER.
   6861					;
   6862	023246					CALL	.SEND		;SEND DATA & SET EVENT FLAG PER R1 & R2
	023246	004737 	023360'			JSR	PC,.SEND
   6863									;(R1, R2, R3, R4, & R5 ARE ALTERED)
   6864					;
   6865	023252	012602 				MOV	(SP)+,R2	;POP (RESTORE) R2 & R1
   6866	023254	012601 				MOV	(SP)+,R1	;(R1 IS POINTING TO DPB WD. 03.)
   6867					;
   6868	023256					CALL	.FEPPU		;SET R3 TO TPD ADDRESS IF A PARTITION IS
	023256	004737 	015550'			JSR	PC,.FEPPU
   6869									;SPECIFIED, OR TO ZERO IF NOT SPECIFIED.
   6870									;
   6871									;SET R4 TO PRIORITY IF SPECIFIED, OR TO
   6872									;ZERO IF NOT SPECIFIED.
   6873									;
   6874									;
   6875									;ADVANCE R1 BY EIGHT (PAST PARTITION NAME,
   6876									;PRIORITY INDICATOR, AND UIC INDICATOR.).
   6877									;
   6878									;IF INVALID PRIORITY, RETURN STS=-95.
   6879									;IF PARTITION NOT IS SYSTEM, RETURN
   6880									;STS=-94.  IF NON-PRIVILEGED TASK HAS
   6881									;SPECIFIED OTHER THAN OWN UIC, RETURN
   6882									;STS=-91.  IF SPECIFIED PARTITION IS
   6883									;TOO SMALL FOR TASK, RETURN STS=-03.
   6884					;
   6885					;
   6886	023262	012701 	000001 			MOV	#1,R1		;SET R1 TO INDICATE "MAKE TASK ACTIVE WHETHER
   6887									;MEMORY IS AVAILABLE OR NOT"
   6888					;
DMSAR	- SEND & RECEIVE DIRECT	MACRO M1113  10-NOV-81 17:22  PAGE 127-2
DIRECTIVE -- SEND AND REQUEST OR RESUME

   6889	023266	016500 	000016 			MOV	A.TD(R5),R0	;SET R5 TO STD ADDRESS OF REQUESTOR
   6890					;
   6891	023272	010246 				MOV	R2,-(SP)	;PUSH STD ENTRY ADDRESS (FOR ATL SCAN)
   6892					;
   6893	023274					CALL	.REQS		;MAKE A TASK ACTIVE PER R0, R1, R2, R3, R4 & R5.
	023274	004737 	015046'			JSR	PC,.REQS
   6894									;(R1, R2, R3, R4, & R5 ARE ALTERED)
   6895	023300	012604 				MOV	(SP)+,R4	;POP STD ENTRY ADDRESS INTO R4
   6896					;
   6897	023302	020227 	000002 			CMP	R2,#02		;SPECIAL CASE -- IS TASK ACTIVE?
   6898	023306	001402 				BEQ	10$		;YES -- RESUME IF SUSPENDED
   6899	023310	000162 	015540'			JMP	.RQESD(R2)	;NO -- RETURN DIRECTIVE STATUS PER SUBROUTINE
   6900									;STATUS IN R2.
   6901					;
   6902					; RECEIVER TASK IS ACTIVE:
   6903					;
   6904					;	IF SUSPENDED, RESUME & RETURN STS=+2
   6905					;	IF NOT SUSPENDED, RETURN STS=+3
   6906					;
   6907					; R4 CONTAINS THE STD ENTRY ADDRESS OF THE RECEIVER TASK.
   6908					;
   6909	023314	012703 	007106'		10$:	MOV	#.ATLLH,R3	;SETUP FOR ATL SCAN
   6910	023320				20$:
   6911	023320	011303 				MOV	@R3,R3		;SETUP R3 TO EXAMINE NEXT ENTRY
   6912	023322	020337 	007110'			CMP	R3,.ATLLH+2	;IS R3 POINTING TO ENTRY FOR NUL TASK?
   6913	023326	001413 				BEQ	70$		;YES -- ATL NODE IS NOT IN THE ATL (IT IS
   6914									;IN THE "MRL" FOR A PARTITION) RETURN STS=+3.
   6915	023330	026304 	000016 			CMP	A.TD(R3),R4	;NO -- STD ADDRESS MATCH?
   6916	023334	001371 				BNE	20$		;NO -- CHECK NEXT ATL NODE
   6917	023336	126327 	000014 	000012 	60$:	CMPB  A.TS(R3),#TS.SUS	;NO -- IS TASK SUSPENDED?
   6918	023344	001004 				BNE	70$
   6919	023346	112763 	000010 	000014 		MOVB  #TS.RUN,A.TS(R3)	;YES -- CHANGE STATUS TO RUNNING (A SIGNIFICANT
   6920									;EVENT HAS BEEN DECLARED AS A RESULT OF THE
   6921	023354	104402 				TRAP	DR.02		;SEND), AND RETURN STS=+2.
   6922					;
   6923	023356	104403 			70$:	TRAP	DR.03		;STS +3
DMSAR	- SEND & RECEIVE DIRECT	MACRO M1113  10-NOV-81 17:22  PAGE 128
DIRECTIVE -- SEND AND REQUEST OR RESUME

   6925					; SEND -- SUBROUTINE TO PERFORM "SEND" FOR "SEND DATA" AND "SEND DATA &
   6926					; REQUEST RECEIVER" DIRECTIVES.
   6927					;
   6928					; ENTRY CONDITIONS:
   6929					;
   6930					;	R5 -- ATL NODE ADDRESS OF ISSUING TASK
   6931					;	R1 -- POINTING (IN DPB) TO ADR OF 13 WORD BLOCK OF DATA,
   6932					;	WHICH IS FOLLOWED BY AN [EFN].  BOTH WORDS MUST BE FETCHABLE
   6933					;	WITHOUT SEGMENT FAULT.
   6934					;	R2 -- STD ENTRY ADDRESS OF RECEIVER TASK
   6935					;
   6936					; CALLING SEQUENCE:
   6937					;
   6938					;	JSR  PC,SEND
   6939					;
   6940					; EXIT CONDITIONS:
   6941					;
   6942					;	IF NO POOL NODE AVAILABLE, RETURN AT 'DE.01'
   6943					;	IF INVALID EFN, RETURN AT 'DE.97'
   6944					;	IF PART OF DATA OUT OF TASK'S ADDRESS SPACE, RETURN AT 'DE.98'
   6945					;
   6946					;	IF SUCCESSFUL, DATA IS QUEUED, EFN (IF SPECIFIED) IS SET,
   6947					;	AND A SIGNIFICANT EVENT IS DECLARED.
   6948					;
   6949					;	R1 -- STD OF RECEIVER TASK
   6950					;
   6951					;
   6952					; REGISTERS ALTERED:
   6953					;
   6954					;	R1, R2, R3, R4, & R0
   6955					;
   6956	023360				.SEND::	MFPI	(R1)+		;SET R5 TO ADDRESS OF DATA BLOCK, AND
	023360	012146 				MOV	(R1)+,-(SP)
   6957	023362	012600 				MOV	(SP)+,R0	;LEAVE R1 POINTING TO [EFN].
   6958					;
   6959	023364	010246 				MOV	R2,-(SP)	;SAVE RECEIVER STD ENTRY ADR IN -(SP)
   6960					;
   6961									;R1 IS POINTING TO [EFN] IN DPB.
   6962					;
   6963	023366					CALL	.CEFN		;CONVERT EFN TO: (1) FLAG WORD ADDRESS
	023366	004737 	043062'			JSR	PC,.CEFN
   6964									;IN R2, AND (2) FLAG MASK IN R3 (R1 IS
   6965									;POINTING TO EFN).  IF EFN<0, OR EFN>64.,
   6966									;RETURN STS=-97.  IF EFN=0 (NO EVENT FLAG
   6967									;SPECIFIED), RETURN WITH R2=R3=00.
   6968									;CONDITION CODES ARE SET PER "TST R3".
   6969					;
   6970	023372	010246 				MOV	R2,-(SP)	;PUSH "BIS" ADDRESS WORD
   6971	023374	010346 				MOV	R3,-(SP)	;PUSH "BIS" MASK WORD
   6972					;
   6973	023376	012704 	001424'			MOV	#.POLLH,R4	;LISTHEAD
   6974	023402					CALL	..PICK		;ISSUING TASK, AND SET R1 TO NODE ADR.
	023402	004737 	044240'			JSR	PC,..PICK
   6975	023406	103001 				BCC	10$		;IF NONE AVAILABLE, RETURN STS=-04.
   6976	023410	104774 				TRAP	DE.04
   6977					;
   6978	023412	010401 			10$:	MOV	R4,R1		;SETUP R3 TO FILL NODE
DMSAR	- SEND & RECEIVE DIRECT	MACRO M1113  10-NOV-81 17:22  PAGE 128-1
DIRECTIVE -- SEND AND REQUEST OR RESUME

   6979	023414	062704 	000006 			ADD	#Q.D1,R4
   6980	023420	012703 	000015 			MOV	#13.,R3
   6981	023424				20$:
   6982	023424					MFPI	(R0)+		;MOVE WORD FROM DATA BLOCK TO NODE
	023424	012046 				MOV	(R0)+,-(SP)
   6983	023426	012624 				MOV	(SP)+,(R4)+
   6984	023430	077303 				SOB	R3,20$
   6985	023432	052636 				BIS	(SP)+,@(SP)+	;SET EVENT FLAG IF SPECIFIED (IF NOT
   6986	023434	011604 				MOV	@SP,R4		;FIND RECEIVER'S STD ADDRESS
   6987	023436	010461 	000004 			MOV	R4,Q.SI(R1)	;SET SENDERS STD ADDRESS
   6988					;
   6989	023442	016404 	000026 			MOV	S.RB(R4),R4	;SET R4 TO ADDRESS OF LAST NODE (OR LISTHEAD)
   6990	023446					CALL	..NADD		;OF TASK'S RECEIVE DEQUE (LISTHEAD IN STD),
	023446	004737 	044176'			JSR	PC,..NADD
   6991									;AND ADD NODE AT END OF DEQUE.
   6992					;
   6993									;SPECIFIED, SET NO BITS IN WORD ZERO).
   6994					;
   6995	023452	012601 				MOV	(SP)+,R1	;SET RECEIVER STD ADDRESS
   6996	023454	000137 	044026'			JMP	..DSEV		;DECLARE A SIGNIFICANT EVENT AND EXIT
   6997						;
DMSAR	- SEND & RECEIVE DIRECT	MACRO M1113  10-NOV-81 17:22  PAGE 129
DIRECTIVE -- RECEIVE DATA

   6999					.SBTTL	DIRECTIVE -- RECEIVE DATA
   7000					;+
   7001					; THE "RECEIVE DATA" DIRECTIVE
   7002					;
   7003					; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO RECEIVE A THIRTEEN WORD
   7004					; DATA BLOCK THAT HAS BEEN QUEUED (FIFO) FOR IT (VIA "SEND DATA" OR
   7005					; "SEND DATA & REQUEST RECEIVER" DIRECTIVES).
   7006					;
   7007					; WHEN A SENDER TASK IS SPECIFIED, ONLY DATA SENT BY THE INDICATED
   7008					; TASK IS RECEIVED.
   7009					;
   7010					; A TWO-WORD SENDER TASK NAME, AND THE THIRTEEN-WORD DATA BLOCK, ARE
   7011					; RETURNED IN AN INDICATED FIFTEEN WORD BUFFER, WITH THE TASK NAME IN
   7012					; THE FIRST TWO WORDS.
   7013					;
   7014					; A FOUR WORD DPB OF THE FOLLOWING FORMAT IS USED:
   7015					;
   7016					;	WD. 00 -- DIC (17.) & DPB SIZE (4.),
   7017					;	WD. 01 -- [SENDER TASK NAME (FIRST HALF)],
   7018					;	WD. 02 -- [SENDER TASK NAME (SECOND HALF)],
   7019					;	WD. 03 -- ADDRESS OF FIFTEEN WORD BUFFER.
   7020					;
   7021					; THE FOLLOWING STATUS IS RETURNED:
   7022					;
   7023					; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
   7024					; OF ONE (+1).
   7025					;
   7026					;
   7027					; CC-C SET TO INDICATE REJECTIONAND A DIRECTIVE STATUS OF:
   7028					;
   7029					;	-02 -- SPECIFIED SENDER TASK NOT INSTALLED,
   7030					;	-08 -- NO DATA QUEUED (SENT),
   7031					;
   7032					;	-99 -- DIC OR DPB SIZE IS INVALID.
   7033					;-
   7034					; THIS DIRECTIVE SERVICE HAS A COMMON ENTRY WITH "RECEIVE DATA OR SUSPEND".
DMSAR	- SEND & RECEIVE DIRECT	MACRO M1113  10-NOV-81 17:22  PAGE 130
DIRECTIVE -- RECEIVE DATA OR EXIT

   7036					.SBTTL	DIRECTIVE -- RECEIVE DATA OR EXIT
   7037					;+
   7038					; THE "RECEIVE DATA OR EXIT" DIRECTIVE
   7039					;
   7040					; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO RECEIVE A THIRTEEN WORD
   7041					; DATA BLOCK IF AT LEAST ONE IS CAN BE RECEIVED, OR TO EXIT IF NO
   7042					; THIRTEEN WORD DATA BLOCKS ARE CAN BE RECEIVED.
   7043					;
   7044					; DATA BLOCKS ARE QUEUED (FIFO) FOR THE TASK VIA THE "SEND DATA" OR
   7045					; THE "SEND DATA & REQUEST RECEIVER" DIRECTIVES.
   7046					;
   7047					; WHEN A SENDER TASK IS SPECIFIED, ONLY DATA SENT BY THE INDICATED
   7048					; TASK IS RECEIVED.
   7049					;
   7050					; A TWO-WORD SENDER TASK NAME, AND THE THIRTEEN-WORD DATA BLOCK, ARE
   7051					; RETURNED IN AN INDICATED FIFTEEN WORD BUFFER, WITH THE TASK NAME IN
   7052					; THE FIRST TWO WORDS.
   7053					;
   7054					; A FOUR WORD DPB OF THE FOLLOWING FORMAT IS USED:
   7055					;
   7056					;	WD. 00 -- DIC (19.) & DPB SIZE (4.),
   7057					;	WD. 01 -- [SENDER TASK NAME (FIRST HALF)],
   7058					;	WD. 02 -- [SENDER TASK NAME (SECOND HALF)],
   7059					;	WD. 03 -- ADDRESS OF FIFTEEN WORD BUFFER.
   7060					;
   7061					; THE FOLLOWING STATUS IS RETURNED:
   7062					;
   7063					; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
   7064					; OF ONE (+1).
   7065					;
   7066					;
   7067					; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
   7068					;
   7069					;	-02 -- SPECIFIED SENDER TASK NOT INSTALLED,
   7070					;
   7071					;	-80 -- DIRECTIVE ISSUED BY "BACKGROUND" TASK,
   7072					;	-98 -- PART OF DPB OR BUFFER IS OUT OF TASK'S ADDRESS SPACE,
   7073					;	-99 -- DIC OR DPB SIZE IS INVALID.
   7074					;-
   7075					; THIS DIRECTIVE SERVICE HAS A COMMON ENTRY WITH "RECEIVE DATA OR SUSPEND".
DMSAR	- SEND & RECEIVE DIRECT	MACRO M1113  10-NOV-81 17:22  PAGE 131
DIRECTIVE -- RECEIVE DATA OR SUSPEND

   7077					.SBTTL	DIRECTIVE -- RECEIVE DATA OR SUSPEND
   7078					;+
   7079					; THE "RECEIVE DATA OR SUSPEND" DIRECTIVE
   7080					;
   7081					; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO RECEIVE A THIRTEEN WORD
   7082					; DATA BLOCK IF AT LEAST ONE IS CAN BE RECEIVED, OR TO SUSPEND IF NO
   7083					; THIRTEEN WORD DATA BLOCKS ARE CAN BE RECEIVED.
   7084					;
   7085					; DATA BLOCKS ARE QUEUED (FIFO) FOR THE TASK VIA THE "SEND DATA" OR
   7086					; THE "SEND DATA & REQUEST RECEIVER" DIRECTIVES.
   7087					;
   7088					; WHEN A SENDER TASK IS SPECIFIED, ONLY DATA SENT BY THE INDICATED
   7089					; TASK IS RECEIVED.
   7090					;
   7091					; A TWO-WORD SENDER TASK NAME, AND THE THIRTEEN-WORD DATA BLOCK, ARE
   7092					; RETURNED IN AN INDICATED FIFTEEN WORD BUFFER, WITH THE TASK NAME IN
   7093					; THE FIRST TWO WORDS.
   7094					;
   7095					; A FOUR WORD DPB OF THE FOLLOWING FORMAT IS USED:
   7096					;
   7097					;	WD. 00 -- DIC (21.) & DPB SIZE (4.),
   7098					;	WD. 01 -- [SENDER TASK NAME (FIRST HALF)],
   7099					;	WD. 02 -- [SENDER TASK NAME (SECOND HALF)],
   7100					;	WD. 03 -- ADDRESS OF FIFTEEN WORD BUFFER.
   7101					;
   7102					; THE FOLLOWING STATUS IS RETURNED:
   7103					;
   7104					; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE
   7105					; STATUS OF:
   7106					;
   7107					;	+1 -- IF DATA WAS RECEIVED,
   7108					;	+2 -- IF TASK WAS SUSPENDED.
   7109					;
   7110					; CC-C SET TO INDICATE REJECTION AND A DIRECTIVE STATUS OF:
   7111					;
   7112					;	-02 -- SPECIFIED SENDER TASK NOT INSTALLED,
   7113					;
   7114					;	-80 -- DIRECTIVE ISSUED BY "BACKGROUND" TASK,
   7115					;	-98 -- PART OF DPB OR BUFFER IS OUT OF TASK'S ADDRESS SPACE,
   7116					;	-99 -- DIC OR DPB SIZE IS INVALID.
   7117					;-
   7118					; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
   7119					; DIRECTIVE ISSUING TASK'S PS, PC, & R1-R5 PUSHED ONTO THE
   7120					;  STACK, AND R0-R5 SET AS FOLLOWS:
   7121					;	R0 -- PC OF EMT INSTRUCTION
   7122					;	R1 -- POINTER TO WORD FOLLOWING DIC & SIZE
   7123					;	R2 -- DPB SIZE
   7124					;	R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
   7125					;	R5 -- ATL NODE ADDRESS OF ISSUING TASK ('.CRTSK')
   7126					;
   7127					; R5 IS LEFT UNALTERED (I.E. POINTING TO ISSUING TASK'S ATL NODE).
   7128					;
   7129									;R5 IS POINTING TO 15-WORD BUFFER IN TASK.
   7130					;
   7131									;R4 IS SET TO STD NODE ADDRESS OF RECEIVER TASK.
   7132					;
   7133					; COMMON ENTRY POINT FOR "RECEIVE", "RECEIVE OR EXIT", & "RECEIVE OR SUSPEND".
DMSAR	- SEND & RECEIVE DIRECT	MACRO M1113  10-NOV-81 17:22  PAGE 131-1
DIRECTIVE -- RECEIVE DATA OR SUSPEND

   7134					;
   7135
   7136	023460				.D.REC::
   7137	023460				.D.ROE::
   7138	023460				.D.ROS::
   7139	023460	016504 	000016 			MOV 	A.TD(R5),R4	;SET R4 TO RECEIVE DEQUE LISTHEAD (IN STD ENTRY).
   7140	023464	062704 	000024 			ADD	#S.RF,R4
   7141					;
   7142	023470					MFPI	(R1)+		;IS A SENDER TASK SPECIFIED?
	023470	012146 				MOV	(R1)+,-(SP)
   7143	023472					MFPI	(R1)+		;MAYBE -- CHECK SECOND HALF OF TASK NAME
	023472	012146 				MOV	(R1)+,-(SP)
   7144	023474	052626 				BIS	(SP)+,(SP)+
   7145	023476	001004 				BNE	10$		;NO -- RECEIVE FROM ANY SENDER
   7146									;YES -- RECEIVE ONLY FROM INDICATED SENDER
   7147									;NO -- RECEIVE FROM ANY SENDER
   7148	023500					CALL	..PICK		;PICK FIRST NODE FROM REC DEQUE, AND LEAVE NODE
	023500	004737 	044240'			JSR	PC,..PICK
   7149									;ADDRESS IN R4.
   7150									;NODE PICKED?
   7151	023504	103017 				BCC	40$		;YES -- FILL BUFFER
   7152	023506	000440 				BR	70$		;NO -- NO DATA BY ANY SENDER
   7153					;
   7154	023510	024141 			10$:	CMP	-(R1),-(R1)
   7155					; R1 IS POINTING TO SPECIFIED SENDER'S TASK NAME IN PREVIOUS SPACE.
   7156					;
   7157	023512					CALL	..FSTD		;SET R2 TO STD ENTRY ADDRESS, OR TO
	023512	004737 	044336'			JSR	PC,..FSTD
   7158									;ZERO IF TASK NAME NOT FOUND (AND SET
   7159									;CONDITION CODES PER "TST R2").
   7160									;
   7161									;ADVANCE R1 BY FOUR (PAST TASK NAME).
   7162					;
   7163	023516	001001 				BNE	20$		;IF TASK NOT INSTALLED, RETURN STS=-02.
   7164	023520	104776 				TRAP	DE.02		;RETURN STS=-02.
   7165					;
   7166	023522	010401 			20$:	MOV	R4,R1		;SAVE LISTHEAD ADDRESS IN R1, AND
   7167									;SCAN DEQUE FOR DATA SENT BY SENDER PER R2.
   7168	023524				30$:
   7169	023524	011404 				MOV	@R4,R4		;ADVANCE R4 TO NEXT NODE
   7170	023526	020401 				CMP	R4,R1		;END OF DEQUE?
   7171	023530	001427 				BEQ	70$		;YES -- NO DATA BY SPECIFIED SENDER
   7172	023532	026402 	000004 			CMP	Q.SI(R4),R2	;NO -- IS DATA SENT BY SPECIFIED SENDER?
   7173	023536	001372 				BNE	30$		;NO -- CHECK NEXT NODE
   7174	023540					CALL	..NDEL		;YES -- DELETE NODE FROM DEQUE
	023540	004737 	044062'			JSR	PC,..NDEL
   7175					;
   7176					; DATA RECEIVED -- R4 CONTAINS NODE ADDRESS & R1 CONTAINS DATA BUFFER
   7177					; ADDRESS.  FILL BUFFER (2-WORD TASK NAME & 13-WORD DATA BLOCK).
   7178					;
   7179	023544				40$:
   7180	023544					MFPS	@R1,R0	;FIND THE BUFFER ADDRESS
	023544	011100 				MOV	@R1,R0
   7181	023546	010401 				MOV	R4,R1		;SAVE NODE ADR IN R1 FOR '..RNTP'
   7182	023550	062704 	000004 			ADD	#Q.SI,R4	;ADVANCE R4 TO POINT TO SENDER ID WORD
   7183					;
   7184	023554	012403 				MOV	(R4)+,R3	;SET R3 TO SENDER STD NODE ADDRESS
DMSAR	- SEND & RECEIVE DIRECT	MACRO M1113  10-NOV-81 17:22  PAGE 131-2
DIRECTIVE -- RECEIVE DATA OR SUSPEND

   7185					;
   7186	023556				50$:
   7187	023556					MTPS  S.TN+0(R3),(R0)+	;SET SENDER TASK NAME IN FIRST TWO WORDS
	023556	016320 	000000 			MOV	S.TN+0(R3),(R0)+
   7188	023562					MTPS  S.TN+2(R3),(R0)+
	023562	016320 	000002 			MOV	S.TN+2(R3),(R0)+
   7189					;
   7190	023566	012703 	000015 			MOV	#13.,R3		;FILL REMAINING 13 WORDS FROM NODE.
   7191	023572				60$:
   7192	023572					MTPS	(R4)+,(R0)+
	023572	012420 				MOV	(R4)+,(R0)+
   7193	023574	077302 				SOB	R3,60$
   7194					;
   7195	023576	012704 	001424'			MOV	#.POLLH,R4	;RETURN NODE TO POOL
   7196	023602					CALL	..NADD		;RETURN NODE (PER R1) TO POOL
	023602	004737 	044176'			JSR	PC,..NADD
   7197					;
   7198	023606	104401 				TRAP	DR.01		;RETURN STS=+1.
   7199					;
   7200					; DATA NOT RECEIVED:
   7201					;	IF "RECEIVE", RETURN STS=-08.
   7202					;	IF "RECEIVE OR EXIT", EXIT.
   7203					;	IF "RECEIVE OR SUSPEND", SUSPEND.
   7204					;
   7205					; R3 CONTAINS THE DIC SIZE.
   7206					; R0 CONTAINS THE ISSUING TASK'S ATL NODE ADDRESS
   7207					;
   7208	023610	006303 			70$:	ASL	R3
   7209	023612	000173 	023552'			JMP	@80$-2-<17.*2.>(R3)
   7210	023616	023624'			80$:	.WORD	90$
   7211	023620	022520'				.WORD	.D.EXT
   7212	023622	023624'				.WORD	90$
   7213					;
   7214	023624	104770 			90$:	TRAP	DE.08
   7215					;
DMSDV	- SPECIFY SST TABLE DIR	MACRO M1113  10-NOV-81 17:22  PAGE 132
DIRECTIVE -- RECEIVE DATA OR SUSPEND

   7217						.TITLE	DMSDV	- SPECIFY SST TABLE DIRECTIVES MODULE
   7218						.SBTTL	SPECIFY SST TABLE -- COPYRIGHT STATEMENT
   7219	023626					IDENT$	1,0
						.IDENT	/001000/
   7220					;
   7221					;                             COPYRIGHT (C) 1975, 1978 BY
   7222					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   7223					;
   7224					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   7225					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   7226					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   7227					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   7228					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   7229					;
   7230					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   7231					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   7232					;       CORPORATION.
   7233					;
   7234					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   7235					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   7236					;
   7237					;		MODULE: SPECIFY SST TABLE DIRECTIVES
   7238					;
   7239					;		VERSION: 01-00
   7240					;
   7241					;		AUTHOR: R. MCLEAN
   7242					;
   7243					;		DATE: 19 JUN 75
   7244					;
   7245					;
   7246					;	THIS MODULE CONTAINS:
   7247					;
   7248					;	1 -- CODE TO SERVICE THE "SPECIFY SST VECTOR TABLE FOR TASK" DIRECTIVE.
   7249					;
   7250					;	MACRO LIBRARY CALLS
   7251
   7252						.MCALL	MTPS,MFPS,MFPI,MTPI,CALL,RETURN
DMSDV	- SPECIFY SST TABLE DIR	MACRO M1113  10-NOV-81 17:22  PAGE 133
DIRECTIVE -- SPECIFY SST VECTOR TABLE FOR TASK

   7254						.SBTTL	DIRECTIVE -- SPECIFY SST VECTOR TABLE FOR TASK
   7255					;+
   7256					; THE "SPECIFY SST VECTOR TABLE FOR TASK" DIRECTIVE
   7257					;
   7258					; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO RECORD THE ADDRESS (VIRTUAL) OF
   7259					; A TABLE OF SYNCHRONOUS SYSTEM TRAP SERVICE ROUTINE ENTRY POINTS
   7260					; FOR USE BY THE ISSUING TASK.  WHENEVER AN SST SERVICE ROUTINE ENTRY IS
   7261					; SPECIFIED IN BOTH THE TASK'S TABLE & DDT'S TABLE, THE TRAP OCCURS
   7262					; FOR THE DEBUGGING AID, AND NOT FOR THE TASK.
   7263					;
   7264					;
   7265					;	WD. 00 -- "ODD ADDRESS" ERROR,
   7266					;	WD. 01 -- SEGMENT FAULT,
   7267					;	WD. 02 -- T-BIT TRAP OR EXECUTION OF A 'BPT' INSTRUCTION,
   7268					;	WD. 03 -- EXECUTION OF AN 'IOT' INSTRUCTION,
   7269					;	WD. 04 -- EXECUTION OF A "RESERVED" INSTRUCTION,
   7270					;	WD. 05 -- EXECUTION OF "NON-RSX EMT",
   7271					;	WD. 06 -- EXECUTION OF A 'TRAP' INSTRUCTION,
   7272					;	WD. 07 -- PDP-11/40 FLOATING POINT EXCEPTION.
   7273					;
   7274					; THE TABLE IS OF THE FOLLOWING FORMAT:
   7275					; A THREE WORD DPB OF THE FOLLOWING FORMAT IS USED:
   7276					;
   7277					;	WD. 00 -- DIC (43.) & DPB SIZE (3.),
   7278					;	WD. 01 -- ADDRESS OF SST VECTOR TABLE,
   7279					;	WD. 02 -- NUMBER OF TABLE ENTRIES (8). (MUST BE AT LEAST 8!)
   7280					;
   7281					; THE FOLLOWING STATUS IS RETURNED:
   7282					;
   7283					; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
   7284					; OF ONE (+1).
   7285					;
   7286					; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
   7287					;
   7288					;	-99 -- DIC OR DPB SIZE IS INVALID.
   7289					; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
   7290					; DIRECTIVE ISSUING TASK'S PS, PC, & R1-R5 PUSHED ONTO THE
   7291					;  STACK, AND R0-R5 SET AS FOLLOWS:
   7292					;	R1 -- ADDRESS OF WORD FOLLOWING DIC & SIZE
   7293					;	R2 -- DPB SIZE
   7294					;	R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
   7295					;	R5 -- ATL NODE ADDRESS OF ISSUING TASK (.CRTSK)
   7296					;
   7297					;
   7298					; R5 IS LEFT UNALTERED (I.E. POINTING TO ISSUING TASK'S ATL NODE).
   7299									;R1 IS POINTING TO THE ADDRESS OF THE TABLE
   7300									;R5 CONTAINS THE TABLE SIZE
   7301					;
   7302	023626	016502 	000016 		.D.STV::MOV	A.TD(R5),R2	;FIND THE STD ADDRESS OF THIS TASK
   7303	023632					MFPS	@R1,S.SS(R2)	;SET UP SST VECTOR ADDRESS
	023632	011162 	000030 			MOV	@R1,S.SS(R2)
   7304	023636	104401 				TRAP	DR.01		;VALID DIRECTIVE RETURN
DMAST	- SPECIFY AST SERVICE D	MACRO M1113  10-NOV-81 17:22  PAGE 134
DIRECTIVE -- SPECIFY SST VECTOR TABLE FOR TASK

   7306						.TITLE	DMAST	- SPECIFY AST SERVICE DIRECTIVES
   7307						.SBTTL	SPECIFY AST SERVICE -- COPYRIGHT STATEMENT
   7308	023640					IDENT$	1,0
						.IDENT	/001000/
   7309					;
   7310					;                             COPYRIGHT (C) 1975, 1978 BY
   7311					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   7312					;
   7313					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   7314					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   7315					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   7316					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   7317					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   7318					;
   7319					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   7320					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   7321					;       CORPORATION.
   7322					;
   7323					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   7324					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   7325					;
   7326					;		MODULE: SPECIFY AST SERVICE DIRECTIVES
   7327					;
   7328					;		VERSION: 01-00
   7329					;
   7330					;		AUTHOR: R. MCLEAN
   7331					;
   7332					;		DATE: 19 JUN 75
   7333					;
   7334					;
   7335					;	THIS MODULE CONTAINS:
   7336					;
   7337					;	1 -- CODE TO SERVICE THE "SPECIFY POWER RECOVERY AST" DIRECTIVE,
   7338					;
   7339					;	MACRO LIBRARY CALLS
   7340					;
   7341						.MCALL	CALL,RETURN,MTPS,MTPI,MFPI,MFPS
DMAST	- SPECIFY AST SERVICE D	MACRO M1113  10-NOV-81 17:22  PAGE 135
DIRECTIVE -- SPECIFY POWER FAIL AST

   7343						.SBTTL	DIRECTIVE -- SPECIFY POWER FAIL AST
   7344					;+
   7345					; THE "SPECIFY POWER FAIL AST" DIRECTIVE
   7346					;
   7347					; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO RECORD EITHER (1) THAT POWER
   7348					; RECOVERY AST'S FOR THE ISSUING TASK ARE DESIRED, AND WHERE CONTROL
   7349					; IS TO BE TRANSFERRED WHEN A POWER FAIL AST OCCURS, OR (2) THAT
   7350					; POWER FAIL AST'S FOR THE ISSUING TASK ARE NO LONGER DESIRED.
   7351					;
   7352					; A TWO WORD DPB OF THE FOLLOWING FORMAT IS USED:
   7353					;
   7354					;	WD. 00 -- DIC (45..) & DPB SIZE (2.),
   7355					;	WD. 01 -- [AST SERVICE ENTRY POINT].
   7356					;
   7357					; WHEN AN "AST SERVICE ENTRY POINT" IS SPECIFIED, FUTURE POWER FAIL
   7358					; AST'S WILL OCCUR FOR THE ISSUING TASK, AND CONTROL WILL BE TRANSFERRED
   7359					; TO THE INDICATED LOCATION WHENEVER A POWER FAIL AST OCCURS.
   7360					;
   7361					; WHEN AN "AST SERVICE ENTRY POINT" IS NOT SPECIFIED (ZERO SECOND DPB
   7362					; WORD), FUTURE POWER FAIL AST'S WILL NOT OCCUR (UNTIL AN AST ENTRY
   7363					; POINT IS SPECIFIED AGAIN).
   7364					;
   7365					; THE FOLLOWING STATUS IS RETURNED:
   7366					;
   7367					; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
   7368					;
   7369					; OF ONE (+1).
   7370					;
   7371					; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
   7372					;
   7373					;	-08 -- AST ENTRY ALREADY UN-SPECIFIED,
   7374					;
   7375					;	-98 -- PART OF DPB IS OUT OF ISSUING TASK'S ADDRESS SPACE,
   7376					;	-99 -- DIC OR DPB SIZE IS INVALID.
   7377					;
   7378					; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
   7379					; DIRECTIVE ISSUING TASK'S PS, PC, & R1-R5 PUSHED ONTO THE
   7380					;  STACK, AND R0-R5 SET AS FOLLOWS:
   7381					;	R1 -- ADDRESS OF WORD FOLLOWING DIC & SIZE
   7382					;	R2 -- DPB SIZE
   7383					;	R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
   7384					;	R5 -- ATL NODE ADDRESS OF ISSUING TASK (.CRTSK)
   7385					;
   7386					;
   7387					; R5 IS LEFT UNALTERED (I.E. POINTING TO ISSUING TASK'S ATL NODE).
   7388					;
   7389	023640				.D.PUT::MFPS	@R1,R1		;FIND THE LAST WORD OF THE DPB
	023640	011101 				MOV	@R1,R1
   7390	023642	001403 				BEQ	20$		;YES -- THEN CHECK IT OUT
   7391	023644	010165 	000034 		10$:	MOV	R1,A.PF(R5)	;SPECIFY POWER FAIL AST
   7392	023650	104401 				TRAP	DR.01		;AND RETURN +1
   7393					;
   7394	023652	005765 	000034 		20$:	TST	A.PF(R5)	;CHECK FOR ALREADY CLEAR
   7395	023656	001372 				BNE	10$		;NO -- ALL OK
   7396	023660	104770 				TRAP	DE.08		;YES -- ERROR
DMREQ	- "REQUEST AND EXECUTE"	MACRO M1113  10-NOV-81 17:22  PAGE 136
DIRECTIVE -- SPECIFY POWER FAIL AST

   7398						.TITLE	DMREQ	- "REQUEST AND EXECUTE" DIRECTIVES MODULE
   7399						.SBTTL	REQUEST AND EXECUTE -- COPYRIGHT STATEMENT
   7400	023662					IDENT$	1,0
						.IDENT	/001000/
   7401					;
   7402					;                             COPYRIGHT (C) 1975, 1978 BY
   7403					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   7404					;
   7405					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   7406					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   7407					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   7408					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   7409					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   7410					;
   7411					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   7412					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   7413					;       CORPORATION.
   7414					;
   7415					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   7416					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   7417					;
   7418					;		MODULE: "REQUEST" DIRECTIVE
   7419					;
   7420					;		VERSION: 01-00
   7421					;
   7422					;		AUTHOR: R. MCLEAN
   7423					;
   7424					;		DATE: 1 JUL 75
   7425					;
   7426					;
   7427					;	THIS MODULE CONTAINS:
   7428					;
   7429					;	1 -- CODE TO SERVICE THE "REQUEST" DIRECTIVE.
   7430					;
   7431					;	MACROS
   7432					;
   7433						.MCALL	CALL,RETURN,MFPS
DMREQ	- "REQUEST AND EXECUTE"	MACRO M1113  10-NOV-81 17:22  PAGE 137
DIRECTIVE -- TASK SCHEDULING -- REQUEST

   7435						.SBTTL	DIRECTIVE -- TASK SCHEDULING -- REQUEST
   7436					;+
   7437					; THE "REQUEST" DIRECTIVE
   7438					;
   7439					; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO MAKE A TASK ACTIVE.  I.E., TO
   7440					; RUN CONTINGENT UPON PRIORITY AND MEMORY AVAILABILITY.
   7441					;
   7442					; A SEVEN WORD DPB OF THE FOLLOWING FORMAT IS USED:
   7443					;
   7444					;	WD. 00 -- DIC (11.) & DPB SIZE (7.),
   7445					;	WD. 01 -- TASK NAME (FIRST HALF),
   7446					;	WD. 02 -- TASK NAME (SECOND HALF),
   7447					;	WD. 03 -- [PARTITION NAME (FIRST HALF)],
   7448					;	WD. 04 -- [PARTITION NAME (SECOND HALF)],
   7449					;	WD. 05 -- [PRIORITY],
   7450					;	WD. 06 -- [UIC].
   7451					;
   7452					; THE FOLLOWING STATUS IS RETURNED:
   7453					;
   7454					; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
   7455					; OF ONE (+1).
   7456					;
   7457					; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
   7458					;
   7459					;	-01 -- INSUFFICIENT POOL NODES AVAILABLE,
   7460					;	-03 -- PARTITION TOO SMALL FOR TASK,
   7461					;	-06 -- HANDLER TASK NOT RESIDENT TO LOAD TASK,
   7462					;	-07 -- TASK IS ACTIVE,
   7463					;
   7464					;	-94 -- PARTITION NOT IN SYSTEM (NO TPD ENTRY FOUND),
   7465					;	-95 -- INVALID PRIORITY SPECIFIED (<0 OR >250.),
   7466					;	-99 -- DIC OR DPB SIZE IS INVALID.
   7467					;
   7468					;-
   7469	023662				.D.REQ::CALL	..FSTD		;SET R2 TO STD ENTRY ADDRESS, OR TO
	023662	004737 	044336'			JSR	PC,..FSTD
   7470									;ZERO IF TASK NAME NOT FOUND (AND SET
   7471									;CONDITION CODES PER "TST R2").
   7472									;
   7473									;ADVANCE R1 BY FOUR (PAST TASK NAME).
   7474					;
   7475					;
   7476	023666	001406 				BEQ	20$		;IF TASK IS NOT INSTALLED TRY TO GET IT INSTALLED
   7477	023670					CALL	.FEPPU		;SET R3 TO TPD ADDRESS IF A PARTITION IS
	023670	004737 	015550'			JSR	PC,.FEPPU
   7478									;SPECIFIED, OR TO ZERO IF NOT SPECIFIED.
   7479									;
   7480									;SET R4 TO PRIORITY IF SPECIFIED, OR TO
   7481									;ZERO IF NOT SPECIFIED.
   7482									;
   7483									;
   7484									;ADVANCE R1 BY EIGHT (PAST PARTITION NAME,
   7485									;PRIORITY INDICATOR, AND UIC INDICATOR.).
   7486									;
   7487									;IF INVALID PRIORITY, RETURN STS=-95.
   7488									;IF PARTITION NOT IS SYSTEM, RETURN
   7489									;STS=-94.  IF NON-PRIVILEGED TASK HAS
DMREQ	- "REQUEST AND EXECUTE"	MACRO M1113  10-NOV-81 17:22  PAGE 137-1
DIRECTIVE -- TASK SCHEDULING -- REQUEST

   7490									;SPECIFIED OTHER THAN OWN UIC, RETURN
   7491									;STS=-91.  IF SPECIFIED PARTITION IS
   7492									;TOO SMALL FOR TASK, RETURN STS=-03.
   7493					;
   7494					;
   7495					;
   7496					;
   7497	023674				10$:	CALL	.REQS		;MAKE A TASK ACTIVE PER R1, R2, R3, R4 & R5.
	023674	004737 	015046'			JSR	PC,.REQS
   7498									;(R1, R2, R3, R4, & R5 ARE ALTERED)
   7499					;
   7500	023700	000162 	015540'			JMP	.RQESD(R2)	;RETURN DIRECTIVE STATUS PER SUBROUTINE
   7501									;STATUS IN R2.
   7502					;
   7503	023704	012704 	024074'		20$:	MOV	#RQSPB,R4	;SET UP TO INSERT PARAMETERS INTO SEND
   7504	023710	024141 				CMP	-(R1),-(R1)	;BACKUP TO POINT TO TASK NAME
   7505	023712					MFPS	(R1)+,(R4)+	;TASK NAME
	023712	012124 				MOV	(R1)+,(R4)+
   7506	023714					MFPS	(R1)+,(R4)+
	023714	012124 				MOV	(R1)+,(R4)+
   7507	023716					MFPS	(R1)+,(R4)+	;PARTITION NAME
	023716	012124 				MOV	(R1)+,(R4)+
   7508	023720					MFPS	(R1)+,(R4)+
	023720	012124 				MOV	(R1)+,(R4)+
   7509	023722					MFPS	(R1)+,(R4)+	;PRIORITY
	023722	012124 				MOV	(R1)+,(R4)+
   7510	023724	012704 	001424'			MOV	#.POLLH,R4	;PICK A NODE FROM THE POOL
   7511	023730					CALL	..PICK
	023730	004737 	044240'			JSR	PC,..PICK
   7512	023734	103001 				BCC	30$		;GOT ONE
   7513	023736	104777 				TRAP	DE.01		;NONE RETURN -1
   7514					;
   7515	023740	010401 			30$:	MOV	R4,R1		;SAVE THE NODE ADDRESS
   7516	023742	012704 	001424'			MOV	#.POLLH,R4	;FIND THE LISTHEAD OF THE POOL
   7517	023746	021404 				CMP	@R4,R4		;ANY NODES?
   7518	023750	001003 				BNE	35$		;YES -- PROCEED
   7519	023752					CALL	..NADD		;NO RETURN NODE
	023752	004737 	044176'			JSR	PC,..NADD
   7520	023756	104777 				TRAP	DE.01		;NOT ENOUGH NODES
   7521					;
   7522	023760	010137 	024106'		35$:	MOV	R1,RQSTD	;SET UP THE STD ADDRESS
   7523	023764	005743 				TST	-(R3)		;BACK UP TO POINT TO CORRECT ENTRY TO INSERT
   7524	023766	012704 	024074'			MOV	#RQSPB,R4	;SET UP PARAMETERS IN STD
   7525	023772	012421 				MOV	(R4)+,(R1)+
   7526	023774	012421 				MOV	(R4)+,(R1)+
   7527	023776	005021 				CLR	(R1)+
   7528	024000	012721 	040005 			MOV	#SF.EX!SF.TA!SF.IR,(R1)+ ;DECLARE TASK ACTIVE
   7529	024004	062701 	000014 			ADD	#S.RF-S.DP,R1	;POINT TO SEND LISTHEAD
   7530	024010	010111 				MOV	R1,@R1		;SET UP LISTHEAD
   7531	024012	010161 	000002 			MOV	R1,2(R1)
   7532	024016	013704 	024106'			MOV	RQSTD,R4	;RESTORE STD ADDRESS
   7533	024022	011301 			40$:	MOV	@R3,R1		;MAKE ENTRY IN STD
   7534	024024	001403 				BEQ	50$		;END OF LIST
   7535	024026	010423 				MOV	R4,(R3)+	;MOVE LIST DOWN
   7536	024030	010104 				MOV	R1,R4		;SET NEXT ENTRY
   7537	024032	000773 				BR	40$		;GO NEXT ENTRY
   7538					;
DMREQ	- "REQUEST AND EXECUTE"	MACRO M1113  10-NOV-81 17:22  PAGE 137-2
DIRECTIVE -- TASK SCHEDULING -- REQUEST

   7539	024034	010413 			50$:	MOV	R4,@R3		;STORE LAST ENTRY
   7540	024036	062737 	000002 	006340'		ADD	#2,.STDTZ	;UPDATE SIZE
   7544	024044	012702 	006646'			MOV	#STDINS,R2	;SET UP STD NODE OF RECEIVER
   7545	024050	012701 	024070'			MOV	#RQSPT,R1	;SET UP TO SEND TO INSTALL
   7546	024054					CALL	.SEND		;SEND DATA
	024054	004737 	023360'			JSR	PC,.SEND
   7547	024060	005004 				CLR	R4		;START AT DEFAULT PART & PRI
   7548	024062	005003 				CLR	R3
   7549	024064	010102 				MOV	R1,R2		;SET UP STD OF INSTALL
   7550	024066	000702 				BR	10$
   7551					;
   7552	024070	024074'			RQSPT::	.WORD	RQSPB		;POINTER TO SEND BLOCK
   7553	024072	000000 				.WORD	0		;EVENT FLAG (NONE)
   7554	024074				RQSPB:	.BLKW	5		;DATA TO BE XMITTED
   7555	024106	000000 			RQSTD:	.WORD	0		;STD ADDRESS
   7556					;
DMGPP	- "GET TASK PARAMETERS"	MACRO M1113  10-NOV-81 17:22  PAGE 138
DIRECTIVE -- TASK SCHEDULING -- REQUEST

   7558						.TITLE	DMGPP	- "GET TASK PARAMETERS" DIRECTIVE MODULE
   7559						.SBTTL	GET TASK PARAMETERS -- COPYRIGHT STATEMENT
   7560	024110					IDENT$	1,0
						.IDENT	/001000/
   7561					;
   7562					;                             COPYRIGHT (C) 1975, 1978 BY
   7563					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   7564					;
   7565					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   7566					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   7567					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   7568					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   7569					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   7570					;
   7571					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   7572					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   7573					;       CORPORATION.
   7574					;
   7575					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   7576					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   7577					;
   7578					;		MODULE: "GET TASK PARAMETERS" DIRECTIVE
   7579					;
   7580					;		VERSION: 01-00
   7581					;
   7582					;		AUTHOR: R. MCLEAN
   7583					;
   7584					;		DATE: 19 AUG 75
   7585					;
   7586					;
   7587					;	THIS MODULE CONTAINS:
   7588					;
   7589					;	1 -- CODE TO SERVICE THE "GET TASK PARAMETERS" DIRECTIVE.
   7590					;
   7591					; MACRO CALLS
   7592
   7593						.MCALL	MTPS,MFPS
DMGPP	- "GET TASK PARAMETERS"	MACRO M1113  10-NOV-81 17:22  PAGE 139
DIRECTIVE -- GET TASK PARAMETERS

   7595						.SBTTL	DIRECTIVE -- GET TASK PARAMETERS
   7596					;+
   7597					; THE "GET TASK PARAMETERS" DIRECTIVE
   7598					;
   7599					; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO FILL AN INDICATED SIXTEEN WORD
   7600					; BUFFER WITH PARAMETERS RELATING TO THE ISSUING TASK.
   7601					;
   7602					; A TWO WORD DPB OF THE FOLLOWING FORMAT IS USED:
   7603					;
   7604					;	WD. 00 -- DIC (63.) & DPB SIZE (2.),
   7605					;	WD. 01 -- ADDRESS OF SIXTEEN WORD BUFFER.
   7606					;
   7607					; THE SIXTEEN WORD BUFFER IS FILLED AS FOLLOWS:
   7608					;
   7609					;	WD. 00 -- ISSUING TASK'S NAME (FIRST HALF),
   7610					;	WD. 01 -- ISSUING TASK'S NAME (SECOND HALF),
   7611					;	WD. 02 -- PARTITION NAME (FIRST HALF),
   7612					;	WD. 03 -- PARTITION NAME (SECOND HALF),
   7613					;	WD. 04 -- TASK NAME OF REQUESTOR OF ISSUING TASK (FIRST HALF),
   7614					;	WD. 05 -- TASK NAME OF REQUESTOR OF ISSUING TASK (SECOND HALF),
   7615					;	WD. 06 -- RUN PRIORITY,
   7616					;	WD. 07 -- USER IDENTIFICATION CODE (UIC FOR FILES SYSTEM),
   7617					;	WD. 10 -- NUMBER OF LOGICAL I/O UNITS (LUN'S),
   7618					;	WD. 11 -- MACHINE TYPE INDICATOR (VIZ., 45. FOR PDP-11/45),
   7619					;	WD. 12 -- STD FLAGS WORD,
   7620					;	WD. 13 -- [ADDRESS OF TASK SST VECTOR TABLE],
   7621					;	WD. 14 -- [SIZE OF TASK SST VECTOR TABLE (IN WORDS)],
   7622					;	WD. 15 -- TASK SIZE
   7623					;	WD. 16 -- ZERO (RESERVED),
   7624					;	WD. 17 -- ZERO (RESERVED).
   7625					;
   7626					; THE FOLLOWING STATUS IS RETURNED:
   7627					;
   7628					; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
   7629					; OF ONE (+1).
   7630					;
   7631					; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
   7632					;
   7633					;	-98 -- PART OF DPB OR BUFFER IS OUT OF TASK'S ADDRESS SPACE,
   7634					;	-99 -- DIC OR DPB SIZE IS INVALID.
   7635					;-
   7636		000050 			.PDP11=40.		;PDP11/40
   7637					; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
   7638					; DIRECTIVE ISSUING TASK'S PS, PC, & R0-R5 PUSHED ONTO THE
   7639					; KERNEL STACK, AND R0-R5 SET AS FOLLOWS:
   7640					;	R0 -- ATL NODE ADDRESS OF ISSUING TASK ('.CRTSK'),
   7641					;	R1 -- VIRTUAL ADDRESS OF DPB PLUS TWO,
   7642					;	R2 -- SIZE OF DPB (IN WORDS),
   7643					;	R3 -- TWICE THE DIRECTIVE IDENTIFICATION CODE (2*DIC),
   7644					;	R4 -- STD ENTRY ADDRESS OF ISSUING TASK, AND
   7645					;	R5 -- LAST WORD OF DPB.
   7646					;
   7647					; R0 IS LEFT UNALTERED (I.E. POINTING TO ISSUING TASK'S ATL NODE).
   7648					;
   7649					;
   7650	024110	005046 			.D.GPP::CLR	-(SP)		;PUSH ZERO
   7651	024112	005046 				CLR	-(SP)		;PUSH ZERO
DMGPP	- "GET TASK PARAMETERS"	MACRO M1113  10-NOV-81 17:22  PAGE 139-1
DIRECTIVE -- GET TASK PARAMETERS

   7652	024114	016504 	000016 			MOV	A.TD(R5),R4	;FIND STD ADDRESS
   7653	024120	016502 	000006 			MOV	A.PD(R5),R2	;FIND THE TPD ADDRESS
   7654	024124	016500 	000012 			MOV	A.HA(R5),R0	;FIND THE HEADER ADDRESS
   7655	024130	016246 	000006 			MOV	T.PZ(R2),-(SP)	;SET PARTITION SIZE (TASK SIZE)
   7656	024134	012746 	000010 			MOV	#8.,-(SP)	;PUSH VECTOR TBL SIZE
   7657	024140	016046 	000106 			MOV  H.TKVA(R0),-(SP)	;PUSH VECTOR TBL ADDRESS
   7658	024144	016446 	000006 			MOV	S.FW(R4),-(SP)	;PUSH STD FLAGS WORD
   7659	024150	012746 	000050 			MOV	#.PDP11,-(SP)	;PUSH MACHINE TYPE INDICATOR
   7660	024154	016046 	000130 			MOV  H.LUT(R0),-(SP)	;PUSH NUMBER OF LUN'S
   7661	024160	013746 	001156'			MOV	.SYUIC,-(SP)	;PUSH UIC
   7662	024164	005046 				CLR	-(SP)		;PUSH RUN PRIORITY
   7663	024166	116516 	000010 			MOVB	A.RP(R5),@SP
   7664	024172	005046 				CLR	-(SP)
   7665	024174	005046 				CLR	-(SP)
   7666	024176	016246 	000002 			MOV	T.PN+2(R2),-(SP)
   7667	024202	016246 	000000 			MOV	T.PN+0(R2),-(SP)
   7668	024206	016446 	000002 			MOV	S.TN+2(R4),-(SP);PUSH TASK NAME
   7669	024212	016446 	000000 			MOV	S.TN+0(R4),-(SP)
   7670					;
   7671	024216	012702 	000020 			MOV	#16.,R2		;POP SIXTEEN WORDS FROM STACK INTO BUFFER
   7672	024222					MFPS	@R1,R1		;PICK UP HIS ADDRESS
	024222	011101 				MOV	@R1,R1
   7673									;IN ISSUING TASK'S ADDRESS SPACE.
   7674									;R5 CONTAINS VIRTUAL ADDRESS OF BUFFER.
   7675	024224				10$:
   7676	024224					MTPS	(SP)+,(R1)+
	024224	012621 				MOV	(SP)+,(R1)+
   7677	024226	077202 				SOB	R2,10$
   7678					;
   7679	024230	104401 				TRAP	DR.01		;RETURN STS=+1.
   7680					;
DMGMP	- "GET PARTITION PARAME	MACRO M1113  10-NOV-81 17:22  PAGE 140
DIRECTIVE -- GET TASK PARAMETERS

   7682						.TITLE	DMGMP	- "GET PARTITION PARAMETERS" DIRECTIVE MODULE
   7683						.SBTTL	GET PARTITION PARAMETERS -- COPYRIGHT STATEMENT
   7684	024232					IDENT$	1,0
						.IDENT	/001000/
   7685					;
   7686					;                             COPYRIGHT (C) 1975, 1978 BY
   7687					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   7688					;
   7689					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   7690					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   7691					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   7692					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   7693					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   7694					;
   7695					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   7696					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   7697					;       CORPORATION.
   7698					;
   7699					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   7700					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   7701					;
   7702					;		MODULE: "GET PARTITION PARAMETERS" DIRECTIVE
   7703					;
   7704					;		VERSION: 01-00
   7705					;
   7706					;		AUTHOR: R. MCLEAN
   7707					;
   7708					;		DATE: 19 AUG 75
   7709					;
   7710					;
   7711					;	THIS MODULE CONTAINS:
   7712					;
   7713					;	1 -- CODE TO SERVICE THE "GET PARTITION PARAMETERS" DIRECTIVE.
   7714					;
   7715					; MACRO CALLS
   7716					;
   7717
   7718						.MCALL	MFPI,MTPI,MFPS,MTPS
DMGMP	- "GET PARTITION PARAME	MACRO M1113  10-NOV-81 17:22  PAGE 141
DIRECTIVE -- GET PARTITION PARAMETERS

   7720						.SBTTL	DIRECTIVE -- GET PARTITION PARAMETERS
   7721					;+
   7722					; THE "GET PARTITION PARAMETERS" DIRECTIVE
   7723					;
   7724					; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO FILL AN INDICATED THREE WORD
   7725					; BUFFER WITH PARTITION PARAMETERS.
   7726					;
   7727					; A FOUR WORD DPB OF THE FOLLOWING FORMAT IS USED:
   7728					;
   7729					;	WD. 00 -- DIC (65.) & DPB SIZE (4.),
   7730					;	WD. 01 -- [PARTITION NAME (FIRST HALF)],
   7731					;	WD. 02 -- [PARTITION NAME (SECOND HALF)],
   7732					;	WD. 03 -- ADDRESS OF THREE WORD BUFFER.
   7733					;
   7734					; IF A PARTITION IS NOT SPECIFIED, THE PARTITION OF THE ISSUING TASK
   7735					; IS ASSUMED.
   7736					;
   7737					; THE THREE WORD BUFFER IS FILLED AS FOLLOWS:
   7738					;
   7739					;	WD. 00 -- 1/64TH BASE ADDRESS OF PARTITION,
   7740					;	WD. 01 -- 1/64TH SIZE OF PARTITION,
   7741					;	WD. 02 -- PARTITION FLAGS WORD.
   7742					;
   7743					; THE FOLLOWING STATUS IS RETURNED:
   7744					;
   7745					; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
   7746					; OF ONE (+0).
   7747					;
   7748					; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
   7749					;
   7750					;	-02 -- INDICATED PARTITION NOT IS SYSTEM,
   7751					;
   7752					;	-98 -- PART OF DPB OR BUFFER IS OUT OF TASK'S ADDRESS SPACE,
   7753					;	-99 -- DIC OR DPB SIZE IS INVALID.
   7754					;-
   7755					; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
   7756					; DIRECTIVE ISSUING TASK'S PS, PC, & R0-R5 PUSHED ONTO THE
   7757					; KERNEL STACK, AND R0-R5 SET AS FOLLOWS:
   7758					;	R0 -- ATL NODE ADDRESS OF ISSUING TASK ('.CRTSK'),
   7759					;	R1 -- VIRTUAL ADDRESS OF DPB PLUS TWO,
   7760					;	R2 -- SIZE OF DPB (IN WORDS),
   7761					;	R3 -- TWICE THE DIRECTIVE IDENTIFICATION CODE (2*DIC),
   7762					;	R4 -- STD ENTRY ADDRESS OF ISSUING TASK, AND
   7763					;	R5 -- LAST WORD OF DPB.
   7764					;
   7765					; R0 IS LEFT UNALTERED (I.E. POINTING TO ISSUING TASK'S ATL NODE).
   7766					;
   7767					; R5 CONTAINS ADDRESS OF THREE WORD BUFFER.
   7768					;
   7769	024232				.D.GMP::MFPI	(R1)+		;PUSH 2-WORD PARTITION NAME (OR TWO ZEROS)
	024232	012146 				MOV	(R1)+,-(SP)
   7770	024234					MFPI	(R1)+		;ONTO KERNEL STACK (IN REVERSE ORDER)
	024234	012146 				MOV	(R1)+,-(SP)
   7771									;WAS A NAME SPECIFIED?
   7772	024236	001011 				BNE	10$		;YES -- SCAN "TPD" FOR MATCH
   7773	024240	005766 	000002 			TST	+2(SP)		;MAYBE -- CHECK FIRST HALF OF NAME
   7774	024244	001006 				BNE	10$		;YES -- SCAN "TPD" FOR MATCH
DMGMP	- "GET PARTITION PARAME	MACRO M1113  10-NOV-81 17:22  PAGE 141-1
DIRECTIVE -- GET PARTITION PARAMETERS

   7775	024246	016504 	000006 			MOV	A.PD(R5),R4	;NO -- REPLACE TWO-ZEROS WITH NAME OF PARTITION
   7776	024252	016446 	000000 			MOV  T.PN+0(R4),-(SP)	;IN WHICH ISSUING TASK IS EXECUTING.
   7777	024256	016446 	000002 			MOV  T.PN+2(R4),-(SP)
   7778	024262				10$:
   7779	024262	012703 	010032'			MOV	#.TPDEA,R3	;SETUP R3 TO SCAN "TPD"
   7780	024266				20$:
   7781	024266	020327 	007552'			CMP	R3,#.TPDBA	;END OF SCAN?
   7782	024272	001001 				BNE	30$
   7783	024274	104776 				TRAP	DE.02		;YES -- RETURN STS=-02.
   7784					;
   7785	024276	162703 	000020 		30$:	SUB	#T.SZ,R3	;NO -- REDUCE R3 TO POINT TO TPD ENTRY
   7786	024302	010304 				MOV	R3,R4		;SETUP R4 TO INDEX THRU TPD ENTRY
   7787	024304	022466 	000002 			CMP	(R4)+,+2(SP)	;DOES NAME MATCH?
   7788	024310	001366 				BNE	20$		;NO -- CONTINUE SCAN
   7789	024312	022416 				CMP	(R4)+,@SP	;MAYBE -- CHECK SECOND HALF
   7790	024314	001364 				BNE	20$		;NO -- CONTINUE SCAN
   7791					;
   7792	024316	012703 	000002 			MOV	#2.,R3		;YES -- MOVE 2-WORDS TO BUF IN PREVIOUS SPACE
   7793	024322					MFPS	@R1,R1		;FIND BUFFER
	024322	011101 				MOV	@R1,R1
   7794	024324	011400 				MOV	@R4,R0		;FIND PARTITION START
   7795	024326				40$:
   7796	024326	012446 				MOV	(R4)+,-(SP)
   7798	024330	006216 				ASR	@SP
   7799	024332	006216 				ASR	@SP
   7800	024334	006216 				ASR	@SP
   7801	024336	006216 				ASR	@SP
   7802	024340	006216 				ASR	@SP
   7803	024342	006216 				ASR	@SP
   7804	024344	042716 	176000 			BIC	#176000,@SP	;MASK OFF CARRY FROM SHIFT
   7806	024350					MTPI	(R1)+
	024350	012621 				MOV	(SP)+,(R1)+
   7807	024352	077313 				SOB	R3,40$
   7808	024354	005724 				TST	(R4)+		;RETURN FLAGS WORD
   7809	024356					MTPS	(R4)+,(R1)+	;SET IN USER'S AREA
	024356	012421 				MOV	(R4)+,(R1)+
   7810					;
   7814	024360	000137 	013460'			JMP	.DR.NS		;RETURN R0 STATUS
   7816					;
RUN	- CLOCK HANDLER	MACRO M1113  10-NOV-81 17:22  PAGE 142
DIRECTIVE -- GET PARTITION PARAMETERS

   7818						.TITLE	RUN	- CLOCK HANDLER
   7819						.SBTTL	CLOCK HANDLER -- COPYRIGHT STATEMENT
   7820					;
   7821					;                             COPYRIGHT (C) 1975, 1978 BY
   7822					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   7823					;
   7824					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   7825					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   7826					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   7827					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   7828					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   7829					;
   7830					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   7831					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   7832					;       CORPORATION.
   7833					;
   7834					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   7835					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   7836					;
   7837					;		MODULE: "CLOCK TICK RECOGNITION"
   7838					;
   7839					;		VERSION: 07-00
   7840					;
   7841					;		AUTHOR: R. MCLEAN
   7842					;
   7843					;		DATE: 19 JUL 75
   7844					;
   7845					;
   7846					;	THIS MODULE CONTAINS:
   7847					;
   7848					;	1 -- CODE TO SERVICE CLOCK TICK RECOGNITION
   7849					;
   7850					;
   7851					; MODIFICATIONS:
   7852					;
   7853					;	NO.	DATE		PROGRAMMER	PURPOSE
   7854					;	---	----		----------	-------
   7855					;	001	04-MAR-77	R. BELANGER	CHANGE MIDNIGHT RECOGNITION
   7856					;
   7857					;	MACROS
   7858					;
   7859						.MCALL	CALL,RETURN,DIR$,.CRASH,.STKM
RUN	- CLOCK HANDLER	MACRO M1113  10-NOV-81 17:22  PAGE 143
CLOCK TICK RECOGNITION

   7861						.SBTTL	CLOCK TICK RECOGNITION
   7862					;
   7863					; UPDATE TICKS
   7864					;
   7865	024364	012704 	001134'		.TICK::	MOV	#.TICKS,R4	;POINT TO BASE OF TIME PARAMETERS
   7866	024370	005214 				INC	@R4		;UPDATE TICKS
   7867	024372	023714 	001154'			CMP	.TKPS,@R4	;1 SEC YET?
   7868	024376	101020 				BHI	3$		;NO DONE
   7869					;
   7870					; TICKS OVERFLOWED, UPDATE SECONDS
   7871					;
   7872	024400	005024 				CLR	(R4)+		;CLEAR FRACTIONS
   7873	024402	000337 	001152'			SWAB	.SSM+2		;FIND IF TIME TO UPDATE SSM
   7874	024406	001414 				BEQ	3$		;NO -- CONTINUE
   7875	024410	005237 	001150'			INC	.SSM		;UPDATE SECONDS SINCE MIDNIGHT
   7876	024414	022737 	124277 	001150'		CMP	#30.*60.*24.-1,.SSM ;MIDNIGHT?
   7877	024422	101006 				BHI	3$		;NO, CAN INCREMENT
   7878	024424	006337 	001136'			ASL	.CLKSW		;GIVE THE 10 TIME TO CHANGE IT'S DATE -- WE DON'T
   7879									; +++001 RREMOVED 10. INSTRUCTIONS
   7880	024430	001003 				BNE	3$		; +++001 NO -- GO ON
   7881	024432	012737 	177777 	001136'		MOV	#-1,.CLKSW	; +++001 YES -- FLAG NULL TASK TO REQUEST
   7882									; +++001 TIME-OF-DAY TASK
   7883					;
   7884					;INCREMENT IN NO OVERFLOW CASES - SECONDS OR MINUTES
   7885					;
   7886	024440				3$:
   7887					;
   7888					; SET UP FOR LINE FREQ. SERVICE
   7889					;
   7890					;
   7891	024440	012704 	002370'		4$:	MOV	#.CLKBA,R4	;DELETE THE ENTRY OR RESCHEDULE IT
   7892	024444	012405 			10$:	MOV	(R4)+,R5	;NO -- AN ENTRY HERE?
   7893	024446	001435 				BEQ	40$		;NO -- GO
   7894	024450	005724 				TST	(R4)+		;OVER AST ADDRESS
   7895	024452	005324 				DEC	(R4)+		;YES --DECREMENT THE COUNT
   7896	024454	001403 				BEQ	30$		;END OF COUNT SET EVENT FLAG
   7897	024456	062704 	000006 		20$:	ADD	#6,R4		;NO -- LOOK AT NEXT ENTRY
   7898	024462	000770 				BR	10$
   7899					;
   7900	024464				30$:	CALL	..DSEV		 ;DECLARE A SIG EVENT
	024464	004737 	044026'			JSR	PC,..DSEV
   7901	024470	012464 	177774 			MOV	(R4)+,-4(R4)	;RESET RESCHEDULE INTERVAL
   7902	024474	052434 				BIS	(R4)+,@(R4)+	;DO THE SETTING OF THE EVENT FLAG
   7903	024476	010446 				MOV	R4,-(SP)	;SAVE R4
   7904	024500	016404 	177766 			MOV	-12(R4),R4	;FIND AST ADDRESS
   7905	024504	001405 				BEQ	35$		;NONE -- FORGET IT
   7906	024506					CALL	.STAST		;START AST
	024506	004737 	015730'			JSR	PC,.STAST
   7907	024512	103002 				BCC	35$		;GOT IT -- CONTINUE
   7908	024514	010437 	001050'			MOV	R4,.CKASS	;NOT QUITE -- TASK IS CURRENT GET AT ..INTX
   7909	024520	012604 			35$:	MOV	(SP)+,R4
   7910	024522	005764 	177772 			TST	-6(R4)		;RESCHEDULE?
   7911	024526	001346 				BNE	10$		;NO -- DO NEXT ENTRY
   7912	024530	162704 	000014 			SUB	#C.SZ,R4	;BACK UP POINTER
   7913	024534					CALL	.CKDEL		;DELETE ENTRY
	024534	004737 	043150'			JSR	PC,.CKDEL
   7914	024540	000741 				BR	10$		;AND TRY AGAIN
RUN	- CLOCK HANDLER	MACRO M1113  10-NOV-81 17:22  PAGE 143-1
CLOCK TICK RECOGNITION

   7915					;
   7916	024542	105337 	001015'		40$:	DECB	.SERFG+1	;COUNT DOWN CLOCK COUNTER
   7917	024546	001306 				BNE	.TICK		;AND GO DO ANOTHER IF WE MISSED ONE
   7918	024550	012604 				MOV	(SP)+,R4	;RESTORE REGISTERS
   7919	024552	012605 				MOV	(SP)+,R5
   7920	024554	053737 	001016'	001014'		BIS	.SEWFL,.SERFG	;SET SIG EVENT FLAG IF NECESSARYH
   7921	024562	005037 	001016'			CLR	.SEWFL		;AND CLEAR FLAG
   7922	024566	000137 	014632'			JMP	..INTX		;AND RETURN TO INTERRUPT EXIT
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 144
CLOCK TICK RECOGNITION

   7924						.TITLE	QPRDRV	-- QUEUED PROTOCOL DRIVER FOR RSX-20F
   7925						.SBTTL	QUEUED PROTOCOL DRIVER -- COPYRIGHT STATEMENT
   7926	024572					IDENT$	14,43
						.IDENT	/014430/
   7927
   7928					;
   7929					;                             COPYRIGHT (C) 1975, 1980 BY
   7930					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   7931					;
   7932					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   7933					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   7934					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   7935					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   7936					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   7937					;
   7938					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   7939					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   7940					;       CORPORATION.
   7941					;
   7942					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   7943					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   7944					;
   7945					;
   7946					;		MODULE: QUEUED PROTOCOL DRIVER FOR RSX-20F
   7947					;
   7948					;		VERSION: V14-43
   7949					;
   7950					;		AUTHOR: R. MCLEAN
   7951					;
   7952					;		DATE: 19 JUL 75
   7953					;
   7954					;	THIS MODULE CONTAINS:
   7955					;
   7956					;	1 -- QUEUED PROTOCOL SERVICE
   7957					;
   7958					; MODIFICATIONS:
   7959					;
   7960					;	NO.	DATE		PROGRAMMER	PURPOSE
   7961					;	---	----		----------	-------
   7962					;	001	21-OCT-76	A. PECKHAM	INSERT CODING TO COUNT
   7963					;						DOORBELLS.
   7964					;	002	08-NOV-76	K. RETI		ADD SUPPRESS SEND-ALL
   7965					;				R. BELANGER	CODE.
   7966					;	003	03-FEB-77	R. BELANGER	ADDED GENERALIZED DL-11E
   7967					;						SUPPORT
   7968					;	004	10-FEB-77	A. PECKHAM	KEEP TO-11 QUEUE COUNT
   7969					;						STRAIGHT
   7970					;	005	16-FEB-77	A. PECKHAM	SET SPEED OF REMOTE LINES
   7971					;	006	07-MAR-77	A. PECKHAM	REORGANIZE SENDALL
   7972					;	007	08-MAR-77	A. PECKHAM	FIX "XOFF" FOR CTY
   7973					;	008	14-MAR-77	R. BELANGER	CONDITIONALLY REMOVE
   7974					;						SUPPORT FOR UNUSED DTE-20
   7975					;						DIRECTIVES
   7976					;	009	31-MAY-77	R. BELANGER	ADD SUPPORT FOR KLINIK
   7977					;						PARAMETER PASSING
   7978					;	010	15-JUL-77	R. BELANGER	ADD AUTO-BAUD SUPPORT
   7979					;	011	25-JUL-77	R. BELANGER	FIX BUG IN INITIAL STATUS
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 144-1
QUEUED PROTOCOL DRIVER -- COPYRIGHT STATEMENT

   7980					;	012	25-AUG-77	R. BELANGER	ADD KL POWERFAIL SUPPORT
   7981					;	013	02-SEP-77	R. BELANGER	XON/XOFF BUG FIX
   7982					;   TCO 4.2067	30-OCT-78	R. BELANGER	FIX XON TO ACCOUNT FOR NULL
   7983					;						BYTE IN THREAD PACKET
   7984					;   TCO 4.2096	30-NOV-78	R. BELANGER	REMOVE EXTRANEOUS CODE
   7985					;						FROM "XON" PROCESSOR
   7986					;   TCO 4.2181	01-FEB-79	R. BELANGER	ADD ENABLE/DISABLE XON/XOFF
   7987					;						MESSAGE.
   7988					;						MOVE DEVICE DEPENDENT XON/XOFF
   7989					;						PROCESSING TO TERMINAL DRIVER.
   7990					;   TCO 4.2216	16-MAR-79	R. BELANGER	ALLOW DTE-20 TO RUN AT FULL SPEED
   7991					;   TCO 4.2246	16-MAY-79	R. BELANGER	ELIMINATE RACE CONDITION IN SENDALL
   7992					;   TCO 4.2284	25-MAY-79	R. BELANGER	ADD NEW MODEM CONTROL SUPPORT
   7993					;   TCO 4.2524	01-OCT-79	R. BELANGER	FLUSH OUPUT QUEUE WHEN LINE SPEED SET TO 0
   7994					;   TCO 5.1004	10-OCT-79	R. BELANGER	ADD NON-CONTIGUOUS DEVICE SUPPORT
   7995					;   TCO 5.1015	25-OCT-79	R. BELANGER	ADD NEW TERMINAL INPUT CONTROL
   7996					;   TCO 5.1016	01-NOV-79	R. BELANGER	ADD BREAK-THROUGH WRITE
   7997					;  TCO 4.1.1035	16-NOV-79	R. BELANGER	ADD QUEUE ARBITRATION MECHANISM
   7998					;						PROCESS PACKETS INIBITTED
   7999					;  TCO 4.1.1091	12-FEB-80	R. BELANGER	FIX MISSING DM-11/BB PROBLEM
   8000					;  TCO 4.1.1092	25-FEB-80	R. BELANGER	LOCAL TERMINAL INPUT CONTROL
   8001					;  TCO 4.1.1104	05-MAR-80	R. BELANGER	SEND KEEP-ALIVE FROM DTE SERVICE
   8002					;  TCO 4.1.1105	11-MAR-80	R. BELANGER	CHANGE "EF.PR1" RECOGNITION
   8003					;  TCO 4.1.1121	19-MAR-80	R. BELANGER	BREAK QUEUED PROTOCOL DRIVER AND
   8004					;						DTE-20 DRIVER INTO SEPARATE MODULES
   8005					;  TCO 4.1.1137	05-APR-80	R. BELANGER	LIMIT TO-10 QUEUE NODE SIZE TO 60 BYTES
   8006					;  TCO 5.1127	08-AUG-80	S. LEAPLINE	ADD HOST DEBUG MODE MESSAGE
   8007					;  TCO 5.1248	26-JAN-81	S. LEAPLINE	SAVE R0 FOR XOFF/XON CODE
   8008					;  TCO 5.1249	26-JAN-81	S. LEAPLINE	FIX BUG IN SETSPD, HIT WHEN
   8009					;						GIVEN AN INCORRECT LINE SPEED
   8010					;  	014	18-AUG-81	S. LEAPLINE	REMOVE WSIG$S IN SENDALL
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 145
QUEUED PROTOCOL DRIVER -- COPYRIGHT STATEMENT

   8012					;
   8013					;	MACRO DEFINITIONS
   8014					;
   8015
   8016						.MCALL	RQST$,WTSE$S,$DEF,WSIG$S,.INH5,.ENB5
   8017						.MCALL	.DQPEN,MRKT$,WTLO$,WTSE$,.CRASH,CALL,RETURN,.STKM,DIR$,.INH6,.ENB6
   8018
   8019	024572					$DEF
   8020
   8021					;
   8022					;	LOCAL MACROS
   8023					;
   8024					;	MACRO TO ENABLE TASK SWITCHING
   8025					;
   8026						.MACRO	.ENBT
   8027						 MOV	@#PS,-(SP)
   8028						 BIC	#PRI7,@#PS
   8029						.ENDM
   8030					;
   8031					;	MACRO TO DISABLE TASK SWITCHING
   8032					;
   8033						.MACRO	.INHT
   8034						 MOV	(SP)+,@#PS
   8035						.ENDM
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 146
QUEUED PROTOCOL DRIVER -- COPYRIGHT STATEMENT

   8037					;
   8038					;	DATA AREAS
   8039					;
   8040		000060 				E.OPSZ==60	; [4.1.1137] OPTIMAL SIZE FOR A TO 10 QUEUE
   8041					;
   8042					; LOCAL DEFINITIONS FOR DTE20 TASK
   8043					;
   8044		000100 				EF.TED==100	; TO ELEVEN DONE EVENT FLAG
   8045					;
   8046					; TO ELEVEN QUEUE ENTRY
   8047					;
   8048		000000 				E.FP==0		; FORWARD POINTER
   8049		000002 				E.LS==2		; LIST SIZE
   8050		000004 				E.FN==4		; FUNCTION CODE
   8051		000006 				E.DV==6		; DEVICE CODE
   8052		000010 				E.FW==10	; FUNCTION FIRST WORD
   8053					;
   8054					;	FUNCTION CODE DEFINITIONS
   8055					;
   8056		000001 				BC.RQD==1	; REQUEST DEVICES
   8057		000002 				BC.HAD==2	; HERE ARE DEVICES
   8058		000003 				BC.STR==3	; STRING DATA
   8059		000004 				BC.LNC==4	; LINE/CHARACTER DATA
   8060		000005 				BC.RDS==5	; RETURN DEVICE STATUS
   8061		000006 				BC.SDS==6	; SET DEVICE STATUS
   8062		000007 				BC.HDS==7	; HERE IS DEVICE STATUS
   8063		000010 				BC.DES==10	; DEVICE ERROR STATUS
   8064		000011 				BC.RTD==11	; RETURN TIME OF DAY
   8065		000012 				BC.HTD==12	; HERE IS TIME OF DAY
   8066		000013 				BC.FOD==13	; FLUSH OUTPUT DEVICE QUEUE
   8067		000014 				BC.SNA==14	; SEND ALL
   8068		000015 				BC.TDU==15	; DEVICE DIAL UP
   8069		000016 				BC.THU==16	; DEVICE HANG UP
   8070		000017 				BC.SAK==17	; ACKNOWLEDGE DEVICE DONE
   8071		000020 				BC.XOF==20	; X-OFF (TTY ONLY)
   8072		000021 				BC.XON==21	; X-ON (TTY ONLY)
   8073		000022 				BC.STS==22	; SET TTY SPEED
   8074		000023 				BC.SLA==23	; SET LINE ALLOCATION
   8075		000024 				BC.BTP==24	; 11 REBOOT WORD
   8076		000025 				BC.AKA==25	; ACK ALL
   8077		000026 				BC.SPT==26	; START/STOP LINE
   8078		000027 				BC.EDR==27	; ENABLE/DISABLE REMOTES
   8079		000030 				BC.LDR==30	; LOAD LP RAM
   8080		000031 				BC.LDV==31	; LOAD LP VFU
   8081		000032 				BC.NSA==32	; SUPPRESS SEND-ALL FUNCTION (SET OR CLEAR BIT)
   8082		000033 				BC.SKP==33	; SEND KLINIK PARAMETERS
   8083		000034 				BC.XEN==34	; [4.2181] ENABLE/DISABLE XON/XOFF
   8084		000035 				BC.BTW==35	; [5.1016] BREAK-THROUGH WRITE
   8085		000036 				BC.DEB==36	; [5.1127] HOST DEBUG MODE
   8086		000037 				BC.NDM==37	; [5.1127] CLEAR HOST DEBUG MODE
   8087		000040 				BC.FNM==40	; [5.1016] 1 GREATER THAN MAX FUNCTION
   8088					;
   8089					;	DPB'S
   8090					;
   8091
   8092	024572				WTLODT:
   8093	024572					WTLO$	1,EF.TED	; WAIT FOR TEN DONE
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 146-1
QUEUED PROTOCOL DRIVER -- COPYRIGHT STATEMENT

	024572	   053 	   003 			.BYTE	43.,3
	024574	000001 				.WORD	1
	024576	000100 				.WORD	EF.TED
   8094
   8095	024600				.RQSPD::			; ALSO CALLED FROM "TTYDRR"
   8096	024600					RQST$	SETSPD
	024600	   013 	   007 			.BYTE	11.,7
	024602	073634 	074504 			.RAD50	/SETSPD/
	024606	000000 	000000 			.WORD	0,0
	024612	000000 				.WORD
	024614	   000 	   000 			.BYTE	,
   8097
   8098					;
   8099					;	LOCAL DATA
   8100					;
   8101
   8102	024616				SPDTBL:
   8103	024616	000000 				.WORD	0		; ZERO BAUD
   8104	024620	000062 				.WORD	50.		; 50 BAUD
   8105	024622	000113 				.WORD	75.		; ETC ......
   8106	024624	000156 				.WORD	110.
   8107	024626	000206 				.WORD	134.
   8108	024630	000226 				.WORD	150.
   8109	024632	000310 				.WORD	200.
   8110	024634	000454 				.WORD	300.
   8111	024636	001130 				.WORD	600.
   8112	024640	002260 				.WORD	1200.
   8113	024642	003410 				.WORD	1800.
   8114	024644	004540 				.WORD	2400.
   8115	024646	011300 				.WORD	4800.
   8116	024650	022600 				.WORD	9600.
   8117
   8118		000016 			SPDTBZ=.-SPDTBL/2
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 147
QUEUED PROTOCOL DRIVER -- PROTOCOL PACKET SERVICE DISPATCH

   8120						.SBTTL	QUEUED PROTOCOL DRIVER -- PROTOCOL PACKET SERVICE DISPATCH
   8121
   8122	024652				DTEHD::
   8123	024652					.STKM	0,0,0,0,0,0,0,QPRDTE,174000,DTESP
	024720	000000 	000000 	000000 		.WORD	0,0,0,0
	024726	000000
	024746	174000 	025156'	025132'		.WORD	174000,QPRDTE,DTESP
	025002	000005 				.WORD	5
	025004	010232'				.WORD	TTPEN
	025006	000000 				.WORD	0
	025010	000000 				.WORD	0
	025012	000000 				.WORD	0
	025014	000000 				.WORD	0
	025016	000000 				.WORD	0
	025020	000000 				.WORD	0
	025022	000000 				.WORD	0
	025024	000000 				.WORD	0
	025026	000000 				.WORD	0
	025030	000000 				.WORD	0
	025132	000000 				.WORD	0
	025134	000000 				.WORD	0
	025136	000000 				.WORD	0
	025140	000000 				.WORD	0
	025142	000000 				.WORD	0
	025144	000000 				.WORD	0
	025146	025156'				.WORD	QPRDTE
	025150	174000 				.WORD	174000
   8124
   8125						.ENABL	LSB
   8126
   8127	025152				QPRDTC::
   8128	025152					.ENB6			;;; [4.1.1035] ALLOW INTERRUPTS
	025152	012637 	177776 			MOV	(SP)+,@#PS
   8129	025156				QPRDTE::
   8130	025156					DIR$	#WTLODT		; WAIT FOR TEN DONE
	025156	012746 	024572'			MOV	#WTLODT,-(SP)
	025162	104375 				EMT	375
   8131	025164				10$:
   8132	025164					.INH6			; INHIBIT INTERRUPTS
	025164	013746 	177776 			MOV	@#PS,-(SP)
	025170	112737 	000300 	177776 		MOVB	#300,@#PS
   8133	025176	013700 	001006'			MOV	.CRTSK,R0	;;; POINT TO CURRENT TASK
   8134	025202	005060 	000020 			CLR	A.EF(R0)	;;; AND CLEAR THE EVENT FLAGS.
   8135	025206				20$:
   8136	025206	013704 	001334'			MOV	TO11Q,R4	;;; PICK IT FROM THE QUEUE
   8137	025212	001757 				BEQ	QPRDTC		;;; NO QUEUE -- BACK TO SLEEP
   8138	025214	011437 	001334'			MOV	@R4,TO11Q	;;; SET UP THE NEXT LISTHEAD OR ZERO
   8139	025220	010400 				MOV	R4,R0		;;; SET IN R0 ALSO
   8140	025222	116401 	000004 			MOVB	E.FN(R4),R1	;;; FIND THE FUNCTION CODE OF THE REQUEST
   8141	025226	006301 				ASL	R1		;;; MAKE IT 2* FUNCTION
   8142	025230	000171 	025300'			JMP	@DFTBL-2(R1)	;;; GO TO THE CORRECT ROUTINE
   8143						;
   8144	025234				QPRDTL:
   8145	025234					.ENB6			;;; [4.1.1035] ALLOW INTERRUPTS
	025234	012637 	177776 			MOV	(SP)+,@#PS
   8146	025240	000240 				NOP			; [4.1.1035] LET AN INTERRUPT HAPPEN
   8147	025242	005737 	001012'			TST	.COMEF+2	; [4.1.1105] ARE WE STILL IN PRIMARY PROTOCOL??
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 147-1
QUEUED PROTOCOL DRIVER -- PROTOCOL PACKET SERVICE DISPATCH

   8148	025246	100346 				BPL	10$		; [4.1.1105] NO -- CONTINUE EMPTYING TO 11 QUEUE
   8149	025250					.INH6			; [4.1.1035] YES -- DISALLOW INTERRUPTS
	025250	013746 	177776 			MOV	@#PS,-(SP)
	025254	112737 	000300 	177776 		MOVB	#300,@#PS
   8150	025262	013704 	001326'			MOV	TO10Q,R4	;;; [4.1.1035] POINT TO THE TO 10 QUEUE
   8151	025266	022704 	001326'			CMP	#TO10Q,R4	;;; [4.1.1035] ANYTHING THERE??
   8152	025272	001745 				BEQ	20$		;;; [4.1.1035] NO -- GO ON
   8153	025274					CALL	.STTNF		;;; [4.1.1121] YES -- FORCE THE START
	025274	004737 	031370'			JSR	PC,.STTNF
   8154	025300	000742 				BR	20$		;;; [4.1.1035] UNLOAD THE REST OF THE TO 11 QUEUE
   8155						;
   8156
   8157						.DSABL	LSB
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 148
QUEUED PROTOCOL DRIVER -- DISPATCH TABLE

   8159						.SBTTL	QUEUED PROTOCOL DRIVER -- DISPATCH TABLE
   8160
   8161	025302				DFTBL::
   8162	025302	026224'				HICTS			; (01) HERE IS INITIAL STATUS
   8163	025304	025400'				UNRGFN			; (02) UNRECGONIZED FUNCTION
   8164	025306	026420'				STRDAT			; (03) STRING DATA FOR DEVICE
   8165	025310	026464'				LINCHR			; (04) LINE NUMBER CHARACTER DATA FOR DEVICE
   8166	025312	026420'				RTDVST			; (05) RETURN DEVICE STATUS
   8167	025314	026420'				STDVST			; (06) SET DEVICE STATUS FOR DEVICE
   8168	025316	026420'				HIDVST			; (07) HERE IS DEVICE STATUS
   8169	025320	025400'				UNRGFN			; (10) ERROR DEVICE STATUS
   8170	025322	026374'				RTNTOD			; (11) RETURN TIME OF DAY
   8171	025324	026626'				RETTOD			; (12) SEND TIME OF DAY
   8172	025326	026664'				FLDVOT			; (13) FLUSH DEVICE OUTPUT QUEUE
   8173	025330	027000'				SNDALL			; (14) SEND ALL TTY'S
   8174	025332	025400'				UNRGFN			; (15) DIAL UP
   8175	025334	025466'				HANGUP			; (16) HANG UP
   8176	025336	025610'				ACKNOW			; (17) ACKNOWLEDGE END OF DATA IN BUFFER
   8177	025340	026166'				XOFF			; (20) XOFF (TTY)
   8178	025342	026202'				XON			; (21) XON (TTY)
   8179	025344	025642'				SETSPD			; (22) SET TTY SPEED
   8180	025346	025622'				SETLIN			; (23) SET LINE ALLOCATION
   8181	025350	025400'				UNRGFN			; (24) SET RELOAD PARAMETERS
   8182	025352	026220'				DEAND1			; (25) ACK ALL
   8183	025354	026042'				STPLIN			; (26) STOP LINE
   8184	025356	025406'				EDRMT			; (27) ENABLE/DISABLE REMOTE LINES
   8185	025360	026420'				LDLPR			; (30) LOAD LP RAM
   8186	025362	026420'				LDLPV			; (31) LOAD LP VFU
   8187	025364	025424'				NOSNDA			; (32) SET OR CLEAR "SUPPRESS SEND-ALL" BIT
   8188	025366	026722'				RCVKLP			; (33) RECIEVE KLINIK PARAMETERS FROM KL
   8189	025370	025416'				ENBXOF			; [4.2181] (34) ENABLE/DISABLE XOFF PROCESSING
   8190	025372	026140'				BTWCHR			; [5.1016] (35) BREAK-THROUGH WRITE
   8191	025374	026762'				SETDEB			; [5.1127] (36) HOST DEBUG MODE
   8192	025376	026772'				CLRDEB			; [5.1127] (37) CLEAR HOST DEBUG MODE
   8193
   8194		000076 			DFTSZ=.-DFTBL			; LEGAL FUNCTIONS COUNT *2
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 149
QUEUED PROTOCOL DRIVER -- UNRECOGNIZED FUNCTION

   8196						.SBTTL	QUEUED PROTOCOL DRIVER -- UNRECOGNIZED FUNCTION
   8197
   8198					;
   8199					;	UNRGFN -- UNRECOGNIZED FUNCTION
   8200					;
   8201
   8202	025400				UNRGFN::
   8203	025400					.CRASH	ILF		;;; ILF -- ILLEGAL FUNCTION
	025400	000004 				IOT
	025402	   111 	   114 	   106 		.ASCIZ	/ILF/
	025405	   000
   8204						;
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 150
QUEUED PROTOCOL DRIVER -- ENABLE/DISABLE REMOTE TERMINALS

   8206						.SBTTL	QUEUED PROTOCOL DRIVER -- ENABLE/DISABLE REMOTE TERMINALS
   8207
   8208					;
   8209					;	ENABLE/DISABLE REMOTE TERMINALS -- FUNCTION 27
   8210					;
   8211
   8212	025406				EDRMT::
   8213	025406	016037 	000010 	002576'		MOV	E.FW(R0),.INHDM	;;; ENABLE/DISABLE DM-11/BB'S
   8214	025414	000511 				BR	DEAND3		;;; AND QUIT
   8215						;
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 151
QUEUED PROTOCOL DRIVER -- ENABLE/DISABLE SENDALL AND XOFF PROC

   8217						.SBTTL QUEUED PROTOCOL DRIVER -- ENABLE/DISABLE SENDALL AND XOFF PROCESSING
   8218
   8219					;
   8220					;	ENBXOF FUNCTION (ENABLE/DISABLE XOFF PROCESSING) FUNCTION 34
   8221					;
   8222
   8223						.ENABL	LSB
   8224
   8225	025416				ENBXOF::
   8226	025416	012705 	000020 			MOV	#TT.XEN,R5	;;; [4.2181] SET UP STATUS BIT
   8227	025422	000402 				BR	10$		;;; [4.2181] DO COMMON CODE
   8228						;
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 152
QUEUED PROTOCOL DRIVER -- ENABLE/DISABLE SENDALLS

   8230						.SBTTL	QUEUED PROTOCOL DRIVER -- ENABLE/DISABLE SENDALLS
   8231
   8232					;
   8233					;	NOSNDA FUNCTION (SET/CLEAR SUPPRESS SEND-ALL BIT) FUNCTION 32
   8234					;
   8235
   8236	025424				NOSNDA::			;;; [4.2181] SET OR CLEAR BIT TO SUPPRESS SEND-ALLS
   8237	025424	012705 	000400 			MOV	#TT.NSA,R5	;;; [4.2181] SET UP STATUS BIT
   8238	025430				10$:
   8239	025430	000360 	000010 			SWAB	E.FW(R0)	;;; [4.2181] SET UP DEVICE CODE FOR "FDVNMM"
   8240	025434					CALL	FDVNMM		;;; [4.2181] GET R2 TO POINT TO BLOCK FOR THIS LINE
	025434	004737 	027450'			JSR	PC,FDVNMM
   8241	025440	040562 	000006 			BIC	R5,STSW1(R2)	;;; [4.2181] ASSUME A CLEAR
   8242	025444	042762 	000200 	000006 		BIC	#TT.XOF,STSW1(R2) ;;; [5.1004] CLEAR XOFF BIT ALWAYS
   8243	025452	105760 	000010 			TSTB	E.FW(R0)	;;; [4.2181] TEST ARGUMENT BYTE
   8244	025456	001470 				BEQ	DEAND3		;;; [4.1.1035] IF .NE. 0,
   8245	025460	050562 	000006 			BIS	R5,STSW1(R2)	;;; [4.2181] THEN SET BIT.
   8246	025464	000465 				BR	DEAND3		;;; [4.1.1035] FREE THE NODE
   8247						;
   8248
   8249						.DSABL	LSB
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 153
QUEUED PROTOCOL DRIVER -- HANGUP

   8251						.SBTTL	QUEUED PROTOCOL DRIVER -- HANGUP
   8252
   8253					;
   8254					;	HANGUP -- FUNCTION 16
   8255					;
   8256
   8257	025466				HANGUP::
   8258	025466					CALL	FDVNMM		;;; FIND DEVICE
	025466	004737 	027450'			JSR	PC,FDVNMM
   8259	025472	010205 				MOV	R2,R5		;;; SET UP TABLE ADDRESS
   8260	025474	032765 	000002 	000006 		BIT	#TT.CTY,STSW1(R5) ;;; IS THIS A CTY??
   8261	025502	001411 				BEQ	10$		;;; NO -- GO ON
   8262	025504	105737 	001226'			TSTB	.KLNSW+0	;;; YES -- IS KLINIK ACTIVE??
   8263	025510	003406 				BLE	10$		;;; NOT THAT WE CARE
   8264	025512	010546 				MOV	R5,-(SP)	;;; YES -- SAVE POINTER
   8265					;
   8266					; HERE TO HANG UP THE KLINIK LINE
   8267					;
   8268	025514	013705 	002636'			MOV	KLNPTR,R5	;;; POINT TO KLINIK LINE
   8269	025520					CALL	.DLHUP		;;; HANG UP THE KLINIK LINE
	025520	004737 	040214'			JSR	PC,.DLHUP
   8270	025524	012605 				MOV	(SP)+,R5	;;; RESTORE POINTER
   8271	025526				10$:
   8272	025526	022705 	003046'			CMP	#DHTBL,R5	;;; IS THIS A DH-11??
   8273	025532	101023 				BHI	20$		;;; NO -- DL-11'S ARE A SPECIAL CASE
   8274					;
   8275					; HERE TO HANG UP A DM-11/BB
   8276					;
   8277	025534	005001 				CLR	R1		;;; YES -- FIND THE LINE NUMBER
   8278	025536	156001 	000011 			BISB	E.FW+1(R0),R1	;;; SO
   8279	025542	162701 	000005 			SUB	#DLCNT,R1	;;; REMOVE DL-11'S
   8280	025546	042701 	177760 			BIC	#177760,R1	;;; MAKE IT A UNIT NUMBER
   8281	025552					CALL	FNDDM		;;; [5.1004] FIND THE DM-11/BB ADDRESS
	025552	004737 	027366'			JSR	PC,FNDDM
   8282	025556	001430 				BEQ	DEAND3		;;; [4.1.1091] NOT THERE -- IGNORE
   8283	025560					CALL	.DMHUP		;;; HANGUP
	025560	004737 	040144'			JSR	PC,.DMHUP
   8284	025564	032765 	000040 	000006 		BIT	#TT.ABL,STSW1(R5) ;;; IS THIS AN AUTO-BAUD LINE??
   8285	025572	001422 				BEQ	DEAND3		;;; [4.1.1035] NO -- GO ON
   8286	025574					CALL	.DHSPR		;;; YES RESET LINE SPEED TO DEFAULT
	025574	004737 	037460'			JSR	PC,.DHSPR
   8287	025600	000417 				BR	DEAND3		;;; [4.1.1035] RETURN THE NODE
   8288						;
   8289					;
   8290					; HERE TO HANG UP A DL-11E
   8291					;
   8292	025602				20$:
   8293	025602					CALL	.DLHUP		;;; HANG IT UP
	025602	004737 	040214'			JSR	PC,.DLHUP
   8294	025606	000414 				BR	DEAND3		;;; [4.1.1035] RETURN THE NODE
   8295						;
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 154
QUEUED PROTOCOL DRIVER -- ACKNOWLEDGE DEVICE

   8297						.SBTTL	QUEUED PROTOCOL DRIVER -- ACKNOWLEDGE DEVICE
   8298
   8299					;
   8300					;	ACKNOWLEDGE DEVICE -- FUNCTION 17
   8301					;
   8302
   8303	025610				ACKNOW::
   8304	025610					CALL	FDVNMM		;;; FIND UNIT ETC
	025610	004737 	027450'			JSR	PC,FDVNMM
   8305	025614					CALL	@.DQPBA-20+Q.AK(R1) ;;; GO TO USER STATUS ROUTINE
	025614	004771 	010024'			JSR	PC,@.DQPBA-20+Q.AK(R1)
   8306	025620	000407 				BR	DEAND3		;;; [4.1.1092] RETURN NODE
   8307						;
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 155
QUEUED PROTOCOL DRIVER -- SET LINE ALLOCATION

   8309						.SBTTL	QUEUED PROTOCOL DRIVER -- SET LINE ALLOCATION
   8310
   8311					;
   8312					;	SET LINE ALLOCATION -- FUNCTION 23
   8313					;
   8314
   8315	025622				SETLIN::
   8316	025622	000360 	000010 			SWAB	E.FW(R0)	;;; SWAP THE BYTES FOR "FDVNMM"
   8317	025626					CALL	FDVNMM		;;; FIND DEVICE
	025626	004737 	027450'			JSR	PC,FDVNMM
   8318	025632	116461 	000011 	010026'		MOVB	E.FW+1(R4),.DQPBA-20+14(R1) ;;; SET IT IN THE TABLE
   8319	025640				DEAND3:
   8320	025640	000567 				BR	DEAND1		;;; [4.1.1092] AND RETURN
   8321						;
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 156
QUEUED PROTOCOL DRIVER -- SET LINE SPEED

   8323						.SBTTL	QUEUED PROTOCOL DRIVER -- SET LINE SPEED
   8324
   8325					;
   8326					;	SETSPD -- SET SPEED OF TTY -- FUNCTION 22
   8327					;
   8328					; TCO 5.1249 CHANGES REFRENCES TO R4 TO R0 AND SAVES IN R4 INSTEAD OF SP
   8329
   8330	025642				SETSPD::
   8331	025642	016002 	000012 			MOV	E.FW+2(R0),R2	;;; FIND THE INPUT SPEED
   8332	025646					CALL	FNDSPD		;;; FIND THIS SPEED
	025646	004737 	027420'			JSR	PC,FNDSPD
   8333	025652	006203 				ASR	R3		;;; PUT IT IN THE CORRECT POSITION FOR DH-11
   8334	025654	006203 				ASR	R3		;;; SO
   8335	025656	010304 				MOV	R3,R4		;;; SAVE THE WORD
   8336	025660	016002 	000014 			MOV	E.FW+4(R0),R2	;;; FIND THE OUTPUT SPEED
   8337	025664					CALL	FNDSPD		;;; FIND THIS SPEED
	025664	004737 	027420'			JSR	PC,FNDSPD
   8338	025670	006303 				ASL	R3		;;; PUT OUTPUT SPEED IN CORRECT POSITION
   8339	025672	006303 				ASL	R3		;;; IS THE OUPUT SPEED ZERO??
   8340	025674	001002 				BNE	10$		;;; NO -- DON'T ALTER IT
   8341	025676	012703 	016003 			MOV	#16003,R3	;;; [5.1004] YES -- SET IT TO AN OUTPUT SPEED OF 300
   8342									;;; THIS IS DONE TO PREVENT PROBLEMS WHEN ZERO OUTPUT BAUD
   8343									;;; IS DONE AND THERE IS OUTPUT FOR THIS LINE
   8344	025702				10$:
   8345	025702	050403 				BIS	R4,R3		;;; SET THE INPUT AND OUTPUT TOGETHER
   8346	025704	016001 	000016 			MOV	E.FW+6(R0),R1	;;; GET THE STOP BIT PARAMETER
   8347	025710	006301 				ASL	R1		;;; 1 IS 1 STOP BIT 2 IS TWO STOP BITS
   8348	025712	042701 	177770 			BIC	#177770,R1	;;; CLEAR OFF JUNK
   8349	025716	050103 				BIS	R1,R3		;;; SET IN STATUS WORD
   8350	025720				20$:
   8351	025720	052703 	000003 			BIS	#3,R3		;;; SET 8 BIT CHARACTER LENGTH
   8352	025724	005005 				CLR	R5		;;; FIND THE LINE NUMBER
   8353	025726	156005 	000010 			BISB	E.FW(R0),R5	;;; FIND THE UNIT NUMBER
   8354	025732	162705 	000005 			SUB	#DLCNT,R5	;;; SUBTRACT OUT DL-11'S
   8355	025736	100530 				BMI	DEAND1		;;; [4.1.1035] DL-11'S ARE NOT LEGAL
   8356	025740	010304 				MOV	R3,R4
   8357	025742	000360 	000010 			SWAB	E.FW(R0)	;;; SWAP THE PLACE OF THE LINE NUMBER
   8358	025746					CALL	FDVNMM
	025746	004737 	027450'			JSR	PC,FDVNMM
   8359	025752	010403 				MOV	R4,R3
   8360	025754	010501 				MOV	R5,R1		;;; SAVE UNIT NUMBER
   8361	025756	010205 				MOV	R2,R5
   8362	025760	005760 	000016 			TST	E.FW+6(R0)	;;; CHECK FOR REMOTE FLAG
   8363	025764	100012 				BPL	30$		;;; NO -- DON'T SET REMOTE FLAG
   8364	025766	042701 	177760 			BIC	#177760,R1	;;; MASK UNIT NUMBER
   8365	025772					CALL	FNDDM		;;; [5.1004] FIND THE DM-11/BB ADDRESS
	025772	004737 	027366'			JSR	PC,FNDDM
   8366	025776	001510 				BEQ	DEAND1		;;; [4.1.1091] NOT THERE -- IGNORE
   8367	026000	052765 	000100 	000006 		BIS	#TT.RMT,STSW1(R5) ;;; SET REMOTE FLAG
   8368	026006					CALL	.DMHUP		;;; HANGUP THE DEVICE
	026006	004737 	040144'			JSR	PC,.DMHUP
   8369	026012				30$:
   8370	026012	032760 	040000 	000016 		BIT	#BIT14,E.FW+6(R0) ;;; IS THIS AN AUTO-BAUD LINE??
   8371	026020	001405 				BEQ	40$		;;; NO -- GO ON
   8372	026022	052765 	000040 	000006 		BIS	#TT.ABL,STSW1(R5) ;;; YES -- SET THE FLAG
   8373	026030	012703 	016703 			MOV	#16703,R3	;;; SET THE DEFAULT SPEED TO 300 BAUD
   8374	026034				40$:
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 156-1
QUEUED PROTOCOL DRIVER -- SET LINE SPEED

   8375	026034					CALL	.DHSPD		;;; SET DH-11 LINE SPEED
	026034	004737 	037554'			JSR	PC,.DHSPD
   8376	026040	000467 				BR	DEAND1		;;; DEALLOCATE NODE
   8377						;
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 157
QUEUED PROTOCOL DRIVER -- STOP LINE INPUT

   8379						.SBTTL	QUEUED PROTOCOL DRIVER -- STOP LINE INPUT
   8380
   8381					;
   8382					;	STOP INPUT FROM LINE -- FUNCTION 26
   8383					;
   8384	026042				STPLIN::
   8385	026042	000360 	000010 			SWAB	E.FW(R0)	;;; SWAP THE BYTES
   8386	026046					CALL	FDVNMM		;;; FIND DEVICE
	026046	004737 	027450'			JSR	PC,FDVNMM
   8387	026052	010205 				MOV	R2,R5		;;; [5.1015] DEVICE POINTER TO R5
   8388	026054	032765 	000002 	000006 		BIT	#TT.CTY,STSW1(R5) ;;; [5.1015] IS THIS A CTY?
   8389	026062	001411 				BEQ	10$		;;; NO -- GO ON
   8390	026064	105737 	001226'			TSTB	.KLNSW+0	;;; YES -- IS KLINIK ACTIVE?
   8391	026070	003406 				BLE	10$		;;; NOT THAT WE CARE -- GO ON
   8392	026072	010546 				MOV	R5,-(SP)	;;; [5.1015] YES -- SAVE R5
   8393	026074	013705 	002636'			MOV	KLNPTR,R5	;;; [5.1015] KLINIK POINTER TO R5
   8394	026100					CALL	20$		;;; [5.1015] STOP THE KLINIK LINE
	026100	004737 	026114'			JSR	PC,20$
   8395	026104	012605 				MOV	(SP)+,R5	;;; [5.1015] RESTORE POINTER
   8396	026106				10$:
   8397	026106					CALL	20$		;;; [5.1015] START OR STOP THE LINE
	026106	004737 	026114'			JSR	PC,20$
   8398	026112	000442 				BR	DEAND1		;;; [5.1015] DEALLOCATE THE NODE AND EXIT
   8399						;
   8400	026114				20$:
   8401	026114					CALL	.TTSW2		;;; [5.1015] FIND OUR ".STSW2" ENTRY
	026114	004737 	042754'			JSR	PC,.TTSW2
   8402	026120	012746 	042204'			MOV	#.TTQDS,-(SP)	;;; [4.1.1092] ASSUME A STOP
   8403	026124	105760 	000010 			TSTB	E.FW(R0)	;;; [4.1.1092] IS THIS A START OR A STOP??
   8404	026130	001402 				BEQ	30$		;;; [4.1.1092] STOP -- GO ON
   8405	026132	012716 	042214'			MOV	#.TTQEN,(SP)	;;; [4.1.1092] SET UP FOR A START
   8406	026136				30$:
   8407	026136	000136 				JMP	@(SP)+		;;; [4.1.1092] DO THE START OR STOP AND RETURN
   8408						;
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 158
QUEUED PROTOCOL DRIVER -- BREAK-THROUGH WRITE

   8410						.SBTTL	QUEUED PROTOCOL DRIVER -- BREAK-THROUGH WRITE
   8411
   8412					;
   8413					;	BTWCHR	-- BREAK-TROUGH WRITE FOR CHARACTER -- FUNCTION 35
   8414					;
   8415
   8416	026140				BTWCHR::
   8417	026140	000360 	000010 			SWAB	E.FW(R0)	;;; [5.1016] SWAP THE LINE NUMBER/FLAG
   8418	026144					CALL	FDVNMM		;;; [5.1016] FIND THE DEVICE
	026144	004737 	027450'			JSR	PC,FDVNMM
   8419									;;; [5.1016] DON'T RETURN IF IT DOESN'T EXIST
   8420	026150	010205 				MOV	R2,R5		;;; [5.1016] COPY DLS POINTER TO R5
   8421	026152	116004 	000010 			MOVB	E.FW(R0),R4	;;; [5.1016] GET THE CHARACTER IN R4
   8422	026156	001420 				BEQ	DEAND1		;;; [4.1.1035] IGNORE IF NULL
   8423	026160					CALL	.TTBTW		;;; [5.1016] FORCE THE CHARACTER OUT
	026160	004737 	042604'			JSR	PC,.TTBTW
   8424	026164	000415 				BR	DEAND1		;;; [5.1016] DEALLOCATE AND EXIT
   8425						;
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 159
QUEUED PROTOCOL DRIVER -- XOFF

   8427						.SBTTL	QUEUED PROTOCOL DRIVER -- XOFF
   8428
   8429					;
   8430					;	XOFF -- FUNCTION 20
   8431					;
   8432					;	THIS ROUTINE WILL INITIATE THE XOFF SEQUENCE FOR A TERMINAL LINE.
   8433					;	THE "XOFF" STATUS BIT ("TT.XOF") IS SET IN THE LINE STATUS WORD WHICH
   8434					;	BLOCKS ANY FURTHER OUTPUT FROM THE TERMINAL DRIVER. IF THE LINE IS
   8435					;	A DH-11, THE OUTPUT IS NOT STOPPED IMMEDIATELY, BUT A RUNDOWN SEQUENCE
   8436					;	IS INITATED SINCE EARLIER DH-11'S WILL "RUN AWAY" IF THE DEVICE BYTE
   8437					;	COUNT IS SIMPLY CLEARED. THE TERMINAL INTERRUPT SERVICE WILL RESET THE
   8438					;	PACKET ADDRESS AND BYTE COUNT AT OUTPUT DONE SO THAT THE XON CODE CAN
   8439					;	DO A NORMAL LINE START.
   8440					;
   8441					;	THIS MESSAGE IS IGNORED IF:
   8442					;
   8443					;		1. THE LINE IS ALREADY X'D OFF
   8444					;		2. THE LINE HAS NO OUTPUT PENDING (THREAD LIST EMPTY)
   8445					;		3. A SENDALL IS IN PROGRESS ON THIS LINE
   8446					;		4. THE CTY IS IN PDP-11 I/O WAIT AND THE CTY IS TO BE X'D OFF
   8447
   8448	026166				XOFF::
   8449	026166					CALL	FDVNMM		;;; FIND THE DEVICE NAME
	026166	004737 	027450'			JSR	PC,FDVNMM
   8450	026172	010205 				MOV	R2,R5		;;; COPY DLS POINTER TO R5
   8451	026174					CALL	.TTXOF		;;; DO THE XOFF
	026174	004737 	041554'			JSR	PC,.TTXOF
   8452	026200	000407 				BR	DEAND1		;;; AND EXIT
   8453						;
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 160
QUEUED PROTOCOL DRIVER -- XON

   8455						.SBTTL	QUEUED PROTOCOL DRIVER -- XON
   8456
   8457					;
   8458					;	XON -- FUNCTION 21
   8459					;
   8460					;	THIS ROUTINE WILL RESUME OUTPUT FOR A LINE WHICH WAS PREVIOUSLY
   8461					;	X'D OFF.  THE OUTPUT WILL BE RESUMED PER THE DATA IN THE CURRENT
   8462					;	NODE IN THE THREAD LIST FOR THIS LINE. (T.HCBC AND T.HACD) THIS
   8463					;	DATA IS SAVED AT OUTPUT INTERRUPT TIME FROM THE XOFF.
   8464					;
   8465					;	THIS MESSAGE WILL BE IGNORED IF:
   8466					;
   8467					;		1. THE LINE HAS NOT BEEN PREVIOUSLY X'D OFF
   8468					;		2. A SENDALL IS CURRENTLY IN PROGRESS ON THIS LINE
   8469					;
   8470					;	THE DEVICE WILL NOT BE RESTARTED IF:
   8471					;
   8472					;		1. OUTPUT IS ALREADY IN PROGRESS ON THIS LINE
   8473					;		2. THE OUTPUT THREAD LIST FOR THIS LINE IS EMPTY
   8474					;		3. THE DEVICE DOES NOT EXIST
   8475
   8476
   8477	026202				XON::
   8478	026202					CALL	FDVNMM		;;; [4.2181] FIND THIS DEVICE
	026202	004737 	027450'			JSR	PC,FDVNMM
   8479	026206	010205 				MOV	R2,R5		;;; [4.2181] COPY DLS POINTER TO R5
   8480	026210	010046 				MOV	R0,-(SP)	;;; [5.1248] SAVE R0
   8481	026212					CALL	.TTXON		;;; [4.2181] PROCESS THE DIRECTIVE
	026212	004737 	041676'			JSR	PC,.TTXON
   8482	026216	012600 				MOV	(SP)+,R0	;;; [5.1248] RESTORE R0
   8483	026220				DEAND1:
   8484	026220	000137 	026654'			JMP	DEANOD		;;; [4.2181] DEALLOCATE THE NODE
   8485						;
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 161
QUEUED PROTOCOL DRIVER -- HERE IS INITIAL STATUS

   8487						.SBTTL	QUEUED PROTOCOL DRIVER -- HERE IS INITIAL STATUS
   8488
   8489					;
   8490					;	HERE IS INITIAL STATUS -- FUNCTION 1
   8491					;	FW IS ALLOCATED WITH LOW ORDER PART AS # OF TTY'S
   8492					;	BIT 16 IS ALLOCATED TO INDICATE 50CPS
   8493					;
   8494
   8495	026224				HICTS::
   8496	026224	012737 	000074 	001154'		MOV	#60.,.TKPS	;;; SET UP THE CLOCK TO 60. CPS
   8497	026232	105760 	000010 			TSTB	E.FW+0(R0)	;;; CHECK FOR 50 CPS (BYTES ARE SWAPPED)
   8498	026236	100003 				BPL	10$		;;; HIGH ORDER BIT SET IS 50CPS
   8499	026240	162737 	000012 	001154'		SUB	#10.,.TKPS	;;; SET TO 50 HZ
   8500	026246				10$:
   8501	026246	012703 	000001 			MOV	#D.CCTY,R3	;;; SET DEVICE ID
   8502	026252	012701 	000002 			MOV	#BC.HAD,R1	;;; SET HERE IS DEVICE STATUS
   8503	026256	013704 	002634'			MOV	CTYPTR,R4	;;; FIND THE CTY NUMBER
   8504	026262	162704 	002776'			SUB	#TTTBL,R4
   8505	026266	006204 				ASR	R4		;;; MAKE NUMBER
   8506	026270	006204 				ASR	R4
   8507	026272	006204 				ASR	R4
   8508	026274					CALL	..STFC		;;; START FUNCTION
	026274	004737 	045456'			JSR	PC,..STFC
   8509	026300	105737 	001216'			TSTB	.KLNMD+0	;;; ANY KLINIK PARAMETERS TO SEND??
   8510	026304	001424 				BEQ	20$		;;; NO -- GO ON
   8511	026306	010046 				MOV	R0,-(SP)	;;; YES -- SAVE R0
   8512	026310	012700 	001176'			MOV	#.KLNPB,R0	;;; BUFFER POINTER TO R0
   8513	026314	012710 	000026 			MOV	#KLNPLN,(R0)	;;; BYTE COUNT TO BUFFER HEADER
   8514	026320	012701 	100033 			MOV	#BC.SKP+100000,R1 ;;; FUNCTION CODE TO R1
   8515	026324	005002 				CLR	R2		;;; DON'T WAIT FOR IT
   8516	026326	012703 	000200 			MOV	#D.CCPU,R3	;;; DEVICE ID TO R3
   8517	026332					.ENBT			;;; [4.1.1035] ALLOW TASK SWITCHING
	026332	013746 	177776 			 MOV	@#PS,-(SP)
	026336	042737 	000340 	177776 		 BIC	#PRI7,@#PS
   8518	026344					CALL	..STIN		; SEND THE KLINIK PARAMETERS
	026344	004737 	045646'			JSR	PC,..STIN
   8519	026350					.INHT			; [4.1.1035] DISABLE TASK SWITCHING
	026350	012637 	177776 			 MOV	(SP)+,@#PS
   8520	026354	012600 				MOV	(SP)+,R0	;;; RESTORE R0
   8521	026356				20$:
   8522	026356	013704 	001160'			MOV	.BTPRM,R4	;;; SEND BOOT PARAMETERS
   8523	026362	012701 	000024 			MOV	#BC.BTP,R1	;;; SET BOOT PARAMETERS
   8524	026366					CALL	..STFC		;;; [5.1004] SEND BOOT PARAMETERS
	026366	004737 	045456'			JSR	PC,..STFC
   8525	026372	000530 				BR	DEANOD		;;; [4.1.1035] DEALLOCATE NODE
   8526						;
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 162
QUEUED PROTOCOL DRIVER -- RETURN TIME OF DAY

   8528						.SBTTL	QUEUED PROTOCOL DRIVER -- RETURN TIME OF DAY
   8529
   8530					;
   8531					;	RTNTOD -- RETURN TIME OF DAY TO KL -- FUNCTION 11
   8532					;
   8533
   8534	026374				RTNTOD::
   8535	026374	005737 	001140'			TST	.DATE3		;;; [5.1004] IS OUR DATE VALID??
   8536	026400	001403 				BEQ	10$		;;; [5.1004] NO -- JUST REPORT CONFIGURATION
   8537	026402	012737 	177777 	002602'		MOV	#-1,.ABFLG	;;; FLAG "SETSPD" TO REPORT ALL LINES
   8538	026410				10$:
   8539	026410					DIR$	#.RQSPD		;;; SET SPEED AND THEN RETURN TIME OF DAY
	026410	012746 	024600'			MOV	#.RQSPD,-(SP)
	026414	104375 				EMT	375
   8540	026416	000516 				BR	DEANOD		;;; [4.1.1035] DEALLOCATE THIS NODE
   8541						;
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 163
QUEUED PROTOCOL DRIVER -- STRING DATA

   8543						.SBTTL	QUEUED PROTOCOL DRIVER -- STRING DATA
   8544
   8545					;
   8546					;	STRDAT -- ROUTINE TO HANDLE STRING DATA -- FUNCTION 3
   8547					;	HIDVST -- ROUTINE TO RECIEVE DEVICE STATUS -- FUNCTION 7
   8548					;	RTDVST -- ROUTINE TO RECEIVE REQUEST FOR DEVICE STATUS -- FUNCTION 5
   8549					;	STDVST -- ROUTINE TOSET DEVICE STATUS -- FUNCTION 6
   8550					;	LDLPR -- ROUTINE TO LOAD LP RAM -- FUNCTION 30
   8551					;	LDLPV -- ROUTINE TO LOAD LP VFU -- FUNCTION 31
   8552					;
   8553
   8554	026420				HIDVST::
   8555	026420				LDLPR::
   8556	026420				LDLPV::
   8557	026420				STDVST::
   8558	026420				RTDVST::
   8559	026420				STRDAT::
   8560	026420	012702 	000006 			MOV	#6,R2		;;; MOVE OVER THE LISTHEAD AND COUNT
   8561	026424	060204 				ADD	R2,R4		;;; FIND THE DEVICE ADDRESS
   8562	026426	012401 				MOV	(R4)+,R1	;;; FIND THE DEVICE ADDRESS
   8563	026430	012403 				MOV	(R4)+,R3	;;; FIND THE FIRST WORD
   8564	026432	160204 				SUB	R2,R4		;;; BACKUP TO STORE IN THE HEADER
   8565	026434	111464 	000003 			MOVB	@R4,3(R4)	;;; SAVE FUNCTION CODE
   8566	026440	010414 				MOV	R4,@R4		;;; SAVE THE ADDRESS
   8567	026442	060224 				ADD	R2,(R4)+	;;; UPDATE ADDRESS
   8568	026444	000303 				SWAB	R3		;;; SET UP BYTES SWAPED
   8569	026446	110314 				MOVB	R3,@R4		;;; STORE BYTE COUNT
   8570	026450					CALL	FDVNM		;;; FIND DEVICE TABLE ENTRY
	026450	004737 	027464'			JSR	PC,FDVNM
   8571	026454	103477 				BCS	DEANOD		;;; ILLEGAL DEVICE -- FORGET IT
   8572	026456					CALL	@.DQPBA+Q.ST-20(R1) ;;; START DEVICE
	026456	004771 	010016'			JSR	PC,@.DQPBA+Q.ST-20(R1)
   8573	026462	000476 				BR	QPRDTF		;;; [4.1.1035] GO TO DO MORE WORK
   8574						;
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 164
QUEUED PROTOCOL DRIVER -- LINE NUMBER - CHARACTER

   8576						.SBTTL	QUEUED PROTOCOL DRIVER -- LINE NUMBER - CHARACTER
   8577
   8578					;
   8579					;	LINCHR --LINE NUMBER - CHARACTER -- FUNCTION 4
   8580					;
   8581
   8582	026464				LINCHR::
   8583	026464	010046 				MOV	R0,-(SP)	;;; SAVE THE NODE ADDRESS
   8584	026466	005046 				CLR	-(SP)
   8585	026470	116416 	000005 			MOVB	E.FN+1(R4),@SP	;;; SAVE SIZE OF BLOCK
   8586	026474	162716 	000010 			SUB	#E.FW,@SP	;;; SUBTRACT THE SIZE OF THE HEADER
   8587	026500	010405 				MOV	R4,R5		;;; SET UP THE POINTER TO THE BUFFER
   8588	026502	016404 	000006 			MOV	E.DV(R4),R4	;;; FIND THE DEVICE
   8589	026506	062705 	000010 			ADD	#E.FW,R5	;;; POINT TO THE CHARACTER
   8590	026512				10$:
   8591	026512	012701 	000014 			MOV	#T.HHDS+4,R1	;;; SET UP THE BUFFER SIZE
   8592	026516					.ENBT			;;; [4.1.1035] ENABLE TASK SWITCHING
	026516	013746 	177776 			 MOV	@#PS,-(SP)
	026522	042737 	000340 	177776 		 BIC	#PRI7,@#PS
   8593	026530					CALL	..ALOW		; ALLOCATE A BLOCK
	026530	004737 	044706'			JSR	PC,..ALOW
   8594	026534					.INHT			; [4.1.1035] ALLOW TASK SWITCHING
	026534	012637 	177776 			 MOV	(SP)+,@#PS
   8595	026540	010002 				MOV	R0,R2		;;; SAVE THE NODE ADDRESS
   8596	026542	005722 				TST	(R2)+		;;; MOVE OVER THE THREAD POINTER
   8597	026544	010122 				MOV	R1,(R2)+	;;; SET UP THE CHARACTER COUNT
   8598	026546	010012 				MOV	R0,@R2		;;; SET UP THE MEMORY ADDRESS
   8599	026550	062722 	000012 			ADD	#T.HHDS+2,(R2)+	;;; POINT TO THE BUFFER
   8600	026554	012722 	000001 			MOV	#1,(R2)+	;;; SET UP THE CURRENT COUNT POINTER
   8601	026560	005722 				TST	(R2)+
   8602	026562	010401 				MOV	R4,R1		;;; PICK UP THE DEVICE
   8603	026564	112503 				MOVB	(R5)+,R3
   8604	026566	112522 				MOVB	(R5)+,(R2)+	;;; STORE THE CHARCTER
   8605	026570	000303 				SWAB	R3		;;; SET UP LINE NUMBER FOR FDVNM
   8606	026572					CALL	FDVNM		;;; FIND THE DEVICE NUMBER
	026572	004737 	027464'			JSR	PC,FDVNM
   8607	026576	103410 				BCS	30$		;;; ILLEGAL LINE NUMBER
   8608	026600					CALL	@.DQPBA+Q.ST-20(R1) ;;; START TTY
	026600	004771 	010016'			JSR	PC,@.DQPBA+Q.ST-20(R1)
   8609	026604				20$:
   8610	026604	162716 	000002 			SUB	#2,@SP		;;; POINT TO THE NEXT CHARACTER
   8611	026610	001340 				BNE	10$		;;; DO AT LEAST ONE MORE
   8612	026612	005726 				TST	(SP)+		;;; REMOVE COUNT
   8613	026614	012600 				MOV	(SP)+,R0	;;; SET UP TO RETURN NODE
   8614	026616	000416 				BR	DEANOD		;;; ALL DONE -- RETURN THE NODE
   8615						;
   8616	026620				30$:
   8617	026620					CALL	..DECN		;;; DEALLOCATE BUFFER
	026620	004737 	044546'			JSR	PC,..DECN
   8618	026624	000767 				BR	20$		;;; AND TRY NEXT BLOCK
   8619						;
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 165
QUEUED PROTOCOL DRIVER -- RETURN TIME OF DAY

   8621						.SBTTL	QUEUED PROTOCOL DRIVER -- RETURN TIME OF DAY
   8622
   8623					;
   8624					;	RETTOD -- RETURN TIME OF DAY -- FUNCTION 12
   8625					;
   8626
   8627	026626				RETTOD::
   8628	026626	062704 	000010 			ADD	#E.FW,R4	;;; MOVE OVER THE HEADER
   8629	026632	005724 				TST	(R4)+		;;; MOVE OVER THE VALID BIT AND CHECK IT
   8630	026634	001407 				BEQ	DEANOD		;;; TIME NOT VALID FORGET IT
   8631	026636	012703 	001140'			MOV	#.DATE,R3	;;; SET UP TO SET DATE
   8632	026642	012423 				MOV	(R4)+,(R3)+	;;; SET UP VALIDITY BITS
   8633	026644	012423 				MOV	(R4)+,(R3)+	;;; SET UP YEAR
   8634	026646	012423 				MOV	(R4)+,(R3)+	;;; SET UP DAY
   8635									;;; SET UP MONTH
   8636	026650	012423 				MOV	(R4)+,(R3)+	;;; SAVE DAYLIGHT SAVINGS TIME INDICATOR (1=DST)
   8637									;;; SET UP DAY OF WEEK
   8638	026652	012423 				MOV	(R4)+,(R3)+	;;; SET SECONDS SINCE MIDNIGHT
   8639	026654				DEANOD:
   8640	026654					CALL	..DECN		;;; DEALLOCATE BUFFER
	026654	004737 	044546'			JSR	PC,..DECN
   8641	026660				QPRDTF:
   8642	026660	000137 	025234'			JMP	QPRDTL		;;; GO TO NEXT FUNCTION
   8643						;
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 166
QUEUED PROTOCOL DRIVER -- FLUSH DEVICE OUTPUT QUEUE

   8645						.SBTTL	QUEUED PROTOCOL DRIVER -- FLUSH DEVICE OUTPUT QUEUE
   8646
   8647					;
   8648					;	FLDVOT -- FLUSH OUTPUT FOR THIS DEVICE -- FUNCTION 13
   8649					;
   8650
   8651	026664				FLDVOT::
   8652	026664					CALL	FDVNMM		;;; FIND THE DEVICE POINTER
	026664	004737 	027450'			JSR	PC,FDVNMM
   8653	026670	010146 				MOV	R1,-(SP)
   8654	026672					CALL	@.DQPBA+Q.SP-20(R1) ;;; STOP DEVICE
	026672	004771 	010020'			JSR	PC,@.DQPBA+Q.SP-20(R1)
   8655	026676	012601 				MOV	(SP)+,R1
   8656	026700	016100 	010012'			MOV	.DQPBA+Q.DA-20(R1),R0 ;;; FIND DEVICE TABLE BASE ADDRESS
   8657	026704	010205 				MOV	R2,R5		;;; FIND THIS DEVICE ADDRESS
   8658	026706	016403 	000006 			MOV	E.DV(R4),R3	;;; FIND DEVICE NUMBER
   8659	026712					CALL	..SACK		;;; SEND ACKNOWLEDGEMENT
	026712	004737 	045372'			JSR	PC,..SACK
   8660	026716	010400 				MOV	R4,R0		;;; SET UP TO RETURN NODE
   8661	026720	000755 				BR	DEANOD		;;; DEALLOCATE NODE
   8662						;
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 167
QUEUED PROTOCOL DRIVER -- RECIEVE KLINIK PARAMETERS

   8664						.SBTTL	QUEUED PROTOCOL DRIVER -- RECIEVE KLINIK PARAMETERS
   8665
   8666					;
   8667					;	RCVKLP -- RECIEVE KLINIK PARAMETERS -- FUNCTION 33
   8668					;
   8669
   8670	026722				RCVKLP::
   8671	026722	062704 	000012 			ADD	#E.FW+2,R4	;;; GET OVER THE INDIRECT HEADER
   8672	026726	012402 				MOV	(R4)+,R2	;;; BYTE COUNT TO R2
   8673	026730	001751 				BEQ	DEANOD		;;; QUIT IF NULL
   8674	026732	006202 				ASR	R2		;;; MAKE A WORD COUNT
   8675	026734	012703 	001202'			MOV	#.KLNFT,R3	;;; BUFFER POINTER TO R3
   8676	026740	042737 	010000 	001012'		BIC	#EF.RKP,.COMEF+2 ;;; CLEAR THE FLAG
   8677	026746				10$:
   8678	026746	012423 				MOV	(R4)+,(R3)+	;;; LOAD THE PARAMETERS
   8679	026750	077202 				SOB	R2,10$		;;; LOOP TILL DONE
   8680	026752	052737 	010000 	001012'		BIS	#EF.RKP,.COMEF+2 ;;; SET THE EVENT FLAG
   8681	026760	000735 				BR	DEANOD		;;; DEQUEUE THIS NODE AND EXIT
   8682						;
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 168
QUEUED PROTOCOL DRIVER -- SET/CLEAR HOST DEBUG MODE

   8684						.SBTTL	QUEUED PROTOCOL DRIVER -- SET/CLEAR HOST DEBUG MODE
   8685
   8686					;
   8687					;	SETDEB -- SET HOST DEBUG MODE (36)
   8688					;	CLRDEB -- CLEAR HOST DEBUG MODE (37)
   8689					;
   8690
   8691	026762				SETDEB::
   8692	026762	112737 	177777 	013035'		MOVB	#-1,SNDMSG+1	;;; [5.1127] SET HOST DEBUG MODE
   8693	026770	000731 				BR	DEANOD		;;; [5.1127] AND RETURN
   8694
   8695	026772				CLRDEB::
   8696	026772	105037 	013035'			CLRB	SNDMSG+1	;;; [5.1127] CLEAR HOST DEBUG MODE
   8697	026776	000726 				BR	DEANOD		;;; [5.1127] AND RETURN
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 169
QUEUED PROTOCOL DRIVER -- SENDALL

   8699						.SBTTL	QUEUED PROTOCOL DRIVER -- SENDALL
   8700
   8701					;
   8702					;	SNDALL -- SENDALL SERVICE -- FUNCTION 14
   8703					;
   8704
   8705	027000				SNDALL::
   8706	027000					CALL	.SNDAL		;;; DO SENDALL
	027000	004737 	027006'			JSR	PC,.SNDAL
   8707	027004	000725 				BR	QPRDTF		;;; AND RETURN
   8708						;
   8709					;
   8710					;	.SNDAL -- SUBROUTINE TO DO A SENDALL
   8711					;
   8712					;	CALLING SEQUENCE
   8713					;
   8714					;	R0 & R4 -- POINTER TO BUFFER TO BE SENT (QUEUED PROTOCOL FORMAT)
   8715					;
   8716					;	REGISTERS ALTERED
   8717					;
   8718					;	R0,R1,R2,R3,R5
   8719					;
   8720					;	THE SENDALL MESSAGES AND COUNTS ARE MAINTINED IN PARALLEL RING BUFFERS
   8721					;	IN ".SNDBF" AND ".SNDCN" (Q.V.). ".SNDLP" POINTS THE THE NEXT FREE LOGICAL
   8722					;	NODE IN THE SENDALL RING. EACH ENTRY IN THE DATA LINE SCANNER TABLE HAS
   8723					;	AS SENDALL INDEX BYTE IN "STSW1" ("TT.SND") WHICH POINTS TO THE LAST NODE
   8724					;	PROCESSED SENDALL RING. THE QUEUED PROTOCOL BUFFER IS DEALLOCATEED BY THE
   8725					;	TERMINAL DRIVER WHEN THE LAST TERMINAL HAS PROCESSED THAT NODE.
   8726					;
   8727					;	A SENDALL IS DEEMED TO BE PENDING FOR A LINE IF ITS SENDALL INDEX IS
   8728					;	DIFFERENT FROM THAT IN ".SNDLP". THE SENDALL WILL BE INITIATED AT "..STTY"
   8729					;	IF THE LINE IS IDLE, OR AT "STTYDN" IF THE LINE HAS ACTIVE OUTPUT.
   8730					;
   8731					;	IN ORDER TO PREVENT PROBLEMS ASSOCIATED WITH LARGE SENDALLS (A LARGE
   8732					;	SENDALL IS DEFINED AS ONE WHICH WILL FILL THE SENDALL RING), THE RING IS
   8733					;	ACTUALLY MANAGED AS A CIRCULAR LIST, WITH A GUARANTEED NULL ENTRY IN THE
   8734					;	LIST AT ALL TIMES. SHOULD A REQUEST BE MADE TO FILL AN EMPTY NODE IN THE
   8735					;	RING WITHOUT THE FOLLOWING NODE BEING EMPTY, THAT MODE WILL NOT BE FILLED
   8736					;	UNTIL THE FOLLOWING NODE BECOMES EMPTY (NULL). IN EFFECT, THE SENDALL
   8737					;	PROCESS IS DRIVEN BY THE SLOWEST TERMINAL(S) IN THE DATA LINE SCANNER.
   8738					;
   8739					;	TCO 4.2246 REMOVED SEVERAL INHIBIT AND ENABLE MACROS FROM THIS ROUTINE
   8740					;	014 -- REMOVED WSIG$S IF NO SPACE IN RING BUFFER
   8741
   8742	027006				.SNDAL::
   8743	027006	010004 				MOV	R0,R4		;;; COPY SENDALL POINTER
   8744	027010	022020 				CMP	(R0)+,(R0)+	;;; GET OVER LISTHEAD
   8745	027012	010010 				MOV	R0,(R0)		;;; SET UP CURRENT ADDRESS POINTER
   8746	027014	062720 	000006 			ADD	#6,(R0)+	;;; CORRECT BUFFER POINTER
   8747	027020	116010 	000003 			MOVB	3(R0),(R0)	;;; MOVE THE BYTE COUNT
   8748	027024				10$:
   8749	027024	013701 	002604'			MOV	.SNDLP,R1	;;; FIND THE CURRENT POINTER FOR SENDALL
   8750	027030	010102 				MOV	R1,R2		;;; COPY IT TO R2
   8751	027032	006301 				ASL	R1		;;; MAKE RING WORD INDEX
   8752	027034	005202 				INC	R2		;;; UPDATE THE POINTER TO NEXT NODE
   8753	027036	042702 	177774 			BIC	#^C3,R2		;;; MODULO 4
   8754	027042	010237 	002604'			MOV	R2,.SNDLP	;;; SET THE POINTER TO THE NEXT RING BUFFER
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 169-1
QUEUED PROTOCOL DRIVER -- SENDALL

   8755	027046	013761 	010110'	002616'		MOV	.DQDH0+Q.DZ,.SNDCN(R1) ;;; SET UP THE TTY COUNT
   8756					;	BEQ	15$		;;; GO ON IF NO DH-11'S
   8757	027054	010461 	002606'			MOV	R4,.SNDBF(R1)	;;; SET PACKET IN THE CURRENT RING BUFFER
   8758	027060				15$:
   8759	027060	012702 	002776'			MOV	#DLTBL,R2	;;; DO THE DL-11W AND DL-11E'S
   8760	027064				20$:
   8761	027064	020237 	002636'			CMP	R2,KLNPTR	;;; IS THIS THE KLINIK LINE??
   8762	027070	001003 				BNE	25$		;;; NO -- GO ON
   8763	027072	105737 	001226'			TSTB	.KLNSW+0	;;; YES -- IS IT ACTIVE AS USER CONSOLE??
   8764	027076	002015 				BGE	30$		;;; NO -- FORGET IT
   8765	027100				25$:
   8766	027100	005762 	000002 			TST	TTYEXP(R2)	;;; IS IT HERE??
   8767	027104	001412 				BEQ	30$		;;; NO -- FORGET IT
   8768	027106	032762 	000400 	000006 		BIT	#TT.NSA,STSW1(R2) ;;; YES -- SUPPRESS SENDALLS??
   8769	027114	001006 				BNE	30$		;;; YES -- SO DO IT
   8770	027116	010246 				MOV	R2,-(SP)	;;; SAVE R2 FROM "COPBUF"
   8771	027120					CALL	COPBUF		;;; COPY THE BUFFER
	027120	004737 	027312'			JSR	PC,COPBUF
   8772	027124	012602 				MOV	(SP)+,R2	;;; RESTORE R2
   8773	027126					CALL	..STTY		;;; START THE LINE UP
	027126	004737 	044726'			JSR	PC,..STTY
   8774	027132				30$:
   8775	027132	062702 	000010 			ADD	#^D8,R2		;;; POINT TO THE NEXT LINE
   8776	027136	022702 	003046'			CMP	#DHTBL,R2	;;; IS IT A DL-11??
   8777	027142	101350 				BHI	20$		;;; YES -- DO THIS LINE
   8778	027144	010400 				MOV	R4,R0		;;; NO -- SET UP POINTER TO TTY BUFFER FOR "..STTY"
   8779	027146	010037 	002626'			MOV	R0,.CRSND	;;; SET THAT THIS IS CURRENT SENDALL
   8780	027152				35$:
   8781	027152	032762 	000410 	000006 		BIT	#TT.NSA!TT.ABW,STSW1(R2) ;;; IGNORE SENDALL OR AUTO-BAUD WAIT??
   8782	027160	001033 				BNE	70$		;;; YES -- DON'T START THIS LINE BUT ACCOUNT FOR IT
   8783	027162	032762 	000002 	000006 		BIT	#TT.CTY,STSW1(R2) ;;; NO -- IS THIS A CTY??
   8784	027170	001403 				BEQ	45$		;;; NO -- GO ON
   8785	027172	005737 	002632'			TST	.TTP11		;;; YES -- IN -11 I/O WAIT??
   8786	027176	001014 				BNE	50$		;;; YES -- DON'T RESTART
   8787	027200				45$:
   8788	027200	032762 	000001 	000006 		BIT	#TT.OUT,STSW1(R2) ;;; ANY KIND OF OUTPUT PENDING??
   8789	027206	001010 				BNE	50$		;;; YES -- DON'T RESTART
   8790	027210	005762 	000002 			TST	TTYEXP(R2)	;;; [5.1004] DOES THE DEVICE EXIST??
   8791	027214	001415 				BEQ	70$		;;; [5.1004] NO -- ACCOUNT FOR SENDALL
   8792	027216					CALL	..STTY		;;; YES -- START SENDALL FOR THIS TTY
	027216	004737 	044726'			JSR	PC,..STTY
   8793	027222	052762 	001000 	000006 		BIS	#TT.SIP,STSW1(R2) ;;; MARK SENDALL IN PROGRESS
   8794	027230				50$:
   8795	027230	062702 	000010 			ADD	#8.,R2		;;; LOOK AT THE NEXT DH-11
   8796	027234	022702 	005046'			CMP	#TTYEND,R2	;;; [5.1004] DONE ALL DH-11'S??
   8797	027240	101344 				BHI	35$		;;; [5.1004] NO -- DO NEXT LINE
   8798	027242				55$:
   8799	027242	005037 	002626'			CLR	.CRSND		;;; YES -- CLEAR CURRENT SENDALL POINTER
   8803	027246					RETURN			;;; RETURN TO CALLER
	027246	000207 				RTS	PC
   8804						;
   8831
   8832	027250				70$:				;;; HERE TO PRETEND WE DID SENDALL ON LINE
   8833	027250	013701 	002604'			MOV	.SNDLP,R1	;;; GET POINTER TO CURRENT SENDALL + 1
   8834	027254	005301 				DEC	R1		;;; MAKE IT POINTER TO CURRENT
   8835	027256	042701 	177774 			BIC	#177774,R1	;;; WE ONLY WANT TWO BITS
   8836	027262	006301 				ASL	R1		;;; MAKE IT INTO A WORD INDEX
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 169-2
QUEUED PROTOCOL DRIVER -- SENDALL

   8837	027264	005361 	002616'			DEC	.SNDCN(R1)	;;; DECREMENT COUNT OF SENDALLS SENT
   8838	027270	003004 				BGT	80$		;;; IF SOME LEFT, DON'T FREE MESSAGE
   8839						;
   8840	027272				75$:
   8841	027272	005061 	002606'			CLR	.SNDBF(R1)	;;; INDICATE NONEXISTANT
   8842	027276					CALL	..DECN		;;; DEALLOCATE THE NODE
	027276	004737 	044546'			JSR	PC,..DECN
   8843	027302				80$:				;;; HERE TO FINISH DUMMY SENDALL
   8844	027302	062762 	040000 	000006 		ADD	#TT.SNI,STSW1(R2);;; BUMP INDEX TO NEXT SENDALL
   8845	027310	000747 				BR	50$		;;; AND DO THE NEXT LINE
   8846						;
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 170
QUEUED PROTOCOL DRIVER -- COPY BUFFER

   8848						.SBTTL	QUEUED PROTOCOL DRIVER -- COPY BUFFER
   8849
   8850					;
   8851					;	COPBUF -- ROUTINE TO COPY A TTY BUFFER AND CORRECT THE
   8852					;	ADDRESS OF THE BUFFER IN THE CURRENT ADDRESS POINTER
   8853					;
   8854					;	CALLING SEQUENCE:
   8855					;
   8856					;	R4 -- ADDRESS OF BUFFER TO BE COPIED
   8857					;
   8858					;	CALL	COPBUF
   8859					;
   8860					;	EXIT CONDITIONS:
   8861					;
   8862					;	R0 -- NEW BUFFER ADDRESS
   8863					;
   8864					;	REGISTERS ALTERED:
   8865					;
   8866					;	R1,R2,R5
   8867					;
   8868
   8869	027312				COPBUF::
   8870	027312	016401 	000002 			MOV	2(R4),R1	;;; SET UP THE BUFFER SIZE
   8871	027316					.ENBT			;;; [4.1.1035] ENABLE TASK SWITCHING
	027316	013746 	177776 			 MOV	@#PS,-(SP)
	027322	042737 	000340 	177776 		 BIC	#PRI7,@#PS
   8872	027330					CALL	..ALOW		; ALLOCATE A BUFFER
	027330	004737 	044706'			JSR	PC,..ALOW
   8873	027334					.INHT			; [4.1.1035] DISABLE TASK SWITCHING
	027334	012637 	177776 			 MOV	(SP)+,@#PS
   8874	027340	010405 				MOV	R4,R5		;;; SAVE R5 BUFFER POINTER
   8875	027342	010002 				MOV	R0,R2		;;; SAVE TTY BUFFER POINTER
   8876	027344	006201 				ASR	R1		;;; MAKE WORD INDEX
   8877	027346				10$:
   8878	027346	012522 				MOV	(R5)+,(R2)+	;;; COPY THE BUFFER
   8879	027350	077102 				SOB	R1,10$		;;; COPY UNTIL FINISHED
   8880	027352	010060 	000004 			MOV	R0,T.HCAD(R0)	;;; SET THE CURRENT ADDRESS
   8881	027356	062760 	000012 	000004 		ADD	#T.HHDS+2,T.HCAD(R0) ;;; CORRECT IT TO POINT TO BUFFER
   8882	027364					RETURN
	027364	000207 				RTS	PC
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 171
QUEUED PROTOCOL DRIVER -- MAP DH-11 TO DM-11

   8892						.SBTTL	QUEUED PROTOCOL DRIVER -- MAP DH-11 TO DM-11
   8893
   8894					;+
   8895					; FNDDM -- LOCAL SUBROUTINE TO MAP A DH-11 LINE TO A DM-11/BB
   8896					;
   8897					; INPUTS:
   8898					;
   8899					;	R5 -- POINTS TO DATA LINE SCANNER ENTRY FOR DH-11 LINE
   8900					;
   8901					; OUTPUTS:
   8902					;
   8903					;	R4 -- POINTS TO ASSOCIATED DM-11/BB CSR
   8904					;-
   8905
   8906	027366				FNDDM:
   8907	027366	010546 				MOV	R5,-(SP)	; [5.1004] SAVE R5
   8908	027370	012704 	002734'			MOV	#DMTBL,R4	; [5.1004] POINT TO THE DM-11/BB TABLE
   8909	027374	162705 	003046'			SUB	#DHTBL,R5	; [5.1004] GET OUR DISPLACMENT INTO "DHTBL"
   8910	027400				10$:
   8911	027400	162705 	000200 			SUB	#200,R5		; [5.1004] HAVE WE FOUND OUR DH-11??
   8912	027404	100402 				BMI	20$		; [5.1004] YES -- EXIT
   8913	027406	032424 				BIT	(R4)+,(R4)+	; [5.1004] NO -- TRY NEXT DM-11/BB
   8914	027410	000773 				BR	10$		; [5.1004] SO
   8915						;
   8916	027412				20$:
   8917	027412	012605 				MOV	(SP)+,R5	; [5.1004] RESTORE R5
   8918	027414	011404 				MOV	(R4),R4		; [5.1004] GET I/O PAGE ADDRESS OF DM-11/BB
   8919	027416					RETURN			; [5.1004] TO CALLER
	027416	000207 				RTS	PC
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 172
QUEUED PROTOCOL DRIVER -- FIND LINE SPEED

   8921						.SBTTL	QUEUED PROTOCOL DRIVER -- FIND LINE SPEED
   8922					;+
   8923					; FNDSPD -- FIND LINE SPEED
   8924					;
   8925					; THIS SUBROUTINE WILL MAP THE DECIMAL LINE SPEED IN R2 TO A DH-11 LINE SPEED MASK
   8926					;
   8927					; INPUTS:
   8928					;
   8929					;	R2 -- DECIMAL LINE SPEED
   8930					;
   8931					; OUTPUTS:
   8932					;
   8933					;	R3 -- DH-11 LINE SPEED MASK
   8934					;
   8935					;	IF A MATCH CANNOT BE FOUND, THE NODE IS DEALLOCATED AND CONTROL RETURNED
   8936					;	TO THE NEXT HIGHER LEVEL.
   8937					;-
   8938
   8939	027420				FNDSPD:
   8940	027420	012705 	024616'			MOV	#SPDTBL,R5	; FIND THE ADDRESS OF THE SPEED TABLE
   8941	027424	012701 	000016 			MOV	#SPDTBZ,R1	; SET UP THE TABLE SIZE
   8942	027430	005003 				CLR	R3		; SET UP COUNTER
   8943	027432				10$:
   8944	027432	020225 				CMP	R2,(R5)+	; COMPARE AGAINST TABLE
   8945	027434	001403 				BEQ	20$		; FOUND CORRECT ENTRY -- R3 IS CORRECT WHEN FOUND
   8946	027436	005203 				INC	R3		; UPDATE R3
   8947	027440	077104 				SOB	R1,10$		; TRY NEXT ENTRY
   8948	027442	000455 				BR	FDVNMF		; CAN'T FIND SPEED -- DEALLOCATE AND EXIT
   8949						;
   8950	027444				20$:
   8951	027444	000303 				SWAB	R3		; SET IN HIGH BYTE
   8952	027446					RETURN			; RETURN TO CALLER
	027446	000207 				RTS	PC
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 173
QUEUED PROTOCOL DRIVER -- FIND DEVICE NAME

   8954						.SBTTL	QUEUED PROTOCOL DRIVER -- FIND DEVICE NAME
   8955
   8956					;+
   8957					; FDVNMM -- FIND DEVICE NAME
   8958					;
   8959					; THIS SUBROUTINE WILL RETURN A POINTER TO A DEVICE TABLE ENTRY IN R2 IF THE
   8960					; DEVICE EXISTS IN THE SYSTEM.
   8961					;
   8962					; INPUTS:
   8963					;
   8964					;	R0 -- POINTS TO THE TO11Q PACKET
   8965					;	R4 -- POINTS TO THE TO11Q PACKET
   8966					;
   8967					; OUTPUTS:
   8968					;
   8969					;	R0 -- POINTS TO THE TO11Q PACKET
   8970					;	R1 -- POINTS TO THE DEVICE (PUD) TABLE FOR THIS DEVICE
   8971					;	R2 -- POINTS TO THE DRIVER TABLE ENTRY FOR THE DEVICE
   8972					;	R4 -- POINTS TO THE TO11Q PACKET
   8973					;
   8974					; NOTE:
   8975					;
   8976					; 	IF THE DEVICE DOES NOT EXIST, "FDVNMM" ACKNOWLEGES THE PACKET
   8977					;	AND IMMEDIATELY DEQUEUES IT WITHOUT RETURNING TO THE CALLING ROUTINE
   8978					;-
   8979
   8980						.ENABL	LSB
   8981
   8982	027450				FDVNMM:
   8983	027450	016001 	000006 			MOV	E.DV(R0),R1	;FIND DEVICE
   8984	027454	016003 	000010 			MOV	E.FW(R0),R3	;FIND FIRST WORD
   8985	027460	005046 				CLR	-(SP)		;SAVE ENTRY FLAG
   8986	027462	000402 				BR	10$
   8987						;
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 174
QUEUED PROTOCOL DRIVER -- FIND DEVICE NAME

   8989						.SBTTL	QUEUED PROTOCOL DRIVER -- FIND DEVICE NAME
   8990
   8991					;+
   8992					; FDVNM -- FIND DEVICE NAME
   8993					;
   8994					; THIS ROUTINE PERFORMS EXACTLY THE SAME THE SAME FUNCTION AS "FDVNMM",
   8995					; ABOVE, EXCEPT THAT IT WILL RETURN WITH CC-C SET IF THE DEVICE DOES NOT EXIST.
   8996					;
   8997					; INPUTS:
   8998					;
   8999					;	R0 -- POINTS TO THE TO11Q PACKET
   9000					;	R1 -- CONTAINS THE DEVICE CODE FOR THE DEVICE
   9001					;	R3 -- CONTAINS THE FIRST WORD FROM THE T011Q PACKET
   9002					;	R4 -- POINTS TO THE TO11Q PACKET
   9003					;
   9004					; OUTPUTS:
   9005					;
   9006					;	R0 -- POINTS TO THE TO11Q PACKET
   9007					;	R1 -- CONTAINS THE DEVICE (PUD) OFFSET + 20 FOR THIS DEVICE
   9008					;	R2 -- POINTS TO THE DRIVER TABLE ENTRY FOR THE DEVICE
   9009					;	R4 -- POINTS TO THE TO11Q PACKET
   9010					;
   9011					; NOTE:
   9012					;
   9013					; 	IF THE DEVICE DOES NOT EXIST, THE T011Q PACKET IS ACKNOWLEDGED
   9014					;	AND CC-C IS SET FOR THE RETURN.
   9015					;-
   9016
   9017	027464				FDVNM:
   9018	027464	012746 	177777 			MOV	#-1,-(SP)	; SAVE ENTRY FLAG
   9019	027470				10$:
   9020	027470	010546 				MOV	R5,-(SP)	; SAVE REGISTERS
   9021	027472	010446 				MOV	R4,-(SP)
   9022	027474	010146 				MOV	R1,-(SP)	; SAVE DEVICE
   9023	027476	006301 				ASL	R1		; FIND THE DEVICE ADDRESS
   9024	027500	006301 				ASL	R1
   9025	027502	006301 				ASL	R1
   9026	027504	006301 				ASL	R1
   9027	027506	116105 	010014'			MOVB	.DQPBA-20+Q.TS(R1),R5 ; FIND THE SIZE OF A TABLE ENTRY
   9028	027512	016102 	010012'			MOV	.DQPBA-20+Q.DA(R1),R2 ; FIND THE TABLE HEAD ADDRESS
   9029	027516	105003 				CLRB	R3		; FIND THE LINE NUMBER
   9030	027520	000303 				SWAB	R3		; PUT IT IN LOWER ORDER OF BYTE
   9031	027522	010346 				MOV	R3,-(SP)	; SAVE LINE NUMBER
   9032	027524	126103 	010030'			CMPB	.DQPBA-20+Q.DZ(R1),R3 ; IS THIS A LEGAL NUMBER?
   9033	027530	101425 				BLOS	80$		; NO -- IGNORE IT -- NOTE THIS SETS C BIT
   9034	027532				20$:
   9035	027532	005303 				DEC	R3		; ATTEMPT TO FIND THE ADDRESS OF THE HEAD OF THE LIST
   9036	027534	100402 				BMI	30$		; FOUND IT -- QUIT -- NOTE THIS SHOULD CLEAR C
   9037	027536	060502 				ADD	R5,R2		; MULTIPLY BY TABLE ENTRY SIZE
   9038	027540	000774 				BR	20$		; AND TRY AGAIN
   9039						;
   9040	027542				30$:
   9041	027542	026627 	000002 	000004 		CMP	2(SP),#D.CDLS	; [5.1004] TERMINAL DEVICE??
   9042	027550	101003 				BHI	40$		; [5.1004] NO -- GO ON - (NOTE: CC-C CLEAR)
   9043	027552	005762 	000002 			TST	TTYEXP(R2)	; [5.1004] YES -- DOES THE TERMINAL EXIST??
   9044	027556	001412 				BEQ	80$		; [5.1004] NO -- SAY THAT IT DOES NOT
   9045	027560				40$:
QPRDRV	-- QUEUED PROTOCOL DRIV	MACRO M1113  10-NOV-81 17:22  PAGE 174-1
QUEUED PROTOCOL DRIVER -- FIND DEVICE NAME

   9046	027560	032626 				BIT	(SP)+,(SP)+	; [5.1004] YES -- CLEAR STACK
   9047	027562				50$:
   9048	027562	012604 				MOV	(SP)+,R4
   9049	027564	012605 				MOV	(SP)+,R5	; RESTORE REGISTERS
   9050	027566	005226 				INC	(SP)+		; REMOVE THE ENTRY FLAG
   9051	027570	103001 				BCC	60$		; [5.1004] JUST EXIT IF CC-C IS CLEAR
   9052	027572	001001 				BNE	70$		; [5.1004] DEQUEUE IMMEDIATELY IF WE MUST
   9053	027574				60$:
   9054	027574					RETURN			; RETURN TO CALLER
	027574	000207 				RTS	PC
   9055					;
   9056					; HERE TO SIMPLY DEALLOCATE TO11Q PACKET AND RETURN TO TOP OF TASK
   9057					;
   9058	027576				FDVNMF:
   9059	027576				70$:
   9060	027576	005726 				TST	(SP)+		; FLUSH RETURN
   9061	027600	000137 	026654'			JMP	DEANOD		; DEALLOCATE AND START NEXT PACKET
   9062						;
   9063					;
   9064					; HERE TO ACKNOWLEDGE NON-EXISTENT DEVICE
   9065					;
   9066	027604				80$:
   9067	027604	012604 				MOV	(SP)+,R4	; SET LINE NUMBER
   9068	027606	012603 				MOV	(SP)+,R3	; SET DEVICE NAME
   9069	027610	012701 	000017 			MOV	#BC.SAK,R1	; ACKNOWLEDGE PACKET
   9070	027614					CALL	..STFC		; START FUNCTION
	027614	004737 	045456'			JSR	PC,..STFC
   9071	027620	000261 				SEC			; SET ERROR
   9072	027622	000757 				BR	50$		; AND RETURN
   9073						;
   9074
   9075						.DSABL	LSB
DTEDRV -- DTE-20 DRIVER FOR RSX	MACRO M1113  10-NOV-81 17:22  PAGE 175
QUEUED PROTOCOL DRIVER -- FIND DEVICE NAME

   9077						.TITLE	DTEDRV -- DTE-20 DRIVER FOR RSX-20F
   9078						.SBTTL	DTE-20 DRIVER -- COPYRIGHT STATEMENT
   9079	027624					IDENT$	14,31
						.IDENT	/014310/
   9080
   9081					;
   9082					;              	              COPYRIGHT (C) 1975, 1980 BY
   9083					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   9084					;
   9085					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   9086					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   9087					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   9088					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   9089					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   9090					;
   9091					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   9092					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   9093					;       CORPORATION.
   9094					;
   9095					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   9096					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   9097					;
   9098					;	MODULE:		DTE-20 DRIVER FOR RSX-20F
   9099					;
   9100					;	VERSION:	14-31
   9101					;
   9102					;	AUTHOR:		ROLAND BELANGER
   9103					;
   9104					;	DATE:		15-MAR-80
   9105					;
   9106					;	THIS MODULE CONTAINS:
   9107					;
   9108					;		1) DTE-20 INTERRUPT SERVICE
   9109					;		2) DEVICE DEPENDENT DTE-20 SERVICE
   9110					;		3) DEVICE DEPENDENT QUEUED PROTOCOL SERVICE
   9111					;
   9112					; THIS MODULE WAS SPLIT OUT OF "QPRDTE.MAC" AND REWRITTEN AS A PART OF
   9113					; TCO 4.1.1121
   9114					;
   9115					; TCO 4.1.1137	05-APR-80	R. BELANGER	LIMIT LENGTH OF TO-11 QUEUE
   9116					; TCO 5.1041	18-MAY-80	S. LEAPLINE	CHECK FREE POOL BYTES LEFT
   9117
   9118						.MCALL	CALL,RETURN,.CRASH,$DEF
   9119
   9120	027624					$DEF
DTEDRV -- DTE-20 DRIVER FOR RSX	MACRO M1113  10-NOV-81 17:22  PAGE 176
DTE-20 DRIVER -- DTE-20 INTERRUPT HEAD

   9122						.SBTTL	DTE-20 DRIVER -- DTE-20 INTERRUPT HEAD
   9123
   9124					;+
   9125					; .DTINT -- DTE-20 INTERRUPT HEAD
   9126					;
   9127					; THIS IS THE HEAD OF THE DTE-20 INTERRUPT SERVICE.  ALL DTE-20 INTERRUPTS ARE
   9128					; VECTORED HERE, AND ALL DTE-20 INTERRUPTS ARE DISMISSED FROM THIS ROUTINE.
   9129					;
   9130					; SINCE A DTE-20 CAN HAVE MULTIPLE INTERRUPTS PENDING, AN ATTEMPT TO DISMISS
   9131					; ANY GIVEN INTERRUPT FORCES A SCAN FOR ALL OTHER POSSIBLE INTERRUPTS BEFORE
   9132					; THE DISMISSAL IS GRANTED.
   9133					;
   9134					; INTERRUPTS SERVICED HERE ARE:
   9135					;
   9136					;	TO-10 TRANSFER DONE
   9137					;	TO-11 TRANSFER DONE
   9138					;	DOORBELL
   9139					;
   9140					; ERRORS HANDLED HERE ARE:
   9141					;
   9142					;	TO-10 DONE ERROR TERMINATION (TET)
   9143					;	PDP-11 MEMORY PARITY ERROR ON BYTE TRANSFER (TET)
   9144					;	TO-11 DONE ERROR TERMINATION (ETE)
   9145					;
   9146					; INPUTS:
   9147					;
   9148					;	NONE
   9149					;
   9150					; OUTPUTS:
   9151					;
   9152					;	NO REGISTERS ALTERED ON DISMISSAL
   9153					;
   9154					;	R0 -- POINTS TO DTE-20 ON SERVICE DISPATCH
   9155					;	R1 -- POINTS TO DTE-20 STATUS REGISTER ON SERVICE DISPATCH
   9156					;	R3 -- POINTS TO "PROTBL" ON SERVICE DISPATCH
   9157					;-
   9158
   9159
   9160	027624				.DTINT::
   9161	027624	010046 				MOV	R0,-(SP)	;;; SAVE REGISTERS
   9162	027626	010146 				MOV	R1,-(SP)
   9163	027630	010246 				MOV	R2,-(SP)
   9164	027632	010346 				MOV	R3,-(SP)
   9165	027634	010446 				MOV	R4,-(SP)
   9166	027636	010546 				MOV	R5,-(SP)
   9167	027640				INTLPS:
   9168	027640	013700 	001360'			MOV	.PRDTE,R0	;;; BASE ADDRESS OF PRIVILEGED DTE-20
   9169	027644	013703 	001354'			MOV	.PRADR,R3	;;; POINTER TO OUR PROCESSOR TABLE
   9170	027650	013701 	001356'			MOV	.PRSTA,R1	;;; COPY INTERRUPT FLAGS TO R1
   9171	027654	032711 	121000 			BIT	#TO10DN!TO10ER!MPE11,(R1) ;;; TO-10 DONE OR ERROR??
   9172	027660	100432 				BMI	.TENDN		;;; TO-10 DONE
   9173	027662	001403 				BEQ	10$		;;; NO ERRORS -- GO ON
   9174	027664					.CRASH	TET		;;; ERROR -- DIE!
	027664	000004 				IOT
	027666	   124 	   105 	   124 		.ASCIZ	/TET/
	027671	   000
   9175						;
DTEDRV -- DTE-20 DRIVER FOR RSX	MACRO M1113  10-NOV-81 17:22  PAGE 176-1
DTE-20 DRIVER -- DTE-20 INTERRUPT HEAD

   9176	027672				10$:
   9177	027672	132711 	000202 			BITB	#TO11DN!TO11ER,(R1) ;;; TO-11 DONE OR ERROR??
   9178	027676	100556 				BMI	.ELEDN		;;; TO-11 DONE
   9179	027700	001403 				BEQ	20$		;;; NO ERRORS -- GO ON
   9180	027702					.CRASH	ETE		;;; ERROR -- DIE AGAIN!
	027702	000004 				IOT
	027704	   105 	   124 	   105 		.ASCIZ	/ETE/
	027707	   000
   9181						;
   9182	027710				20$:
   9183	027710	032711 	004000 			BIT	#TO11DB,(R1)	;;; HOW ABOUT A DOORBELL??
   9184	027714	001404 				BEQ	DTEXIT		;;; NO -- DISMISS INTERRUPT
   9185	027716	005237 	001362'			INC	.PRDCT		;;; YES -- COUNT THE DOORBELL
   9186	027722	000137 	030540'			JMP	.DRBEL		;;; AND SERVICE IT
   9187						;
   9188	027726				DTEXIT:
   9189	027726	012605 				MOV	(SP)+,R5	;;; RESTORE THE REGISTERS
   9190	027730	012604 				MOV	(SP)+,R4
   9191	027732	012603 				MOV	(SP)+,R3
   9192	027734	012602 				MOV	(SP)+,R2
   9193	027736	012601 				MOV	(SP)+,R1
   9194	027740	012600 				MOV	(SP)+,R0
   9195	027742	000137 	014632'			JMP	..INTX		;;; COMMON INTERRUPT EXIT
   9196						;
DTEDRV -- DTE-20 DRIVER FOR RSX	MACRO M1113  10-NOV-81 17:22  PAGE 177
DTE-20 DRIVER -- TO-10 DONE SERVICE

   9198						.SBTTL	DTE-20 DRIVER -- TO-10 DONE SERVICE
   9199
   9200					;+
   9201					; .TENDN -- TO-10 DONE INTERRUPT SERVICE
   9202					;
   9203					; THIS IS THE TO-10 DONE INTERRUPT SERVICE.  FUNCTIONS PROVIDED HERE ARE:
   9204					;
   9205					;	TO-10 TRANSFER END CHECKS
   9206					;	TO-10 TRANSFER TERMINATION PROCESSING
   9207					;	TO-10 QUEUE NODE DELETION AND DEALLOCATION
   9208					;	TO-10 TRANSFER INITIATION (".STTNQ")
   9209					;	TO-10 INDIRECT TRANSFER CONTINUATION
   9210					;
   9211					; ERRORS HANDLED HERE ARE:
   9212					;
   9213					;	TO-10 TRANSFER END CHECK FAILURE (DTF)
   9214					;
   9215					; INPUTS:
   9216					;
   9217					;	R0 -- POINTS TO DTE-20
   9218					;	R1 -- POINTS TO DTE-20 STATUS REGISTER
   9219					;	R3 -- POINTS TO PROCESSOR TABLE ENTRY
   9220					;
   9221					; OUTPUTS:
   9222					;
   9223					;	NONE -- REGISTERS ARE NOT NECESSARILY PRESERVED
   9224					;-
   9225
   9226	027746				.TENDN::
   9227	027746	012711 	040000 			MOV	#DON10C,(R1)	;;; CLEAR THE TO-10 DONE FLAG
   9228	027752	013704 	001314'			MOV	TO10SZ,R4	;;; GET THE TRANSFER SIZE
   9229	027756	063704 	001316'			ADD	TO10AS,R4	;;; ADD THE STARTING ADDRESS TO IT
   9230	027762	020460 	000020 			CMP	R4,T10AD(R0)	;;; DID IT FINISH WHERE WE EXPECTED IT TO??
   9231	027766	001403 				BEQ	10$		;;; YES -- GO ON
   9232	027770					.CRASH	DTF		;;; NO -- DIE!
	027770	000004 				IOT
	027772	   104 	   124 	   106 		.ASCIZ	/DTF/
	027775	   000
   9233						;
   9234					;
   9235					; HERE TO FINISH UP A TO-10 TRANSFER
   9236					;
   9237	027776				10$:
   9238	027776	012737 	000001 	001316'		MOV	#1,TO10AS	;;; SAY WE EXPECT NO TRANSFER
   9239	030004	013704 	001326'			MOV	TO10Q,R4	;;; POINT TO THE TO-10 QUEUE
   9240	030010	005764 	000012 			TST	12(R4)		;;; CHECK TRANSFER TYPE
   9241	030014	100432 				BMI	STIND2		;;; INDIRECT HEADER -- START SECOND PART
   9242	030016	001010 				BNE	20$		;;; DIRECT FUNCTION -- FINISH IT UP
   9243					;
   9244					; HERE TO FINISH A TO-10 INDIRECT TRANSFER
   9245					;
   9246	030020	053777 	001266'	151242 		BIS	DTEMSK,@DTEADR	;;; SET ANY EVENT FLAGS
   9247	030026					CALL	..DSEV		;;; AND DECLARE A SIGNIFICANT EVENT
	030026	004737 	044026'			JSR	PC,..DSEV
   9248	030032	042737 	000006 	001322'		BIC	#TOIP!TOBM,STSTT+2 ;;; CLEAR INDIRECT IN PROGRESS
   9249					;
   9250					; HERE TO FINISH A DIRECT OR INDIRECT TRANSFER
DTEDRV -- DTE-20 DRIVER FOR RSX	MACRO M1113  10-NOV-81 17:22  PAGE 177-1
DTE-20 DRIVER -- TO-10 DONE SERVICE

   9251					;
   9252	030040				20$:
   9253	030040					CALL	..NDEL		;;; REMOVE THE NODE FROM THE TO-10 QUEUE
	030040	004737 	044062'			JSR	PC,..NDEL
   9254	030044	016401 	000004 			MOV	4(R4),R1	;;; FIND THE SIZE OF THE NODE TO RETURN
   9255	030050	010400 				MOV	R4,R0		;;; POINT TO THE NODE
   9256	030052					CALL	..DECB		;;; RETURN THE NODE
	030052	004737 	044552'			JSR	PC,..DECB
   9257	030056	105037 	001373'			CLRB	TOXQIP		;;; RESET THE TO-10 QUEUE IN PROGRESS FLAG
   9258	030062	013704 	001326'			MOV	TO10Q,R4	;;; POINT TO THE LISTHEAD
   9259	030066	022704 	001326'			CMP	#TO10Q,R4	;;; IS THE TO-10 QUEUE EMPTY??
   9260	030072	001662 				BEQ	INTLPS		;;; YES -- DONE WITH THIS INTERRUPT
   9261	030074					CALL	.STTNQ		;;; NO -- SEE IF ANOTHER NODE MAY BE STARTED
	030074	004737 	031362'			JSR	PC,.STTNQ
   9262	030100	000657 				BR	INTLPS		;;; AND EXIT
   9263						;
   9264					;
   9265					; HERE TO START SECOND HALF OF AN INDIRECT TRANSFER
   9266					;
   9267	030102				STIND2:
   9268	030102	005064 	000012 			CLR	12(R4)		;;; RESET INDIRECT PENDING SEMAPHORE
   9269					;
   9270					; HERE TO SET UP THE TRANSFER SIZE IN THE COMM REGION
   9271					;
   9272	030106	062704 	000020 			ADD	#20,R4		;;; POINT TO THE BYTE COUNT
   9273	030112	005060 	000006 			CLR	DXWD1(R0)	;;; LOAD UP THE TRANSFER SIZE
   9274	030116	005060 	000004 			CLR	DXWD2(R0)
   9275	030122	005005 				CLR	R5		;;; CLEAR R5
   9276	030124	152405 				BISB	(R4)+,R5	;;; GET THE TRANSFER SIZE
   9277	030126	105724 				TSTB	(R4)+		;;; ADVANCE TO NEXT WORD
   9278	030130	010537 	001314'			MOV	R5,TO10SZ	;;; SAVE THE BYTE COUNT FOR END CHECKS
   9279	030134	010560 	000002 			MOV	R5,DXWD3(R0)	;;; AND SET IT
   9280	030140	011437 	001316'			MOV	(R4),TO10AS	;;; SAVE THE START ADDRESS FOR END CHECKS
   9281	030144	012460 	000020 			MOV	(R4)+,T10AD(R0) ;;; SET UP THE SOURCE ADDRESS
   9282	030150	012705 	000003 			MOV	#QSIZE-FORPRO,R5 ;;; OFFSET FOR TRANSFER SIZE
   9283	030154	066305 	000004 			ADD	DMYN(R3),R5	;;; ADD IN COMM REGION OFFSET
   9284	030160	012760 	010000 	000010 		MOV	#DEP,TNAD1(R0)	;;; THIS IS A DEPOSIT
   9285	030166	010560 	000012 			MOV	R5,TNAD2(R0)	;;; THIS STARTS THE TRANSFER
   9286	030172					CALL	..WFED		;;; WAIT FOR IT TO COMPLETE
	030172	004737 	046216'			JSR	PC,..WFED
   9287					;
   9288					; HERE TO SEND OUR STATUS TO THE TEN
   9289					;
   9290	030176	052737 	000006 	001322'		BIS	#TOIP!TOBM,STSTT+2 ;;; SET INDIRECT IN PROGRESS AND BYTE MODE
   9291	030204	005060 	000036 			CLR	DAG3(R0)	;;; SET FRONT-END WORD MODE
   9292	030210					CALL	SNDSTS		;;; SEND STATUS TO THE TEN
	030210	004737 	031536'			JSR	PC,SNDSTS
   9293					;
   9294					; HERE TO SET UP FOR NORMAL INDIRECT TERMINATION
   9295					;
   9296	030214	012437 	001266'			MOV	(R4)+,DTEMSK	;;; FIND THE EVENT FLAGS
   9297	030220	011437 	001270'			MOV	(R4),DTEADR	;;; AND WHERE THEY BELONG
   9298	030224	012777 	000400 	151124 		MOV	#TO10DB,@.PRSTA	;;; RING HIS DOORBELL
   9299	030232	000602 				BR	INTLPS		;;; AND GO AWAY
   9300						;
DTEDRV -- DTE-20 DRIVER FOR RSX	MACRO M1113  10-NOV-81 17:22  PAGE 178
DTE-20 DRIVER -- TO-11 DONE SERVICE

   9302						.SBTTL	DTE-20 DRIVER -- TO-11 DONE SERVICE
   9303
   9304					;+
   9305					; .ELEDN -- TO-11 DONE SERVICE
   9306					;
   9307					; THIS IS THE TO-11 DONE SERVICE.  FUNCTIONS PROVIDED HERE ARE:
   9308					;
   9309					;	TO-11 TRANSFER END CHECKS
   9310					;	TO-11 QUEUE NODE ENTRY
   9311					;	TO-11 TRANSFER TERMINATION POCESSING
   9312					;	BASIC PROTOCOL ERROR PROCESSING
   9313					;
   9314					; ERRORS PROCESSED HERE ARE:
   9315					;
   9316					;	TO-11 TRANSFER TERMINATION ERROR (DTB)
   9317					;	ILLEGAL PROTOCOL DEVICE CODE (PT1)
   9318					;	ILLEGAL PROTOCOL FUNCTION CODE (PT2)
   9319					;
   9320					; INPUTS:
   9321					;
   9322					;	R0 -- POINTS TO DTE-20
   9323					;	R1 -- POINTS TO DTE-20 STATUS REGISTER
   9324					;	R3 -- POINTS TO PROCESSOR TABLE ENTRY
   9325					;
   9326					; OUTPUTS:
   9327					;
   9328					;	NONE -- REGISTERS ARE NOT NECESSARILY PRESERVED
   9329					;-
   9330
   9331	030234				.ELEDN::
   9332	030234	012711 	000100 			MOV	#DON11C,(R1)	;;; CLEAR TO-11 DONE FLAG
   9333	030240	013701 	001312'			MOV	TO11BS,R1	;;; GET OUR SAVED BYTE COUNT
   9334	030244	052701 	170000 			BIS	#170000,R1	;;; DO THE SIGN EXTENSION
   9335	030250	005401 				NEG	R1		;;; MAKE IT A POSITIVE INTEGER
   9336	030252	032737 	020000 	001312'		BIT	#TO11BM,TO11BS	;;; WERE WE IN BYTE MODE??
   9337	030260	001001 				BNE	10$		;;; YES -- GO ON
   9338	030262	006301 				ASL	R1		;;; NO -- MAKE IT A WORD COUNT
   9339	030264				10$:
   9340	030264	063701 	001310'			ADD	TO11AS,R1	;;; COMPUTE WHERE WE SHOULD HAVE FINISHED
   9341	030270	020160 	000022 			CMP	R1,T11AD(R0)	;;; ARE WE THERE??
   9342	030274	001406 				BEQ	20$		;;; YES -- GO ON
   9343	030276	016027 	000022 			MOV	T11AD(R0),(PC)+	;;; NO -- SAVE WHERE WE ARE FOR DUMP
   9344	030302	000000 				.WORD	0
   9345	030304					.CRASH	DTB		;;; AND DIE!
	030304	000004 				IOT
	030306	   104 	   124 	   102 		.ASCIZ	/DTB/
	030311	   000
   9346						;
   9347	030312				20$:
   9348	030312	000337 	001276'			SWAB	TO11FN		;;; SWAP THE BYTES
   9349	030316	001017 				BNE	FELXFR		;;; IN PROGRESS -- PROCESS IT
   9350					;
   9351					; HERE TO ENTER A NEW NODE IN THE TO-11 QUEUE
   9352					;
   9353	030320				ENTELQ:
   9354	030320	013701 	001272'			MOV	TO11NP,R1	;;; DONE -- POINT TO THE NEW NODE
   9355	030324	012704 	001334'			MOV	#TO11Q,R4	;;; POINT TO THE LISTHEAD
DTEDRV -- DTE-20 DRIVER FOR RSX	MACRO M1113  10-NOV-81 17:22  PAGE 178-1
DTE-20 DRIVER -- TO-11 DONE SERVICE

   9356	030330				10$:
   9357	030330	010402 				MOV	R4,R2		;;; SAVE CURRENT NODE POINTER
   9358	030332	011404 				MOV	(R4),R4		;;; FIND THE END OF THE QUEUE
   9359	030334	001375 				BNE	10$		;;; NOT YET -- KEEP GOING
   9360	030336	005011 				CLR	(R1)		;;; MARK NEW LIST TERMINATOR
   9361	030340	010112 				MOV	R1,(R2)		;;; AND LINK IN NEW NODE
   9362	030342	052737 	000100 	007132'		BIS	#EF.TED,DTETSK+A.EF ;;; WAKE UP THE QUEUED PROTOCOL DRIVER
   9363	030350					CALL	..DSEV		;;; SO
	030350	004737 	044026'			JSR	PC,..DSEV
   9364	030354	000462 				BR	TOITDN		;;; AND DONE...
   9365						;
   9366					;
   9367					; HERE TO FINISH A TO-11 DIRECT TRANSFER
   9368					;
   9369	030356				FELXFR:
   9370	030356	000337 	001274'			SWAB	TO11HD		;;; SWAP THE SIZE BYTES
   9371	030362	000337 	001300'			SWAB	TO11DV		;;; AND THE DEVICE CODE BYTES
   9372	030366	022737 	000010 	001300'		CMP	#.DQPSZ,TO11DV	;;; IS THE DEVICE CODE LEGAL??
   9373	030374	103003 				BHIS	10$		;;; YES -- GO ON
   9374	030376					.CRASH	PT1		;;; NO -- DIE!
	030376	000004 				IOT
	030400	   120 	   124 	   061 		.ASCIZ	/PT1/
	030403	   000
   9375						;
   9376	030404				10$:
   9377	030404	123727 	001276'	000040 		CMPB	TO11FN,#BC.FNM	;;; IS THIS A LEGAL FUNCTION??
   9378	030412	103403 				BLO	20$		;;; YES -- GO ON
   9379	030414					.CRASH	PT2		;;; NO -- DIE!
	030414	000004 				IOT
	030416	   120 	   124 	   062 		.ASCIZ	/PT2/
	030421	   000
   9380						;
   9381	030422				20$:
   9382	030422	005737 	001276'			TST	TO11FN		;;; INDIRECT IN PROGRESS??
   9383	030426	100007 				BPL	30$		;;; NO -- GO ON
   9384	030430	010046 				MOV	R0,-(SP)	;;; YES -- SAVE DTE-20 POINTER
   9385	030432	013700 	001272'			MOV	TO11NP,R0	;;; POINT TO PRE-ALLOCATED BUFFER
   9386	030436					CALL	..DECN		;;; AND GET RID OF IT
	030436	004737 	044546'			JSR	PC,..DECN
   9387	030442	012600 				MOV	(SP)+,R0	;;; RESTORE DTE-20 POINTER
   9388	030444	000426 				BR	TOITDN		;;; SET QUEUE IDLE STATE AND EXIT
   9389						;
   9390	030446				30$:
   9391	030446	013705 	001272'			MOV	TO11NP,R5	;;; GET THE NODE POINTER
   9392	030452					CALL	LODNOD		;;; AND LOAD IT UP
	030452	004737 	031712'			JSR	PC,LODNOD
   9393	030456	010502 				MOV	R5,R2		;;; SET UP THE ADDRESS IN CASE EXTENDED DIRECT
   9394	030460	005037 	001276'			CLR	TO11FN		;;; RELEASE FIXED BUFFER
   9395	030464	013701 	001274'			MOV	TO11HD,R1	;;; FIND THE BYTE COUNT
   9396	030470	162701 	000012 			SUB	#^D10,R1	;;; ARE WE FINISHED??
   9397	030474	001711 				BEQ	ENTELQ		;;; YES -- ENTER THE NODE IN THE QUEUE AND EXIT
   9398					;
   9399					; HERE FOR AN EXTENDED DIRECT TRANSFER
   9400					;
   9401	030476	160137 	001332'			SUB	R1,EQSZ		;;; NO -- ACCOUNT FOR THE HEADER
   9402	030502	005401 				NEG	R1		;;; NEGATE THE BYTE COUNT
   9403	030504	042701 	170000 			BIC	#^C7777,R1	;;; TRIM TO BYTE COUNT
DTEDRV -- DTE-20 DRIVER FOR RSX	MACRO M1113  10-NOV-81 17:22  PAGE 178-2
DTE-20 DRIVER -- TO-11 DONE SERVICE

   9404	030510	052701 	120000 			BIS	#TO11BM!IFLOP,R1 ;;; SET THE MODE FLAGS
   9405	030514					CALL	STBXFR		;;; START THE TRANSFER
	030514	004737 	031670'			JSR	PC,STBXFR
   9406	030520	000405 				BR	TEDXIT		;;; AND EXIT
   9407						;
   9408					;
   9409					; HERE TO RETURN DONE STATUS TO THE KL
   9410					;
   9411	030522				TOITDN:
   9412	030522	042737 	000001 	001322'		BIC	#TOIT,STSTT+2	;;; CLEAR PROCESSING QUEUE STATUS
   9413	030530					CALL	SNDSTS		;;; SEND THE STATUS
	030530	004737 	031536'			JSR	PC,SNDSTS
   9414	030534				TEDXIT:
   9415	030534	000137 	027640'			JMP	INTLPS		;;; CHECK OTHER DTE-20 STATUS AND DISMISS
   9416						;
DTEDRV -- DTE-20 DRIVER FOR RSX	MACRO M1113  10-NOV-81 17:22  PAGE 179
DTE-20 DRIVER -- DOORBELL SERVICE

   9418						.SBTTL	DTE-20 DRIVER -- DOORBELL SERVICE
   9419
   9420					;+
   9421					; .DRBEL -- DOORBELL SERVICE
   9422					;
   9423					; THIS IS THE DOORBELL SERVICE.  FUNCTIONS PROVIDED HERE ARE:
   9424					;
   9425					;	REQUESTED RELOAD SERVICE
   9426					;	POWERFAIL WARNING SERVICE
   9427					;	PROTOCOL PAUSE ENTRANCE SERVICE
   9428					;	TO-11 HEADER TRANSFER INITIATION
   9429					;	TO-11 INDIRECT TRANSFER CONTINUATION
   9430					;	DOORBELL ERROR PROCESSING
   9431					;
   9432					; ERRORS PROCESSED HERE ARE:
   9433					;
   9434					;	UNIMPLEMENTED DTE-20 PROTOCOL FUNCTION (UIE)
   9435					;	UNSYNCHRONIZED TO-11 INDIRECT TRANSFER (PT3)
   9436					;	UNSYNCHRONIZED HEADER TRANSFER (ILQ)
   9437					;	TO-11 TRANSFER TOO LARGE (PT4)
   9438					;
   9439					; INPUTS:
   9440					;
   9441					;	R0 -- POINTS TO DTE-20
   9442					;	R1 -- POINTS TO DTE-20 STATUS REGISTER
   9443					;	R3 -- POINTS TO PROCESSOR TABLE ENTRY
   9444					;
   9445					; OUTPUTS:
   9446					;
   9447					;	NONE -- REGISTERS ARE NOT NECESSARILY PRESERVED
   9448					;-
   9449
   9450	030540				.DRBEL::
   9451	030540	012711 	002000 			MOV	#INT11C,(R1)	;;; CLEAR RINGING DOORBELL
   9452	030544	005060 	000010 			CLR	TNAD1(R0)	;;; SET UP TO READ DOORBELL STATUS
   9453	030550	012702 	000002 			MOV	#STATUS-FORPRO,R2 ;;; POINT TO THE STATUS WORD
   9454	030554	066302 	000010 			ADD	EHSM(R3),R2	;;; IN HIS SECTION FOR ME
   9455	030560	010260 	000012 			MOV	R2,TNAD2(R0)	;;; START THE EXAMINE
   9456	030564					CALL	..WFED		;;; WAIT FOR IT TO FINISH
	030564	004737 	046216'			JSR	PC,..WFED
   9457	030570	103427 				BCS	DBLEPX		;;; EXIT IF ERROR
   9458	030572	012701 	001344'			MOV	#STATI+6,R1	;;; POINT TO BOTTOM OF STATUS BLOCK
   9459	030576	016041 	000002 			MOV	DXWD3(R0),-(R1)	;;; AND REVERSE-UNLOAD THE STATUS
   9460	030602	016041 	000004 			MOV	DXWD2(R0),-(R1)	;;; SO
   9461	030606	016041 	000006 			MOV	DXWD1(R0),-(R1)	;;; CHECK VALID EXAMINE
   9462	030612	001414 				BEQ	DBLEPP		;;; NOT THERE -- ENTER PROTOCOL PAUSE
   9463					;
   9464					; HERE TO CHECK FOR RELOAD AND POWERFAIL
   9465					;
   9466					;	R1 POINTS TO STATI
   9467					;
   9468	030614	032721 	000016 			BIT	#16,(R1)+	;;; IS THIS A RELOAD OR POWERFAIL??
   9469	030620	001433 				BEQ	DBLXFR		;;; NO -- SEE ABOUT HEADERS AND INDIRECTS
   9470	030622	032741 	000004 			BIT	#LOAD11,-(R1)	;;; YES -- IS IT A RELOAD??
   9471	030626	001012 				BNE	DBLRLD		;;; YES -- RELOAD HIM
   9472	030630	032711 	000010 			BIT	#KLPWRF,(R1)	;;; NO -- IS IT A POWERFAIL??
   9473	030634	001021 				BNE	DBLPWR		;;; YES -- SET UP TO TAKE IT
DTEDRV -- DTE-20 DRIVER FOR RSX	MACRO M1113  10-NOV-81 17:22  PAGE 179-1
DTE-20 DRIVER -- DOORBELL SERVICE

   9474	030636					.CRASH	UIE		;;; NO -- UNIMPLEMENTED FUNCTION
	030636	000004 				IOT
	030640	   125 	   111 	   105 		.ASCIZ	/UIE/
	030643	   000
   9475						;
   9476					;
   9477					; HERE TO ENTER PROTOCOL PAUSE
   9478					;
   9479	030644				DBLEPP:
   9480	030644					CALL	..DTP2		;;; START SECONDARY PROTOCOL
	030644	004737 	047006'			JSR	PC,..DTP2
   9481	030650				DBLEPX:
   9482	030650	000137 	027726'			JMP	DTEXIT		;;; AND DISMISS
   9483						;
   9484					;
   9485					; HERE TO INITIATE A KL RELOAD
   9486					;
   9487	030654				DBLRLD:
   9488	030654	052737 	000040 	001126'		BIS	#KS.TRR,.KLITK	;;; REQUEST THE RELOAD
   9489	030662	105237 	001122'			INCB	.NOERR		;;; MARK THAT AN ERROR IS BEING SERVICED
   9490	030666					CALL	..DTSP		;;; CLEAR ALL PROTOCOLS
	030666	004737 	046770'			JSR	PC,..DTSP
   9491	030672	105237 	001124'			INCB	.TKTN		;;; REQUEST NOTIFICATION
   9492	030676	000462 				BR	DBLDON		;;; AND EXIT
   9493						;
   9494					;
   9495					; HERE TO INITIALIZE FOR IMPENDING POWERFAIL
   9496					;
   9497	030700				DBLPWR:
   9498	030700	052737 	004000 	001012'		BIS	#EF.PFR,.COMEF+2 ;;; MARK THAT WE ANTICIPATE A POWERFAIL
   9499	030706	000463 				BR	DBLXIT		;;; EXIT -- NO STATUS REQUIRED
   9500						;
   9501					;
   9502					; HERE TO SEE IF THIS IS A HEADER TO PROCESS
   9503					;
   9504					;	R1 POINTS TO STATI+2
   9505					;
   9506	030710				DBLXFR:
   9507	030710	032721 	000002 			BIT	#TOIP,(R1)+	;;; IS THIS AN INDIRECT IN PROGRESS??
   9508	030714	001411 				BEQ	DBLHDR		;;; NO -- MUST BE A HEADER (DIRECT)
   9509	030716	005737 	001276'			TST	TO11FN		;;; DO WE BELIEVE THAT IT IS INDIRECT??
   9510	030722	100403 				BMI	10$		;;; YES -- GO ON
   9511	030724					.CRASH	PT3		;;; NO -- DIE!
	030724	000004 				IOT
	030726	   120 	   124 	   063 		.ASCIZ	/PT3/
	030731	   000
   9512						;
   9513					;
   9514					; HERE TO PROCESS SECOND HALF OF AN INDIRECT TRANSFER
   9515					;
   9516	030732				10$:
   9517	030732					CALL	.STELI		;;; START THE INDIRECT PART
	030732	004737 	031150'			JSR	PC,.STELI
   9518	030736	000447 				BR	DBLXIT		;;; AND EXIT
   9519						;
   9520					;
   9521					; HERE TO START A DIRECT (HEADER) TRANSFER
DTEDRV -- DTE-20 DRIVER FOR RSX	MACRO M1113  10-NOV-81 17:22  PAGE 179-2
DTE-20 DRIVER -- DOORBELL SERVICE

   9522					;
   9523					;	R1 POINTS TO STATI+4
   9524					;
   9525	030740				DBLHDR:
   9526	030740	121137 	001324'			CMPB	(R1),TO10QC	;;; IS THIS THE SAME NODE??
   9527	030744	001437 				BEQ	DBLDON		;;; YES -- SEND STATUS AND EXIT
   9528	030746	105237 	001324'			INCB	TO10QC		;;; NO -- UPDATE THE QUEUE COUNT
   9529	030752	121137 	001324'			CMPB	(R1),TO10QC	;;; IS IT NOW CORRECT??
   9530	030756	001403 				BEQ	10$		;;; YES -- GO ON
   9531	030760					.CRASH	ILQ		;;; NO -- DIE!
	030760	000004 				IOT
	030762	   111 	   114 	   121 		.ASCIZ	/ILQ/
	030765	   000
   9532						;
   9533	030766				10$:
   9534	030766	012702 	000003 			MOV	#QSIZE-FORPRO,R2 ;;; POINT TO THE QUEUE SIZE
   9535	030772	066302 	000010 			ADD	EHSM(R3),R2	;;; IN HIS GENERAL SECTION FOR ME
   9536	030776	005060 	000010 			CLR	TNAD1(R0)	;;; CLEAR THE DEPOSIT BIT
   9537	031002	010260 	000012 			MOV	R2,TNAD2(R0)	;;; SET THE ADDRESS AND START THE EXAMINE
   9538	031006					CALL	..WFED		;;; WAIT FOR IT TO COMPLETE
	031006	004737 	046216'			JSR	PC,..WFED
   9539	031012	016037 	000002 	001332'		MOV	DXWD3(R0),EQSZ	;;; READ THE DIRECT SIZE
   9540	031020	023727 	001332'	000144 		CMP	EQSZ,#^D100	;;; IS THE NODE OF A LEGAL SIZE??
   9541	031026	103403 				BLO	20$		;;; YES -- GO ON
   9542	031030					.CRASH	PT4		;;; NO -- DIE!
	031030	000004 				IOT
	031032	   120 	   124 	   064 		.ASCIZ	/PT4/
	031035	   000
   9543						;
   9544	031036				20$:
   9545	031036					CALL	.STELD		;;; ALLOCATE AND START THIS HEADER
	031036	004737 	031062'			JSR	PC,.STELD
   9546	031042	000405 				BR	DBLXIT		;;; AND EXIT
   9547						;
   9548	031044				DBLDON:
   9549	031044	052737 	000001 	001322'		BIS	#TOIT,STSTT+2	;;; SET PROCESSING QUEUE STATUS
   9550	031052					CALL	SNDSTS		;;; SEND THE STATUS
	031052	004737 	031536'			JSR	PC,SNDSTS
   9551	031056				DBLXIT:
   9552	031056	000137 	027640'			JMP	INTLPS		;;; AND EXIT
   9553						;
DTEDRV -- DTE-20 DRIVER FOR RSX	MACRO M1113  10-NOV-81 17:22  PAGE 180
DTE-20 DRIVER -- START TO ELEVEN DIRECT TRANSFER

   9555					.SBTTL	DTE-20 DRIVER -- START TO ELEVEN DIRECT TRANSFER
   9556
   9557					;+
   9558					; .STELD -- START TO ELEVEN DIRECT TRANSFER
   9559					;
   9560					; THIS SUBROUTINE WILL ATTEMPT TO START A DIRECT TRANSFER TO THE TO-11 QUEUE.
   9561					; IF THE ALLOCATION FOR THE NODE TO BE TRANSFERRED IS SUCCESSFUL, THE NODE
   9562					; IS STARTED IMMEDIATELY.  IF THE ALLOCATION IS UNSUCCESSFUL, THE NODE START
   9563					; IS DEFERRED UNTIL THE NEXT CALL TO THE CORE MANAGER ("..DECB", Q.V.).
   9564					; UNDER THESE CIRCUMSTANCES THE TO-11 QUEUE BLOCKED FLAG, ".DTBLK", IS SET TO
   9565					; THE RE-ENTRY ADDRESS (".STELD") TO MARK THE BLOCKING OF THE QUEUE.  THE
   9566					; TO-11 QUEUE BECOMES UNBLOCKED AFTER SPACE FOR THE NODE IS SUCESSFULLY
   9567					; ALLOCATED AND THE TRANSFER STARTED.
   9568					;
   9569					; TO PREVENT KEEP-ALIVE PROBLEMS, THE FRONT-END'S KEEP-ALIVE COUNT IS TRANSMITTED
   9570					; TO THE HOST ONCE PER 256 HEADERS ACCEPTED.
   9571					;
   9572					; INPUTS:
   9573					;
   9574					;	R0 -- POINTS TO DTE-20
   9575					;	R3 -- POINTS TO PROCESSOR TABLE
   9576					;	EQSZ -- SIZE OF NODE TO BE ALLOCATED (SEE NOTE BELOW)
   9577					;
   9578					; OUTPUTS:
   9579					;
   9580					;	R1, R2 ALTERED
   9581					;		".DTBLK" .NE. 0 IF TO-11 QUEUE IS BLOCKED
   9582					;		".DTBLK" .EQ. 0 IF TO-11 QUEUE TRANSFER IS IN PROGRESS
   9583					;
   9584					;	EXIT CONDITIONS ARE SET UP PER CONTENTS OF ".DTBLK"
   9585					;
   9586					; NOTE:
   9587					;
   9588					;	THIS ROUTINE MUST BE ENTERED WITH INTERRUPTS INHIBITTED
   9589					;
   9590					;	THIS ROUTINE ASSUMES THAT ALL TRANSFERS ARE DIRECT TRANSFERS, AND
   9591					;	THUS ATTEMPTS TO PRE-ALLOCATE BUFFER SPACE FOR IT.  IF THE TRANSFER
   9592					;	IS AN INDIRECT TRANSFER, THE PRE-ALLOCATED BUFFER IS DISCARDED BY THE
   9593					;	TO-11 DONE INTERRUPT SERVICE IN ANTICIPATION OF THE INDIRECT TRANSFER
   9594					;	START BY THE DOORBELL SERVICE.
   9595					;-
   9596
   9597	031062				.STELD::
   9598	031062	013701 	001332'			MOV	EQSZ,R1		;;; PICK UP THE TRANSFER SIZE
   9599	031066	132121 				BITB	(R1)+,(R1)+	;;; ADD IN OUR OVERHEAD
   9600	031070					CALL	GETBUF		;;; TRY TO GET A BUFFER
	031070	004737 	031612'			JSR	PC,GETBUF
   9601	031074	103004 				BCC	10$		;;; ALL OK IF CC-C IS CLEAR
   9602	031076	012737 	031062'	001374'		MOV	#.STELD,.DTBLK	;;; FAILED -- SET RE-ENTRY ADDRESS AS BLOCKED FLAG
   9603	031104	000507 				BR	STELIX		;;; AND EXIT
   9604						;
   9605	031106				10$:
   9606	031106	105737 	001324'			TSTB	TO10QC		;;; HAVE WE ACCEPTED 256. HEADERS??
   9607	031112	001002 				BNE	20$		;;; NO -- GO ON
   9608	031114					CALL	.KPALV		;;; YES -- SEND OUR KEEP-ALIVE COUNT
	031114	004737 	031326'			JSR	PC,.KPALV
   9609					;
DTEDRV -- DTE-20 DRIVER FOR RSX	MACRO M1113  10-NOV-81 17:22  PAGE 180-1
DTE-20 DRIVER -- START TO ELEVEN DIRECT TRANSFER

   9610					; HERE TO START THE NEXT NODE IN THE TO-11 QUEUE
   9611					;
   9612	031120				20$:
   9613	031120	005001 				CLR	R1		;;; ASSUME NO INTERRUPT WANTED
   9614	031122	162737 	000012 	001332'		SUB	#^D10,EQSZ	;;; DISCOUNT THE HEADER
   9615	031130	001002 				BNE	30$		;;; DON'T NEED AN INTERRUPT THIS TIME
   9616	031132	052701 	100000 			BIS	#IFLOP,R1	;;; MUST INTERRUPT IF COUNT GOES TO ZERO
   9617	031136				30$:
   9618	031136	012702 	001274'			MOV	#TO11HD,R2	;;; ADDRESS TO R2
   9619	031142	052701 	027766 			BIS	#<-^D10&7777>!TO11BM,R1 ;;; SET UP BYTE COUNT AND MODE
   9620	031146	000455 				BR	STELIG		;;; START THE TRANSFER AND EXIT
   9621						;
DTEDRV -- DTE-20 DRIVER FOR RSX	MACRO M1113  10-NOV-81 17:22  PAGE 181
DTE-20 DRIVER -- START TO ELEVEN INDIRECT TRANSFER

   9623						.SBTTL	DTE-20 DRIVER -- START TO ELEVEN INDIRECT TRANSFER
   9624
   9625					;+
   9626					; .STELI -- START TO ELEVEN INDIRECT TRANSFER
   9627					;
   9628					; THIS SUBROUTINE WILL ALLOCATE BUFFER SPACE FOR AND START A TO-11 INDIRECT
   9629					; TRANSFER.  IF THE ALLOCATION IS SUCCSSFUL, THE TRANSFER IS IN PROGRESS UPON
   9630					; EXIT FROM THIS ROUTINE.
   9631					;
   9632					; IF THE ALLOCATION IS UNSUCCESSFUL, THE TRANSFER IS DECLARED BLOCKED AND THE
   9633					; RESTART ADDRESS (".STELI") IS STORED AS THE BLOCKED FLAG.
   9634					;
   9635					; INPUTS:
   9636					;
   9637					;	R0 -- POINTS TO DTE-20
   9638					;	R3 -- POINTS TO PROCESSOR TABLE
   9639					;
   9640					; OUTPUTS:
   9641					;
   9642					;	R1, R2 ALTERED
   9643					;		".DTBLK" .NE. 0 IF TRANSFER IS BLOCKED
   9644					;		".DTBLK" .EQ. 0 IF TRANSFER IS IN PROGRESS
   9645					;
   9646					;	EXIT CONDITIONS ARE SET UP PER CONTENTS OF ".DTBLK"
   9647					;
   9648					; NOTE:
   9649					;
   9650					;	THIS ROUTINE MUST BE ENTERED WITH INTERRUPTS INHIBITTED
   9651					;-
   9652
   9653	031150				.STELI::
   9654	031150	012702 	000003 			MOV	#QSIZE-FORPRO,R2 ;;; POINT TO THE SIZE WORD
   9655	031154	066302 	000010 			ADD	EHSM(R3),R2	;;; ADD IN WINDOW OFFSET
   9656	031160	005060 	000010 			CLR	TNAD1(R0)	;;; CLEAR DEPOSIT
   9657	031164	010260 	000012 			MOV	R2,TNAD2(R0)	;;; START THE EXAMINE
   9658	031170					CALL	..WFED		;;; WAIT FOR THE EXAMINE TO COMPLETE
	031170	004737 	046216'			JSR	PC,..WFED
   9659	031174	016001 	000002 			MOV	DXWD3(R0),R1	;;; PICK UP THE INDIRECT SIZE
   9660	031200	062701 	000012 			ADD	#12,R1		;;; ADD IN SPACE FOR HEADER
   9661	031204					CALL	GETBUF		;;; GET A BUFFER FOR THE MESSAGE
	031204	004737 	031612'			JSR	PC,GETBUF
   9662	031210	103004 				BCC	20$		;;; ALL OK IF CC-C IS CLEAR
   9663	031212	012737 	031150'	001374'		MOV	#.STELI,.DTBLK	;;; SET THE RETRY ADDRESS AS FLAG
   9664	031220	000441 				BR	STELIX		;;; AND EXIT
   9665						;
   9666	031222				20$:
   9667	031222	010546 				MOV	R5,-(SP)	;;; SAVE R5
   9668	031224	013705 	001272'			MOV	TO11NP,R5	;;; GET THE NODE POINTER
   9669	031230					CALL	LODNOD		;;; GET THE HEADER OUT OF THE FIXED BUFFER
	031230	004737 	031712'			JSR	PC,LODNOD
   9670	031234	010502 				MOV	R5,R2		;;; SET UP TRANSFER ADDRESS
   9671	031236	012605 				MOV	(SP)+,R5	;;; RESTORE R5
   9672	031240	016001 	000002 			MOV	DXWD3(R0),R1	;;; GET THE TRANSFER COUNT
   9673	031244	005401 				NEG	R1		;;; CONVERT TO A BYTE COUNT
   9674	031246	042701 	170000 			BIC	#^C7777,R1	;;; SO
   9675	031252	106001 				RORB	R1		;;; NOW TO A WORD COUNT --
   9676									;;; NOTE: >> THIS ASSUMES CC-C SET BY "NEG R1"
DTEDRV -- DTE-20 DRIVER FOR RSX	MACRO M1113  10-NOV-81 17:22  PAGE 181-1
DTE-20 DRIVER -- START TO ELEVEN INDIRECT TRANSFER

   9677	031254	032737 	000004 	001340'		BIT	#TOBM,STATI+2	;;; ARE WE IN WORD MODE??
   9678	031262	001003 				BNE	30$		;;; NO -- GO ON
   9679	031264	106101 				ROLB	R1		;;; YES -- RESTORE TO BYTE COUNT
   9680									;;; NOTE: >> SEE PREVIOUS NOTE
   9681	031266	052701 	020000 			BIS	#TO11BM,R1	;;; SET BYTE MODE
   9682	031272				30$:
   9683	031272	052701 	100000 			BIS	#IFLOP,R1	;;; INTERRUPT BOTH CPU'S WHEN DONE
   9684	031276	005037 	001276'			CLR	TO11FN		;;; RELEASE FIXED BUFFER
   9685	031302				STELIG:
   9686	031302					CALL	STBXFR		;;; START THE TRANSFER
	031302	004737 	031670'			JSR	PC,STBXFR
   9687	031306	052737 	000001 	001322'		BIS	#TOIT,STSTT+2	;;; SET QUEUE IN PROGRESS STATUS
   9688	031314					CALL	SNDSTS		;;; SEND THE STATUS
	031314	004737 	031536'			JSR	PC,SNDSTS
   9689	031320	005037 	001374'			CLR	.DTBLK		;;; CLEAR QUEUE BLOCKED FLAG (SETS CC-Z)
   9690	031324				STELIX:
   9691	031324					RETURN			;;; TO CALLER
	031324	000207 				RTS	PC
DTEDRV -- DTE-20 DRIVER FOR RSX	MACRO M1113  10-NOV-81 17:22  PAGE 182
DTE-20 DRIVER -- UPDATE AND TRANSMIT FRONT-END KEEP-ALIVE COUN

   9693						.SBTTL	DTE-20 DRIVER -- UPDATE AND TRANSMIT FRONT-END KEEP-ALIVE COUNT
   9694
   9695					;+
   9696					; .KPALV -- UPDATE AND TRANSMIT FRONT-END KEEP-ALIVE COUNT
   9697					;
   9698					; THIS SUBROUTINE WILL UPDATE AND TRANSMIT THE FRONT-END KEEP-ALIVE COUNT.
   9699					; THE KEEP-ALIVE IS DONE HERE, "BY HAND", TO AVOID PROBLEMS ASSOCIATED WITH
   9700					; CALLING AN EMT FROM INTERRUPT LEVEL.
   9701					;
   9702					; INPUTS:
   9703					;
   9704					;	R0 -- POINTS TO THE DTE-20
   9705					;
   9706					; OUTPUTS:
   9707					;
   9708					;	NONE.
   9709					;
   9710					; NOTES:
   9711					;
   9712					;	THIS SUBROUTINE SHOULD ONLY BE CALLED AT PRI6 OR HIGHER
   9713					;	THIS SUBROUTINE EXITS THROUGH "..WFED", Q.V.
   9714					;-
   9715
   9716	031326				.KPALV::
   9717	031326	005237 	001406'			INC	KPAL1		;;; BUMP THE KEEP-ALIVE COUNT
   9718	031332	010001 				MOV	R0,R1		;;; COPY DTE-20 POINTER TO R1
   9719	031334	005021 				CLR	(R1)+		;;; CLEAR AND GET OVER DELAY COUNTER
   9720	031336	013721 	001406'			MOV	KPAL1,(R1)+	;;; SET DOWN THE KEEP-ALIVE COUNT
   9721	031342	005021 				CLR	(R1)+		;;; CLEAR REST OF WORD
   9722	031344	005021 				CLR	(R1)+		;;; SO
   9723	031346	012721 	010000 			MOV	#DEP,(R1)+	;;; SET UP DEPOSIT
   9724	031352	012711 	000005 			MOV	#PSWW1,(R1)	;;; SET ADDRESS AND START DEPOSIT
   9725	031356	000137 	046216'			JMP	..WFED		;;; WAIT FOR COMPLETION AND EXIT
   9726						;
DTEDRV -- DTE-20 DRIVER FOR RSX	MACRO M1113  10-NOV-81 17:22  PAGE 183
DTE-20 DRIVER -- START TO TEN QUEUE

   9728						.SBTTL	DTE-20 DRIVER -- START TO TEN QUEUE
   9729
   9730					;+
   9731					; .STTNQ -- SUBROUTINE TO CONDITIONALLY START NEXT TO TEN QUEUE NODE
   9732					; .STTNF -- SUBROUTINE TO START NEXT TO-10 QUEUE NODE
   9733					;
   9734					; THESE SUBROUTINES WILL START THE NEXT NODE IN THE TO-10 QUEUE.  ".STTNQ"
   9735					; WILL START A NODE IF AND ONLY IF THE TO11Q IS EMPTY.  IF THIS IS NOT
   9736					; THE CASE, THE TO-10 QUEUE NODE START WILL BE DEFERRED TO WHEN THE
   9737					; NEXT TO-11 QUEUE NODE HAS FINISHED.  ".STTNF" WILL START THE NEXT
   9738					; TO-10 QUEUE NODE IF THE CURRENT TO-10 QUEUE NODE IS FINISHED.
   9739					;
   9740					; INPUTS:
   9741					;
   9742					;	R4 -- POINTS TO-10 QUEUE NODE TO BE STARTED
   9743					;
   9744					; OUTPUTS:
   9745					;
   9746					;	NO REGISTERS ALTERED
   9747					;
   9748					; NOTES:
   9749					;
   9750					;	THIS ROUTINE MUST BE ENTERED WITH INTERRUPTS INHIBITTED
   9751					;-
   9752
   9753						.ENABL	LSB
   9754
   9755	031362				.STTNQ::
   9756	031362	005737 	001334'			TST	TO11Q		;;; ANYTHING IN THE TO-11 QUEUE??
   9757	031366	001110 				BNE	20$		;;; YES -- WAIT FOR TO-11 QUEUE NODE TO FINISH
   9758	031370				.STTNF::
   9759	031370	105737 	001373'			TSTB	TOXQIP		;;; NO -- IS THERE A TO-10 QUEUE NODE IN PROGRESS??
   9760	031374	001105 				BNE	20$		;;; YES -- EXIT
   9761	031376	010546 				MOV	R5,-(SP)	;;; NO -- SAVE REGISTERS
   9762	031400	010346 				MOV	R3,-(SP)
   9763	031402	010046 				MOV	R0,-(SP)	;;; SO
   9764	031404	013700 	001360'			MOV	.PRDTE,R0	;;; SET UP ADDRESS OF DTE-20
   9765	031410	013703 	001354'			MOV	.PRADR,R3	;;; POINT TO THE PROCESSOR TABLE
   9766	031414	005060 	000006 			CLR	DXWD1(R0)	;;; SET UP THE TRANSFER
   9767	031420	005060 	000004 			CLR	DXWD2(R0)	;;; SO
   9768	031424	010405 				MOV	R4,R5		;;; SAVE THE NODE ADDRESS
   9769	031426	062705 	000006 			ADD	#6,R5		;;; MOVE OVER LISTHEAD AND NODE SIZE
   9770	031432	011537 	001314'			MOV	@R5,TO10SZ	;;; SAVE THE TRANSFER SIZE FOR END CHECKS
   9771	031436	012560 	000002 			MOV	(R5)+,DXWD3(R0)	;;; SET THE TRANSFER SIZE IN MY AREA TO HIM
   9772	031442	010560 	000020 			MOV	R5,T10AD(R0)	;;; SET UP THE TO-10 ADDRESS
   9773	031446	010537 	001316'			MOV	R5,TO10AS	;;; SAVE THE ADDRESS FOR END CHECKS
   9774	031452	012760 	000001 	000036 		MOV	#1,DAG3(R0)	;;; SET BYTE MODE
   9775	031460	016305 	000004 			MOV	DMYN(R3),R5	;;; FIND THE OFFSET INTO MY AREA
   9776	031464	062705 	000003 			ADD	#QSIZE-FORPRO,R5 ;;; POINT TO THE PROPER ITEM
   9777	031470	012760 	010000 	000010 		MOV	#DEP,TNAD1(R0)	;;; SET UP TO DO DEPOSIT
   9778	031476	010560 	000012 			MOV	R5,TNAD2(R0)	;;; START THE DEPOSIT
   9779	031502					CALL	..WFED		;;; WAIT FOR IT TO COMPLETE
	031502	004737 	046216'			JSR	PC,..WFED
   9780	031506	105237 	001325'			INCB	TO11QC		;;; INCREMENT THE QUEUE COUNT
   9781	031512					CALL	SNDSTS		;;; SEND THE STATUS TO THE KL10
	031512	004737 	031536'			JSR	PC,SNDSTS
   9782	031516	012777 	000400 	147632 		MOV	#TO10DB,@.PRSTA	;;; RING HIS DOORBELL
DTEDRV -- DTE-20 DRIVER FOR RSX	MACRO M1113  10-NOV-81 17:22  PAGE 183-1
DTE-20 DRIVER -- START TO TEN QUEUE

   9783	031524	105237 	001373'			INCB	TOXQIP		;;; INTERLOCK THIS NODE
   9784	031530	012600 				MOV	(SP)+,R0	;;; RESTORE R0
   9785	031532	012603 				MOV	(SP)+,R3	;;; RESTORE R3
   9786	031534	000424 				BR	10$		;;; AND EXIT
   9787						;
DTEDRV -- DTE-20 DRIVER FOR RSX	MACRO M1113  10-NOV-81 17:22  PAGE 184
DTE-20 DRIVER -- SEND STATUS TO TEN

   9789						.SBTTL	DTE-20 DRIVER -- SEND STATUS TO TEN
   9790
   9791					;+
   9792					; SNDSTS -- SEND STATUS TO THE KL10
   9793					;
   9794					; THIS SUBROUTINE WILL SEND THE STATUS IN "STSTT" TO THE KL10
   9795					;
   9796					; INPUTS:
   9797					;
   9798					;	R0 -- POINTS TO DTE-20
   9799					;	R3 -- POINTS TO TABLE OF COMM REGION OFFSETS ("PROTBL")
   9800					;
   9801					; OUTPUTS:
   9802					;
   9803					;	NO REGISTERS ALTERED
   9804					;-
   9805
   9806	031536				SNDSTS:
   9807	031536	010546 				MOV	R5,-(SP)	;;; SAVE R5
   9808	031540	012705 	001320'			MOV	#STSTT,R5	;;; POINT TO THE STATUS
   9809	031544	012560 	000006 			MOV	(R5)+,DXWD1(R0)	;;; LOAD UP THE TO-10 STATUS
   9810	031550	012560 	000004 			MOV	(R5)+,DXWD2(R0)
   9811	031554	011560 	000002 			MOV	(R5),DXWD3(R0)	;;; SO
   9812	031560	012705 	000002 			MOV	#STATUS-FORPRO,R5 ;;; POINT TO PROPER ITEM
   9813	031564	066305 	000004 			ADD	DMYN(R3),R5	;;; ADD COMM REGION OFFSET
   9814	031570	012760 	010000 	000010 		MOV	#DEP,TNAD1(R0)	;;; THIS IS A DEPOSIT
   9815	031576	010560 	000012 			MOV	R5,TNAD2(R0)	;;; START THE TRANSFER
   9816	031602					CALL	..WFED		;;; WAIT FOR COMPLETION
	031602	004737 	046216'			JSR	PC,..WFED
   9817	031606				10$:
   9818	031606	012605 				MOV	(SP)+,R5	;;; RESTORE R5
   9819	031610				20$:
   9820	031610					RETURN			;;; AND EXIT
	031610	000207 				RTS	PC
   9821
   9822						.DSABL	LSB
DTEDRV -- DTE-20 DRIVER FOR RSX	MACRO M1113  10-NOV-81 17:22  PAGE 185
DTE-20 DRIVER -- GET A BUFFER FOR INCOMING TRANSFER

   9824						.SBTTL	DTE-20 DRIVER -- GET A BUFFER FOR INCOMING TRANSFER
   9825
   9826					;+
   9827					; GETBUF -- GET A BUFFER FOR INCOMING TRANSFER
   9828					;
   9829					; THIS SUBROUTINE WILL GET A BUFFER FOR A TO-11 TRANSFER.  IF THE ALLOCATION
   9830					; FAILS, OR THE CURRENT TO-11 QUEUE EXCEEDS THE MAXIMUM ALLOWABLE LENGTH, OR
   9831					; THE FREE-POOL IS BELOW THE MINIMUM THRESHOLD (".OBFLO"), THE ERROR
   9832					; (CC-C SET) RETURN IS TAKEN, WHICH SHOULD CAUSE THE TRANSFER TO BLOCK.
   9833					;
   9834					; INPUTS:
   9835					;
   9836					;	R1 -- SIZE OF BUFFER TO BE ALLOCATED
   9837					;
   9838					; OUTPUTS:
   9839					;
   9840					;	R1 -- SIZE OF BUFFER ALLOCATED
   9841					;	BUFFER POINTER IN "TO11NP"
   9842					;	CC-C CLEAR
   9843					;
   9844					;	CC-C SET IF ALLOCATION FAILS OR IF TO-11 QUEUE IS TOO LONG
   9845					;-
   9846		001200 				.OBFLO==1200		;;; [5.1041] AMOUNT OF FREE POOL BYTES
   9847									;;;		TO LEAVE
   9848
   9849	031612				GETBUF:
   9850	031612	010046 				MOV	R0,-(SP)	;;; SAVE R0
   9851	031614	012700 	001334'			MOV	#TO11Q,R0	;;; [4.1.1137] POINT TO TO-11 QUEUE LISTHEAD
   9852	031620	005046 				CLR	-(SP)		;;; [4.1.1137] CLEAR A COUNTER ON THE STACK
   9853	031622				10$:
   9854	031622	005216 				INC	(SP)		;;; [4.1.1137] COUNT A NODE
   9855	031624	011000 				MOV	(R0),R0		;;; [4.1.1137] MOVE OVER THE NODE
   9856	031626	001375 				BNE	10$		;;; [4.1.1137] TILL DONE
   9857					;
   9858					; NOTE --
   9859					;
   9860					;	IF ANY OF THE FOLLOWING TESTS FAIL, THIS ROUTINE MUST BE
   9861					;	EXITED WITH CC-C SET!
   9862					;
   9863	031630	022726 	000022 			CMP	#22,(SP)+	;;; [4.1.1137] CHECK QUEUE LENGTH
   9864	031634	103413 				BCS	20$		;;; [4.1.1137] TOO LONG -- EXIT (NOTE: CC-C SET)
   9865	031636	023727 	001422'	001200 		CMP	.FREPL+2,#.OBFLO ;;; [5.1041] LEAVE SOME POOL SPACE
   9866	031644	103407 				BCS	20$		;;; [5.1041] EXIT IF NOT ENOUGH LEFT (NOTE: CC-C SET)
   9867	031646					CALL	..ALCB		;;; ALL OK SO FAR -- ALLOCATE THE BUFFER
	031646	004737 	044416'			JSR	PC,..ALCB
   9868	031652	103404 				BCS	20$		;;; ALLOCATION FAILED (NOTE: CC-C SET)
   9869	031654	010160 	000002 			MOV	R1,T.HBCT(R0)	;;; SET THE NODE SIZE
   9870	031660	010037 	001272'			MOV	R0,TO11NP	;;; SAVE THE POINTER
   9871	031664				20$:
   9872	031664	012600 				MOV	(SP)+,R0	;;; RESTORE R0
   9873	031666					RETURN			;;; TO CALLER
	031666	000207 				RTS	PC
DTEDRV -- DTE-20 DRIVER FOR RSX	MACRO M1113  10-NOV-81 17:22  PAGE 186
DTE-20 DRIVER -- START BYTE TRANSFER

   9875						.SBTTL	DTE-20 DRIVER -- START BYTE TRANSFER
   9876
   9877					;+
   9878					; STBXFR -- START A TO-11 BYTE TRANSFER
   9879					;
   9880					; THIS SUBROUTINE WILL START A TO-11 BYTE TRANSFER AND SAVE THE ADDRESS
   9881					; AND BYTE COUNT FOR END CHECKS
   9882					;
   9883					; INPUTS:
   9884					;
   9885					;	R0 -- POINTS TO THE DTE-20
   9886					;	R1 -- BYTE COUNT FOR TRANSFER
   9887					;	R2 -- ADDRESS FOR TRANSFER
   9888					;
   9889					; OUTPUTS:
   9890					;
   9891					;	NO REGISTERS ALTERED
   9892					;-
   9893
   9894	031670				STBXFR:
   9895	031670	010137 	001312'			MOV	R1,TO11BS	;;; SAVE THE BYTE COUNT
   9896	031674	010237 	001310'			MOV	R2,TO11AS	;;; AND THE ADDRESS
   9897	031700	010260 	000022 			MOV	R2,T11AD(R0)	;;; SET THE ADDRESS
   9898	031704	010160 	000016 			MOV	R1,T11BC(R0)	;;; SET THE BYTE COUNT AND START TRANSFER
   9899	031710					RETURN			;;; TO CALLER
	031710	000207 				RTS	PC
DTEDRV -- DTE-20 DRIVER FOR RSX	MACRO M1113  10-NOV-81 17:22  PAGE 187
DTE-20 DRIVER -- LOAD TO-11 QUEUE NODE

   9901						.SBTTL	DTE-20 DRIVER -- LOAD TO-11 QUEUE NODE
   9902
   9903					;+
   9904					; LODNOD -- LOAD A TO-11 QUEUE NODE
   9905					;
   9906					; THIS SUBROUTINE WILL LOAD A TO-11 QUEUE DIRECT PACKET OR INDIRECT HEADER
   9907					; FROM A FIXED BUFFER ("TO11HD") IN LOW CORE
   9908					;
   9909					; INPUTS:
   9910					;
   9911					;	R5 -- POINTS TO HEAD OF NODE TO BE LOADED
   9912					;
   9913					; OUTPUTS:
   9914					;
   9915					;	R5 -- POINTS TO CURRENT BUFFER POSITION
   9916					;-
   9917
   9918	031712				LODNOD:
   9919	031712	032525 				BIT	(R5)+,(R5)+	;;; GET OVER THE LINK AND SIZE
   9920	031714	113725 	001276'			MOVB	TO11FN,(R5)+	;;; SET DOWN THE FUNCTION (E.FN+0)
   9921	031720	113725 	001274'			MOVB	TO11HD,(R5)+	;;; AND THE TRANSFER SIZE (E.FN+1)
   9922	031724	013725 	001300'			MOV	TO11DV,(R5)+	;;; AND THE DEVICE CODE (E.DV)
   9923	031730	013725 	001304'			MOV	TO11FW,(R5)+	;;; AND THE FIRST WORD (E.FW)
   9924	031734					RETURN			;;; TO CALLER
	031734	000207 				RTS	PC
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 188
DTE-20 DRIVER -- LOAD TO-11 QUEUE NODE

   9926						.TITLE	TTYDRR	- GENERAL TERMINAL HANDLER
   9927						.SBTTL	TERMINAL DRIVER -- COPYRIGHT STATEMENT
   9928	031736					IDENT$	14,45
						.IDENT	/014450/
   9929					;
   9930					;                             COPYRIGHT (C) 1975, 1978 BY
   9931					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
   9932					;
   9933					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   9934					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   9935					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
   9936					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
   9937					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
   9938					;
   9939					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
   9940					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
   9941					;       CORPORATION.
   9942					;
   9943					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   9944					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
   9945					;
   9946					;	VERSION 14-45
   9947					;
   9948					;	R. MC LEAN
   9949					;	07-APR-75
   9950					;
   9951					; TERMINAL DRIVER FOR DL-11W AND DL-11E LINE INTERFACES AND DH-11 LINE MULTIPLEX
   9952					;
   9953					; MODIFICATIONS:
   9954					;
   9955					;	NO.	DATE		PROGRAMMER	PURPOSE
   9956					;	---	----		----------	-------
   9957					;	001	08-NOV-76	K. RETI		ADD SUPPRESS SEND-ALL
   9958					;				R. BELANGER	CODE.
   9959					;	002	16-NOV-76	R. BELANGER	FIX TYPO IN EDIT 001
   9960					;	003	16-NOV-76	T. PORCHER	ADD CODE TO ALLOW CTY
   9961					;				R. BELANGER	TO BE MOVED
   9962					;	004	29-NOV-76	A. PECKHAM	RELOCATED ACKAL FOR LPT
   9963					;	005	03-FEB-77	R. BELANGER	ADDED GENERALIZED DL-11E
   9964					;						SERVICE AND NEW KLINIK
   9965					;						HOOKS AND HANDLES
   9966					;	006	07-MAR-77	A. PECKHAM	CLEAN UP "TT.OUT" MANAGEMENT
   9967					;	007	01-JUL-77	R. BELANGER	FIX BUG IN INTERNAL I/O INITIALIZATION
   9968					;	008	14-JUL-77	R. BELANGER	ADD AUTO-BAUD SUPPORT
   9969					;	009	10-AUG-77	R. BELANGER	FIX DL-11E INPUT TO IGNORE
   9970					;						CHARACTERS WITH FRAMING ERRORS
   9971					;						(DN-20 RUNNING OPEN ON POWERFAIL)
   9972					;	010	02-SEP-77	R. BELANGER	XON/XOFF BUG FIX
   9973					;	011	06-SEP-77	R. BELANGER	SHORTEN TIMEOUT COUNT TO 4 SECONDS
   9974					;	012	28-OCT-77	R. BELANGER	IGNORE DH-11 CHARACTERS WITH FRMING ERRORS
   9975					;	013	02-NOV-77	R. BELANGER	FIX LONG SENDALLS
   9976					;  TCO 4.2054	20-OCT-78	R. BELANGER	FIX BUG IN DH-11 ERROR LOGGING
   9977					;  TCO 4.2055	20-OCT-78	R. BELANGER	ADD DETACH ON RING FEATURE
   9978					;						FIX BUGS IN MODEM CONTROL
   9979					;  TCO 4.2095	30-NOV-78	R. BELANGER	ELIMINATE DH-11 POLLING ON CLOCK
   9980					;						SET DH-11 SILO ALARM TO 0
   9981					;  TCO 4.2096	30-NOV-78	R. BELANGER	FIX OUTPUT INTERRUPT SERVICE
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 188-1
TERMINAL DRIVER -- COPYRIGHT STATEMENT

   9982					;						TO ELIMINATE XOFF/XON RACE CONDITION
   9983					;  TCO 4.2103	04-DEC-78	R. BELANGER	ADD AUTO-BAUD CAPABILITY TO
   9984					;						1200 BAUD
   9985					;  TCO 4.2105	04-DEC-78	R. BELANGER	IGNORE RING INTERRUPTS IF
   9986					;						NOT IN PRIMARY PROTOCOL
   9987					;  TCO 4.2107	06-DEC-78	R. BELANGER	NEW KEEP-ALIVE ERROR RECOVERY
   9988					;  TCO 4.2140	02-JAN-78	R. BELANGER	INHIBIT REQUEST FOR "SETSPD"
   9989					;						FROM AUTO-BAUD DISCONNECT WHEN
   9990					;						PRIMARY PROTOCOL IS NOT RUNNING
   9991					;  TCO 4.2181	01-FEB-79	R. BELANGER	ADD INTERNAL XOFF PROCESSING
   9992					;  TCO 4.2205	08-MAR-79	R. BELANGER	ADD CODE TO SHUT OFF LINES AFTER
   9993					;						4 CONSECUTIVE FRAMING ERRORS,
   9994					;						LOG THE LINE SHUTDOWN,
   9995					;						AND TO REENABLE THEM ON TIMEOUT
   9996					;						REMOVE REFERENCE TO "TT.ECH"
   9997					;  TCO 4.2206	08-MAR-79	R. BELANGER	MODIFY DM-11/BB TIMEOUT TO
   9998					;						ALWAYS MAINTAIN INTERRUPT ENABLE
   9999					;  TCO 4.2211	12-MAR-79	R. BELANGER	ALLOW RSX20F TO ACCEPT TERMINAL
  10000					;				K. LEFEBVRE	INPUT WHILE IN PROTOCOL PAUSE
  10001					;						UNTIL FREE-POOL IS EXHAUSTED,
  10002					;						THEN CRASH (B01).
  10003					;  TCO 4.2244	05-APR-79	R. BELANGER	FIX DH-11 SILO LOCKUP ON LOCAL XOFF
  10004					;  TCO 4.2245	10-APR-79	R. BELANGER	ADD ERROR LOGGING FOR DH-11 FRAMING ERROR
  10005					;  TCO 4.2246	16-MAY-79	R. BELANGER	ELIMINATE RACE CONDITION IN SENDALLS
  10006					;  TCO 4.2247	29-MAY-79	R. BELANGER	FIX PDP-11 I/O DONE PROCESSING
  10007					;  TCO 4.2264	30-MAY-79	R. BELANGER	RESET AUTO-BAUD LINE SPEED TO 300
  10008					;						BAUD ON CARRIER LOSS.
  10009					;  TCO 4.2284	14-JUN-79	R. BELANGER	FIX CARRIER PROCESSING IN MODEM
  10010					;						CONTROL; SUPERCEDES TCO 4.2264.
  10011					;  TCO 4.2309	25-JUN-79	R. BELANGER	ADD BELL 212A MODEM SUPPORT.
  10012					;  TCO 4.2333	16-JUL-79	R. BELANGER	REJECT CHARACTERS FROM LINES WHICH
  10013					;						ARE IN CARRIER WAIT.
  10014					;  TCO 5.1004	12-SEP-79	R. BELANGER	ADD NON-CONTIGUOUS DEVICE SUPPORT
  10015					;  TCO 5.1007	10-OCT-79	R. BELANGER	ADD ERROR LOGGING FOR DL-11'S AND DM-11/BB'S
  10016					;  TCO 5.1008	11-OCT-79	R. BELANGER	ADD EBUS AND DEX ERROR LOGGING
  10017					;  TCO 5.1009	15-OCT-79	R. BELANGER	ADD RH-11 ERROR LOGGING
  10018					;  TCO 5.1015	25-OCT-79	R. BELANGER	ADD NEW TERMINAL INPUT CONTROL
  10019					;  TCO 5.1016	01-NOV-79	R. BELANGER	ADD BREAK-THROUGH WRITE
  10020					;  TCO 5.1017	01-NOV-79	R. BELANGER	DEFER ACKS IF FREE-POOL LOW
  10021					; TCO 4.1.1035	16-NOV-79	R. BELANGER	ADD QUEUE ARBITRATION MECHANISM
  10022					; TCO 4.1.1066	10-JAN-80	R. BELANGER	DEFER ACKS IN ROUND-ROBIN FASHION
  10023					; TCO 4.1.1088	12-FEB-80	R. BELANGER	FIX AUTO-BAUD NOISE PROBLEM
  10024					; TCO 4.1.1089	12-FEB-80	R. BELANGER	ALLOW FULL DUMP OF DH-11 SILOS
  10025					; TCO 4.1.1091	12-FEB-80	R. BELANGER	FIX MISSING DM-11BB PROBLEM
  10026					; TCO 4.1.1092	25-FEB-80	R. BELANGER	LOCAL INPUT CONTROL
  10027					; TCO 4.1.1104	05-MAR-80	R. BELANGER	CHANGE KEEP-ALIVE
  10028					; TCO 4.1.1105	11-MAR-80	R. BELANGER	CHANGE "EF.PR1" RECOGNITION
  10029					; TCO 4.1.1121	19-MAR-80	R. BELANGER	DON'T DO KEEP-ALIVE IF DTE-20
  10030					;						IS BLOCKED
  10031					; TCO 4.1.1126	27-MAR-80	R. BELANGER	REMOVE SUPPORT FOR OLD-STYLE
  10032					;						<ESCAPE> CODES 175 AND 176
  10033					; TCO 4.1.1137	05-APR-80	R. BELANGER	REMOVE DEFERRED ACK SUPPORT
  10034					; TCO 5.1056	02-JUN-80	S. LEAPLINE	REMOVE CHECK FOR DTR IF NO CARRIER
  10035					; TCO 5.1099	08-JUL-80	S. LEAPLINE	DELAY EITHER 2 CHARACTERS OR
  10036					;						2 CLOCK TICKS BEFORE SETTING
  10037					;						INPUT SPEED TO 0
  10038					; TCO 5.1131	13-AUG-80	S. LEAPLINE	CORRECT TEST FOR RING IN DMINT
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 188-2
TERMINAL DRIVER -- COPYRIGHT STATEMENT

  10039					; RCO 9380	03-SEP-80	S. LEAPLINE	IGNORE RINGS FOR LOCAL LINES
  10040					; TCO 5.1149	17-SEP-80	S. LEAPLINE	CHECK FOR PARSER REQUEST ON CTY OUTPUT DONE
  10041					; TCO 5.1152	24-SEP-80	S. LEAPLINE	RESET ABW LINES CORRECTLY
  10042					; TCO 5.1246	26-JAN-81	S. LEAPLINE	ALLOW CTY AND KLINIK TO RUN AT
  10043					;						SPLIT SPEEDS
  10044					; TCO 5.1247	26-JAN-81	S. LEAPLINE	FIX BUG IN TERMINAL SHUTOFF CODE
  10045					; TCO 5.1248	26-JAN-81	S. LEAPLINE	REMOVE SAVE OF R0 IN XOFF/XON
  10046					; RCO 32681	26-MAR-81	S. LEAPLINE	ADD "BELL" TO OUTPUT IF NO
  10047					;						BUFFER SPACE AVAILABLE
  10048					; TCO 5.1011	25-AUG-81	S. LEAPLINE	CHECK FOR ERROR WHEN REQUESTING SETSPD
  10049					; TCO 5.1565	12-OCT-81	S. LEAPLINE	ACK CTY IF KLINIK IS IN USER MODE
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 189
TERMINAL DRIVER -- DEFINITIONS

  10051						.SBTTL	TERMINAL DRIVER -- DEFINITIONS
  10052
  10053					;
  10054					; MACRO LIBRARY CALLS
  10055					;
  10056						.MCALL	.STKM,WTLO$,CLEF$,CALL,RETURN,WSIG$S,.INH5,.ENB5,.INH6,.ENB6
  10057						.MCALL	DIR$,RQST$,EHSG$,$DEF,.CRASH
  10058	031736					$DEF
  10059					;
  10060					; EQUATED SYMBOLS
  10061					;
  10062					; TERMINAL CONTROL BLOCK OFFSET DEFINITIONS
  10063					;
  10064					; FOR USE ONLY WITH CTY
  10065					;
  10066		000000 				STATS=0			; TERMINAL STATUS WORD (MUST BE ZERO)
  10067		000002 				STRBF=2			; CURRENT BUFFER ADDRESS (INPUT)
  10068		000004 				RMBYT=4			; REMAINING BYTES IN BUFFER (INPUT)
  10069		000005 				FNBYT=5			; TERMINAL BYTE (INPUT)
  10070		000006 				CURBF=6			; STARTING BUFFER ADDRESS (INPUT)
  10071		000010 				MECNT=10		; MULTI-ECHO BYTE COUNT
  10072		000011 				FLBYT=11		; FILL BYTE
  10073		000012 				MEBUF=12		; MULTI-ECHO BUFFER ADDRESS
  10074		000014 				MBUFR=14		; DYNAMIC MULTI-ECHO BUFFER
  10075		000016 				HORPS=16		; HORIZONTAL POSITION OF CARRIAGE
  10076		000020 				DHBUF=20		; DH-11 CHARACTER BUFFER
  10077					;
  10078					; TERMINAL STATUS WORD BIT DEFINITIONS
  10079					;
  10080		100000 				MODE=100000		; MODE OF BUSY TERMINAL (0=INPUT 1=OUTPUT)
  10081		074000 				LFCT=074000		; UNPROCESSED LINE FEED COUNT FIELD
  10082		004000 				LFBT=004000		; UNPROCESSED LINE FEED ADD/SUB BIT
  10083		002000 				CRTY=002000		; CARRIAGE CONTROL AT END OF LINE (1=YES)
  10084		001000 				CRJT=001000		; CARRIAGE RETURN JUST TYPED (1=YES)
  10085		000400 				EOLS=000400		; END OF LINE SEEN (1=YES)
  10086		000040 				CTLO=000040		; OUTPUT DISABLED (1=YES)
  10087		000020 				RUBP=000020		; RUBOUT SEQUENCE IN PROGRESS (1=YES)
  10088		000017 				FLCT=000017		; UNPROCESSED FILL COUNT FIELD
  10089		000001 				FLBT=000001		; UNPROCESSED FILL COUNT BIT
  10090					;
  10091					; TERMINAL STATUS OFFSETS FOR ALL TTY'S
  10092					;
  10093		000000 				THRED==0		; OUTPUT THREAD WORD POINTER (MUST BE ZERO)
  10094		000002 				TTYEXP==2		; EXTERNAL PAGE ADDRESS
  10095		000004 				STSW0==4		; STATUS WORD 0 (SAME AS DH-11 LINE STATUS WORD)
  10096									; HOLDS AUTO-BAUD REQUEST IN BIT 15
  10097									; HOLDS CONNECTED BIT IN BIT 14
  10098									; HOLDS LINE SPEED FOR DH-11'S
  10099									; HOLDS INPUT BLOCK FLAG FOR DL-11'S IN LOW BYTE
  10100		000006 				STSW1==6		; STATUS WORD 1 -- SPECIFIC CHARACTERISTICS
  10101					;
  10102					;	STSW0 DEFINITIONS
  10103					;
  10104		100000 				S0.ABR==100000		; [4.2284] AUTO-BAUD REPORT PENDING
  10105		040000 				S0.CON==040000		; [4.2284] REMOTE LINE IS CONNECTED
  10106		001700 				S0.ISP==001700		; [4.2205] INPUT SPEED FIELD MASK
  10107		036000 				S0.OSP==036000		; [4.2205] OUTPUT SPEED FIELD MASK
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 189-1
TERMINAL DRIVER -- DEFINITIONS

  10108		140000 				S0.MSK==S0.ABR!S0.CON	; [4.2284] BIT MASK FOR "SETSPD" TASK
  10109		037700 				S0.SPD==S0.OSP!S0.ISP	; [4.2205] TERMINAL SPEED MASK
  10110					;
  10111					;	STSW1 BIT DEFINITIONS
  10112					;
  10113					;	HIGH BYTE
  10114					;
  10115		140000 				TT.SND==140000		; INDEX OF NEXT SEND-ALL TO DO FOR THIS LINE
  10116		040000 				TT.SNI==040000		; TO INCREMENT SEND-ALL INDEX
  10117									; [4.2205] NOTE: THE NEXT THREE BITS MUST REMAIN
  10118									; [4.2205]       CONTIGUOUS AND IN THE SAME ORDER!!
  10119		020000 				TT.RSI==020000		; [4.2205] RESTART TERMINAL INPUT ON TIMEOUT
  10120		014000 				TT.FEC==014000		; [4.2205] FRAMING ERROR COUNT FIELD
  10121					;
  10122		004000 				TT.FEI==004000		; [4.2205] TO INCREMENT FRAMING ERROR COUNT
  10123		002000 				TT.RIP==002000		; TTY REMOTE IN PROGRESS
  10124		001000 				TT.SIP==001000		; TTY SENDALL IN PROGRESS
  10125		000400 				TT.NSA==000400		; SUPPRESS SENDALLS
  10126					;
  10127					;	LOW BYTE
  10128					;
  10129		000200 				TT.XOF==000200		; TTY IS X'D OFF (WAS "TT.BSY")
  10130									; !!! MUST BE SIGN BIT OF LOW BYTE !!!!
  10131		000100 				TT.RMT==000100		; REMOTE FLAG
  10132		000040 				TT.ABL==000040		; AUTO-BAUD LINE
  10133		000020 				TT.XEN==000020		; [4.2181] XON/XOFF ENABLED ON THIS LINE
  10134		000010 				TT.ABW==000010		; LINE IS IN AUTO-BAUD WAIT
  10135		000004 				TT.CRW==000004		; WAITING FOR CARRIER FLAG
  10136		000002 				TT.CTY==000002		; TTY IS A CONSOLE TTY
  10137		000001 				TT.OUT==000001		; TTY OUTPUT FLAG
  10138					;
  10139					;	STSW2 DEFINITIONS
  10140					;
  10141		100000 				S2.DDN==BIT15		; [5.1015] INPUT IS X'D OFF
  10142		040000 				S2.DIP==BIT14		; [5.1015] INPUT XOFF SEQUENCE IS IN PROGRESS
  10143		020000 				S2.DIS==BIT13		; [5.1015] DEFERRED INPUT XOFF REQUEST
  10144		010000 				S2.ENB==BIT12		; [5.1015] DEFRRRED INPUT XON REQUEST
  10145		004000 				S2.LCL==BIT11		; [5.1015] INPUT XOFF LOCAL REQUEST
  10146		002000 				S2.RES==BIT10		; [4.1.1137] RESERVED FOR EXTENSION
  10147		001000 				S2.SSZ==BIT9		; [5.1015] SET INPUT SPEED TO ZERO
  10148		001400 				S2.CNT==BIT8!BIT9	; [5.1015] WAIT COUNT FIELD
  10149					;
  10150		000377 				S2.CHR==377		; [5.1016] LOW BYTE HOLDS DEFERRED BREAK-THROUGH WRITE CHARACTER
  10151					;
  10152					;	THREAD ENTRIES ARE IN THE FOLLOWING FORMAT
  10153					;
  10154		000000 				T.HRED==0		; THREAD WORD (MUST BE ZERO)
  10155		000002 				T.HBCT==2		; BYTE COUNT OF THIS BUFFER
  10156		000004 				T.HCAD==4		; CURRENT ADDRESS OF THIS POINTER
  10157		000006 				T.HCBC==6		; CURRENT BYTE COUNT OF CARS LEFT IN BUFFER
  10158		000007 				T.HFCN==7		; FUNCTION CODE
  10159		000010 				T.HHDS==10		; SIZE OF THIS HEADER
  10160					;
  10161					;	DL-11E RCSR BITS
  10162					;
  10163		100000 				DL.DSC==BIT15		; DL-11E DATASET STATUS CHANGE
  10164		040000 				DL.RNG==BIT14		; DL-11E RING INDICATOR
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 189-2
TERMINAL DRIVER -- DEFINITIONS

  10165		020000 				DL.CTS==BIT13		; DL-11E CLEAR TO SEND
  10166		010000 				DL.CAR==BIT12		; DL-11E CARRIER DETECT
  10167		004000 				DL.RAC==BIT11		; DL-11E RECIEVER ACTIVE
  10168		002000 				DL.SRD==BIT10		; DL-11E SECONDARY RECIEVED DATA
  10169		000200 				DL.RDN==BIT7		; DL-11E RECIVER DONE
  10170		000100 				DL.REN==BIT6		; DL-11E RECIEVER INTERRUPT ENABLE
  10171		000040 				DL.DEN==BIT5		; DL-11E DATASET INTERRUPT ENABLE
  10172		000010 				DL.STD==BIT3		; DL-11E SECONDARY TRANSMITTED DATA
  10173		000004 				DL.RTS==BIT2		; DL-11E REQUEST TO SEND
  10174		000002 				DL.DTR==BIT1		; DL-11E DATA TERMINAL READY
  10175		000001 				DL.RDE==BIT0		; DL-11E READER ENABLE
  10176		001420 				DL.UNA==BIT9!BIT8!BIT4	; DL-11E UNASSIGNED
  10177					;
  10178					;	DL-11E RBUF BITS
  10179					;
  10180		020000 				DL.FER==BIT13		; DL-11 FRAMING ERROR
  10181					;
  10182					;	DL-11E XCSR BITS
  10183					;
  10184		000100 				DL.XEN==BIT6		; DL-11E XMTR ENABLE
  10185					;
  10186					;	DH-11 NRCR BITS
  10187					;
  10188		020000 				DH.FER==BIT13		; DH-11 FRAMING ERROR
  10189					;
  10190					; SPECIAL CHARACTER DEFINITIONS
  10191					;
  10192		000011 				C.HTAB==11		; HORIZONTAL TAB CHARACTER
  10193		000012 				C.HLFD==12		; LINE FEED CHARACTER
  10194		000013 				C.HVTB==13		; VERTICAL TAB CHARACTER
  10195		000014 				C.HFFD==14		; FORM FEED CHARACTER
  10196		000015 				C.HCRT==15		; CARRIARGE RETURN CHARACTER
  10197		000021 				C.HXON==21		; XON CHARACTER
  10198		000023 				C.HXOF==23		; XOFF CHARACTER
  10199		000032 				C.HEOF==32		; END-OF-FILE CHARACTER
  10200		000033 				C.HESC==33		; ESCAPE CHARACTER
  10201		000033 				C.HALT==C.HESC		; ALIAS ALT-MODE
  10202		000040 				C.HSPC==40		; SPACE CHARACTER
  10203		000200 				C.HPAR==200		; PARITY BIT
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 190
TERMINAL DRIVER -- DEFINITIONS

  10205	031736				TTYHD::
  10206	031736					.STKM	0,0,0,0,0,0,0,TTINI,174000,TTYSP
	032004	000000 	000000 	000000 		.WORD	0,0,0,0
	032012	000000
	032032	174000 	032404'	032216'		.WORD	174000,TTINI,TTYSP
	032066	000005 				.WORD	5
	032070	010232'				.WORD	TTPEN
	032072	000000 				.WORD	0
	032074	000000 				.WORD	0
	032076	000000 				.WORD	0
	032100	000000 				.WORD	0
	032102	000000 				.WORD	0
	032104	000000 				.WORD	0
	032106	000000 				.WORD	0
	032110	000000 				.WORD	0
	032112	000000 				.WORD	0
	032114	000000 				.WORD	0
	032216	000000 				.WORD	0
	032220	000000 				.WORD	0
	032222	000000 				.WORD	0
	032224	000000 				.WORD	0
	032226	000000 				.WORD	0
	032230	000000 				.WORD	0
	032232	032404'				.WORD	TTINI
	032234	174000 				.WORD	174000
  10207					;
  10208					; LOCAL DATA
  10209					;
  10210					;
  10211					; CONTROL OUTPUT MESSAGES
  10212					;
  10213	032236				CTRLC:
  10214	032236	   136 	   103 	   015 		.ASCII	/^C/<15><12>
	032241	   012
  10215	032242				CTRLU:
  10216	032242	   136 	   125 	   015 		.ASCII	/^U/<15><12>
	032245	   012
  10217	032246				CTRLZ:
  10218	032246	   136 	   132 	   015 		.ASCII	/^Z/<15><12>
	032251	   012
  10219
  10220	032252				TTWLO:
  10221	032252					WTLO$	1,EF.NIR!EF.IOD!EF.TMO!EF.RQM!EF.RKR!EF.RKH!EF.RSS
	032252	   053 	   003 			.BYTE	43.,3
	032254	000001 				.WORD	1
	032256	007330 				.WORD	EF.NIR!EF.IOD!EF.TMO!EF.RQM!EF.RKR!EF.RKH!EF.RSS
  10222	032260				EXKAL:
  10223	032260					EHSG$	0,PSWW1,KPAL0
	032260	002411 				.WORD	400*5.+DR.DTE
	032262	000010 				.WORD	DF.EHG
	032264	000005 				.WORD	PSWW1
	032266	001376'				.WORD	KPAL0
	032270	000000 				.WORD	0
  10224	032272				RQMCR:
  10225	032272					RQST$	PARSER,,249.
	032272	   013 	   007 			.BYTE	11.,7
	032274	062072 	073632 			.RAD50	/PARSER/
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 190-1
TERMINAL DRIVER -- DEFINITIONS

	032300	000000 	000000 			.WORD	0,0
	032304	000371 				.WORD	249.
	032306	   000 	   000 			.BYTE	,
  10226	032310				RQKLR:
  10227	032310					RQST$	KLRING,,10
	032310	   013 	   007 			.BYTE	11.,7
	032312	043262 	035167 			.RAD50	/KLRING/
	032316	000000 	000000 			.WORD	0,0
	032322	000010 				.WORD	10
	032324	   000 	   000 			.BYTE	,
  10228	032326				RQKLD:
  10229	032326					RQST$	KLDISC,,10
	032326	   013 	   007 			.BYTE	11.,7
	032330	043244 	035473 			.RAD50	/KLDISC/
	032334	000000 	000000 			.WORD	0,0
	032340	000010 				.WORD	10
	032342	   000 	   000 			.BYTE	,
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 191
TERMINAL DRIVER -- DEFINITIONS

  10231					;
  10232					;	AUTO-BAUD TABLES
  10233					;
  10234	032344				CHTBL:
  10235	032344	   214 				.BYTE	214		; <CR> AT 110 BAUD
  10236	032345	   234 				.BYTE	234		; <CR> AT 110 BAUD
  10237	032346	   346 				.BYTE	346		; <CR> AT 150 BAUD
  10238	032347	   015 				.BYTE	15		; <CR> AT 300 BAUD
  10239	032350	   215 				.BYTE	215		; <CR> AT 300 BAUD
  10240	032351	   174 				.BYTE	174		; <^C> AT 110 BAUD
  10241	032352	   036 				.BYTE	36		; <^C> AT 150 BAUD
  10242	032353	   203 				.BYTE	203		; <^C> AT 300 BAUD
  10243	032354	   003 				.BYTE	3		; <^C> AT 300 BAUD
  10244	032355	   376 				.BYTE	376		; [4.2103] <ANYTHING> AT 1200 BAUD
  10245	032356	   377 				.BYTE	377		; [4.2103] <ANYTHING> AT 1200 BAUD
  10246
  10247		000013 				CHTBLN= .-CHTBL
  10248					.EVEN
  10249
  10250	032360				IDXTB:
  10251	032360	   000 				.BYTE	0		; [4.2103] INDEX FOR 110 BAUD
  10252	032361	   000 				.BYTE	0		; [4.2103] INDEX FOR 110 BAUD
  10253	032362	   002 				.BYTE	2		; [4.2103] INDEX FOR 150 BAUD
  10254	032363	   004 				.BYTE	4		; [4.2103] INDEX FOR 300 BAUD
  10255	032364	   004 				.BYTE	4		; [4.2103] INDEX FOR 300 BAUD
  10256	032365	   000 				.BYTE	0		; [4.2103] INDEX FOR 110 BAUD
  10257	032366	   002 				.BYTE	2		; [4.2103] INDEX FOR 150 BAUD
  10258	032367	   004 				.BYTE	4		; [4.2103] INDEX FOR 300 BAUD
  10259	032370	   004 				.BYTE	4		; [4.2103] INDEX FOR 300 BAUD
  10260	032371	   006 				.BYTE	6		; [4.2103] INDEX FOR 1200 BAUD
  10261	032372	   006 				.BYTE	6		; [4.2103] INDEX FOR 1200 BAUD
  10262					.EVEN
  10263
  10264	032374				SPDTB:
  10265	032374	006307 				.WORD	6307		; [4.2103] 110 BAUD LINE SPEED
  10266	032376	012503 				.WORD	12503		; [4.2103] 150 BAUD LINE SPEED
  10267	032400	016703 				.WORD	16703		; [4.2103] 300 BAUD LINE SPEED
  10268	032402	023103 				.WORD	23103		; [4.2103] 1200 BAUD LINE SPEED
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 192
TERMINAL DRIVER -- TTINI (TTY QUEUE SERVICE)

  10270						.SBTTL	TERMINAL DRIVER -- TTINI (TTY QUEUE SERVICE)
  10271
  10272						.ENABL	LSB
  10273
  10274					;
  10275					; TERMINAL DRIVER EVENT FLAG SERVICE
  10276					;
  10277
  10278	032404				TTINI::
  10279	032404					DIR$	#TTWLO		; WAIT FOR TTY
	032404	012746 	032252'			MOV	#TTWLO,-(SP)
	032410	104375 				EMT	375
  10280	032412					.INH6			;;; INHIBIT TASK SWITCHING
	032412	013746 	177776 			MOV	@#PS,-(SP)
	032416	112737 	000300 	177776 		MOVB	#300,@#PS
  10281	032424	013705 	001006'			MOV	.CRTSK,R5	;;; FIND THE CURRENT TASK POINTER
  10282	032430	016504 	000020 			MOV	A.EF(R5),R4	;;; FIND EVENT FLAGS
  10283	032434	005065 	000020 			CLR	A.EF(R5)	;;; CLEAR EVENT FLAGS
  10284	032440					.ENB6			; ENABLE TASK SWITCHING
	032440	012637 	177776 			MOV	(SP)+,@#PS
  10285	032444	010446 				MOV	R4,-(SP)	; [4.2247] STACK THE EVENT FLAGS
  10286	032446	032716 	000200 			BIT	#EF.RQM,(SP)	; [4.2247] REQUEST MCR??
  10287	032452	001406 				BEQ	10$		; NO -- MUST BE SOMETHING ELSE
  10288	032454	152737 	000002 	011316'		BISB	#M.PARQ,.MISC	; SET PRIORITY INPUT REQUEST
  10289	032462					DIR$	#RQMCR		; YES -- REQUEST PARSER
	032462	012746 	032272'			MOV	#RQMCR,-(SP)
	032466	104375 				EMT	375
  10290	032470				10$:
  10291	032470	032716 	001000 			BIT	#EF.RKR,(SP)	; [4.2247] KLINIK RING INTERRUPT??
  10292	032474	001403 				BEQ	15$		; NO -- FORGET IT
  10293	032476					DIR$	#RQKLR		; YES -- REQUEST KLRING
	032476	012746 	032310'			MOV	#RQKLR,-(SP)
	032502	104375 				EMT	375
  10294	032504				15$:
  10295	032504	032716 	002000 			BIT	#EF.RKH,(SP)	; [4.2247] KLINIK HANGUP??
  10296	032510	001403 				BEQ	20$		; NO -- GO ON
  10297	032512					DIR$	#RQKLD		; YES -- REQUEST KLDISC
	032512	012746 	032326'			MOV	#RQKLD,-(SP)
	032516	104375 				EMT	375
  10298	032520				20$:
  10299	032520	032716 	004000 			BIT	#EF.RSS,(SP)	; [4.2247] AUTO-BAUD REQUEST??
  10300	032524	001417 				BEQ	30$		; NO -- GO ON
  10301	032526	005737 	002602'			TST	.ABFLG		; YES -- INTERLOCK SET??
  10302	032532	001014 				BNE	30$		; YES -- GO ON
  10303	032534	013737 	002600'	002602'	25$:	MOV	.ABCNT,.ABFLG	; NO -- REAL REQUEST??
  10304	032542	001410 				BEQ	30$		; NO -- IGNORE IT
  10305	032544					DIR$	#.RQSPD		; YES -- REQUEST "SETSPD"
	032544	012746 	024600'			MOV	#.RQSPD,-(SP)
	032550	104375 				EMT	375
  10306	032552	103004 				BCC	30$		; [5.1011] ERROR FREE ??
  10307	032554					WSIG$S			; [5.1011] NO, WAIT A BIT
	032554	012746 				MOV	(PC)+,-(SP)
	032556	   061 	   001 			.BYTE	49.,1
	032560	104375 				EMT	375
  10308	032562	000764 				BR	25$		; [5.1011] RETRY THE REQUEST
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 193
TERMINAL DRIVER -- TIMEOUT SERVICE

  10310						.SBTTL	TERMINAL DRIVER -- TIMEOUT SERVICE
  10311
  10312	032564				30$:
  10313	032564	032716 	000100 			BIT	#EF.TMO,(SP)	; [4.2247] TIMEOUT??
  10314	032570	001431 				BEQ	45$		; [5.1008] NO -- GO ON
  10315	032572					.INH5			; [4.2309] YES -- DISALLOW TERMINAL INTERRUPTS
	032572	013746 	177776 			MOV	@#PS,-(SP)
	032576	112737 	000240 	177776 		MOVB	#240,@#PS
  10316	032604	105337 	002662'			DECB	TMOCNT+0	;;; [4.2309] ONLY DO TIMEOUT EVERY 10 SEC
  10317	032610	001007 				BNE	35$		;;; [5.1008] NOT YET -- SEE ABOUT ERROR LOGGING
  10318	032612	112737 	000012 	002662'		MOVB	#^D10,TMOCNT+0	;;; [4.2309] RESET TIMEOUT COUNT
  10319	032620					CALL	.DHTMO		;;; [4.2205] CHECK FOR TIMEOUT ON DM-11/BB'S AND DH-11'S
	032620	004737 	040646'			JSR	PC,.DHTMO
  10320	032624					CALL	.DLTMO		;;; CHECK FOR TIMEOUT ON DL-11E'S
	032624	004737 	040336'			JSR	PC,.DLTMO
  10321	032630				35$:
  10322	032630	105337 	002663'			DECB	TMOCNT+1	;;; [4.2309] MODEM TIMEOUT DUE??
  10323	032634	001005 				BNE	40$		;;; [5.1008] NO -- GO ON
  10324	032636	112737 	000026 	002663'		MOVB	#^D22,TMOCNT+1	;;; [4.2309] YES -- RESET TIMEOUT COUNT
  10325	032644					CALL	.DMTMO		;;; [4.2309] AND CHECK DM-11/BB'S
	032644	004737 	041126'			JSR	PC,.DMTMO
  10326	032650				40$:
  10327	032650					.ENB5			;;; [4.2054] ALLOW INTERRUPTS
	032650	012637 	177776 			MOV	(SP)+,@#PS
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 194
TERMINAL DRIVER -- ACK ALL SERVICE

  10329						.SBTTL	TERMINAL DRIVER -- ACK ALL SERVICE
  10330
  10331	032654				45$:
  10332	032654	005737 	001164'			TST	.ACKAL		; ACK ALL REQUESTED??
  10333	032660	001424 				BEQ	50$		; NO -- CONTINUE
  10334	032662	005037 	001164'			CLR	.ACKAL		; YES -- CLEAR FLAG
  10335	032666	012703 	000005 			MOV	#D.CLPT,R3	; SET LINE ALLOCATION ON LPT
  10336	032672	012704 	000214 			MOV	#140.,R4	; 140 BYTES
  10337	032676	012701 	000023 			MOV	#BC.SLA,R1	; SET LINE ALLOCATION
  10338	032702					CALL	..STFC
	032702	004737 	045456'			JSR	PC,..STFC
  10339	032706	062704 	000400 			ADD	#400,R4		; ALSO LPT1
  10340	032712					CALL	..STFC
	032712	004737 	045456'			JSR	PC,..STFC
  10341	032716	012701 	000025 			MOV	#BC.AKA,R1	; SEND ACK ALL
  10342	032722	012703 	000007 			MOV	#7,R3		; RANDOM FUNCTION CODE (ZERO A BAD IDEA HERE)
  10343									; DON'T CARE ABOUT FIRST WORD SENT
  10344	032726					CALL	..STFC		; START ACK FUNCTION
	032726	004737 	045456'			JSR	PC,..STFC
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 195
TERMINAL DRIVER -- QUEUED PROTOCOL KEEP-ALIVE SERVICE

  10346						.SBTTL	TERMINAL DRIVER -- QUEUED PROTOCOL KEEP-ALIVE SERVICE
  10347
  10348					;+
  10349					; QUEUED PROTOCOL KEEP-ALIVE SERVICE
  10350					;
  10351					; THE QUEUED PROTOCOL KEEP-ALIVE SERVICE IS DONE AS PART OF THE TERMINAL
  10352					; DRIVER TIMEOUT SERVICE AS IS IT CONVENIENT AND ELIMINATESS THE NEED FOR
  10353					; A SEPARATE QUEUED PROTOCOL TIMEOUT SERVICE TASK.
  10354					;
  10355					; NO KEEP-ALIVE CHECKING OR MAINTENANCE WILL BE DONE IF THE FRONT-END IS NOT
  10356					; RUNNING PRIMARY PROTOCOL.
  10357					;
  10358					; KEEP-ALIVE MAINTENANCE IS ALWAYS DONE WHILE THE FRONT-END IS IN PRIMARY
  10359					; PROTOCOL BUT KEEP-ALIVE CHECKING IS DONE ONLY IF ".NOERR" IS CLEAR (ERRORS
  10360					; ARE TO BE IGNORED)
  10361					;
  10362					; THE HOST'S KEEP-ALIVE COUNT IS EXAMINED ONCE PER TIMEOUT AND CHECKED TO
  10363					; VERIFY THAT THE KEEP-ALIVE COUNT IS CHANGING. IF THE EXAMINE FAILS, THE
  10364					; HOST IS ASSUMED TO BE DEAD, AND THE ERROR IS IGNORED AT THIS LEVEL.
  10365					;
  10366					; IF THE EXAMINE SUCCEEDS AND THE HOST KEEP-ALIVE COUNT IS CHANGING, ALL IS
  10367					; WELL AND THE KEEP-ALIVE RETRY COUNTER, ".KPAC+0", IS RESET IN CASE THIS IS
  10368					; A CONTINUATION. THE CONTINUATION ATTEMPT IS MARKED BY DRIVING ".KPAC+1"
  10369					; NON-ZERO.
  10370					;
  10371					; IF THE HOST'S KEEP-ALIVE COUNT HAS NOT CHANGED, THE HOST IS ALLOWED 5 TIMEOUT
  10372					; PERIODS FOR THE KEEP-ALIVE COUNT TO BEGIN CHANGING. IF THIS TIME EXPIRES
  10373					; WITH NO RESUMPTION OF KEEP-ALIVE COUNTING, THE ERROR IS FLAGGED AND "TKTN"
  10374					; INVOKED.
  10375					;
  10376					; ON THE FIRST KEEP-ALIVE-CEASE, KLINIT (Q.V.) WILL EXECUTE THE KL10 INSTRUCTION
  10377					; IN LOCATION 71 IN ORDER THAT THE KL10 ATTEMPT TO DO SOMETHING ON ITS OWN ABOUT
  10378					; THE ERROR. THE FRONT-END WILL WAIT ONE KEEP-ALIVE PERIOD FOR THIS TO HAPPEN.
  10379					; IF THE SECOND KEEP-ALIVE PERIOD EXPIRES, A FULL ERROR DUMP AND RELOAD OF THE
  10380					; HOST IS REQUESTED.
  10381					;
  10382					; IN ALL CASES, THE FRONT-END WILL ATTEMPT TO CONTINUE ITS HALF OF THE KEEP-ALIVE
  10383					; DIALOG.
  10384					;-
  10385
  10386	032732				50$:
  10387	032732	032716 	000100 			BIT	#EF.TMO,(SP)	; [4.2247] IS THIS A CLOCK REQUEST??
  10388	032736	001507 				BEQ	95$		; [4.2247] NO -- GO ON
  10389	032740	005737 	001012'			TST	.COMEF+2	; [4.1.1105] YES -- ARE WE IN PRIMARY PROTOCOL??
  10390	032744	100104 				BPL	95$		; [4.1.1105] NO -- DON'T WORRY ABOUT KEEP-ALIVE
  10391	032746	005737 	001122'			TST	.NOERR		; [4.2107] YES -- DO WE CARE ABOUT HIS KEEP-ALIVE??
  10392	032752	001041 				BNE	80$		; [4.2107] NO -- GO ON
  10393	032754					DIR$	#EXKAL		; [4.2107] YES -- READ HOST KEEP-ALIVE COUNTER
	032754	012746 	032260'			MOV	#EXKAL,-(SP)
	032760	104375 				EMT	375
  10394	032762	103435 				BCS	80$		; [4.2107] HOST IS ALREADY DEAD IF CC-C IS SET
  10395	032764	123737 	001376'	001404'		CMPB	KPAL0,OKPAL0	; [4.2107] IS HIS COUNT CHANGING??
  10396	032772	001023 				BNE	70$		; [4.2107] YES -- GO ON
  10397	032774	105337 	001410'			DECB	.KPAC+0		; [4.2107] NO -- IS HE DEAD??
  10398	033000	003023 				BGT	75$		; [4.2107] NO -- NOT YET, ANYWAY
  10399	033002				55$:
  10400	033002	105337 	001411'			DECB	.KPAC+1		; [4.2107] YES -- SECOND TIME??
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 195-1
TERMINAL DRIVER -- QUEUED PROTOCOL KEEP-ALIVE SERVICE

  10401	033006	100404 				BMI	60$		; [4.2107] YES -- GO ON
  10402	033010	005737 	001412'			TST	.KACFL		; [4.2107] NO -- RETRIES ALLOWED??
  10403	033014	001005 				BNE	65$		; [4.2107] YES -- GO ON
  10404	033016	000771 				BR	55$		; [4.2107] NO -- FORCE SECOND ERROR
  10405						;
  10406					;
  10407					; HERE ON SECOND KEEP-ALIVE ERROR
  10408					;
  10409	033020				60$:
  10410	033020					CALL	..DTSP		; [4.2107] KILL ALL PROTOCOLS
	033020	004737 	046770'			JSR	PC,..DTSP
  10411	033024	105237 	001122'			INCB	.NOERR		; [4.2107] INDICATE WE ARE SERVICING A REAL ERROR
  10412					;
  10413					; HERE ON FIRST KEEP-ALIVE ERROR
  10414					;
  10415	033030				65$:
  10416	033030	052737 	000020 	001126'		BIS	#KS.CST,.KLITK	; [4.2107] FLAG THE ERROR
  10417	033036	105237 	001124'			INCB	.TKTN		; [4.2107] REQUEST TKTN
  10418					;
  10419					; HERE WHEN HIS KEEP-ALIVE IS RUNNING OR HAS TIMED OUT
  10420					;
  10421	033042				70$:
  10422	033042	112737 	000005 	001410'		MOVB	#.KALSC,.KPAC+0	; [4.2107] RESET RETRY COUNTER
  10423	033050				75$:
  10424	033050	013737 	001376'	001404'		MOV	KPAL0,OKPAL0	; [4.2107] SAVE HIS COUNT FOR THE NEXT TIME AROUND
  10425					;
  10426					; INCREMENT AND TRANSMIT OUR KEEP-ALIVE COUNT
  10427					;
  10428	033056				80$:
  10429	033056	005737 	001374'			TST	.DTBLK		; [4.1.1121] IS THE DTE-20 BLOCKED??
  10430	033062	001013 				BNE	85$		; [4.1.1121] YES -- GO ON
  10431	033064					.INH6			; [4.1.1104] NO -- DISALLOW INTERRUPTS
	033064	013746 	177776 			MOV	@#PS,-(SP)
	033070	112737 	000300 	177776 		MOVB	#300,@#PS
  10432	033076	013700 	001360'			MOV	.PRDTE,R0	;;; [4.1.1104] POINT TO THE DTE-20
  10433	033102					CALL	.KPALV		;;; [4.1.1104] DO KEEP-ALIVE
	033102	004737 	031326'			JSR	PC,.KPALV
  10434	033106					.ENB6			;;; [4.1.1104] ALLOW INTERRUPTS
	033106	012637 	177776 			MOV	(SP)+,@#PS
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 196
TERMINAL DRIVER -- GENERAL ERROR LOGGING

  10436						.SBTTL	TERMINAL DRIVER -- GENERAL ERROR LOGGING
  10437
  10438	033112				85$:
  10439	033112	012704 	002654'			MOV	#.TTELQ,R4	; [4.2245] POINT TO TERMINAL ERROR LOG QUEUE
  10440	033116	012703 	000004 			MOV	#D.CDLS,R3	; [5.1008] DEVICE CODE TO R3
  10441	033122					CALL	..ERLG		; [5.1008] DO TERMINAL ERROR LOGGING
	033122	004737 	043212'			JSR	PC,..ERLG
  10442	033126	012703 	000202 			MOV	#D.CDTE,R3	; [5.1008] DEVICE CODE TO R3
  10443	033132	012704 	001366'			MOV	#.EBPEQ,R4	; [5.1008] POINT TO DTE-20 ERROR LOG QUEUE
  10444	033136					CALL	..ERLG		; [5.1008] DO DTE-20 ERROR LOGGING
	033136	004737 	043212'			JSR	PC,..ERLG
  10445	033142	012703 	000203 			MOV	#D.CRJP,R3	; [5.1009] DEVICE CODE TO R3
  10446	033146	012704 	005536'			MOV	#.RPELQ,R4	; [5.1009] POINT TO ERROR LOG QUEUE
  10447	033152					CALL	..ERLG		; [5.1009] DO RH-11 ERROR LOGGING
	033152	004737 	043212'			JSR	PC,..ERLG
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 197
TERMINAL DRIVER -- CTY SERVICE

  10449						.SBTTL	TERMINAL DRIVER -- CTY SERVICE
  10450
  10451	033156				95$:
  10452	033156	032726 	000020 			BIT	#EF.IOD,(SP)+	; [4.2247] I/O DONE??
  10453	033162	001076 				BNE	105$		; [4.2247] YES -- HANDLE THAT FIRST
  10454	033164	005737 	002732'			TST	TTPKT		; NO -- CHECK PACKET
  10455	033170	001166 				BNE	TTINO		; PACKET IN USE -- WAIT
  10456	033172				DQNXT:
  10457	033172					.INH6			; DISALLOW INTERRUPTS
	033172	013746 	177776 			MOV	@#PS,-(SP)
	033176	112737 	000300 	177776 		MOVB	#300,@#PS
  10458	033204	132737 	000002 	011316'		BITB	#M.PARQ,.MISC	; PRIORTY INPUT REQUEST ?
  10459	033212	001017 				BNE	97$		; BRANCH IF YES
  10460	033214	105737 	001226'			TSTB	.KLNSW		;;; IS KLINIK ACTIVE ?
  10461	033220	003406 				BLE	100$		;;; NO -- GO ON
  10462	033222	013700 	002636'			MOV	KLNPTR,R0	;;; KLINIK LINE POINTER TO R0
  10463	033226	032760 	000001 	000006 		BIT	#TT.OUT,STSW1(R0) ;;; IS IT BUSY ??
  10464	033234	001142 				BNE	TTINX		;;; YES -- WAIT A WHILE
  10465	033236				100$:
  10466	033236	013700 	002634'			MOV	CTYPTR,R0	;;; CHECK AND WAIT FOR I/O FROM 10 TO STOP
  10467	033242	032760 	000001 	000006 		BIT	#TT.OUT,STSW1(R0) ;;; OUTPUT IN PROGRESS ?
  10468	033250	001134 				BNE	TTINX		;;; YES -- GO ON
  10469	033252				97$:
  10470	033252	012700 	052124 			MOV	#"TT,R0		;;; NO -- SET UP TO DEQUEUE FROM TTY LUN
  10471	033256					CALL	..DQRN		;;; GET AN I/O PACKET TO PROCESS
	033256	004737 	043432'			JSR	PC,..DQRN
  10472	033262	103527 				BCS	TTINX		;;; IF CC-C IS SET CONTROLLER BUSY OR NO REQUEST
  10473	033264	005237 	002632'			INC	.TTP11		;;; SET PDP11 I/O IN PROGRESS
  10474	033270					.ENB6			;;; ALLOW INTERRUPTS
	033270	012637 	177776 			MOV	(SP)+,@#PS
  10475					;
  10476					; THE FOLLOWING ARGUMENTS ARE RETURNED BY ..DQRN:
  10477					;
  10478					;	R0 -- LOGICAL UNIT NUMBER
  10479					;	R1 -- ADDRESS OF THE I/O REQUEST PACKET.
  10480					;
  10481	033274	010137 	002732'			MOV	R1,TTPKT	; SAVE PACKET ADDRESS
  10482	033300	010337 	002726'			MOV	R3,BYCNT 	; SAVE THE BYTE COUNT
  10483	033304	010337 	002724'			MOV	R3,CNT		; SAVE IT HERE ALSO
  10484	033310	010537 	002730'			MOV	R5,CRADR	; SAVE CURRENT ADDRESS
  10485	033314	013705 	002634'			MOV	CTYPTR,R5	; FIND THE CTY TERMINAL
  10486	033320	012703 	002664'			MOV	#CTYSTS,R3	; FIND TERMINAL STATUS WORD
  10487	033324	122761 	000001 	000015 		CMPB	#IO.WLB/256.,R.FC+1(R1) ; WRITE LOGICAL FUNCTION?
  10488	033332	001451 				BEQ	125$		; IF EQ YES
  10489	033334	042713 	000040 			BIC	#CTLO,@R3	; ENABLE OUTPUT
  10490	033340	122761 	000002 	000015 		CMPB	#IO.RLB/256.,R.FC+1(R1) ; READ LOGICAL FUNCTION?
  10491	033346	001422 				BEQ	115$		; YES -- PROCESS REQUEST
  10492	033350	012703 	000001 			MOV	#IS.SUC,R3	; SET UP THE ERROR STATUS
  10493	033354	005004 				CLR	R4		; INDICATE NO TRANSFER
  10494	033356	000407 				BR	110$		; TRY AGAIN
  10495						;
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 198
TERMINAL DRIVER -- CTY I/O DONE SERVICE

  10497						.SBTTL	TERMINAL DRIVER -- CTY I/O DONE SERVICE
  10498
  10499	033360				105$:
  10500	033360	013701 	002732'			MOV	TTPKT,R1	; FIND THE I/O PACKET
  10501	033364	001702 				BEQ	DQNXT
  10502	033366	016104 	000026 			MOV	R.PB+2(R1),R4	; SET THE COUNT XFERED
  10503	033372	013703 	002730'			MOV	CRADR,R3	; RETURN THE STATUS
  10504	033376				110$:
  10505	033376					CALL	..IODN		; CALL I/O DONE OUTINE
	033376	004737 	043312'			JSR	PC,..IODN
  10506	033402	005337 	002632'			DEC	.TTP11		; PDP11 INPUT NOT IN PROGREESS
  10507	033406	005037 	002732'			CLR	TTPKT		; SET NO PACKET IN USE
  10508	033412	000667 				BR	DQNXT		; AND WAIT FOR NEXT JOB
  10509						;
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 199
TERMINAL DRIVER -- CTY INPUT SERVICE

  10511						.SBTTL	TERMINAL DRIVER -- CTY INPUT SERVICE
  10512
  10513					;
  10514					; REQUEST IS A SOLICITED INPUT REQUEST-GET A BUFFER FOR INPUT
  10515					;
  10516	033414				115$:				; SET SOLICITED INPUT FLAG
  10517	033414	042713 	102400 			BIC	#MODE!EOLS!CRTY,@R3
  10518	033420	013763 	002730'	000006 		MOV	CRADR,CURBF(R3) ;SET RANDOM INPUT VALUES
  10519	033426	013763 	002726'	000004 		MOV	BYCNT,RMBYT(R3)
  10520	033434	013763 	002730'	000002 		MOV	CRADR,STRBF(R3)
  10521	033442	032713 	001000 			BIT	#CRJT,@R3	; CARRIAGE RETURN JUST TYPED?
  10522	033446	001426 				BEQ	135$		; NO -- NO CARRAGE CONTROL NECESSARY
  10523	033450				120$:
  10524	033450	062713 	004000 			ADD	#LFBT,@R3	; FORCE LINE FEED
  10525	033454	000423 				BR	135$		; AND FORCE IT OUT
  10526						;
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 200
TERMINAL DRIVER -- CTY OUTPUT SERVICE

  10528						.SBTTL	TERMINAL DRIVER -- CTY OUTPUT SERVICE
  10529
  10530					;
  10531					; REQUEST IS AN OUTPUT REQUEST-SET UP CARRIAGE CONTROL FLAGS
  10532					;
  10533	033456				125$:
  10534	033456	005737 	010246'			TST	TTPEN+U.AF	; CHECK FOR ATTACHED
  10535	033462	001002 				BNE	130$		; YES -- DON'T CLEAR STATUS FLAGS
  10536	033464	042713 	000040 			BIC	#CTLO,@R3	; ENABLE OUTPUT
  10537	033470				130$:
  10538	033470	042713 	076437 			BIC	#LFCT!CRTY!EOLS!RUBP!FLCT,@R3 ; CLEAR STATUS WORD
  10539	033474	052713 	100000 			BIS	#MODE,@R3	; SET OUTPUT MODE
  10540	033500	005761 	000030 			TST	R.PB+4(R1)	; CHECK FOR CARRAGE CONTROL
  10541	033504	001407 				BEQ	135$		; NO -- NOTHING TO DO
  10542	033506	122761 	000044 	000030 		CMPB	#'$,R.PB+4(R1)	; $?
  10543	033514	001755 				BEQ	120$		; YES -- DON'T FAKE CARRAGE CONTROL HERE
  10544	033516	052713 	002000 			BIS	#CRTY,@R3	; YES -- IT WILL ALWAYS BE ASSUMED ' '
  10545	033522	000752 				BR	120$		; OUTPUT CRLF
  10546						;
  10547	033524				135$:
  10548	033524					.INH6			; DISALLOW INTERRUPTS
	033524	013746 	177776 			MOV	@#PS,-(SP)
	033530	112737 	000300 	177776 		MOVB	#300,@#PS
  10549	033536					CALL	OUTPT		;;; START OUTPUT
	033536	004737 	034546'			JSR	PC,OUTPT
  10550	033542				TTINX:
  10551	033542					.ENB6			;;; ALLOW INTERRUPTS
	033542	012637 	177776 			MOV	(SP)+,@#PS
  10552	033546				TTINO:
  10553	033546	000137 	032404'			JMP	TTINI		; MAKE SURE OUTPUT IS ACTIVE
  10554						;
  10555						.DSABL	LSB
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 201
TERMINAL DRIVER -- $DHOUT (DH-11 OUTPUT INTERRUPT)

  10557						.SBTTL	TERMINAL DRIVER -- $DHOUT (DH-11 OUTPUT INTERRUPT)
  10558					;
  10559					;	DHOUT -- DH-11 TERMINAL MUX OUT INTERRUPTS
  10560					;
  10561	033552				$DHOUT::			;;; REF LABEL
  10562	033552	013737 	177776 	002646'		MOV	@#PS,DHTMP	;;; SAVE CONTROLLER NUMBER
  10563	033560					CALL	R3,DHSAV	;;; SAVE R3 AND SETUP R3 AND R4
	033560	004337 	037274'			JSR	R3,DHSAV
  10564	033564	001417 				BEQ	35$		;;; SPURIOUS INTERRUPT
  10565	033566				10$:
  10566	033566	042714 	101077 			BIC	#101077,@R4	;;; CLEAR CURRENT UNIT AND TRANSMIT INT
  10567	033572				20$:
  10568	033572	032765 	000001 	000006 		BIT	#TT.OUT,STSW1(R5) ;;; OUTPUT INTERRUPT EXPECTED?
  10569	033600	001403 				BEQ	30$		;;; IF EQ NO
  10570	033602	005764 	000010 			TST	10(R4)		;;; ZERO BYTE COUNT?
  10571	033606	001407 				BEQ	40$		;;; IF EQ YES
  10572	033610				30$:
  10573	033610	005214 				INC	@R4		;;; INCREMENT UNIT NUMBER
  10574	033612	062705 	000010 			ADD	#10,R5		;;; POINT TO NEXT ENTRY
  10575	033616	026504 	000002 			CMP	TTYEXP(R5),R4	;;; SAME DH-11 ??
  10576	033622	001763 				BEQ	20$		;;; YES -- CHECK NEXT UNIT
  10577	033624				35$:
  10578	033624					RETURN
	033624	000207 				RTS	PC
  10579	033626				40$:
  10580	033626	042765 	000001 	000006 		BIC	#TT.OUT,STSW1(R5) ;;; THIS OPERATION IS FINISHED
  10581	033634	032765 	000002 	000006 		BIT	#TT.CTY,STSW1(R5) ;;; IS THIS A CTY??
  10582	033642	001003 				BNE	60$		;;; YES -- DO SPECIAL CTY CHECK
  10583	033644				50$:
  10584	033644					CALL	STTYDN		;;; NO -- START NEXT OUTPUT PACKET
	033644	004737 	033676'			JSR	PC,STTYDN
  10585	033650	000757 				BR	30$		;;; SEE ABOUT OTHER LINES IN THIS DH-11
  10586						;
  10587					;
  10588					; HERE FOR SPECIAL CTY CHECKS AND PROCESSING
  10589					;
  10590	033652				60$:
  10591	033652	005737 	002632'			TST	.TTP11		;;; IS THIS PDP11 OUTPUT?
  10592	033656	001772 				BEQ	50$		;;; NO -- THEN HANDLE AS NORMAL CASE
  10593	033660	010446 			65$:	MOV	R4,-(SP)	;;; SAVE R4
  10594	033662					CALL	OUTPT3		;;; FINISH OUTPUT PROCESSING
	033662	004737 	034466'			JSR	PC,OUTPT3
  10595	033666	012604 				MOV	(SP)+,R4	;;; RESTORE R4
  10596	033670					CALL	.TTIXC		;;; [5.1015] DO INPUT CONTROL CHECKS
	033670	004737 	042254'			JSR	PC,.TTIXC
  10597	033674	000745 				BR	30$		;;; GO AGAIN
  10598						;
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 202
TERMINAL DRIVER -- STTYDN (REMOVE PROCESSED OUTPUT NODE)

  10600						.SBTTL	TERMINAL DRIVER -- STTYDN (REMOVE PROCESSED OUTPUT NODE)
  10601
  10602					;+
  10603					;	STTYDN -- REMOVE ENTRY FOR LAST OPERATION
  10604					;
  10605					;	IF THIS IS A SENDALL WHICH HAS FINISHED, DECREMENT THE COUNT FOR
  10606					;	THE NODE IN THE SENDALL RING. IF THE COUNT HAS EXHAUSTED, DEALLOCATE
  10607					;	THER CURRENT SENDALL BUFFER. THE SENDALL OFFSET FOR THIS LINE IS MOVED
  10608					;	TO THE NEXT NODE IN THE SENDALL RING.
  10609					;
  10610					;	IF THIS IS A NORMAL I/O TERMINATION,, ALTER THE BUFFER ADDRESS AND BYTE
  10611					;	COUNT IN THE CURRENT NODE SO THAT THE XON CODE CAN DO A NORMAL LINE
  10612					;	START. THE PACKET WILL BE ACK'ED AND DEALLOCATED AFTER THE LINE HAS
  10613					;	BEEN X'D ON.
  10614					;
  10615					;	IF THE PACKET IS FINISHED, THE CURRENT NODE IS REMOVED FROM THE
  10616					;	THREAD LIST, DEALLOCATED AND AN ATTEMPT MADE TO START THE NEXT ENTRY
  10617					;	IN THE THREAD LIST. IF THE LIST IS EMPTY, THIS LINE WILL BE ACK'ED.
  10618					;-
  10619
  10620	033676				STTYDN:
  10621	033676	032765 	001000 	000006 		BIT	#TT.SIP,STSW1(R5) ;;; IS THIS A SENDALL IN PROGRESS??
  10622	033704	001444 				BEQ	20$		;;; NO -- DON'T MAKE SENDALL RETURN CHECKS
  10623	033706	042765 	001000 	000006 		BIC	#TT.SIP,STSW1(R5) ;;; YES -- CLEAR SENDALL IN PROGRESS
  10624	033714	016502 	000006 			MOV	STSW1(R5),R2	;;; FIND THE POSITION IN THE SEND ALL TABLE
  10625	033720	062765 	040000 	000006 		ADD	#TT.SNI,STSW1(R5) ;;; MOVE TO NEXT SENDALL RING WORD
  10626	033726	006102 				ROL	R2		;;; FIND THE POSITION IN THE TABLE
  10627	033730	006102 				ROL	R2		;;; OF THE CURRENT SENDALL
  10628	033732	006102 				ROL	R2		;;; JUST FINISHED
  10629	033734	042702 	177774 			BIC	#177774,R2	;;; MASK OFF JUNK
  10630	033740	006302 				ASL	R2		;;; MAKE A WORD INDEX
  10631	033742	005362 	002616'			DEC	.SNDCN(R2)	;;; DECREMENT THE CURRENT INUSE COUNT
  10632	033746	003045 				BGT	STNXT		;;; THIS SENDALL QUEUE NOT FINISHED -- DON'T RELEASE IT
  10633	033750	001415 				BEQ	10$		;;; ALL DONE -- RETURN IT
  10634						;
  10635					; THIS CODE REPLACES THE SAI STOPCODE. IT "FIXES" THIS LINES SENDALL INDEX.
  10636						;
  10637	033752	013702 	002604'			MOV	.SNDLP,R2	;;; GET THE SENDALL BUFFER INDEX
  10638	033756	000302 				SWAB	R2		;;; PUT COUNT IN THE HIGH BYTE
  10639	033760	012700 	000006 			MOV	#6,R0		;;; SET UP LOOP COUNT FOR LEFT SHIFTS
  10640	033764	006302 			5$:	ASL	R2		;;; SHIFT
  10641	033766	077002 				SOB	R0,5$		;;; LOOP FOR THE COUNT
  10642	033770	042765 	140000 	000006 		BIC	#140000,STSW1(R5) ;;; GET RID OF THE OLD INDEX
  10643	033776	050265 	000006 			BIS	R2,STSW1(R5)	;;; SET IN THE NEW ONE
  10644	034002	000427 				BR	STNXT
  10645						;
  10646	034004				10$:
  10647	034004	016200 	002606'			MOV	.SNDBF(R2),R0	;;; PICK UP THE ENTRY
  10648	034010	005062 	002606'			CLR	.SNDBF(R2)	;;; CLEAR OUT THIS ENTRY (MARK END OF RING)
  10649	034014	000420 				BR	30$		;;; AND CONTINUE
  10650						;
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 203
TERMINAL DRIVER -- STTYDN (REMOVE PROCESSED OUTPUT NODE)

  10652
  10653						;
  10654	034016				20$:				;;; HERE TO REMOVE THREAD ENTRY (NOT SENDALL)
  10655	034016	011500 				MOV	(R5),R0		;;; PICK UP THE THREAD POINTER
  10656	034020	001420 				BEQ	STNXT		;;; GO ON IF EMPTY
  10657									;;; [4.2096] REMOVED 2 INSTRUCTIONS
  10658	034022	016401 	000006 			MOV	6(R4),R1	;;; PICK UP CURRENT DH-11 ADDRESS
  10659	034026	116002 	000006 			MOVB	T.HCBC(R0),R2	;;; GET ORIGINAL BYTE COUNT
  10660	034032	016046 	000004 			MOV	T.HCAD(R0),-(SP) ;;; ORIGINAL ADDRESS TO STACK
  10661	034036	010160 	000004 			MOV	R1,T.HCAD(R0)	;;; CURRENT ADDRESS TO PACKET
  10662	034042	162601 				SUB	(SP)+,R1	;;; COMPUTE OFFSET INTO PACKET
  10663	034044	160102 				SUB	R1,R2		;;; DISCOUNT FROM PACKET SIZE
  10664	034046	110260 	000006 			MOVB	R2,T.HCBC(R0)	;;; AND SET NEW PACKET SIZE
  10665	034052	003003 				BGT	STNXT		;;; [4.2096] DON'T DEQUEUE IF NOT FINISHED
  10666	034054	011015 				MOV	@R0,(R5)	;;; DELINK THIS THREAD NODE
  10667	034056				30$:
  10668	034056					CALL	..DECN		;;; DEALLOCATE THE NODE
	034056	004737 	044546'			JSR	PC,..DECN
  10669									;;; AND START THE NEXT PACKET
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 204
TERMINAL DRIVER -- STNXT (START NEXT OUTPUT OPERATION)

  10671						.SBTTL	TERMINAL DRIVER -- STNXT (START NEXT OUTPUT OPERATION)
  10672
  10673					;+
  10674					;	STNXT -- START NEXT OUTPUT OPERATION
  10675					;
  10676					;	R0 -- POINTS TO THREAD NODE TO BE STARTED
  10677					;	R4 -- POINTS TO I/O PAGE ADDR THIS DEVICE
  10678					;	R5 -- POINTS TO DLS TABLE THIS DEVICE
  10679					;
  10680					;	BEFORE ATTEMPTING TO START THE NEXT NODE IN THE THREAD LIST, SEE IF A
  10681					;	SENDALL IS PENDING FOR THIS LINE, (".SNDLP" .NE. "TT.SND"). IF SO, START
  10682					;	THE SENDALL. IF SENDALLS ARE SUPPRESSED FOR THIS LINE, IGNORE IT.
  10683					;
  10684					;	IF NO SENDALL IS PENDING FOR THIS LINE, ATTEMPT TO START THE THE NEXT
  10685					;	NODE IN THE THREAD LIST. IF ANOTHER ENTRY EXISTS, START IT; IF NOT, SEND
  10686					;	AN ACK. IF THE LINE HAS BEEN X'D OFF, DO NOTHING.
  10687					;
  10688					;	NOTE: SENDALLS ARE FORCED OUT OVER THE XOFF -- THEY ARE NOT TO BE STOPPED.
  10689					;-
  10690
  10691	034062				STNXT:
  10692	034062					CALL	.TTIXC		;;; [5.1015] DO INPUT CONTROL CHECKS
	034062	004737 	042254'			JSR	PC,.TTIXC
  10693	034066	032765 	000001 	000006 		BIT	#TT.OUT,STSW1(R5) ;;; [5.1015] IS OUTPUT NOW IN PROGRESS??
  10694	034074	001134 				BNE	TTOUTR		;;; [5.1015] YES -- JUST EXIT
  10695	034076	016502 	000006 			MOV	STSW1(R5),R2	;;; FIND THE STATUS WORD TO LOOK AT
  10696	034102	006102 				ROL	R2		;;; GET THE RING INDEX OUT OF STATUS WORD
  10697	034104	006102 				ROL	R2
  10698	034106	006102 				ROL	R2
  10699	034110	042702 	177774 			BIC	#^C3,R2		;;; R2 NOW HAS OFFSET INTO SENDALL RING
  10700	034114	020237 	002604'			CMP	R2,.SNDLP	;;; ANY SENDALLS PENDING THIS LINE??
  10701	034120	001414 				BEQ	10$		;;; NO -- CONTINUE NORMAL I/O
  10702	034122	032765 	000400 	000006 		BIT	#TT.NSA,STSW1(R5) ;;; [4.2246] YES -- ARE WE SUPPRESSING SENDALL'S??
  10703	034130	001010 				BNE	10$		;;; [4.2246] YES -- IGNORE IT
  10704	034132	006302 				ASL	R2		;;; NO -- MAKE R2 A WORD INDEX INTO RING
  10705	034134	016200 	002606'			MOV	.SNDBF(R2),R0	;;; GET THE NEXT SENDALL NODE INTO R0
  10706	034140	001404 				BEQ	10$		;;; CONTINUE NORMAL I/O IF EMPTY
  10707	034142	052765 	001000 	000006 		BIS	#TT.SIP,STSW1(R5) ;;; SET SENDALL IN PROGRESS
  10708	034150	000405 				BR	.DHSTO		;;; AND START IT UP
  10709						;
  10710	034152				10$:
  10711	034152	011500 				MOV	(R5),R0		;;; [4.2096] START THE XFER ON THIS STRING
  10712	034154	001505 				BEQ	.TTACK		;;; [4.2096] SEND AN ACK IF END
  10713	034156	105765 	000006 			TSTB	STSW1+0(R5)	;;; [4.2096] IS THIS LINE X'D OFF??
  10714	034162	100501 				BMI	TTOUTR		;;; [4.2096] YES -- GO AWAY
  10715					;	BR	.DHSTO		;;; NO -- GO ON
  10716						;
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 205
TERMINAL DRIVER -- .DHSTO (START DH-11 OUTPUT)

  10718						.SBTTL	TERMINAL DRIVER -- .DHSTO (START DH-11 OUTPUT)
  10719
  10720					;+
  10721					; .DHSTO -- START DH-11 OUTPUT
  10722					;
  10723					; THIS SUBROUTINE WILL START OUTPUT ON A DH-11 LINE
  10724					;
  10725					; INPUTS:
  10726					;
  10727					;	R0 -- POINTS TO THE I/O PACKET
  10728					;	R4 -- EXTERNAL PAGE POINTER FOR THIS LINE
  10729					;	R5 -- POINTS TO DLS TABLE ENTRY FOR THIS LINE
  10730					;
  10731					; OUTPUTS:
  10732					;
  10733					;	R2 IS CLOBBERED
  10734					;-
  10735
  10736	034164				.DHSTO::
  10737	034164	016064 	000004 	000006 		MOV	T.HCAD(R0),6(R4) ;;; SET UP THE DH-11 ADDRESS REGISTER
  10738	034172	016064 	000006 	000010 		MOV	T.HCBC(R0),10(R4) ;;; SET UP THE BYTE COUNT
  10739	034200	005464 	000010 			NEG	10(R4)		;;; MAKE THE BYTE COUNT NEGATIVE
  10740	034204	011402 				MOV	@R4,R2		;;; FIND THE UNIT NUMBER TO START THE DH-11
  10741	034206	042702 	177760 			BIC	#177760,R2	;;; MASK OFF HIGH ORDER JUNK
  10742	034212	006302 				ASL	R2		;;; MAKE AN INDEX INTO BIT TABLE
  10743	034214	056264 	043022'	000012 		BIS	BITTBL(R2),12(R4) ;;; START THE DH-11
  10744	034222	000456 				BR	TTOUTX		;;; MARK OUTPUT BUSY AND EXIT
  10745						;
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 206
TERMINAL DRIVER -- $TTOUT (DL11 OUTPUT INTERRUPT)

  10747						.SBTTL	TERMINAL DRIVER -- $TTOUT (DL11 OUTPUT INTERRUPT)
  10748					;+
  10749					; **-$TTOUT-DL11 TERMINAL OUTPUT INTERRUPTS
  10750					;-
  10751
  10752	034224				$TTOUT::			;;; REF LABEL
  10753	034224	013737 	177776 	002650'		MOV	@#PS,DLTMP	;;; SAVE CONTROLLER NUMBER
  10754	034232					CALL	R3,TTSAV	;;; SAVE R3 AND SETUP R3, R4, AND R5
	034232	004337 	037332'			JSR	R3,TTSAV
  10755	034236	032765 	000001 	000006 		BIT	#TT.OUT,STSW1(R5) ;;; OUTPUT INTERRUPT EXPECTED??
  10756	034244	001451 				BEQ	.TTACK		;;; NO -- SO ACK THE LINE
  10757	034246	042765 	000001 	000006 		BIC	#TT.OUT,STSW1(R5) ;;; YES -- MARK OUTPUT DONE
  10758	034254	032765 	000002 	000006 		BIT	#TT.CTY,STSW1(R5) ;;; IS THIS A CONSOLE??
  10759	034262	001403 				BEQ	STTYO		;;; NO -- SEND THE LINE
  10760	034264	005737 	002632'			TST	.TTP11		;;; YES -- IS THIS PDP11 INPUT??
  10761	034270	001076 				BNE	OUTPT3		;;; YES -- SPECIAL CASE
  10762	034272				STTYO:
  10763	034272	011500 				MOV	(R5),R0		;;; [4.2096] NO -- PICK UP THIS LINE IN USE
  10764	034274	001435 				BEQ	.TTACK		;;; [4.2096] ACK THE LINE IF END OF THREAD LIST
  10765	034276	005360 	000006 			DEC	T.HCBC(R0)	;;; [5.1015] DECREMENT THE BYTE COUNT
  10766	034302	003011 				BGT	10$		;;; [5.1015] FINISHED?
  10767	034304	011015 				MOV	@R0,(R5)	;;; SAVE NEXT THREAD POINTER
  10768	034306					CALL	..DECN		;;; DEALLOCATE THE BUFFER
	034306	004737 	044546'			JSR	PC,..DECN
  10769	034312					CALL	.TTIXC		;;; [5.1015] DO INPUT CONTROL CHECKS
	034312	004737 	042254'			JSR	PC,.TTIXC
  10770	034316	032765 	000001 	000006 		BIT	#TT.OUT,STSW1(R5) ;;; [5.1015] I/O STARTED ALREADY??
  10771	034324	001020 				BNE	TTOUTR		;;; [5.1015] YES -- JUST EXIT
  10772	034326				10$:
  10773	034326	011500 				MOV	(R5),R0		;;; NO -- SET THE NEW THREAD POINTER
  10774	034330	001417 				BEQ	.TTACK		;;; GO ACK THE LINE IF DONE
  10775	034332	105765 	000006 			TSTB	STSW1+0(R5)	;;; [5.1015] IS THIS LINE X'D OFF??
  10776	034336	100413 				BMI	TTOUTR		;;; [5.1015] YES -- JUST GO AWAY
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 207
TERMINAL DRIVER -- .DLSTO (START DL-11 OUTPUT)

  10778						.SBTTL	TERMINAL DRIVER -- .DLSTO (START DL-11 OUTPUT)
  10779
  10780					;+
  10781					; .DLSTO -- START DL-11 OUTPUT
  10782					;
  10783					; THIS SUBROUTINE WILL START OUTPUT ON A DL-11 LINE
  10784					;
  10785					; INPUTS:
  10786					;
  10787					;	R0 -- POINTS TO THE I/O PACKET
  10788					;	R4 -- EXTERNAL PAGE ADDRESS OF THIS DEVICE
  10789					;	R5 -- POINTS TO DLS TABLE ENTRY FOR THIS LINE
  10790					;
  10791					; OUTPUTS:
  10792					;
  10793					;	NO REGISTERS ARE ALTERED
  10794					;-
  10795
  10796	034340				.DLSTO::
  10797	034340	117064 	000004 	000006 		MOVB	@T.HCAD(R0),6(R4) ;;; START THE NEXT CHARACTER
  10798	034346	005260 	000004 			INC	T.HCAD(R0)	;;; UPDATE THE CHARACTER POINTER
  10799	034352	052764 	000100 	000004 		BIS	#DL.XEN,4(R4)	;;; INSURE INTERRUPT ENABLED
  10800	034360				TTOUTX:
  10801	034360	052765 	000001 	000006 		BIS	#TT.OUT,STSW1(R5) ;;; MARK OUTPUT BUSY
  10802	034366				TTOUTR:
  10803	034366					RETURN			;;; RETURN TO CALLER
	034366	000207 				RTS	PC
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 208
TERMINAL DRIVER -- .TTACK (ACKNOWLEDGE A TTY LINE)

  10805						.SBTTL	TERMINAL DRIVER -- .TTACK (ACKNOWLEDGE A TTY LINE)
  10806
  10807					;+
  10808					; .TTACK - ACKNOWLEDGE A TERMINAL LINE
  10809					;
  10810					; THIS SUBROUTINE MAY BE CALLED FROM EITHER INTERRUPT LEVEL OR TASK LEVEL
  10811					; TO TRANSMIT AN ACK TO THE HOST, IF CONDITIONS WILL ALLOW.
  10812					;
  10813					; THE LINE WILL NOT BE ACK'ED IF IT IS THE CTY AND IT IS ACTIVE ON THE PDP-11,
  10814					; OR IF THE LINE IS THE KLINIK LINE IN REMOTE CONSOLE MODE.
  10815					;
  10816					; INPUTS:
  10817					;
  10818					;	R5 -- POINTS TO DLS TABLE ENTRY FOR LINE TO BE ACK'ED
  10819					;
  10820					; OUTPUTS:
  10821					;
  10822					;	NO REGISTERS ALTERED.
  10823					;-
  10824
  10825	034370				.TTACK::
  10826	034370	032765 	000002 	000006 		BIT	#TT.CTY,STSW1(R5) ;;; IS THIS A CTY??
  10827	034376	001424 				BEQ	10$		;;; NO -- GO ON
  10828	034400	005737 	002632'			TST	.TTP11		;;; YES -- IS IT TALKING TO THE -11??
  10829	034404	001027 				BNE	20$		;;; YES -- JUST EXIT
  10830	034406	105737 	001226'			TSTB	.KLNSW+0	;;; NO -- IS KLINIK ACTIVE??
  10831	034412	001416 				BEQ	10$		;;; [4.1.1066] NO -- GO ON
  10832	034414	020537 	002634'			CMP	R5,CTYPTR	;;; IS THIS THE CTY ?
  10833	034420	001004 				BNE	5$		;;; [5.1565] BRANCH IF NOT
  10834	034422	105737 	001216'			TSTB	.KLNMD		;;; [5.1565] ACTIVE IN USER MODE ??
  10835	034426	002410 				BLT	10$		;;; [5.1565] YES, GO GIVE ACK
  10836	034430	000415 				BR	20$		;;; [5.1565] NO, WAIT FOR KLINIK LINE TO FINISH
  10837	034432				5$:
  10838	034432	010546 				MOV	R5,-(SP)	;;; [5.1246] SAVE THE REAL POINTER
  10839	034434	013705 	002634'			MOV	CTYPTR,R5	;;; [5.1246] TELL THE HOST THIS IS THE CTY
  10840	034440					CALL	10$		;;; [5.1246] SEND THE ACK
	034440	004737 	034450'			JSR	PC,10$
  10841	034444	012605 				MOV	(SP)+,R5	;;; [5.1246] RESTORE THE REAL PONITER
  10842	034446					RETURN			;;; [5.1246] AND EXIT
	034446	000207 				RTS	PC
  10843	034450				10$:
  10844	034450	010346 				MOV	R3,-(SP)	;;; NO -- SAVE R3
  10845	034452	012703 	000004 			MOV	#D.CDLS,R3	;;; SET DATA LINE SCANNER DEVICE CODE
  10846	034456					CALL	..SACK		;;; ACK THE LINE
	034456	004737 	045372'			JSR	PC,..SACK
  10847	034462	012603 				MOV	(SP)+,R3	;;; RESTORE R3
  10848	034464				20$:
  10849	034464					RETURN			;;; AND EXIT
	034464	000207 				RTS	PC
  10850
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 209
TERMINAL DRIVER -- OUTPT3 (PDP-11 CTY OUTPUT ROUTINES)

  10852						.SBTTL	TERMINAL DRIVER -- OUTPT3 (PDP-11 CTY OUTPUT ROUTINES)
  10853
  10854	034466				OUTPT3:				;;; HERE TO SYNCH CTY OUTPUT
  10855	034466	105737 	001226'			TSTB	.KLNSW+0	;;; KLINIK REMOTE CONSOLE ACTIVE?
  10856	034472	003425 				BLE	OUTPT		;;; NO -- CONTINUE
  10857	034474	010546 				MOV	R5,-(SP)	;;; SAVE CURRENT POINTER
  10858	034476	022705 	003046'			CMP	#DHTBL,R5	;;; IS CTY A DH-11 LINE??
  10859	034502	101410 				BLOS	10$		;;; YES -- GO ON
  10860	034504	032765 	000001 	000006 		BIT	#TT.OUT,STSW1(R5) ;;; NO -- IS THIS LINE FINISHED??
  10861	034512	001012 				BNE	30$		;;; NO -- EXIT
  10862	034514	013705 	002634'			MOV	CTYPTR,R5	;;; YES -- POINT TO THE CTY
  10863	034520	020516 				CMP	R5,(SP)		;;; HAVE WE ALREADY CHECKED IT??
  10864	034522	001002 				BNE	20$		;;; NO -- GO ON
  10865	034524				10$:
  10866	034524	013705 	002636'			MOV	KLNPTR,R5	;;; YES -- POINT TO THE KLINIK LINE
  10867	034530				20$:
  10868	034530	032765 	000001 	000006 		BIT	#TT.OUT,STSW1(R5) ;;; IS IT FINISHED??
  10869	034536	001402 				BEQ	90$		;;; YES -- TYPE IF FINISHED
  10870	034540				30$:
  10871	034540	012605 				MOV	(SP)+,R5	;;; NO -- RESTORE POINTER
  10872	034542					RETURN			;;; RETURN TO CALLER
	034542	000207 				RTS	PC
  10873	034544				90$:
  10874	034544	005726 				TST	(SP)+		;;; CLEAR STACK
  10875					;
  10876					; OUTPUT NEXT BYTE
  10877					;
  10878						.ENABL	LSB
  10879	034546				OUTPT:
  10880	034546	013705 	002634'			MOV	CTYPTR,R5	;;; POINT TO THE CTY
  10881	034552	012703 	002664'			MOV	#CTYSTS,R3	;;; GET CTY BLOCK POINTER
  10882	034556	032713 	000017 			BIT	#FLCT,@R3	;;; SHOULD A FILL BE ECHOED?
  10883	034562	001105 				BNE	60$		;;; IF NE YES
  10884	034564	032713 	074000 			BIT	#LFCT,@R3	;;; ANY UNPROCESSED LINE FEEDS?
  10885	034570	001066 				BNE	40$		;;; IF NE YES
  10886	034572	105763 	000010 			TSTB	MECNT(R3)	;;; MULTIECHO SEQUENCE IN PROGRESS?
  10887	034576	001070 				BNE	50$		;;; IF NE YES
  10888	034600	005713 				TST	@R3		;;; INPUT OR OUTPUT IN PROGRESS?
  10889	034602	100055 				BPL	INPPT		;;; IF PL INPUT
  10890					;
  10891					; OUTPUT REQUEST IN PROGRESS
  10892					;
  10893	034604	005737 	002726'			TST	BYCNT		;;; ANY MORE BYTES TO OUTPUT?
  10894	034610	100416 				BMI	20$		;;; IF MI NO
  10895	034612	005337 	002726'			DEC	BYCNT		;;; DECREMENT BYTE COUNT
  10896	034616	100405 				BMI	10$		;;; IF MI CHECK CARRIAGE CONTROL
  10897	034620	117746 	146104 			MOVB	@CRADR,-(SP)	;;; STORE CHARACTER ON STACK
  10898									;;; !!!NOTE: THIS SHOULD BE VXFR AND BLXI!!!!!
  10899	034624	005237 	002730'			INC	CRADR		;;; UPDATE POINTER TO NEXT CHARACTER
  10900	034630	000465 				BR	ECHOB		;;; ECHO NEXT BYTE
  10901						;
  10902	034632				10$:
  10903	034632	112746 	000015 			MOVB	#C.HCRT,-(SP)	;;; ASSUME TRAILING CARRIAGE RETURN REQUIRED
  10904	034636	032713 	002000 			BIT	#CRTY,@R3	;;; OUTPUT TRAILING CARRIAGE RETURN?
  10905	034642	001060 				BNE	ECHOB		;;; IF NE YES
  10906	034644	005726 				TST	(SP)+		;;; CLEAN STACK
  10907	034646				20$:
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 209-1
TERMINAL DRIVER -- OUTPT3 (PDP-11 CTY OUTPUT ROUTINES)

  10908	034646	012737 	000001 	002730'		MOV	#IS.SUC&377,CRADR ;;; SET SUCCESSFUL COMPLETION STATUS
  10909	034654				TTYDNE:
  10910	034654	052737 	000020 	007172'		BIS	#EF.IOD,TTYTSK+A.EF ;;; SET EVENT FLAG INDICATING I/O DONE
  10911	034662					CALL	..DSEV		;;; DECLARE A SIGNIFICANT EVENT
	034662	004737 	044026'			JSR	PC,..DSEV
  10912	034666	105737 	001226'			TSTB	.KLNSW+0	;;; IS KLINIK ACTIVE??
  10913	034672	003412 				BLE	TTYDNX		;;; NO -- GO ON
  10914	034674	010546 				MOV	R5,-(SP)	;;; YES -- SAVE R5
  10915	034676	010446 				MOV	R4,-(SP)	;;; AND R4
  10916	034700	013705 	002636'			MOV	KLNPTR,R5	;;; POINT TO THE KLINIK LINE
  10917	034704	016504 	000002 			MOV	TTYEXP(R5),R4	;;; I/O PAGE POINTER TO R5
  10918	034710					CALL	STTYO		;;; START OR DEALLOCATE
	034710	004737 	034272'			JSR	PC,STTYO
  10919	034714	012604 				MOV	(SP)+,R4	;;; RESTORE REGISTERS
  10920	034716	012605 				MOV	(SP)+,R5	;;; SO
  10921	034720				TTYDNX:
  10922	034720	022705 	003046'			CMP	#DHTBL,R5	;;; CALLED FROM DH-11??
  10923	034724	101002 				BHI	30$		;;; NO --TRY THE ONE ON DL-11
  10924	034726	000137 	033676'			JMP	STTYDN		;;; GO DO ACK AND CLEAR BUSY
  10925						;
  10926	034732				30$:
  10927	034732	000137 	034272'			JMP	STTYO		;;; SEE WHAT'S NEXT FOR DL-11
  10928						;
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 210
TERMINAL DRIVER -- INPTT (PDP-11 CTY INPUT ROUTINES)

  10930						.SBTTL	TERMINAL DRIVER -- INPTT (PDP-11 CTY INPUT ROUTINES)
  10931
  10932					;
  10933					; INPUT REQUEST IN PROGRESS
  10934					;
  10935	034736				INPPT:
  10936	034736	032713 	000400 			BIT	#EOLS,@R3	;;; END OF LINE SEEN?
  10937	034742	001157 				BNE	INPT1
  10938	034744				INPT0:
  10939	034744					RETURN
	034744	000207 				RTS	PC
  10940					;
  10941					; ECHO LINE FEED
  10942					;
  10943	034746				40$:
  10944	034746	162713 	004000 			SUB	#LFBT,@R3	;;; REDUCE LINE FEED COUNT
  10945	034752	112746 	000012 			MOVB	#C.HLFD,-(SP)	;;; SET TO ECHO LINE FEED
  10946	034756	000412 				BR	ECHOB		;;; ECHO BYTE
  10947						;
  10948					;
  10949					; MULTI-ECHO SEQUENCE
  10950					;
  10951	034760				50$:
  10952	034760	117346 	000012 			MOVB	@MEBUF(R3),-(SP) ;;; SET NEXT BYTE TO ECHO
  10953	034764	005263 	000012 			INC	MEBUF(R3)	;;; INCREMENT BUFFER ADDRESS
  10954	034770	105363 	000010 			DECB	MECNT(R3)	;;; DECREMENT MULTIECHO BYTE COUNT
  10955	034774	000403 				BR	ECHOB		;;; ECHO BYTE
  10956						;
  10957					;
  10958					; ECHO FILL BYTE
  10959					;
  10960	034776				60$:
  10961	034776	005313 				DEC	@R3		;;; DECREMENT FILL COUNT
  10962	035000	116346 	000011 			MOVB	FLBYT(R3),-(SP)	;;; SET TO ECHO FILL BYTE
  10963						.DSABL	LSB
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 211
TERMINAL DRIVER -- ECHOB (PDP-11 CTY ECHO ROUTINES)

  10965						.SBTTL	TERMINAL DRIVER -- ECHOB (PDP-11 CTY ECHO ROUTINES)
  10966
  10967					;
  10968					; ECHO NEXT BYTE
  10969					;
  10970
  10971	035004				ECHOB:
  10972	035004	042716 	177600 			BIC	#177600,@SP	;;; MASK OFF PARITY
  10973	035010	121627 	000037 			CMPB	@SP,#37		;;; IS THIS A CONTROL BYTE?
  10974	035014	101041 				BHI	70$		;;; IF HI NO
  10975	035016	122716 	000015 			CMPB	#C.HCRT,@SP	;;; CARRIAGE RETURN?
  10976	035022	001422 				BEQ	10$		;;; IF EQ YES
  10977	035024	101041 				BHI	80$		;;; IF HI GO ON
  10978	035026	122716 	000012 			CMPB	#C.HLFD,@SP	;;; LINE FEED, FORM FEED OR VERTICAL TAB?
  10979	035032	101424 				BLOS	50$		;;; IF LOS YES
  10980	035034	122716 	000011 			CMPB	#C.HTAB,@SP	;;; HORIZONTAL TAB?
  10981	035040	001033 				BNE	80$		;;; IF NE NO
  10982					;
  10983					; HORIZONTAL TAB
  10984					;
  10985	035042	116316 	000016 			MOVB	HORPS(R3),@SP	;;; GET CURRENT HORIZONTAL POSITION
  10986	035046	052716 	177770 			BIS	#177770,@SP	;;; CALCULATE BLANK COUNT TO NEXT TAB STOP
  10987	035052	005416 				NEG	@SP
  10988	035054	051613 				BIS	@SP,@R3		;;; MERGE BLANK COUNT
  10989	035056	112763 	000040 	000011 		MOVB	#' ,FLBYT(R3)	;;; SET FILL TO A BLANK
  10990	035064				5$:
  10991	035064	005726 				TST	(SP)+		;;; REMOVE BYTE FROM STACK
  10992	035066	000627 				BR	OUTPT		;;; START OUTPUT
  10993						;
  10994					;
  10995					; CARRIAGE RETURN
  10996					;
  10997	035070				10$:
  10998	035070				20$:
  10999	035070	052713 	001000 			BIS	#CRJT,@R3	;;; SET CARRIAGE RETURN JUST TYPED
  11000	035074	005213 				INC	@R3		;;; ALWAYS ONE FILL BYTE
  11001	035076	105063 	000016 			CLRB	HORPS(R3)	;;; CLEAR HORIZONTAL POSITION
  11002	035102	000403 				BR	60$		;;; OUTPUT CARRIAGE RETURN
  11003						;
  11004					;
  11005					; FORM FEED OR VERTICAL TAB OR LINE FEED
  11006					;
  11007	035104				50$:
  11008	035104	042713 	001000 			BIC	#CRJT,@R3	;;; CLEAR CARRIAGE RETURN JUST TYPED
  11009	035110	000407 				BR	80$
  11010						;
  11011	035112				60$:
  11012	035112	105063 	000011 			CLRB	FLBYT(R3)	;;; SET NULL FILL BYTE
  11013	035116	000404 				BR	80$
  11014						;
  11015					;
  11016					; BYTE REQUIRES HORIZONTAL POSITION
  11017					;
  11018	035120				70$:
  11019	035120	042713 	001000 			BIC	#CRJT,@R3	;;; CLEAR CARRIAGE RETURN JUST TYPED
  11020	035124	105263 	000016 			INCB	HORPS(R3)	;;; INCREMENT HORIZONTAL POSITION
  11021	035130				80$:
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 211-1
TERMINAL DRIVER -- ECHOB (PDP-11 CTY ECHO ROUTINES)

  11022	035130	005713 				TST	@R3		;;; INPUT MODE?
  11023	035132	100003 				BPL	81$		;;; IF PL YES
  11024	035134	032713 	000040 			BIT	#CTLO,@R3	;;; OUTPUT DISABLED?
  11025	035140	001351 				BNE	5$		;;; IF NE YES
  11026	035142				81$:
  11027	035142	105737 	001226'			TSTB	.KLNSW+0	;;; KLINIK REMOTE MODE ACTIVE?
  11028	035146	003420 				BLE	82$		;;; NO -- BETTER LEAVE IT ALONE
  11029	035150	010546 				MOV	R5,-(SP)	;;; SAVE DLS POINTER
  11030	035152	013705 	002636'			MOV	KLNPTR,R5	;;; GET KLINIK DLS POINTER
  11031	035156	016504 	000002 			MOV	TTYEXP(R5),R4	;;; POINT TO CSR
  11032	035162	001411 				BEQ	84$		;;; IGNORE IF NOT THERE
  11033	035164	116664 	000002 	000006 		MOVB	2(SP),6(R4)	;;; START KLINIK LINE
  11034	035172	052764 	000100 	000004 		BIS	#DL.XEN,4(R4)	;;; ENABLE XMTR INTERRUPTS
  11035	035200	052765 	000001 	000006 		BIS	#TT.OUT,STSW1(R5) ;;; SET TTY BUSY
  11036	035206				84$:
  11037	035206	012605 				MOV	(SP)+,R5	;;; RESTORE CTY POINTER
  11038	035210				82$:
  11039	035210	016504 	000002 			MOV	TTYEXP(R5),R4	;;; GET ADDRESS OF CONTROL STATUS REGISTER
  11040	035214	022705 	003046'			CMP	#DHTBL,R5	;;; IS THIS A DL-11 ??
  11041	035220	101021 				BHI	90$		;;; YES -- SPECIAL CASE
  11042	035222	112637 	002704'			MOVB	(SP)+,DHBUF+CTYSTS ;;; PUT BYTE IN OUTPUT BUFFER
  11043	035226	042714 	001077 			BIC	#1077,@R4	;;; CLEAR CURRENT UNIT
  11044	035232	153714 	002640'			BISB	$UNIT,@R4	;;; SELECT DESIRED UNIT
  11045	035236	042724 	000060 			BIC	#60,(R4)+
  11046	035242	062704 	000004 			ADD	#4,R4		;;; POINT TO CURRENT ADDRESS REGISTER
  11047	035246	012724 	002704'			MOV	#DHBUF+CTYSTS,(R4)+
  11048	035252	012724 	177777 			MOV	#-1,(R4)+	;;; SET BYTE COUNT TO MINUS ONE
  11049	035256	053714 	002642'			BIS	$BTMSK,@R4 	;;; START OUTPUT
  11050	035262	000405 				BR	99$		;;; MARK OUTPUT BUSY AND EXIT
  11051						;
  11052	035264				90$:
  11053	035264	112664 	000006 			MOVB	(SP)+,6(R4)	;;; OUTPUT BYTE
  11054	035270	052764 	000100 	000004 		BIS	#DL.XEN,4(R4)	;;; ENABLE OUTPUT INTERRUPT
  11055	035276				99$:
  11056	035276	000137 	034360'			JMP	TTOUTX		;;; MARK OUTPUT BUSY AND EXIT
  11057						;
  11058					;
  11059					; END OF INPUT LINE
  11060					;
  11061	035302				INPT1:
  11062	035302	012703 	002666'			MOV	#CTYSTS+2,R3	;;; FIND THE TERMINAL STATUS WORD
  11063	035306	117337 	000000 	002730'		MOVB	@(R3),CRADR	;;; FIND THE LAST CHARACTER
  11064	035314	016346 	000004 			MOV	4(R3),-(SP)
  11065	035320	162316 				SUB	(R3)+,@SP	;;; FIND THE BYTE COUNT
  11066	035322	112713 	000001 			MOVB	#IS.SUC&377,@R3 ;;; ASSUME NORMAL TERMINATION
  11067	035326	012300 				MOV	(R3)+,R0	;;; GET FINAL BYTE AND STATUS
  11068	035330	100006 				BPL	40$		;;; IF PL NORMAL TERMINATION
  11069	035332	012700 	015366 			MOV	#32*400+366,R0	;;; ASSUME ^Z
  11070	035336	105243 				INCB	-(R3)		;;; CONTROL Z?
  11071	035340	001402 				BEQ	40$		;;; IF EQ YES
  11072	035342	012700 	000361 			MOV	#IE.ABO&377,R0	;;; SET ABORT STATUS
  11073	035346				40$:
  11074	035346	013701 	002732'			MOV	TTPKT,R1	;;; FIND THE PACKET ADDRESS
  11075	035352	010037 	002730'			MOV	R0,CRADR	;;; SAVE THE STARTS FIRST WORD
  11076	035356	012661 	000026 			MOV	(SP)+,R.PB+2(R1) ;;; STORE THE BYTE COUNT
  11077	035362				50$:
  11078	035362	000137 	034654'			JMP	TTYDNE
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 211-2
TERMINAL DRIVER -- ECHOB (PDP-11 CTY ECHO ROUTINES)

  11079						;
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 212
TERMINAL DRIVER -- .KW11S (KW11 LINE CLOCK INTERRUPT)

  11081						.SBTTL	TERMINAL DRIVER -- .KW11S (KW11 LINE CLOCK INTERRUPT)
  11082
  11083					;+
  11084					; **- .KW11S -- LINE CLOCK INTERRUPT SERVICE HANDLER
  11085					;
  11086					;	THIS ROUTINE UPDATES THE COUNT OF CLOCK TICK WHICH ARE PENDING
  11087					;	SERVICE (NORMALLY ONLY ONE).  THESE CLOCK TICKS ARE HONORED AT
  11088					;	TASK LEVEL AT "..INTX".
  11089					;
  11090					;	THIS ROUTINE WILL:
  11091					;
  11092					;		1. INITIATE THE SECOND HALF OF THE INPUT DISABLE PROCESS FOR ALL
  11093					;		   WHICH HAVE FINISHED THE FIRST HALF
  11094					;		2. ENABLE A SINGLE LOCALLY (INPUT) DISABLED LINE, IF CONDITIONS ALLOW.
  11095					;		3. TRY TO UNBLOCK THE DTE IF IT WAS BLOCKED
  11096					;
  11097					;	AN ATTEMPT IS MADE TO START UP THE TO-10 QUEUE ON EVERY CLOCK TICK AS WELL.
  11098					;-
  11099
  11100	035366				.KW11S::
  11101	035366					CALL	R3,DHSAV	;;; [4.2095] MUST SAVE REGISTERS
	035366	004337 	037274'			JSR	R3,DHSAV
  11102	035372	105237 	001015'			INCB	.SERFG+1	;;; [4.2095] BUMP PENDING TICK COUNT
  11103	035376	005737 	005046'			TST	.TTS2F		;;; [5.1015] LINES NEED ATTENTION??
  11104	035402	001417 				BEQ	30$		;;; [4.4.1066] NO -- GO ON
  11105					;
  11106					; HERE TO CONTINUE INPUT DISABLE PROCESS
  11107					;
  11108	035404	012705 	002776'			MOV	#TTTBL,R5	;;; [5.1015] DLS TABLE POINTER TO R5
  11109	035410	012700 	000205 			MOV	#TTCNT,R0	;;; [5.1015] LINE COUNT TO R0
  11110	035414				10$:
  11111	035414					CALL	.TTSW2		;;; [5.1017] FIND OUT "STSW2" ENTRY
	035414	004737 	042754'			JSR	PC,.TTSW2
  11112	035420	032712 	040000 			BIT	#S2.DIP,(R2)	;;; [5.1015] YES -- INPUT XOFF IN PROGRESS??
  11113	035424	001403 				BEQ	20$		;;; [5.1015] NO -- GO ON
  11114	035426					CALL	.TTCHK		;;; [5.1015] YES -- COUNT THIS CLOCK TICK
	035426	004737 	042124'			JSR	PC,.TTCHK
  11115	035432	001403 				BEQ	30$		;;; [5.1015] EXIT IF DONE
  11116	035434				20$:
  11117	035434	062705 	000010 			ADD	#10,R5		;;; [5.1015] ADVANCE POINTER
  11118	035440	077013 				SOB	R0,10$		;;; [5.1015] CHECK ALL LINES
  11119	035442				30$:
  11120	035442	005737 	005050'			TST	.S2IDC		;;; [4.1.1092] ARE ANY DISABLED LINES PENDING??
  11121	035446	001412 				BEQ	40$		;;; [4.1.1092] NO -- TRY TO UNBLOCK THE DTE
  11122					;
  11123					; HERE TO ENABLE A LOCALLY DISABLED LINE
  11124					;
  11125	035450	023737 	005056'	001422'		CMP	.IBFOK,.FREPL+2	;;; [4.1.1092] YES -- CAN WE ENABLE NOW??
  11126	035456	101044 				BHI	DHISTQ		;;; [4.1.1092] NO -- GO ON
  11127	035460					CALL	.TTFDI		;;; [4.1.1092] YES -- FIND THE NEXT LINE TO ENABLE
	035460	004737 	041360'			JSR	PC,.TTFDI
  11128	035464					CALL	.TTENB		;;; [4.1.1092] AND ENABLE IT
	035464	004737 	042464'			JSR	PC,.TTENB
  11129	035470	005337 	005050'			DEC	.S2IDC		;;; [4.1.1092] ACCOUNT FOR THE LINE
  11130	035474				40$:
  11131	035474	005737 	001012'			TST	.COMEF+2	;;; [4.1.1092] PRIMARY PROTOCOL RUNNING ??
  11132	035500	100033 				BPL	DHISTQ		;;; [4.1.1092] NO -- GO ON
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 212-1
TERMINAL DRIVER -- .KW11S (KW11 LINE CLOCK INTERRUPT)

  11133	035502	005737 	001374'			TST	.DTBLK		;;; [4.1.1121] IS THE DTE BLOCKED??
  11134	035506	001430 				BEQ	DHISTQ		;;; [4.1.1121] NO -- START THE TO-10 QUEUE
  11135	035510	013700 	001360'			MOV	.PRDTE,R0	;;; [4.1.1121] POINT TO THE DTE-20
  11136	035514	013703 	001354'			MOV	.PRADR,R3	;;; [4.1.1121] AND THE PROCESSOR TABLE
  11137	035520					CALL	@.DTBLK		;;; [4.1.1121] TRY TO UNBLOCK THE DTE
	035520	004777 	143650 			JSR	PC,@.DTBLK
  11138	035524	001021 				BNE	DHISTQ		;;; [4.1.1121]  GO ON IF STILL BLOCKED
  11139	035526					CALL	.KPALV		;;; [4.1.1121] OTHERWISE DO KEEP-ALIVE
	035526	004737 	031326'			JSR	PC,.KPALV
  11140	035532	000416 				BR	DHISTQ		;;; [4.1.1066] START THE TO-10 QUEUE
  11141						;
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 213
TERMINAL DRIVER -- $DHINP (DH-11 INPUT INTERRUPT)

  11143						.SBTTL	TERMINAL DRIVER -- $DHINP (DH-11 INPUT INTERRUPT)
  11144
  11145					;+
  11146					; **-$DHINP-DH-11 TERMINAL MULTIPLEXER INPUT INTERRUPTS
  11147					;
  11148					; THIS IS THE DH-11 INTERRUPT SERVICE HEAD, ALL DEVICE DEPENDENT INPUT
  11149					; PROCESSING IS DONE IN THIS ROUTINE.  THE SPECIFIC FUNCTIONS PERFORMED
  11150					; HERE ARE:
  11151					;
  11152					;	1. SILO UNLOAD
  11153					;	2. AUTO-BAUD DETECT
  11154					;	3. FRAMING ERROR PROCESSING
  11155					;	4. TO-10 QUEUE ENTRY.
  11156					;	5. TO-10 QUEUE START-UP.
  11157					;
  11158					; THE SILO UNLOAD WILL DUMP THE INTERRUPTING DH-11'S SILO UNTIL:
  11159					;
  11160					;	1. THE SILO IS EMPTIED
  11161					;	2. AN XOFF CHARACTER IS UNLOADED FROM A LINE WHICH IS ENABLED FOR
  11162					;	   LOCAL XOFF PROCESSING.
  11163					;
  11164					; THE LAST POINT IS REQUIRED BECAUSE OF SUSPECTED DH-11 HARDWARE BUG WHICH
  11165					; APPEARS TO CAUSE THE SILO TO "LOCK-UP" AFTER THE TRANSMITTER IS X'D-OFF.
  11166					;
  11167					; WHEN THE SILO UNLOAD IS COMPLETE, AN ATTEMPT IS MADE TO START UP THE TO-10 QUEUE.
  11168					;
  11169					; AUTO-BAUD DETECTION IS PERFORMED FOR LINES WHICH ARE IN AUTO-BAUD WAIT; THAT IS,
  11170					; CONNECTED BUT NO SPEED DETERMINED AS YET.  AUTO-BAUD DETECTION IS KEYED ON
  11171					; <CONTROL-C> AND <CARRIAGE-RETURN> CHARACTERS FOR LINE SPEEDSS OF 110, 150, 300,
  11172					; AND 1200 BAUD.  AUTO-BAUD DETECT CONTINUES UNTIL A PATTERN MATCH IS MADE, OR
  11173					; THE LINE DISCONNECTS. CHARACTERS EXAMINED FOR AUTO-BAUD DETECT ARE NOT
  11174					; CHECKED FOR FRAMING ERRORS OR ENTERED INTO THE TO-10 QUEUE.
  11175					;
  11176					; WHEN THE LINE HAS SUCCESSFULLY AUTO-BAUDED, THE CONNECT MESSAGE IS SENT TO THE
  11177					; HOST, AS OPPOSED TO WHEN CARRIER IS ASSERTED FOR NON-AUTO-BAUD LINES.
  11178					; A REQUEST IS ALSO MADE TO REPORT THE LINE SPEED TO THE HOST.
  11179					;
  11180					; FRAMING ERRORS ARE SENSED AND COUNTED FOR EACH CHARACTER RECEIVED FROM A GIVEN
  11181					; LINE.  THE FRAMING ERROR COUNT IS CLEARED UPON RECEIPT OF A CHARACTER WITHOUT
  11182					; AN ASSOCIATED FRAMING ERROR.  WHEN FOUR (4) CONSECUTIVE FRAMING ERRORS HAVE
  11183					; BEEN TALLIED FOR A LINE, ITS INPUT SPEED IS SET TO ZERO BAUD, AND FLAGGED TO
  11184					; HAVE ITS INPUT SPEED REENABLED BY THE TERMINAL POLLING SERVICE (".DHTMO", Q.V.)
  11185					;
  11186					; THE FOUR ERROR CHARACTERS ARE PASSED TO THE HOST, ALL SUBSEQUENT ERROR CHARACTERS
  11187					; ARE IGNORED.
  11188					;
  11189					; NORMAL CHARACTERS ARE SIMPLY ENTERED INTO THE TO-10 QUEUE.
  11190					;-
  11191
  11192						.ENABL	LSB
  11193
  11194	035534				$DHINP::			;;; REFERENCE LABEL
  11195	035534	013737 	177776 	002646'		MOV	@#PS,DHTMP	;;; SAVE THE CONTROLLER NUMBER
  11196	035542					CALL	R3,DHSAV	;;; SAVE R3 AND SETUP R4 AND R5
	035542	004337 	037274'			JSR	R3,DHSAV
  11197	035546	001415 				BEQ	30$		;;; GUARD AGAINST SPURIOUS INTERRUPTS
  11198	035550				10$:
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 213-1
TERMINAL DRIVER -- $DHINP (DH-11 INPUT INTERRUPT)

  11199	035550	010537 	002652'			MOV	R5,DHSTSV	;;; SET UP THE HEAD OF THIS CONTROLLER TABLE ADDRESS
  11200	035554				20$:
  11201	035554	012746 	035554'			MOV	#20$,-(SP)	;;; [4.2244] SET RETURN ADDRESS
  11202	035560	016446 	000002 			MOV	2(R4),-(SP)	;;; GET NEXT BYTE FROM CONTROLLER SILO
  11203	035564	100407 				BMI	40$		;;; PROCESS CHARACTER FROM LINE IF THERE
  11204	035566	032626 				BIT	(SP)+,(SP)+	;;; REMOVE NULL CHARACTER AND RETURN ADDRESS
  11205	035570				DHISTQ:				;;; [4.2095] REMOVED 4 INSTRUCTIONS
  11206	035570	005737 	001012'			TST	.COMEF+2	;;; [4.1.1105] PRIMARY PROTOCOL RUNNING??
  11207	035574	100002 				BPL	30$		;;; [4.1.1105] NO -- DON'T BOTHER IT
  11208	035576					CALL	..STQ		;;; [4.2095] YES -- ATTEMPT TO START TO-10 QUEUE
	035576	004737 	046046'			JSR	PC,..STQ
  11209	035602				30$:
  11210	035602					RETURN			;;; DISMISS INTERRUPT
	035602	000207 				RTS	PC
  11211					;
  11212					;	HERE WITH A CHARACTER TO PROCESS
  11213					;
  11214	035604				40$:
  11215	035604	116605 	000001 			MOVB	1(SP),R5	;;; GET THE LINE NUMBER
  11216	035610	042705 	177760 			BIC	#^C17,R5	;;; GET RID OF ERRORS, ETC.
  11217	035614	010503 				MOV	R5,R3		;;; COPY LINE NUMBER TO R3
  11218	035616	006305 				ASL	R5		;;; MAKE A TABLE POINTER TO LINE WTHIN MUX
  11219	035620	006305 				ASL	R5		;;;
  11220	035622	006305 				ASL	R5		;;;
  11221	035624	063705 	002652'			ADD	DHSTSV,R5	;;; FROM BASE OF CONTROLLER TABLE
  11222	035630	005737 	001012'			TST	.COMEF+2	;;; [4.1.1105] IS PRIMARY PROTOCOL RUNNING??
  11223	035634	100052 				BPL	70$		;;; [4.1.1105] NO -- JUST CHECK FRAMING ERRORS
  11224	035636	032765 	000010 	000006 		BIT	#TT.ABW,STSW1(R5) ;;; YES -- IS THE LINE IN IN AUTO-BAUD WAIT??
  11225	035644	001446 				BEQ	70$		;;; [4.2205] NO -- CHECK FOR FRAMING ERROR
  11226					;
  11227					;	HERE WITH A CHARACTER FROM AN AUTO-BAUD LINE
  11228					;
  11229	035646	005002 				CLR	R2		;;; YES -- CLEAR TABLE INDEX
  11230	035650	012701 	000013 			MOV	#CHTBLN,R1	;;; [4.2103] TABLE LENGTH TO R1
  11231	035654				50$:
  11232	035654	121662 	032344'			CMPB	(SP),CHTBL(R2)	;;; MATCH A BIT PATTERN??
  11233	035660	001404 				BEQ	60$		;;; YES -- DONE
  11234	035662	005202 				INC	R2		;;; NO -- NEXT PATTERN
  11235	035664	077105 				SOB	R1,50$		;;; TRY AGAIN
  11236	035666	000137 	036374'			JMP	TTINPB		;;; NO MATCH -- FLUSH CHRARACTER AND DISMISS
  11237						;
  11238					;
  11239					;	HERE ON AUTO-BAUD PATTERN MATCH
  11240					;
  11241	035672				60$:				;;; HERE ON BIT PATTERN MATCH
  11242	035672	116202 	032360'			MOVB	IDXTB(R2),R2	;;; [4.2103] FIND INDEX FOR LINE SPEED
  11243	035676	016203 	032374'			MOV	SPDTB(R2),R3	;;; [4.2103] FIND THE SPEED
  11244	035702	016546 	000004 			MOV	STSW0(R5),-(SP)	;;; [4.1.1088] FIND THE CURRENT SPEED
  11245	035706	042716 	140000 			BIC	#S0.MSK,(SP)	;;; [4.1.1088] MASK OFF FLAGS
  11246	035712	020326 				CMP	R3,(SP)+	;;; [4.1.1088] DO THEY MATCH??
  11247	035714	001407 				BEQ	65$		;;; [4.1.1088] YES -- GO ON
  11248	035716	042765 	037777 	000004 		BIC	#^C<S0.MSK>,STSW0(R5) ;;; [4.1.1088] NO -- FLUSH OLD SPEED
  11249	035724	050365 	000004 			BIS	R3,STSW0(R5)	;;; [4.1.1088] AND SET THIS ONE
  11250	035730	000137 	036374'			JMP	TTINPB		;;; [4.1.1088] DISMISS AND WAIT FOR ANOTHER MATCH
  11251						;
  11252	035734				65$:
  11253	035734	042765 	000010 	000006 		BIC	#TT.ABW,STSW1(R5) ;;; NO LONGER IN AUTO-BAUD WAIT
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 213-2
TERMINAL DRIVER -- $DHINP (DH-11 INPUT INTERRUPT)

  11254	035742					CALL	.DHSPD		;;; SET THE LINE SPEED
	035742	004737 	037554'			JSR	PC,.DHSPD
  11255	035746					CALL	.DHSPF		;;; FLAG THE NEW SPEED
	035746	004737 	037514'			JSR	PC,.DHSPF
  11256	035752					CALL	.STTYD		;;; RING THE LINE
	035752	004737 	040060'			JSR	PC,.STTYD
  11257	035756	000137 	036374'			JMP	TTINPB		;;; DISMISS THE INTERRUPT
  11258						;
  11259					;
  11260					; HERE TO CHECK FOR A FRAMING ERROR
  11261					;
  11262	035762				70$:				;;; [4.2205]
  11263	035762	032765 	000100 	000006 		BIT	#TT.RMT,STSW1(R5)	;;; [RCO 32681] REMOTE LINE ?
  11264	035770	001404 				BEQ	75$		;;; [RCO 32681] BRANCH IF NOT
  11265	035772	032765 	040000 	000004 		BIT	#S0.CON,STSW0(R5) ;;; [RCO 32681] CONNECTED ?
  11266	036000	001575 				BEQ	TTINPB		;;; [RCO 32681] EXIT IF NOT
  11267	036002				75$:
  11268	036002					CALL	.TTSW2		;;; [RCO 32681] FIND OUR STSW2 ENTRY
	036002	004737 	042754'			JSR	PC,.TTSW2
  11269	036006	005712 				TST	(R2)		;;; [RCO 32681] LINE SHUT OFF BY US ?
  11270	036010	100440 				BMI	SNDBEL		;;; [RCO 32681] BRANCH IF SO
  11271	036012	032716 	020000 			BIT	#DH.FER,(SP)	;;; [4.2205] FRAMING ERROR PRESENT??
  11272	036016	001004 				BNE	80$		;;; [4.2205] YES -- COUNT IT UP
  11273	036020	042765 	014000 	000006 		BIC	#TT.FEC,STSW1(R5) ;;; [4.2205] NO -- FLUSH ANY PREVIOUS COUNT
  11274	036026	000501 				BR	TTSTCH		;;; [4.2205] STORE THE CHARACTER AND RETURN
  11275						;
  11276					;
  11277					; HERE TO COUNT A FRAMING ERROR AND SHUT OFF THE LINE IF REQUIRED
  11278					;
  11279	036030				80$:				;;; [4.2205]
  11280	036030	032765 	020000 	000006 		BIT	#TT.RSI,STSW1(R5) ;;; [4.2205] INPUT RESTART ALREADY PENDING??
  11281	036036	001156 				BNE	TTINPB		;;; [4.2205] YES -- FLUSH CHARACTER AND RETURN
  11282	036040	062765 	004000 	000006 		ADD	#TT.FEI,STSW1(R5) ;;; [4.2205] NO -- COUNT THIS FRAMING ERROR
  11283									;;; [4.2205] NOTE: THIS WILL ALSO SET "TT.RSI" ON
  11284									;;; [4.2205]       FRAMING ERROR COUNT OVERFLOW
  11285	036046	016502 	000006 			MOV	STSW1(R5),R2	;;; [4.2205] COPY STATUS WORD TO R2
  11286	036052	042702 	163777 			BIC	#^C<TT.FEC>,R2	;;; [4.2205] MASK AND TEST FRAMING ERROR COUNT
  11287	036056	001065 				BNE	TTSTCH		;;; [4.2205] STILL OK -- GO ON
  11288	036060	042714 	001077 			BIC	#1077,(R4)	;;; [4.2205] OVERFLOWED -- CLEAR LINE NUMBER
  11289	036064	050314 				BIS	R3,(R4)		;;; [4.2205] SET THIS LINE NUMBER
  11290	036066	042764 	001700 	000004 		BIC	#S0.ISP,4(R4)	;;; [4.2205] SET INPUT SPEED TO ZERO
  11291	036074	012703 	000300 			MOV	#DV.LOG!DV.URE,R3 ;;; [4.2245] SET STANDARD STATUS
  11292	036100	011637 	002660'			MOV	(SP),.TTELB	;;; [4.2245] SAVE THE ERROR DATA
  11293	036104					CALL	.TTERL		;;; [4.2245] LOG THE ERROR
	036104	004737 	041426'			JSR	PC,.TTERL
  11294	036110	000450 				BR	TTSTCH		;;; [4.2205] STORE THE CHARACTER AND EXIT
  11295						;
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 214
TERMINAL DRIVER -- $DHINP (DH-11 INPUT INTERRUPT)

  11297	036112				SNDBEL::
  11298	036112	032765 	000001 	000006 		BIT	#TT.OUT,STSW1(R5) ;;; [RCO 32681] OUTPUT IN PROGRESS ?
  11299	036120	001125 				BNE	TTINPB		;;; [RCO 32681] EXIT IF SO
  11300	036122	042714 	001077 			BIC	#1077,(R4)	;;; [RCO 32681] CLEAR OLD LINE NUMBER
  11301	036126	050314 				BIS	R3,(R4)		;;; [RCO 32681] SET NEW LINE NUMBER
  11302	036130	012764 	036164'	000006 		MOV	#BELADR,6(R4)	;;;[RCO 32681] SET THE ADDRESS FOR OUTPUT
  11303	036136	012764 	177777 	000010 		MOV	#-1,10(R4)	;;; [RCO 32681] AND THE BYTE COUNT
  11304	036144	011402 				MOV	@R4,R2		;;; [RCO 32681] GET THE DH UNIT NUMBER
  11305	036146	042702 	177760 			BIC	#177760,R2	;;; [RCO 32681] CLEAR ANY EXTRAS
  11306	036152	006302 				ASL	R2		;;; [RCO 32681] MAKE IT A WORD INDEX
  11307	036154	056264 	043022'	000012 		BIS	BITTBL(R2),12(R4) ;;; [RCO 32681] START THE DH GOING
  11308	036162	000504 				BR	TTINPB		;;; [RCO 32681] AND EXIT
  11309						;
  11310	036164				BELADR::
  11311	036164	   007 				.BYTE	7
  11312						.EVEN
  11313						.DSABL	LSB
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 215
TERMINAL DRIVER -- $TTINP (DL-11 INPUT INTERRUPT)

  11315						.SBTTL	TERMINAL DRIVER -- $TTINP (DL-11 INPUT INTERRUPT)
  11316
  11317					;+
  11318					; **-$TTINP-DL-11 TERMINAL INPUT INTERRUPTS
  11319					;
  11320					; THIS IS THE DL-11 INPUT INTERRUPT HEAD, ALL DEVICE DEPENDENT INPUT PROCESSING
  11321					; IS DONE HERE.
  11322					;
  11323					; THE DL-11 INPUT SERVICE IS MUCH SIMPLER THAT THAT OF THE DH-11.  CONTROL WILL
  11324					; BE TRANSFERRED TO THE DL-11E MODEM INTERRUPT SERVICE, IF REQUIRED.  CHARACTERS
  11325					; WITH FRAMING ERRORS ARE SIMPLY IGNORED, AND AN ATTMEPT IS MADE TO START THE
  11326					; TO-10 QUEUE WHE THE INTERRUPT IS DISMISSED.
  11327					;
  11328					; CHARACTERS FROM DL-11'S ARE ENTERED INTO THE TO-10 QUEUE FOR TRANSMISSION TO
  11329					; THE HOST IN THE SAME MANNER AS ARE CHARACTERS FROM DH-11'S.
  11330					;-
  11331
  11332						.ENABL	LSB
  11333
  11334	036166				$TTINP::			;;; REF LABEL
  11335	036166	013737 	177776 	002650'		MOV	@#PS,DLTMP	;;; SAVE CONTROLLER NUMBER
  11336	036174					CALL	R3,TTSAV	;;; SAVE R3 AND SETUP R4 AND R5
	036174	004337 	037332'			JSR	R3,TTSAV
  11337	036200	001536 				BEQ	80$		;;; SPURIOUS INTERRUPT
  11338	036202	011400 				MOV	(R4),R0		;;; GET STATUS
  11339	036204	100535 				BMI	.DLINT		;;; THIS IS MODEM INTERRUPT.
  11340	036206				TTINPA:
  11341	036206	012746 	035570'			MOV	#DHISTQ,-(SP)	;;; RETURN THROUGH TO10Q STARTUP
  11342	036212	016446 	000002 			MOV	2(R4),-(SP)	;;; GET INPUT BYTE AND FLAGS
  11343	036216	032716 	020000 			BIT	#DL.FER,(SP)	;;; FRAMING ERROR PRESENT??
  11344	036222	001064 				BNE	TTINPB		;;; YES -- FORGET IT
  11345	036224	105765 	000004 			TSTB	STSW0+0(R5)	;;; [4.2284] NO -- IS THIS LINE TURNED OFF??
  11346	036230	001061 				BNE	TTINPB		;;; YES -- GO AWAY
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 216
TERMINAL DRIVER -- TTSTCH (STORE CHARACTER IN TO10Q)

  11348						.SBTTL	TERMINAL DRIVER -- TTSTCH (STORE CHARACTER IN TO10Q)
  11349
  11350					;+
  11351					; TTSTCH -- STORE TERMINAL CHARACTER IN TO-10 QUEUE
  11352					;
  11353					; THIS ROUTINE PERFORMS DEVICE INDEPENDENT INPUT CHARACTER PROCESSING.
  11354					; SPECIFIC FUNCTIONS PERFORMED ARE:
  11355					;
  11356					;	1. KLINIK INPUT PROCESSING
  11357					;	2. PROTOCOL PAUSE INPUT PRECESSING
  11358					;	3. LOCAL XOFF PROCESSING
  11359					;	4. PDP-11 CTY INPUT PROCESSING
  11360					;	5. SECONDARY PROTOCOL INPUT PROCESSING.
  11361					;
  11362					; CHARACTERS FROM THE KLINIK LINE ARE IGNORED IF KLINIK IS NOT ENABLED.
  11363					;
  11364					; CHARACTERS RECEIVED DURING PROTOCOL PAUSE ARE BUFFERED UNTIL A MINIMUM THRESHOLD
  11365					; IS CROSSED, WHEREUPON THE FRONT-END IS CRASHED (B01).
  11366					;
  11367					; XOFF CHARACTERS ARE PROCESSED LOCALLY FOR LINES WHICH ARE SO ENABLED.  THE
  11368					; RETURN IS ALTERED SO AS TO TERMINATE A DH-11 SILO UNLOAD.
  11369					;
  11370					; PDP-11 CTY CHARACTERS ARE ECHOED AND PASSED TO THE TASK WHICH "OWNS" THE CTY.
  11371					;
  11372					; A <CONTROL-C> CHARACTER IS DECLARED AS A SIGNIFICANT EVENT.
  11373					; A <CONTROL-BACKSLASH> CHARACTER REQUESTS THE PARSER TASK.
  11374					;
  11375					; CHARACTERS RECEIVED WHILE IN SECONDARY PROTOCOL ARE PASSED TO THE BOOT
  11376					; PROTOCOL TASK.
  11377					;
  11378					; NORMAL CHARACTERS RECEIVED IN PRIMARY PROTOCOL ARE QUEUED UP FOR TRANSMISSION
  11379					; TO THE HOST.  CHARACTERS RECEIVED FROM A LINE WHICH IS IN CARRIER-WAIT ARE
  11380					; IGNORED.
  11381					;-
  11382
  11383	036232				TTSTCH:
  11384	036232	020537 	002636'			CMP	R5,KLNPTR	;;; IS THIS THE KLINIK LINE??
  11385	036236	001003 				BNE	10$		;;; NO -- GO ON
  11386	036240	105737 	001226'			TSTB	.KLNSW+0	;;; YES -- IS KLINIK ACTIVE??
  11387	036244	001453 				BEQ	TTINPB		;;; NO -- GO AWAY
  11388	036246				10$:
  11389	036246	032765 	000002 	000006 		BIT	#TT.CTY,STSW1(R5) ;;; IS THIS THE CTY?
  11390	036254	001051 				BNE	50$		;;; YES -- SPECIAL CASE
  11391	036256				20$:				;;; [4.2211]
  11392	036256	032765 	000004 	000006 		BIT	#TT.CRW,STSW1(R5) ;;; [4.2333] NO -- IS THE LINE IN CARRIER-WAIT??
  11393	036264	001043 				BNE	TTINPB		;;; [4.2333] YES -- IGNORE IT
  11394	036266	005737 	001012'			TST	.COMEF+2	;;; [4.1.1105] NO -- IS PRIMARY PROTOCOL RUNNING?
  11395	036272	100410 				BMI	30$		;;; [4.1.1105] YES -- GO ON
  11396	036274	105737 	001372'			TSTB	.PRPSE		;;; [4.2211] NO -- PROTOCOL PAUSE??
  11397	036300	001435 				BEQ	TTINPB		;;; [4.2211] NO -- FLUSH CHARACTER AND DISMISS
  11398	036302	022737 	000140 	001422'		CMP	#140,.FREPL+2	;;; [4.2211] YES -- WITHIN  LIMITS??
  11399	036310	002401 				BLT	30$		;;; [4.2211] YES -- GO ON
  11400	036312	000677 				BR	SNDBEL		;;; [RCO 032681] SEND A BELL TO USER
  11401						;
  11402	036314				30$:				;;; [4.2211]
  11403	036314	032765 	000020 	000006 		BIT	#TT.XEN,STSW1(R5) ;;; [4.2181] IS INTERNAL XOFF ENABLED??
  11404	036322	001410 				BEQ	40$		;;; [4.2211] NO -- GO ON
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 216-1
TERMINAL DRIVER -- TTSTCH (STORE CHARACTER IN TO10Q)

  11405	036324	011646 				MOV	(SP),-(SP)	;;; [4.2181] YES -- GET CHARACTER FOR INPUT CHECK
  11406	036326	042716 	177600 			BIC	#^C177,(SP)	;;; [4.2181] FLUSH LINE NUMBER AND PARITY
  11407	036332	022726 	000023 			CMP	#C.HXOF,(SP)+	;;; [4.2181] IS IT AN XOFF??
  11408	036336	001002 				BNE	40$		;;; [4.2211] NO -- GO ON
  11409	036340					CALL	.TTXOF		;;; [4.2181] YES -- PROCESS XOFF
	036340	004737 	041554'			JSR	PC,.TTXOF
  11410	036344				40$:				;;; [4.2211]
  11411	036344					CALL	..STCH		;;; STORE CHARACTER WITH PARITY
	036344	004737 	045326'			JSR	PC,..STCH
  11412	036350					CALL	.TTSW2		;;; [5.1099] FIND OUR "STSW2" ENTRY
	036350	004737 	042754'			JSR	PC,.TTSW2
  11413	036354	032712 	040000 			BIT	#S2.DIP,(R2)	;;; [5.1099] INPUT XOFF IN PROGRESS??
  11414	036360	001403 				BEQ	45$		;;; [5.1099] NO -- CHECK FREE-POOL THRESHOLD
  11415	036362					CALL	.TTCHK		;;; [5.1099] YES -- COUNT THIS CHARACTER
	036362	004737 	042124'			JSR	PC,.TTCHK
  11416	036366	000402 				BR	TTINPB		;;; [5.1099] AND EXIT
  11417						;
  11418	036370				45$:
  11419	036370					CALL	.TTICK		;;; [4.1.1092] CHECK THE BUFFER
	036370	004737 	042150'			JSR	PC,.TTICK
  11420	036374				TTINPB:
  11421	036374	005726 				TST	(SP)+		;;; REMOVE THE CHARACTER
  11422	036376					RETURN			;;; AND EXIT
	036376	000207 				RTS	PC
  11423	036400				50$:
  11424	036400	013705 	002634'			MOV	CTYPTR,R5	;;; POINT TO REAL CTY
  11425	036404	011600 				MOV	(SP),R0		;;; GET THE CHARACTER AND
  11426	036406	042700 	177600 			BIC	#^C177,R0	;;; MASK OFF PARITY
  11427	036412	122700 	000003 			CMPB	#'C-100,R0	;;; ^C?
  11428	036416	001005 				BNE	60$		;;; NO -- DON'T SET EVENT FLAG
  11429	036420	052737 	040000 	001012'		BIS	#EF.CTC,.COMEF+2 ;;; TELL THE MONITOR
  11430	036426					CALL	..DSEV		;;; DECLARE A SIGNIFICANT EVENT
	036426	004737 	044026'			JSR	PC,..DSEV
  11431	036432				60$:
  11432	036432	123700 	002630'			CMPB	.BRKCH,R0	;;; NULL CHARACTER?
  11433	036436	001006 				BNE	70$		;;; NO -- ALL OK
  11434	036440	052737 	000200 	007172'		BIS	#EF.RQM,TTYTSK+A.EF ;;; START PARSER TASK
  11435	036446					CALL	..DSEV		;;; DECLARE A SIGNIFICANT EVENT
	036446	004737 	044026'			JSR	PC,..DSEV
  11436	036452	000750 				BR	TTINPB		;;; IGNORE CHARACTER
  11437						;
  11438	036454				70$:
  11439	036454	005737 	002632'			TST	.TTP11		;;; IS THIS PDP11 INPUT?
  11440	036460	001072 				BNE	TTCTY		;;; YES -- GO DO ECHO ETC
  11441	036462	032737 	020000 	001012'		BIT	#EF.PR2,.COMEF+2 ;;; IS THIS BOOT PROTOCOL?
  11442	036470	001672 				BEQ	20$		;;; [4.2211] NO -- THEN JUST TREAT IT AS A NORMAL REQUEST
  11443	036472	112637 	001162'			MOVB	(SP)+,.BTSCH	;;; STORE CHARACTER FOR BOOT PROTOCOL
  11444	036476				80$:
  11445	036476					RETURN
	036476	000207 				RTS	PC
  11446
  11447						.DSABL	LSB
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 217
TERMINAL DRIVER -- .DLINT (DL-11E DATASET INTERRUPT SERVICE)

  11449						.SBTTL	TERMINAL DRIVER -- .DLINT (DL-11E DATASET INTERRUPT SERVICE)
  11450					;+
  11451					;	.DLINT -- DL-11E DATASET INTERRUPT SERVICE
  11452					;
  11453					; ENTER WITH:
  11454					;
  11455					;	R0 -- CSR FOR THIS DEVICE
  11456					;	R4 -- POINTS TO EXTERNAL PAGE FOR THIS DEVICE
  11457					;	R5 -- POINTS TO DLS ENTRY FOR THIS DEVICE
  11458					;
  11459					;-
  11460
  11461	036500				.DLINT::			;;; CALLED FROM "$TTINP"
  11462	036500	032765 	000100 	000006 		BIT	#TT.RMT,STSW1(R5);;; REMOTE TERMINAL??
  11463	036506	001452 				BEQ	40$		;;; NO -- NOISE - GO AWAY
  11464	036510	032700 	040000 			BIT	#DL.RNG,R0	;;; YES -- DID IT RING??
  11465	036514	001421 				BEQ	20$		;;; NO -- GO LOOK AT CARRIER
  11466	036516	012714 	000046 			MOV	#DL.DTR!DL.DEN!DL.RTS,(R4)
  11467									;;; SET UP TO WAIT FOR CARRIER
  11468	036522	020537 	002636'			CMP	R5,KLNPTR	;;; IS THIS THE KLINIK LINE??
  11469	036526	001403 				BEQ	10$		;;; YES -- GO ON
  11470	036530					CALL	.TTRNG		;;; NO -- DISCONNECT AND SET CARRIER WAIT
	036530	004737 	040044'			JSR	PC,.TTRNG
  11471	036534	000411 				BR	20$		;;; AND GO  ON
  11472						;
  11473	036536				10$:
  11474	036536	105737 	001226'			TSTB	.KLNSW+0	;;; IS KLINIK ALREADY ACTIVE??
  11475	036542	001006 				BNE	20$		;;; YES -- NOISE - GO ON
  11476	036544	052737 	001000 	007172'		BIS	#EF.RKR,TTYTSK+A.EF ;;; NO -- REQUEST KLRING
  11477	036552					CALL	..DSEV		;;; DECLARE A SIGNIFICANT EVENT
	036552	004737 	044026'			JSR	PC,..DSEV
  11478	036556	000432 				BR	50$		;;; AND LET IT HANDLE CARRIER
  11479						;
  11480	036560				20$:
  11481	036560	032700 	010000 			BIT	#DL.CAR,R0	;;; CARRIER DETECT UP??
  11482	036564	001416 				BEQ	30$		;;; NO -- GO LOOK AT DATA TERMINAL READY
  11483	036566	032714 	000004 			BIT	#DL.RTS,(R4)	;;; YES -- IS REQUEST TO SEND UP??
  11484	036572	001424 				BEQ	50$		;;; NO -- JUST EXIT
  11485	036574	042765 	002004 	000006 		BIC	#TT.CRW!TT.RIP,STSW1(R5)
  11486	036602	052714 	000100 			BIS	#DL.REN,(R4)	;;; ENABLE RCVR INTERRUPTS
  11487	036606	020537 	002636'			CMP	R5,KLNPTR	;;; IS THIS THE KLINIK LINE??
  11488	036612	001410 				BEQ	40$		;;; YES -- GO ON
  11489	036614					CALL	.STTYD		;;; TELL -10 ABOUT DIALUP
	036614	004737 	040060'			JSR	PC,.STTYD
  11490	036620	000405 				BR	40$		;;; AND GO AWAY
  11491						;
  11492	036622				30$:				;;; HERE IF CARRIER IS OFF
  11493	036622	032714 	000002 			BIT	#DL.DTR,(R4)	;;; DATA TERMINAL READY LIT??
  11494	036626	001406 				BEQ	50$		;;; NO -- EXIT
  11495	036630					CALL	.TTSCW		;;; YES -- WAIT FOR CARRIER
	036630	004737 	040050'			JSR	PC,.TTSCW
  11496	036634				40$:
  11497	036634	105714 				TSTB	(R4)		;;; RCVR DONE LIT??
  11498	036636	100002 				BPL	50$		;;; [4.2211] NO -- EXIT
  11499	036640	000137 	036206'			JMP	TTINPA		;;; [4.2211] YES -- PROCESS DATA
  11500						;
  11501	036644				50$:
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 217-1
TERMINAL DRIVER -- .DLINT (DL-11E DATASET INTERRUPT SERVICE)

  11502	036644					RETURN			;;; TO CALLER
	036644	000207 				RTS	PC
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 218
TERMINAL DRIVER -- TTCTY (CTY SERVICE)

  11504						.SBTTL	TERMINAL DRIVER -- TTCTY (CTY SERVICE)
  11505
  11506						.ENABL	LSB
  11507	036646				TTCTY:
  11508	036646	013705 	002634'			MOV	CTYPTR,R5	;;; RESET TO CTY AND
  11509	036652	012703 	002664'			MOV	#CTYSTS,R3	;;; GET CTY BLOCK POINTER.
  11510	036656	110016 				MOVB	R0,(SP)		;;; USE CHARACTER WITHOUT PARITY.
  11511	036660	122716 	000017 			CMPB	#'O-100,@SP	;;; CONTROL O?
  11512	036664	001010 				BNE	95$		;;; IF NE NO
  11513	036666	011346 				MOV	@R3,-(SP)	;;; XOR CTLO BIT
  11514	036670	042716 	177737 			BIC	#^C<CTLO>,@SP	;;; WITH STATUS WORD
  11515	036674	052713 	000040 			BIS	#CTLO,@R3
  11516	036700	042613 				BIC	(SP)+,@R3
  11517	036702				80$:
  11518					;
  11519					; CONTROLLER IS BUSY ON OUTPUT-IGNORE INPUT REQUEST
  11520					;
  11521	036702				85$:
  11522	036702	005726 				TST	(SP)+		;;; REMOVE BYTE FROM STACK
  11523	036704				90$:
  11524	036704					RETURN			;;; EXIT INTERRUPT
	036704	000207 				RTS	PC
  11525					;
  11526					; CONTROLLER IS BUSY ON INPUT OR OUTPUT
  11527					;
  11528	036706				95$:
  11529	036706	005713 				TST	@R3		;;; BUSY ON INPUT?
  11530	036710	100774 				BMI	80$		;;; IF MI NO
  11531					;
  11532					; PROCESS NEXT INPUT BYTE
  11533					;
  11534	036712				100$:
  11535	036712	122716 	000177 			CMPB	#177,@SP	;;; RUBOUT?
  11536	036716	001450 				BEQ	115$		;;; IF EQ YES
  11537	036720	122716 	000025 			CMPB	#25,@SP		;;; LINE DELETE?
  11538	036724	001474 				BEQ	125$		;;; IF EQ YES
  11539	036726	122716 	000033 			CMPB	#C.HESC,@SP	;;; ESCAPE?
  11540	036732	001506 				BEQ	1$		;;; IF EQ YES
  11541	036734	122716 	000032 			CMPB	#C.HEOF,@SP	;;; CONTROL Z?
  11542	036740	001507 				BEQ	11$		;;; IF EQ YES
  11543	036742	122716 	000015 			CMPB	#C.HCRT,@SP	;;; CARRIAGE RETURN?
  11544	036746	001524 				BEQ	41$		;;; IF EQ YES
  11545	036750	122716 	000003 			CMPB	#3,@SP		;;; ^C?
  11546	036754	001510 				BEQ	21$		;;; YES
  11547	036756	122716 	000140 			CMPB	#140,@SP	;;; CHECK FOR LC
  11548	036762	103005 				BHIS	105$		;;; NO
  11549	036764	122716 	000173 			CMPB	#173,@SP
  11550	036770	103402 				BLO	105$
  11551	036772	042716 	000040 			BIC	#40,@SP		;;; YES
  11552					;
  11553					; STORE BYTE IN INPUT BUFFER
  11554					;
  11555	036776				105$:
  11556	036776	111673 	000006 			MOVB	@SP,@CURBF(R3)	;;; STORE BYTE IN BUFFER
  11557	037002	005263 	000006 			INC	CURBF(R3)	;;; INCREMENT BUFFER ADDRESS
  11558	037006	105363 	000004 			DECB	RMBYT(R3)	;;; ANY REMAINING SPACE IN BUFFER
  11559	037012	001004 				BNE	110$		;;; IF NE YES
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 218-1
TERMINAL DRIVER -- TTCTY (CTY SERVICE)

  11560	037014	005363 	000006 			DEC	CURBF(R3)	;;; BACK UP TO END OF BUFFER
  11561	037020	052713 	000400 			BIS	#EOLS,@R3	;;; TERMINATE ON BYTE COUNT
  11562	037024				110$:
  11563	037024	032713 	000020 			BIT	#RUBP,@R3	;;; RUBOUT IN PROGRESS?
  11564	037030	001477 				BEQ	61$		;;; IF EQ NO
  11565	037032	042713 	000020 			BIC	#RUBP,@R3	;;; CLEAR RUBOUT IN PROGRESS
  11566	037036	000417 				BR	120$
  11567						;
  11568					;
  11569					; RUBOUT
  11570					;
  11571	037040				115$:
  11572	037040	026363 	000006 	000002 		CMP	CURBF(R3),STRBF(R3) ;;; ANY BYTES TO RUBOUT?
  11573	037046	001715 				BEQ	80$		;;; IF EQ NO
  11574	037050	005363 	000006 			DEC	CURBF(R3)	;;; BACK UP ONE BYTE
  11575	037054	117316 	000006 			MOVB	@CURBF(R3),@SP	;;; GET BYTE TO BE RUBBED OUT
  11576	037060	105263 	000004 			INCB	RMBYT(R3)	;;; INCREMENT REMAINING SPACE IN BUFFER
  11577	037064	032713 	000020 			BIT	#RUBP,@R3	;;; RUBOUT ALREADY IN PROGRESS?
  11578	037070	001057 				BNE	61$		;;; IF NE YES
  11579	037072	052713 	000020 			BIS	#RUBP,@R3	;;; SET RUBOUT IN PROGRESS
  11580	037076				120$:
  11581	037076	000316 				SWAB	@SP		;;; SWAP BYTE TO HIGH BYTE
  11582	037100	112716 	000134 			MOVB	#'\,@SP		;;; INSERT BACKSLASH
  11583	037104	011663 	000014 			MOV	@SP,MBUFR(R3)	;;; INSERT TEXT IN MULTI-ECHO BUFFER
  11584	037110	012716 	000002 			MOV	#2,@SP		;;; SET LENGTH OF BUFFER
  11585	037114	000456 				BR	81$
  11586						;
  11587					;
  11588					; LINE DELETE
  11589					;
  11590	037116				125$:
  11591	037116	012716 	000004 			MOV	#4,@SP		;;; SET LENGTH OF BUFFER
  11592	037122	012746 	032242'			MOV	#CTRLU,-(SP)	;;; SET ADDRESS OF MULTI-ECHO BUFFER
  11593	037126	042713 	000020 			BIC	#RUBP,@R3	;;; CLEAR RUBOUT IN PROGRESS FLAG
  11594	037132	013763 	002724'	000004 		MOV	CNT,RMBYT(R3)	;;; RESET REMAINING BYTES IN BUFFER
  11595	037140	016363 	000002 	000006 		MOV	STRBF(R3),CURBF(R3) ;;; RESET ADDRESS IN BUFFER
  11596	037146	000444 				BR	91$
  11597						;
  11598					;
  11599					; ESCAPE
  11600					;
  11601	037150				1$:
  11602	037150	111663 	000005 			MOVB	@SP,FNBYT(R3)	;;; [TCO 4.1.1126] SET FINAL BYTE
  11603	037154	105016 				CLRB	@SP		;;; [TCO 4.1.1126] SET TO ECHO ZERO BYTE
  11604	037156	000422 				BR	51$		;;; SET END OF LINE SEEN
  11605						;
  11606					;
  11607					; CONTROL Z
  11608					;
  11609	037160				11$:
  11610	037160	105363 	000005 			DECB	FNBYT(R3)	;;; SET CONTROL Z FLAG
  11611	037164	012716 	000004 			MOV	#4,@SP
  11612	037170	012746 	032246'			MOV	#CTRLZ,-(SP)	;;; SET ADDRESS OF MULTI-ECHO BUFFER
  11613	037174	000406 				BR	31$
  11614						;
  11615					;
  11616					; CONTROL C
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 218-2
TERMINAL DRIVER -- TTCTY (CTY SERVICE)

  11617					;
  11618	037176				21$:
  11619	037176	111663 	000005 			MOVB	@SP,FNBYT(R3)	;;; SET IN LAST CHARACTER
  11620	037202	012716 	000004 			MOV	#4,@SP		;;; SET COUNT
  11621	037206	012746 	032236'			MOV	#CTRLC,-(SP)	;;; SET  CNTRL C
  11622	037212				31$:
  11623	037212	052713 	000400 			BIS	#EOLS,@R3	;;; SET END OF LINE
  11624	037216	000420 				BR	91$		;;; AND ECHO
  11625						;
  11626					;
  11627					; CARRIAGE RETURN /CNTRL Z
  11628					;
  11629	037220				41$:
  11630	037220	111663 	000005 			MOVB	@SP,FNBYT(R3)
  11631	037224				51$:
  11632	037224	052713 	000400 			BIS	#EOLS,@R3	;;; SET END OF LINE SEEN
  11633	037230				61$:
  11634	037230	032713 	074000 			BIT	#LFCT,@R3	;;; ANY LINE FEEDS WAITING?
  11635	037234	001002 				BNE	71$		;;; IF NE YES
  11636	037236	000137 	035004'			JMP	ECHOB		;;; ECHO BYTE
  11637						;
  11638	037242				71$:
  11639	037242	111663 	000014 			MOVB	@SP,MBUFR(R3)	;;; SET FOR MULTI-ECHO OF ONE BYTE
  11640	037246	012716 	000001 			MOV	#1,@SP		;;; SET LENGTH OF BUFFER
  11641	037252				81$:
  11642	037252	010346 				MOV	R3,-(SP)	;;; CALCULATE ADDRESS OF MULTI-ECHO BUFFER
  11643	037254	062716 	000014 			ADD	#MBUFR,@SP
  11644	037260				91$:
  11645	037260	012663 	000012 			MOV	(SP)+,MEBUF(R3)	;;; INSERT ADDRESS OF MULTI-ECHO BUFFER
  11646	037264	112663 	000010 			MOVB	(SP)+,MECNT(R3)	;;; INSERT LENGTH OF BUFFER
  11647	037270	000137 	034546'			JMP	OUTPT		;;; START OUTPUT
  11648						;
  11649						.DSABL	LSB
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 219
TERMINAL DRIVER -- DHSAV (DH-11 REGISTER SAVE/RESTORE CO-ROUTI

  11651						.SBTTL	TERMINAL DRIVER -- DHSAV (DH-11 REGISTER SAVE/RESTORE CO-ROUTINE)
  11652
  11653					;+
  11654					; DHSAV -- DH-11 TERMINAL MULTIPLEXER SAVE ROUTINE
  11655					; TTSAV -- DL-11 TERMINAL SAVE ROUTINE
  11656					;
  11657					; THIS ROUTINE SAVES R0 THRU R5 ON THE STACK AND RETURNS:
  11658					;
  11659					;	R4 -- POINTS TO EXTERNAL PAGE FOR THIS DEVICE (UNIT)
  11660					;	R5 -- POINTS TO THE DLS ENTRY FOR THIS DEVICE (UNIT)
  11661					;	CC-Z SET -- DEVICE DOES NOT EXIST
  11662					;-
  11663
  11664						.ENABL LSB
  11665
  11666	037274				DHSAV:
  11667	037274	010046 				MOV	R0,-(SP)	; SAVE REGISTERS
  11668	037276	010146 				MOV	R1,-(SP)
  11669	037300	010246 				MOV	R2,-(SP)
  11670	037302	010446 				MOV	R4,-(SP)
  11671	037304	010546 				MOV	R5,-(SP)
  11672	037306	010346 				MOV	R3,-(SP)	;;; SET RETURN ADDRESS
  11673	037310	013705 	002646'			MOV	DHTMP,R5	;;; RET SAVED PS WORD
  11674	037314	042705 	177760 			BIC	#177760,R5	;;; CLEAR ALL BUT CONTROLLER NUMBER
  11675	037320	000305 				SWAB	R5		;;; CONVERT TO WORD INDEX
  11676	037322	006205 				ASR	R5
  11677	037324	062705 	003046'			ADD	#DHTBL,R5	;;; POINT TO THE BEGINNING OF DH-11 TABLE
  11678	037330	000417 				BR	20$		;;; FINISH IN COMMON CODE
  11679						;
  11680					;
  11681					; DL-11 TERMINAL SAVE ROUTINE
  11682					;
  11683	037332				TTSAV:
  11684	037332	010046 				MOV	R0,-(SP)	; SAVE REGISTERS
  11685	037334	010146 				MOV	R1,-(SP)
  11686	037336	010246 				MOV	R2,-(SP)
  11687	037340	010446 				MOV	R4,-(SP)
  11688	037342	010546 				MOV	R5,-(SP)
  11689	037344	010346 				MOV	R3,-(SP)	;;; SET RETURN ADDRESS
  11690	037346	013705 	002650'			MOV	DLTMP,R5	;;; RETRIEVE SAVED PS WORD
  11691	037352	042705 	177760 			BIC	#177760,R5	;;; CLEAR ALL BUT CONTROLLER (UNIT) NUMBER
  11692	037356	006305 				ASL	R5		;;; CONVERT TO WORD INDEX
  11693	037360	006305 				ASL	R5
  11694	037362	006305 				ASL	R5
  11695	037364	062705 	002776'			ADD	#TTTBL,R5	;;; POINT TO THE BEGINNING OF THE DL-11 TABLE
  11696	037370				20$:
  11697	037370	016504 	000002 			MOV	TTYEXP(R5),R4	;;; SET UP EXTERNAL PAGE ADDRESS OF THIS DEVICE
  11698	037374					CALL	@(SP)+		;;; CALL THE CALLER BACK
	037374	004736 				JSR	PC,@(SP)+
  11699	037376	012605 				MOV	(SP)+,R5	;;; RESTORE REGISTERS
  11700	037400	012604 				MOV	(SP)+,R4
  11701	037402	012602 				MOV	(SP)+,R2
  11702	037404	012601 				MOV	(SP)+,R1
  11703	037406	012600 				MOV	(SP)+,R0
  11704	037410	012603 				MOV	(SP)+,R3
  11705	037412	000137 	014632'			JMP	..INTX		;;; EXIT FROM INTERRUPT
  11706						;
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 219-1
TERMINAL DRIVER -- DHSAV (DH-11 REGISTER SAVE/RESTORE CO-ROUTI

  11707
  11708						.DSABL	LSB
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 220
TERMINAL DRIVER -- .STDHL (SET UP DH-11 LINE NUMBER IN CONTROL

  11710						.SBTTL	TERMINAL DRIVER -- .STDHL (SET UP DH-11 LINE NUMBER IN CONTROLLER)
  11711
  11712					;+
  11713					; .STDHL -- SET UP DH-11 LINE NUMBER IN CONTROLLER
  11714					;
  11715					; INPUTS:
  11716					;
  11717					;	R5 -- DLS BLOCK OFFSET FOR THIS LINE
  11718					;
  11719					; OUTPUTS:
  11720					;
  11721					;	R4 -- ADDRESS OF DH-11 CSR
  11722					;	CC-N CLEAR -- LINE NUMBER IS SET IN DH-11 CSR
  11723					;	CC-N SET -- R5 POINTS TO A DL-11 BLOCK
  11724					;	CC-Z SET -- LINE DOES NOT EXIST
  11725					;-
  11726
  11727	037416				.STDHL::
  11728	037416	016504 	000002 			MOV	TTYEXP(R5),R4	;;; [5,1015] FIND I/O PAGE ADDRESS
  11729	037422	001415 				BEQ	20$		;;; [5.1015] EXIT IF NON-EXISTENT
  11730	037424	010546 				MOV	R5,-(SP)	;;; [5.1015] DLS POINTER TO STACK
  11731	037426	162716 	003046'			SUB	#DHTBL,(SP)	;;; [5.1015] FIND OFFSET INTO "DHTBL"
  11732	037432	100410 				BMI	10$		;;; [5.1015] DONE WITH DL-11 AT THIS POINT
  11733	037434	006216 				ASR	(SP)		;;; [5.1015] COMPUTE DH-11
  11734	037436	006216 				ASR	(SP)		;;; [5.1015] LINE NUMBER
  11735	037440	006216 				ASR	(SP)		;;; [5.1015] SO
  11736	037442	042716 	177760 			BIC	#^C17,(SP)	;;; [5.1015] FLUSH EXTRANEOUS TRASH
  11737	037446	042714 	001077 			BIC	#1077,(R4)	;;; [5.1015] CLEAR LINE NUMBER REGISTER
  11738	037452	051614 				BIS	(SP),(R4)	;;; [5.1015] SET LINE NUMBER
  11739	037454				10$:
  11740	037454	005226 				INC	(SP)+		;;; [5.1015] CLEAR STACK AND SET RETURN FLAG
  11741	037456				20$:
  11742	037456					RETURN			;;; [5.1015] TO CALLER
	037456	000207 				RTS	PC
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 221
TERMINAL DRIVER -- .DHSPR (RESET TO DEFAULT AUTO-BAUD SPEED)

  11744						.SBTTL	TERMINAL DRIVER -- .DHSPR (RESET TO DEFAULT AUTO-BAUD SPEED)
  11745
  11746					;+
  11747					; .DHSPR -- RESET A DH-11 LINE TO DEFAULT AUTO-BAUD SPEED
  11748					;
  11749					; THIS SUBROUTINE WILL RESET A LINE TO ITS DEFAULT AUTO-BAUD SPEED
  11750					;
  11751					; INPUTS:
  11752					;
  11753					;	R5 -- POINTS TO DLS TABLE ENTRY FOR THIS DH-11 LINE
  11754					;
  11755					; OUTPUTS:
  11756					;
  11757					;	LINE'S SPEED IS RESET TO 300 BAUD
  11758					;	NO REGISTERS ALTERED
  11759					;-
  11760
  11761
  11762						.ENABL	LSB
  11763
  11764	037460				.DHSPR::
  11765	037460	032765 	000040 	000006 		BIT	#TT.ABL,STSW1(R5) ;;; [5.1152] ABW LINE ?
  11766	037466	001456 				BEQ	40$		;;; [5.1152] BRANCH IF NOT AUTO BAUD LINE
  11767	037470	016546 	000004 			MOV	STSW0(R5),-(SP) ;;; SAVE LINE SPEED WORD AS FLAG
  11768	037474	010346 				MOV	R3,-(SP)	;;; SAVE R3
  11769	037476	012703 	016703 			MOV	#16703,R3	;;; DEFAULT LINE SPEED TO R3 (300 BAUD)
  11770	037502					CALL	.DHSPD		;;; SET IT
	037502	004737 	037554'			JSR	PC,.DHSPD
  11771	037506	012603 				MOV	(SP)+,R3	;;; RESTORE R3
  11772	037510	005726 				TST	(SP)+		;;; HAS THE SETSPD TASK BEEN BLOCKED??
  11773	037512	100405 				BMI	10$		;;; YES -- DON'T COUNT THIS LINE
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 222
TERMINAL DRIVER -- .DHSPF (FLAG AUTO-BAUD REPORT)

  11775						.SBTTL	TERMINAL DRIVER -- .DHSPF (FLAG AUTO-BAUD REPORT)
  11776
  11777					;+
  11778					; .DHSPF -- FLAG LINE SPEED TO BE REPORTED TO THE HOST
  11779					;
  11780					; THIS SUBROUTINE WILL FLAG AN AUTO-BAUD LINE SPEED TO BE REPORTED
  11781					;
  11782					; INPUTS:
  11783					;
  11784					;	R5 -- POINTS TO DLS TABLE ENTRY FOR THIS DH-11 LINE
  11785					;
  11786					; OUTPUTS:
  11787					;
  11788					;	THE LINE SPEED IS FLAGGED TO BE REPORTED TO THE HOST
  11789					;	NO REGISTERS ALTERED
  11790					;-
  11791
  11792	037514				.DHSPF::
  11793	037514	005237 	002600'			INC	.ABCNT		;;; INCREMENT THE COUNT
  11794	037520	052765 	100000 	000004 		BIS	#S0.ABR,STSW0(R5) ;;; [4.2284] FLAG THE LINE SPEED
  11795	037526				10$:
  11796	037526	005737 	001012'			TST	.COMEF+2	;;; [4.1.1105] IS PRIMARY PROTOCOL RUNNING??
  11797	037532	100034 				BPL	40$		;;; [4.1.1105] NO -- GO ON
  11798	037534	005737 	001140'			TST	.DATE3		;;; IS OUR DATE VALID ??
  11799	037540	001431 				BEQ	40$		;;; NO, DON'T CALL SETSPD
  11800	037542	052737 	004000 	007172'		BIS	#EF.RSS,TTYTSK+A.EF ;;; [4.2140] YES -- REQUEST THE TASK
  11801	037550	000137 	044026'			JMP	..DSEV		;;; DECLARE A SIGNIFICANT EVENT AND RETURN
  11802						;
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 223
TERMINAL DRIVER -- .DHSPD (SET LINE SPEED)

  11804						.SBTTL	TERMINAL DRIVER -- .DHSPD (SET LINE SPEED)
  11805
  11806					;+
  11807					; .DHSPD -- SET LINE SPEED FOR A DH-11 LINE
  11808					;
  11809					; THIS SUBROUTINE WILL SET THE LINE SPEED FOR A LINE
  11810					;
  11811					; INPUTS:
  11812					;
  11813					;	R3 -- LINE SPEED TO BE SET
  11814					;	R5 -- POINTS TO DLS TABLE ENTRY FOR THIS DH-11 LINE
  11815					;
  11816					; OUTPUTS:
  11817					;
  11818					;	DH-11 LINE SPEED IS SET UP - DL-11 IS UNALTERED.
  11819					;	IF INPUT FOR THIS LINE WAS FORCIBLY TURNED OFF, THE ACTUAL SETTING
  11820					;	OF THE LINE SPEED IN THE HARDWARE IS DEFERRED UNTIL INPUT FOR THE
  11821					;	LINE IS RE-ENABLED BY THE HOST.
  11822					;	NO REGISTERS ALTERED
  11823					;-
  11824
  11825	037554				.DHSPD::
  11826	037554	010446 				MOV	R4,-(SP)	;;; SAVE R4
  11827	037556	010246 				MOV	R2,-(SP)	;;; [5.1015] SAVE R2 AS WELL
  11828	037560	042703 	140000 			BIC	#S0.MSK,R3	;;; [5.1015] FLUSH STATUS BITS
  11829	037564					CALL	.TTSW2		;;; [5.1015] FIND OUR "STSW2" ENTRY
	037564	004737 	042754'			JSR	PC,.TTSW2
  11830	037570					CALL	.STDHL		;;; SET THE DH-11 LINE NUMBER
	037570	004737 	037416'			JSR	PC,.STDHL
  11831	037574	003411 				BLE	30$		;;; [5.1015] EXIT IF DL-11 OR NON-EXISTENT
  11832	037576	005712 				TST	(R2)		;;; [4.1.1092] INPUT X'D OFF??
  11833	037600	100402 				BMI	20$		;;; [4.1.1092] YES -- GO ON
  11834	037602	010364 	000004 			MOV	R3,4(R4)	;;; SET THE NEW LINE SPEED
  11835	037606				20$:
  11836	037606	042765 	037777 	000004 		BIC	#^C<S0.MSK>,STSW0(R5) ;;; [4.2284] CLEAR OLD LINE SPEED
  11837	037614	050365 	000004 			BIS	R3,STSW0(R5)	;;; [4.2284] MARK IT IN LINE TABLE TOO
  11838	037620				30$:
  11839	037620	012602 				MOV	(SP)+,R2	;;; [5.1015] RESTORE R2
  11840	037622	012604 				MOV	(SP)+,R4	;;; AND R4
  11841	037624				40$:
  11842	037624					RETURN			;;; TO CALLER
	037624	000207 				RTS	PC
  11843
  11844						.DSABL	LSB
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 224
TERMINAL DRIVER -- $DMINT (DM-11/BB MODEM CONTROL INTERRUPT)

  11846						.SBTTL	TERMINAL DRIVER -- $DMINT (DM-11/BB MODEM CONTROL INTERRUPT)
  11847
  11848					;+
  11849					; **-$DMINT-DM-11/BB MODEM CONTROL MULTIPLEXER INTERRUPTS
  11850					;
  11851					;	THIS ROUTINE SERVICES INTERRUPTS FROM THE DM-11/BB MODEM CONTROLS
  11852					;	FOR THE FOLLOWING EVENTS:
  11853					;
  11854					;	1. DATA-SET RING
  11855					;	2. CARRIER DETECT TRANSITION
  11856					;	3. CARRIER DROP TRANSITION
  11857					;
  11858					;	ON DATA SET RING, IF THE DM-11/BB'S ARE NOT INHIBITED, THE FOLLOWING
  11859					;	IS DONE.
  11860					;
  11861					;	DATA-TERMINAL READY, DATA ENABLE AND RING ENABLE ARE SET FOR THE LINE.
  11862					;	THE LINE IS PUT INTO THE CARRIER-WAIT STATE.
  11863					;
  11864					;	ON CARRIER-DETECT TRANSITION THE FOLLOWING IS DONE:
  11865					;
  11866					;	THE LINE IS REMOVED FROM THE CARRIER-WAIT STATE.
  11867					;	IF THE LINE IS AN AUTO-BAUD LINE, IT IS PUT INTO AUTO-BAUD WAIT, OTHERWISE
  11868					;	A CONNECT MESSAGE IS TRANSMITTED TO THE HOST.
  11869					;
  11870					;	ON CARRIER-DROP, THE LINE IS PUT INTO THE CARRIER-WAIT STATE AND IS
  11871					;	TIMED-OUT BY THE TIME-OUT SERVICE IN ".DMTMO" (Q.V.)
  11872					;
  11873					;	ANY NON-RING INTERRUPT INITIATED WITHOUT DATA-TERMINAL READY BEING
  11874					;	SET WILL BE IGNORED.
  11875					;-
  11876
  11877						.ENABL	LSB
  11878
  11879	037626				$DMINT::			;;; [4.2055] REF LABEL
  11880	037626	013737 	177776 	002644'		MOV	@#PS,DMTMP	;;; [4.2055] SAVE CONTROLLER NUMBER
  11881	037634					CALL	R3,TTSAV	;;; [4.2055] SAVE REGISTERS
	037634	004337 	037332'			JSR	R3,TTSAV
  11882	037640	013703 	002644'			MOV	DMTMP,R3	;;; [4.2055] RETRIEVE SAVED PS WORD
  11883	037644	042703 	177760 			BIC	#177760,R3	;;; [4.2055] CLEAR ALL BUT CONTROLLER NUMBER
  11884	037650	006303 				ASL	R3		;;; [4.2055] CONVERT TO WORD INDEX
  11885	037652	006303 				ASL	R3		;;; [4.2055] SO
  11886	037654	016304 	002734'			MOV	DMTBL(R3),R4	;;; [4.2055] GET ADDRESS OF DM-11/BB CSR
  11887	037660	012405 				MOV	(R4)+,R5	;;; [4.2055] GET INTERRUPT STATUS
  11888	037662	052714 	000001 			BIS	#1,(R4)		;;; [4.2055] JUST SET RING ENABLE FOR NOW
  11889	037666	032705 	010000 			BIT	#10000,R5	;;; [RCO 041581] SECONDARY RECIEVE ?
  11890	037672	001026 				BNE	10$		;;; [RCO 041581] EXIT IF SO
  11891	037674	010546 				MOV	R5,-(SP)	;;; [4.2055] COPY TO STACK
  11892	037676	042705 	177760 			BIC	#177760,R5	;;; [4.2055] CLEAR ALL BUT UNIT NUMBER
  11893	037702	006305 				ASL	R5		;;; [4.2055] CONVERT UNIT NUMBER TO WORD INDEX
  11894	037704	006305 				ASL	R5		;;; [4.2055] THUS
  11895	037706	006305 				ASL	R5		;;; [4.2055] AND SO
  11896	037710	066305 	002736'			ADD	DMTBL+2(R3),R5	;;; [4.2055] CALCULATE ADDRESS OF "DHTBL" ENTRY
  11897	037714	011402 				MOV	@R4,R2		;;; [4.2055] GET UNIT STATUS
  11898	037716	005102 				COM	R2		;;; [4.2055] INVERT UNIT STATUS
  11899	037720	005726 				TST	(SP)+		;;; [4.2055] IS THIS A RING INTERRUPT??
  11900	037722	100015 				BPL	20$		;;; [4.2055] NO -- GO ON
  11901	037724	032765 	000100 	000006 		BIT	#TT.RMT,STSW1(R5) ;;; [RCO 9380] REMOTE LINE ?
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 224-1
TERMINAL DRIVER -- $DMINT (DM-11/BB MODEM CONTROL INTERRUPT)

  11902	037732	001406 				BEQ	10$		;;; [RCO 9380] EXIT IF NOT
  11903	037734	005737 	001012'			TST	.COMEF+2	;;; [4.1.1105] YES -- IS PRIMARY PROTOCOL RUNNING??
  11904	037740	100003 				BPL	10$		;;; [4.1.1105] NO -- IGNORE INTERRUPT
  11905	037742	005737 	002576'			TST	.INHDM		;;; [4.2055] YES -- ARE DM-11/BB'S INHIBITED??
  11906	037746	001406 				BEQ	30$		;;; [4.2055] NO -- GO ON
  11907	037750				10$:
  11908	037750	042744 	001200 			BIC	#1200,-(R4)	;;; [4.2055] YES -- REENABLE SCANNING
  11909	037754	000440 				BR	60$		;;; [4.2055] AND EXIT
  11910						;
  11911					;
  11912					; HERE FOR A NON-RING INTERRUPT
  11913					;
  11914	037756				20$:
  11915	037756	032702 	000004 			BIT	#4,R2		;;; [4.2055] IS REQUEST TO SEND UP??
  11916	037762	001372 				BNE	10$		;;; [4.2055] NO -- JUST REENABLE SCAN AND EXIT
  11917					;
  11918					; HERE FOR A RING INTERRUPT OR AN ALLOWABLE NON-RING INTERRUPT
  11919					;
  11920	037764				30$:
  11921	037764	052714 	000007 			BIS	#7,(R4)		;;; [4.2055] SET RTS + DE + RE
  11922	037770	042744 	001200 			BIC	#1200,-(R4)	;;; [4.2055] REENABLE SCANNING
  11923	037774	105702 				TSTB	R2		;;; [4.2055] RING INTERRUPT?? [5.1131]TST=TSTB
  11924	037776	100022 				BPL	.TTRNG		;;; [4.2055] YES -- GO HANDLE IT
  11925	040000	032702 	000140 			BIT	#140,R2		;;; [4.2055] NO -- CARRIER AND CLEAR TO SEND SET?
  11926	040004	001021 				BNE	.TTSCW		;;; [4.2055] IF .NE. NO (MUST BE CARRIER DROP)
  11927					;
  11928					; CARRIER ON TRANSITION
  11929					;
  11930	040006	042765 	002004 	000006 		BIC	#TT.CRW!TT.RIP,STSW1(R5) ;;; [4.2055] CLEAR CARRIER WAIT
  11931	040014	032765 	040000 	000004 		BIT	#S0.CON,STSW0(R5) ;;; [4.2309] WAS LINE ALREADY CONNECTED??
  11932	040022	001015 				BNE	60$		;;; [4.2309] YES -- LEAVE IT ALONE
  11933	040024	032765 	000040 	000006 		BIT	#TT.ABL,STSW1(R5) ;;; [4.2055] NO -- IS THIS AN AUTO-BAUD LINE??
  11934	040032	001412 				BEQ	.STTYD		;;; [4.2055] NO -- REPORT CONNECTION AND EXIT
  11935	040034	052765 	000010 	000006 		BIS	#TT.ABW,STSW1(R5) ;;; [4.2055] YES -- MARK AUTO-BAUD WAIT
  11936	040042	000405 				BR	60$		;;; [4.2055] AND EXIT
  11937						;
  11938					;
  11939					; RING TRANSITION (DM-11/BB'S ENABLED)
  11940					;
  11941	040044				.TTRNG:
  11942	040044					CALL	.STTYH		;;; [4.2055] TRANSMIT HANGUP
	040044	004737 	040074'			JSR	PC,.STTYH
  11943					;
  11944					; CARRIER DROP TRANSITION
  11945					;
  11946	040050				.TTSCW:
  11947	040050	052765 	002004 	000006 		BIS	#TT.CRW!TT.RIP,STSW1(R5) ;;; [4.2055] SET CARRIER WAIT
  11948	040056				60$:
  11949	040056					RETURN			;;; [4.2055] DISMISS AND RETURN
	040056	000207 				RTS	PC
  11950
  11951						.DSABL	LSB
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 225
TERMINAL DRIVER -- .STTYD (DIALUP/HANGUP SERVICE)

  11953						.SBTTL	TERMINAL DRIVER -- .STTYD (DIALUP/HANGUP SERVICE)
  11954
  11955					;+
  11956					; .STTYD -- DILAUP SERVICE
  11957					; .STTYH -- HANGUP SERVICE
  11958					;
  11959					; THESE SUBROUTINES WILL REPORT A DILAUP OR HANGUP TO THE HOST, AND
  11960					; SET OR CLEAR THE LINE CONNECTED BIT, "S0.CON", IN THE LINE'S STATUS BLOCK.
  11961
  11962					;
  11963					; INPUTS:
  11964					;
  11965					;	R5 -- POINTS TO DLS TABLE ENTRY FOR THIS LINE
  11966					;
  11967					; OUTPUTS:
  11968					;
  11969					;	R3,R1 --  ALTERED
  11970					;-
  11971
  11972						.ENABL	LSB
  11973
  11974	040060				.STTYD::
  11975	040060	052765 	040000 	000004 		BIS	#S0.CON,STSW0(R5) ;;; [4.2284] MARK LINE CONNECT
  11976	040066	012701 	000015 			MOV	#BC.TDU,R1	;;; DIALUP FUNCTION
  11977	040072	000407 				BR	10$		;;; DO COMMON CODE
  11978						;
  11979	040074				.STTYH::
  11980	040074					CALL	.DHSPR		;;; [5.1152] RESET THE LINE SPEED IF ABW
	040074	004737 	037460'			JSR	PC,.DHSPR
  11981	040100	042765 	040000 	000004 		BIC	#S0.CON,STSW0(R5) ;;; [4.2284] MARK LINE DISCONNECT
  11982	040106	012701 	000016 			MOV	#BC.THU,R1	;;; HANGUP FUNCTION
  11983	040112				10$:
  11984	040112	010446 				MOV	R4,-(SP)	;;; SAVE R4
  11985	040114	010504 				MOV	R5,R4		;;; SET UP TO RETURN DIALUP OR HANGUP
  11986	040116	162704 	002776'			SUB	#TTTBL,R4	;;; FIND UNIT NUMBER IN R4
  11987	040122	006204 				ASR	R4		;;; DIVIDE BY 8
  11988	040124	006204 				ASR	R4		;;;
  11989	040126	006204 				ASR	R4		;;; SO
  11990	040130	012703 	000004 			MOV	#D.CDLS,R3	;;; DATA LINE SCANNER
  11991	040134					CALL	..STFC		;;; START FUNCTION
	040134	004737 	045456'			JSR	PC,..STFC
  11992	040140	012604 				MOV	(SP)+,R4	;;; RESTORE R4
  11993	040142					RETURN			;;; AND EXIT
	040142	000207 				RTS	PC
  11994
  11995						.DSABL	LSB
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 226
TERMINAL DRIVER -- .DMHUP (DM-11/BB HANGUP)

  11997						.SBTTL	TERMINAL DRIVER -- .DMHUP (DM-11/BB HANGUP)
  11998					;+
  11999					; .DMHUP -- HANG UP A DM-11/BB LINE
  12000					;
  12001					; THIS SUBROUTINE WILL HANG UP A DM-11/BB UNIT
  12002					;
  12003					; INPUTS:
  12004					;
  12005					;	R1 -- DM-11/BB UNIT NUMBER
  12006					;	R4 -- POINTER TO DM-11/BB CSR
  12007					;	R5 -- POINTER TO DLS TABLE ENTRY FOR THIS LINE
  12008					;
  12009					; OUTPUTS:
  12010					;
  12011					;	NO REGISTERS ALTERED
  12012					;-
  12013
  12014						.ENABL	LSB
  12015
  12016	040144				.DMHUP::
  12017	040144	032765 	000100 	000006 		BIT	#TT.RMT,STSW1(R5) ;;; REMOTE TTY??
  12018	040152	001417 				BEQ	20$		;;; NO -- FORGET IT
  12019	040154					CALL	.STPDM		;;; YES -- STOP THE SCAN
	040154	004737 	040174'			JSR	PC,.STPDM
  12020	040160	050124 				BIS	R1,(R4)+ 	;;; SELECT DESIRED UNIT
  12021	040162	012714 	000001 			MOV	#1,(R4)		;;; ENABLE RING INTERRUPT
  12022	040166	052744 	000140 			BIS	#140,-(R4)	;;; RESTART SCAN AND ENABLE INTERRUPTS
  12023	040172	000443 				BR	DLHUPX		;;; RESET THE LINE STATE AND EXIT
  12024						;
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 227
TERMINAL DRIVER -- .STPDM (STOP DM-11/BB SCAN)

  12026						.SBTTL	TERMINAL DRIVER -- .STPDM (STOP DM-11/BB SCAN)
  12027
  12028					;+
  12029					; .STPDM -- STOP DM-11/BB SCAN
  12030					;
  12031					; THIS SUBROUTINE WILL DISABLE THE SCAN AND CLEAR THE UNIT SELECT BITS ON
  12032					; A DM-11/BB MODEM CONTROL UNIT.
  12033					;
  12034					; INPUTS:
  12035					;
  12036					;	R4 -- POINTS TO DM-11/BB CSR
  12037					;
  12038					; OUTPUTS:
  12039					;
  12040					;	SCAN IS STOPPED
  12041					;	NO REGISTERS ALTERED
  12042					;-
  12043
  12044	040174				.STPDM::
  12045	040174	042714 	001040 			BIC	#1040,(R4)	;;; DISABLE SCAN
  12046	040200				10$:
  12047	040200	032714 	000020 			BIT	#20,(R4)	;;; SCAN STOPPED??
  12048	040204	001375 				BNE	10$		;;; NO -- WAIT FOR IT
  12049	040206	042714 	001017 			BIC	#1017,(R4)	;;; YES -- CLEAR CURRENT UNIT
  12050	040212				20$:
  12051	040212					RETURN			;;; TO CALLER
	040212	000207 				RTS	PC
  12052
  12053						.DSABL	LSB
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 228
TERMINAL DRIVER -- .DLHUP (DL-11E HANGUP)

  12055						.SBTTL	TERMINAL DRIVER -- .DLHUP (DL-11E HANGUP)
  12056					;+
  12057					; .DLHUP -- HANG UP A DL-11E LINE.
  12058					;
  12059					; THIS ROUTINE SERVICES A DL-11E HANGUP REQUEST.
  12060					; IF THE KLINIK LINE IS ACTIVE, THE KLINIK DISCONNECT TASK, KLDISC, IS
  12061					; REQUESTED.  OTHERWISE, THE LINE IS HUNG UP HERE.
  12062					;
  12063					; INPUT ARGUMENTS:
  12064					;
  12065					;	R5 POINTS TO THE DLS TABLE ENTRY FOR THIS LINE
  12066					;
  12067					; OUTPUT ARGUMENTS:
  12068					;
  12069					;	R4 -- POINTER TO DL-11E CSR
  12070					;-
  12071
  12072						.ENABL	LSB
  12073
  12074	040214				.DLHUP::
  12075	040214	032765 	000100 	000006 		BIT	#TT.RMT,STSW1(R5) ;;; REMOTE LINE??
  12076	040222	001420 				BEQ	10$		;;; NO -- FORGET IT
  12077	040224	016504 	000002 			MOV	TTYEXP(R5),R4	;;; YES -- SAVE I/O PAGE ADDRESS
  12078	040230	023705 	002636'			CMP	KLNPTR,R5	;;; IS THIS THE KLINIK LINE??
  12079	040234	001014 				BNE	20$		;;; NO -- GO ON
  12080	040236	105737 	001226'			TSTB	.KLNSW+0	;;; YES -- IS IT ACTIVE??
  12081	040242	001411 				BEQ	20$		;;; INACTIVE -- JUST HANG IT UP
  12082	040244	112737 	000002 	001227'		MOVB	#2,.KLNSW+1	;;; FLAG THE DISCONNECT
  12083	040252	052737 	002000 	007172'		BIS	#EF.RKH,TTYTSK+A.EF ;;; REQUEST KLDISC
  12084	040260	000137 	044026'			JMP	..DSEV		;;; DECLARE A SIGNIFICANT EVENT AND EXIT
  12085						;
  12086	040264				10$:
  12087	040264					RETURN			;;; AND GO AWAY
	040264	000207 				RTS	PC
  12088	040266				20$:
  12089	040266	005764 	000002 			TST	2(R4)		;;; CLEAR INPUT FLAGS
  12090	040272	012714 	000140 			MOV	#DL.DEN!DL.REN,(R4) ;;; HANG THE LINE UP
  12091	040276	105065 	000004 			CLRB	STSW0+0(R5)	;;; [4.2284] ENABLE INPUT SIDE IF IT WASN'T
  12092	040302				DLHUPX:
  12093	040302	005737 	001012'			TST	.COMEF+2	;;; [4.1.1105] PRIMARY PROTOCOL RUNNING?
  12094	040306	100011 				BPL	30$		;;; [4.1.1105] NO -- WAIT FOR IT
  12095	040310	042765 	002414 	000006 		BIC	#TT.CRW!TT.NSA!TT.ABW!TT.RIP,STSW1(R5) ;;; YES -- CLEAR CARRIER WAIT
  12096	040316	010346 				MOV	R3,-(SP)	;;; SAVE REGISTERS
  12097	040320	010146 				MOV	R1,-(SP)
  12098	040322					CALL	.STTYH		;;; TELL THE KL ABOUT HANGUP
	040322	004737 	040074'			JSR	PC,.STTYH
  12099	040326	012601 				MOV	(SP)+,R1	;;; RESTORE
  12100	040330	012603 				MOV	(SP)+,R3
  12101	040332				30$:
  12102	040332	000137 	042034'			JMP	.TTRST		;;; [4.2205] RESET THE LINE STATE AND EXIT
  12103						;
  12104
  12105						.DSABL	LSB
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 229
TERMINAL DRIVER -- .DLTMO (DL-11E MODEM CONTROL TIMEOUT)

  12107						.SBTTL	TERMINAL DRIVER -- .DLTMO (DL-11E MODEM CONTROL TIMEOUT)
  12108
  12109					;+
  12110					; .DLTMO -- DL11 TIMEOUT SERVICE
  12111					;
  12112					; THIS ROUTINE INSURES THAT THE CTY IS RUNNING AND TIMES OUT THE
  12113					; DL-11E LINES WHEN CARRIER IS LOST.  THIS ROUTINE WILL ALSO
  12114					; ERROR LOG ANY DL-11 WHICH LOSES AN INTERRUPT ENABLE.
  12115					;
  12116					; INPUTS:
  12117					;
  12118					;	NONE
  12119					;
  12120					; OUTPUTS:
  12121					;
  12122					;	NO REGISTERS PRESERVED
  12123					;
  12124					; NOTE:
  12125					;	THIS ROUTINE MUST BE CALLED AT BR5 OR HIGHER
  12126					;
  12127					; NOTE:
  12128					;	NXM VECTOR IS ALTERED DURING POWER FAIL RECOVERY
  12129					;
  12130					; NOTE:
  12131					;	ALL DL-11E'S ARE ASSUMED TO BE REMOTE (DATASET) LINES
  12132					;-
  12133
  12134	040336				.DLTMO::
  12135	040336	012705 	002776'			MOV	#DLTBL,R5	;;; GET LOCAL DL-11W POINTER
  12136	040342	016504 	000002 			MOV	TTYEXP(R5),R4	;;; AND EXTERNAL PAGE POINTER
  12137	040346	001410 				BEQ	20$		;;; IF NO ONE HAS THE LINE
  12138	040350					CALL	CKDLEN		;;; [5.1007] CHECK ENABLES AND ERRORS
	040350	004737 	040512'			JSR	PC,CKDLEN
  12139	040354				10$:
  12140	040354	005737 	001030'			TST	.PFIOW		;;; IS THIS A POWER FAIL START??
  12141	040360	001403 				BEQ	20$		;;; NO -- GO ON
  12142	040362	012737 	040502'	000004 		MOV	#100$,@#4	;;; YES -- SET NXM TRAP FOR DEVICE CHECKS
  12143	040370				20$:
  12144	040370	012705 	003006'			MOV	#DLETBL,R5	;;; GET DL-11E TABLE POINTER
  12145	040374	012700 	000004 			MOV	#DLECNT,R0	;;; COUNT OF DL-11E'S TO R0
  12146	040400				30$:
  12147	040400	016504 	000002 			MOV	TTYEXP(R5),R4	;;; EXTERNAL PAGE POINTER TO R4
  12148	040404	001432 				BEQ	80$		;;; TRY NEXT IF THIS ONE ISN'T THERE
  12149	040406	005714 				TST	(R4)		;;; [5.1007] DOES THE DEVICE EXIST??
  12150	040410					CALL	CKDLEN		;;; [5.1007] CHECK ENABLES AND ERRORS
	040410	004737 	040512'			JSR	PC,CKDLEN
  12151					;
  12152					; DL-11E CARRIER MAINTENANCE
  12153					;
  12154	040414	032714 	010000 			BIT	#DL.CAR,(R4)	;;; YES -- IS CARRIER DETECT UP??
  12155	040420	001406 				BEQ	60$		;;; [4.2055] NO -- GO ON[5.1056] BR TO 60 NOT 50
  12156	040422	032714 	000004 			BIT	#DL.RTS,(R4)	;;; [4.2055] YES -- IS REQUEST TO SEND UP??
  12157	040426	001403 				BEQ	60$		;;; [4.2055] NO -- GO ON
  12158	040430	052714 	000006 			BIS	#DL.DTR!DL.RTS,(R4) ;;; YES -- ENABLE THIS DL-11E LINE
  12159	040434	000416 				BR	80$		;;; AND TRY THE NEXT ONE
  12160						;
  12161					;
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 229-1
TERMINAL DRIVER -- .DLTMO (DL-11E MODEM CONTROL TIMEOUT)

  12162					; FIVE INSTRUCTIONS PLUS LABEL  50$  WERE REMOVED WITH TCO 5.1056.
  12163					;
  12164					;
  12165					; DL-11E CARRIER TIMEOUT
  12166					;
  12167	040436				60$:
  12168	040436	032765 	000004 	000006 		BIT	#TT.CRW,STSW1(R5) ;;; WAITING FOR CARRIER??
  12169	040444	001412 				BEQ	80$		;;; NO -- GO ON
  12170	040446	032765 	002000 	000006 		BIT	#TT.RIP,STSW1(R5) ;;; YES -- IS THIS THE FIRST TIME??
  12171	040454	001404 				BEQ	70$		;;; NO -- GO HANG THE LINE UP
  12172	040456	042765 	002000 	000006 		BIC	#TT.RIP,STSW1(R5) ;;; YES -- SET TIMEOUT REQUEST
  12173	040464	000402 				BR	80$		;;; AND TRY THE NEXT LINE
  12174						;
  12175	040466				70$:
  12176	040466					CALL	.DLHUP		;;; HANG UP THE LINE
	040466	004737 	040214'			JSR	PC,.DLHUP
  12177	040472				80$:
  12178	040472	062705 	000010 			ADD	#^D8,R5		;;; POINT TO THE NEXT DLS ENTRY
  12179	040476	077040 				SOB	R0,30$		;;; DO THE NEXT LINE
  12180	040500				90$:
  12181	040500					RETURN
	040500	000207 				RTS	PC
  12182					;
  12183					; INITIALIZATION NXD PROCESSOR
  12184					;
  12185	040502				100$:				;;; HERE ON NXM INTERRUPT
  12186	040502	032626 				BIT	(SP)+,(SP)+	;;; CLEAR THE INTERRUPT
  12187	040504	005065 	000002 			CLR	TTYEXP(R5)	;;; SET NON-EXISTENT DEVICE
  12188	040510	000770 				BR	80$		;;; AND TRY FOR NEXT LINE
  12189						;
  12190					;
  12191					; LOCAL SUBROUTINE TO CHECK INTERRUPT ENABLES AND LOG ERRORS
  12192					;
  12193	040512				CKDLEN:
  12194	040512	005737 	001030'			TST	.PFIOW		;;; [4.2309] IS THIS A POWER-FAIL RESTART??
  12195	040516	001405 				BEQ	10$		;;; [4.2309] NO -- GO ON
  12196	040520	105065 	000004 			CLRB	STSW0(R5)	;;; [4.2309] YES -- ENABLE INPUT
  12197	040524					CALL	.TTRST		;;; [4.2309] RESET THIS LINE
	040524	004737 	042034'			JSR	PC,.TTRST
  12198	040530	000430 				BR	50$		;;; [5.1007] AND ENABLE THE LINE
  12199						;
  12200					;
  12201					; CHECK INPUT INTERRUPT ENABLE
  12202					;
  12203	040532				10$:
  12204	040532	105765 	000004 			TSTB	STSW0(R5)	;;; [5.1007] INPUT ENABLED ON THIS LINE??
  12205	040536	001003 				BNE	20$		;;; [5.1007] NO -- GO ON
  12206	040540	032714 	000100 			BIT	#DL.REN,(R4)	;;; [5.1007] YES -- INPUT INTERRUPT ENABLED??
  12207	040544	001415 				BEQ	40$		;;; [5.1007] NO -- ERROR LOG IT
  12208					;
  12209					; CHECK OUTPUT INTERRUPT ENABLE
  12210					;
  12211	040546				20$:
  12212	040546	032764 	000100 	000004 		BIT	#DL.XEN,4(R4)	;;; [5.1007] YES -- OUTPUT INTERRUPT ENABLED??
  12213	040554	001003 				BNE	30$		;;; [5.1007] YES -- GO ON
  12214	040556	105064 	000006 			CLRB	6(R4)		;;; [5.1007] NO -- RECOVER ERROR
  12215	040562	000406 				BR	40$		;;; [5.1007] AND LOG IT
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 229-2
TERMINAL DRIVER -- .DLTMO (DL-11E MODEM CONTROL TIMEOUT)

  12216						;
  12217					;
  12218					; CHECK DATASET INTERRUPT ENABLE
  12219					;
  12220	040564				30$:
  12221	040564	022705 	002776'			CMP	#TTTBL,R5	;;; [5.1007] IS THIS THE CTY??
  12222	040570	001410 				BEQ	50$		;;; [5.1007] YES -- GO ON
  12223	040572	032714 	000040 			BIT	#DL.DEN,(R4)	;;; [5.1007] NO -- DATASET INTERRUPT ENABLED??
  12224	040576	001005 				BNE	50$		;;; [5.1007] YES -- ENABLE INTERRUPTS AND EXIT
  12225	040600				40$:
  12226	040600	016437 	000004 	002660'		MOV	4(R4),.TTELB	;;; [5.1007] NO -- SET ALTERNATE STATUS
  12227	040606					CALL	DHERLG		;;; [5.1007] LOG THE ERROR
	040606	004737 	041106'			JSR	PC,DHERLG
  12228					;
  12229					; ENABLE INTERRUPTS FOR THIS LINE
  12230					;
  12231	040612				50$:
  12232	040612	105765 	000004 			TSTB	STSW0(R5)	;;; [5.1007] INPUT ALLOWED ON THIS LINE??
  12233	040616	001002 				BNE	60$		;;; [5.1007] NO -- GO ON
  12234	040620	052714 	000100 			BIS	#DL.REN,(R4)	;;; [4.2309] YES -- ENABLE INPUT INTERRUPTS
  12235	040624				60$:
  12236	040624	052764 	000100 	000004 		BIS	#DL.XEN,4(R4)	;;; [5.1007] ENABLE OUTPUT INTERRUPTS
  12237	040632	022705 	002776'			CMP	#TTTBL,R5	;;; [5.1007] IS THIS THE CTY??
  12238	040636	001402 				BEQ	70$		;;; [5.1007] YES -- EXIT
  12239	040640	052714 	000040 			BIS	#DL.DEN,(R4)	;;; [5.1007] NO -- ENABLE DATASET INTERRUPTS
  12240	040644				70$:
  12241	040644					RETURN
	040644	000207 				RTS	PC
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 230
TERMINAL DRIVER -- .DHTMO (DH-11 CONTROLLER TIMEOUT)

  12243						.SBTTL	TERMINAL DRIVER -- .DHTMO (DH-11 CONTROLLER TIMEOUT)
  12244
  12245					;+
  12246					; .DHTMO -- DH-11 CONTROLLER TIMEOUT
  12247					;
  12248					; THIS SUBROUTINE IS CALLED FROM THE POWER-FAIL RESTART CODE, AND EVERY 10
  12249					; SECONDS FROM THE TERMINAL SERVICE DISPATCH.  THIS SUBROUTINE PERFORMS THE
  12250					; FOLLWING FUNCTIONS:
  12251					;
  12252					;	1. DH-11 CONTROLLER INITIALIZATION
  12253					;	2. DH-11 STATUS MAINTENANCE
  12254					;	3. DH-11 INPUT RESTART
  12255					;	4. DH-11 ERROR LOGGING
  12256					;
  12257					; INPUTS:
  12258					;
  12259					;	NONE
  12260					;
  12261					; OUTPUTS:
  12262					;
  12263					; ALL DH-11 CONTROLLERS ARE SCANNED FOR INTERRUPT ENABLE OR NXM.  IF THE
  12264					; INTERRUPT ENABLE IS NOT PRESENT OR THE DH-11 CONTROLLER HAS ENCOUNTERED
  12265					; AN NXM, THE CONTROLLER IS (RE)INITIALIZED.  IF THIS IS A POWER-FAIL RESTART
  12266					; THE LINE STATUS IS RESET AND THE OUTPUT QUEUES FOR ALL LINES ON THE CONTROLLER
  12267					; ARE DEALLOCATED, OTHERWISE THESE CONDITIONS WILL BE LOGGED AS AN ERROR.
  12268					; IF THE DH-11 LINE HAS AN INPUT RESTART PENDING, THE LINE SPEED IS SET UP SO
  12269					; NORMAL INPUT MAY PROCEED.
  12270					;
  12271					; ALL DM-11/BB CONTROLLERS ARE SCANNED FOR INTERRUPT ENABLE AND CARRIER
  12272					; MAINTENANCE.  IF A CARRIER TIMEOUT HAS OCCURRED, THE UNIT IS HUNG UP AND,
  12273					; IF THE LINE IS AN AUTO-BAUD LINE, IS SPEED IS RESET TO DEFAULT.  IF A
  12274					; DM-11/BB HAS LOST THE INTERRUPT ENABLE, IT WILL BE ERROR LOGGED.
  12275					;
  12276					; NO REGISTERS ARE PRESERVED
  12277					;
  12278					; NOTE:
  12279					;	THIS ROUTINE MUST BE CALLED AT BR5 OR HIGHER
  12280					;
  12281					; NOTE:
  12282					;	THE NXM VECTOR IS ALTERED ON POWER-FAIL RESTART.  IT IS ASSUMED THAT
  12283					;	THIS VECTOR WILL BE RESET BY THE CALLING ROUTINE.
  12284					;
  12285					; NOTE:
  12286					;	THIS ROUTINE WILL EXIT THROUGH THE DM-11/BB TIMEOUT ROUTINE, BELOW
  12287					;-
  12288
  12289						.ENABL	LSB
  12290
  12291	040646				.DHTMO::
  12292	040646	012705 	003046'			MOV	#DHTBL,R5	;;; [4.2205] SET UP DH-11 TABLE POINTER
  12293	040652	005737 	001030'			TST	.PFIOW		;;; [4.2205] POWER-FAIL RESTART??
  12294	040656	001403 				BEQ	10$		;;; [4.2205] NO -- GO ON
  12295	040660	012737 	041066'	000004 		MOV	#DMTNXM,@#4	;;; [4.2205] YES -- HANDLE OUR OWN TRAPS
  12296					;
  12297					; INITIALIZE FOR CURRENT DH-11 CONTROLLER
  12298					;
  12299	040666				10$:
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 230-1
TERMINAL DRIVER -- .DHTMO (DH-11 CONTROLLER TIMEOUT)

  12300	040666	005002 				CLR	R2		;;; [4.2205] INIT UNIT COUNTER
  12301	040670	005046 				CLR	-(SP)		;;; [4.2205] INIT RESET FLAG ON STACK
  12302	040672	012701 	000020 			MOV	#^D16,R1	;;; [4.2205] INIT ITERATION COUNTER
  12303					;
  12304					; INITIALIZE FOR CURRENT DH-11 LINE
  12305					;
  12306					; REGISTER SUMMARY:
  12307					;
  12308					;	R1 -- ITERATION COUNTER
  12309					;	R2 -- UNIT COUNTER
  12310					;	R3 -- LINE SPEED WORD
  12311					;	R4 -- I/O PAGE POINTER
  12312					;	R5 -- POINTER TO DH-11 TABLE
  12313					;	(SP) -- CONTROLLER RESET FLAG
  12314					;		MUST BE FLUSHED ON EXIT
  12315					;
  12316					; NXM AND INTERRUPT ENABLE CHECKS
  12317					;
  12318	040676				15$:
  12319	040676	016504 	000002 			MOV	TTYEXP(R5),R4	;;; [4.2205] GET EXTERNAL PAGE POINTER FOR THIS DH-11
  12320	040702	001454 				BEQ	50$		;;; [5.1004] MAKE DONE CHECKS IF .EQ. 0
  12321	040704	042714 	001077 			BIC	#1077,(R4)	;;; [4.2205] CLEAR OUT PREVIOUS LINE NUMBER
  12322	040710	050214 				BIS	R2,(R4)		;;; [4.2205] AND SET THE CURRENT LINE NUMBER
  12323	040712	005716 				TST	(SP)		;;; [4.2205] HAVE WE RESET THIS DH-11??
  12324	040714	001015 				BNE	30$		;;; [4.2205] YES -- CONTINUE SETTING LINES UP
  12325	040716	032714 	002000 			BIT	#2000,(R4)	;;; [4.2205] NO -- DID IT GET AN NXM??
  12326	040722	001003 				BNE	20$		;;; [4.2205] YES -- HANDLE AS A TIMEOUT
  12327	040724	032714 	000100 			BIT	#100,(R4)	;;; [4.2205] NO -- ARE INTERRUPTS ENABLED??
  12328	040730	001015 				BNE	35$		;;; [4.2205] YES -- CHECK FOR LINE RESTART
  12329	040732				20$:
  12330	040732					CALL	DHERLG		;;; [5.1007] LOG THE ERROR
	040732	004737 	041106'			JSR	PC,DHERLG
  12331					;
  12332					; HERE TO RESET AND INITIALIZE A DH-11 CONTROLLER
  12333					;
  12334	040736				25$:
  12335	040736	012714 	004000 			MOV	#4000,(R4)	;;; [4.2205] MASTER CLEAR THE DH-11
  12336	040742	005064 	000016 			CLR	16(R4)		;;; [4.2205] INIT THE SILO ALARM TO ZERO
  12337	040746	005316 				DEC	(SP)		;;; [4.2205] INDICATE THAT WE HAVE RESET THIS DH-11
  12338					;
  12339					; HERE TO RESET AND INITIALIZE A DH-11 LINE
  12340					;
  12341	040750				30$:
  12342	040750	005737 	001030'			TST	.PFIOW		;;; [4.2205] IS THIS A POWER-FAIL RESTART??
  12343	040754	001407 				BEQ	40$		;;; [4.2205] NO -- GO ON
  12344	040756					CALL	.TTRST		;;; [4.2205] YES -- RESET THIS LINE
	040756	004737 	042034'			JSR	PC,.TTRST
  12345	040762	000404 				BR	40$		;;; [4.2205] AND SET UP THE LINE SPEED
  12346						;
  12347					;
  12348					; HERE TO CHECK FOR LINE RESTART
  12349					;
  12350	040764				35$:
  12351	040764	032765 	020000 	000006 		BIT	#TT.RSI,STSW1(R5) ;;; [4.2205] DOES THIS LINE NEED RESTARTING??
  12352	040772	001420 				BEQ	50$		;;; [4.2205] NO -- GO ON
  12353	040774				40$:
  12354	040774	010246 				MOV	R2,-(SP)	;;; [5.1015] YES -- SAVE R2
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 230-2
TERMINAL DRIVER -- .DHTMO (DH-11 CONTROLLER TIMEOUT)

  12355	040776					CALL	.TTSW2		;;; [5.1015] FIND OUR "STSW2" ENTRY
	040776	004737 	042754'			JSR	PC,.TTSW2
  12356	041002	032712 	140000 			BIT	#S2.DDN!S2.DIP,(R2) ;;; [5.1015] IS THE LINE (BEING) TURNED OFF??
  12357	041006	001011 				BNE	45$		;;; [5.1015] YES -- LEAVE IT ALONE
  12358	041010	016503 	000004 			MOV	STSW0(R5),R3	;;; [4.2205] NO -- GET THE LINE SPEED
  12359	041014	042703 	140000 			BIC	#S0.MSK,R3	;;; [4.2284] GET RID OF THE AUTO-BAUD FLAG
  12360	041020	010364 	000004 			MOV	R3,4(R4)	;;; [4.2205] SET THE LINE SPEED IN THE DH-11
  12361	041024	042765 	020000 	000006 		BIC	#TT.RSI,STSW1(R5) ;;; [4.2205] AND RESET THE RESTART FLAG
  12362	041032				45$:
  12363	041032	012602 				MOV	(SP)+,R2	;;; [5.1015] RESTORE R2
  12364					;
  12365					; SET UP FOR NEXT LINE IN THIS DH-11
  12366					;
  12367	041034				50$:
  12368	041034	005202 				INC	R2		;;; [4.2205] NEXT UNIT
  12369	041036	062705 	000010 			ADD	#^D8,R5		;;; [4.2205] NEXT DH-11 LINE IN DLS TABLE
  12370	041042	005301 				DEC	R1		;;; [4.2205] COUNT THIS LINE
  12371	041044	001314 				BNE	15$		;;; [4.2205] ITERATE THROUGH THIS DH-11/DM-11 PAIR
  12372	041046	005726 				TST	(SP)+		;;; [4.2205] DONE -- FLUSH AND TEST CONTROLLER RESET FLAG
  12373	041050	001402 				BEQ	55$		;;; [4.2205] GO ON IF DH-11 WASN'T RESET
  12374	041052	012714 	030100 			MOV	#30100,(R4)	;;; [4.2205] WAS RESET -- ENABLE IT
  12375					;
  12376					; SET UP FOR NEXT DH-11 IN SYSTEM
  12377					;
  12378	041056				55$:
  12379	041056	022705 	005046'			CMP	#TTYEND,R5	;;; [5.1005] ARE WE ALL DONE??
  12380	041062	101301 				BHI	10$		;;; [4.2205] NO -- START OVER
  12381	041064					RETURN			;;; [5.1004] YES -- RETURN TO CALLER
	041064	000207 				RTS	PC
  12382					;
  12383					; HERE ON TRAP-AT-4 DURING INITIALIZATION
  12384					;
  12385					;	R5 -- POINTS TO FIRST INVALID ENTRY IN DH-11 CONTROLLER TABLE
  12386					;
  12387					; STACK SUMMARY:
  12388					;
  12389					;	0(SP) -- TRAP PC
  12390					;	2(SP) -- TRAP PSW
  12391					;	4(SP) -- INITIALIZATION FLAG FROM .DHTMO, ABOVE
  12392
  12393	041066				DMTNXM:
  12394	041066	005065 	000002 			CLR	TTYEXP(R5)	;;; [5.1004] INDICATE THIS LINE DOES NOT EXIST
  12395	041072	062705 	000010 			ADD	#^D8,R5		;;; [5.1004] POINT TO NEXT LINE ON CONTROLLER
  12396	041076	077105 				SOB	R1,DMTNXM	;;; [5.1004] LOOP THRU ALL LINES
  12397	041100	032626 				BIT	(SP)+,(SP)+	;;; [4.2205] FLUSH TRAP PS/PC
  12398	041102	005726 				TST	(SP)+		;;; [4.2205] AND INITIALIZATION FLAG
  12399	041104	000764 				BR	55$		;;; [5.1004] TRY THE NEXT CONTROLLER
  12400						;
  12401
  12402						.DSABL	LSB
  12403
  12404					;
  12405					; HERE TO LOG A "LOST-INTERRUPT-ENABLE" ERROR
  12406					;
  12407
  12408	041106				DHERLG:
  12409	041106	005737 	001030'			TST	.PFIOW		;;; [5.1007] IS THIS A POWER-FAIL RESTART??
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 230-3
TERMINAL DRIVER -- .DHTMO (DH-11 CONTROLLER TIMEOUT)

  12410	041112	001004 				BNE	10$		;;; [5.1007] YES -- GO ON
  12411	041114	012703 	002100 			MOV	#DV.LOG!DV.LIN,R3 ;;; [5.1007] YES -- SET STANDARD STATUS
  12412	041120					CALL	.TTERL		;;; [5.1007] LOG THE ERROR
	041120	004737 	041426'			JSR	PC,.TTERL
  12413	041124				10$:
  12414	041124					RETURN			;;; [5.1007] TO CALLER
	041124	000207 				RTS	PC
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 231
TERMINAL DRIVER -- .DMTMO (DM-11/BB MODEM CONTROL TIMEOUT)

  12416						.SBTTL	TERMINAL DRIVER -- .DMTMO (DM-11/BB MODEM CONTROL TIMEOUT)
  12417
  12418					;+
  12419					; .DMTMO -- DM-11/BB CARRIER WAIT TIMEOUT
  12420					;
  12421					; THIS SUBROUTINE CHECKS THE CARRIER MAINTENANCE FOR THE DM-11/BB LINES.
  12422					; THIS SUBROUTINE ALSO ERROR LOGS DM-11/BB LINES WHICH LOSE INTERRUPT ENABLE.
  12423					;
  12424					; INPUTS:
  12425					;
  12426					;	NONE
  12427					;
  12428					; OUTPUTS:
  12429					;
  12430					;	NO REGISTERS PRESERVED
  12431					;
  12432					; REGISTER SUMMARY:
  12433					;
  12434					;	R0 -- DM-11/BB TABLE POINTER
  12435					;	R1 -- UNIT NUMBER
  12436					;	R2 -- POINTER TO DM-11/BB LSR
  12437					;	R4 -- POINTER TO DM-11/BB CSR
  12438					;	R5 -- POINTER TO DLS TABLE ENTRY FOR THIS LINE
  12439					;-
  12440
  12441	041126				.DMTMO::
  12442	041126	012700 	002734'			MOV	#DMTBL,R0	;;; [4.2206] INIT DM-11/BB TABLE POINTER
  12443	041132	005737 	001030'			TST	.PFIOW		;;; [4.1.1091] IS THIS A POWERFAIL RESTART??
  12444	041136	001403 				BEQ	10$		;;; [4.1.1091] NO -- GO ON
  12445	041140	012737 	041350'	000004 		MOV	#90$,@#4	;;; [4.1.1091] YES -- SET UP THE TRAP VECTOR
  12446	041146				10$:
  12447	041146	012004 				MOV	(R0)+,R4	;;; [4.2206] POINT TO DM-11/BB CSR
  12448	041150	001005 				BNE	15$		;;; [4.1.1091] GO ON IF IT EXISTS
  12449	041152	022700 	002776'			CMP	#DMTBE,R0	;;; [4.1.1091] HAVE WE DONE THEM ALL??
  12450	041156	001473 				BEQ	80$		;;; [4.1.1091] YES -- EXIT
  12451	041160	005720 				TST	(R0)+		;;; [4.1.1091] NO -- FIX UP THE POINTER
  12452	041162	000771 				BR	10$		;;; [4.1.1091] AND TRY FOR THE NEXT DM-11/BB
  12453						;
  12454	041164				15$:
  12455	041164	012005 				MOV	(R0)+,R5	;;; [4.2206] POINT TO DHTBL ENTRY
  12456	041166	005001 				CLR	R1		;;; [4.2206] INIT UNIT NUMBER
  12457	041170				20$:
  12458	041170	005765 	000002 			TST	TTYEXP(R5)	;;; [4.2206] THIS DH-11 EXIST??
  12459	041174	001466 				BEQ	100$		;;; [4.1.1091] NO -- MARK DM-11/BB NON-EXISTENT AS WELL
  12460	041176	005737 	001030'			TST	.PFIOW		;;; [4.1.1091] POWERFAIL RESTART??
  12461	041202	001403 				BEQ	25$		;;; [4.1.1091] NO -- GO ON
  12462	041204	012714 	000140 			MOV	#140,(R4)	;;; [4.1.1091] YES -- INIT THE CONTROLLER
  12463	041210	000756 				BR	10$		;;; [4.1.1091] AND CONTINUE
  12464						;
  12465	041212				25$:
  12466	041212	032765 	000004 	000006 		BIT	#TT.CRW,STSW1(R5) ;;; [4.2206] YES -- WAITING FOR CARRIER??
  12467	041220	001414 				BEQ	40$		;;; [4.2206] NO -- GO ON
  12468	041222	032765 	002000 	000006 		BIT	#TT.RIP,STSW1(R5) ;;; [4.2206] YES -- TIMING OUT??
  12469	041230	001005 				BNE	30$		;;; [4.2206] NO -- GO ON
  12470	041232					CALL	.DMHUP		;;; [4.2206] HANG UP THE LINE
	041232	004737 	040144'			JSR	PC,.DMHUP
  12471	041236					CALL	.DHSPR		;;; [4.2206] YES -- RESET THE LINE SPEED TO DEFAULT
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 231-1
TERMINAL DRIVER -- .DMTMO (DM-11/BB MODEM CONTROL TIMEOUT)

	041236	004737 	037460'			JSR	PC,.DHSPR
  12472	041242	000403 				BR	40$		;;; [5.1007] AND SEE ABOUT ERROR LOGGING
  12473						;
  12474	041244				30$:
  12475	041244	042765 	002000 	000006 		BIC	#TT.RIP,STSW1(R5) ;;; [4.2206] MARK TIMEOUT REQUEST
  12476	041252				40$:
  12477	041252					CALL	.STPDM		;;; [5.1007] STOP THE DM-11/BB SCAN
	041252	004737 	040174'			JSR	PC,.STPDM
  12478	041256	010402 				MOV	R4,R2		;;; [5.1007] COPY CSR POINTER TO R2
  12479	041260	050122 				BIS	R1,(R2)+	;;; [5.1007] SET UP THE UNIT NUMBER
  12480	041262	032714 	000100 			BIT	#100,(R4)	;;; [5.1007] INTERRUPTS ENABLED??
  12481	041266	001403 				BEQ	50$		;;; [5.1007] NO -- ERROR LOG IT
  12482	041270	032712 	000001 			BIT	#1,(R2)		;;; [5.1007] YES -- IS THE LINE ENABLED??
  12483	041274	001004 				BNE	60$		;;; [5.1007] YES -- GO ON
  12484	041276				50$:
  12485	041276	011237 	002660'			MOV	(R2),.TTELB	;;; [5.1007] NO -- SAVE ALTERNATE STATUS
  12486	041302					CALL	DHERLG		;;; [5.1007] ERROR LOG IT
	041302	004737 	041106'			JSR	PC,DHERLG
  12487	041306				60$:
  12488	041306	052712 	000001 			BIS	#1,(R2)		;;; [5.1007] ENABLE THE LINE
  12489	041312	032712 	000004 			BIT	#4,(R2)		;;; [5.1007] REQUEST-TO-SEND UP??
  12490	041316	001402 				BEQ	70$		;;; [5.1007] NO -- GO ON
  12491	041320	052712 	000007 			BIS	#7,(R2)		;;; [5.1007] YES -- FULLY ENABLE LINE
  12492	041324				70$:
  12493	041324	052714 	000140 			BIS	#140,(R4)	;;; [5.1007] ENABLE SCAN
  12494	041330	062705 	000010 			ADD	#^D8,R5		;;; [4.2206] POINT TO NEXT DHTBL ENTRY
  12495	041334	005201 				INC	R1		;;; [4.2206] INCREMENT UNIT NUMBER
  12496	041336	022701 	000020 			CMP	#^D16,R1	;;; [4.2206] HAVE WE OVERFLOWED??
  12497	041342	003312 				BGT	20$		;;; [4.2206] NO -- GO ON
  12498	041344	000700 				BR	10$		;;; [5.1004] YES -- START NEXT CONTROLLER
  12499						;
  12500	041346				80$:
  12501	041346					RETURN			;;; [4.2206] RETURN TO CALLER
	041346	000207 				RTS	PC
  12502					;
  12503					; HERE ON NON-EXISTENT DM-11/BB TRAP
  12504					;
  12505	041350				90$:
  12506	041350	032626 				BIT	(SP)+,(SP)+	;;; [4.1.1091] FLUSH TRAP PS/PC
  12507	041352				100$:
  12508	041352	005060 	177774 			CLR	-4(R0)		;;; [4.1.1091] DECLARE THE DM NON-EXISTENT
  12509	041356	000673 				BR	10$		;;; [4.1.1091] AND TRY NEXT DH/DM PAIR
  12510						;
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 232
TERMINAL DRIVER -- .TTFDI (INPUT CONTROL SERVICE)

  12512						.SBTTL	TERMINAL DRIVER -- .TTFDI (INPUT CONTROL SERVICE)
  12513
  12514					;+
  12515					; .TTFDI -- INPUT CONTROL SERVICE
  12516					;
  12517					; THIS SUBROUTINE WILL RETURN POINTERS TO THE NEXT LINE TO BE SERVICED FOR
  12518					; INPUT CONTROL (ENABLE) IN R2 AND R5.
  12519					;
  12520					; INPUTS:
  12521					;
  12522					;	.S2ITP -- POINTER TO THE LAST LINE TO BE SERVICED FOR INPUT CONTROL
  12523					;
  12524					; OUTPUTS:
  12525					;
  12526					;	R2 -- POINTER TO "STSW2" ENTRY FOR NEXT LINE TO BE SERVICED
  12527					;	R5 -- POINTER TO DLS TABLE ENTRY FOR NEXT LINE TO BE SERVICED
  12528					;	.S2ITP -- UPDATED TO POINT TO CURRENT LINE
  12529					;-
  12530
  12531	041360				.TTFDI::
  12532	041360	013705 	005052'			MOV	.S2ITP,R5	;;; [4.1.1092] GET POINTER TO THE LAST LINE
  12533	041364	000405 				BR	20$		;;; [4.1.1092] AND GO ON
  12534						;
  12535	041366				10$:
  12536	041366					CALL	.TTSW2		;;; [4.1.1092] FIND "STSW2" ENTRY FOR THIS LINE
	041366	004737 	042754'			JSR	PC,.TTSW2
  12537	041372	032712 	004000 			BIT	#S2.LCL,(R2)	;;; [4.1.1092] HAVE WE FOUND A LINE??
  12538	041376	001010 				BNE	30$		;;; [4.1.1092] YES -- EXIT
  12539	041400				20$:
  12540	041400	062705 	000010 			ADD	#10,R5		;;; [4.1.1092] NO -- FIND THE NEXT DLS ENTRY
  12541	041404	022705 	005046'			CMP	#TTYEND,R5	;;; [4.1.1092] HAVE WE FALLEN OFF THE END??
  12542	041410	101366 				BHI	10$		;;; [4.1.1092] NO -- CONTINUE SEARCHING
  12543	041412	012705 	002776'			MOV	#TTTBL,R5	;;; [4.1.1092] YES -- RESET TO BEGINNING
  12544	041416	000763 				BR	10$		;;; [4.1.1092] AND GO ON
  12545						;
  12546	041420				30$:
  12547	041420	010537 	005052'			MOV	R5,.S2ITP	;;; [4.1.1092] SAVE POINTER FOR THE NEXT TIME
  12548	041424					RETURN			;;; [4.1.1092] TO CALLER
	041424	000207 				RTS	PC
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 233
TERMINAL DRIVER -- .TTERL (TERMINAL ERROR LOGGING)

  12550						.SBTTL	TERMINAL DRIVER -- .TTERL (TERMINAL ERROR LOGGING)
  12551
  12552					;+
  12553					; .TTERL -- TERMINAL ERROR LOGGING
  12554					;
  12555					; THIS SUBROUTINE WILL ENTER A TERMINAL ERROR REPORT IN THE TERMINAL
  12556					; ERROR LOGGING QUEUE.
  12557					;
  12558					; INPUTS:
  12559					;
  12560					;	R4 -- I/O PAGE POINTER FOR THIS DEVICE
  12561					;	R3 -- ERROR STATUS FOR THIS REPORT
  12562					;
  12563					; OUTPUTS:
  12564					;
  12565					;	NO REGISTERS ARE ALTERED
  12566					;-
  12567
  12568	041426				.TTERL::
  12569	041426	005737 	001012'			TST	.COMEF+2	;;; [4.1.1105] IS PRIMARY PROTOCOL RUNNING??
  12570	041432	100047 				BPL	40$		;;; [4.1.1105] NO -- JUST EXIT
  12571	041434	022737 	000006 	002656'		CMP	#6,.TTELC	;;; [5.1008] IS THERE ROOM IN THE QUEUE??
  12572	041442	003443 				BLE	40$		;;; [5.1008] NO -- EXIT
  12573	041444	010246 				MOV	R2,-(SP)	;;; [4.2245] YES -- SAVE REGISTERS
  12574	041446	010146 				MOV	R1,-(SP)	;;; [4.2245]
  12575	041450	010046 				MOV	R0,-(SP)	;;; [4.2245]
  12576	041452	010446 				MOV	R4,-(SP)	;;; [4.2245]
  12577	041454	012701 	000016 			MOV	#16,R1		;;; [4.2245] SET UP NODE SIZE
  12578	041460					CALL	..ALCB		;;; [4.2245] GET ONE FROM THE POOL
	041460	004737 	044416'			JSR	PC,..ALCB
  12579	041464	103424 				BCS	30$		;;; [4.2245] ERROR IF CC-C IS SET
  12580	041466	010160 	000002 			MOV	R1,T.HBCT(R0)	;;; [4.2245] GOT ONE -- SET NODE SIZE
  12581	041472	012701 	002654'			MOV	#.TTELQ,R1	;;; [4.2245] SET UP QUEUE POINTER
  12582	041476	005261 	000002 			INC	2(R1)		;;; [5.1008] ONE MORE NODE
  12583	041502				10$:
  12584	041502	011102 				MOV	(R1),R2		;;; [4.2245] FIND THE LAST NODE IN THE QUEUE
  12585	041504	001402 				BEQ	20$		;;; [4.2245] FOUND IT -- GO ON
  12586	041506	010201 				MOV	R2,R1		;;; [4.2245] NOT YET -- TRY AGAIN
  12587	041510	000774 				BR	10$		;;; [4.2245] SO
  12588						;
  12589	041512				20$:
  12590	041512	010011 				MOV	R0,(R1)		;;; [4.2245] ADD THIS NODE
  12591	041514	005020 				CLR	(R0)+		;;; [4.2245] MARK NEW END OF QUEUE
  12592	041516	005720 				TST	(R0)+		;;; [4.2245] GET OVER THE LISTHEAD (PACKET SIZE)
  12593	041520	012720 	000012 			MOV	#12,(R0)+	;;; [4.2245] SET MESSAGE SIZE
  12594	041524	010320 				MOV	R3,(R0)+	;;; [4.2245] SET ERROR STATUS
  12595	041526	010420 				MOV	R4,(R0)+	;;; [4.2245] SET THE DEVICE ADDRESS
  12596	041530	012420 				MOV	(R4)+,(R0)+	;;; [4.2245] SET DEVICE STATUS
  12597	041532	013710 	002660'			MOV	.TTELB,(R0)	;;; [4.2245] SET SAVED STATUS, IF ANY
  12598	041536				30$:
  12599	041536	005037 	002660'			CLR	.TTELB		;;; [4.2245] CLEAR SAVED STATUS
  12600	041542	012604 				MOV	(SP)+,R4	;;; [4.2245] RESTORE REGISTERS
  12601	041544	012600 				MOV	(SP)+,R0
  12602	041546	012601 				MOV	(SP)+,R1
  12603	041550	012602 				MOV	(SP)+,R2
  12604	041552				40$:
  12605	041552					RETURN			;;; [4.2245] TO CALLER
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 233-1
TERMINAL DRIVER -- .TTERL (TERMINAL ERROR LOGGING)

	041552	000207 				RTS	PC
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 234
TERMINAL DRIVER -- .TTXOF (DEVICE DEPENDENT XOFF PROCESSING)

  12607						.SBTTL	TERMINAL DRIVER -- .TTXOF (DEVICE DEPENDENT XOFF PROCESSING)
  12608
  12609					;+
  12610					; .TTXOF -- DEVICE DEPENDENT XOFF PROCESSING
  12611					;
  12612					; THIS SUBROUTINE WILL PROCESS AN XOFF AND STOP OUTPUT ON A SPECIFIED
  12613					; TERMINAL LINE.
  12614					;
  12615					; INPUTS:
  12616					;
  12617					;	R5 -- POINTER TO DATA LINE SCANNER TABLE ENTRY FOR LINE TO BE STOPPED.
  12618					;
  12619					; OUTPUTS:
  12620					;
  12621					;	THE LINE IS STOPPED.
  12622					;
  12623					; CALLED FROM QUEUED PROTOCOL TASK AND TERMINAL INPUT SERVICE
  12624					;-
  12625
  12626						.ENABL	LSB
  12627
  12628	041554				.TTXOF::
  12629	041554	105765 	000006 			TSTB	STSW1+0(R5)	;;; [4.2181] ALREADY X'D OFF??
  12630	041560	100432 				BMI	10$		;;; [4.2181] YES -- JUST EXIT
  12631	041562	032765 	001000 	000006 		BIT	#TT.SIP,STSW1(R5) ;;; [4.2181] NO -- SENDALL IN PROGRESS??
  12632	041570	001023 				BNE	.DLXOF		;;; [4.2181] YES -- MARK XOFF AND RETURN
  12633	041572	032765 	000002 	000006 		BIT	#TT.CTY,STSW1(R5) ;;; [4.2181] NO -- IS THIS A CTY??
  12634	041600	001414 				BEQ	.DHXOF		;;; [4.2181] NO -- GO ON
  12635	041602	005737 	002632'			TST	.TTP11		;;; [4.2181] YES -- IN PDP-11 I/O WAIT??
  12636	041606	001017 				BNE	10$		;;; [4.2181] YES -- JUST EXIT
  12637	041610	105737 	001226'			TSTB	.KLNSW+0	;;; [4.2181] NO -- IS KLINIK ACTIVE??
  12638	041614	003406 				BLE	.DHXOF		;;; [4.2181] NO -- NOT THAT WE CARE -- GO ON
  12639	041616	010546 				MOV	R5,-(SP)	;;; [4.2181] YES -- SAVE CTY POINTER
  12640	041620	013705 	002636'			MOV	KLNPTR,R5	;;; [4.2181] SUBSTITUTE KLINIK POINTER
  12641	041624					CALL	.DHXOF		;;; [4.2181] STOP THE KLINIK LINE
	041624	004737 	041632'			JSR	PC,.DHXOF
  12642	041630	012605 				MOV	(SP)+,R5	;;; [4.2181] RESTORE CTY POINTER
  12643					;
  12644					; HERE TO STOP A DH-11 LINE
  12645					;
  12646	041632				.DHXOF::
  12647	041632					CALL	.TTSTP		;;; [5.1015] SEE ABOUT STOPPING I/O
	041632	004737 	041650'			JSR	PC,.TTSTP
  12648	041636	001403 				BEQ	10$		;;; [5.1015] EXIT IF NON-EXISTENT
  12649					;
  12650					; HERE TO STOP  DL-11 LINE
  12651					;
  12652	041640				.DLXOF::
  12653	041640	052765 	000200 	000006 		BIS	#TT.XOF,STSW1(R5) ;;; [4.2181] MARK THE LINE AS X'D OFF
  12654	041646				10$:
  12655	041646					RETURN			;;; [4.2181] TO CALLER
	041646	000207 				RTS	PC
  12656
  12657						.DSABL	LSB
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 235
TERMINAL DRIVER -- .TTSTP (STOP TERMINAL OUTPUT)

  12659						.SBTTL	TERMINAL DRIVER -- .TTSTP (STOP TERMINAL OUTPUT)
  12660
  12661					;+
  12662					; .TTSTP -- STOP TERMINAL OUTPUT
  12663					;
  12664					; THIS SUBROUTINE WILL STOP OR TRUNCATE OUTPUT FOR A LINE
  12665					;
  12666					; INPUTS:
  12667					;
  12668					;	R5 -- POINTS TO DLS ENTRY FOR LINE TO BE STOPPED
  12669					;
  12670					; OUTPUTS:
  12671					;
  12672					;	R4 -- POINTS TO DEVICE I/O PAGE ADDRESS
  12673					;-
  12674
  12675	041650				.TTSTP::
  12676	041650					CALL	.STDHL		;;; [5.1015] SET THE DH-11 LINE NUMBER
	041650	004737 	037416'			JSR	PC,.STDHL
  12677	041654	003407 				BLE	10$		;;; [5.1015] GO ON IF DL-11 OR NON-EXISTENT
  12678	041656	022764 	177775 	000010 		CMP	#-3,10(R4)	;;; [5.1015] MUST WE TRUNCATE PACKET??
  12679	041664	002403 				BLT	10$		;;; [5.1015] NO -- JUST LET I/O RUN DOWN
  12680	041666	012764 	177777 	000010 		MOV	#-1,10(R4)	;;; [5.1015] YES -- TRUNCATE IT
  12681	041674				10$:
  12682	041674					RETURN			;;; [5.1015] TO CALLER
	041674	000207 				RTS	PC
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 236
TERMINAL DRIVER -- .TTXON (DEVICE DEPENDENT XON PROCESSING)

  12684						.SBTTL	TERMINAL DRIVER -- .TTXON (DEVICE DEPENDENT XON PROCESSING)
  12685
  12686					;+
  12687					; .TTXON -- DEVICE DEPENDENT XON PROCESSING
  12688					;
  12689					; THIS SUBROUTINE WILL PROCESS AN XON AND START OUTPUT ON A SPECIFIED
  12690					; TERMINAL LINE.
  12691					;
  12692					; INPUTS:
  12693					;
  12694					;	R5 -- POINTER TO DATA LINE SCANNER TABLE ENTRY FOR LINE TO BE STARTED.
  12695					;
  12696					; OUTPUTS:
  12697					;
  12698					;	THE LINE IS STARTED.
  12699					;
  12700					; CALLED FROM QUEUED PROTOCOL TASK AND TERMINAL INPUT SERVICE
  12701					;-
  12702
  12703						.ENABL	LSB
  12704
  12705	041676				.TTXON::			;;; [5.1248] REMOVE SAVE OF R0
  12706	041676	105765 	000006 			TSTB	STSW1+0(R5)	;;; [4.2181] IS THE LINE X'D OFF??
  12707	041702	100053 				BPL	30$		;;; [4.2181] NO -- JUST EXIT
  12708	041704	032765 	001001 	000006 		BIT	#TT.SIP!TT.OUT,STSW1(R5) ;;; [4.2181] YES -- SENDALL IN PROGRESS??
  12709									;;; [4.2181] OR ALREADY BUSY??
  12710	041712	001044 				BNE	20$		;;; [4.2181] YES -- RESET LINE STATE AND EXIT
  12711	041714	032765 	000002 	000006 		BIT	#TT.CTY,STSW1(R5) ;;; [4.2181] NO -- IS THIS THE CTY??
  12712	041722	001414 				BEQ	.DHXON		;;; [4.2181] NO -- GO ON
  12713	041724	005737 	002632'			TST	.TTP11		;;; [4.2181] YES -- IN PDP-11 I/O WAIT??
  12714	041730	001035 				BNE	20$		;;; [4.2181] YES -- RESET XOFF AND EXIT
  12715	041732	105737 	001226'			TSTB	.KLNSW+0	;;; [4.2181] NO -- IS KLINIK ACTIVE??
  12716	041736	003406 				BLE	.DHXON		;;; [4.2181] NO -- NOT THAT WE CARE - GO ON
  12717	041740	010546 				MOV	R5,-(SP)	;;; [4.2181] YES -- SAVE CTY POINTER
  12718	041742	013705 	002636'			MOV	KLNPTR,R5	;;; [4.2181] SUBSTITUTE KLINIK LINE POINTER
  12719	041746					CALL	.DHXON		;;; [4.2181] START THE KLINIK LINE
	041746	004737 	041754'			JSR	PC,.DHXON
  12720	041752	012605 				MOV	(SP)+,R5	;;; [4.2181] RESTORE CTY POINTER
  12721					;
  12722					; HERE TO START A DH-11 LINE
  12723					;
  12724	041754				.DHXON::
  12725	041754	011500 				MOV	(R5),R0		;;; [5.1015] COPY THREAD POINTER TO R0
  12726	041756	001422 				BEQ	20$		;;; [4.2181] RESET STATUS AND EXIT IF EMPTY
  12727	041760	105760 	000006 			TSTB	T.HCBC(R0)	;;; [5.1015] TEST BYTE COUNT FROM THREAD NODE
  12728	041764	001006 				BNE	10$		;;; [4.2181] PROCEED IF PACKET NOT EMPTY
  12729	041766	005360 	000004 			DEC	T.HCAD(R0)	;;; [5.1015] EMPTY -- BACK UP ONE BYTE
  12730	041772	105070 	000004 			CLRB	@T.HCAD(R0)	;;; [5.1015] AND RENDER IT NULL
  12731	041776	105260 	000006 			INCB	T.HCBC(R0)	;;; [5.1015] AND ACCOUNT FOR IT
  12732	042002				10$:
  12733	042002					CALL	.STDHL		;;; [4.2181] SET UP FOR THIS LINE NUMBER
	042002	004737 	037416'			JSR	PC,.STDHL
  12734	042006	100404 				BMI	.DLXON		;;; [5.1015] GO ON IF DL-11
  12735	042010	001410 				BEQ	30$		;;; [5.1015] EXIT IF NON-EXISTENT
  12736	042012					CALL	.DHSTO		;;; [5.1015] START UP THE DH-11
	042012	004737 	034164'			JSR	PC,.DHSTO
  12737	042016	000402 				BR	20$		;;; [4.2181] AND EXIT
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 236-1
TERMINAL DRIVER -- .TTXON (DEVICE DEPENDENT XON PROCESSING)

  12738						;
  12739					;
  12740					; HERE TO START A DL-11 LINE
  12741					;
  12742	042020				.DLXON::
  12743	042020					CALL	.DLSTO		;;; [5.1015] START UP THE DL-11
	042020	004737 	034340'			JSR	PC,.DLSTO
  12744	042024				20$:
  12745	042024	042765 	000200 	000006 		BIC	#TT.XOF,STSW1(R5) ;;; [4.2181] MARK LINE AS X'D ON
  12746	042032				30$:
  12747	042032					RETURN			;;; [4.2181] TO CALLER
	042032	000207 				RTS	PC
  12748
  12749						.DSABL	LSB
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 237
TERMINAL DRIVER -- .TTRST (RESET A TERMINAL LINE)

  12751						.SBTTL	TERMINAL DRIVER -- .TTRST (RESET A TERMINAL LINE)
  12752
  12753					;+
  12754					; .TTRST -- RESET A TERMINAL LINE
  12755					;
  12756					; THIS SUBROUTINE WILL RESET A LINE'S STATUS AND CLEAR IT'S OUTPUT QUEUE
  12757					;
  12758					; INPUTS:
  12759					;
  12760					;	R5 -- POINTS TO DLS TABLE ENTRY FOR THIS LINE
  12761					;
  12762					; OUTPUTS:
  12763					;
  12764					;	NO REGISTERS ARE ALTERED
  12765					;	LINE STATUS IS RESET
  12766					;	LINES OUTPUT QUEUE IS EMPTY
  12767					;
  12768					; NOTE:
  12769					;	THIS SUBROUTINE MUST BE CALLED AT BR5 OR HIGHER
  12770					;-
  12771
  12772	042034				.TTRST::
  12773	042034	010246 				MOV	R2,-(SP)	;;; [4.2205] SAVE R2
  12774	042036	005737 	001030'			TST	.PFIOW		;;; [4.2205] POWER FAIL RESTART??
  12775	042042	001420 				BEQ	10$		;;; [4.2205] NO -- GO ON
  12776	042044	042765 	161411 	000006 		BIC	#TT.SND!TT.RSI!TT.NSA!TT.ABW!TT.SIP!TT.OUT,STSW1(R5)
  12777									;;; [4.2205] YES -- SET POWER UP STATUS
  12778	042052	042765 	140000 	000004 		BIC	#S0.MSK,STSW0(R5) ;;; [4.2309] RESET CONNECT BIT
  12779	042060					CALL	.TTSW2		;;; [5.1015] FIND OUR "STSW2" ENTRY
	042060	004737 	042754'			JSR	PC,.TTSW2
  12780	042064	105012 				CLRB	(R2)		;;; [5.1016] REMOVE DEFERRED CHARACTER
  12781	042066	032712 	170000 			BIT	#S2.DDN!S2.DIP!S2.ENB!S2.DIS,(R2)
  12782									;;; [5.1015] WAS THE LINE BEING TURNED ON OR OFF??
  12783	042072	001404 				BEQ	10$		;;; [5.1015] NO -- LEAVE IT ALONE
  12784	042074	012712 	100000 			MOV	#S2.DDN,(R2)	;;; [5.1015] YES -- SAY IT WAS FINISHED
  12785	042100					CALL	.TTENB		;;; [5.1015] AND TURN IT ON
	042100	004737 	042464'			JSR	PC,.TTENB
  12786	042104				10$:
  12787	042104	010502 				MOV	R5,R2		;;; [5.1015] COPY DLS POINTER TO R2
  12788	042106					CALL	..STPT		;;; [4.2205] STOP THE LINE AND FLUSH OUTPUT
	042106	004737 	045142'			JSR	PC,..STPT
  12789	042112	042765 	014220 	000006 		BIC	#TT.XOF!TT.XEN!TT.FEC,STSW1(R5)
  12790									;;; [4.2205] RESET THE LINE STATUS
  12791	042120	012602 				MOV	(SP)+,R2	;;; [5.1015] RESTORE R2
  12792	042122					RETURN			;;; [4.2205] TO CALLER
	042122	000207 				RTS	PC
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 238
TERMINAL DRIVER -- CHECK INPUT XOFF DELAY

  12794						.SBTTL	TERMINAL DRIVER -- CHECK INPUT XOFF DELAY
  12795
  12796					;+
  12797					; .TTCHK -- CHECK INPUT XOFF DELAY
  12798					;
  12799					; THIS SUBROUTINE WILL COUNT EITHER TWO CLOCK TICKS OR TWO CHARACTERS FOR A
  12800					; LINE WHICH IS BEING INPUT DISABLED.  THE LINE SPEED IS THEN SET TO ZERO
  12801					; WHEN THE COUNT OVERFLOWS
  12802					;
  12803					; INPUTS:
  12804					;
  12805					;	R2 -- POINTS TO "STSW2" ENTRY FOR LINE
  12806					;	R5 -- POINTS TO DLS TABLE ENTRY FOR LINE
  12807					;
  12808					; OUTPUTS:
  12809					;
  12810					;	DELAY COUNT AND STATUS IS IN "STSW2(R2)"
  12811					;-
  12812
  12813	042124				.TTCHK::
  12814	042124	105262 	000001 			INCB	1(R2)		;;; [5.1015] YES -- COUNT THIS TICK
  12815	042130	032712 	001000 			BIT	#S2.SSZ,(R2)	;;; [5.1015] TIME TO SHUT HIM OFF??
  12816	042134	001404 				BEQ	10$		;;; [5.1015] NO -- NOT YET
  12817	042136					CALL	.TTDIS		;;; [5.1015] YES -- DO IT
	042136	004737 	042312'			JSR	PC,.TTDIS
  12818	042142	005337 	005046'			DEC	.TTS2F		;;; [5.1015] COUNT THIS LINE
  12819	042146				10$:
  12820	042146					RETURN			;;; [5.1015] TO CALLER
	042146	000207 				RTS	PC
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 239
TERMINAL DRIVER -- .TTICK (INPUT BUFFER CHECKS)

  12822						.SBTTL	TERMINAL DRIVER -- .TTICK (INPUT BUFFER CHECKS)
  12823
  12824					;+
  12825					; .TTICK -- TERMINAL INPUT BUFFER CHECKS
  12826					;
  12827					; THIS SUBROUTINE WILL CHECK THE STATE OF THE BUFFER SPACE AND INITIATE AN
  12828					; INPUT DISABLE SEQUENCE IF THE INPUT BUFFER LOW HAS BEEN CROSSED.
  12829					;
  12830					; INPUTS:
  12831					;
  12832					;	R2 -- POINTS TO "STSW2" ENTRY FOR CURRENT LINE
  12833					;	R5 -- POINTS TO DLS TABLE ENTRY FOR CURRENT LINE
  12834					;
  12835					; OUTPUTS:
  12836					;
  12837					;	NONE
  12838					;
  12839					; NOTE:
  12840					;
  12841					;	THE CTY IS NEVER INPUT-DISABLED BY THIS ROUTINE
  12842					;-
  12843
  12844						.ENABL	LSB
  12845
  12846	042150				.TTICK::
  12847	042150	032765 	000002 	000006 		BIT	#TT.CTY,STSW1(R5) ;;; [4.1.1092] IS THIS A CTY??
  12848	042156	001035 				BNE	20$		;;; [4.1.1092] YES -- LEAVE IT ALONE
  12849	042160	023737 	005054'	001422'		CMP	.IBFLO,.FREPL+2 ;;; [4.1.1092] NO -- IS THE FREE-POOL OK??
  12850	042166	103431 				BLO	20$		;;; [4.1.1092] YES -- JUST EXIT
  12851	042170	032712 	140000 			BIT	#S2.DDN!S2.DIP,(R2) ;;; [4.1.1092] NO -- IN PROGRESS OR DONE??
  12852	042174	001026 				BNE	20$		;;; [4.1.1092] YES -- LEAVE IT ALONE
  12853	042176	052712 	004000 			BIS	#S2.LCL,(R2)	;;; [4.1.1092] NO -- SAY THAT WE OWN THE LINE
  12854	042202	000443 				BR	.TTDIS		;;; [4.1.1092] AND DISABLE IT
  12855						;
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 240
TERMINAL DRIVER -- .TTQDS (QUEUED PROTOCOL INPUT DISABLE SERVI

  12857						.SBTTL	TERMINAL DRIVER -- .TTQDS (QUEUED PROTOCOL INPUT DISABLE SERVICE)
  12858
  12859					;+
  12860					; .TTQDS -- QUEUED PROTOCOL LINE DISABLE SERVICE
  12861					; .TTQEN -- QUEUED PROTOCOL LINE ENABLE SERVICE
  12862					;
  12863					; THESE SUBROUTINES ARBITRATE THE OWNERSHIP OF A LINE FOR WHICH THE HOST HAS
  12864					; REQUESTED EITHER AN INPUT DISABLE OR ENABLE VIA THE QUEUED PROTOCOL.  THE
  12865					; "RULE OF THUMB" IS THAT IF THE FREE-POOL IS BELOW INPUT THRESHOLDS, THE
  12866					; FRONT-END GAINS "OWNERSHIP" OF THAT LINE FOR WHICH THE REQUEST IS ISSUED.
  12867					;
  12868					; UNDER THESE CIRCUMSTANCES, THE LINE WILL EVENTUALLY BECOME INPUT RE-ENABLED
  12869					; BY THE CLOCK SERVICE, BUT ONLY IF THE FREE-POOL IS ABOVE MINIMUMS.
  12870					;
  12871					; INPUTS:
  12872					;
  12873					;	R2 -- POINTS TO "STSW2" ENTRY FOR THE LINE
  12874					;	R5 -- POINTS TO DLS TABLE ENTRY FOR THE LINE
  12875					;
  12876					; OUTPUTS:
  12877					;
  12878					;	NO REGISTERS ALTERED
  12879					;-
  12880
  12881	042204				.TTQDS::
  12882	042204	032712 	004000 			BIT	#S2.LCL,(R2)	;;; [4.1.1092] DO WE OWN THE LINE??
  12883	042210	001020 				BNE	20$		;;; [4.1.1092] YES -- KEEP IT
  12884	042212	000437 				BR	.TTDIS		;;; [4.1.1092] NO -- STOP IT
  12885						;
  12886	042214				.TTQEN::
  12887	042214	032712 	004000 			BIT	#S2.LCL,(R2)	;;; [4.1.1092] DO WE OWN THE LINE??
  12888	042220	001014 				BNE	20$		;;; [4.1.1092] YES -- KEEP IT
  12889	042222	023737 	005056'	001422'		CMP	.IBFOK,.FREPL+2	;;; [4.1.1092] NO -- IS THE FREE-POOL OK??
  12890	042230	103515 				BLO	.TTENB		;;; [4.1.1092] YES -- ENABLE THE LINE AND EXIT
  12891	042232	032712 	140000 			BIT	#S2.DDN!S2.DIP,(R2) ;;; [4.1.1092] NO -- IS IT (BEING) STOPPED??
  12892	042236	001405 				BEQ	20$		;;; [4.1.1092] NO -- LEAVE IT ALONE
  12893	042240	100002 				BPL	10$		;;; [4.1.1092] IN PROGRESS -- GO ON
  12894	042242	005237 	005050'			INC	.S2IDC		;;; [4.1.1092] DONE -- ACCOUNT FOR THE LINE
  12895	042246				10$:
  12896	042246	052712 	004000 			BIS	#S2.LCL,(R2)	;;; [4.1.1092] MARK THAT WE OWN THE LINE
  12897	042252				20$:
  12898	042252					RETURN			;;; [4.1.1092] AND EXIT
	042252	000207 				RTS	PC
  12899
  12900						.DSABL	LSB
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 241
TERMINAL DRIVER -- .TTIXC (INPUT CONTROL CHECKS)

  12902						.SBTTL	TERMINAL DRIVER -- .TTIXC (INPUT CONTROL CHECKS)
  12903
  12904					;+
  12905					; .TTIXC -- TERMINAL INPUT CONTROL CHECKS
  12906					;
  12907					; THIS SUBROUTINE WILL CHECK AND INITIATE A DEFERRED INPUT XON OR XOFF
  12908					;
  12909					; INPUTS:
  12910					;
  12911					;	R5 -- POINTS TO DLS ENTRY FOR THE LINE TO BE CHECKED
  12912					;
  12913					; OUTPUTS:
  12914					;
  12915					;	R2 -- POINTS TO STSW2 ENTRY FOR THE LINE
  12916					;	OUTPUT IS ACTIVE IF AN XOFF OR XON HAS BEEN STARTED ON THE LINE
  12917					;-
  12918
  12919	042254				.TTIXC::
  12920	042254					CALL	.TTSW2		;;; [5.1015] FIND OUR "STSW2" ENTRY
	042254	004737 	042754'			JSR	PC,.TTSW2
  12921	042260	032712 	010000 			BIT	#S2.ENB,(R2)	;;; [5.1015] INPUT XON PENDING??
  12922	042264	001077 				BNE	.TTENB		;;; [5.1015] YES -- DO IT
  12923	042266				10$:
  12924	042266	032712 	020000 			BIT	#S2.DIS,(R2)	;;; [5.1015] INPUT XOFF PENDING??
  12925	042272	001007 				BNE	.TTDIS		;;; [5.1015] YES -- DO IT
  12926	042274				20$:
  12927	042274	010446 				MOV	R4,-(SP)	;;; [5.1016] SAVE R4
  12928	042276	111204 				MOVB	(R2),R4		;;; [5.1016] BREAK-THROUGH WRITE PENDING??
  12929	042300	001402 				BEQ	30$		;;; [5.1016] NO -- GO ON
  12930	042302					CALL	.TTBTW		;;; [5.1016] YES -- DO IT
	042302	004737 	042604'			JSR	PC,.TTBTW
  12931	042306				30$:
  12932	042306	012604 				MOV	(SP)+,R4	;;; [5.1016] RESTORE R4
  12933	042310					RETURN			;;; [5.1016] TO CALLER
	042310	000207 				RTS	PC
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 242
TERMINAL DRIVER -- .TTDIS (DISABLE INPUT FROM LINE)

  12935						.SBTTL	TERMINAL DRIVER -- .TTDIS (DISABLE INPUT FROM LINE)
  12936
  12937					;+
  12938					; .TTDIS -- DISABLE INPUT FROM LINE
  12939					;
  12940					; THIS SUBROUTINE WILL INITIATE THE DISABLING OF THE INPUT FOR A LINE
  12941					; BY TRANSMITTING AN XOFF TO THE LINE AND MARKING THE DISABLE IN PROGRESS
  12942					;
  12943					; INPUTS:
  12944					;
  12945					;	R2 -- POINTS TO THE "STSW2" ENTRY FOR THIS LINE
  12946					;	R5 -- POINTS TO DATA LINE SCANNER ENTRY FOR LINE TO BE DISABLED
  12947					;
  12948					; OUTPUTS:
  12949					;
  12950					;	NO REGISTERS ALTERED
  12951					;
  12952					; NOTES:
  12953					;
  12954					;	THIS ROUTINE MUST BE ENTERED AT PRI5 OR HIGHER
  12955					;	THIS ROUTINE ASSUMES THAT THE DEVICE EXISTS
  12956					;-
  12957
  12958						.ENABL	LSB
  12959
  12960	042312				.TTDIS::
  12961	042312	010046 				MOV	R0,-(SP)	;;; [5.1015] SAVE REGISTERS
  12962	042314	010246 				MOV	R2,-(SP)
  12963	042316	010446 				MOV	R4,-(SP)
  12964	042320	032712 	140000 			BIT	#S2.DIP!S2.DDN,(R2) ;;; [5.1015] ALREADY DONE OR IN PROGRESS??
  12965	042324	100562 				BMI	75$		;;; [5.1015] ALREADY STOPPED -- GO ON
  12966	042326	001022 				BNE	20$		;;; [5.1015] FIRST PART DONE -- FINISH
  12967					;
  12968					; HERE TO INITIATE THE LINE STOP
  12969					;
  12970	042330	032765 	000001 	000006 		BIT	#TT.OUT,STSW1(R5) ;;; [5.1015] IS OUTPUT ACTIVE??
  12971	042336	001405 				BEQ	10$		;;; [5.1015] NO -- GO ON
  12972					;
  12973					; HERE TO DEFER THE XOFF TRANSMISSION
  12974					;
  12975	042340	052712 	020000 			BIS	#S2.DIS,(R2)	;;; [5.1015] YES -- DEFER THE REQUEST
  12976	042344	042712 	010000 			BIC	#S2.ENB,(R2)	;;; [5.1015] REMOVE "OTHER" REQUEST
  12977	042350	000546 				BR	70$		;;; [5.1015] STOP THE LINE AND EXIT
  12978						;
  12979					;
  12980					; HERE TO TRANSMIT THE XOFF
  12981					;
  12982	042352				10$:
  12983	042352					CALL	.TFXOF		;;; [5.1016] FORCE THE XOFF TO THE LINE
	042352	004737 	043004'			JSR	PC,.TFXOF
  12984	042356	042712 	020000 			BIC	#S2.DIS,(R2)	;;; [5.1015] REMOVE DEFERRED REQUEST
  12985	042362				15$:
  12986	042362	052712 	040000 			BIS	#S2.DIP,(R2)	;;; [5.1015] MARK THE REQUEST IN PROGRESS
  12987	042366	005237 	005046'			INC	.TTS2F		;;; [5.1015] FLAG THE CLOCK SERVICE
  12988	042372	000537 				BR	75$		;;; [5.1015] AND EXIT
  12989						;
  12990					;
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 242-1
TERMINAL DRIVER -- .TTDIS (DISABLE INPUT FROM LINE)

  12991					; HERE TO REFUSE INPUT FROM THE LINE
  12992					;
  12993	042374				20$:
  12994	042374	032712 	001000 			BIT	#S2.SSZ,(R2)	;;; [5.1015] READY FOR SECOND PART??
  12995	042400	001534 				BEQ	75$		;;; [5.1015] NO -- WAIT
  12996	042402					CALL	.STDHL		;;; [5.1015] SET UP THE LINE NUMBER
	042402	004737 	037416'			JSR	PC,.STDHL
  12997	042406	100407 				BMI	25$		;;; [5.1015] BRANCH IF LINE IS A DL-11
  12998	042410	032712 	004000 			BIT	#S2.LCL,(R2)	;;; [RCO 32681] OUR LINE ??
  12999	042414	001011 				BNE	30$		;;; [RCO 32681] YES, DON'T SET LINE SPEED TO ZERO
  13000	042416	042764 	001700 	000004 		BIC	#S0.ISP,4(R4)	;;; [5.1015] SET INPUT SPEED TO ZERO
  13001	042424	000405 				BR	30$		;;; [5.1015] AND EXIT
  13002						;
  13003	042426				25$:
  13004	042426	112765 	177777 	000004 		MOVB	#-1,STSW0(R5)	;;; [5.1015] DISABLE DL-11 INPUT
  13005	042434	042714 	000100 			BIC	#DL.REN,(R4)	;;; [5.1015] SO
  13006	042440				30$:
  13007	042440	042712 	041400 			BIC	#S2.DIP!S2.CNT,(R2) ;;; [5.1015] NO LONGER IN PROGRESS
  13008	042444	052712 	100000 			BIS	#S2.DDN,(R2)	;;; [5.1015] BUT FINISHED
  13009	042450	032712 	004000 			BIT	#S2.LCL,(R2)	;;; [4.1.1092] DO WE OWN THIS LINE??
  13010	042454	001506 				BEQ	75$		;;; [4.1.1092] NO -- GO ON
  13011	042456	005237 	005050'			INC	.S2IDC		;;; [4.1.1092] YES -- ACCOUNT FOR IT
  13012	042462	000503 				BR	75$		;;; [5.1015] EXIT
  13013						;
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 243
TERMINAL DRIVER -- .TTENB (ENABLE INPUT FOR LINE)

  13015						.SBTTL	TERMINAL DRIVER -- .TTENB (ENABLE INPUT FOR LINE)
  13016
  13017					;+
  13018					; .TTENB -- ENABLE INPUT FOR LINE
  13019					;
  13020					; THIS ROUTINE WILL ENABLE INPUT FOR A LINE BY RESETTING ITS INPUT SPEED AND
  13021					; TRANSMITTING AN XON TO THE LINE.
  13022					;
  13023					; INPUTS:
  13024					;
  13025					;	R2 -- POINTS TO "STSW2" ENTRY FOR THIS LINE
  13026					;	R5 -- POINTS TO DLS TABLE ENTRY FOR THIS LINE
  13027					;
  13028					; OUTPUTS:
  13029					;
  13030					;	NO REGISTERS ALTERED
  13031					;
  13032					; NOTES:
  13033					;
  13034					;	THIS ROUTINE MUST BE ENTERED AT PRI5 OR HIGHER
  13035					;	THIS ROUTINE ASSUMES THAT THE DEVICE EXISTS
  13036					;-
  13037
  13038	042464				.TTENB::
  13039	042464	010046 				MOV	R0,-(SP)	;;; [5.1015] SAVE REGISTERS
  13040	042466	010246 				MOV	R2,-(SP)
  13041	042470	010446 				MOV	R4,-(SP)
  13042	042472	032712 	140000 			BIT	#S2.DDN!S2.DIP,(R2) ;;; [5.1015] INTERROGATE LINE STATE
  13043	042476	100406 				BMI	35$		;;; [5.1015] LINE IS DISABLED
  13044	042500	001474 				BEQ	75$		;;; [5.1015] ALREADY ENABLED -- EXIT
  13045	042502	042712 	040000 			BIC	#S2.DIP,(R2)	;;; [5.1015] REMOVE REQUEST IN PROGRESS
  13046	042506	005337 	005046'			DEC	.TTS2F		;;; [5.1015] REMOVE CLOCK COUNT
  13047	042512	000416 				BR	45$		;;; [5.1015] TRY TO ENABLE THE LINE NOW
  13048						;
  13049					;
  13050					; HERE TO INITIATE THE LINE START
  13051					;
  13052	042514				35$:
  13053	042514					CALL	.STDHL		;;; [5.1015] SET UP THE LINE NUMBER
	042514	004737 	037416'			JSR	PC,.STDHL
  13054	042520	100407 				BMI	40$		;;; [5.1015] BRANCH IF THIS IS A DL-11
  13055	042522	016546 	000004 			MOV	STSW0(R5),-(SP)	;;; [5.1015] GET THE SPEED WORD
  13056	042526	042716 	140000 			BIC	#S0.MSK,(SP)	;;; [5.1015] GET RID OF STATUS
  13057	042532	012664 	000004 			MOV	(SP)+,4(R4)	;;; [5.1015] SET THE SPEED
  13058	042536	000404 				BR	45$		;;; [5.1015] AND EXIT
  13059						;
  13060	042540				40$:
  13061	042540	105065 	000004 			CLRB	STSW0(R5)	;;; [5.1015] ALLOW DL-11 INPUT
  13062	042544	052714 	000100 			BIS	#DL.REN,(R4)	;;; [5.1015] SO
  13063					;
  13064					; HERE TO TRANSMIT THE XON
  13065					;
  13066	042550				45$:
  13067	042550	032765 	000001 	000006 		BIT	#TT.OUT,STSW1(R5) ;;; [5.1015] OUTPUT ACTIVE??
  13068	042556	001005 				BNE	50$		;;; [5.1015] YES -- DEFER THE REQUEST ONCE MORE
  13069	042560					CALL	.TFXON		;;; [5.1016] NO -- FORCE THE XON
	042560	004737 	042774'			JSR	PC,.TFXON
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 243-1
TERMINAL DRIVER -- .TTENB (ENABLE INPUT FOR LINE)

  13070	042564	042712 	115400 			BIC	#S2.ENB!S2.DDN!S2.LCL!S2.CNT,(R2) ;;; [5.1015] CLEAR THE REQUEST
  13071	042570	000440 				BR	75$		;;; [5.1015] AND EXIT
  13072						;
  13073					;
  13074					; HERE TO DEFER THE LINE START
  13075					;
  13076	042572				50$:
  13077	042572	052712 	010000 			BIS	#S2.ENB,(R2)	;;; [5.1015] SET DEFERRED REQUEST
  13078	042576	042712 	020000 			BIC	#S2.DIS,(R2)	;;; [5.1015] REMOVE "OTHER" REQUEST
  13079	042602	000431 				BR	70$		;;; [5.1015] STOP THE LINE AND EXIT
  13080						;
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 244
TERMINAL DRIVER -- .TTBTW (BREAK-THROUGH WRITE FUNCTION)

  13082						.SBTTL	TERMINAL DRIVER -- .TTBTW (BREAK-THROUGH WRITE FUNCTION)
  13083
  13084					;+
  13085					; .TTBTW -- BREAK-THROUGH WRITE FUNCTION
  13086					;
  13087					; THIS SUBROUTINE WILL FORCE A SINGLE CHARACTER TO A LINE AT THE HEAD OF ITS
  13088					; OUTPUT LIST AND OVER AN OUTPUT XOFF.
  13089					;
  13090					; INPUTS:
  13091					;
  13092					;	R4 -- CHARACTER TO BE SENT
  13093					;	R5 -- POINTS TO DLS ENTRY FOR THIS LINE
  13094					;
  13095					; OUTPUTS:
  13096					;
  13097					;	NO REGISTERS ALTERED
  13098					;
  13099					; NOTES:
  13100					;
  13101					;	THIS ROUTINE MUST BE ENTERED AT PRI5 OR HIGHER
  13102					;	THIS ROUTINE ASSUMES THAT THE DEVICE EXISTS
  13103					;-
  13104
  13105	042604				.TTBTW::
  13106	042604	010046 				MOV	R0,-(SP)	;;; [5.1015] SAVE R0
  13107	042606	010246 				MOV	R2,-(SP)	;;; [5.1015] AND R2
  13108	042610	010446 				MOV	R4,-(SP)
  13109	042612					CALL	.TTSW2		;;; [5.1016] FIND OUR "STSW2" ENTRY
	042612	004737 	042754'			JSR	PC,.TTSW2
  13110	042616	032765 	000001 	000006 		BIT	#TT.OUT,STSW1(R5) ;;; [5.1016] OUTPUT ACTIVE??
  13111	042624	001017 				BNE	65$		;;; [5.1016] YES -- DEFER THE REQUEST
  13112	042626					CALL	BLDPKT		;;; [5.1016] NO -- ALLOCATE AND BUILD THE PACKET
	042626	004737 	042702'			JSR	PC,BLDPKT
  13113	042632	105012 				CLRB	(R2)		;;; [5.1016] RENDER DEFERRED CHARACTER NULL
  13114	042634	011502 				MOV	(R5),R2		;;; [5.1015] GET POINTER TO FIRST NODE IN LIST
  13115	042636	010015 				MOV	R0,(R5)		;;; [5.1015] SET NEW PACKET AS NEW FIRST NODE
  13116	042640	010210 				MOV	R2,(R0)		;;; [5.1015] LINK REST OF QUEUE
  13117	042642					CALL	.STDHL		;;; [5.1015] SET THE LINE NUMBER
	042642	004737 	037416'			JSR	PC,.STDHL
  13118	042646	100403 				BMI	55$		;;; [5.1015] BRANCH IF THIS IS A DL-11
  13119	042650					CALL	.DHSTO		;;; [5.1015] START THE MESSAGE UP
	042650	004737 	034164'			JSR	PC,.DHSTO
  13120	042654	000406 				BR	75$		;;; [5.1015] AND EXIT
  13121						;
  13122	042656				55$:
  13123	042656					CALL	.DLSTO		;;; [5.1015] START UP THE DL-11
	042656	004737 	034340'			JSR	PC,.DLSTO
  13124	042662	000403 				BR	75$		;;; [5.1016] AND EXIT
  13125						;
  13126	042664				65$:
  13127	042664	110412 				MOVB	R4,(R2)		;;; [5.1016] SET DEFERRED REQUEST
  13128	042666				70$:
  13129	042666					CALL	.TTSTP		;;; [5.1016] FORCE THE LINE STOP
	042666	004737 	041650'			JSR	PC,.TTSTP
  13130	042672				75$:
  13131	042672	012604 				MOV	(SP)+,R4
  13132	042674	012602 				MOV	(SP)+,R2	;;; [5.1015] RESTORE REGISTERS
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 244-1
TERMINAL DRIVER -- .TTBTW (BREAK-THROUGH WRITE FUNCTION)

  13133	042676	012600 				MOV	(SP)+,R0
  13134	042700					RETURN			;;; [5.1015] AND EXIT
	042700	000207 				RTS	PC
  13135
  13136						.DSABL	LSB
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 245
TERMINAL DRIVER -- BLDPKT (BUILD A TERMINAL PACKET)

  13138						.SBTTL	TERMINAL DRIVER -- BLDPKT (BUILD A TERMINAL PACKET)
  13139
  13140					;+
  13141					; BLDPKT -- BUILD A TERMINAL PACKET
  13142					;
  13143					; THIS SUBROUTINE WILL BUILD A TERMINAL OUTPUT LIST ENTRY FOR THE
  13144					; CHARACTER IN R4.
  13145					;
  13146					; INPUTS:
  13147					;
  13148					;	R4 -- CHARACTER TO BE TRANSMITTED
  13149					;
  13150					; OUTPUTS:
  13151					;
  13152					;	R0 -- POINTER TO NEW TERMINAL PACKET
  13153					;-
  13154
  13155	042702				BLDPKT:
  13156	042702	010146 				MOV	R1,-(SP)	;;; [5.1015] SAVE R1
  13157	042704	012701 	000012 			MOV	#12,R1		;;; [5.1016] SET THE NODE SIZE
  13158	042710					CALL	..ALCB		;;; [5.1015] GET A BUFFER
	042710	004737 	044416'			JSR	PC,..ALCB
  13159	042714	103414 				BCS	10$		;;; [5.1015] POOL EXHAUSTED IF CC-C SET
  13160	042716	010046 				MOV	R0,-(SP)	;;; [5.1015] SAVE BUFFER POINTER
  13161	042720	005020 				CLR	(R0)+		;;; [5.1016] GET OVER THE LINKAGE
  13162	042722	010120 				MOV	R1,(R0)+	;;; [5.1016] SET THE NODE SIZE
  13163	042724	011610 				MOV	(SP),(R0)	;;; [5.1016] SET THE DATA ADDRESS
  13164	042726	062720 	000010 			ADD	#10,(R0)+	;;; [5.1016] SO
  13165	042732	012720 	000001 			MOV	#1,(R0)+	;;; [5.1016] SET THE BYTE COUNT
  13166	042736	110410 				MOVB	R4,(R0)		;;; [5.1016] AND NOW THE DATA
  13167	042740	012600 				MOV	(SP)+,R0	;;; [5.1015] RESTORE BUFFER POINTER
  13168	042742	012601 				MOV	(SP)+,R1	;;; [5.1015] RESTORE R1
  13169	042744					RETURN			;;; [5.1015] TO CALLER
	042744	000207 				RTS	PC
  13170	042746				10$:
  13171	042746					.CRASH	BO5		;;; [5.1015] BUFFER OVERFLOW...
	042746	000004 				IOT
	042750	   102 	   117 	   065 		.ASCIZ	/BO5/
	042753	   000
  13172						;
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 246
TERMINAL DRIVER -- .TTSW2 (FIND OFFSET INTO "STSW2" TABLE)

  13174						.SBTTL	TERMINAL DRIVER -- .TTSW2 (FIND OFFSET INTO "STSW2" TABLE)
  13175
  13176					;+
  13177					; .TTSW2 -- FIND OFFSET INTO "STSW2" TABLE
  13178					;
  13179					; INPUTS:
  13180					;
  13181					;	R5 -- POINTS TO DLS ENTRY FOR THIS LINE
  13182					;
  13183					; OUTPUTS:
  13184					;
  13185					;	R2 -- POINTS TO "STSW2" ENTRY FOR THIS LINE
  13186					;-
  13187
  13188	042754				.TTSW2::
  13189	042754	010502 				MOV	R5,R2		;;; [5.1015] COPY DLS POINTER TO R2
  13190	042756	162702 	002776'			SUB	#TTTBL,R2	;;; [5.1015] FIND OFFSET INTO "STSW2" TABLE
  13191	042762	006202 				ASR	R2
  13192	042764	006202 				ASR	R2		;;; [5.1015] SO
  13193	042766	062702 	005060'			ADD	#STSW2,R2	;;; [5.1015] VOILA!
  13194	042772					RETURN			;;; [5.1015] TO CALLER
	042772	000207 				RTS	PC
TTYDRR	- GENERAL TERMINAL HAND	MACRO M1113  10-NOV-81 17:22  PAGE 247
TERMINAL DRIVER -- .TFXON (FORCE AN XON FOR A LINE)

  13196						.SBTTL	TERMINAL DRIVER -- .TFXON (FORCE AN XON FOR A LINE)
  13197
  13198					;+
  13199					; .TFXON -- FORCE AN XON FOR A LINE
  13200					; .TFXOF -- FORCE AN XOFF FOR A LINE
  13201					;
  13202					; THESE SUBROUTINES WILL FORCE THE INDICATED CHARACTER TO THE LINE IMMEDIATELY
  13203					;
  13204					; INPUTS:
  13205					;
  13206					;	R5 -- POINTS TO DLS ENTRY FOR THE LINE
  13207					;
  13208					; OUTPUTS:
  13209					;
  13210					;	NO REGISTERS ALTERED
  13211					;
  13212					; NOTES:
  13213					;
  13214					;	THIS ROUTINE MUST BE ENTERED AT PRI5 OR HIGHER
  13215					;	THIS ROUTINE ASSUMES THAT THE DEVICE EXISTS
  13216					;	THIS ROUTINE ASSUMES THAT THE DEVICE IS NOT OUTPUT ACTIVE
  13217					;-
  13218
  13219						.ENABL	LSB
  13220
  13221	042774				.TFXON::
  13222	042774	010446 				MOV	R4,-(SP)	;;; [5.1016] SAVE R4
  13223	042776	012704 	000021 			MOV	#C.HXON,R4	;;; [5.1016] SET THE XON CHARACTER
  13224	043002	000403 				BR	10$		;;; [5.1016] DO COMMON CODE
  13225						;
  13226	043004				.TFXOF::
  13227	043004	010446 				MOV	R4,-(SP)	;;; [5.1016] SAVE R4
  13228	043006	012704 	000023 			MOV	#C.HXOF,R4	;;; [5.1016] SET THE XOFF CHARACTER
  13229	043012				10$:
  13230	043012					CALL	.TTBTW		;;; [5.1016] FORCE IT OUT
	043012	004737 	042604'			JSR	PC,.TTBTW
  13231	043016	012604 				MOV	(SP)+,R4	;;; [5.1016] RESTORE R4
  13232	043020					RETURN			;;; [5.1016] TO CALLER
	043020	000207 				RTS	PC
  13233
  13234						.DSABL	LSB
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 249
TERMINAL DRIVER -- .TFXON (FORCE AN XON FOR A LINE)

  13237						.TITLE	SCOMM	- COMMON DATA AND SUBROUTINES
  13238						.SBTTL	SYSTEM COMMON SUBROUTINES -- COPYRIGHT STATEMENT
  13239	043022					IDENT$	14,32,RSX$$F
						.IDENT	/A14320/
  13240					;
  13241					;                             COPYRIGHT (C) 1975, 1978 BY
  13242					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
  13243					;
  13244					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
  13245					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
  13246					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
  13247					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
  13248					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
  13249					;
  13250					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
  13251					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
  13252					;       CORPORATION.
  13253					;
  13254					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
  13255					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
  13256					;
  13257					;		MODULE: "SCOMM"
  13258					;		VERSION: 14-32
  13259					;		AUTHOR: R. MCLEAN
  13260					;		DATE: 19 JUL 75
  13261					;
  13262					;
  13263					;	MODIFICATIONS:
  13264					;
  13265					;	THIS MODULE CONTAINS:
  13266					;
  13267					;	1 -- THIS MODULE CONTAINS SYSTEM COMMON MODULES AND TABLES
  13268					;
  13269					;	NO.	DATE		PROGRAMMER	PURPOSE
  13270					;	---	----		----------	-------
  13271					;	001	27-JUL-76	J. MASSE	CHANGE 'LBNL' FOR DX0 & DX1
  13272					;						FROM 496. TO 494.
  13273					;	002	8-AUG-76	J. MASSE	CHANGE VERSION NO. TO 004A
  13274					;	003	9-AUG-76	J. MASSE	ADD KLINIK HOOKS
  13275					;	004	20-OCT-76	A. PECKHAM	ADD DORBELL COUNTER
  13276					;	005	20-OCT-76	A. PECKHAM	CHANGE VERSION NO. TO 006A
  13277					;	006	03-FEB-77	R. BELANGER	ADD GENERALIZED DL11E
  13278					;						SERVICE AND NEW KLINIK
  13279					;						HOOKS AND HANDLES
  13280					;	007	07-MAR-77	A. PECKHAM	FIXED BUG  IN ..STTY
  13281					;	008	14-MAR-77	R. BELANGER	CONDITIONALLY REMOVE
  13282					;						SUPPORT FOR DTE20 DIRECTIVES
  13283					;						ADD CODE FOR DYNAMIC ALLOCATION
  13284					;						OF .BGBUF AND .FREPL
  13285					;	009	15-JUL-77	R. BELANGER	ADD AUTO BAUD SUPPORT
  13286					;	010	02-SEP-77	R. BELANGER	XON/XOFF BUG FIX
  13287					; TCO 4.2047	18-OCT-78	R. BELANGER	FIX ..STTY TO NOT QUEUE
  13288					;   						OUTPUT FOR NON-EX LINES
  13289					; TCO 4.2096	30-NOV-78	R. BELANGER	FIX "..STPT" TO INSURE DEQUEUE
  13290					;						OF TRUNCATED PACKET AT OUTPUT DONE
  13291					; TCO 4.2107	06-DEC-78	R. BELANGER	ADD ".KACFL" FLAG FOR NEW
  13292					;						KEEP-ALIVE ERROR PROCESSING
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 249-1
SYSTEM COMMON SUBROUTINES -- COPYRIGHT STATEMENT

  13293					; TCO 4.2208	08-MAR-79	R. BELANGER	FIX BUG IN "..STIN" TO DISALLOW
  13294					;						ACCESS TO KL MEMORY DURING
  13295					;						PROTOCOL PAUSE.
  13296					; TCO 4.2212	08-MAR-79	R. BELANGER	MOVE DATABASE TO FE STATUS BLOCK
  13297					; TCO 4.2216	16-MAR-79	R. BELANGER	ALLOW DTE-20 TO RUN AT FULL SPEED
  13298					; TCO 4.2217	19-MAR-79	R. BELANGER	RETRY ALL EBUS PARITY ERRORS AND
  13299					;						SNAPSHOT ALL FAILURES
  13300					; TCO 4.2265	23-MAY-79	R. BELANGER	FIX KLINIK BUG
  13301					; TCO 5.1008	11-OCT-79	R. BELANGER	ADD EBUS PARITY ERROR AND DEX
  13302					;						ERROR LOGGING
  13303					; TCO 5.1015	23-OCT-79	R. BELANGER	ADD NEW TERMINAL INPUT CONTROL
  13304					; TCO 4.1.1013	12-NOV-79	R. BELANGER	FIX CORE ALLOCATOR BUG FOR
  13305					;						NEGATIVE BYTE COUNT
  13306					; TCO 4.1.1035	16-NOV-79	R. BELANGER	ADD QUEUE ARBITRATION MECHANISM
  13307					; TCO 4.1.1065	07-JAN-80	R. BELANGER	DON'T RETRY DEX ERRORS
  13308					; TCO 4.1.1104	05-MAR-80	R. BELANGER	FIX BUG IN CORE ALLOCATOR
  13309					; TCO 4.1.1105	11-MAR-80	R. BELANGER	CHANGE "EF.PR1" RECOGNITION
  13310					; TCO 4.1.1137	05-APR-80	R. BELANGER	LIMIT TO-10 QUEUE NODE TO 60 BYTES
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 250
SYSTEM COMMON SUBROUTINES -- COPYRIGHT STATEMENT

  13312					; MACRO LIBRARY CALLS
  13313					;
  13314						.MCALL	.CRASH,DIR$,DMYG$
  13315						.MCALL	MTPI,MFPI,MTPS,MFPS,CALL,RETURN,.INH5,.ENB5
  13316						.MCALL	$DEF,F11DF$
  13317						.MCALL	.INH0,.ENB0,WSIG$S
  13318						.MCALL	.ENB,.INH,.ENB6,.INH6
  13319	043022					$DEF
  13320	043022					F11DF$
  13321
  13322					;	MSETRP == 1
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 251
SCOMM MODULE -- BITTBL (ASH/BIC/BIS SIMULATION)

  13324						.SBTTL	SCOMM MODULE -- BITTBL (ASH/BIC/BIS SIMULATION)
  13325
  13326	043022				BITTBL::
  13327	043022	000001 				.WORD	1
  13328	043024	000002 				.WORD	2
  13329	043026	000004 				.WORD	4
  13330	043030	000010 				.WORD	10
  13331	043032	000020 				.WORD	20
  13332	043034	000040 				.WORD	40
  13333	043036	000100 				.WORD	100
  13334	043040	000200 				.WORD	200
  13335	043042	000400 				.WORD	400
  13336	043044	001000 				.WORD	1000
  13337	043046	002000 				.WORD	2000
  13338	043050	004000 				.WORD	4000
  13339	043052	010000 				.WORD	10000
  13340	043054	020000 				.WORD	20000
  13341	043056	040000 				.WORD	40000
  13342	043060	100000 				.WORD	100000
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 252
SCOMM MODULE -- .CEFN   (CONVERT EFN)

  13344						.SBTTL	SCOMM MODULE -- .CEFN   (CONVERT EFN)
  13345
  13346					;+
  13347					; .CEFN -- SUBROUTINE TO CONVERT AN EVENT FLAG NUMBER INTO A FORM SUCH THAT
  13348					;	   IT MAY BE READ, SET, AND CLEARED VIA "BIT", "BIS", AND "BIC" INSTRUCTIONS.
  13349					;
  13350					; ALTERNATE ENTRY POINT ".CEFN3" THAT DETERMINES EFN WITHOUT DOING
  13351					; MOVE FROM PREVIOUS (MFPS)
  13352					;
  13353					; ENTRY CONDITIONS:
  13354					;
  13355					;	R1 -- ADDRESS OF A WORD CONTAINING
  13356					;	R3 -- EFN NUMBER (FOR .CEFN3 ENTRY ONLY)
  13357					;	      THE EVENT FLAG NUMBER, AND THE EFN CAN BE FETCHED
  13358					;	R5 -- ATL NODE ADDRESS OF ISSUING TASK (.CRTSK)
  13359					;
  13360					; CALLING SEQUENCE:
  13361					;
  13362					;	CALL	.CEFN
  13363					;
  13364					;	- OR -
  13365					;
  13366					;	CALL	.CEFN3
  13367					;
  13368					; EXIT CONDITIONS:
  13369					;
  13370					;	R3 -- BIT MASK SELECTING FLAG IN WORD
  13371					;	R2 -- ADDRESS OF WORD CONTAINING THE FLAG
  13372					;
  13373					;	IF AN EVENT FLAG IS NOT SPECIFIED (EFN=0),
  13374					;	BOTH R2 & R3 ARE RETURNED ZERO.
  13375					;
  13376					;	CONDITION CODES ARE SET PER "TST R3" AT RETURN
  13377					;
  13378					;	IF EFN IS OUT OF RANGE (<0 OR >64.) CONTROL IS TRANSFERRED
  13379					;	TO DIRECTIVE ERROR STATUS 'E.97'.
  13380					;
  13381					; REGISTERS ALTERED:
  13382					;
  13383					;	R2,R3
  13384					;-
  13385
  13386	043062				.CEFN::
  13387	043062	005002 				CLR	R2		; (CLEARED FOR DIVIDE AND ERROR RETURN)
  13388	043064					MFPS	@R1,R3
	043064	011103 				MOV	@R1,R3
  13389	043066				.CEFN3::
  13390	043066	042703 	177400 			BIC	#177400,R3
  13391	043072	001423 				BEQ	20$		; EFN=0 -- NO FLAG SPECIFIED
  13392	043074	020327 	000100 			CMP	R3,#64.		; IS EFN IN RANGE: 0-64.?
  13393	043100	101022 				BHI	X8X97		; NO -- RETURN STS=-97
  13394	043102	005303 				DEC	R3		; YES -- CONVERT EFN TO INDEX (0,2,4,6)
  13395									; IN R2, AND FLAG MASK IN R3.
  13396	043104					CALL	DIV216		; DIVIDE R2 BY 16
	043104	004737 	044036'			JSR	PC,DIV216
  13397	043110	006302 				ASL	R2
  13398	043112	006303 				ASL	R3		; FIND BIT MASK
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 252-1
SCOMM MODULE -- .CEFN   (CONVERT EFN)

  13399	043114	016303 	043022'			MOV	BITTBL(R3),R3
  13400	043120	020227 	000004 			CMP	R2,#4		; FLAG IN RANGE 33-64?
  13401	043124	002403 				BLT	10$
  13402	043126	062702 	001004'			ADD	#.COMEF-4,R2	; YES -- SET R2 TO ADDRESS OF WORD IN
  13403	043132	000403 				BR	20$		; SCOMM (COMMON EVENT FLAGS)
  13404						;
  13405	043134				10$:
  13406	043134	060502 				ADD	R5,R2		; NO -- SET R2 TO ADDRESS OF WORD IN
  13407	043136	062702 	000020 			ADD	#A.EF,R2	; ATL NODE (TASK'S EVENT FLAGS)
  13408	043142				20$:
  13409	043142	005703 				TST	R3		; SET CONDITION CODES
  13410	043144					RETURN
	043144	000207 				RTS	PC
  13411
  13412	043146				X8X97::
  13413	043146	104637 				TRAP	DE.97
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 253
SCOMM MODULE -- .CKDEL  (CLOCK DELETE)

  13415						.SBTTL	SCOMM MODULE -- .CKDEL  (CLOCK DELETE)
  13416
  13417					;+
  13418					; .CKDEL -- SUBROUTINE TO REMOVE AN ENTRY FORM THE CLOCK LIST
  13419					;
  13420					; ENTRY CONDITIONS:
  13421					;
  13422					;	R4 -- POINTER TO ENTRY TO BE REMOVED
  13423					;
  13424					; CALLING SEQUENCE:
  13425					;
  13426					;	CALL	.CKDEL
  13427					;
  13428					; EXIT CONDITIONS:
  13429					;
  13430					;	NO ERROR CONDITIONS
  13431					;
  13432					;	REGISTERS ALTERED: NONE
  13433					;-
  13434
  13435						.ENABL	LSB
  13436
  13437	043150				.CKDEL::
  13438	043150	010446 				MOV	R4,-(SP)	; SAVE REGISTERS
  13439	043152	010546 				MOV	R5,-(SP)
  13440	043154	010405 				MOV	R4,R5
  13441	043156	062705 	000014 			ADD	#C.SZ,R5	; LOOK AT THE NEXT ENTRY
  13442	043162				10$:
  13443	043162	012524 				MOV	(R5)+,(R4)+	; NO -- MOVE AN ENTRY UP
  13444	043164	001406 				BEQ	30$		; END OF TABLE
  13445	043166	012524 				MOV	(R5)+,(R4)+
  13446	043170	012524 				MOV	(R5)+,(R4)+
  13447	043172	012524 				MOV	(R5)+,(R4)+
  13448	043174	012524 				MOV	(R5)+,(R4)+
  13449	043176	012524 				MOV	(R5)+,(R4)+
  13450	043200	000770 				BR	10$		; TRY AGAIN
  13451						;
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 254
SCOMM MODULE -- .CKDEL  (CLOCK DELETE)

  13487
  13488	043202				30$:
  13489	043202	005024 				CLR	(R4)+		; INSURE LAST ENTRY 0
  13490	043204	012605 				MOV	(SP)+,R5	; RESTORE
  13491	043206	012604 				MOV	(SP)+,R4
  13492	043210					RETURN			; RETURN TO CALLER
	043210	000207 				RTS	PC
  13494
  13495						.DSABL	LSB
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 255
SCOMM MODULE -- ..ERLG	(ERROR LOGGING)

  13497						.SBTTL	SCOMM MODULE -- ..ERLG	(ERROR LOGGING)
  13498
  13499					;+
  13500					; ..ERLG -- GENERAL ERROR LOGGING ROUTINE
  13501					;
  13502					; THIS SUBROUTINE WILL TRANSMIT ENTRIES IN A PARTICULAR ERROR LOGGING QUEUE
  13503					; TO THE KL.  THE FORMAT FOR AN ERROR LOGGING QUEUE LISTHEAD IS:
  13504					;
  13505					;	.WORD	ADDR		; ADDRESS OF FIRST NODE IN QUEUE
  13506					;	.WORD	COUNT		; COUNT OF NODES IN QUEUE
  13507					;
  13508					; INPUTS:
  13509					;
  13510					;	R3 -- DEVICE CODE FOR DEVICE TO BE ERROR LOGGED
  13511					;	R4 -- ADDRESS OF ERROR LOG QUEUE LISTHEAD
  13512					;
  13513					; OUTPUTS:
  13514					;
  13515					;	R0,R1,R2 -- CLOBBERED
  13516					;
  13517					; NOTE:
  13518					;
  13519					;	THIS ROUTINE MUST BE CALLED FROM TASK LEVEL
  13520					;-
  13521
  13522	043212				..ERLG::
  13523	043212	005737 	001012'			TST	.COMEF+2	; [4.1.1105] IS PRIMARY PROTOCOL RUNNING??
  13524	043216	100034 				BPL	40$		; [4.1.1105] NO -- JUST EXIT
  13525	043220	011400 				MOV	(R4),R0		; [5.1008] ANYTHING THERE??
  13526	043222	001432 				BEQ	40$		; [5.1008] NO -- EXIT
  13527	043224	032020 				BIT	(R0)+,(R0)+	; [5.1008] YES -- MOVE OVER THE LISTHEAD
  13528	043226	012702 	000001 			MOV	#1,R2		; [5.1008] SET UP EVENT FLAG
  13529	043232	012701 	100007 			MOV	#BC.HDS+BIT15,R1 ; [5.1008] SET UP FUNCTION CODE
  13530	043236					CALL	..STIN		; [5.1008] LOG THE ERROR
	043236	004737 	045646'			JSR	PC,..STIN
  13531	043242	103413 				BCS	30$		; [5.1008] ERROR IF CC-C IS SET
  13532	043244	013701 	001006'			MOV	.CRTSK,R1	; [5.1008] POINT TO CURRENT TASK
  13533	043250				10$:
  13534	043250	030261 	000020 			BIT	R2,A.EF(R1)	; [5.1008] HAS THE EVENT FLAG SET??
  13535	043254	001004 				BNE	20$		; [5.1008] YES -- GO ON
  13536	043256					WSIG$S			; [5.1008] NO -- WAIT A CLOCK TICK
	043256	012746 				MOV	(PC)+,-(SP)
	043260	   061 	   001 			.BYTE	49.,1
	043262	104375 				EMT	375
  13537	043264	000771 				BR	10$		; [5.1008] AND TRY AGAIN
  13538						;
  13539	043266				20$:
  13540	043266	040261 	000020 			BIC	R2,A.EF(R1)	; [5.1008] CLEAR THE EVENT FLAG
  13541	043272				30$:
  13542	043272	034040 				BIT	-(R0),-(R0)	; [5.1008] BACK OVER THE LISTHEAD
  13543	043274	011014 				MOV	(R0),(R4)	; [5.1008] REMOVE FROM LIST
  13544	043276	005364 	000002 			DEC	2(R4)		; [5.1008] COUNT THIS NODE OUT
  13545	043302					CALL	..DECN		; [5.1008] AND DEQUEUE THE NODE
	043302	004737 	044546'			JSR	PC,..DECN
  13546	043306	000741 				BR	..ERLG		; [5.1008] AND SEE ABOUT OTHER ERRORS
  13547						;
  13548	043310				40$:
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 255-1
SCOMM MODULE -- ..ERLG	(ERROR LOGGING)

  13549	043310					RETURN			; [5.1008] TO CALLER
	043310	000207 				RTS	PC
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 256
SCOMM MODULE -- ..IODN	(SUBROUTINE TO COMPLETE I/O)

  13551						.SBTTL	SCOMM MODULE -- ..IODN	(SUBROUTINE TO COMPLETE I/O)
  13552
  13553					;+
  13554					;
  13555					; ..IODN -- SUBROUTINE TO COMPLETE THE USER'S I/O
  13556					;	    REQUEST.  ..IODN SETS TWO WORDS OF
  13557					;	    THE I/O STATUS BLOCK IN THE USER'S AREA AND
  13558					;	    AN EVENT FLAG (IF SPECIFIED) IS SET.
  13559					;	    THE REQUEST NODE IS RETURNED TO THE POOL .
  13560					;
  13561					; JUST BEFORE ..IODN EXITS IT DECLARES A SIG EVENT TO INFORM THE
  13562					; SYSTEM THAT SOME I/O IS COMPLETE AND IF POSSIBLE A TASK MAY BE RESTARTED.
  13563					;
  13564					; CALLING SEQUENCE:
  13565					;
  13566					;		R1 -- REQUEST NODE ADDRESS
  13567					;		R3 -- I/O STATUS BLOCK WD. 00
  13568					;		R4 -- I/O STATUS BLOCK WD. 01.
  13569					;
  13570					;		CALL	..IODN
  13571					;-
  13572
  13573	043312				..IODN::
  13574	043312	010046 				MOV	R0,-(SP)	; SAVE THE REGISTERS
  13575	043314	010446 				MOV	R4,-(SP)
  13576									; STATUS SO THAT THEY CAN BE SET BY BLXO
  13577	043316	010346 				MOV	R3,-(SP)
  13578	043320	010604 				MOV	SP,R4		; POINT TO THE TWO VALUES FOR I/O STATUS BLOCK
  13579	043322	010246 				MOV	R2,-(SP)
  13580	043324	012703 	000004 			MOV	#4,R3		; SET UP TO MOVE 4 BYTES
  13581	043330	016102 	000016 			MOV	R.SB(R1),R2
  13582	043334	001402 				BEQ	10$		; SKIP IF NO STATUS BLOCK
  13583	043336					CALL	..BLXO		; MOVE THE TWO WORDS
	043336	004737 	047074'			JSR	PC,..BLXO
  13584	043342				10$:
  13585	043342	012602 				MOV	(SP)+,R2	; RESTORE R2
  13586	043344	012603 				MOV	(SP)+,R3
  13587	043346	116100 	000013 			MOVB	R.FN(R1),R0	; PICKUP EVENT FLAG NUMBER
  13588	043352	001404 				BEQ	20$		; DON'T TRY TO SET IF NO FLAG
  13589	043354	016104 	000006 			MOV	R.AT(R1),R4	; FIND THE ATL NODE ADDRESS
  13590	043360					CALL	..SEFN		; SET THE EVENT FLAG
	043360	004737 	043754'			JSR	PC,..SEFN
  13591	043364				20$:
  13592	043364					CALL	..DSEV		;  DECLARE A SIGNIFICANT EVENT
	043364	004737 	044026'			JSR	PC,..DSEV
  13593	043370	016104 	000020 			MOV	R.AS(R1),R4	; AST ADDRESS?
  13594	043374	001406 				BEQ	30$		; NO -- FORGET IT
  13595	043376	010546 				MOV	R5,-(SP)	; SAVE R5
  13596	043400	016105 	000006 			MOV	R.AT(R1),R5	; SET UP THE ATL ADDRESS
  13597	043404					CALL	.STAST		; START AST (NOTE -- CAN'T FAIL)!!
	043404	004737 	015730'			JSR	PC,.STAST
  13598	043410	012605 				MOV	(SP)+,R5	; RESTORE R5
  13599	043412				30$:
  13600	043412	010100 				MOV	R1,R0		; SET UP NODE ADDRESS
  13601	043414	012701 	000040 			MOV	#32.,R1		; SET UP SIZE OFNODE
  13602	043420					CALL	..DECB		; DEALLOCATE CORE BUFFER
	043420	004737 	044552'			JSR	PC,..DECB
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 256-1
SCOMM MODULE -- ..IODN	(SUBROUTINE TO COMPLETE I/O)

  13603	043424	012604 				MOV	(SP)+,R4
  13604	043426	012600 				MOV	(SP)+,R0
  13605	043430					RETURN
	043430	000207 				RTS	PC
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 257
SCOMM MODULE -- ..DQRN	(DEQUEUE A NORMAL REQUEST)

  13607						.SBTTL	SCOMM MODULE -- ..DQRN	(DEQUEUE A NORMAL REQUEST)
  13608
  13609					;+
  13610					; ..DQRN -- ROUTINE TO PICK A REQEST NODE FROM PUD
  13611					;
  13612					; THE NODE ON THE TOP IF THE QUEUE (HIGHEST PRIORITY) IS
  13613					; PICKED FROM THE QUEUE AND RETURNED TO THE HANDLER TASK.
  13614					;
  13615					; IF NO NODE CAN BE FOUND ..DQRN RETURNS WITH THE CONDITION CODES
  13616					; SET TO INDICATE FAILURE TO PICK A NODE.
  13617					;
  13618					; TASK SWITCHING IS INHIBITED DURING THE SCAN OF THE DEQUE TO PREVENT
  13619					; ..IPRI FROM INSERTING A NODE INTO THE LIST WHILE ONE IS BEING REMOVED.
  13620					;
  13621					; CALLING SEQUENCE:
  13622					;
  13623					;	R0 -- ASCII 2 CHARACTER DEVICE NAME
  13624					;
  13625					;	CALL	..DQRN
  13626					;
  13627					; EXIT CONDITIONS:
  13628					;
  13629					;	R0 -- PUD ADDRESS OF NODE PICKED+U.RF
  13630					;	R1 -- ADDRESS OF REQUEST NODE OR UNDEFINED IF NO NODE FOUND
  13631					;	R2 -- UNIT NUMBER
  13632					;	R3 -- BYTE COUNT
  13633					;	R4 -- HIGH ORDER ADDRESS (BITS 4,5)
  13634					;	R5 -- LOW ORDER ADDRESS
  13635					;
  13636					;	CC -- C BIT SET IF NO NODE FOUND
  13637					;	CC -- C BIT CLEAR IF NODE FOUND
  13638					;
  13639					;	EVENT FLAG EF.NIR CLEARED IF NO NODE FOUND
  13640					;	EVENT FLAG EF.NIR SET IF NODE FOUND
  13641					;-
  13642
  13643	043432				..DQRN::
  13644	043432	013701 	001006'			MOV	.CRTSK,R1	; CLEAR THE EVENT FLAG OF THE HANDLER
  13645	043436	042761 	000010 	000020 		BIC	#EF.NIR,A.EF(R1)
  13646	043444	012704 	010232'			MOV	#.PUDBA,R4	; FIND THE LOGICAL UNIT NUMBER
  13647	043450				10$:
  13648	043450	020014 				CMP	R0,@R4		; FIND THE POINTER TO THIS LUN
  13649	043452	001403 				BEQ	20$		; FOUND CORRECT LUN
  13650	043454	062704 	000050 			ADD	#U.SZ,R4	; POINT TO NEXT LUN
  13651	043460	000773 				BR	10$		; AND TRY AGAIN
  13652						;
  13653	043462				20$:
  13654	043462	062704 	000022 			ADD	#U.RF,R4	; NO -- DEQUE FIRST NODE
  13655	043466					.INH0			;; INHIBIT TASK SWITCHING
	043466	013746 	177776 			MOV	@#PS,-(SP)
	043472	112737 	000140 	177776 		MOVB	#140,@#PS
  13656	043500				30$:
  13657	043500	010446 				MOV	R4,-(SP)	;; SAVE ADDRESS
  13658	043502					CALL	..PICK		;; PICK A NODE IF POSSIBLE
	043502	004737 	044240'			JSR	PC,..PICK
  13659	043506	103011 				BCC	40$		;; POSSIBLE -- CONTINUE
  13660	043510	012604 				MOV	(SP)+,R4	;; RESTORE PUD ADDRESS
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 257-1
SCOMM MODULE -- ..DQRN	(DEQUEUE A NORMAL REQUEST)

  13661	043512	062704 	000050 			ADD	#U.SZ,R4	;; LOOK AT NEXT ENTRY
  13662	043516	026464 	177756 	177706 		CMP	-U.RF(R4),-U.RF-U.SZ(R4) ; CHECK DEVICE NAME
  13663	043524	001765 				BEQ	30$
  13664	043526	005216 				INC	@SP		;; SET CARRY
  13665	043530	000466 				BR	65$		;; AND RETURN
  13666						;
  13667	043532				40$:
  13668	043532	010401 				MOV	R4,R1		;; SET UP NODE ADDRESS FOR RETURN
  13669	043534	016102 	000004 			MOV	R.TD(R1),R2	;; YES -- CHHANGE THE DISK ADDRESS
  13670	043540	013704 	001006'			MOV	.CRTSK,R4	;; SET THE EVENT FLAG
  13671	043544	016105 	000014 			MOV	R.FC(R1),R5	;; FIND THE FUNCTION CODE
  13672	043550	020527 	001400 			CMP	R5,#IO.ATT	;; ATTACH FUNCTION??
  13673	043554	001457 				BEQ	70$		;; YES -- HANDLE ATTACH HERE
  13674	043556	020527 	002000 			CMP	R5,#IO.DET	;; NO -- DETACH ??
  13675	043562	001470 				BEQ	80$		;; YES -- HANDLE HERE
  13676	043564	022705 	001010 			CMP	#IO.LOV,R5	;; NO -- IS THE FUNCTION CODE LOAD OVERLAY??
  13677	043570	001013 				BNE	50$		;; NO -- PROCEED
  13678	043572	066261 	000034 	000034 		ADD	S.DL+2(R2),R.PB+10(R1)
  13679	043600	005561 	000032 			ADC	R.PB+6(R1)
  13680	043604	066261 	000032 	000032 		ADD	S.DL(R2),R.PB+6(R1)
  13681	043612				45$:
  13682	043612	012761 	001000 	000014 		MOV	#IO.RLB,R.FC(R1) ; SET FUNCTION CODE TO READ LOGICAL BLOCK
  13683	043620				50$:
  13684	043620	022761 	000050 	000014 		CMP	#IO.LTK,R.FC(R1) ;; IS THIS A LOAD TASK FUNCTION?
  13685	043626	001013 				BNE	60$		;;  PROCEED
  13686	043630	016202 	000012 			MOV	S.BA(R2),R2	;; SET THE CORE ADDRESS
  13693	043634	010261 	000024 			MOV	R2,R.PB(R1)	;; SET CORE ADDRESS
  13694	043640	016102 	000006 			MOV	R.AT(R1),R2	;; FIND THE ATL NODE ADDRESS
  13695	043644	062702 	000030 			ADD	#A.FM+4,R2	;; SET I/O STATUS WORD TO POINT TO A.FM+4
  13696	043650	010261 	000016 			MOV	R2,R.SB(R1)	;;
  13697	043654	000756 				BR	45$		;; CHANGE FUNCTION TO READ
  13698						;
  13699	043656				60$:
  13700	043656	052764 	000010 	000020 		BIS	#EF.NIR,A.EF(R4) ;; FOR DQ NORMAL
  13701	043664	016103 	000026 			MOV	R.PB+2(R1),R3	;; FIND THE SIZE OF THE XFER
  13702	043670	016102 	000024 			MOV	R.PB(R1),R2	;; SET UP FOR VALIDATE
  13703	043674					CALL	..VXFR		;; VALIDATE XFER
	043674	004737 	047054'			JSR	PC,..VXFR
  13704	043700	012600 				MOV	(SP)+,R0	;; FIND THE PUD ADDRESS
  13705	043702	116002 	177760 			MOVB	U.UN-U.RF(R0),R2 ;; SET UNIT NUMBER ON STACK
  13706	043706				65$:
  13707	043706					.ENB0			;; ENABLE INTERRUPTS
	043706	004737 	044302'			JSR	PC,..ENB0
  13708	043712					RETURN			; NO -- RETURN
	043712	000207 				RTS	PC
  13709	043714				70$:
  13710	043714	012604 				MOV	(SP)+,R4	;; RESTORE PUD ADDRESS
  13711	043716	016164 	000006 	177772 		MOV	R.AT(R1),U.AF-U.RF(R4)	;; SET ATTACH FLAG
  13712	043724				75$:
  13713	043724					.ENB0			;; ENABLE TASK SWITCHING
	043724	004737 	044302'			JSR	PC,..ENB0
  13714	043730	012703 	000001 			MOV	#1,R3		; RETURN +1 STATUS
  13715	043734	005004 				CLR	R4
  13716	043736					CALL	..IODN
	043736	004737 	043312'			JSR	PC,..IODN
  13717	043742	000633 				BR	..DQRN		; DEQUEUE AGAIN
  13718						;
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 257-2
SCOMM MODULE -- ..DQRN	(DEQUEUE A NORMAL REQUEST)

  13719	043744				80$:
  13720	043744	012604 				MOV	(SP)+,R4	;; RESTORE PUD ADDRESS
  13721	043746	005064 	177772 			CLR	U.AF-U.RF(R4)	;; CLEAR ATTACH
  13722	043752	000764 				BR	75$		;; AND RETURN I/O DONE STATUS
  13723						;
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 258
SCOMM MODULE -- ..SEFN	(SET EVENT FLAG)

  13725						.SBTTL	SCOMM MODULE -- ..SEFN	(SET EVENT FLAG)
  13726
  13727					;+
  13728					; ..SEFN -- SUBROUTINE TO SET AN EVENT FLAG FOR A HANDLER TASK.
  13729					;	    THIS IS A GENERAL ROUTINE TO SET ANY EVENT FLAG AND
  13730					;	    MAY BE USED BY A HANDLER TASK AT INTERRUPT LEVEL.
  13731					;	    THE MAIN PURPOSE OF THIS ROUTINE IS TO
  13732					;	    SET THE REQUESTOR'S EVENT FLAG FOR ..IODN.
  13733					;
  13734					; CALLING SEQUENCE:
  13735					;
  13736					;	R0 -- EVENT FLAG NUMBER 1-64
  13737					;	R4 -- ACTIVE TASK LIST ENTRY
  13738					;
  13739					;	CALL	..SEFN
  13740					;-
  13741
  13742	043754				..SEFN::
  13743	043754	010246 				MOV	R2,-(SP)	; SAVE USED REGISTERS
  13744	043756	010346 				MOV	R3,-(SP)
  13745	043760	010003 				MOV	R0,R3		;
  13746	043762	005303 				DEC	R3		; DECREMENT FOR 1 LESS THAN COUNT
  13747									; CONVERT EFN TO INDEX AND
  13748	043764					CALL	DIV216		; FLAG MASK
	043764	004737 	044036'			JSR	PC,DIV216
  13749	043770	006302 				ASL	R2
  13750	043772	006303 				ASL	R3		; FIND BIT MASK ADDRESS
  13751	043774	020227 	000004 			CMP	R2,#4		; TEST FOR COMMON SET
  13752	044000	002403 				BLT	10$		; NO -- FLAGS IN ATL
  13753	044002	062702 	001004'			ADD	#.COMEF-4,R2	; YES -- POINT TO COMMON FLAGS
  13754	044006	000403 				BR	20$
  13755						;
  13756	044010				10$:
  13757	044010	060402 				ADD	R4,R2		; POINT TO ATL SET
  13758	044012	062702 	000020 			ADD	#A.EF,R2
  13759	044016				20$:
  13760	044016	056312 	043022'			BIS	BITTBL(R3),@R2	; SET EVENT FLAGS
  13761	044022	012603 				MOV	(SP)+,R3
  13762	044024	012602 				MOV	(SP)+,R2
  13763					;	BR	..DSEV		; DECLARE A SIGNIFICANT EVENT
  13764						;
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 259
SCOMM MODULE -- ..DSEV	(DECLARE SIGNIFICANT EVENT)

  13766						.SBTTL	SCOMM MODULE -- ..DSEV	(DECLARE SIGNIFICANT EVENT)
  13767
  13768					;+
  13769					; ..DSEV -- COMMON ROUTINE TO DECLARE A SIGNIFICANT EVENT
  13770					;
  13771					; INPUTS:
  13772					;
  13773					;	SPECIFIC EVENT MUST BE DECLARED BY CALLER
  13774					;
  13775					; OUTPUTS:
  13776					;
  13777					;	NO REGISTERS ALTERED
  13778					;-
  13779
  13780	044026				..DSEV::
  13781	044026	152737 	000001 	001014'		BISB	#EV.SE,.SERFG+0	; DECLARE SIGNIFIGANT EVENT
  13782	044034					RETURN			; RETURN
	044034	000207 				RTS	PC
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 260
SCOMM MODULE -- DIV216   (DIV R2 BY 16)

  13784						.SBTTL	SCOMM MODULE -- DIV216   (DIV R2 BY 16)
  13785
  13786					;+
  13787					; DIV216 -- SUBROUTINE TO SIMULATE A HARDWARE
  13788					;	    DIVIDE INSTRUCTION (DIV #16,R2)
  13789					;
  13790					; CALLING SEQUENCE:
  13791					;
  13792					;	R3 -- NUMBER TO BE DIVIDED BY 16
  13793					;
  13794					;	CALL	DIV216
  13795					;
  13796					; EXIT CONDITIONS:
  13797					;
  13798					;	R3 -- REMAINDER
  13799					;	R2 -- QUOTIENT
  13800					;-
  13801
  13802	044036				DIV216::
  13803	044036	010302 				MOV	R3,R2		; FIND THE REMAINDER
  13804	044040	042703 	177760 			BIC	#177760,R3	; MASK OFF THE REMAINDER
  13805	044044	006002 				ROR	R2		; DIVIDE R2 BY 2
  13806	044046	006002 				ROR	R2		; AGAIN
  13807	044050	006002 				ROR	R2		; AND AGAIN
  13808	044052	006002 				ROR	R2		; NOW HAVE DONE IT BY 16.
  13809	044054	042702 	170000 			BIC	#170000,R2	; MASK OFF JUNK PROPIGATED BY ROR
  13810	044060					RETURN			; RETURN TO CALLER
	044060	000207 				RTS	PC
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 261
SCOMM MODULE -- ..NDEL	(NODE DELETE)

  13812						.SBTTL	SCOMM MODULE -- ..NDEL	(NODE DELETE)
  13813
  13814					;+
  13815					; ..NDEL -- ROUTINE TO DELETE A NODE FROM A LIST
  13816					;
  13817					;	THIS IS A BASIC SUBROUTINE TO DELETE NODES FROM A LIST.
  13818					;	IT DOES NOT DO ANY ACCOUNTING OR LOOKING THE NODE.  IT ASSUMES
  13819					;	THAT THERE IS A NODE TO BE PICKED AND INHIBITS INTERRUPTS TO
  13820					;	PREVENT CONFLICTS WITH NODES BEING ADDED TO A DEQUE.
  13821					;
  13822					;	CALLING SEQUENCE:
  13823					;
  13824					;		R4 -- POINTER TO NODE TO BE DELETED
  13825					;
  13826					;		CALL	..NDEL
  13827					;-
  13828
  13829	044062				..NDEL::
  13830	044062	010146 				MOV	R1,-(SP)	; SAVE R1
  13831	044064					.INH6			; INHIBIT ALL INTERRUPTS
	044064	013746 	177776 			MOV	@#PS,-(SP)
	044070	112737 	000300 	177776 		MOVB	#300,@#PS
  13832	044076	011401 				MOV	@R4,R1		;;; PICK THE NODE
  13833	044100	010174 	000002 			MOV	R1,@2(R4)	;;;
  13834	044104	016461 	000002 	000002 		MOV	2(R4),2(R1)	;;;
  13835	044112					.ENB6			;;; ENABLE INTERRUPTS
	044112	012637 	177776 			MOV	(SP)+,@#PS
  13836	044116	012601 				MOV	(SP)+,R1	; RESTORE R1
  13837	044120					RETURN			; RETURN TO CALLER
	044120	000207 				RTS	PC
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 262
SCOMM MODULE -- ..IPRI	(INSERT NODE BY PRIORITY)

  13839						.SBTTL	SCOMM MODULE -- ..IPRI	(INSERT NODE BY PRIORITY)
  13840
  13841					;+
  13842					; ..IPRI -- ROUTINE TO INSERT A NODE BY PRIORITY
  13843					;
  13844					;	THIS ROUTINE WILL SEARCH A QUEUE (TASK SWITCHING INHIBITED)
  13845					;	AND INSERT A NODE IN IT'S CORRECT PRIORITY POSITION.  IF THERE
  13846					;	IS A NODE IN THE LIST WITH THE SAME PRIORITY AS THE ONE TO BE
  13847					;	INSERTED THE NEW NODE WILL COME AFTER THE OTHER NODES WITH THE
  13848					;	SAME PRIORITY (FIFO).
  13849					;
  13850					;	..IPRI EXPECTS THE NODE TO HAVE A PRIORITY IN THE COMMON NODE
  13851					;	PRIORITY POSITION.
  13852					;
  13853					; CALLING SEQUENCE:
  13854					;
  13855					;	R1 -- NODE ADDRESS
  13856					;	R2 -- LIST HEAD
  13857					;
  13858					;	CALL	..IPRI
  13859					;-
  13860
  13861	044122				..IPRI::
  13862	044122	010446 				MOV	R4,-(SP)	; SAVE R4
  13863	044124	010204 				MOV	R2,R4		; PICK UP THE POINTER TO THE LIST HEAD
  13864	044126					.INH0			; INHIBIT ALL INTERRUPTS DURING SCAN
	044126	013746 	177776 			MOV	@#PS,-(SP)
	044132	112737 	000140 	177776 		MOVB	#140,@#PS
  13865	044140				10$:
  13866	044140	011404 				MOV	@R4,R4		;; PICK UP THE FIRST NODE
  13867	044142	020402 				CMP	R4,R2		;; END OF THE SCAN?
  13868	044144	001404 				BEQ	20$		;; YES -- INSERT THE NODE
  13869	044146	126461 	000010 	000010 		CMPB	N.PR(R4),N.PR(R1) ;; NO -- LOOK AT THE PRIORITIES
  13870	044154	103371 				BHIS	10$		;; NO MATCH TRY AGAIN
  13871	044156				20$:
  13872	044156	016404 	000002 			MOV	N.BP(R4),R4	;; BACK UP ONE
  13873	044162					CALL	..NADD		;; ADD THE NODE TO THE QUEUE
	044162	004737 	044176'			JSR	PC,..NADD
  13874	044166					.ENB0			;; ENABLE INTERRUPTS
	044166	004737 	044302'			JSR	PC,..ENB0
  13875	044172	012604 				MOV	(SP)+,R4	; RESTORE R4
  13876	044174					RETURN			; RETURN TO CALLER
	044174	000207 				RTS	PC
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 263
SCOMM MODULE -- ..NADD	(NODE ADD)

  13878						.SBTTL	SCOMM MODULE -- ..NADD	(NODE ADD)
  13879
  13880					;+
  13881					; ..NADD -- ROUTINE TO ADD A NODE TO A DEQUEUE
  13882					;
  13883					;	..NADD IS THE GENERAL PICK A NODE ROUTINE.  THE ADDITION
  13884					;	OF A NODE IS DONE WITH INTERRUPTS INHIBITED TO PREVENT
  13885					;	A CONFLICT WITH NODE DELETION.
  13886					;
  13887					; CALLING SEQUENCE:
  13888					;
  13889					;	R1 -- NODE ADDRESS
  13890					;	R4 -- ADDRESS OF LISTHEAD OR PREVIOUS NODE
  13891					;
  13892					;	CALL	..NADD
  13893					;-
  13894
  13895	044176				..NADD::
  13896	044176	010246 				MOV	R2,-(SP)	; SAVE R2
  13897	044200	010461 	000002 			MOV	R4,2(R1)	; SET UP BACKWARD POINTER IN NODE
  13898	044204					.INH6			;;; INHIBIT INTERRUPTS
	044204	013746 	177776 			MOV	@#PS,-(SP)
	044210	112737 	000300 	177776 		MOVB	#300,@#PS
  13899	044216	011411 				MOV	@R4,@R1		;;; SET UP FORWARD POINTER
  13900	044220	010114 				MOV	R1,@R4		;;; FORWARD POINTER FROM LIST HEAD
  13901	044222	011102 				MOV	@R1,R2		;;;
  13902	044224	010162 	000002 			MOV	R1,2(R2)	;;;
  13903	044230					.ENB6			;;; ENABLE INTERRUPTS
	044230	012637 	177776 			MOV	(SP)+,@#PS
  13904	044234	012602 				MOV	(SP)+,R2	; RESTORE R2
  13905	044236					RETURN			; RETURN TO CALLER
	044236	000207 				RTS	PC
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 264
SCOMM MODULE -- ..PICK	(PICK A NODE)

  13907						.SBTTL	SCOMM MODULE -- ..PICK	(PICK A NODE)
  13908
  13909					;+
  13910					; ..PICK -- ROUTINE TO PICK A NODE FROM A DEQUEUE
  13911					;
  13912					;	..PICK IS THE GENERAL PICK A NODE ROUTINE.  IT'S PRIMARY USE IS TO
  13913					;	PICK A NODE FROM A LIST.  IT CHECKS TO SEE THAT A NODE DOES EXIST
  13914					;	IN THE LIST BUT IT DOES NO ACCOUNTING OF THE NODES.  ..PICK INHIBITS
  13915					;	INTERRUPTS TO PREVENT A NODE FROM BEING ADDED WHILE IT CHECKS TO SEE
  13916					;	IF THERE IS REALLY A NODE TO BE PICKED.
  13917					;
  13918					; CALLING SEQUENCE:
  13919					;
  13920					;	R4 -- LIST HEAD OR PREVIOUS NODE TO THE NODE TO BE PICKED
  13921					;
  13922					;	CALL	..PICK
  13923					;
  13924					; EXIT CONDITIONS:
  13925					;
  13926					;	CC -- C BIT CLEAR
  13927					;	R4 -- PICKED NODE ADDRESS
  13928					;
  13929					; ERROR CONDITIONS:
  13930					;
  13931					;	CC -- C BIT SET
  13932					;		NOTE -- THIS CONDITION CAN'T HAPPEN UNLESS R4 IS THE LISTHEAD
  13933					;	R4 -- ZERO
  13934					;-
  13935
  13936	044240				..PICK::
  13937	044240	000241 				CLC			; ASSUME SUCCESS
  13938	044242					.INH6			;;; INHIBIT ALL INTERRPUTS
	044242	013746 	177776 			MOV	@#PS,-(SP)
	044246	112737 	000300 	177776 		MOVB	#300,@#PS
  13939	044254	020414 				CMP	R4,@R4		;;; IS THERE A NODE TO PICK?
  13940	044256	001406 				BEQ	20$		;;; NO -- THEN DON'T PICK IT
  13941	044260	011404 				MOV	@R4,R4		;;;
  13942	044262					CALL	..NDEL		;;; DELETE THE NODE
	044262	004737 	044062'			JSR	PC,..NDEL
  13943	044266				10$:
  13944	044266					.ENB6			;;; ENABLE INTERRUPTS
	044266	012637 	177776 			MOV	(SP)+,@#PS
  13945	044272					RETURN			; RETURN TO CALLER
	044272	000207 				RTS	PC
  13946	044274				20$:
  13947	044274	005004 				CLR	R4		; NO NODE FOUND CLEAR RETURNED VALUE
  13948	044276	005216 				INC	@SP		; SET C BIT TO INDICATE ERROR
  13949	044300	000772 				BR	10$		; RETURN
  13950						;
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 265
SCOMM MODULE -- ..ENB0	(ENABLE TASK SWITCHING)

  13952						.SBTTL	SCOMM MODULE -- ..ENB0	(ENABLE TASK SWITCHING)
  13953
  13954					;+
  13955					; ..ENB0 -- ROUTINE TO ENABLE TASK SWITCHING
  13956					;
  13957					;	..ENB0 -- ENABLES TASK SWITCHING AND ALLOWS THE SYSTEM TO
  13958					;	UPDATE THE CLOCK AND RECOGNIZE SIGNIFIGANT EVENTS.  THIS
  13959					;	ROUTINE MUST BE ENTERED WITH THE PS SAVED ON THE TOP OF THE
  13960					;	STACK.  THE USUAL WAY OF SETTING UP TO USE THIS ROUTINE IS BY
  13961					;	USE OF THE .INH0 MACRO.
  13962					;
  13963					;	THIS ROUTINE WILL NOT ENABLE TASK SWITCHING IF THE PRIORITY SAVED
  13964					;	ON THE STACK DOES NOT INDICATE A RETURN TO PRIORITY 0.  I.E., NOT
  13965					;	ENTERED AT PROCESSOR PRIORITY LEVEL 3.
  13966					;
  13967					;	CALLING SEQUENCE:
  13968					;
  13969					;			CALL	..ENB0
  13970					;
  13971					; NOTE -- PS SAVED BY .INH0 MUST BE ON THE TOP OF THE STACK
  13972					;
  13973					;	.INH0 IS A MACRO DEFINED AS FOLLOWS:
  13974					;		.MACRO	.INH0
  13975					;			MOV	PS,-(SP)
  13976					;			BIS	#140,PS
  13977					;		.ENDM
  13978					;-
  13979
  13980	044302				..ENB0::
  13981	044302	010146 				MOV	R1,-(SP)	;;
  13982	044304	016601 	000004 			MOV	4(SP),R1	;; PICK UP THE STATUS WORD FROM THE STACK
  13983	044310	032701 	000340 			BIT	#340,R1		;; TEST THE STATUS RETURNING TO
  13984	044314	001003 				BNE	20$		;; IF RETURNING TO OTHER THAN 0 DON'T ENABLE TASK SWITCHING
  13985	044316				10$:
  13986	044316	010146 				MOV	R1,-(SP)	;; NEW STATUS WORD IN R1
  13987									;; PLACE IT ON THE STACK
  13988									;; TO SET UP FOR COMMON SCAN
  13989	044320	004737 	014632'			JSR	PC,..INTX	;; PUSH THE RETURN ADDRESS ON THE STACK
  13990	044324				20$:
  13991	044324	012601 				MOV	(SP)+,R1	; RESTORE R1 TO PRE-TASK SWITCHING STATE
  13992	044326	016637 	000002 	177776 		MOV	2(SP),@#PS	; SET UP THE NEW PROCESSOR STATUS
  13993	044334	000002 				RTI			; RTI POPS THE STACK TWICE AND RETURNS TO THE CALLER
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 266
SCOMM MODULE -- ..FSTD	(FIND STD ENTRY)

  13995						.SBTTL	SCOMM MODULE -- ..FSTD	(FIND STD ENTRY)
  13996
  13997					;+
  13998					; ..FSTD -- SUBROUTINE TO SEARCH THE SYSTEM TASK DIRECTORY FOR AN
  13999					;	    ENTRY FOR A NAMED TASK.
  14000					;
  14001					; ENTRY CONDITIONS:
  14002					;
  14003					;	R1 -- ADDRESS OF THE FIRST WORD OF A TWO WORD BLOCK CONTAINING A TASK
  14004					;	      NAME (RADIX-50), AND THE BLOCK CAN BE FETCHED
  14005					;
  14006					; CALLING SEQUENCE:
  14007					;
  14008					;	CALL  ..FSTD
  14009					;
  14010					; EXIT CONDITIONS:
  14011					;
  14012					;	R1 -- ADVANCED BY FOUR (2 WORDS),
  14013					;	R2 -- STD ENTRY ADDRESS, OR ZERO IF NAME NOT FOUND.
  14014					;	R3 -- 1 BEYOND ALPHA PLACE TO INSERT
  14015					;
  14016					;	CONDITION CODES SET PER "TST R2".
  14017					;-
  14018
  14019	044336				..FSTD::
  14020	044336	010546 				MOV	R5,-(SP)
  14021	044340	013703 	006334'			MOV	.STDTA,R3	; FIND THE BEGINNING
  14022	044344	010305 				MOV	R3,R5		; FIND THE END
  14023	044346	063705 	006340'			ADD	.STDTZ,R5
  14024	044352					MFPI	(R1)+		; FIND TASK NAME
	044352	012146 				MOV	(R1)+,-(SP)
  14025	044354					MFPI	(R1)+
	044354	012146 				MOV	(R1)+,-(SP)
  14026	044356				5$:
  14027	044356	012302 				MOV	(R3)+,R2
  14028	044360	021266 	000002 			CMP	@R2,2(SP)	; TASK NAME CORRECT?
  14029	044364	101007 				BHI	50$		; NO -- TRY NEXT ONE
  14030	044366	103404 				BLO	10$		; NO AND NOT HERE
  14031	044370	026216 	000002 			CMP	2(R2),@SP	; MAYBE CHECK SECOND HALF
  14032	044374	001404 				BEQ	30$		; GOT IT
  14033	044376	101002 				BHI	50$		; NO -- AND NOTHING THERE
  14034	044400				10$:
  14035	044400	020305 				CMP	R3,R5		; END OF LIST?
  14036	044402	101765 				BLOS	5$		; NO -- CONTUNUE
  14037	044404				50$:
  14038	044404	005002 				CLR	R2		; RETURN R2 0
  14039	044406				30$:
  14040	044406	022626 				CMP	(SP)+,(SP)+	; REMOVE NAME
  14041	044410	012605 				MOV	(SP)+,R5
  14042	044412	005702 				TST	R2		; RETURN CONDITIONS PER R2
  14043	044414				60$:
  14044	044414					RETURN			; RETURN TO CALLER
	044414	000207 				RTS	PC
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 267
SCOMM MODULE -- ..ALCB/..ALC2	(ALLOCATE CORE)

  14046						.SBTTL	SCOMM MODULE -- ..ALCB/..ALC2	(ALLOCATE CORE)
  14047					;+
  14048					; ..ACLB -- SUBROUTINE TO ALLCOCATE A NODE FROM THE FREE POOL
  14049					;
  14050					; THIS ROUTINE IS CALLED TO ALLOCATE A CORE BUFFER. THE ALLOCATION
  14051					; ALGORITHM IS FIRST FIT AND BLOCKS ARE ALLOCATED IN MULTIPLES OF FOUR
  14052					; BYTES.
  14053					;
  14054					; INPUTS:
  14055					;
  14056					;	R0 -- ADDRESS OF CORE ALLOCATION LISTHEAD IF ENTRY AT ..ALC2.
  14057					;	R1 -- SIZE OF THE CORE BUFFER TO ALLOCATE IN BYTES.
  14058					;
  14059					; OUTPUTS:
  14060					;
  14061					;	CC-C SET IF INSUFFICIENT CORE IS AVAILABLE TO ALLOCATE THE BLOCK.
  14062					;
  14063					;	CC-C CLEAR IF THE BLOCK IS ALLOCATED.
  14064					;	R0 -- ADDRESS OF THE ALLOCATED BLOCK.
  14065					;	R1 -- SIZE OF THE ALLOCATED BLOCK
  14066					;-
  14067
  14068	044416				..ALCB::
  14069	044416	062701 	000003 			ADD	#3,R1		; MASK TO CORRECT SIZE
  14070	044422	042701 	000003 			BIC	#3,R1
  14074	044426	012700 	001420'			MOV	#.FREPL,R0	; POINT TO ALLOCATION LISTHEAD
  14075	044432				..ALC2::
  14076	044432	010346 				MOV	R3,-(SP)	; SAVE R3
  14077	044434	010246 				MOV	R2,-(SP)	; [4.1.1013] SAVE REGISTERS
  14078	044436	000241 				CLC			; [4.1.1013] ASSUME SUCCESS
  14079	044440					.INH6			; [4.1.1013] INHIBIT INTERRUPTS
	044440	013746 	177776 			MOV	@#PS,-(SP)
	044444	112737 	000300 	177776 		MOVB	#300,@#PS
  14080	044452	010003 				MOV	R0,R3		;;; [4.1.1013] COPY LISTHEAD POINTER TO R3
  14081	044454	160163 	000002 			SUB	R1,2(R3)	;;; [4.1.1013] CHECK TO SEE IF POOL OK
  14082	044460	100424 				BMI	40$		;;; [4.1.1013] FREE-POOL EXHAUSTED
  14083					;
  14084					; HERE TO SCAN FREE-POOL FOR A BLOCK
  14085					;
  14086	044462				10$:
  14087	044462	010002 				MOV	R0,R2		;;; SAVE ADDRESS OF CURRENT BLOCK
  14088	044464	011200 				MOV	@R2,R0		;;; GET ADDRESS OF NEXT BLOCK
  14089	044466	001421 				BEQ	40$		;;; IF EQ END OF CHAIN
  14090	044470	026001 	000002 			CMP	2(R0),R1	;;; BLOCK BIG ENOUGH?
  14091	044474	103772 				BLO	10$		;;; IF LO NO
  14092	044476	001407 				BEQ	20$		;;; IF EQ BLOCK IS EXACT SIZE
  14093					;
  14094					; HERE IF A LARGER BLOCK HAS BEEN FOUND
  14095					;
  14096	044500	005720 				TST	(R0)+		;;; POINT TO SIZE
  14097	044502	160110 				SUB	R1,@R0		;;; ALLOCATE BLOCK
  14098	044504	060001 				ADD	R0,R1		;;; POINT TO NEXT FREE SPACE
  14099	044506	011011 				MOV	@R0,@R1		;;; STORE NEW POINTER
  14100	044510	014041 				MOV	-(R0),-(R1)	;;; STORE ADDRESS
  14101	044512	010110 				MOV	R1,@R0		;;; STORE SIZE
  14102	044514	160001 				SUB	R0,R1
  14103					;
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 267-1
SCOMM MODULE -- ..ALCB/..ALC2	(ALLOCATE CORE)

  14104					; HERE IF AN EXACT FIT HAS BEEN FOUND
  14105					;
  14106	044516				20$:
  14107	044516	011012 				MOV	@R0,@R2		;;; REMOVE BLOCK FROM LIST
  14124	044520				30$:
  14125	044520					.ENB6			;;; ENABLE INTERRUPTS AND SET EXIT CONDITIONS
	044520	012637 	177776 			MOV	(SP)+,@#PS
  14126	044524	012602 				MOV	(SP)+,R2	; RESTORE REGISTERS
  14127	044526	012603 				MOV	(SP)+,R3	; RESTORE R3
  14128	044530					RETURN			; RETURN WITH R0 POINTING TO CALLER'S NODE
	044530	000207 				RTS	PC
  14129					;
  14130					; HERE TO SET UP ERROR EXIT
  14131					;
  14132	044532				40$:
  14133	044532	005216 				INC	@SP		;;; SET CARRY
  14134	044534	060163 	000002 			ADD	R1,2(R3)	;;; RESET COUNTER
  14135	044540	000767 				BR	30$		;;; AND RETURN
  14136						;
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 268
SCOMM MODULE -- ..DECB/..DECN/..DEC2 (DEALLOCATE CORE)

  14138						.SBTTL	SCOMM MODULE -- ..DECB/..DECN/..DEC2 (DEALLOCATE CORE)
  14139
  14140					;+
  14141					; ..DECB -- SUBROUTINE TO RETURN A BLOCK TO THE FREE POOL
  14142					;
  14143					; THESE ROUTINES ARE CALLED TO DEALLOCATE AN EXEC CORE BUFFER.  THE BLOCK IS
  14144					; INSERTED INTO THE FREE BLOCK CHAIN BY CORE ADDRESS.  IF AN ADJACENT
  14145					; BLOCK IS CURRENTLY FREE, THEN THE TWO BLOCKS ARE MERGED AND INSERTED
  14146					; IN THE FREE BLOCK CHAIN.
  14147					;
  14148					; INPUTS:
  14149					;
  14150					;	R0 -- ADDRESS OF THE CORE BUFFER TO BE DEALLOCATED.
  14151					;	R1 -- SIZE OF THE CORE BUFFER TO DEALLOCATE IN BYTES.
  14152					;	R3 -- ADDRESS OF CORE ALLOCATION LISTHEAD IF ENTRY AT ..DEC2.
  14153					;
  14154					; OUTPUTS:
  14155					;
  14156					;	THE CORE BLOCK IS MERGED INTO THE FREE CORE CHAIN BY CORE
  14157					;	ADDRESS AND IS AGCOMERATED IF NECESSARY WITH ADJACENT BLOCKS.
  14158					;-
  14159
  14160						.ENABL	LSB
  14161
  14162	044542				..DEC2::
  14163	044542	010346 				MOV	R3,-(SP)	; SAVE REGISTERS
  14164	044544	000411 				BR	10$
  14165						;
  14166	044546				..DECN::
  14167	044546	016001 	000002 			MOV	T.HBCT(R0),R1	; PACKET SIZE TO R1
  14168	044552				..DECB::
  14169	044552	010346 				MOV	R3,-(SP)	; SAVE REGISTERS
  14170	044554	062701 	000003 			ADD	#3,R1		; ROUND OFF
  14171	044560	042701 	000003 			BIC	#3,R1
  14172	044564	012703 	001420'			MOV	#.FREPL,R3
  14173	044570				10$:
  14174	044570	010246 				MOV	R2,-(SP)
  14175	044572	010146 				MOV	R1,-(SP)
  14176	044574	010046 				MOV	R0,-(SP)
  14177	044576					.INH6			; INHIBIT INTERRUPTS
	044576	013746 	177776 			MOV	@#PS,-(SP)
	044602	112737 	000300 	177776 		MOVB	#300,@#PS
  14196	044610	060163 	000002 			ADD	R1,2(R3)	;;; [4.1.1104] UPDATE SIZE
  14197	044614				40$:
  14198	044614	010302 				MOV	R3,R2		;;; SAVE ADDRESS OF CURRENT BLOCK
  14199	044616	011203 				MOV	@R2,R3		;;; GET ADDRESS OF NEXT BLOCK
  14200	044620	001402 				BEQ	50$		;;; IF EQ END OF CHAIN
  14201	044622	020003 				CMP	R0,R3		;;; BLOCK GO HERE?
  14202	044624	103373 				BHIS	40$		;;; IF HIS NO
  14203	044626				50$:
  14204	044626	010310 				MOV	R3,@R0		;;; ASSUME NO AGLOMERATION
  14205	044630	010046 				MOV	R0,-(SP)	;;; CALCULATE ADDRESS OF NEW BLOCK
  14206	044632	060116 				ADD	R1,@SP		;;;
  14207	044634	020326 				CMP	R3,(SP)+	;;; EQUAL TO NEXT IN CHAIN?
  14208	044636	001002 				BNE	60$		;;; IF NE NO
  14209	044640	012310 				MOV	(R3)+,@R0	;;; MOVE LINK WORD TO BLOCK RELEASED
  14210	044642	061301 				ADD	@R3,R1		;;; MERGE TWO BLOCKS
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 268-1
SCOMM MODULE -- ..DECB/..DECN/..DEC2 (DEALLOCATE CORE)

  14211	044644				60$:
  14212	044644	010246 				MOV	R2,-(SP)	;;; SAVE ADDRESS OF PREVIOUS BLOCK
  14213	044646	010022 				MOV	R0,(R2)+	;;; ASSUME NO AGLOMERATION
  14214	044650	061216 				ADD	@R2,@SP		;;; CALCULATE ADDRESS OF NEXT BLOCK
  14215	044652	020026 				CMP	R0,(SP)+	;;; EQUAL TO BLOCK BEING RELEASED?
  14216	044654	001003 				BNE	70$		;;; IF NE NO
  14217	044656	061201 				ADD	@R2,R1		;;; MERGE TWO BLOCKS
  14218	044660	011042 				MOV	@R0,-(R2)	;;; MOVE LINK WORD TO PREVIOUS BLOCK
  14219	044662	010200 				MOV	R2,R0		;;; SET NEW ADDRESS OF BLOCK
  14220	044664				70$:
  14221	044664	010160 	000002 			MOV	R1,2(R0)	;;; SET SIZE OF BLOCK RELEASED
  14222	044670					.ENB6			;;; ENABLE INTERRUPTS
	044670	012637 	177776 			MOV	(SP)+,@#PS
  14223	044674	012600 				MOV	(SP)+,R0	; RESTORE REGISTERS
  14224	044676	012601 				MOV	(SP)+,R1
  14225	044700	012602 				MOV	(SP)+,R2
  14226	044702	012603 				MOV	(SP)+,R3
  14227	044704					RETURN
	044704	000207 				RTS	PC
  14228						.DSABL	LSB
  14229
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 269
SCOMM MODULE -- ..ALOW	(ALLOCATE OR WAIT)

  14235						.SBTTL	SCOMM MODULE -- ..ALOW	(ALLOCATE OR WAIT)
  14236
  14237					;+
  14238					;	..ALOW -- SUBROUTINE TO ALLOCATE A BUFFER (..ALCB) OR WAIT
  14239					;		  IF ONE IS NOT AVAILABLE
  14240					;
  14241					;CALLING SEQUENCE:
  14242					;
  14243					;	SAME AS ..ALCB (Q.V.)
  14244					;
  14245					;-
  14246
  14247	044706				..ALOW::
  14248	044706					CALL	..ALCB		; TRY TO ALLOCATE A CORE BUFFER
	044706	004737 	044416'			JSR	PC,..ALCB
  14249	044712	103004 				BCC	10$		; RETURN IF SUCCESSFUL
  14250	044714					WSIG$S			; WAIT FOR SIG EVENT
	044714	012746 				MOV	(PC)+,-(SP)
	044716	   061 	   001 			.BYTE	49.,1
	044720	104375 				EMT	375
  14251	044722	000771 				BR	..ALOW		; AND TRY AGAIN
  14252						;
  14253	044724				10$:
  14254	044724					RETURN			; RETURN TO CALLER
	044724	000207 				RTS	PC
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 270
SCOMM MODULE -- ..STTY (START TERMINAL OUTPUT)

  14256						.SBTTL	SCOMM MODULE -- ..STTY (START TERMINAL OUTPUT)
  14257
  14258					;+
  14259					; ..STTY -- START TERMINAL OUTPUT
  14260					;
  14261					; THIS SUBROUTINE WILL ENTER A TERMINAL OUTPUT PACKET IN A TERMINAL'S THREAD
  14262					; LIST AND START THE LINE IF THIS IS REQUIRED.  IF THE REQUEST IS FOR THE CTY
  14263					; AND KLINIK IS ACTIVE IN REMOTE MODE, THE REQUEST WILL BE PROCESSED FOR BOTH
  14264					; THE REMOTE AND LOCAL CTYS.
  14265					;
  14266					; REQUESTS FOR SENDALL PACKETS ARE NOT QUEUED UP FOR DH-11S, RATHER THEY ARE
  14267					; LEFT IN THE SENDALL RING BUFFERS.  SENDALL PACKETS FOR DL-11S ARE SIMPLY
  14268					; QUEUED UP AS NORMAL OUTPUT BY THE SENDALL SERVICE.
  14269					;
  14270					; NORMAL OUTPUT PACKETS ARE NOT QUEUED UP, BUT IMMEDIATELY DEALLOCATED IF:
  14271					;
  14272					;	1. THE DEVICE DOES NOT EXIST.
  14273					;	2. THE DEVICE IS IN AUTO-BAUD WAIT.
  14274					;
  14275					; NORMAL OUTPUT PACKETS ARE NOT STARTED IF:
  14276					;
  14277					;	1. THE DEVICE IS ALREADY OUTPUT ACTIVE.
  14278					;	2. THE DEVICE IS X'D-OFF.
  14279					;	3. THE DEVICE IS A CTY IN PDP-11 I/O WAIT.
  14280					;
  14281					; SENDALL PACKETS ARE ALWAYS STARTED ON X'D-OFF LINES.  THIS ROUTINE ASSUMES
  14282					; THAT THE SENDALL SERVICE WILL NOT ATTEMPT TO START A SENDALL ON A LINE WHICH:
  14283					;
  14284					;	1. IS OUTPUT ACTIVE.
  14285					;	2. IS SUPPRESSING SENDALLS.
  14286					;	3. DOES NOT EXIST.
  14287					;	4. IS IN AUTO-BAUD WAIT.
  14288					;
  14289					; INPUTS:
  14290					;
  14291					;	R0 -- POINTS TO OUTPUT PACKET
  14292					;	R2 -- POINTS TO DATA LINE SCANNER TABLE ENTRY FOR THIS LINE
  14293					;	R4 -- POINTS TO QUEUED PROTOCOL PACKET CONTAINING REQUEST
  14294					;
  14295					; OUTPUTS:
  14296					;
  14297					;	NO REGISTERS ARE ALTERED
  14298					;-
  14299
  14300	044726				..STTY::
  14301	044726	010546 				MOV	R5,-(SP)	;;; SAVE REGISTERS
  14302	044730	010446 				MOV	R4,-(SP)
  14303	044732	010246 				MOV	R2,-(SP)
  14304	044734	010146 				MOV	R1,-(SP)
  14305	044736	010046 				MOV	R0,-(SP)
  14306	044740	010205 				MOV	R2,R5		;;; COPY DLS TABLE POINTER TO R5
  14307	044742	032765 	000002 	000006 		BIT	#TT.CTY,STSW1(R5) ;;; IS THIS A CTY??
  14308	044750	001415 				BEQ	10$		;;; NO -- GO ON
  14309	044752	105737 	001226'			TSTB	.KLNSW+0	;;; YES -- IS REMOTE KLINIK ACTIVE??
  14310	044756	003412 				BLE	10$		;;; NO -- GO ON
  14311	044760	010004 				MOV	R0,R4		;;; [4.2265] YES -- COPY BUFFER
  14312	044762					CALL	COPBUF		;;; SO
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 270-1
SCOMM MODULE -- ..STTY (START TERMINAL OUTPUT)

	044762	004737 	027312'			JSR	PC,COPBUF
  14313	044766	013705 	002636'			MOV	KLNPTR,R5	;;; SUBSTITUTE KLINIK POINTER
  14314	044772					CALL	20$		;;; START THE KLINIK LINE
	044772	004737 	045024'			JSR	PC,20$
  14315	044776	016605 	000004 			MOV	4(SP),R5	;;; GET CTY POINTER
  14316	045002	011600 				MOV	(SP),R0		;;; [4.2265] AND THE BUFFER POINTER
  14317	045004				10$:
  14318	045004					CALL	20$		;;; START UP THE LINE
	045004	004737 	045024'			JSR	PC,20$
  14319	045010	012600 				MOV	(SP)+,R0	;;; RESTORE REGISTERS
  14320	045012	012601 				MOV	(SP)+,R1
  14321	045014	012602 				MOV	(SP)+,R2
  14322	045016	012604 				MOV	(SP)+,R4
  14323	045020	012605 				MOV	(SP)+,R5
  14324	045022					RETURN			;;; TO CALLER
	045022	000207 				RTS	PC
  14325					;
  14326					; HERE TO SEE IF A SENDALL MUST BE STARTED ON THIS LINE
  14327					;
  14328	045024				20$:
  14329	045024	005765 	000002 			TST	TTYEXP(R5)	;;; DOES THE DEVICE EXIST??
  14337	045030	001646 				BEQ	..DECN		;;; NO -- DEALLOCATE AND EXIT
  14339	045032	105060 	000007 			CLRB	T.HFCN(R0)	;;; CLEAR THE FUNCTION CODE
  14340	045036	020037 	002626'			CMP	R0,.CRSND	;;; IS THIS A SENDALL??
  14341	045042	001416 				BEQ	40$		;;; YES -- START IT UP
  14342					;
  14343					; HERE TO START NORMAL OUTPUT ON THIS LINE
  14344					;
  14345	045044	032765 	000010 	000006 		BIT	#TT.ABW,STSW1(R5) ;;; IS THIS LINE IN AUTO-BAUD WAIT??
  14349	045052	001235 				BNE	..DECN		;;; YES -- DEALLOCATE THE NODE AND EXIT
  14351	045054	010501 				MOV	R5,R1		;;; NO -- SET UP TO FIND END OF THREAD LIST
  14352	045056				30$:
  14353	045056	010102 				MOV	R1,R2		;;; COPY NODE POINTER TO R2
  14354	045060	011201 				MOV	(R2),R1		;;; FIND END OF LIST
  14355	045062	001375 				BNE	30$		;;; KEEP GOING
  14356	045064	010012 				MOV	R0,(R2)		;;; SET THIS NODE IN THE THREAD LIST
  14357	045066	005010 				CLR	(R0)		;;; MARK THE END OF THE LIST
  14358	045070	032765 	000201 	000006 		BIT	#TT.XOF!TT.OUT,STSW1(R5) ;;; IS THE LINE X'D OFF
  14359									;;; OR ALREADY ACTIVE??
  14360	045076	001016 				BNE	60$		;;; YES -- JUST EXIT
  14361					;
  14362					; HERE TO START UP THE DEVICE
  14363					;
  14364	045100				40$:
  14365	045100	032765 	000002 	000006 		BIT	#TT.CTY,STSW1(R5) ;;; IS THIS A CTY??
  14366	045106	001403 				BEQ	50$		;;; NO -- GO ON
  14367	045110	005737 	002632'			TST	.TTP11		;;; YES -- IN PDP-11 I/O WAIT??
  14368	045114	001007 				BNE	60$		;;; YES -- JUST EXIT
  14369					;
  14370					; HERE TO START UP A DH-11 LINE
  14371					;
  14372	045116				50$:
  14373	045116	016504 	000002 			MOV	TTYEXP(R5),R4	;;; [5.1015] EXTERNAL PAGE POINTER TO R4
  14374	045122					CALL	.STDHL		;;; SET THE LINE NUMBER IN THE DH-11
	045122	004737 	037416'			JSR	PC,.STDHL
  14375	045126	100403 				BMI	70$		;;; [5.1015] GO START DL-11
  14376	045130	000137 	034164'			JMP	.DHSTO		;;; START THE DH-11 OUTPUT AND EXIT
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 270-2
SCOMM MODULE -- ..STTY (START TERMINAL OUTPUT)

  14377						;
  14378	045134				60$:
  14379	045134					RETURN			;;; EXIT
	045134	000207 				RTS	PC
  14380					;
  14381					; HERE TO START UP A DL-11 LINE
  14382					;
  14383	045136				70$:
  14384	045136	000137 	034340'			JMP	.DLSTO		;;; START DL-11 OUTPUT
  14385						;
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 271
SCOMM MODULE -- ..STPT	(STOP TTY)

  14387						.SBTTL	SCOMM MODULE -- ..STPT	(STOP TTY)
  14388
  14389					;+
  14390					; ..STPT -- SUBROUTINE TO STOP TTY OUTPUT AND FLUSH THE BUFFERS
  14391					;
  14392					; ENTRY CONDITIONS:
  14393					;
  14394					;	R2 -- POINTER TO TTYTBL (TABLE WHERE QUEUE FOR THIS LINE IS)
  14395					;
  14396					;	CALL	..STPT
  14397					;
  14398					; EXIT CONDITIONS:
  14399					;
  14400					;	CC-C CLEAR
  14401					;	NO REGISTERS ALTERED
  14402					;-
  14403
  14404	045142				..STPT::
  14405	045142	010046 				MOV	R0,-(SP)	;;; [5.1015] SAVE R0
  14406	045144	010446 				MOV	R4,-(SP)	;;; [5.1015] AND R4
  14407	045146	010546 				MOV	R5,-(SP)	;;; [5.1015] AND R5
  14408	045150	010205 				MOV	R2,R5		;;; [5.1015] COPY DLS POINTER TO R5
  14409	045152	032765 	000002 	000006 		BIT	#TT.CTY,STSW1(R5) ;;; IS THIS A CTY??
  14410	045160	001411 				BEQ	10$		;;; NO -- GO ON
  14411	045162	105737 	001226'			TSTB	.KLNSW+0	;;; YES -- IS KLINIK ACTIVE??
  14412	045166	003406 				BLE	10$		;;; NOT THAT WE CARE
  14413	045170	010546 				MOV	R5,-(SP)	;;; YES -- SAVE R5
  14414	045172	013705 	002636'			MOV	KLNPTR,R5	;;; KLINIK LINE POINTER TO R5
  14415	045176					CALL	20$		;;; DEQUEUE AND STOP KLINIK LINE
	045176	004737 	045220'			JSR	PC,20$
  14416	045202	012605 				MOV	(SP)+,R5	;;; RESTORE R5
  14417	045204				10$:
  14418	045204					CALL	20$		;;; DEQUEUE AND STOP LINE
	045204	004737 	045220'			JSR	PC,20$
  14419	045210	012605 				MOV	(SP)+,R5	;;; [5.1015] RESTORE REGISTERS
  14420	045212	012604 				MOV	(SP)+,R4
  14421	045214	012600 				MOV	(SP)+,R0
  14422	045216					RETURN			;;; AND EXIT
	045216	000207 				RTS	PC
  14423					;
  14424					; HERE TO FLUSH OUTPUT LIST AND STOP LINE
  14425					;
  14426	045220				20$:
  14427	045220	005715 				TST	(R5)		;;; [5.1015] IS THERE A LIST TO BEGIN WITH??
  14428	045222	001440 				BEQ	60$		;;; [5.1015] NO -- JUST EXIT
  14429	045224	010546 				MOV	R5,-(SP)	;;; YES -- SAVE DLS POINTER
  14430	045226	011505 				MOV	(R5),R5		;;; MOVE OVER FIRST NODE
  14431	045230	005065 	000006 			CLR	T.HCBC(R5)	;;; [5.1015] ZERO THE BYTE COUNT
  14432	045234	005705 				TST	R5		;;; [5.1015] LOOK AT THE LINK
  14433	045236	001402 				BEQ	30$		;;; ONLY ONE NODE -- FORGET IT
  14434	045240					CALL	50$		;;; FLUSH THE THREAD LIST
	045240	004737 	045310'			JSR	PC,50$
  14435					;
  14436					; HERE TO STOP A DH-11 LINE
  14437					;
  14438	045244				30$:
  14439	045244	012605 				MOV	(SP)+,R5	;;; RESTORE DLS POINTER
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 271-1
SCOMM MODULE -- ..STPT	(STOP TTY)

  14440	045246	032765 	000002 	000006 		BIT	#TT.CTY,STSW1(R5) ;;; [5.1015] IS THIS A CTY??
  14441	045254	001403 				BEQ	40$		;;; [5.1015] NO -- GO ON
  14442	045256	005737 	002632'			TST	.TTP11		;;; [5.1015] YES -- -11 I/O WAIT??
  14443	045262	001012 				BNE	50$		;;; [5.1015] YES -- GET RID OF FIRST NODE AND EXIT
  14444	045264				40$:
  14445	045264	032765 	000001 	000006 		BIT	#TT.OUT,STSW1(R5) ;;; [5.1015] OUTPUT ACTIVE??
  14446	045272	001406 				BEQ	50$		;;; [5.1015] NO -- GET RID OF FIRST NODE AND EXIT
  14447	045274	032765 	001000 	000006 		BIT	#TT.SIP,STSW1(R5) ;;; [5.1015] MAYBE -- CHECK FOR SENDALL
  14448	045302	001002 				BNE	50$		;;; [5.1015] YES -- GET RID OF FIRST NODE AND EXIT
  14449	045304	000137 	041650'			JMP	.TTSTP		;;; [5.1015] NO -- STOP OUTPUT
  14450						;
  14451					;
  14452					; INTERNAL SUBROUTINE TO REMOVE THREAD LIST ENTRIES UP TO THAT
  14453					; POINTED TO BY R5
  14454					;
  14455	045310				50$:
  14456	045310	011500 				MOV	(R5),R0		;;; GET THIS NODE POINTER
  14457	045312	001404 				BEQ	60$		;;; END OF LIST IF .EQ. 0
  14458	045314	011015 				MOV	(R0),(R5)	;;; DELINK AND
  14459	045316					CALL	..DECN		;;; DEALLOACATE THIS NODE
	045316	004737 	044546'			JSR	PC,..DECN
  14460	045322	000772 				BR	50$		;;; DO THE NEXT NODE
  14461						;
  14462	045324				60$:
  14463	045324					RETURN			;;; TO CALLER
	045324	000207 				RTS	PC
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 272
SCOMM MODULE -- ..STCH	(STORE CHARACTER IN TO 10 QUEUE)

  14465						.SBTTL	SCOMM MODULE -- ..STCH	(STORE CHARACTER IN TO 10 QUEUE)
  14466
  14467					;+
  14468					; ..STCH -- SUBROUTINE TO STORE A CHARACTER IN THE TO 10
  14469					;	    QUEUE AND IF THAT QUEUE IS FULL SEND IT TO THE KL10 BY
  14470					;	    ENTERING IT IN THE TO 10 QUEUE.
  14471					;
  14472					; CALLING SEQUENCE:
  14473					;
  14474					;	SP -- POINTS TO CHARACTER
  14475					;	R5 -- POINTER TO DEVICE TABLE ENTRY
  14476					;
  14477					;	CALL	..STCH
  14478					;
  14479					;	REGISTERS ALTERED: NONE
  14480					;-
  14481
  14482						.ENABL	LSB
  14483
  14484	045326				..STCH::
  14485	045326	010446 				MOV	R4,-(SP)	; SAVE REGISTERS
  14486	045330	010346 				MOV	R3,-(SP)
  14487	045332	010146 				MOV	R1,-(SP)
  14488	045334	012703 	000004 			MOV	#D.CDLS,R3	; SET UP AS DATA/LINE SCANNER
  14489	045340					CALL	STLN		; GET LINE NUMBER
	045340	004737 	045412'			JSR	PC,STLN
  14490	045344	000304 				SWAB	R4		; AND PUT IN HIGH ORDER BYTE
  14491	045346	156604 	000010 			BISB	10(SP),R4	; SET CHARACTER
  14492	045352	012701 	000004 			MOV	#BC.LNC,R1	; SET LINE NUMBER/CHARACTER
  14493					;
  14494					;	LOCAL COMMON QUEUE STORAGE SUBROUTINE
  14495					;
  14496	045356				STCM:
  14497	045356					CALL	..STFC		; STORE FUNCTION
	045356	004737 	045456'			JSR	PC,..STFC
  14498	045362	012601 				MOV	(SP)+,R1	; RESTORE
  14499	045364	012603 				MOV	(SP)+,R3
  14500	045366	012604 				MOV	(SP)+,R4
  14501	045370				10$:
  14502	045370					RETURN
	045370	000207 				RTS	PC
  14503
  14504						.DSABL	LSB
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 273
SCOMM MODULE -- ..SACK	(SEND ACKNOWLEDGEMENT)

  14506						.SBTTL	SCOMM MODULE -- ..SACK	(SEND ACKNOWLEDGEMENT)
  14507
  14508					;+
  14509					; ..SACK -- SUBROUTINE TO ACKNOWLEDGE THE OUTPUT OF CHARACTER OR STRINGS
  14510					;
  14511					; CALLING SEQUENCE:
  14512					;
  14513					;	R3 -- DEVICE ID
  14514					;	R5 -- DEVICE TABLE POINTER
  14515					;
  14516					; EXIT CONDITIONS:
  14517					;
  14518					;	NO REGISTERS ALTERED
  14519					;
  14520					;-
  14521
  14522	045372				..SACK::
  14523	045372	010446 				MOV	R4,-(SP)	; SAVE REGISTERS
  14524	045374	010346 				MOV	R3,-(SP)
  14525	045376	010146 				MOV	R1,-(SP)
  14526	045400					CALL	STLN		; GET LINE NUMBER.
	045400	004737 	045412'			JSR	PC,STLN
  14527	045404	012701 	000017 			MOV	#BC.SAK,R1
  14528	045410	000762 				BR	STCM		; STORE COMMON
  14529						;
  14530					;
  14531					;	LOCAL SUBROUTINE TO COMPUTE LINE NUMBER
  14532					;
  14533	045412				STLN:
  14534	045412	010246 				MOV	R2,-(SP)
  14535	045414	005004 				CLR	R4		; DEFAULT LINE # TO ZERO.
  14536	045416	010302 				MOV	R3,R2		; COMPUTE OFFSET TO
  14537	045420	006302 				ASL	R2		; DEVICE QUEUE ENTRY
  14538	045422	006302 				ASL	R2
  14539	045424	006302 				ASL	R2
  14540	045426	006302 				ASL	R2
  14541	045430	010501 				MOV	R5,R1		; NOW COMPUTE OFFSET
  14542	045432	166201 	010012'			SUB	.DQPBA-20(R2),R1 ; INTO DEVICE LINE TABLE
  14543	045436	001405 				BEQ	20$		; FIRST ENTRY - ALL DONE.
  14544	045440	116202 	010014'			MOVB	.DQPBA-20+2(R2),R2 ; GET TABLE ENTRY SIZE
  14545	045444				10$:
  14546	045444	005204 				INC	R4		; AND MARCH THROUGH
  14547	045446	160201 				SUB	R2,R1
  14548	045450	003375 				BGT	10$
  14549	045452				20$:
  14550	045452	012602 				MOV	(SP)+,R2
  14551	045454					RETURN			; GOOD-BYE !
	045454	000207 				RTS	PC
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 274
SCOMM MODULE -- ..STFC	(STORE FUNCTION)

  14553						.SBTTL	SCOMM MODULE -- ..STFC	(STORE FUNCTION)
  14554
  14555					;+
  14556					; ..STFC -- SUBROUTINE TO START A ONE WORD FUNCTION OF CHARACTER
  14557					;
  14558					; CALLING SEQUENCE:
  14559					;
  14560					;	R1 -- FUNCTION CODE
  14561					;	R3 -- DEVICE ID
  14562					;	R4 -- CHARACTER TO BE SENT TO 10 AND LINE NUMBER
  14563					;-
  14564
  14565	045456				..STFC::
  14566	045456	010546 				MOV	R5,-(SP)	; SAVE R5
  14567	045460					.INH6
	045460	013746 	177776 			MOV	@#PS,-(SP)
	045464	112737 	000300 	177776 		MOVB	#300,@#PS
  14568	045472	020137 	001252'			CMP	R1,.CPFN	; THE CORRECT CURRENT FUNCTION?
  14569	045476	001026 				BNE	10$		; NO -- MUST RESET
  14570	045500	020337 	001254'			CMP	R3,.CPDV	; SAME DEVICE?
  14571	045504	001023 				BNE	10$		; MUST RESET HERE ALSO
  14572	045506				5$:
  14573	045506	010477 	133546 			MOV	R4,@.CRPB	; SET THE LINE NUMBER
  14574	045512	012705 	000002 			MOV	#2,R5
  14575	045516	060537 	001260'			ADD	R5,.CRPB
  14576	045522	060577 	133536 			ADD	R5,@.CRSB
  14577	045526	060537 	001250'			ADD	R5,.CRQZ
  14578	045532	160537 	001256'			SUB	R5,.CRSZ
  14579	045536	001002 				BNE	7$		; YES -- RETURN TO CALLER
  14580	045540					CALL	..STQ		; NO -- BETTER START QUEUE
	045540	004737 	046046'			JSR	PC,..STQ
  14581	045544				7$:
  14582	045544					.ENB6			; ENABLE INTERRUPTS
	045544	012637 	177776 			MOV	(SP)+,@#PS
  14583	045550	012605 				MOV	(SP)+,R5	; RESTORE
  14584	045552					RETURN			; RETURN TO CALLER
	045552	000207 				RTS	PC
  14585					;
  14586	045554				10$:
  14587	045554	022737 	000012 	001256'		CMP	#10.,.CRSZ	; IS THERE ROOM?
  14588	045562	101402 				BLOS	15$		; YES -- START NEW ENTRY
  14589	045564				13$:
  14590	045564					CALL	..STQ		; NO -- ENTER IT IN THE QUEUE
	045564	004737 	046046'			JSR	PC,..STQ
  14591	045570				15$:
  14592	045570	010046 				MOV	R0,-(SP)	; SAVE R0
  14593	045572	012705 	000010 			MOV	#10,R5
  14594	045576	013700 	001260'			MOV	.CRPB,R0	; FIND CURRENT BUFFER POINTER
  14595	045602	060537 	001250'			ADD	R5,.CRQZ	; UPDATE QUEUE COUNTS
  14596	045606	160537 	001256'			SUB	R5,.CRSZ
  14597	045612	010037 	001264'			MOV	R0,.CRSB	; SET UP CURRENT BUFFER POINTER
  14598	045616	010520 				MOV	R5,(R0)+	; SET UP CURRENT SIZE
  14599	045620	010120 				MOV	R1,(R0)+	; SET THE FUNCTION CODE
  14600	045622	010137 	001252'			MOV	R1,.CPFN	; SAVE CURRENT FUNCTION
  14601	045626	010320 				MOV	R3,(R0)+	; SET DEVICE CODE
  14602	045630	010337 	001254'			MOV	R3,.CPDV	; SET DEVICE CODE FOR REFER LATER
  14603	045634	005020 				CLR	(R0)+		; CLEAR SPARE WORD
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 274-1
SCOMM MODULE -- ..STFC	(STORE FUNCTION)

  14604	045636	010037 	001260'			MOV	R0,.CRPB	; SET CURRENT BUFFER POINTER
  14605	045642	012600 				MOV	(SP)+,R0	; RESTORE R0
  14606	045644	000720 				BR	5$		; AND SET FUNCTION
  14607						;
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 275
SCOMM MODULE -- ..STIN	(START INDIRECT FUNCTION)

  14609						.SBTTL	SCOMM MODULE -- ..STIN	(START INDIRECT FUNCTION)
  14610
  14611					;+
  14612					; ..STIN -- SUBROUTINE TO START AN INDIRECT DTE20 FUNCTION TO THE 10
  14613					;
  14614					;  ENTRY CONDITIONS:
  14615					;
  14616					;	R0 -- BUFFER ADDRESS
  14617					;	R1 -- FUNCTION +100000
  14618					;	R2 -- EFN/BUFFER SIZE
  14619					;	R3 -- DEVICE ID
  14620					;
  14621					;	NOTE :  THE FIRST WORD OF THE BUFFER MUST CONTAIN THE
  14622					;	LINE NUMBER AND BUFFER SIZE
  14623					;
  14624					;	MAY NOT BE CALLED FROM ISR
  14625					;
  14626					;	CALL	..STIN
  14627					;
  14628					;  EXIT CONDITIONS:
  14629					;
  14630					;	CC-C CLEAR SUCCESS
  14631					;	CC-C SET FAILURE -- PRIMARY PROTOCOL NOT IN USE
  14632					;
  14633					;-
  14634					;
  14635	045646				..STIN::
  14636	045646	005737 	001012'			TST	.COMEF+2	; [4.1.1105] IS PRIMARY PROTOCOL RUNNING??
  14637	045652	100402 				BMI	10$		; [4.1.1105] YES -- GO ON
  14638	045654	000261 				SEC			; [4.2208] NO -- SET ERROR RETURN
  14639	045656	000472 				BR	40$		; [4.2208] AND EXIT
  14640						;
  14641	045660				10$:
  14642	045660	010546 				MOV	R5,-(SP)	; SAVE REGISTERS
  14643	045662	010046 				MOV	R0,-(SP)
  14644	045664	010146 				MOV	R1,-(SP)
  14645	045666	012701 	000030 			MOV	#30,R1		; SET UP TO ALLOCATE A BUFFER
  14646	045672					CALL	..ALOW		; ALLOCATE BUFFER
	045672	004737 	044706'			JSR	PC,..ALOW
  14647	045676				20$:
  14648	045676	010005 				MOV	R0,R5		; MOVE BUFFER ADDRESS TO R5
  14649	045700	022525 				CMP	(R5)+,(R5)+	; MOVE OVER THE LISTHEAD
  14650	045702	010125 				MOV	R1,(R5)+	; STORE THE BUFFER SIZE
  14651	045704	012715 	000012 			MOV	#12,@R5		; PUT IN THE SIZE OF THIS HEADER PACKET
  14652	045710	012525 				MOV	(R5)+,(R5)+	; ALSO PUT IT IN FIRST WORD TO 10
  14653	045712	011625 				MOV	@SP,(R5)+	; STORE FUNCTION CODE
  14654	045714	010325 				MOV	R3,(R5)+	; STORE THE DEVICE I/D
  14655	045716	005025 				CLR	(R5)+		; CLEAR THE SPARE WORD
  14656	045720	016601 	000002 			MOV	2(SP),R1	; RESTORE BUFFER ADDRESS
  14657	045724	012125 				MOV	(R1)+,(R5)+	; SET BYTE COUNT/LINE NUMBER
  14658	045726	010125 				MOV	R1,(R5)+	; SET UP BUFFER ADDRESS
  14659	045730	010246 				MOV	R2,-(SP)	; SAVE REGISTERS MODIFIED
  14660	045732	010346 				MOV	R3,-(SP)
  14661	045734	010546 				MOV	R5,-(SP)
  14662	045736	013705 	001006'			MOV	.CRTSK,R5	; SET UP TO CONVERT EFN
  14663	045742	010203 				MOV	R2,R3
  14664	045744					CALL	.CEFN3		; CONVERT EFN
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 275-1
SCOMM MODULE -- ..STIN	(START INDIRECT FUNCTION)

	045744	004737 	043066'			JSR	PC,.CEFN3
  14665	045750	012605 				MOV	(SP)+,R5	; RESTORE R5
  14666	045752	010325 				MOV	R3,(R5)+	; SET MASK
  14667	045754	010225 				MOV	R2,(R5)+	; SET ADDRESS
  14668	045756	012603 				MOV	(SP)+,R3	; RESTORE REGISTERS
  14669	045760	012602 				MOV	(SP)+,R2
  14670	045762	010446 				MOV	R4,-(SP)	; SAVE R4
  14671	045764	010001 				MOV	R0,R1		; SET UP TO ENTER NODE
  14672	045766					.INH6			; INHIBIT DTE20 INTERRUPTS
	045766	013746 	177776 			MOV	@#PS,-(SP)
	045772	112737 	000300 	177776 		MOVB	#300,@#PS
  14673	046000	012704 	001326'			MOV	#TO10Q,R4	;;; START TO 10 QUEUE IF NECESSARY
  14674	046004	021404 				CMP	@R4,R4		;;; CHECK TO SEE IF ALREADY GOING
  14675	046006	001003 				BNE	30$		;;; YES -- JUST ENTER IN QUEUE
  14676	046010	010104 				MOV	R1,R4		;;; NO -- SET NODE ADDRESS
  14677	046012					CALL	.STTNQ		;;; [4.1.1121] START QUEUE
	046012	004737 	031362'			JSR	PC,.STTNQ
  14678	046016				30$:
  14679	046016	013704 	001330'			MOV	TO10Q+2,R4	;;; ENTER QUEUE
  14680	046022					CALL	..NADD		;;; ADD NODE
	046022	004737 	044176'			JSR	PC,..NADD
  14681	046026					.ENB6			;;; ENABLE INTERRUPTS
	046026	012637 	177776 			MOV	(SP)+,@#PS
  14682	046032	012604 				MOV	(SP)+,R4	;;; RESTORE REGISTERS
  14683	046034	012601 				MOV	(SP)+,R1
  14684	046036	012600 				MOV	(SP)+,R0
  14685	046040	012605 				MOV	(SP)+,R5
  14686	046042	000241 				CLC			; CLEAR C
  14687	046044				40$:				; [4.2208]
  14688	046044					RETURN			; RETURN TO CALLER
	046044	000207 				RTS	PC
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 276
SCOMM MODULE -- ..STQ	(STORE IN TO 10 QUEUE)

  14690						.SBTTL	SCOMM MODULE -- ..STQ	(STORE IN TO 10 QUEUE)
  14691
  14692					;+
  14693					; ..STQ -- SUBROUTINE TO STORE IN THE TO 10 QUEUE AND GET ANOTHER BUFFER
  14694					;	   FOR TRANSFERRING TO THE TO 10 QUEUE.
  14695					;
  14696					; INIAN -- SPECIAL ENTRY POINT FOR INITIALIZATION, IT SHOULD BE
  14697					;	   USED BY NO OTHERS!!
  14698					;
  14699					; CALLING SEQUENCE:
  14700					;
  14701					;	.CP?? MUST BE SETUP TO THE LAST QUEUE ENTRY
  14702					;	CALL	..STQ
  14703					;
  14704					; EXIT CONDITIONS:
  14705					;
  14706					;	.CP?? IS SET UP TO POINT TO A NEW QUEUE
  14707					;-
  14708
  14709						.ENABL	LSB
  14710
  14711	046046				..STQ::
  14712	046046	010046 				MOV	R0,-(SP)	; SAVE REGISTERS
  14713	046050	010146 				MOV	R1,-(SP)
  14714	046052	010446 				MOV	R4,-(SP)
  14715	046054	013704 	001262'			MOV	.CRHD,R4	; FIND THE HEADER OF THE CURRENT BUFFER
  14716	046060	013764 	001250'	000006 		MOV	.CRQZ,6(R4)	; SET THE CURRENT QUEUE SIZE IN THE BUFFER
  14717									; AND CHECK TO SEE IF ANYTHING THERE
  14718	046066	001447 				BEQ	40$		; NO -- DON'T ATTEMPT TO SEND TO 10
  14719	046070	012701 	001326'			MOV	#TO10Q,R1	; FIND THE LISTHEAD OF THE TO 10 QUEUE
  14720	046074	021101 				CMP	@R1,R1		; IS THERE AN ENTRY?
  14721	046076	001003 				BNE	10$		; ALREADY STARTED?
  14722	046100					CALL	.STTNQ		; [4.1.1121] START THE QUEUE UP
	046100	004737 	031362'			JSR	PC,.STTNQ
  14723	046104	000404 				BR	20$
  14724						;
  14725	046106				10$:
  14726	046106	022737 	000014 	001256'		CMP	#14,.CRSZ
  14727	046114	101434 				BLOS	40$		; YES -- DON'T QUEUE IT YET
  14728	046116				20$:
  14729	046116	010401 				MOV	R4,R1		; SET UP THE NODE ADDRESS
  14730	046120	013704 	001330'			MOV	TO10Q+2,R4	; SET UP LISTHEAD ADDRESS
  14731	046124					CALL	..NADD		; ADD THE NODE TO THE LIST
	046124	004737 	044176'			JSR	PC,..NADD
  14732	046130				INIAN::
  14733	046130	012701 	000060 			MOV	#E.OPSZ,R1	 ; [4.1.1137] SET UP THE BUFFER SIZE
  14734	046134					CALL	..ALCB		; GET A NODE FROM THE POOL
	046134	004737 	044416'			JSR	PC,..ALCB
  14735	046140	103003 				BCC	30$		; [4.1.1137] ALL OK IF CC-C IS CLEAR
  14736	046142					.CRASH	B03		; ALLOCATION FAILED -- CRASH!
	046142	000004 				IOT
	046144	   102 	   060 	   063 		.ASCIZ	/B03/
	046147	   000
  14737						;
  14738	046150				30$:
  14739	046150	010037 	001262'			MOV	R0,.CRHD	; SET UP THE POINTER TO THE HEAD OF THE BUFFER
  14740	046154	005037 	001254'			CLR	.CPDV		; SET NO DEVICE IN USE
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 276-1
SCOMM MODULE -- ..STQ	(STORE IN TO 10 QUEUE)

  14741	046160	022020 				CMP	(R0)+,(R0)+	; MOVE OVER THE FORWARD/BACKWARD POINTERS
  14742	046162	010120 				MOV	R1,(R0)+	; SET UB NODE SIZE
  14743	046164	005020 				CLR	(R0)+		; SET UP CURRENT SIZE OF Q
  14744	046166	010037 	001260'			MOV	R0,.CRPB	; SET THE CURRENT BUFFER POINTER
  14745	046172	162701 	000012 			SUB	#10.,R1		; DON'T WANT TO INCLUDE HEADER
  14746	046176	010137 	001256'			MOV	R1,.CRSZ	; SET UP SIZE OF QUEUE (MAX)
  14747	046202	005037 	001250'			CLR	.CRQZ		; CLEAR CURRENT QUEUE SIZE
  14748	046206				40$:
  14749	046206	012604 				MOV	(SP)+,R4	; RESTORE REGISTSERS
  14750	046210	012601 				MOV	(SP)+,R1
  14751	046212	012600 				MOV	(SP)+,R0
  14752	046214					RETURN			; RETURN TO CALLER
	046214	000207 				RTS	PC
  14753
  14754						.DSABL	LSB
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 277
SCOMM MODULE -- ..WFED	(WAIT FOR EXAMINE/DEPOSIT)

  14756						.SBTTL	SCOMM MODULE -- ..WFED	(WAIT FOR EXAMINE/DEPOSIT)
  14757
  14758					;+
  14759					; ..WFED -- WAITS FOR EXAMINE/DEPOSIT TRANSFERS AND CHECKS TO SEE
  14760					;	  THAT E-BOX HAS NOT STOPPED OR ENCOUNTERED AN EBUS PARITY ERROR.
  14761					;
  14762					;	ERRORS DETECTED HERE ARE:
  14763					;
  14764					;	1. DEX -- DEPOSIT/EXAMINE TIMED OUT
  14765					;	2. EPE -- EBUS PARITY ERROR
  14766					;	3. CES -- CLOCK ERROR STOP
  14767					;	4. TSP -- KL IS HALTED (STOPPED)
  14768					;
  14769					;	IN THE CASE OF AN EBUS PARITY ERROR OR DEX ERROR, THE TRANSFER IS
  14770					;	RETRIED ONCE.  IF THE RETRY SUCCEEDS, A SNAPSHOT OF THE DTE-20 ON
  14771					;	BOTH THE INITIAL FAILURE AND SUCCESSFUL RETRY ARE LOGGED TO THE
  14772					;	KL.  IF THE RETRY FAILS, THE KL IS RELOADED.  MULTIPLE ERRORS DURING
  14773					;	ANY RETRY ATTEMPT ARE CONSIDERED FATAL.
  14774					;
  14775					;	THE RETRY COUNT/FLAG BYTES ".EBRTY" AND ".DXRTY" ARE CONTIGUOUS AND
  14776					;	ON A WORD BOUNDARY IN LOW CORE.  THE SIGNIFICANCE OF THE CONTENT OF
  14777					;	THESE BYTES IS AS FOLLOWS:
  14778					;
  14779					;		+1 -- NO ERROR
  14780					;		 0 -- RETRY SUCCEEDED, ERROR LOGGING REQUESTED
  14781					;		      (EBUS PARITY ERROR ONLY, DEX ERRORS ARE ALWAYS FATAL)
  14782					;		-1 -- EBUS PARITY ERROR RETRY FAILED OR DEX ERROR, KL RELOAD REQUESTED
  14783					;
  14784					;	THE ACTUAL ERROR LOGGING IS DONE BY THE TERMINAL TASK ON THE SOFTWARE
  14785					;	CLOCK.  A MAXIMUM OF TWO SNAPSHOTS IS ALLOWED IN THE DTE-20 ERROR
  14786					;	LOGGING QUEUE, AS A CONSIDERATION FOR THE FREE-CORE RESOURCE.
  14787					;
  14788					; CALLING SEQUENCE:
  14789					;
  14790					;	CALL	..WFED
  14791					;
  14792					; ENTRY CONDITIONS:
  14793					;
  14794					;	R0 -- ADDRESS OF DTE20
  14795					;	IF ".NOERR" .NE. 0 -- ONLY CHECK TIMEOUT, ELSE CHECK ALL ERRORS
  14796					;
  14797					; EXIT CONDITIONS:
  14798					;
  14799					; SUCCESS:
  14800					;
  14801					;	NO REGISTERS ALTERED CC-C CLEAR
  14802					;
  14803					; NORMAL ERROR CONDITIONS:
  14804					;
  14805					;	CC-C SET -- E-BOX STOPPED (PROTOCOL STOPPED - KS.CES SET IN .KLITK)
  14806					;	CC-C SET -- DEP/EX FAILURE (PROTOCOL STOPPED - KS.DEX SET IN .KLITK)
  14807					;
  14808					;	CC-C CLEAR -- E-BUS PARITY ERROR (PROTOCOL UNCHANGED -- KS.EPE SET IN .KLITK)
  14809					;	CC-C CLEAR -- TEN STOPPED (PROTOCOL STOPPED -- KS.TSP SET IN .KLITK)
  14810					;
  14811					; SPECIAL ERROR CONDITIONS:
  14812					;
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 277-1
SCOMM MODULE -- ..WFED	(WAIT FOR EXAMINE/DEPOSIT)

  14813					;	TIMEOUT AND ".NOERR" .NE. 0 - CC-C SET
  14814					;
  14815					; NOTE:
  14816					;
  14817					;	**** THIS ROUTINE MUST BE ENTERED AT PRI6 ****
  14818					;-
  14819
  14820	046216				..WFED::
  14821	046216	010146 				MOV	R1,-(SP)	;;; [4.2217] SAVE R1
  14822	046220	010246 				MOV	R2,-(SP)	;;; [4.2217] AND R2
  14823	046222	010546 				MOV	R5,-(SP)	;;; [5.1008] AND R5
  14824	046224	012705 	001364'			MOV	#.DXRTY,R5	;;; [5.1008] FOR EXIT CODE
  14825	046230	012715 	000401 			MOV	#401,(R5)	;;; [5.1008] INIT THE RETRY FLAGS
  14826					;
  14827					; REGISTER USAGE:
  14828					;
  14829					;	R0 -- DTE-20 BASE ADDRESS
  14830					;	R1 -- POINTS TO FIRST FREE WORD IN ERROR LOGGING PACKET
  14831					;	R2 -- POINTER TO DTE-20 "TENAD1" REGISTER ON RETRY
  14832					;	R5 -- POINTER TO ERROR FLAGS BYTES
  14833					;
  14834	046234				10$:
  14835	046234	012737 	003000 	001344'		MOV	#3000,DEXST	;;; [4.2217] SET UP TIMEOUT COUNT
  14836					;
  14837					; TIMEOUT A DEPOSIT OR EXAMINE
  14838					;
  14839	046242				15$:
  14840	046242	032760 	000004 	000034 		BIT	#DEXDON,STATD(R0) ;;; [4.2217] TRANSFER COMPLETED??
  14841	046250	001030 				BNE	25$		;;; [4.2217] YES -- GO ON
  14842	046252	005337 	001344'			DEC	DEXST		;;; [4.2217] NO -- TIMED OUT??
  14843	046256	001371 				BNE	15$		;;; [4.2217] NO -- GO ON
  14844					;
  14845					; HERE TO CHECK TIMEOUT ERRORS
  14846					;
  14847	046260	005060 	000030 			CLR	DAG1(R0)	;;; [4.2217] YES -- CLEAR FLAGS
  14848	046264	105737 	001122'			TSTB	.NOERR		;;; [4.2217] IGNORE ERRORS??
  14849	046270	001110 				BNE	60$		;;; [4.2217] YES -- FLAG TIMEOUT AND EXIT
  14850	046272	032760 	004000 	000030 		BIT	#DS04,DAG1(R0)	;;; [4.2217] NO -- CLOCK ERROR STOP??
  14851	046300	001404 				BEQ	20$		;;; [4.2217] NO -- GO ON
  14852	046302	052737 	000002 	001126'		BIS	#KS.CES,.KLITK	;;; [4.2217] YES -- FLAG IT
  14853	046310	000472 				BR	55$		;;; [4.2217] AND EXIT
  14854						;
  14855	046312				20$:
  14856	046312	052737 	000010 	001126'		BIS	#KS.DEX,.KLITK	;;; [4.2217] SET DEPOSIT/EXAMINE FAILURE
  14857	046320	105437 	001364'			NEGB	.DXRTY		;;; [4.1.1065] DEX ERRORS ARE ALWAYS FATAL
  14858	046324					CALL	DTESNP		;;; [5.1008] SNAPSHOT THE DTE-20
	046324	004737 	046534'			JSR	PC,DTESNP
  14859	046330	000462 				BR	55$		;;; [5.1008] AND CRASH HIM
  14860						;
  14861					;
  14862					; HERE TO CHECK NON-TIMEOUT ERRORS
  14863					;
  14864	046332				25$:
  14865	046332	105737 	001122'			TSTB	.NOERR		;;; [4.2217] IGNORE ERRORS??
  14866	046336	001066 				BNE	65$		;;; [4.2217] YES -- JUST EXIT
  14867	046340	032760 	000020 	000034 		BIT	#BPARER,STATD(R0) ;;; [4.2217] EBUS PARITY ERROR??
  14868	046346	001422 				BEQ	40$		;;; [5.1008] NO -- SEE ABOUT OTHER ERRORS
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 277-2
SCOMM MODULE -- ..WFED	(WAIT FOR EXAMINE/DEPOSIT)

  14869					;
  14870					; HERE TO SNAPSHOT AN EBUS PARITY ERROR
  14871					;
  14872	046350				30$:
  14873	046350	052737 	000004 	001126'		BIS	#KS.EPE,.KLITK	;;; [4.2217] FLAG THE EBUS PARITY ERROR
  14874	046356					CALL	DTESNP		;;; [4.2217] GET THE ADDRESS AND DATA
	046356	004737 	046534'			JSR	PC,DTESNP
  14875	046362	103445 				BCS	55$		;;; [5.1008] ERROR IF CC-C IS SET
  14876	046364	105337 	001365'			DECB	.EBRTY		;;; [5.1008] IS THIS A RETRY??
  14877	046370	100442 				BMI	55$		;;; [5.1008] YES -- ONLY ONE ALLOWED
  14878	046372	105737 	001364'			TSTB	.DXRTY		;;; [5.1008] NO -- MULTIPLE ERRORS??
  14879	046376	002437 				BLT	55$		;;; [5.1008] YES -- CRASH HIM
  14880					;
  14881					; HERE TO RETRY A TRANSFER
  14882					;
  14883	046400				35$:
  14884	046400	012760 	000100 	000032 		MOV	#DRESET,DAG2(R0) ;;; [4.2217] NO -- RESET THE DTE-20
  14885	046406	011222 				MOV	(R2),(R2)+	;;; [4.2217] AND RESTART THE TRANSFER
  14886	046410	011212 				MOV	(R2),(R2)	;;; [4.2217] SO
  14887	046412	000710 				BR	10$		;;; [4.2217] TIME THE RETRY OUT
  14888						;
  14889					;
  14890					; HERE TO CHECK OTHER NON-TIMEOUT ERRORS
  14891					;
  14892	046414				40$:
  14893	046414	005060 	000030 			CLR	DAG1(R0)	;;; [4.2217] RESET FLAGS
  14894	046420	105737 	001123'			TSTB	.NOHLT		;;; [4.2217] HALTS ALLOWED??
  14895	046424	001010 				BNE	45$		;;; [4.2217] YES -- JUST EXIT
  14896	046426	032760 	001000 	000030 		BIT	#DS06,DAG1(R0)	;;; [4.2217] NO -- IS THE KL HALTED??
  14897	046434	001404 				BEQ	45$		;;; [4.2217] NO -- JUST EXIT
  14898	046436	052737 	000001 	001126'		BIS	#KS.TSP,.KLITK	;;; [4.2217] YES -- FLAG THE ERROR
  14899	046444	000414 				BR	55$		;;; [5.1008] AND FLAG THE RELOAD
  14900						;
  14901					;
  14902					; HERE FOR NORMAL EXIT
  14903					;
  14904	046446				45$:
  14905	046446	105737 	001365'			TSTB	.EBRTY		;;; [5.1008] DID WE RECOVER AN EBUS PARITY ERROR??
  14906	046452	001020 				BNE	65$		;;; [5.1008] NO -- JUST EXIT
  14907					;
  14908					; HERE TO SNAPSHOT A RECOVERED EBUS PARITY ERROR
  14909					;
  14910	046454				50$:
  14911	046454					CALL	DTESNP		;;; [4.2217] YES -- SAVE RECOVERED DATA
	046454	004737 	046534'			JSR	PC,DTESNP
  14912	046460	042737 	000004 	001126'		BIC	#KS.EPE,.KLITK	;;; [5.1008] RESET TKTN FLAGS
  14913	046466	042765 	000200 	177776 		BIC	#DV.URE,-2(R5)	;;; [5.1008] RESET UNRECOVERABLE FLAG
  14914	046474	000407 				BR	65$		;;; [5.1008] TAKE NORMAL EXIT
  14915						;
  14916					;
  14917					; HERE ON A FATAL ERROR
  14918					;
  14919	046476				55$:
  14920	046476	105237 	001122'			INCB	.NOERR		;;; [4.2217] RECOGNIZE THE ERROR
  14921	046502					CALL	..DTSP		;;; [4.2217] STOP ALL PROTOCOLS
	046502	004737 	046770'			JSR	PC,..DTSP
  14922	046506	105237 	001124'			INCB	.TKTN		;;; [4.2217] REQUEST NOTIFICATION
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 277-3
SCOMM MODULE -- ..WFED	(WAIT FOR EXAMINE/DEPOSIT)

  14923					;
  14924					; ERROR EXIT
  14925					;
  14926	046512				60$:
  14927	046512	000261 				SEC			;;; [4.2217] SET ERROR RETURN
  14928					;
  14929					; NORMAL EXIT
  14930					;
  14931	046514				65$:
  14932	046514	113725 	001364'			MOVB	.DXRTY,(R5)+	;;; [5.1008] SET THE RETRY FLAGS
  14933	046520	113715 	001365'			MOVB	.EBRTY,(R5)	;;; [5.1008] SO
  14934	046524	012605 				MOV	(SP)+,R5	;;; [5.1008] RESTORE R5
  14935	046526	012602 				MOV	(SP)+,R2	;;; [4.2217] RESTORE REGISTERS
  14936	046530	012601 				MOV	(SP)+,R1	;;; [4.2217] SO
  14937	046532					RETURN			;;; [4.2217] TO CALLER
	046532	000207 				RTS	PC
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 278
SCOMM MODULE -- ..WFED	(WAIT FOR EXAMINE/DEPOSIT)

  14939					;
  14940					; INTERNAL SUBROUTINE TO SNAPSHOT THE DTE-20
  14941					;
  14942					;	THIS ROUTINE WILL INITIALIZE AND APPEND TO A DTE-20 ERROR LOGGING
  14943					;	PACKET.  AFTER THE FIRST INVOCATION FOR EACH ERROR, THIS ROUTINE
  14944					;	RETURNS:
  14945					;
  14946					;	R1 -- POINTS TO FIRST FREE WORD IN RETRY SNAPSHOT
  14947					;	R2 -- POINTS TO "TENAD1" REGISTER IN THE DTE-20
  14948					;	R5 -- POINTS TO FLAGS WORD IN ERROR LOGGING PACKET
  14949					;
  14950
  14951	046534				DTESNP:
  14952	046534	010046 				MOV	R0,-(SP)	;;; [4.2217] SAVE THE DTE-20 POINTER
  14953	046536	005737 	001012'			TST	.COMEF+2	;;; [4.1.1105] IS PRIMARY PROTOCOL RUNNING??
  14954	046542	100045 				BPL	50$		;;; [4.1.1105] NO -- JUST EXIT
  14955	046544	105737 	001365'			TSTB	.EBRTY		;;; [5.1008] YES -- IS THIS AN EBUS PARITY ERROR RETRY??
  14956	046550	001436 				BEQ	30$		;;; [5.1008] YES -- GO ON
  14957	046552	023727 	001370'	000002 		CMP	.EBPEC,#2	;;; [5.1008] NO -- IS THE QUEUE FULL??
  14958	046560	001436 				BEQ	50$		;;; [5.1008] YES -- NO MORE ALLOWED
  14959	046562	005237 	001370'			INC	.EBPEC		;;; [5.1008] NO -- COUNT THIS NODE
  14960	046566	012701 	000112 			MOV	#112,R1		;;; [4.2217] NO -- SET UP BUFFER SIZE
  14961	046572					CALL	..ALCB		;;; [4.2217] ALLOCATE A BLOCK
	046572	004737 	044416'			JSR	PC,..ALCB
  14962	046576	103427 				BCS	50$		;;; [4.2217] ERROR IF CC-C IS SET
  14963	046600	010046 				MOV	R0,-(SP)	;;; [5.1008] SAVE NODE POINTER
  14964	046602	012700 	001366'			MOV	#.EBPEQ,R0	;;; [5.1008] MOVE THE LISTHEAD POINTER TO R0
  14965	046606				10$:
  14966	046606	011002 				MOV	(R0),R2		;;; [5.1008] FIND THE END OF THE LIST
  14967	046610	001402 				BEQ	20$		;;; [5.1008] FOUND IT -- GO ON
  14968	046612	010200 				MOV	R2,R0		;;; [5.1008] NOT YET -- KEEP GOING
  14969	046614	000774 				BR	10$		;;; [5.1008] TRY AGAIN
  14970						;
  14971	046616				20$:
  14972	046616	011610 				MOV	(SP),(R0)	;;; [5.1008] SET THE NODE IN THE LIST
  14973	046620	012600 				MOV	(SP)+,R0	;;; [5.1008] RESTORE NODE POINTER
  14974	046622	005020 				CLR	(R0)+		;;; [5.1008] CLEAR AND GET OVER THE LINKAGE
  14975	046624	010120 				MOV	R1,(R0)+	;;; [4.2217] SET THE NODE SIZE
  14976	046626	012720 	000106 			MOV	#106,(R0)+	;;; [5.1008] SET THE TRANSFER SIZE
  14977	046632	012720 	000300 			MOV	#DV.LOG!DV.URE,(R0)+ ;;; [5.1008] SET STANDARD STATUS
  14978	046636	010005 				MOV	R0,R5		;;; [5.1008] COPY FLAG POINTER TO R5
  14979	046640	005020 				CLR	(R0)+		;;; [5.1008] INIT AND GET OVER THE FLAGS
  14980	046642	010001 				MOV	R0,R1		;;; [4.2217] BUFFER POINTER TO R1
  14981	046644	011600 				MOV	(SP),R0		;;; [4.2217] RESTORE DTE-20 POINTER
  14982	046646				30$:
  14983	046646	012702 	000020 			MOV	#20,R2		;;; [4.2217] INIT LOOP COUNTER
  14984	046652				40$:
  14985	046652	012021 				MOV	(R0)+,(R1)+	;;; [4.2217] SNAPSHOT THE DTE-20
  14986	046654	077202 				SOB	R2,40$		;;; [4.2217] SO
  14987	046656				50$:
  14988	046656	011602 				MOV	(SP),R2		;;; [4.2217] GET DTE-20 POINTER
  14989	046660	062702 	000010 			ADD	#TNAD1,R2	;;; [4.2217] POINT TO THE ADDRESS WORDS
  14990	046664	012600 				MOV	(SP)+,R0	;;; [4.2217] RESTORE R0
  14991	046666					RETURN			;;; [4.2217] TO CALLER
	046666	000207 				RTS	PC
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 279
SCOMM MODULE -- ..SWED	(START AND WAIT FOR EXAMINE/DEPOSIT)

  14993						.SBTTL	SCOMM MODULE -- ..SWED	(START AND WAIT FOR EXAMINE/DEPOSIT)
  14994
  14995					;+
  14996					; ..SWED -- STARTS A DEPOSIT/EXAMINE SEQUENCE AND WAITS FOR ITS COMPLETION.
  14997					;
  14998					;	NOTE: **** THIS ROUTINE MUST BE ENTERED AT PRI6 ****
  14999					;
  15000					; CALLING SEQUENCE:
  15001					;
  15002					;	R0 -- ADDRESS OF DTE-20
  15003					;	R1 -- HIGH ORDER EXAMINE/DEPOSIT ADDRESS WORD (FOR TENAD1)
  15004					;	R2 -- LOW ORDER EXAMINE/DEPOSIT ADDRESS WORD (FOR TENAD2)
  15005					;	R3 -- ADDRESS TO TRANSFER 3 WORD BLOCK TO OR FROM
  15006					;
  15007					;	CALL	..SWED
  15008					;
  15009					; EXIT CONDITIONS:
  15010					;
  15011					;	SUCCESS -- NO REGISTERS ALTERED, CC-C CLEAR
  15012					;
  15013					;	FAILURE -- NO REGISTERS ALTERED, CC-C SET
  15014					;-
  15015
  15016	046670				..SWED::
  15017	046670	010346 				MOV	R3,-(SP)	;;; SAVE REGISTERS
  15018	046672	032701 	010000 			BIT	#DEP,R1		;;; CHECK FOR DEPOSIT
  15019	046676	001016 				BNE	10$		;;; YES -- GO TO DEPOSIT PART OF SUBROUTINE
  15020					;
  15021					;	HERE TO START AN EXAMINE
  15022					;
  15023	046700	010160 	000010 			MOV	R1,TNAD1(R0)	;;; NO -- SET UP ADDRESS OF TRANSFER IN DTE
  15024	046704	010260 	000012 			MOV	R2,TNAD2(R0)	;;; START TRANSFER
  15025	046710					CALL	..WFED		;;; WAIT FOR EXAMINE/DEPOSIT
	046710	004737 	046216'			JSR	PC,..WFED
  15026	046714	103423 				BCS	20$		;;; COMPLAIN ABOUT ERRORS
  15027	046716					MTPS	DXWD3(R0),(R3)+	;;; STORE THE WORD TRANSFERED
	046716	016023 	000002 			MOV	DXWD3(R0),(R3)+
  15028	046722					MTPS	DXWD2(R0),(R3)+
	046722	016023 	000004 			MOV	DXWD2(R0),(R3)+
  15029	046726					MTPS	DXWD1(R0),(R3)+
	046726	016023 	000006 			MOV	DXWD1(R0),(R3)+
  15030	046732	000414 				BR	20$		;;; ALL DONE.
  15031						;
  15032					;
  15033					;	HERE TO START A DEPOSIT
  15034					;
  15035	046734				10$:
  15036	046734					MFPS	(R3)+,DXWD3(R0) ;;; TRANSFER TO 10
	046734	012360 	000002 			MOV	(R3)+,DXWD3(R0)
  15037	046740					MFPS	(R3)+,DXWD2(R0) ;;; SET UP WORD IN DTE
	046740	012360 	000004 			MOV	(R3)+,DXWD2(R0)
  15038	046744					MFPS	(R3)+,DXWD1(R0)	;;; SO
	046744	012360 	000006 			MOV	(R3)+,DXWD1(R0)
  15039	046750	010160 	000010 			MOV	R1,TNAD1(R0)	;;; SET HIGH ORDER ADDRESS
  15040	046754	010260 	000012 			MOV	R2,TNAD2(R0)	;;; START THE TRANSFER
  15041	046760					CALL	..WFED		;;; WAIT FOR EXAMINE/DEPOSIT
	046760	004737 	046216'			JSR	PC,..WFED
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 279-1
SCOMM MODULE -- ..SWED	(START AND WAIT FOR EXAMINE/DEPOSIT)

  15042	046764				20$:
  15043	046764	012603 				MOV	(SP)+,R3	;;; RESTORE R3
  15044	046766					RETURN			;;; RETURN TO CALLER
	046766	000207 				RTS	PC
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 280
SCOMM MODULE -- ..DTSP	(STOP DTE PROTOCOLS)

  15046						.SBTTL	SCOMM MODULE -- ..DTSP	(STOP DTE PROTOCOLS)
  15047
  15048					;+
  15049					; ..DTSP -- SUBROUTINE TO TURN OFF PRIMARY AND SECONDARY PROTOCOLS.
  15050					;	    THIS REQUIRES TURNING OFF THE DTE INTERRUPT.
  15051					;
  15052					; CALLING SEQUENCE:
  15053					;
  15054					;	CALL	..DTSP
  15055					;
  15056					; EXIT CONDITIONS:
  15057					;
  15058					;	SUCCESS IS ASSURED, CC-C IS CLEARED
  15059					;	NO REGISTERS ALTERED
  15060					;	THERE ARE NO ERRORS
  15061					;-
  15062
  15063						.ENABL	LSB
  15064
  15065	046770				..DTSP::
  15066	046770	012777 	000010 	132360 		MOV	#INTROF,@.PRSTA	;; TURN OFF DTE INTERRUPTS
  15067	046776	042737 	120000 	001012'		BIC	#EF.PR1!EF.PR2,.COMEF+2 ;; AND PROTOCOLS
  15068	047004	000421 				BR	30$		;; AND EXIT
  15069						;
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 281
SCOMM MODULE -- ..DTP2	(START SECONDARY PROTOCOL)

  15071						.SBTTL	SCOMM MODULE -- ..DTP2	(START SECONDARY PROTOCOL)
  15072
  15073					;+
  15074					; ..DTP2 -- SUBROUTINE TO TURN ON SECONDARY PROTOCOL.
  15075					;	    A CHECK IS MADE TO MAKE SURE PRIMARY PROTOCOL IS OFF.
  15076					;
  15077					; CALLING SEQUENCE:
  15078					;
  15079					;	CALL	..DTP2
  15080					;
  15081					; EXIT CONDITIONS:
  15082					;
  15083					;	SUCCESS IS ASSURED, CC-C IS CLEARED
  15084					;	NO REGISTERS ALTERED
  15085					;	THERE ARE NO ERRORS
  15086					;-
  15087
  15088	047006				..DTP2::
  15089	047006	005737 	001012'			TST	.COMEF+2	;; [4.1.1105] IF PRIMARY PROTOCOL IS ON,
  15090	047012	100002 				BPL	10$		;; [4.1.1105] THEN
  15091	047014					CALL	..DTSP		;; TURN IT OFF
	047014	004737 	046770'			JSR	PC,..DTSP
  15092	047020				10$:
  15093	047020	012777 	004010 	132330 		MOV	#INTROF!INT11S,@.PRSTA ;; DISABLE INTERRUPTS
  15094	047026	052737 	020000 	001012'		BIS	#EF.PR2,.COMEF+2 ;; LET THE BOOT PROTOCOL TASK GO
  15095	047034	000403 				BR	20$		;; AND RETURN
  15096						;
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 282
SCOMM MODULE -- ..DTP1 (START PRIMARY PROTOCOL)

  15098						.SBTTL	SCOMM MODULE -- ..DTP1 (START PRIMARY PROTOCOL)
  15099
  15100					;+
  15101					; ..DTP1 -- SUBROUTINE TO TURN ON PRIMARY PROTOCOL.
  15102					;
  15103					; CALLING SEQUENCE:
  15104					;
  15105					;	CALL	..DTP1
  15106					;
  15107					; EXIT CONDITIONS:
  15108					;
  15109					;	SUCCESS IS ASSURED , CC-C IS CLEARED
  15110					;	NO REGISTERS ALTERED
  15111					;	THERE ARE NO ERRORS
  15112					;-
  15113
  15114	047036				..DTP1::
  15115	047036	052737 	100000 	001012'		BIS	#EF.PR1,.COMEF+2 ;; ENABLE THE PRIMARY PROTOCOL TASK
  15116	047044				20$:
  15117	047044					CALL	..DSEV		;; DECLARE A SIGNIFICANT EVENT
	047044	004737 	044026'			JSR	PC,..DSEV
  15118	047050				30$:
  15119	047050	000241 				CLC			;; MAKE SURE CC-C
  15120	047052					RETURN			;; AND RETURN
	047052	000207 				RTS	PC
  15121
  15122						.DSABL	LSB
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 283
SCOMM MODULE -- ..VXFR	(VALADATE TRANSFER)

  15124						.SBTTL	SCOMM MODULE -- ..VXFR	(VALADATE TRANSFER)
  15125
  15126					;+
  15127					; ..VXFR -- ROUTINE TO VALIDATE A USER'S TRANSFER REQUEST
  15128					;
  15129					;	..VXFR CHECKS TO SEE IF A USER'S REQUEST TO TRANSFERINTO OR OUT
  15130					;	OF HIS SPACE IS LEGAL.  ..VXFR WILL CHECK TO SEE THAT TRANSFERS
  15131					;	ACROSS VIRTUAL BOUNDARIES ARE ALSO TRANSFERS IN CONTIGUOUS CORE.
  15132					;	THIS MEANS THAT AFTER VALIDATION A HANDLER TASK DOES NOT HAVE TO
  15133					;	WORRY ABOUT THE VALIDITY OF TRANSFERING A CONTIGUOUS BLOCK OF
  15134					;	CORE INTO THE USER'S AREA.  ..VXFR WILL ALSO RETURN TO THE CALLER
  15135					;	THE PHYSICAL 18 BIT ADDRESS OF THE USER'S BUFFER.  ..VXFR WILL NOT
  15136					;	LET THE USER TRANSFER INTO READ-ONLY SPACE IF THE DIRECTION
  15137					;	SPECIFIED BY THE HANDLER IS WRITE.
  15138					;
  15139					; CALLING SEQUENCE:
  15140					;
  15141					;	R1 -- REQUEST NODE ADDRESS
  15142					;	R2 -- STARTING ADDRESS (VIRTUAL)
  15143					;	R3 -- TRANSFER LENGTH
  15144					;
  15145					;	CALL	..VXFR
  15146					;
  15147					; EXIT CONDITIONS:
  15148					;
  15149					;	R4 -- HIGH ORDER ADDRESS (BITS 4,5)
  15150					;	R5 -- LOW ORDER ADDRESS
  15151					;
  15152					;	ERROR EXIT -- CC-C SET
  15153					;-
  15154
  15156	047054				..VXFR::
  15157	047054	010205 				MOV	R2,R5		; IF NOT KT11 THEN JUST RETURN CURRENT ADDRESS
  15158	047056	005004 				CLR	R4
  15159	047060					RETURN
	047060	000207 				RTS	PC
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 284
SCOMM MODULE -- ..BLXO	(BLOCK OUTPUT) ..BLXI  (BLOCK INPUT)

  15278						.SBTTL	SCOMM MODULE -- ..BLXO	(BLOCK OUTPUT) ..BLXI  (BLOCK INPUT)
  15279
  15280					;+
  15281					; ..BLXO -- ROUTINE TO PASS INFORMATION TO A USER'S PARTITION
  15282					;
  15283					;	..BLXO VALIDATES THE TRANSFER OF THE REQUEST TO TRANSFER
  15284					;	TO OR FROM A HANDLER TASK'S AREA.
  15285					;
  15286					; ..BLXI -- ROUTINE TO PASS INFORMATION FROM A TASK'S PARTITION
  15287					;
  15288					;	..BLXI VALIDATES THE TRANSFER OF THE REQUEST TO TRANSFER
  15289					;	TO A HANDLER TASK'S AREA.
  15290					;
  15291					; CALLING SEQUENCE:
  15292					;
  15293					;	R1 -- REQUEST NODE ADDRESS
  15294					;	R2 -- STARTING ADDRESS (VIRTUAL)
  15295					;	R3 -- TRANSFER LENGTH (BYTES)
  15296					;	R4 -- HANDLER VIRTUAL ADDRESS
  15297					;
  15298					;	CALL	..BLXO
  15299					;
  15300					;	-  OR --
  15301					;
  15302					;	CALL ..BLXI
  15303					;
  15304					; NOTE -- RESTRICTED TO 4K-64 (10) WORD TRANSFER'S
  15305					;-
  15306
  15307	047062				..BLXI::
  15308	047062	010446 				MOV	R4,-(SP)
  15309	047064	010546 				MOV	R5,-(SP)
  15310	047066	012705 	000001 			MOV	#1,R5		; SET DIRECTION OF TRANSFER TO IN
  15311	047072	000403 				BR	BLXCOM		; AND ENTER COMMON CODE
  15312						;
  15313	047074				..BLXO::
  15314	047074	010446 				MOV	R4,-(SP)	; SAVE THE REGISTERS
  15315	047076	010546 				MOV	R5,-(SP)
  15316	047100	005005 				CLR	R5		; INDICATE TRANSFER OUT
  15317	047102				BLXCOM:
  15318	047102	010546 				MOV	R5,-(SP)	; SAVE THE DIRECTION OF TRANSFER
  15319	047104					CALL	..VXFR		; VALADATE TRANSFER
	047104	004737 	047054'			JSR	PC,..VXFR
  15332	047110	010346 				MOV	R3,-(SP)	; SAVE R3
  15337	047112	016604 	000006 			MOV	6(SP),R4	; SET UP THE FROM ADDRESS
  15338	047116	005766 	000002 			TST	2(SP)
  15340	047122	001403 				BEQ	BLXPLP		; DIRECTION OK FOR OUTPUT --DO TRANSFER
  15347	047124	010546 				MOV	R5,-(SP)
  15348	047126	010405 				MOV	R4,R5
  15349	047130	012604 				MOV	(SP)+,R4
  15351	047132				BLXPLP:
  15352	047132	112425 				MOVB	(R4)+,(R5)+	; MOVE A BYTE
  15353	047134	077302 				SOB	R3,BLXPLP	; YES -- FINISHED?
  15354	047136	012603 				MOV	(SP)+,R3	; RESTORE R3
  15359									; CLEAR C BIT TO INDICATE LEGAL TRANSFER
  15360	047140	005726 				TST	(SP)+		; REMOVE THE DIRECTION WORD FROM THE STACK
  15361	047142				BLXRTN:
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 284-1
SCOMM MODULE -- ..BLXO	(BLOCK OUTPUT) ..BLXI  (BLOCK INPUT)

  15362	047142	012605 				MOV	(SP)+,R5	; RESTORE REGISTERS
  15363	047144	012604 				MOV	(SP)+,R4
  15364	047146					RETURN			; RETURN TO CALLER
	047146	000207 				RTS	PC
  15365					;
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 285
SCOMM MODULE -- ..VTOL	(MAP VIRTUAL TO LOGICAL BLOCK, EXTERNAL

  15375						.SBTTL	SCOMM MODULE -- ..VTOL	(MAP VIRTUAL TO LOGICAL BLOCK, EXTERNAL)
  15376
  15377					;+
  15378					;
  15379					;CALL:	JSR	PC,..VTOL	;CLOSED, RETURN IN-LINE
  15380					;
  15381					;IN:	R1 - POINTER TO REQUEST NODE, CONTAINING:
  15382					;	R.AT - ATL OF CALLING TASK
  15383					;	R.LU - LUN HAVING WINDOW IN LUT(N2)
  15384					;	R.FC - I/O FUNCTION CODE, VIRTUAL READ OR WRITE
  15385					;	R.PB+6,+10 - VIRTUAL BLOCK NUMBER TO MAP
  15386					;
  15387					;OUT:	C=0 - MAPPING SUCCESSFUL
  15388					;	R1 - POINTER TO REQUEST NODE, CONTAINING
  15389					;	R.FC - I/O FUNCTION CODE, LOGICAL READ OR WRITE
  15390					;	R.PB+6,+10 - LOGICAL BLOCK NUMBER MAPPED
  15391					;
  15392					;	C=1 MAPPING FAILURE
  15393					;
  15394					;NOTE:	THIS LIBRARY ROUTINE USES THE FOLLOWING
  15395					;	OTHER LIBRARY ROUTINES---
  15396					;
  15397					;	..VVLL - INTERNAL VIRTUAL TO LOGICAL FILE FUNCTION
  15398					;
  15399					;-
  15400
  15401	047150				..VTOL::
  15402	047150	010046 				MOV	R0,-(SP)	;SAVE WORKING REGISTERS
  15403	047152	010146 				MOV	R1,-(SP)
  15404	047154	010246 				MOV	R2,-(SP)
  15405	047156	010346 				MOV	R3,-(SP)
  15406	047160	010446 				MOV	R4,-(SP)
  15407
  15408					; GET WINDOW POINTER FROM LUT(N2) IN TASK HEADER
  15409
  15410	047162	010104 				MOV	R1,R4		; SAVE POINTER TO REQUEST NODE
  15411	047164	016402 	000006 			MOV	R.AT(R4),R2	; POINT TO ATL NODE
  15412	047170	116403 	000012 			MOVB	R.LU(R4),R3	; GET LUN
  15413	047174	006303 				ASL	R3
  15414	047176	006303 				ASL	R3
  15415	047200	066203 	000012 			ADD	A.HA(R2),R3	; !!!!!DOESN'T WORK IF MACY11 CONDITIONAL IS OFF
  15416	047204	016301 	000130 			MOV	H.LUT(R3),R1	; GET WINDOW POINTER FROM LUT
  15417	047210	001441 				BEQ	30$		; NO WINDOW, NO MAP....
  15418	047212	030127 	000001 			BIT	R1,#1		; SEE IF WINDOW POINTER IS ODD
  15419	047216	001036 				BNE	30$		; ECCCHH!
  15420
  15421					; SEE IF THIS IS A READ OR WRITE AND CHECK PERMISSIONS APPROPRIATELY.
  15422
  15423	047220	012746 	001000 			MOV	#IO.RLB,-(SP)	; SET UP FOR A READ
  15424	047224	026427 	000014 	010400 		CMP	R.FC(R4),#IO.RVB ; SEE IF IT IS A READ
  15425	047232	001405 				BEQ	10$		; YES
  15426	047234	012716 	000400 			MOV	#IO.WLB,(SP)	; NO, MUST BE A WRITE
  15427	047240	031127 	001000 			BIT	(R1),#WI.WRV	; SEE IF THE FILE IS WRITE ACCESSED
  15428	047244	001422 				BEQ	20$		; IF NOT, CAN'T WRITE IT
  15429
  15430					; NOW DO THE MAPPING ALREADY
  15431
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 285-1
SCOMM MODULE -- ..VTOL	(MAP VIRTUAL TO LOGICAL BLOCK, EXTERNAL

  15432	047246				10$:
  15433	047246	016400 	000026 			MOV	R.PB+2(R4),R0	; GET BYTE COUNT
  15434	047252	016402 	000032 			MOV	R.PB+6.(R4),R2	; HIGH ORDER VBN
  15435	047256	016403 	000034 			MOV	R.PB+8.(R4),R3	; LOW ORDER VBN
  15436	047262					CALL	..VVLL		; CALL THE MAPPER
	047262	004737 	047332'			JSR	PC,..VVLL
  15437	047266	103411 				BCS	20$		; NO SUCH LUCK
  15438	047270	005700 				TST	R0		; CHECK IF MAPPING IS COMPLETE
  15439	047272	001007 				BNE	20$		; NO
  15440
  15441					; SUCCESSFUL MAPPING - TURN THE NODE INTO A LOGICAL TRANSFER
  15442
  15443	047274	010264 	000032 			MOV	R2,R.PB+6.(R4)	; SET HIGH ORDER LBN
  15444	047300	010364 	000034 			MOV	R3,R.PB+8.(R4)	; SET LOW ORDER LBN
  15445	047304	012664 	000014 			MOV	(SP)+,R.FC(R4)	; SET FUNCTION CODE
  15446	047310	000402 				BR	40$
  15447						;
  15448	047312				20$:
  15449	047312	005726 				TST	(SP)+		; CLEAN THE STACK
  15450	047314				30$:
  15451	047314	000261 				SEC			; SET FAILURE
  15452	047316				40$:
  15453	047316	012604 				MOV	(SP)+,R4	; RESTORE REGISTERS
  15454	047320	012603 				MOV	(SP)+,R3
  15455	047322	012602 				MOV	(SP)+,R2
  15456	047324	012601 				MOV	(SP)+,R1
  15457	047326	012600 				MOV	(SP)+,R0
  15458	047330					RETURN
	047330	000207 				RTS	PC
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 286
SCOMM MODULE -- ..VVLL	(MAP VIRTUAL TO LOGICAL BLOCK, INTERNAL

  15460						.SBTTL	SCOMM MODULE -- ..VVLL	(MAP VIRTUAL TO LOGICAL BLOCK, INTERNAL)
  15461
  15462					;+
  15463					;
  15464					;CALL:	JSR	PC,..VVLL	;CLOSED, RETURN IN-LINE
  15465					;
  15466					;IN:	R0 - NUMBER OF BYTES IN TRANSFER
  15467					;	R1 - ADDRESS OF WINDOW
  15468					;	R2,R3 - VBN TO MAP
  15469					;
  15470					;OUT:	SUCCESS - C=0
  15471					;	R0 - NUMBER OF BLOCKS NOT MAPPED
  15472					;	R2,R3 - LOGICAL BLOCK NUMBER DESIRED
  15473					;
  15474					;	FAILURE - C=1
  15475					;	R0,R2,R3 - GARBAGED
  15476					;
  15477					;NOTE:	THIS ROUTINE MAKES NO EXTERNAL CALLS.
  15478					;	THIS ROUTINES IS USED BY---
  15479					;
  15480					;	..VTOL	EXTERNAL VIRTUAL TO LOGICAL MAPPER
  15481					;		WINDOW TURN FILE CONTROL PRIMITIVE
  15482					;		INDEX FILE FILE CONTROL UTILITY
  15483					;
  15484					;-
  15485
  15486	047332				..VVLL::
  15487	047332	010146 				MOV	R1,-(SP)	; SAVE WORKING REGISTERS
  15488	047334	010446 				MOV	R4,-(SP)
  15489	047336	010546 				MOV	R5,-(SP)
  15490	047340					.INH0			; INHIBIT TASK SWITCHING
	047340	013746 	177776 			MOV	@#PS,-(SP)
	047344	112737 	000140 	177776 		MOVB	#140,@#PS
  15491	047352	062700 	000777 			ADD	#511.,R0	;; ROUND UP BYTE COUNT TO NEXT BLOCK
  15492	047356	006000 				ROR	R0		;; RECOVER CARRY
  15493	047360	105000 				CLRB	R0		;; CLEAR FRACTIONAL PART
  15494	047362	000300 				SWAB	R0		;; AND CONVERT TO BLOCK COUNT
  15495
  15496					; GET STARTING VBN OF CURRENT WINDOW
  15497
  15498	047364	111104 				MOVB	(R1),R4		;; GET COUNT OF RETRIEVAL POINTERS
  15499	047366	001417 				BEQ	40$		;; EMPTY WINDOW
  15500	047370	062701 	000006 			ADD	#W.VBN,R1	;; POINT TO STARTING VBN IN WINDOW
  15501	047374	012105 				MOV	(R1)+,R5	;; GET HIGH ORDER VBN
  15502	047376	042705 	177400 			BIC	#177400,R5	;; MASK OFF HIGH BYTE
  15503	047402	160502 				SUB	R5,R2		;; SUBTRACT FROM DESIRED VBN
  15504	047404	162103 				SUB	(R1)+,R3	;; SUBTRACT LOW ORDER
  15505	047406	005602 				SBC	R2		;; AND THE CARRY
  15506	047410	002406 				BLT	40$		;; WINDOW IS PAST VBN - OUT
  15507
  15508					; NOW SCAN THE WINDOW FOR THE DESIRED VBN
  15509
  15510	047412				10$:
  15511	047412	161103 				SUB	(R1),R3		;; ACCUMULATE BLOCK COUNT
  15512	047414	005602 				SBC	R2
  15513	047416	103407 				BLO	20$		;; BRANCH IF WE GO BELOW ZERO
  15514	047420	062701 	000006 			ADD	#6,R1		;; SKIP OVER THIS RETRIEVAL POINTER
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 286-1
SCOMM MODULE -- ..VVLL	(MAP VIRTUAL TO LOGICAL BLOCK, INTERNAL

  15515	047424	077406 				SOB	R4,10$		;; AND LOOP FOR RETRIEVAL POINTERS
  15516	047426				40$:
  15517	047426					.ENB0			;; OUT OF POINTERS - VBN IS BEYOND WINDOW
	047426	004737 	044302'			JSR	PC,..ENB0
  15518	047432	000261 				SEC			; SET FAILURE
  15519	047434	000430 				BR	50$		; RETURN
  15520						;
  15521					;
  15522					; FOUND THE RIGHT RETRIEVAL POINTER - COMPUTE LBN
  15523					;
  15524	047436				20$:
  15525	047436	010305 				MOV	R3,R5		;; R5 = - (BLOCKS IN THIS EXTENT PAST VBN)
  15526									;; COMPUTE NUMBER OF CONTIGUOUS BLOCKS
  15527	047440	005405 				NEG	R5		;; STARTING AT DESIRED VBN
  15528	047442	062103 				ADD	(R1)+,R3	;; COMPUTE LBN OFFSET IN THIS EXTENT
  15529	047444	005502 				ADC	R2
  15530	047446	062102 				ADD	(R1)+,R2	;; GET HIGH ORDER LBN
  15531	047450	062103 				ADD	(R1)+,R3	;; AND LOW ORDER LBN
  15532	047452	005502 				ADC	R2
  15533	047454	160500 				SUB	R5,R0		;; SEE IF THE TRANSFER LIES WITHIN THIS EXTENT
  15534	047456	101413 				BLOS	25$		;; YES
  15535
  15536	047460	005304 				DEC	R4		;; SEE IF THERE IS ANOTHER POINTER
  15537	047462	001412 				BEQ	30$		;; NO
  15538	047464	020021 				CMP	R0,(R1)+	;; SEE IF REMAINDER OF TRANSFER LIES IN NEXT EXTENT
  15539	047466	101010 				BHI	30$		;; NO
  15540	047470	060305 				ADD	R3,R5		;; COMPUTE END LBN + 1
  15541	047472	010204 				MOV	R2,R4
  15542	047474	005504 				ADC	R4		;; COMPUTE HIGH ORDER
  15543	047476	020421 				CMP	R4,(R1)+	;; SEE IF NEXT EXTENT IS CONTIGUOUS WITH THIS ONE
  15544	047500	001003 				BNE	30$		;; NO
  15545	047502	020521 				CMP	R5,(R1)+	;; COMPARE LOW ORDER
  15546	047504	001001 				BNE	30$		;; NO
  15547
  15548	047506				25$:
  15549	047506	005000 				CLR	R0		;; TRANSFER IS COMPLETELY MAPPED
  15550	047510				30$:
  15551	047510					.ENB0			; ENABLE TASK SWITCHING
	047510	004737 	044302'			JSR	PC,..ENB0
  15552	047514	000241 				CLC			; SET SUCCESS
  15553	047516				50$:
  15554	047516	012605 				MOV	(SP)+,R5	; RESTORE REGISTES
  15555	047520	012604 				MOV	(SP)+,R4
  15556	047522	012601 				MOV	(SP)+,R1
  15557	047524					RETURN
	047524	000207 				RTS	PC
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 288
END

  15561						.SBTTL	END
  15562					;
  15563					;                             COPYRIGHT (C) 1975, 1978 BY
  15564					;                     DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
  15565					;
  15566					;       THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
  15567					;       ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
  15568					;       OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY OTHER COPIES THERE-
  15569					;       OF  MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
  15570					;       NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
  15571					;
  15572					;       THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT
  15573					;       NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
  15574					;       CORPORATION.
  15575					;
  15576					;       DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
  15577					;       SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
  15578					;
  15579		011320'				.END	INITLM
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 288-1
SYMBOL TABLE

ACKNOW  025610RG 	BC.XEN= 000034 G 	CNUPE = 000002   	CTRLZ   032246R  	DE.04 = 000374 G
ADRSAV  005554RG 	BC.XOF= 000020 G 	COMBSE  001230RG 	CTYPTR  002634RG 	DE.05 = 000373 G
AF.PP = 000200 G 	BC.XON= 000021 G 	COMTRP  011426R  	CTYSTS  002664RG 	DE.06 = 000372 G
ASXCMN  013760R  	BELADR  036164RG 	COPBUF  027312RG 	CURBF = 000006   	DE.07 = 000371 G
ASXDT   013634R  	BITTBL  043022RG 	CPUERR  020500R  	CYCLS = 000002   	DE.08 = 000370 G
ASXEXT  014150R  	BIT0  = 000001   	CRADR   002730RG 	C.AS  = 000002 G 	DE.09 = 000367 G
ASXE1   013610RG 	BIT1  = 000002   	CRBFLN= 000240 G 	C.AT  = 000000 G 	DE.10 = 000366 G
ASXE2   013624R  	BIT10 = 002000   	CRBUFF  005732RG 	C.FA  = 000012 G 	DE.11 = 000365 G
ASXLRF  013774R  	BIT11 = 004000   	CRBUFH  005730RG 	C.FM  = 000010 G 	DE.80 = 000260 G
ASXLRQ  014032R  	BIT12 = 010000   	CRCEVF  005702RG 	C.HALT= 000033 G 	DE.81 = 000257 G
ASXSCN  013622R  	BIT13 = 020000   	CREVFG  005700RG 	C.HCRT= 000015 G 	DE.90 = 000246 G
ASXTE   014442R  	BIT14 = 040000   	CREXP = 006176RG 	C.HEOF= 000032 G 	DE.91 = 000245 G
ASXWR0  013662R  	BIT15 = 100000   	CRHD  = ****** GX	C.HESC= 000033 G 	DE.92 = 000244 G
ASXWR1  013672R  	BIT2  = 000004   	CRHUNG  005704RG 	C.HFFD= 000014 G 	DE.93 = 000243 G
ASXWR2  013702R  	BIT3  = 000010   	CRJT  = 001000   	C.HLFD= 000012 G 	DE.94 = 000242 G
ASXWR3  013712R  	BIT4  = 000020   	CROBAR  001034RG 	C.HPAR= 000200 G 	DE.95 = 000241 G
ASXWR4  013722R  	BIT5  = 000040   	CRSIZE= 000010 G 	C.HSPC= 000040 G 	DE.96 = 000240 G
A.EF  = 000020 G 	BIT6  = 000100   	CRSTB   011606R  	C.HTAB= 000011 G 	DE.97 = 000237 G
A.FB  = 000015 G 	BIT7  = 000200   	CRSTBH  005710RG 	C.HVTB= 000013 G 	DE.98 = 000236 G
A.FM  = 000024 G 	BIT8  = 000400   	CRSTBK  005712RG 	C.HXOF= 000023 G 	DE.99 = 000235 G
A.HA  = 000012 G 	BIT9  = 001000   	CRSTK = ****** GX	C.HXON= 000021 G 	DFTBL   025302RG
A.PD  = 000006 G 	BLDPKT  042702R  	CRSTLN= 000016 G 	C.RS  = 000006 G 	DFTSZ = 000076
A.PF  = 000034 G 	BLKTT   005624RG 	CRSTS = 006200RG 	C.SD  = 000004 G 	DFUNC = 000200
A.RP  = 000010 G 	BLXCOM  047102R  	CRTBL   006174RG 	C.SZ  = 000014 G 	DF.DMG= 000004
A.SP  = 000004 G 	BLXPLP  047132R  	CRTHD = 006174RG 	C1    = 140010   	DF.DMN= 000007
A.SZ  = 000036 G 	BLXRTN  047142R  	CRTNXA  014670R  	C1DB  = 140110   	DF.DOR= 000001
A.TD  = 000016 G 	BPARER= 000020   	CRTNX1  014662R  	DAG1  = 000030   	DF.EHG= 000010
A.TS  = 000014 G 	BPTTRP  011674R  	CRTNX2  014670R  	DAG2  = 000032   	DF.EHM= 000011
BC.AKA= 000025 G 	BTPHD   016032RG 	CRTNX3  014672R  	DAG3  = 000036   	DF.EMG= 000005
BC.BTP= 000024 G 	BTPRO   016332R  	CRTY  = 002000   	DATE  = 000004   	DF.EMN= 000006
BC.BTW= 000035 G 	BTWCHR  026140RG 	CR$BO5= 042750RG 	DBLDON  031044R  	DF.KLR= 000012
BC.DEB= 000036 G 	BYCNT   002726RG 	CR$B03= 046144RG 	DBLEPP  030644R  	DF.KLW= 000013
BC.DES= 000010 G 	BYTESA  005556RG 	CR$CBR= 017750RG 	DBLEPX  030650R  	DF.KLX= 000014
BC.EDR= 000027 G 	CDBA  = 177164 G 	CR$DTB= 030306RG 	DBLHDR  030740R  	DF.OFF= 000002
BC.FNM= 000040 G 	CDCC  = 177162 G 	CR$DTD= 011662RG 	DBLPWR  030700R  	DF.ON = 000003
BC.FOD= 000013 G 	CDD   = 000020   	CR$DTF= 027772RG 	DBLRLD  030654R  	DF.PDP= 000016
BC.HAD= 000002 G 	CDDB  = 177166 G 	CR$ETE= 027704RG 	DBLXFR  030710R  	DF.PEX= 000015
BC.HDS= 000007 G 	CDRTPD  007672RG 	CR$FTA= 011564RG 	DBLXIT  031056R  	DHBUF = 000020
BC.HTD= 000012 G 	CDST  = 177160 G 	CR$IAS= 015042RG 	DCOMST= 000001   	DHCNT = 000200 G
BC.LDR= 000030 G 	CDTSK   007312RG 	CR$ILF= 025402RG 	DEAND1  026220R  	DHERLG  041106R
BC.LDV= 000031 G 	CESCHK  021540R  	CR$ILQ= 030762RG 	DEAND3  025640R  	DHISTQ  035570R
BC.LNC= 000004 G 	CHNPNT= 000001   	CR$LRF= 014026RG 	DEANOD  026654R  	DHSAV   037274R
BC.NDM= 000037 G 	CHTBL   032344R  	CR$MPE= 011726RG 	DEP   = 010000   	DHSTSV  002652RG
BC.NSA= 000032 G 	CHTBLN= 000013   	CR$PT1= 030400RG 	DEPOF   001234RG 	DHTBL   003046RG
BC.RDS= 000005 G 	CH.FOR= 000100 G 	CR$PT2= 030416RG 	DEX   = 000400   	DHTMP   002646RG
BC.RQD= 000001 G 	CH.LAB= 000001 G 	CR$PT3= 030726RG 	DEXCOM  013444R  	DH.FER= 020000 G
BC.RTD= 000011 G 	CH.NAT= 000020 G 	CR$PT4= 031032RG 	DEXDON= 000004   	DIAG1 = 174430
BC.SAK= 000017 G 	CH.NDC= 000010 G 	CR$RES= 011670RG 	DEXST   001344RG 	DIAG2 = 174432
BC.SDS= 000006 G 	CH.OFF= 000200 G 	CR$TBT= 011676RG 	DEXTM1  001352RG 	DIAG3 = 174436
BC.SKP= 000033 G 	CH.UNL= 000040 G 	CR$TET= 027666RG 	DEXTM2  001350RG 	DIKL10= 000010
BC.SLA= 000023 G 	CKDLEN  040512R  	CR$T04= 011640RG 	DEXTM3  001346RG 	DIRDPT  013216R
BC.SNA= 000014 G 	CLRDEB  026772RG 	CR$UIE= 030640RG 	DEXWD1= 174406   	DIRMAX= 000102
BC.SPT= 000026 G 	CMEDP   021116R  	CSDONE  014612R  	DEXWD2= 174404   	DIROK   013212R
BC.STR= 000003 G 	CMNABO  011526RG 	CS.EXP= 177670   	DEXWD3= 174402   	DIV216  044036RG
BC.STS= 000022 G 	CMNABT  013342R  	CTLO  = 000040   	DE.01 = 000377 G 	DLCNT = 000005 G
BC.TDU= 000015 G 	CMSG    012142R  	CTRLC   032236R  	DE.02 = 000376 G 	DLECNT= 000004 G
BC.THU= 000016 G 	CNT     002724RG 	CTRLU   032242R  	DE.03 = 000375 G 	DLETBL  003006RG
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 288-2
SYMBOL TABLE

DLHUPX  040302R  	DTEFLG= 000444   	D.CLPT= 000005 G 	E.DTE = 000001 G 	F.LBN   000026
DLTBL   002776RG 	DTEF11= 000450   	D.CRJP= 000203 G 	E.DV  = 000006 G 	F.LGTH  000052
DLTMP   002650RG 	DTEHD   024652RG 	D.FA  = 000004 G 	E.FCRI= 000073 G 	F.LINK  000000
DLYCNT= 174400   	DTEMSK  001266RG 	D.FEPD= 000010 G 	E.FCTC= 000077 G 	F.NACS  000036
DL.CAR= 010000 G 	DTEMTD= 000455   	D.FM  = 000002 G 	E.FFCP= 000072 G 	F.NLCK  000037
DL.CTS= 020000 G 	DTEMTI= 000456   	D.SZ  = 000006 G 	E.FN  = 000004 G 	F.NWAC  000040
DL.DEN= 000040 G 	DTENM = 000000   	D1011 = 000040   	E.FP  = 000000 G 	F.RVN   000012
DL.DSC= 100000 G 	DTESNP  046534R  	EBSEL = 000100   	E.FPFR= 000074 G 	F.SCHA  000021
DL.DTR= 000002 G 	DTESP   025132RG 	EBUSPC= 000020   	E.FPR1= 000100 G 	F.SIZE  000032
DL.FER= 020000 G 	DTETPD  007572RG 	EBUSPS= 000004   	E.FPR2= 000076 G 	F.STAT  000040
DL.RAC= 004000 G 	DTETSK  007112RG 	ECHOB   035004R  	E.FRKP= 000075 G 	F.STD   000004
DL.RDE= 000001 G 	DTEXIT  027726R  	EDONES= 040000   	E.FSND= 000040 G 	F.UCHA  000020
DL.RDN= 000200 G 	DTHD  = ****** GX	EDRMT   025406RG 	E.FW  = 000010 G 	F11TPD  007772RG
DL.REN= 000100 G 	DTRNA   005474RG 	EF.BOV= 000040 G 	E.IOD = 000005 G 	GENTPD  010012RG
DL.RNG= 040000 G 	DTRTC   005472RG 	EF.CLK= 000002 G 	E.LS  = 000002 G 	GETBUF  031612R
DL.RTS= 000004 G 	DTSTK = ****** GX	EF.CRI= 002000 G 	E.NIR = 000004 G 	HANGUP  025466RG
DL.SRD= 002000 G 	DTTPD   007732RG 	EF.CTC= 040000 G 	E.OPSZ= 000060 G 	HIBYTE= 177400
DL.STD= 000010 G 	DTTSK   007352RG 	EF.DTE= 000001 G 	E.RKH = 000013 G 	HICTS   026224RG
DL.UNA= 001420 G 	DT0PEN  011002RG 	EF.FCP= 001000 G 	E.RKR = 000012 G 	HIDVST  026420RG
DL.XEN= 000100 G 	DT1PEN  011052RG 	EF.IOD= 000020 G 	E.RQM = 000010 G 	HORPS = 000016
DMTBE = 002776RG 	DUPE  = 000020   	EF.NIR= 000010 G 	E.RSS = 000014 G 	H.CSP = 000000 G
DMTBL   002734RG 	DURE  = 000004   	EF.PFR= 004000 G 	E.TMO = 000007 G 	H.DSW = 000046 G
DMTMP   002644RG 	DVCH  = 110220   	EF.PR1= 100000 G 	E.TTY = 000003 G 	H.FCP = 000050 G
DMTNXM  041066R  	DV.CFG= 004000 G 	EF.PR2= 020000 G 	E.WFM = 000011 G 	H.FOR = 000052 G
DMYN  = 000004 G 	DV.EOF= 000040 G 	EF.RKH= 002000 G 	FC.CEF= 020000   	H.HSZ = 000002 G
DNBLK   005606RG 	DV.F11= 000400 G 	EF.RKP= 010000 G 	FC.DIR= 040000   	H.IPC = 000076 G
DNFCN   005610RG 	DV.HNG= 001000 G 	EF.RKR= 001000 G 	FC.FCO= 010000   	H.IPS = 000074 G
DNSTS   005616RG 	DV.IOP= 000020 G 	EF.RQM= 000200 G 	FC.WAC= 100000   	H.ISP = 000100 G
DON10C= 040000   	DV.LIN= 002000 G 	EF.RSS= 004000 G 	FDVNM   027464R  	H.KCAC= 000020 G
DON10S= 100000   	DV.LOG= 000100 G 	EF.SND= 100000 G 	FDVNMF  027576R  	H.KCHN= 000010 G
DON11C= 000100   	DV.NXD= 000001 G 	EF.TED= 000100 G 	FDVNMM  027450R  	H.KEXT= 000004 G
DON11S= 000200   	DV.OFL= 000002 G 	EF.TMO= 000100 G 	FEHD  = ****** GX	H.KMOS= 000002 G
DPCMN   021112R  	DV.OIR= 000004 G 	EF.TTY= 000004 G 	FELXFR  030356R  	H.KPWR= 000040 G
DPMSEP  021140R  	DV.SCN= 000010 G 	EF.WFM= 000400 G 	FESTK = ****** GX	H.KUDF= 000001 G
DPSEC   021136R  	DV.URE= 000200 G 	EHSG  = 000006 G 	FETBL   005542RG 	H.LUT = 000130 G
DPS4  = 040000   	DWNMS   012770R  	EHSM  = 000010 G 	FETPD   007612RG 	H.OVL = 000054 G
DQNXT   033172R  	DWNMSG  012756R  	EMGSTK  011426RG 	FETSK   007412RG 	H.TKVA= 000106 G
DRESET= 000100   	DWNMSZ= 000043   	EMTSTK  001116RG 	FE0PUD  011172RG 	IDXTB   032360R
DRXCOM  013460R  	DXTSK   007452RG 	EMTTRP  013036RG 	FLBT  = 000001   	IE.ABO= 177761
DRXRR   013472R  	DXWD1 = 000006   	EMYN  = 000002 G 	FLBYT = 000011   	IE.ACT= 177771
DR.DTE= 000011   	DXWD2 = 000004   	EM.DRO= 000020 G 	FLCT  = 000017   	IE.ADP= 177636
DR.00 = 000000 G 	DXWD3 = 000002   	ENBXOF  025416RG 	FLDVOT  026664RG 	IE.ALN= 177736
DR.01 = 000001 G 	DXWRD1= 002000   	ENTELQ  030320R  	FNBYT = 000005   	IE.AST= 177660
DR.02 = 000002 G 	D$$H11= 000010   	EOLS  = 000400   	FNDDM   027366R  	IE.BAD= 177777
DR.03 = 000003 G 	D.AT  = 000000 G 	EPTR  = 000000   	FNDSPD  027420R  	IE.BBE= 177710
DSEND = 000004   	D.CCDR= 000006 G 	EQSZ    001332RG 	FORPRO= 000020   	IE.BDI= 177714
DS.99   013210R  	D.CCLK= 000007 G 	ERR10C= 010000   	FW    = 000300   	IE.BDR= 177716
DS04  = 004000   	D.CCPU= 000200 G 	ERR10S= 020000   	F.DREF  000042   	IE.BDV= 177711
DS05  = 002000   	D.CCTY= 000001 G 	ERR11C= 000001   	F.DRNM  000044   	IE.BHD= 177700
DS06  = 001000   	D.CDH1= 000003 G 	ERR11S= 000002   	F.FEXT  000002   	IE.BLK= 177754
DTBUF   005476RG 	D.CDLS= 000004 G 	EV.AS = 000002 G 	F.FNUM  000006   	IE.BNM= 177712
DTCNT   005502RG 	D.CDL1= 000002 G 	EV.PF = 000200 G 	F.FOWN  000014   	IE.BTF= 177675
DTCW2   005504RG 	D.CDMB= 000204 G 	EV.SE = 000001 G 	F.FPRO  000016   	IE.BTP= 177725
DTCW3   005506RG 	D.CDTE= 000202 G 	EXCMN   021146R  	F.FSEQ  000010   	IE.BVR= 177701
DTEADR  001270RG 	D.CKLE= 000201 G 	EXKAL   032260R  	F.FSQN  000013   	IE.BYT= 177755
DTECMD= 000451   	D.CKLN= 000210 G 	E.BOV = 000006 G 	F.FVBN  000046   	IE.CKP= 177766
DTEDSP  020442R  	D.CLOG= 000205 G 	E.CLK = 000002 G 	F.HDLB  000022   	IE.CKS= 177742
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 288-3
SYMBOL TABLE

IE.CLO= 177732   	IE.STK= 177706   	IO.HDX= 003010   	IO.WLS= 000410   	KS.CST= 000020 G
IE.CON= 177752   	IE.ULN= 177773   	IO.HIS= 015000   	IO.WLV= 000500   	KS.DEX= 000010 G
IE.DAA= 177770   	IE.UPN= 177777   	IO.INL= 002400   	IO.WVB= 011000   	KS.DPE= 002000 G
IE.DAO= 177763   	IE.VER= 177774   	IO.ITI= 017000   	IO.XMT= 014400   	KS.EPE= 000004 G
IE.DFU= 177750   	IE.WAC= 177743   	IO.KIL= 000012   	IO.XNA= 014410   	KS.FCF= 004000 G
IE.DNA= 177771   	IE.WAT= 177741   	IO.LED= 012000   	IQ.Q  = 000002   	KS.FME= 000400 G
IE.DNR= 177775   	IE.WER= 177737   	IO.LOV= 001010   	IQ.X  = 000001   	KS.PFT= 000100 G
IE.DUN= 177767   	IE.WLK= 177764   	IO.LTK= 000050   	IS.BV = 000005   	KS.PTO= 000200 G
IE.DUP= 177707   	IE.2DV= 177720   	IO.MCS= 013400   	IS.CLR= 000000   	KS.TRR= 000040 G
IE.EBX= 177776   	IFLOP = 100000   	IO.MDA= 016000   	IS.CR = 006401   	KS.TSP= 000001 G
IE.EOF= 177766   	IGNO    012140RG 	IO.MDI= 014400   	IS.ESC= 015401   	K.LBPW= 000005 G
IE.EOT= 177702   	INIAN   046130RG 	IO.MDO= 015400   	IS.PND= 000000   	K.LCKL= 177777 G
IE.EOV= 177765   	INITLM  011320RG 	IO.MLO= 006000   	IS.RDD= 000002   	K.LCON= 000004 G
IE.EXP= 177676   	INPPT   034736R  	IO.MOD= 003000   	IS.SET= 000002   	K.LDCM= 000001 G
IE.FEX= 177717   	INPT0   034744R  	IO.MSO= 005000   	IS.SUC= 000001   	K.LDRP= 177777 G
IE.FHE= 177705   	INPT1   035302R  	IO.RAL= 001010   	KBB0  = 177562 G 	K.LDSC= 000003 G
IE.FOP= 177713   	INSHD = ****** GX	IO.RAT= 013000   	KBB1  = 175612 G 	K.LLTO= 000006 G
IE.HFU= 177744   	INSTAL= ****** GX	IO.RBC= 003000   	KBS0  = 177560 G 	K.LRAC= 000001 G
IE.HWR= 177772   	INSTK = ****** GX	IO.RCI= 015000   	KBS1  = 175610 G 	K.LRBA= 000007 G
IE.IDU= 177644   	INSTPD  007552RG 	IO.RCV= 015000   	KLCST   021226R  	K.LRMN= 000003 G
IE.IEF= 177637   	INTLPS  027640R  	IO.RDB= 001200   	KLNLGL= 000016 G 	K.LRNG= 000002 G
IE.IFC= 177776   	INTROF= 000010   	IO.RDN= 000022   	KLNPLN= 000026 G 	K.LROP= 000001 G
IE.IFU= 177747   	INTRON= 000040   	IO.REL= 013400   	KLNPTR  002636RG 	K.LRPR= 000002 G
IE.ILL= 177726   	INTSON= 000001   	IO.RHD= 001010   	KLPWRF= 000010   	K.LRRJ= 177777 G
IE.ILU= 177640   	INT10S= 000400   	IO.RLB= 001000   	KL.ABO= 010000 G 	K.LSCK= 000001 G
IE.INS= 177776   	INT11C= 002000   	IO.RLV= 001100   	KL.CFL= 000400 G 	K.LSKL= 000001 G
IE.IPR= 177641   	INT11S= 004000   	IO.RNA= 005400   	KL.CFM= 000002 G 	K.LUND= 000000 G
IE.ISQ= 177703   	IOPSIZ= 007777   	IO.RNC= 001004   	KL.DEF= 002000 G 	K.LUSR= 177777 G
IE.ITI= 177643   	IOTTRP  011732R  	IO.RNE= 001020   	KL.KAC= 001000 G 	LDLPR   026420RG
IE.ITS= 177770   	IO.ACE= 007400   	IO.RTC= 003400   	KL.LCA= 000100 G 	LDLPV   026420RG
IE.LCK= 177745   	IO.ACR= 006400   	IO.RTI= 016400   	KL.LRM= 000001 G 	LFBT  = 004000
IE.LNL= 177646   	IO.ACW= 007000   	IO.RTK= 000060   	KL.LVB= 000004 G 	LFCT  = 074000
IE.MBK= 177721   	IO.ADS= 014000   	IO.RVB= 010400   	KL.REQ= 004000 G 	LINCHR  026464RG
IE.MOD= 177753   	IO.APC= 014000   	IO.RWD= 002400   	KL.SPF= 000040 G 	LKS   = 177546 G
IE.NBF= 177731   	IO.APV= 014010   	IO.RWU= 002540   	KL.SSC= 000200 G 	LOAD11= 000004
IE.NBK= 177727   	IO.ATT= 001400   	IO.R1C= 002400   	KL.VBD= 000020 G 	LODNOD  031712R
IE.NFI= 177704   	IO.CCI= 014000   	IO.SAO= 004000   	KL.VBN= 000010 G 	LOWCOD= 000000RG
IE.NLN= 177733   	IO.CCT= 002460   	IO.SCS= 013000   	KPAL0   001376RG 	LPCEVF  006210RG
IE.NNC= 177674   	IO.CLN= 003400   	IO.SDI= 013000   	KPAL1   001406RG 	LPCSA = 000002 G
IE.NOD= 177751   	IO.CON= 015400   	IO.SDO= 012400   	KPAR0 = 172360   	LPCSM = 000022 G
IE.NSF= 177746   	IO.CRC= 001020   	IO.SEC= 002520   	KPAR1 = 172362   	LPEVFG  006206RG
IE.OFL= 177677   	IO.CRE= 012000   	IO.SEM= 002440   	KPAR2 = 172364   	LPEXPA= 175400 G
IE.ONP= 177773   	IO.CTI= 015400   	IO.SHT= 002410   	KPAR3 = 172366   	LPEXPZ= 000020 G
IE.OVR= 177756   	IO.CTL= 016400   	IO.SLO= 005400   	KPAR4 = 172370   	LPHD  = ****** GX
IE.PRI= 177760   	IO.DAC= 010000   	IO.SMO= 002560   	KPAR5 = 172372   	LPHUNG  006212RG
IE.RAC= 177724   	IO.DCI= 014400   	IO.SNM= 002450   	KPAR6 = 172374   	LPITH = 000006 G
IE.RAT= 177723   	IO.DCT= 002470   	IO.SPB= 002420   	KPAR7 = 172376   	LPMCB = 000020 G
IE.RBG= 177730   	IO.DEL= 012400   	IO.SPF= 002440   	KPDR0 = 172300   	LPRMA = 000040 G
IE.RCN= 177722   	IO.DET= 002000   	IO.SSO= 004400   	KPDR1 = 172302   	LPRMC = 000044 G
IE.RER= 177740   	IO.DIS= 016000   	IO.SST= 002430   	KPDR2 = 172304   	LPRMZ = 000042 G
IE.RNM= 177715   	IO.DTI= 016000   	IO.STC= 002500   	KPDR3 = 172306   	LPRTY = 000024 G
IE.RSU= 177757   	IO.ENA= 006000   	IO.STP= 016400   	KPDR4 = 172310   	LPSIZE= 000010 G
IE.SDP= 177635   	IO.EOF= 003000   	IO.SYN= 003040   	KPDR5 = 172312   	LPSTBH  006216RG
IE.SNC= 177735   	IO.ESA= 002500   	IO.TRM= 002410   	KPDR6 = 172314   	LPSTBK  006220RG
IE.SPC= 177772   	IO.EXT= 011400   	IO.UNL= 000042   	KPDR7 = 172316   	LPSTK = ****** GX
IE.SQC= 177734   	IO.FDX= 003020   	IO.WAT= 013400   	KS.CES= 000002 G 	LPSTLN= 000030 G
IE.SRE= 177762   	IO.FNA= 004400   	IO.WLB= 000400   	KS.CPE= 001000 G 	LPSTS = 000000 G
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 288-4
SYMBOL TABLE

LPTBL   006250RG 	PR4   = 000200   	RPCNT   005530RG 	SNDBEL  036112RG 	S.STBK= 000012
LPTBL2  006270RG 	PR5   = 000240   	RPCW2   005534RG 	SNDMSG  013034RG 	S.SZ  = 000036 G
LPTBL3  006310RG 	PR6   = 000300   	RPHD  = ****** GX	SNDSTS  031536R  	S.TD  = 000004 G
LPTHD = 000004 G 	PR7   = 000340 G 	RPPEN   010302RG 	SPDTB   032374R  	S.TN  = 000000 G
LPTPD   007652RG 	PS    = 177776 G 	RPRNA   005522RG 	SPDTBL  024616R  	S.TZ  = 000016 G
LPTSK   007252RG 	PSWW1 = 000005   	RPRTC   005520RG 	SPDTBZ= 000016   	S0.ABR= 100000 G
LPUNIT  006204RG 	PSWW10= 000014   	RPSTK = ****** GX	SPSAV   001020RG 	S0.CON= 040000 G
LPUTBL  006330RG 	PSWW11= 000015   	RPTPD   007752RG 	STAT  = 174434   	S0.ISP= 001700 G
LP0PUD  011122RG 	PSWW12= 000016   	RPTSK   007212RG 	STATD = 000034   	S0.MSK= 140000 G
L$$P20= 000002   	PSWW13= 000017   	RPUNIT  005532RG 	STATI   001336RG 	S0.OSP= 036000 G
L.DT0 = 000003 G 	PSWW2 = 000006   	RQKLD   032326R  	STATS = 000000   	S0.SPD= 037700 G
L.RP4 = 000002 G 	PSWW3 = 000007   	RQKLR   032310R  	STATUS= 000022   	S2.CHR= 000377 G
L.TTY = 000001 G 	PSWW4 = 000010   	RQMCR   032272R  	STBXFR  031670R  	S2.CNT= 001400 G
MBUFR = 000014   	PSWW5 = 000011   	RQSPB   024074R  	STCM    045356R  	S2.DDN= 100000 G
MEBUF = 000012   	PSWW6 = 000012   	RQSPT   024070RG 	STDCDR  006746RG 	S2.DIP= 040000 G
MECNT = 000010   	PSWW7 = 000013   	RQSTD   024106R  	STDDTE  006406RG 	S2.DIS= 020000 G
MODE  = 100000   	PULSE = 000020   	RSX$$E= 000045   	STDDTP  006506RG 	S2.ENB= 010000 G
MPE11 = 001000   	PWRXSP  001032RG 	RSX$$F= 000101   	STDFED  006446RG 	S2.LCL= 004000 G
M.PARQ= 000002 G 	PWR.UP  017720RG 	RSX$$K= 000126   	STDF11  006546RG 	S2.RES= 002000 G
M.TAKP= 000001 G 	QNDSV   023200R  	RSX$$V= 000014   	STDINS  006646RG 	S2.SSZ= 001000 G
NODADR  005552RG 	QPRDTC  025152RG 	RTDVST  026420RG 	STDLPT  006706RG 	TBIT  = 000020 G
NOSNDA  025424RG 	QPRDTE  025156RG 	RTNTOD  026374RG 	STDQPR  007046RG 	TEDXIT  030534R
NTKXEN  012542R  	QPRDTF  026660R  	RUBP  = 000020   	STDRPT  006606RG 	TENAD1= 174410
NTKXEP  012546R  	QPRDTL  025234R  	R$$11D= 000001   	STDTTY  007006RG 	TENAD2= 174412
NTKXSP  012522RG 	QPROAD  017572R  	R.AS  = 000020 G 	STDVST  026420RG 	TF.OU = 000002 G
NULHD   012242RG 	QPROMS  017550R  	R.AT  = 000006 G 	STELIG  031302R  	THRED = 000000 G
NULSTP= 000040   	QPRTPD  007712RG 	R.DP  = 000011 G 	STELIX  031324R  	TMOCNT  002662RG
NULTSK  007512RG 	QPRTSK  007452RG 	R.FC  = 000014 G 	STIND2  030102R  	TNAD1 = 000010
NUPE  = 000002   	QSIZE = 000023   	R.FN  = 000013 G 	STLN    045412R  	TNAD2 = 000012
N.BP  = 000002 G 	Q.AK  = 000012 G 	R.LU  = 000012 G 	STNXT   034062R  	TN.EMT= 000012 G
N.FP  = 000000 G 	Q.DA  = 000000 G 	R.PB  = 000024 G 	STPLIN  026042RG 	TN.LRF= 000040 G
N.OVPT= 000054 G 	Q.DZ  = 000016 G 	R.PR  = 000010 G 	STRBF = 000002   	TN.TRP= 000014 G
N.PR  = 000010 G 	Q.D1  = 000006 G 	R.QSGC= 000015   	STRDAT  026420RG 	TOBM  = 000004
OKPAL0  001404RG 	Q.IOAE= 000012   	R.QSPC= 000014   	STSTT   001320RG 	TOD   = 000003
OUTPT   034546R  	Q.IOEF= 000006   	R.QSPN= 000006   	STSWD   005560RG 	TOIP  = 000002
OUTPT3  034466R  	Q.IOFN= 000002   	R.QSPR= 000012   	STSW0 = 000004 G 	TOIT  = 000001
PARLOA  020266R  	Q.IOLU= 000004   	R.QSTN= 000002   	STSW1 = 000006 G 	TOITDN  030522R
PARLOT  020340R  	Q.IOPL= 000014   	R.SB  = 000016 G 	STSW2   005060RG 	TOXQIP  001373RG
PARSAV  001022RG 	Q.IOPR= 000007   	R.TD  = 000004 G 	STTYDN  033676R  	TO10  = 000200
PERCLR= 001000   	Q.IOSB= 000010   	R.UI  = 000022 G 	STTYO   034272R  	TO10AD= 174420
PHYS  = 100000   	Q.SI  = 000004 G 	SCD   = 000040   	STXAS = 000000 G 	TO10AS  001316RG
PIDENT= 000000   	Q.SP  = 000006 G 	SETDEB  026762RG 	STXCS = 000000 G 	TO10BC= 174414
PRB0  = 177566 G 	Q.ST  = 000004 G 	SETLIN  025622RG 	STXDX = 000000 G 	TO10BM= 000001
PRB1  = 175616 G 	Q.SZ  = 000020 G 	SETSPD  025642RG 	SWR   = 177570   	TO10DB= 000400
PRI7  = 000340 G 	Q.TS  = 000002 G 	SEXCM   022060R  	SWSLLT= 100000   	TO10DN= 100000
PRMBLK  023206R  	RAMIS0= 010000   	SEXP0   022066R  	SY0PUD  011242RG 	TO10DT= 174424
PRMEMN  001232RG 	RCVKLP  026722RG 	SEXP1   022146R  	S.BA  = 000012 G 	TO10ER= 020000
PROPNT= 000021   	RESERV  011666R  	SEXP2   022050R  	S.DI  = 000011 G 	TO10PK  005564RG
PROTBL  001236RG 	RETTOD  026626RG 	SEX97   022150R  	S.DL  = 000032 G 	TO10Q   001326RG
PRS0  = 177564 G 	RFMAD0= 100000   	SF.EX = 000004 G 	S.DP  = 000010 G 	TO10QC= 001324RG
PRS1  = 175614 G 	RFMAD1= 040000   	SF.FX = 000002 G 	S.FW  = 000006 G 	TO10SZ  001314RG
PRTOFF= 004000   	RFMAD2= 020000   	SF.IR = 040000 G 	S.LZ  = 000014 G 	TO11  = 000100
PRVCM   021466R  	RFMAD3= 010000   	SF.PT = 000001 G 	S.PC  = 000020 G 	TO11AD= 174422
PR0   = 000000   	RF.XR = 000002 G 	SF.ST = 100000 G 	S.RB  = 000026 G 	TO11AS  001310RG
PR1   = 000040   	RM    = 000010   	SF.TA = 000001 G 	S.RF  = 000024 G 	TO11BC= 174416
PR2   = 000100   	RMBYT = 000004   	SKX     023236R  	S.SP  = 000022 G 	TO11BM= 020000
PR3   = 000140   	RPBUF   005524RG 	SNDALL  027000RG 	S.SS  = 000030 G 	TO11BS  001312RG
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 288-5
SYMBOL TABLE

TO11DB= 004000   	TT.OUT= 000001 G 	UNASG4= 000035   	V.FRBK  000034   	$EXMYN  021152RG
TO11DN= 000200   	TT.RIP= 002000 G 	UNASG5= 000036   	V.IBLB  000012   	$FE   = 000001
TO11DT= 174426   	TT.RMT= 000100 G 	UNASG6= 000037   	V.IBSZ  000013   	$F11  = 000001
TO11DV  001300RG 	TT.RSI= 020000 G 	UNRGFN  025400RG 	V.IFWI  000002   	$KLDFC  021362RG
TO11ER= 000002   	TT.SIP= 001000 G 	UPAR0 = 177640   	V.LABL  000040   	$KLDFR  021202RG
TO11FN  001276RG 	TT.SND= 140000 G 	UPAR1 = 177642   	V.LGTH  000056   	$KLDFW  021342RG
TO11FW  001304RG 	TT.SNI= 040000 G 	UPAR2 = 177644   	V.LRUC  000035   	$KLDFX  021320RG
TO11GW  001306RG 	TT.XEN= 000020 G 	UPAR3 = 177646   	V.SBCL  000021   	$LPINT= ****** GX
TO11HD  001274RG 	TT.XOF= 000200 G 	UPAR4 = 177650   	V.SBLB  000024   	$LP20 = 000001
TO11NP  001272RG 	T.BA  = 000004 G 	UPAR5 = 177652   	V.SBSZ  000022   	$MUL  = ****** GX
TO11Q   001334RG 	T.FW  = 000010 G 	UPAR6 = 177654   	V.STAT  000054   	$PRVDP  021440RG
TO11QC= 001325RG 	T.HBCT= 000002 G 	UPAR7 = 177656   	V.STD   000004   	$PRVEX  021454RG
TO11SP  001302RG 	T.HCAD= 000004 G 	UPDR0 = 177600   	V.TRCT  000000   	$RP04 = 000001
TRPASV  001120RG 	T.HCBC= 000006 G 	UPDR1 = 177602   	V.WISZ  000020   	$RWDRG  021510RG
TRPXIT  011570R  	T.HFCN= 000007 G 	UPDR2 = 177604   	WEP   = 000010   	$TOP10= 000001
TRP4    011616R  	T.HHDS= 000010 G 	UPDR3 = 177606   	WFXSET  013762R  	$TTINP  036166RG
TS.EXT= 000026 G 	T.HP  = 000012 G 	UPDR4 = 177610   	WI.BPS= 100000   	$TTOUT  034224RG
TS.LRF= 000006 G 	T.HRED= 000000 G 	UPDR5 = 177612   	WI.DLK= 010000   	$UNIT   002640RG
TS.LRQ= 000002 G 	T.PN  = 000000 G 	UPDR6 = 177614   	WI.EXT= 002000   	$$    = 000037
TS.RUN= 000010 G 	T.PZ  = 000006 G 	UPDR7 = 177616   	WI.LCK= 004000   	$$MSG = 000000
TS.SUS= 000012 G 	T.RAPB= 000004 G 	UT.LG = 000004 G 	WI.RDV= 000400   	$$$   = 010016R
TS.TKN= 000004 G 	T.RAPE= 000012 G 	UT.PR = 000001 G 	WI.WRV= 001000   	$$$ARG= 000011
TS.WF0= 000014 G 	T.RAPF= 000016 G 	UT.SL = 000002 G 	WTLODT  024572R  	$$$OST= 000016
TS.WF1= 000016 G 	T.RAPI= 000006 G 	U.ACP = 000040 G 	W.CTL   000000   	$$$T1 = 000000
TS.WF2= 000020 G 	T.RAPM= 000002 G 	U.AF  = 000014 G 	W.FCB   000002   	$$$UNI= 000002
TS.WF3= 000022 G 	T.RAPR= 000010 G 	U.AR  = 000034 G 	W.RTRV  000012   	.ABCNT  002600RG
TS.WF4= 000024 G 	T.RAPT= 000014 G 	U.CH  = 000032 G 	W.STD   000004   	.ABFLG  002602RG
TTCNT = 000205 G 	T.RAP4= 000000 G 	U.C1  = 000004 G 	W.VBN   000006   	.ACKAL  001164RG
TTCTY   036646R  	T.RB  = 000016 G 	U.C2  = 000006 G 	W.WISZ  000007   	.ATLLH  007106RG
TTINI   032404RG 	T.RF  = 000014 G 	U.C3  = 000010 G 	XOFF    026166RG 	.ATOTA  011317RG
TTINO   033546R  	T.SZ  = 000020 G 	U.C4  = 000012 G 	XON     026202RG 	.BGBST= 076000 G
TTINPA  036206R  	T10AD = 000020   	U.DACP= 000036 G 	X.X94   015650R  	.BGBUF  001414RG
TTINPB  036374R  	T11AD = 000022   	U.DN  = 000000 G 	X.X95   015652R  	.BGLEN= 002000 G
TTINX   033542R  	T11BC = 000016   	U.FB  = 000003 G 	X8X97   043146RG 	.BM873= 173000 G
TTOUTR  034366R  	U     = 000040   	U.FO  = 000043 G 	X9X96   015726R  	.BRCLK= 005000
TTOUTX  034360R  	UC.CCL= 000002 G 	U.GC  = 000031 G 	ZSTOP = 040000   	.BRKCH  002630RG
TTPEN   010232RG 	UC.COM= 020000 G 	U.HA  = 000020 G 	$BTMSK  002642RG 	.BTPRM  001160RG
TTPKT   002732RG 	UC.DIR= 000010 G 	U.LBH = 000044 G 	$CDINT= ****** GX	.BTSCH  001162RG
TTSAV   037332R  	UC.ETB= 000100 G 	U.LBN = 000046 G 	$CD11 = 000001   	.BTSTK  016312RG
TTSTCH  036232R  	UC.F11= 040000 G 	U.PC  = 000030 G 	$DBDTE= 000001   	.CECLK= 004000
TTTBL   002776RG 	UC.INB= 000400 G 	U.PR  = 000042 G 	$DHINP  035534RG 	.CEFN   043062RG
TTWLO   032252R  	UC.ISP= 002000 G 	U.RB  = 000024 G 	$DHOUT  033552RG 	.CEFN3  043066RG
TTYDNE  034654R  	UC.MNT= 100000 G 	U.RF  = 000022 G 	$DH11 = 000001   	.CKASS  001050RG
TTYDNX  034720R  	UC.PSE= 010000 G 	U.RP  = 000016 G 	$DIV  = ****** GX	.CKDEL  043150RG
TTYEND= 005046RG 	UC.REC= 000001 G 	U.SZ  = 000050 G 	$DMINT  037626RG 	.CLKBA  002370RG
TTYEXP= 000002 G 	UC.SDI= 000020 G 	U.TF  = 000042 G 	$DORBL  020502RG 	.CLKEA  002574RG
TTYHD   031736RG 	UC.SQD= 000040 G 	U.UI  = 000030 G 	$DPMYG  021110RG 	.CLKSW  001136RG
TTYSP   032216RG 	UC.SWL= 001000 G 	U.UN  = 000002 G 	$DPMYN  021160RG 	.CLKSZ= 000007 G
TTYTPD  007632RG 	UC.TTY= 000004 G 	U.VA  = 000026 G 	$DSW  = 000046 G 	.CLRMR= 006000
TTYTSK  007152RG 	UC.0SP= 004000 G 	U.VP  = 000032 G 	$DTA  = 000001   	.CLRUN= 010000
TT.ABL= 000040 G 	UF.OFL= 000040 G 	VC.BMW= 000002   	$DTE  = 000001   	.COMEF  001010RG
TT.ABW= 000010 G 	UF.RD = 000040 G 	VC.IFW= 000001   	$DTEOF  020504RG 	.CONBT= 012000
TT.CRW= 000004 G 	UF.RH = 000200 G 	V.FCB   000006   	$DTEON  020512RG 	.CPDV   001254RG
TT.CTY= 000002 G 	UF.TL = 000100 G 	V.FFNU  000055   	$DTINT= ****** GX	.CPFN   001252RG
TT.FEC= 014000 G 	UNASG1= 000032   	V.FIEX  000025   	$EXHSG  021166RG 	.CPUSN  011312RG
TT.FEI= 004000 G 	UNASG2= 000033   	V.FMAX  000016   	$EXHSM  021174RG 	.CRHD   001262RG
TT.NSA= 000400 G 	UNASG3= 000034   	V.FPRO  000030   	$EXMYG  021142RG 	.CRPB   001260RG
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 288-6
SYMBOL TABLE

.CRPFL  005706RG 	.D.MKT  022350RG 	.KLNSW  001226RG 	.PRSTA  001356RG 	.S2IDC  005050RG
.CRQZ   001250RG 	.D.PUT  023640RG 	.KLNTD  001212RG 	.PUDBA  010232RG 	.S2ITP  005052RG
.CRSB   001264RG 	.D.QIO  022542RG 	.KLNTT  001210RG 	.PUDEA  011312RG 	.TENDN  027746RG
.CRSND  002626RG 	.D.RAF  022126RG 	.KLRLD  001172RG 	.PWRDN  017574RG 	.TFXOF  043004RG
.CRSZ   001256RG 	.D.REC  023460RG 	.KPAC   001410RG 	.RCRM1= 147000   	.TFXON  042774RG
.CRTSK  001006RG 	.D.REF  022112RG 	.KPALV  031326RG 	.RCRM2= 146000   	.TICK   024364RG
.CSHRG= 164000   	.D.REQ  023662RG 	.KW11S  035366RG 	.RCRM3= 145000   	.TICKS  001134RG
.CTYPT  002634RG 	.D.ROE  023460RG 	.LCEND= 011320RG 	.RCRM4= 144000   	.TKPS   001154RG
.CYLTM= 000074 G 	.D.ROS  023460RG 	.LCRDL= 052000   	.RCSPF= 141000   	.TKTN   001124RG
.DATE   001140RG 	.D.SAR  023226RG 	.LCRDR= 051000   	.RDJ14= 134000   	.TKTN.  012740R
.DATE3  001140RG 	.D.SEF  022052RG 	.LCRM1= 057000   	.RDJ71= 135000   	.TOD.   012722R
.DAY    001144RG 	.D.SEN  023212RG 	.LCRM2= 056000   	.RDMAB= 133000   	.TPDBA  007552RG
.DBINT= ****** GX	.D.STV  023626RG 	.LCRM3= 055000   	.REQS   015046RG 	.TPDEA  010032RG
.DHSPD  037554RG 	.D.WFL  022230RG 	.LCRM4= 054000   	.RPADR  005670RG 	.TTACK  034370RG
.DHSPF  037514RG 	.D.WFO  022154RG 	.LCRM5= 053000   	.RPELC  005540RG 	.TTBTW  042604RG
.DHSPR  037460RG 	.D.WFS  022152RG 	.LDAR = 077000   	.RPELQ  005536RG 	.TTCHK  042124RG
.DHSTO  034164RG 	.D.WSE  022336RG 	.LDBRL= 043000   	.RPSIZ  005674RG 	.TTDIS  042312RG
.DHTMO  040646RG 	.EBPEC  001370RG 	.LDBRR= 042000   	.RPUNT  005664RG 	.TTELB  002660RG
.DHXOF  041632RG 	.EBPEQ  001366RG 	.LDCK1= 046000   	.RP1PE  010352RG 	.TTELC  002656RG
.DHXON  041754RG 	.EBRTY  001365RG 	.LDCK2= 047000   	.RP2PE  010422RG 	.TTELQ  002654RG
.DLHUP  040214RG 	.EIOJA= 067000   	.LDDIS= 045000   	.RP3PE  010472RG 	.TTENB  042464RG
.DLINT  036500RG 	.ELEDN  030234RG 	.LDRJD= 064000   	.RP4PE  010542RG 	.TTERL  041426RG
.DLSTO  034340RG 	.EXEND  001002RG 	.LDRJV= 063000   	.RP5PE  010612RG 	.TTFDI  041360RG
.DLTMO  040336RG 	.FEACK= ****** GX	.LDRM1= 060000   	.RP6PE  010662RG 	.TTICK  042150RG
.DLXOF  041640RG 	.FEACT  005666RG 	.LDRM2= 061000   	.RP7PE  010732RG 	.TTIXC  042254RG
.DLXON  042020RG 	.FEMOD  001170RG 	.LDRM3= 062000   	.RQESD  015540RG 	.TTP11  002632RG
.DMHUP  040144RG 	.FEPPU  015550RG 	.LDSEL= 044000   	.RQSPD  024600RG 	.TTQDS  042204RG
.DMTMO  041126RG 	.FEST = ****** GX	.LPPFL  006214RG 	.SECLK= 003000   	.TTQEN  042214RG
.DOW    001147RG 	.FESTB  001000RG 	.MEMRS= 076000   	.SEND   023360RG 	.TTRNG  040044R
.DQCDR  010152RG 	.FREPL  001420RG 	.MISC   011316RG 	.SERFG  001014RG 	.TTRST  042034RG
.DQDH0  010072RG 	.FSRPT= 000050 G 	.MON    001145RG 	.SETMR= 007000   	.TTSCW  040050R
.DQDLS  010112RG 	.GFNR = 102000   	.MSIZE  001114RG 	.SETRN= 011000   	.TTSTP  041650RG
.DQDL1  010052RG 	.HRDWR  011314RG 	.NOERR  001122RG 	.SEWFL  001016RG 	.TTSW2  042754RG
.DQLPT  010132RG 	.IBFLO  005054RG 	.NOHLT= 001123RG 	.SNDAL  027006RG 	.TTS2F  005046RG
.DQPBA  010032RG 	.IBFOK  005056RG 	.OBFLO= 001200 G 	.SNDBF  002606RG 	.TTXOF  041554RG
.DQPEA  010232RG 	.INHDM  002576RG 	.PARER  011702R  	.SNDCN  002616RG 	.TTXON  041676RG
.DQPSZ= 000010 G 	.INICL= 070000   	.PARRG= 172100 G 	.SNDLP  002604RG 	.VCLUN  015654RG
.DRBEL  030540RG 	.INTEN= 000100 G 	.PAT1.  000040RG 	.SSCLK= 002000   	.VERNO  001036RG
.DRLTC= 015000   	.IOSNP  012156R  	.PAT2.  000120RG 	.SSM    001150RG 	.WRMBX= 071000
.DRSRN  013352RG 	.IRLTC= 014000   	.PAT3.  000234RG 	.SSTCO  013326RG 	.X.02   023234R
.DR.NS  013460RG 	.KACFL  001412RG 	.PAT4.  000520RG 	.SSTET  013320RG 	.YEAR   001142RG
.DSACF= 066000   	.KALSC= 000005 G 	.PCAB1= 150000   	.STAST  015730RG 	..AKCR= ****** GX
.DSIOJ= 065000   	.KLERQ  001130RG 	.PCAB2= 151000   	.STDHL  037416RG 	..AKLP= ****** GX
.DST    001146RG 	.KLERW  001166RG 	.PCAB3= 152000   	.STDTA  006334RG 	..ALCB  044416RG
.DTBLK  001374RG 	.KLFCF  001173RG 	.PCAB4= 153000   	.STDTB  006342RG 	..ALC2  044432RG
.DTINT  027624RG 	.KLFLG  001174RG 	.PDP11= 000050   	.STDTC  006336RG 	..ALOW  044706RG
.DXRTY  001364RG 	.KLITK  001126RG 	.PFAIL  001026RG 	.STDTZ  006340RG 	..BLXI  047062RG
.D.ASS  021564RG 	.KLIWD  001132RG 	.PFASS  001052RG 	.STELD  031062RG 	..BLXO  047074RG
.D.CEF  022034RG 	.KLNBC  001200RG 	.PFIOW  001030RG 	.STELI  031150RG 	..DECB  044552RG
.D.CMT  022452RG 	.KLNFD  001204RG 	.PFRST  020126RG 	.STPCL= 000000   	..DECN  044546RG
.D.DSE  022070RG 	.KLNFT  001202RG 	.POLLH  001424RG 	.STPDM  040174RG 	..DEC2  044542RG
.D.DTE  020344RG 	.KLNLB  001200RG 	.POLND  002330RG 	.STRCL= 001000   	..DQRN  043432RG
.D.EXT  022520RG 	.KLNMD  001216RG 	.POLST  001430RG 	.STTNF  031370RG 	..DSEV  044026RG
.D.GLI  021670RG 	.KLNPB  001176RG 	.PRADR  001354RG 	.STTNQ  031362RG 	..DTP1  047036RG
.D.GMP  024232RG 	.KLNPE= 001220RG 	.PRDCT  001362RG 	.STTYD  040060RG 	..DTP2  047006RG
.D.GPP  024110RG 	.KLNPT  002636RG 	.PRDTE  001360RG 	.STTYH  040074RG 	..DTSP  046770RG
.D.GTP  021720RG 	.KLNPW  001220RG 	.PRPSE  001372RG 	.SYUIC  001156RG 	..ENB0  044302RG
SCOMM	- COMMON DATA AND SUBRO	MACRO M1113  10-NOV-81 17:22  PAGE 288-7
SYMBOL TABLE

..ERLG  043212RG 	..NADD  044176RG 	..SPLP= ****** GX	..STLP= ****** GX	..VTOL  047150RG
..FSTD  044336RG 	..NDEL  044062RG 	..STCH  045326RG 	..STPT  045142RG 	..VVLL  047332RG
..INTX  014632RG 	..PICK  044240RG 	..STCR= ****** GX	..STQ   046046RG 	..VXFR  047054RG
..IODN  043312RG 	..SACK  045372RG 	..STFC  045456RG 	..STTY  044726RG 	..WFED  046216RG
..IPRI  044122RG 	..SEFN  043754RG 	..STIN  045646RG 	..SWED  046670RG 	...GBL= 000000

. ABS.	000056	   000
      	047526	   001
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  18838 WORDS  ( 74 PAGES)
DYNAMIC MEMORY:  20774 WORDS  ( 79 PAGES)
ELAPSED TIME:  00:05:37
,[100,20]RSXTOPS10.LST/-SP/CRF=[100,30]RSXTOPS10.TMP
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

ACKNOW	  025610 RG	 148-8176  #154-8303  
ADRSAV	  005554 RG	#33-1056   
AF.PP 	= 000200  G	#53-2352   
ASXCMN	  013760 R	 70-3137    70-3142    70-3147    70-3152   #70-3163   
ASXDT 	  013634 R	 69-3094   #69-3096   
ASXEXT	  014150 R	 69-3125   #73-3214   
ASXE1 	  013610 RG	 42-1682   #69-3081    74-3310    75-3495   
ASXE2 	  013624 R	 67-3028   #69-3093    71-3175    73-3295   
ASXLRF	  013774 R	 69-3107   #71-3171    72-3184   
ASXLRQ	  014032 R	 69-3103   #72-3181   
ASXSCN	  013622 R	#69-3092    69-3105    69-3111    70-3163    72-3182   
ASXTE 	  014442 R	 69-3109    70-3166    72-3209   #74-3306   
ASXWR0	  013662 R	 69-3115   #70-3136   
ASXWR1	  013672 R	 69-3117   #70-3141   
ASXWR2	  013702 R	 69-3119   #70-3146   
ASXWR3	  013712 R	 69-3121   #70-3151   
ASXWR4	  013722 R	 69-3123   #70-3156   
A.EF  	= 000020  G	 15-790    #53-2321    70-3136    70-3141    70-3156    70-3158   *72-3181    72-3201   *76-3587   
                        *76-3639   *76-3643   *81-3923    113-5804   113-5805  *124-6663  *147-8134  *178-9362   192-10282 
                        *192-10283 *209-10910 *216-11434 *217-11476 *222-11800 *228-12083  252-13407  255-13534 *255-13540 
                        *257-13645 *257-13700  258-13758 
A.FB  	= 000015  G	#53-2319   
A.FM  	= 000024  G	*43-1752   #53-2323    70-3136    70-3141    70-3146    70-3151    70-3156    70-3158    70-3160   
                         70-3162   *71-3171    72-3183   *76-3624   *114-5871   115-5937  *115-5963  *122-6311   257-13695 
A.HA  	= 000012  G	#53-2317    72-3186    74-3323    74-3338    78-3759    139-7654   285-15415 
A.PD  	= 000006  G	 43-1755   #53-2315    71-3174    73-3220    139-7653   141-7775  
A.PF  	= 000034  G	#53-2327   *76-3587   *135-7391   135-7394  
A.RP  	= 000010  G	#53-2316    124-6532   139-7663  
A.SP  	= 000004  G	#53-2313   *72-3206   *74-3336    74-3337    79-3813   
A.SZ  	= 000036  G	#53-2329   
A.TD  	= 000016  G	 43-1741   #53-2320    67-2792    67-2960    72-3207    73-3219    124-6592   127-6889   127-6915  
                         131-7139   133-7302   139-7652  
A.TS  	= 000014  G	*43-1753   #53-2318    69-3093   *70-3165   *71-3172   *72-3185   *114-5872  *115-5950  *115-5962  
                        *122-6310   127-6917  *127-6919  
BC.AKA	= 000025  G	#146-8076   194-10341 
BC.BTP	= 000024  G	#146-8075   161-8523  
BC.BTW	= 000035  G	#146-8084  
BC.DEB	= 000036  G	#146-8085  
BC.DES	= 000010  G	#146-8063  
BC.EDR	= 000027  G	#146-8078  
BC.FNM	= 000040  G	#146-8087   178-9377  
BC.FOD	= 000013  G	#146-8066  
BC.HAD	= 000002  G	#146-8057   161-8502  
BC.HDS	= 000007  G	#146-8062   255-13529 
BC.HTD	= 000012  G	#146-8065  
BC.LDR	= 000030  G	#146-8079  
BC.LDV	= 000031  G	#146-8080  
BC.LNC	= 000004  G	#146-8059   272-14492 
BC.NDM	= 000037  G	#146-8086  
BC.NSA	= 000032  G	#146-8081  
BC.RDS	= 000005  G	#146-8060  
BC.RQD	= 000001  G	#146-8056  
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 2

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

BC.RTD	= 000011  G	#146-8064  
BC.SAK	= 000017  G	#146-8070   174-9069   273-14527 
BC.SDS	= 000006  G	#146-8061  
BC.SKP	= 000033  G	#146-8082   161-8514  
BC.SLA	= 000023  G	#146-8074   194-10337 
BC.SNA	= 000014  G	#146-8067  
BC.SPT	= 000026  G	#146-8077  
BC.STR	= 000003  G	#146-8058  
BC.STS	= 000022  G	#146-8073  
BC.TDU	= 000015  G	#146-8068   225-11976 
BC.THU	= 000016  G	#146-8069   225-11982 
BC.XEN	= 000034  G	#146-8083  
BC.XOF	= 000020  G	#146-8071  
BC.XON	= 000021  G	#146-8072  
BELADR	  036164 RG	 214-11302 #214-11310 
BITTBL	  043022 RG	 205-10743  214-11307 #251-13326  252-13399  258-13760 
BIT0  	= 000001	#7-262      41-1642    41-1653   #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  
                        #189-10058  189-10175 #250-13319 
BIT1  	= 000002	#7-262      41-1643    41-1654   #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  
                        #189-10058  189-10174 #250-13319 
BIT10 	= 002000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058  189-10146 
                         189-10168 #250-13319 
BIT11 	= 004000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058  189-10145 
                         189-10167 #250-13319 
BIT12 	= 010000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058  189-10144 
                         189-10166 #250-13319 
BIT13 	= 020000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058  189-10143 
                         189-10165  189-10180  189-10188 #250-13319 
BIT14 	= 040000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019   156-8370  #175-9120  #189-10058 
                         189-10142  189-10164 #250-13319 
BIT15 	= 100000	#7-262     #48-2092   #80-3894    81-3923   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 
                         189-10141  189-10163 #250-13319  255-13529 
BIT2  	= 000004	#7-262      41-1644   #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 
                         189-10173 #250-13319 
BIT3  	= 000010	#7-262      41-1645   #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 
                         189-10172 #250-13319 
BIT4  	= 000020	#7-262      41-1646   #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 
                         189-10176 #250-13319 
BIT5  	= 000040	#7-262      41-1647   #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 
                         189-10171 #250-13319 
BIT6  	= 000100	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058  189-10170 
                         189-10184 #250-13319 
BIT7  	= 000200	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058  189-10169 
                        #250-13319 
BIT8  	= 000400	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058  189-10148 
                         189-10176 #250-13319 
BIT9  	= 001000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058  189-10147 
                         189-10148  189-10176 #250-13319 
BLDPKT	  042702 R	 244-13112  244-13112 #245-13155 
BLKTT 	  005624 RG	#33-1073   
BLXCOM	  047102 R	 284-15311 #284-15317 
BLXPLP	  047132 R	 284-15340 #284-15351  284-15353 
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 3

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

BLXRTN	  047142 R	#284-15361 
BPARER	= 000020	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
                         277-14867 
BPTTRP	  011674 R	 43-1772   #43-1793   
BTPHD 	  016032 RG	 36-1338    37-1398    38-1437   #81-3917   
BTPRO 	  016332 R	 81-3918    81-3918   #81-3920    81-3965    81-4041    81-4130   
BTWCHR	  026140 RG	 148-8190  #158-8416  
BYCNT 	  002726 RG	#18-882    *197-10482  199-10519  209-10893 *209-10895 
BYTESA	  005556 RG	#33-1058   
CDBA  	= 177164  G	#34-1090   
CDCC  	= 177162  G	#34-1089   
CDD   	= 000020	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
CDDB  	= 177166  G	#34-1091    34-1105   
CDRTPD	  007672 RG	 36-1331    37-1371   #38-1432   
CDST  	= 177160  G	#34-1088    34-1105    34-1121   
CDTSK 	  007312 RG	 37-1365   #37-1370    37-1378   
CESCHK	  021540 R	 97-4976    97-4976    97-5008    97-5008    97-5016    97-5016   #101-5158  
CHNPNT	= 000001	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
CHTBL 	  032344 R	#191-10234  191-10247  213-11232 
CHTBLN	= 000013	#191-10247  213-11230 
CH.FOR	= 000100  G	#57-2501   
CH.LAB	= 000001  G	#57-2505   
CH.NAT	= 000020  G	#57-2503   
CH.NDC	= 000010  G	#57-2504   
CH.OFF	= 000200  G	#57-2500   
CH.UNL	= 000040  G	#57-2502   
CKDLEN	  040512 R	 229-12138  229-12138  229-12150  229-12150 #229-12193 
CLRDEB	  026772 RG	 148-8192  #168-8695  
CMEDP 	  021116 R	#91-4752    92-4800   
CMNABO	  011526 RG	 43-1743    43-1746   #43-1750    67-2915   
CMNABT	  013342 R	 67-2799   #67-2914    67-2966   
CMSG  	  012142 R	 44-1827   #44-1891   
CNT   	  002724 RG	#18-880    *197-10483  218-11594 
CNUPE 	= 000002	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
COMBSE	  001230 RG	#11-589    *90-4631    90-4690   
COMTRP	  011426 R	 8-321      8-323      8-325      8-327     #43-1727   
COPBUF	  027312 RG	 66-2735    66-2735    169-8771   169-8771  #170-8869   270-14312  270-14312 
CPUERR	  020500 R	 87-4496   #87-4522   
CRADR 	  002730 RG	#18-884    *197-10484  198-10503  199-10518  199-10520  209-10897 *209-10899 *209-10908 *211-11063 
                        *211-11075 
CRBFLN	= 000240  G	#34-1112   
CRBUFF	  005732 RG	#34-1110    34-1112   
CRBUFH	  005730 RG	#34-1108   
CRCEVF	  005702 RG	 34-1094   #34-1095   
CREVFG	  005700 RG	#34-1093   
CREXP 	= 006176 RG	#34-1120   
CRHD  	= ******  GX	 36-1331    37-1371    38-1433   
CRHUNG	  005704 RG	#34-1097   
CRJT  	= 001000	#189-10084  199-10521  211-10999  211-11008  211-11019 
CROBAR	  001034 RG	#9-470     *83-4259   *84-4284   
CRSIZE	= 000010  G	#34-1126   
CRSTB 	  011606 R	 43-1766   #43-1769   
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 4

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

CRSTBH	  005710 RG	#34-1102   
CRSTBK	  005712 RG	#34-1104    34-1106   
CRSTK 	= ******  GX	 37-1371   
CRSTLN	= 000016  G	#34-1106   
CRSTS 	= 006200 RG	#34-1122   
CRTBL 	  006174 RG	#34-1117    34-1126    39-1493   
CRTHD 	= 006174 RG	#34-1118   
CRTNXA	  014670 R	 75-3452   #75-3461   
CRTNX1	  014662 R	 75-3455   #75-3458   
CRTNX2	  014670 R	#75-3467   
CRTNX3	  014672 R	 75-3459   #75-3482    75-3513   
CRTY  	= 002000	#189-10083  199-10517  200-10538  200-10544  209-10904 
CR$BO5	= 042750 RG	#245-13171 
CR$B03	= 046144 RG	#276-14736 
CR$CBR	= 017750 RG	#84-4286   
CR$DTB	= 030306 RG	#178-9345  
CR$DTD	= 011662 RG	#43-1788   
CR$DTF	= 027772 RG	#177-9232  
CR$ETE	= 027704 RG	#176-9180  
CR$FTA	= 011564 RG	#43-1757   
CR$IAS	= 015042 RG	#75-3525   
CR$ILF	= 025402 RG	#149-8203  
CR$ILQ	= 030762 RG	#179-9531  
CR$LRF	= 014026 RG	#71-3176   
CR$MPE	= 011726 RG	#43-1805   
CR$PT1	= 030400 RG	#178-9374  
CR$PT2	= 030416 RG	#178-9379  
CR$PT3	= 030726 RG	#179-9511  
CR$PT4	= 031032 RG	#179-9542  
CR$RES	= 011670 RG	#43-1791   
CR$TBT	= 011676 RG	#43-1794   
CR$TET	= 027666 RG	#176-9174  
CR$T04	= 011640 RG	#43-1781   
CR$UIE	= 030640 RG	#179-9474  
CSDONE	  014612 R	 74-3307   #74-3397   
CS.EXP	= 177670	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
CTLO  	= 000040	#189-10086  197-10489  200-10536  211-11024  218-11514  218-11515 
CTRLC 	  032236 R	#190-10213  218-11621 
CTRLU 	  032242 R	#190-10215  218-11592 
CTRLZ 	  032246 R	#190-10217  218-11612 
CTYPTR	  002634 RG	#17-840     161-8503   197-10466  197-10485  208-10832  208-10839  209-10862  209-10880  216-11424 
                         218-11508 
CTYSTS	  002664 RG	#18-876     197-10486  209-10881 *211-11042  211-11047  211-11062  218-11509 
CURBF 	= 000006	#189-10070 *199-10518  218-11556 *218-11557 *218-11560  218-11572 *218-11574  218-11575 *218-11595 
CYCLS 	= 000002	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
C.AS  	= 000002  G	#54-2366   
C.AT  	= 000000  G	#54-2365    120-6220  
C.FA  	= 000012  G	#54-2370   
C.FM  	= 000010  G	#54-2369   
C.HALT	= 000033  G	#189-10201 
C.HCRT	= 000015  G	#189-10196  209-10903  211-10975  218-11543 
C.HEOF	= 000032  G	#189-10199  218-11541 
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 5

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

C.HESC	= 000033  G	#189-10200  189-10201  218-11539 
C.HFFD	= 000014  G	#189-10195 
C.HLFD	= 000012  G	#189-10193  210-10945  211-10978 
C.HPAR	= 000200  G	#189-10203 
C.HSPC	= 000040  G	#189-10202 
C.HTAB	= 000011  G	#189-10192  211-10980 
C.HVTB	= 000013  G	#189-10194 
C.HXOF	= 000023  G	#189-10198  216-11407  247-13228 
C.HXON	= 000021  G	#189-10197  247-13223 
C.RS  	= 000006  G	#54-2368   
C.SD  	= 000004  G	#54-2367   
C.SZ  	= 000014  G	#15-782     15-791    #54-2372    118-6124   120-6231   143-7912   253-13441 
C1    	= 140010	#40-1534    40-1584    40-1588    40-1613   
C1DB  	= 140110	#40-1536    40-1540    40-1546    40-1551    40-1556    40-1561    40-1566    40-1571    40-1576   
DAG1  	= 000030	#3-125      81-3952    81-4002   *97-4981    97-4984    97-4997   *97-5026   *100-5137   100-5141  
                        *101-5159   101-5160  *277-14847  277-14850 *277-14893  277-14896 
DAG2  	= 000032	#3-124     *84-4292   *101-5162  *277-14884 
DAG3  	= 000036	#3-122     *177-9291  *183-9774  
DATE  	= 000004	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
DBLDON	  031044 R	 179-9492   179-9527  #179-9548  
DBLEPP	  030644 R	 179-9462  #179-9479  
DBLEPX	  030650 R	 179-9457  #179-9481  
DBLHDR	  030740 R	 179-9508  #179-9525  
DBLPWR	  030700 R	 179-9473  #179-9497  
DBLRLD	  030654 R	 179-9471  #179-9487  
DBLXFR	  030710 R	 179-9469  #179-9506  
DBLXIT	  031056 R	 179-9499   179-9518   179-9546  #179-9551  
DCOMST	= 000001	#7-262     #48-2092   #80-3894   #82-4186   #86-4445    97-4978    97-4984    97-5010    97-5018   
                        #145-8019  #175-9120  #189-10058 #250-13319 
DEAND1	  026220 R	 148-8182   155-8320   156-8355   156-8366   156-8376   157-8398   158-8422   158-8424   159-8452  
                        #160-8483  
DEAND3	  025640 R	 150-8214   152-8244   152-8246   153-8282   153-8285   153-8287   153-8294   154-8306  #155-8319  
DEANOD	  026654 R	 160-8484   161-8525   162-8540   163-8571   164-8614   165-8630  #165-8639   166-8661   167-8673  
                         167-8681   168-8693   168-8697   174-9061  
DEP   	= 010000	#7-262      44-1861   #48-2092   #80-3894    81-3984    81-4022    81-4028    81-4070    81-4122   
                        #82-4186   #86-4445    91-4751    97-5027    98-5064    99-5094   #145-8019  #175-9120   177-9284  
                         182-9723   183-9777   184-9814  #189-10058 #250-13319  279-15018 
DEPOF 	  001234 RG	#11-593    *90-4633    90-4685    92-4797   
DEX   	= 000400	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
DEXCOM	  013444 R	#67-2972   
DEXDON	= 000004	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
                         277-14840 
DEXST 	  001344 RG	#12-682    *97-4982   *97-4986   *277-14835 *277-14842 
DEXTM1	  001352 RG	#12-688     90-4665   
DEXTM2	  001350 RG	#12-686     90-4626    90-4638    90-4661    90-4698   
DEXTM3	  001346 RG	#12-684     90-4622   
DEXWD1	= 174406	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
DEXWD2	= 174404	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
DEXWD3	= 174402	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
DE.01 	= 000377  G	#67-2929    76-3662    118-6121   124-6564   137-7513   137-7520  
DE.02 	= 000376  G	#67-2930    87-4523    91-4761    97-4988    99-5104    127-6854   131-7164   141-7783  
DE.03 	= 000375  G	#67-2931    77-3709    91-4764   
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 6

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

DE.04 	= 000374  G	#67-2932    128-6976  
DE.05 	= 000373  G	#67-2933    105-5399   124-6497  
DE.06 	= 000372  G	#67-2934   
DE.07 	= 000371  G	#67-2935    76-3660   
DE.08 	= 000370  G	#67-2936    131-7214   135-7396  
DE.09 	= 000367  G	#67-2937   
DE.10 	= 000366  G	#67-2938   
DE.11 	= 000365  G	#67-2939   
DE.80 	= 000260  G	#67-2940   
DE.81 	= 000257  G	#67-2941   
DE.90 	= 000246  G	#67-2942    103-5304  
DE.91 	= 000245  G	#67-2943   
DE.92 	= 000244  G	#67-2944    103-5280  
DE.93 	= 000243  G	#67-2945   
DE.94 	= 000242  G	#67-2946    77-3718   
DE.95 	= 000241  G	#67-2947    77-3719   
DE.96 	= 000240  G	#67-2948    78-3786   
DE.97 	= 000237  G	#67-2949    113-5811   118-6093   120-6229   252-13413 
DE.98 	= 000236  G	#67-2950    115-5966  
DE.99 	= 000235  G	 67-2856   #67-2951    88-4553   
DFTBL 	  025302 RG	 147-8142  #148-8161   148-8194  
DFTSZ 	= 000076	#148-8194  
DFUNC 	= 000200	#7-262     #48-2092   #80-3894   #82-4186   #86-4445    97-4978    97-5010    97-5018   #145-8019  
                        #175-9120  #189-10058 #250-13319 
DF.DMG	= 000004	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
DF.DMN	= 000007	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
DF.DOR	= 000001	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
DF.EHG	= 000010	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058  190-10223 
                        #250-13319 
DF.EHM	= 000011	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
DF.EMG	= 000005	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
DF.EMN	= 000006	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
DF.KLR	= 000012	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
DF.KLW	= 000013	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
DF.KLX	= 000014	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
DF.OFF	= 000002	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
DF.ON 	= 000003	#7-262     #48-2092   #80-3894    81-4117   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 
                        #250-13319 
DF.PDP	= 000016	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
DF.PEX	= 000015	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
DHBUF 	= 000020	#189-10076 *211-11042  211-11047 
DHCNT 	= 000200  G	#28-974     39-1481   
DHERLG	  041106 R	 229-12227  229-12227  230-12330  230-12330 #230-12408  231-12486  231-12486 
DHISTQ	  035570 R	 212-11126  212-11132  212-11134  212-11138  212-11140 #213-11205  215-11341 
DHSAV 	  037274 R	 201-10563  212-11101  213-11196 #219-11666 
DHSTSV	  002652 RG	#17-855    *213-11199  213-11221 
DHTBL 	  003046 RG	 19-898     19-899     19-900     19-901     19-902     19-903     19-904     19-905    #21-941    
                         28-974     39-1481    153-8272   169-8776   171-8909   209-10858  209-10922  211-11040  219-11677 
                         220-11731  230-12292 
DHTMP 	  002646 RG	#17-851    *201-10562 *213-11195  219-11673 
DH.FER	= 020000  G	#189-10188  213-11271 
DIAG1 	= 174430	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 7

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

DIAG2 	= 174432	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
DIAG3 	= 174436	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
DIKL10	= 000010	#7-262     #48-2092   #80-3894   #82-4186   #86-4445    97-4978    97-5018    97-5026   #145-8019  
                        #175-9120  #189-10058 #250-13319 
DIRDPT	  013216 R	 67-2857   #67-2859    67-2897   
DIRMAX	= 000102	 67-2854   #67-2897   
DIROK 	  013212 R	 67-2855   #67-2857   
DIV216	  044036 RG	 114-5859   114-5859   252-13396  252-13396  258-13748  258-13748 #260-13802 
DLCNT 	= 000005  G	#20-936     39-1477    153-8279   156-8354  
DLECNT	= 000004  G	#20-937     229-12145 
DLETBL	  003006 RG	 17-844    #20-931     20-937     229-12144 
DLHUPX	  040302 R	 226-12023 #228-12092 
DLTBL 	  002776 RG	 17-841    #20-929     20-936     39-1477    169-8759   229-12135 
DLTMP 	  002650 RG	#17-853    *206-10753 *215-11335  219-11690 
DLYCNT	= 174400	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
DL.CAR	= 010000  G	#189-10166  217-11481  229-12154 
DL.CTS	= 020000  G	#189-10165 
DL.DEN	= 000040  G	#189-10171  217-11466  228-12090  229-12223  229-12239 
DL.DSC	= 100000  G	#189-10163 
DL.DTR	= 000002  G	#189-10174  217-11466  217-11493  229-12158 
DL.FER	= 020000  G	#189-10180  215-11343 
DL.RAC	= 004000  G	#189-10167 
DL.RDE	= 000001  G	#189-10175 
DL.RDN	= 000200  G	#189-10169 
DL.REN	= 000100  G	#189-10170  217-11486  228-12090  229-12206  229-12234  242-13005  243-13062 
DL.RNG	= 040000  G	#189-10164  217-11464 
DL.RTS	= 000004  G	#189-10173  217-11466  217-11483  229-12156  229-12158 
DL.SRD	= 002000  G	#189-10168 
DL.STD	= 000010  G	#189-10172 
DL.UNA	= 001420  G	#189-10176 
DL.XEN	= 000100  G	#189-10184  207-10799  211-11034  211-11054  229-12212  229-12236 
DMTBE 	= 002776 RG	#19-907     231-12449 
DMTBL 	  002734 RG	#19-897     171-8908   224-11886  224-11896  231-12442 
DMTMP 	  002644 RG	#17-849    *224-11880  224-11882 
DMTNXM	  041066 R	 230-12295 #230-12393  230-12396 
DMYN  	= 000004  G	#11-606    *90-4684   *90-4685    94-4867    177-9283   183-9775   184-9813  
DNBLK 	  005606 RG	#33-1065   
DNFCN 	  005610 RG	#33-1067   
DNSTS 	  005616 RG	#33-1070   
DON10C	= 040000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120   177-9227  #189-10058 
                        #250-13319 
DON10S	= 100000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
DON11C	= 000100	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120   178-9332  #189-10058 
                        #250-13319 
DON11S	= 000200	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
DPB.CK	= ******	 103-5262   105-5388  
DPCMN 	  021112 R	#91-4750    94-4868   
DPMSEP	  021140 R	 91-4754   #91-4763   
DPSEC 	  021136 R	 91-4757   #91-4760   
DPS4  	= 040000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
DQNXT 	  033172 R	#197-10456  198-10501  198-10508 
DRESET	= 000100	#7-262     #48-2092   #80-3894   #82-4186    84-4292   #86-4445    101-5162  #145-8019  #175-9120  
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 8

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                        #189-10058 #250-13319  277-14884 
DRXCOM	  013460 R	 67-2971   #67-2977   
DRXRR 	  013472 R	 67-2974   #67-2979   
DR.DTE	= 000011	#7-262     #48-2092   #80-3894    81-4117   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 
                         190-10223 #250-13319 
DR.00 	= 000000  G	#67-2922    110-5659   111-5709   112-5768  
DR.01 	= 000001  G	#67-2923    76-3659    76-3661    89-4590    91-4758    97-5003    99-5101    100-5143   103-5306  
                         105-5408   107-5515   113-5809   114-5874   115-5952   115-5964   116-6000   118-6135   120-6218  
                         122-6312   124-6669   126-6776   131-7198   133-7304   135-7392   139-7679  
DR.02 	= 000002  G	#67-2924    109-5609   127-6921  
DR.03 	= 000003  G	#67-2925    127-6923  
DSEND 	= 000004	#7-262     #48-2092   #80-3894   #82-4186   #86-4445    97-5018    97-5023    97-5026   #145-8019  
                        #175-9120  #189-10058 #250-13319 
DS.99 	  013210 R	#67-2856    67-2873    67-2881    67-2882    67-2889    67-2890    67-2894   
DS04  	= 004000	#7-262     #48-2092   #80-3894    81-3952    81-4002   #82-4186   #86-4445    101-5160  #145-8019  
                        #175-9120  #189-10058 #250-13319  277-14850 
DS05  	= 002000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
DS06  	= 001000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
                         277-14896 
DTBUF 	  005476 RG	#30-1000   
DTCNT 	  005502 RG	#30-1002   
DTCW2 	  005504 RG	#30-1004   
DTCW3 	  005506 RG	#30-1006   
DTEADR	  001270 RG	#12-638     177-9246  *177-9297  
DTECMD	= 000451	#7-262     #48-2092   #80-3894    81-3971    81-4048   #82-4186   #86-4445   #145-8019  #175-9120  
                        #189-10058 #250-13319 
DTEDSP	  020442 R	 87-4502   #87-4506   
DTEFLG	= 000444	#7-262     #48-2092   #80-3894    81-3985    81-4123   #82-4186   #86-4445   #145-8019  #175-9120  
                        #189-10058 #250-13319 
DTEF11	= 000450	#7-262     #48-2092   #80-3894    81-4023   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 
                        #250-13319 
DTEHD 	  024652 RG	 36-1284    37-1351    38-1416   #147-8122  
DTEMSK	  001266 RG	#12-636     177-9246  *177-9296  
DTEMTD	= 000455	#7-262     #48-2092   #80-3894    81-4071   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 
                        #250-13319 
DTEMTI	= 000456	#7-262     #48-2092   #80-3894    81-4012    81-4029   #82-4186   #86-4445   #145-8019  #175-9120  
                        #189-10058 #250-13319 
DTENM 	= 000000	#11-602    
DTESNP	  046534 R	 277-14858  277-14858  277-14874  277-14874  277-14911  277-14911 #278-14951 
DTESP 	  025132 RG	 37-1351    147-8123  #147-8123  
DTETPD	  007572 RG	 36-1284   #38-1415   
DTETSK	  007112 RG	 37-1346   #37-1350    37-1354   *178-9362  
DTEXIT	  027726 R	 176-9184  #176-9188   179-9482  
DTHD  	= ******  GX	 36-1293    37-1378    38-1441   
DTRNA 	  005474 RG	#30-998    
DTRTC 	  005472 RG	#30-996    
DTSTK 	= ******  GX	 37-1378   
DTTPD 	  007732 RG	 36-1293   #38-1440   
DTTSK 	  007352 RG	 37-1371   #37-1377    37-1385    40-1584    40-1588   
DT0PEN	  011002 RG	 36-1307   #40-1583    40-1584    40-1623   
DT1PEN	  011052 RG	#40-1587    40-1588   
DUPE  	= 000020	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 9

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

DURE  	= 000004	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
DVCH  	= 110220	#40-1530    40-1540    40-1546    40-1551    40-1556    40-1561    40-1566    40-1571    40-1576   
                         40-1584    40-1588    40-1613   
DV.CFG	= 004000  G	#60-2563   
DV.EOF	= 000040  G	#60-2557   
DV.F11	= 000400  G	#60-2560   
DV.HNG	= 001000  G	#60-2561   
DV.IOP	= 000020  G	#60-2556   
DV.LIN	= 002000  G	#60-2562    230-12411 
DV.LOG	= 000100  G	#60-2558    213-11291  230-12411  278-14977 
DV.NXD	= 000001  G	#60-2552   
DV.OFL	= 000002  G	#60-2553   
DV.OIR	= 000004  G	#60-2554   
DV.SCN	= 000010  G	#60-2555   
DV.URE	= 000200  G	#60-2559    213-11291  277-14913  278-14977 
DWNMS 	  012770 R	 66-2750   #66-2756    66-2759   
DWNMSG	  012756 R	 66-2734   #66-2749   
DWNMSZ	= 000043	 66-2750    66-2750   #66-2759   
DXTSK 	  007452 RG	 37-1385   #37-1394    37-1398   
DXWD1 	= 000006	#3-131     *81-4021    97-4993   *97-5022   *177-9273   179-9461  *183-9766  *184-9809   279-15029 
                        *279-15038 
DXWD2 	= 000004	#3-132      81-4016   *81-4020    97-4992   *97-5021   *177-9274   179-9460  *183-9767  *184-9810  
                         279-15028 *279-15037 
DXWD3 	= 000002	#3-133      81-3946    81-3976   *81-3983   *81-4019   *81-4027    81-4055    81-4057    81-4065   
                        *81-4069    81-4084   *81-4121    97-4991   *97-5020   *177-9279   179-9459   179-9539   181-9659  
                         181-9672  *183-9771  *184-9811   279-15027 *279-15036 
DXWRD1	= 002000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
D$$H11	= 000010	#1-43       8-401     
D.AT  	= 000000  G	#55-2388   
D.CCDR	= 000006  G	#39-1491   
D.CCLK	= 000007  G	#39-1495   
D.CCPU	= 000200  G	#39-1509    161-8516  
D.CCTY	= 000001  G	#39-1471    161-8501  
D.CDH1	= 000003  G	#39-1479   
D.CDLS	= 000004  G	#39-1483    174-9041   196-10440  208-10845  225-11990  272-14488 
D.CDL1	= 000002  G	#39-1475   
D.CDMB	= 000204  G	#39-1513   
D.CDTE	= 000202  G	#39-1511    196-10442 
D.CKLE	= 000201  G	#39-1510   
D.CKLN	= 000210  G	#39-1515   
D.CLOG	= 000205  G	#39-1514   
D.CLPT	= 000005  G	#39-1487    194-10335 
D.CRJP	= 000203  G	#39-1512    196-10445 
D.FA  	= 000004  G	#55-2390   
D.FEPD	= 000010  G	#39-1498   
D.FM  	= 000002  G	#55-2389   
D.SZ  	= 000006  G	#55-2392   
D1011 	= 000040	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
EBSEL 	= 000100	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
EBUSPC	= 000020	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
EBUSPS	= 000004	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
ECHOB 	  035004 R	 209-10900  209-10905  210-10946  210-10955 #211-10971  218-11636 
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 10

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

EDONES	= 040000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
EDRMT 	  025406 RG	 148-8184  #150-8212  
EF.BOV	= 000040  G	#49-2176   
EF.CLK	= 000002  G	#49-2168   
EF.CRI	= 002000  G	#49-2208    81-3939    81-3957    81-4082    83-4226   
EF.CTC	= 040000  G	#49-2200    216-11429 
EF.DTE	= 000001  G	#49-2166   
EF.FCP	= 001000  G	#49-2210    81-3968   
EF.IOD	= 000020  G	#49-2174    190-10221  197-10452  209-10910 
EF.NIR	= 000010  G	#49-2172    76-3639    124-6663   190-10221  257-13645  257-13700 
EF.PFR	= 004000  G	 43-1786   #49-2206    81-4082    83-4226    85-4374    179-9498  
EF.PR1	= 100000  G	#49-2198    280-15067  282-15115 
EF.PR2	= 020000  G	#49-2202    216-11441  280-15067  281-15094 
EF.RKH	= 002000  G	#49-2186    190-10221  192-10295  228-12083 
EF.RKP	= 010000  G	#49-2204    167-8676   167-8680  
EF.RKR	= 001000  G	#49-2184    190-10221  192-10291  217-11476 
EF.RQM	= 000200  G	#49-2180    190-10221  192-10286  216-11434 
EF.RSS	= 004000  G	#49-2188    190-10221  192-10299  222-11800 
EF.SND	= 100000  G	#49-2193   
EF.TED	= 000100  G	#146-8044   146-8093   178-9362  
EF.TMO	= 000100  G	 15-789    #49-2178    190-10221  193-10313  195-10387 
EF.TTY	= 000004  G	#49-2170   
EF.WFM	= 000400  G	#49-2182   
EHSG  	= 000006  G	#11-608    *90-4691    95-4902   
EHSM  	= 000010  G	#11-610    *90-4707    96-4936    179-9454   179-9535   181-9655  
EIS   	= ******	 284-15341  284-15346 
EMGSTK	  011426 RG	#42-1686    43-1732    44-1824   
EMTSTK	  001116 RG	#9-484     *43-1747   *67-2789   *67-2808    67-2911    67-2914   *67-2958    67-2972    67-2977   
                         67-2999   
EMTTRP	  013036 RG	 8-331     #67-2784   
EMYN  	= 000002  G	#11-604    *90-4682    93-4833   
EM.DRO	= 000020  G	#67-2780    67-2810    67-2842   *67-2973   *67-2978    67-2998   *122-6306  
ENBXOF	  025416 RG	 148-8189  #151-8225  
ENTELQ	  030320 R	#178-9353   178-9397  
EOLS  	= 000400	#189-10085  199-10517  200-10538  210-10936  218-11561  218-11623  218-11632 
EPTR  	= 000000	#7-262     #48-2092   #80-3894    81-3970    81-3984    81-4011    81-4022    81-4028    81-4047   
                         81-4070    81-4122   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
EQSZ  	  001332 RG	#12-675    *178-9401  *179-9539   179-9540   180-9598  *180-9614  
ERR10C	= 010000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
ERR10S	= 020000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
ERR11C	= 000001	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
ERR11S	= 000002	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
EV.AS 	= 000002  G	#64-2671    75-3498    75-3514    79-3828   
EV.PF 	= 000200  G	 42-1680   #64-2672    75-3491    75-3521    84-4308   
EV.SE 	= 000001  G	#64-2668    69-3081    74-3308    75-3491    116-5999   259-13781 
EXCMN 	  021146 R	#92-4798    93-4834    95-4903    96-4937   
EXKAL 	  032260 R	#190-10222  195-10393 
E.BOV 	= 000006  G	#49-2177   
E.CLK 	= 000002  G	#49-2169   
E.DTE 	= 000001  G	#49-2167   
E.DV  	= 000006  G	#146-8051   164-8588   166-8658   173-8983  
E.FCRI	= 000073  G	#49-2209   
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 11

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

E.FCTC	= 000077  G	#49-2201   
E.FFCP	= 000072  G	#49-2211   
E.FN  	= 000004  G	#146-8050   147-8140   164-8585  
E.FP  	= 000000  G	#146-8048  
E.FPFR	= 000074  G	#49-2207   
E.FPR1	= 000100  G	#49-2199   
E.FPR2	= 000076  G	#49-2203    81-3922    81-4116   
E.FRKP	= 000075  G	#49-2205   
E.FSND	= 000040  G	#49-2194   
E.FW  	= 000010  G	#146-8052   150-8213  *152-8239   152-8243   153-8278  *155-8316   155-8318   156-8331   156-8336  
                         156-8346   156-8353  *156-8357   156-8362   156-8370  *157-8385   157-8403  *158-8417   158-8421  
                         161-8497   164-8586   164-8589   165-8628   167-8671   173-8984  
E.IOD 	= 000005  G	#49-2175   
E.LS  	= 000002  G	#146-8049  
E.NIR 	= 000004  G	#49-2173   
E.OPSZ	= 000060  G	#146-8040   276-14733 
E.RKH 	= 000013  G	#49-2187   
E.RKR 	= 000012  G	#49-2185   
E.RQM 	= 000010  G	#49-2181   
E.RSS 	= 000014  G	#49-2189   
E.TMO 	= 000007  G	#49-2179   
E.TTY 	= 000003  G	#49-2171   
E.WFM 	= 000011  G	#49-2183   
FDVNM 	  027464 R	 163-8570   163-8570   164-8606   164-8606  #174-9017  
FDVNMF	  027576 R	 172-8948  #174-9058  
FDVNMM	  027450 R	 152-8240   152-8240   153-8258   153-8258   154-8304   154-8304   155-8317   155-8317   156-8358  
                         156-8358   157-8386   157-8386   158-8418   158-8418   159-8449   159-8449   160-8478   160-8478  
                         166-8652   166-8652  #173-8982  
FEHD  	= ******  GX	 36-1288    37-1385    38-1420   
FELXFR	  030356 R	 178-9349  #178-9369  
FESTK 	= ******  GX	 37-1385   
FETBL 	  005542 RG	#33-1049    39-1499   
FETPD 	  007612 RG	 36-1288   #38-1419   
FETSK 	  007412 RG	 37-1378   #37-1384    40-1613   *81-3923   
FE0PUD	  011172 RG	#40-1612    40-1613   
FLBT  	= 000001	#189-10089 
FLBYT 	= 000011	#189-10072  210-10962 *211-10989 *211-11012 
FLCT  	= 000017	#189-10088  200-10538  209-10882 
FLDVOT	  026664 RG	 148-8172  #166-8651  
FNBYT 	= 000005	#189-10069 *218-11602 *218-11610 *218-11619 *218-11630 
FNDDM 	  027366 R	 153-8281   153-8281   156-8365   156-8365  #171-8906  
FNDSPD	  027420 R	 156-8332   156-8332   156-8337   156-8337  #172-8939  
FORPRO	= 000020	#7-262     #48-2092   #80-3894   #82-4186   #86-4445    90-4645    90-4686    90-4692   #145-8019  
                        #175-9120   177-9282   179-9453   179-9534   181-9654   183-9776   184-9812  #189-10058 #250-13319 
FW    	= 000300	#40-1532    40-1540    40-1546    40-1551    40-1556    40-1561    40-1566    40-1571    40-1576   
                         40-1584    40-1588   
F11TPD	  007772 RG	 36-1307   #38-1455    43-1755    71-3174   
GENTPD	  010012 RG	#38-1459   
GETBUF	  031612 R	 180-9600   180-9600   181-9661   181-9661  #185-9849  
HANGUP	  025466 RG	 148-8175  #153-8257  
HDR64 	= ******	 72-3187    74-3324    74-3339    78-3760    141-7797   257-13687 
HIBYTE	= 177400	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 12

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

HICTS 	  026224 RG	 148-8162  #161-8495  
HIDVST	  026420 RG	 148-8168  #163-8554  
HORPS 	= 000016	#189-10075  211-10985 *211-11001 *211-11020 
H.CSP 	= 000000  G	#51-2245   
H.DSW 	= 000046  G	#51-2247    74-3330    74-3345   
H.FCP 	= 000050  G	#51-2248   
H.FOR 	= 000052  G	#51-2249   
H.HSZ 	= 000002  G	#51-2246   
H.IPC 	= 000076  G	#51-2252    72-3194   
H.IPS 	= 000074  G	#51-2251    72-3195   
H.ISP 	= 000100  G	#51-2253    72-3202   
H.KCAC	= 000020  G	#41-1646   
H.KCHN	= 000010  G	#41-1645   
H.KEXT	= 000004  G	#41-1644   
H.KMOS	= 000002  G	#41-1643   
H.KPWR	= 000040  G	#41-1647   
H.KUDF	= 000001  G	#41-1642   
H.LUT 	= 000130  G	#51-2255    72-3196    72-3199    78-3766    139-7660   285-15416 
H.OVL 	= 000054  G	#51-2250   
H.TKVA	= 000106  G	#51-2254    72-3193    139-7657  
IDXTB 	  032360 R	#191-10250  213-11242 
IE.ABO	= 177761	 211-11072 
IFLOP 	= 100000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120   178-9404   180-9616  
                         181-9683  #189-10058 #250-13319 
IGNO  	  012140 RG	 39-1473    39-1473    39-1477    39-1477    39-1481    39-1481    39-1485    39-1485    39-1489   
                         39-1493    39-1493    39-1496    39-1496    39-1496    39-1496    39-1499    39-1499   #44-1882   
INIAN 	  046130 RG	 42-1684   #276-14732 
INITLM	  011320 RG	#42-1665    288-15579 
INPPT 	  034736 R	 209-10889 #210-10935 
INPT0 	  034744 R	#210-10938 
INPT1 	  035302 R	 210-10937 #211-11061 
INSHD 	= ******  GX	 36-1321    38-1412   
INSTAL	= ******  GX	 36-1321   
INSTK 	= ******  GX	 36-1321   
INSTPD	  007552 RG	 36-1321   #38-1411   
INTLPS	  027640 R	#176-9167   177-9260   177-9262   177-9299   178-9415   179-9552  
INTROF	= 000010	#7-262     #48-2092   #80-3894    81-3931   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 
                        #250-13319  280-15066  281-15093 
INTRON	= 000040	#7-262     #48-2092   #80-3894    81-4126   #82-4186   #86-4445    90-4680   #145-8019  #175-9120  
                        #189-10058 #250-13319 
INTSON	= 000001	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
INT10S	= 000400	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
INT11C	= 002000	#7-262     #48-2092   #80-3894    81-3975    81-4050    81-4059   #82-4186   #86-4445   #145-8019  
                        #175-9120   179-9451  #189-10058 #250-13319 
INT11S	= 004000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
                         281-15093 
IOPSIZ	= 007777	#45-1918    45-1928   
IOTTRP	  011732 R	 43-1773   #44-1821   
IO.ATT	= 001400	 257-13672 
IO.DET	= 002000	 257-13674 
IO.LOV	= 001010	 257-13676 
IO.LTK	= 000050	 76-3610    257-13684 
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 13

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

IO.RLB	= 001000	 124-6633   197-10490  257-13682  285-15423 
IO.RVB	= 010400	 124-6631   124-6639   285-15424 
IO.STC	= 002500	 124-6621  
IO.WLB	= 000400	 81-4133    124-6630   197-10487  285-15426 
IO.WVB	= 011000	 124-6628   124-6641  
IS.SUC	= 000001	 197-10492  209-10908  211-11066 
KBB0  	= 177562  G	#49-2101   
KBB1  	= 175612  G	#49-2105   
KBS0  	= 177560  G	#49-2100   
KBS1  	= 175610  G	#49-2104   
KLCST 	  021226 R	#97-4980    97-5024    97-5034   
KLNLGL	= 000016  G	#10-575    
KLNPLN	= 000026  G	 10-557     10-561    #10-580     161-8513  
KLNPTR	  002636 RG	#17-843     153-8268   157-8393   169-8761   197-10462  209-10866  209-10916  211-11030  216-11384 
                         217-11468  217-11487  228-12078  234-12640  236-12718  270-14313  271-14414 
KLPWRF	= 000010	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120   179-9472  #189-10058 
                        #250-13319 
KL.ABO	= 010000  G	#56-2412   
KL.CFL	= 000400  G	#56-2408   
KL.CFM	= 000002  G	#56-2399   
KL.DEF	= 002000  G	#56-2410   
KL.KAC	= 001000  G	#56-2409   
KL.LCA	= 000100  G	#56-2404   
KL.LRM	= 000001  G	#56-2398   
KL.LVB	= 000004  G	#56-2400   
KL.REQ	= 004000  G	#56-2411   
KL.SPF	= 000040  G	#56-2403   
KL.SSC	= 000200  G	#56-2406   
KL.VBD	= 000020  G	#56-2402   
KL.VBN	= 000010  G	#56-2401   
KPAL0 	  001376 RG	#13-727     90-4713    190-10223  195-10395  195-10424 
KPAL1 	  001406 RG	#13-731    *182-9717   182-9720  
KPAR0 	= 172360	#49-2115   
KPAR1 	= 172362	#49-2116   
KPAR2 	= 172364	#49-2117   
KPAR3 	= 172366	#49-2118   
KPAR4 	= 172370	#49-2119   
KPAR5 	= 172372	#49-2120   
KPAR6 	= 172374	#49-2121   
KPAR7 	= 172376	#49-2122   
KPDR0 	= 172300	#49-2124   
KPDR1 	= 172302	#49-2125   
KPDR2 	= 172304	#49-2126   
KPDR3 	= 172306	#49-2127   
KPDR4 	= 172310	#49-2128   
KPDR5 	= 172312	#49-2129   
KPDR6 	= 172314	#49-2130   
KPDR7 	= 172316	#49-2131   
KS.CES	= 000002  G	#56-2420    277-14852 
KS.CPE	= 001000  G	#56-2428   
KS.CST	= 000020  G	#56-2423    195-10416 
KS.DEX	= 000010  G	#56-2422    277-14856 
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 14

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

KS.DPE	= 002000  G	#56-2429   
KS.EPE	= 000004  G	#56-2421    277-14873  277-14912 
KS.FCF	= 004000  G	#56-2430   
KS.FME	= 000400  G	#56-2427   
KS.PFT	= 000100  G	#56-2425    84-4304   
KS.PTO	= 000200  G	#56-2426    81-3962   
KS.TRR	= 000040  G	#56-2424    179-9488  
KS.TSP	= 000001  G	#56-2419    277-14898 
KT11  	= ******	 67-2809    67-2812    67-2905    67-2985    67-2988    67-2997    67-3001    74-3318    74-3357   
                         74-3398    75-3504    78-3755    79-3815    124-6636   137-7541   141-7811   283-15155  283-15161 
                         284-15320  284-15333  284-15336  284-15355  284-15366 
K.LBPW	= 000005  G	#61-2590   
K.LCKL	= 177777  G	#61-2574   
K.LCON	= 000004  G	#61-2584   
K.LDCM	= 000001  G	#61-2581   
K.LDRP	= 177777  G	#61-2582   
K.LDSC	= 000003  G	#61-2580   
K.LLTO	= 000006  G	#61-2592   
K.LRAC	= 000001  G	#61-2577   
K.LRBA	= 000007  G	#61-2594   
K.LRMN	= 000003  G	#61-2587   
K.LRNG	= 000002  G	#61-2576   
K.LROP	= 000001  G	#61-2585   
K.LRPR	= 000002  G	#61-2586   
K.LRRJ	= 177777  G	#61-2578   
K.LSCK	= 000001  G	#61-2572   
K.LSKL	= 000001  G	#61-2573   
K.LUND	= 000000  G	#61-2570   
K.LUSR	= 177777  G	#61-2588   
LDLPR 	  026420 RG	 148-8185  #163-8555  
LDLPV 	  026420 RG	 148-8186  #163-8556  
LFBT  	= 004000	#189-10082  199-10524  210-10944 
LFCT  	= 074000	#189-10081  200-10538  209-10884  218-11634 
LINCHR	  026464 RG	 148-8165  #164-8582  
LKS   	= 177546  G	#49-2099    84-4314   *84-4316   *85-4375   
LOAD11	= 000004	#7-262      44-1860   #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120   179-9470  
                        #189-10058 #250-13319 
LODNOD	  031712 R	 178-9392   178-9392   181-9669   181-9669  #187-9918  
LOWCOD	= 000000 RG	#8-318      8-319      8-338      8-338      8-338      8-338      8-345      8-345      8-351     
                         8-351      8-358      8-358      8-358      8-358      8-358      8-358      8-358      8-358     
                         8-358      8-358      8-358      8-358      8-358      8-358      8-358      8-368      8-368     
                         8-375      8-375      8-375      8-375      8-379      8-384      8-387      8-388      8-393     
                         8-394      8-400      8-400      8-400      8-400      8-400      8-400      8-400      8-400     
                         8-406      8-406      8-406      8-406      8-406      8-406      8-406      8-406      8-406     
                         8-406      8-406      8-406      8-406      8-406      8-406      8-406      8-406      8-406     
                         8-406      8-406      8-406      8-406      8-406      8-406      8-406      8-406      8-406     
                         8-406      8-406      8-406      8-406      8-406     
LPCEVF	  006210 RG	 35-1143   #35-1145   
LPCSA 	= 000002  G	#35-1182   #35-1182   
LPCSM 	= 000022  G	#35-1193   
LPEVFG	  006206 RG	#35-1142   
LPEXPA	= 175400  G	#35-1133    35-1182    35-1182   
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 15

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

LPEXPZ	= 000020  G	#35-1134    35-1157   
LPHD  	= ******  GX	 36-1326    37-1365    38-1428   
LPHUNG	  006212 RG	#35-1148   
LPITH 	= 000006  G	#35-1182   #35-1182   
LPMCB 	= 000020  G	#35-1192   
LPRMA 	= 000040  G	#35-1203   
LPRMC 	= 000044  G	#35-1205   
LPRMZ 	= 000042  G	#35-1204   
LPRTY 	= 000024  G	#35-1194   
LPSIZE	= 000010  G	#35-1183    35-1188    35-1199    35-1214    35-1214   
LPSTBH	  006216 RG	#35-1154   
LPSTBK	  006220 RG	#35-1156    35-1159   
LPSTK 	= ******  GX	 37-1365   
LPSTLN	= 000030  G	#35-1159   
LPSTS 	= 000000  G	#35-1182   #35-1182   
LPTBL 	  006250 RG	#35-1165    35-1183    35-1192    35-1193    35-1194    35-1203    35-1204    35-1205    35-1214   
                         35-1214    39-1489   
LPTBL2	  006270 RG	#35-1187    35-1192    35-1193    35-1194   
LPTBL3	  006310 RG	#35-1198    35-1203    35-1204    35-1205   
LPTHD 	= 000004  G	#35-1182   #35-1182   
LPTPD 	  007652 RG	 36-1326   #38-1427   
LPTSK 	  007252 RG	 37-1358   #37-1364    37-1371    40-1608   
LPUNIT	  006204 RG	#35-1139   
LPUTBL	  006330 RG	#35-1209   
LP0PUD	  011122 RG	#40-1607    40-1608   
L$$P20	= 000002	#1-37       35-1167    35-1183    35-1188    35-1199    35-1211   
L.DT0 	= 000003  G	#40-1581   
L.RP4 	= 000002  G	#40-1528   
L.TTY 	= 000001  G	#40-1524   
MACY11	= ******	 48-2084    82-4184   
MBUFR 	= 000014	#189-10074 *218-11583 *218-11639  218-11643 
MEBUF 	= 000012	#189-10073  210-10952 *210-10953 *218-11645 
MECNT 	= 000010	#189-10071  209-10886 *210-10954 *218-11646 
MODE  	= 100000	#189-10080  199-10517  200-10539 
MPE11 	= 001000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120   176-9171  #189-10058 
                        #250-13319 
MSETRP	= ******	 267-14071  267-14108  268-14178  268-14230  270-14330  270-14346 
M.PARQ	= 000002  G	#41-1654    192-10288  197-10458 
M.TAKP	= 000001  G	#41-1653   
NODADR	  005552 RG	#33-1054   
NOSNDA	  025424 RG	 148-8187  #152-8236  
NTKXEN	  012542 R	#66-2697    66-2723   
NTKXEP	  012546 R	 65-2695    65-2695   #66-2699    66-2716    66-2727   
NTKXSP	  012522 RG	 37-1401    65-2695   #65-2695   
NULHD 	  012242 RG	 37-1401   #65-2695   
NULSTP	= 000040	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
NULTSK	  007512 RG	 37-1347    37-1398   #37-1400   
NUPE  	= 000002	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
N.BP  	= 000002  G	#49-2216    262-13872 
N.FP  	= 000000  G	#49-2215   
N.OVPT	= 000054  G	#49-2153   
N.PR  	= 000010  G	#49-2217    262-13869  262-13869 
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 16

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

OKPAL0	  001404 RG	#13-729    *90-4713    195-10395 *195-10424 
OUTPT 	  034546 R	 200-10549  200-10549  209-10856 #209-10879  211-10992  218-11647 
OUTPT3	  034466 R	 201-10594  201-10594  206-10761 #209-10854 
PARLOA	  020266 R	#85-4363    85-4366   
PARLOT	  020340 R	 85-4359   #85-4383   
PARSAV	  001022 RG	#9-455      43-1799    44-1834   
PERCLR	= 001000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
PHYS  	= 100000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
PIDENT	= 000000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
PRB0  	= 177566  G	*44-1871   #49-2103   
PRB1  	= 175616  G	*44-1869   #49-2107   
PRI7  	= 000340  G	#7-262     #48-2092   #49-2112    67-3018   #80-3894   #82-4186   #86-4445   #145-8019   161-8517  
                         164-8592   170-8871  #175-9120  #189-10058 #250-13319 
PRMBLK	  023206 R	 124-6647  #124-6677  
PRMEMN	  001232 RG	#11-591    *90-4629    90-4696   
PROPNT	= 000021	#7-262     #48-2092   #80-3894   #82-4186   #86-4445    90-4686   #145-8019  #175-9120  #189-10058 
                        #250-13319 
PROTBL	  001236 RG	#11-612     87-4500    90-4650   
PRS0  	= 177564  G	 44-1873   #49-2102   
PRS1  	= 175614  G	 44-1877   #49-2106   
PRTOFF	= 004000	#7-262     #48-2092   #80-3894    81-3970    81-3984    81-4011    81-4022    81-4028    81-4047   
                         81-4070    81-4122   #82-4186   #86-4445    99-5096   #145-8019  #175-9120  #189-10058 #250-13319 
PRVCM 	  021466 R	 98-5065   #99-5095   
PR0   	= 000000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
PR1   	= 000040	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
PR2   	= 000100	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
PR3   	= 000140	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
PR4   	= 000200	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
PR5   	= 000240	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
PR6   	= 000300	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
PR7   	= 000340  G	#7-262     #48-2092   #49-2111   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 
                        #250-13319 
PS    	= 177776  G	#7-262     *42-1681    43-1728   #48-2092   #49-2098   *66-2698    66-2703   *66-2703   *66-2714   
                        *66-2725   *74-3312   *74-3395   *75-3450    79-3810   *79-3810   #80-3894   *81-3935    81-3938   
                        *81-3938   *81-3964   *81-3997    81-3999   *81-3999   *81-4066    81-4068   *81-4068   #82-4186   
                        #86-4445   #145-8019  *147-8128   147-8132  *147-8132  *147-8145   147-8149  *147-8149   161-8517  
                        *161-8517  *161-8519   164-8592  *164-8592  *164-8594   170-8871  *170-8871  *170-8873  #175-9120  
                        #189-10058  192-10280 *192-10280 *192-10284  193-10315 *193-10315 *193-10327  195-10431 *195-10431 
                        *195-10434  197-10457 *197-10457 *197-10474  200-10548 *200-10548 *200-10551  201-10562  206-10753 
                         213-11195  215-11335  224-11880 #250-13319  257-13655 *257-13655  261-13831 *261-13831 *261-13835 
                         262-13864 *262-13864  263-13898 *263-13898 *263-13903  264-13938 *264-13938 *264-13944 *265-13992 
                         267-14079 *267-14079 *267-14125  268-14177 *268-14177 *268-14222  274-14567 *274-14567 *274-14582 
                         275-14672 *275-14672 *275-14681  286-15490 *286-15490 
PSWW1 	= 000005	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120   182-9724  #189-10058 
                         190-10223 #250-13319 
PSWW10	= 000014	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
PSWW11	= 000015	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
PSWW12	= 000016	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
PSWW13	= 000017	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
PSWW2 	= 000006	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
PSWW3 	= 000007	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
PSWW4 	= 000010	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 17

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

PSWW5 	= 000011	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
PSWW6 	= 000012	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
PSWW7 	= 000013	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
PULSE 	= 000020	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
PWRXSP	  001032 RG	#9-468     *83-4257    84-4281   
PWR.UP	  017720 RG	 83-4258   #84-4280    84-4282   
QNDSV 	  023200 R	*124-6619  *124-6645  *124-6646  #124-6675   124-6677  
QPRDTC	  025152 RG	#147-8127   147-8137  
QPRDTE	  025156 RG	 147-8123   147-8123  #147-8129  
QPRDTF	  026660 R	 163-8573  #165-8641   169-8707  
QPRDTL	  025234 R	#147-8144   165-8642  
QPROAD	  017572 R	*81-4065    81-4133   #81-4134   
QPROMS	  017550 R	 81-4067   #81-4132   
QPRTPD	  007712 RG	 36-1338   #38-1436   
QPRTSK	  007452 RG	#37-1397    37-1401   
QSIZE 	= 000023	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120   177-9282   179-9534  
                         181-9654   183-9776  #189-10058 #250-13319 
Q.AK  	= 000012  G	#59-2535    154-8305   154-8305  
Q.DA  	= 000000  G	#59-2530    166-8656   174-9028  
Q.DZ  	= 000016  G	#59-2537    169-8755   174-9032  
Q.D1  	= 000006  G	#58-2524    128-6979  
Q.IOAE	= 000012	#81-4133   
Q.IOEF	= 000006	#81-4133   
Q.IOFN	= 000002	#81-4133   
Q.IOLU	= 000004	#81-4133   
Q.IOPL	= 000014	#81-4133   
Q.IOPR	= 000007	#81-4133   
Q.IOSB	= 000010	#81-4133   
Q.SI  	= 000004  G	#58-2523   *128-6987   131-7172   131-7182  
Q.SP  	= 000006  G	#59-2533    166-8654   166-8654  
Q.ST  	= 000004  G	#59-2532    163-8572   163-8572   164-8608   164-8608  
Q.SZ  	= 000020  G	#39-1469    39-1503   #59-2538   
Q.TS  	= 000002  G	#59-2531    174-9027  
RAMIS0	= 010000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
RCVKLP	  026722 RG	 148-8188  #167-8670  
RESERV	  011666 R	 43-1771   #43-1790   
RETTOD	  026626 RG	 148-8171  #165-8627  
RFMAD0	= 100000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
RFMAD1	= 040000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
RFMAD2	= 020000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
RFMAD3	= 010000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
RF.XR 	= 000002  G	#63-2644   
RM    	= 000010	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
RMBYT 	= 000004	#189-10068 *199-10519 *218-11558 *218-11576 *218-11594 
RPBUF 	  005524 RG	#32-1034   
RPCNT 	  005530 RG	#32-1036   
RPCW2 	  005534 RG	#32-1040   
RPHD  	= ******  GX	 36-1316    37-1358    38-1451   
RPPEN 	  010302 RG	#40-1539    40-1540   
RPRNA 	  005522 RG	#32-1032   
RPRTC 	  005520 RG	#32-1030   
RPSTK 	= ******  GX	 37-1358   
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 18

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

RPTPD 	  007752 RG	 36-1316   #38-1450   
RPTSK 	  007212 RG	 37-1354   #37-1357    37-1365    40-1540    40-1546    40-1551    40-1556    40-1561    40-1566   
                         40-1571    40-1576   
RPUNIT	  005532 RG	#32-1038   
RQKLD 	  032326 R	#190-10228  192-10297 
RQKLR 	  032310 R	#190-10226  192-10293 
RQMCR 	  032272 R	#190-10224  192-10289 
RQSPB 	  024074 R	 137-7503   137-7524   137-7552  #137-7554  
RQSPT 	  024070 RG	 137-7545  #137-7552  
RQSTD 	  024106 R	*137-7522   137-7532  #137-7555  
RSX$$E	= 000045	#3-97       6-187      9-473     
RSX$$F	= 000101	#3-105     #3-108      3-116      6-187      9-473      46-1946    249-13239 
RSX$$K	= 000126	#3-101      9-473     
RSX$$V	= 000014	#3-96       6-187      9-473     
RTDVST	  026420 RG	 148-8166  #163-8558  
RTNTOD	  026374 RG	 148-8170  #162-8534  
RUBP  	= 000020	#189-10087  200-10538  218-11563  218-11565  218-11577  218-11579  218-11593 
R$$11D	= 000001	#1-46      
R.AS  	= 000020  G	#63-2631    256-13593 
R.AT  	= 000006  G	#63-2624    256-13589  256-13596  257-13694  257-13711  285-15411 
R.DP  	= 000011  G	#63-2626   
R.FC  	= 000014  G	#63-2629    124-6620  *124-6630  *124-6633   124-6646   197-10487  197-10490  257-13671 *257-13682 
                         257-13684  285-15424 *285-15445 
R.FN  	= 000013  G	#63-2628    256-13587 
R.LU  	= 000012  G	#63-2627    285-15412 
R.PB  	= 000024  G	#63-2633    198-10502  200-10540  200-10542 *211-11076 *257-13678 *257-13679 *257-13680 *257-13693 
                         257-13701  257-13702  285-15433  285-15434  285-15435 *285-15443 *285-15444 
R.PR  	= 000010  G	#63-2625   
R.QSGC	= 000015	#66-2742   #66-2746   #146-8096  #190-10225 #190-10227 #190-10229 
R.QSPC	= 000014	#66-2742   #66-2746   #146-8096  #190-10225 #190-10227 #190-10229 
R.QSPN	= 000006	#66-2742   #66-2746   #146-8096  #190-10225 #190-10227 #190-10229 
R.QSPR	= 000012	#66-2742   #66-2746   #146-8096  #190-10225 #190-10227 #190-10229 
R.QSTN	= 000002	#66-2742   #66-2746   #146-8096  #190-10225 #190-10227 #190-10229 
R.SB  	= 000016  G	#63-2630    256-13581 *257-13696 
R.TD  	= 000004  G	#63-2623    257-13669 
R.UI  	= 000022  G	#63-2632   
SCD   	= 000040	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
SETDEB	  026762 RG	 148-8191  #168-8691  
SETLIN	  025622 RG	 148-8180  #155-8315  
SETSPD	  025642 RG	 148-8179  #156-8330  
SEXCM 	  022060 R	#110-5656   111-5720  
SEXP0 	  022066 R	 109-5607  #110-5659  
SEXP1 	  022146 R	 111-5719  #113-5809  
SEXP2 	  022050 R	#109-5609   110-5657   112-5767  
SEX97 	  022150 R	 109-5605   110-5655   112-5765  #113-5811   114-5853   114-5855   115-5948  
SF.EX 	= 000004  G	#52-2297    73-3239    137-7528  
SF.FX 	= 000002  G	 36-1284    36-1288    36-1293    36-1316    36-1321    36-1326    36-1331    36-1335    36-1338   
                        #52-2296    73-3223    76-3570   
SF.IR 	= 040000  G	#52-2298    137-7528  
SF.PT 	= 000001  G	#52-2295   
SF.ST 	= 100000  G	 36-1284    36-1288    36-1293    36-1307    36-1316    36-1321    36-1326    36-1331    36-1335   
                         36-1338   #52-2299   
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 19

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

SF.TA 	= 000001  G	 36-1284    36-1288    36-1293    36-1316    36-1326    36-1331    36-1335    36-1338   #52-2294   
                         73-3221    73-3274    76-3550    76-3588    76-3648    137-7528  
SKX   	  023236 R	 127-6853  #127-6856  
SNDALL	  027000 RG	 148-8173  #169-8705  
SNDBEL	  036112 RG	 213-11270 #214-11297  216-11400 
SNDMSG	  013034 RG	*66-2708    66-2732   *66-2738   #66-2761   *168-8692  *168-8696  
SNDSTS	  031536 R	 177-9292   177-9292   178-9413   178-9413   179-9550   179-9550   181-9688   181-9688   183-9781  
                         183-9781  #184-9806  
SPDTB 	  032374 R	#191-10264  213-11243 
SPDTBL	  024616 R	#146-8102   146-8118   172-8940  
SPDTBZ	= 000016	#146-8118   172-8941  
SPSAV 	  001020 RG	#9-452     *44-1823   
STAT  	= 174434	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
STATD 	= 000034	#3-123     *90-4680    277-14840  277-14867 
STATI 	  001336 RG	#12-680     179-9458   181-9677  
STATS 	= 000000	#189-10066 
STATUS	= 000022	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120   179-9453   184-9812  
                        #189-10058 #250-13319 
STBXFR	  031670 R	 178-9405   178-9405   181-9686   181-9686  #186-9894  
STCM  	  045356 R	#272-14496  273-14528 
STDCDR	  006746 RG	 36-1232   #36-1330    37-1371   
STDDTE	  006406 RG	 36-1234   #36-1283    37-1351   
STDDTP	  006506 RG	 36-1236   #36-1292    37-1378   
STDFED	  006446 RG	 36-1239   #36-1287    37-1385   
STDF11	  006546 RG	 36-1245   #36-1302   
STDINS	  006646 RG	 36-1256   #36-1320    137-7544  
STDLPT	  006706 RG	 36-1248   #36-1325    37-1365   
STDQPR	  007046 RG	 36-1250   #36-1337    37-1398   
STDRPT	  006606 RG	 36-1252   #36-1315    37-1358   
STDTTY	  007006 RG	 36-1254   #36-1334    37-1354   
STDVST	  026420 RG	 148-8167  #163-8557  
STELIG	  031302 R	 180-9620  #181-9685  
STELIX	  031324 R	 180-9603   181-9664  #181-9690  
STIND2	  030102 R	 177-9241  #177-9267  
STLN  	  045412 R	 272-14489  272-14489  273-14526  273-14526 #273-14533 
STNXT 	  034062 R	 202-10632  202-10644  203-10656  203-10665 #204-10691 
STPLIN	  026042 RG	 148-8183  #157-8384  
STRBF 	= 000002	#189-10067 *199-10520  218-11572  218-11595 
STRDAT	  026420 RG	 148-8164  #163-8559  
STSTT 	  001320 RG	#12-666     12-669     12-670    *177-9248  *177-9290  *178-9412  *179-9549  *181-9687   184-9808  
STSWD 	  005560 RG	#33-1060   
STSW0 	= 000004  G	#189-10095  213-11244 *213-11248 *213-11249  213-11265  215-11345  221-11767 *222-11794 *223-11836 
                        *223-11837  224-11931 *225-11975 *225-11981 *228-12091 *229-12196  229-12204  229-12232  230-12358 
                        *237-12778 *242-13004  243-13055 *243-13061 
STSW1 	= 000006  G	*152-8241  *152-8242  *152-8245   153-8260   153-8284  *156-8367  *156-8372   157-8388   169-8768  
                         169-8781   169-8783   169-8788  *169-8793  *169-8844  #189-10100  197-10463  197-10467  201-10568 
                        *201-10580  201-10581  202-10621 *202-10623  202-10624 *202-10625 *202-10642 *202-10643  204-10693 
                         204-10695  204-10702 *204-10707  204-10713  206-10755 *206-10757  206-10758  206-10770  206-10775 
                        *207-10801  208-10826  209-10860  209-10868 *211-11035  213-11224 *213-11253  213-11263 *213-11273 
                         213-11280 *213-11282  213-11285  214-11298  216-11389  216-11392  216-11403  217-11462 *217-11485 
                         221-11765  224-11901 *224-11930  224-11933 *224-11935 *224-11947  226-12017  228-12075 *228-12095 
                         229-12168  229-12170 *229-12172  230-12351 *230-12361  231-12466  231-12468 *231-12475  234-12629 
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 20

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                         234-12631  234-12633 *234-12653  236-12706  236-12708  236-12711 *236-12745 *237-12776 *237-12789 
                         239-12847  242-12970  243-13067  244-13110  270-14307  270-14345  270-14358  270-14365  271-14409 
                         271-14440  271-14445  271-14447 
STSW2 	  005060 RG	#29-991     246-13193 
STTYDN	  033676 R	 201-10584  201-10584 #202-10620  209-10924 
STTYO 	  034272 R	 206-10759 #206-10762  209-10918  209-10918  209-10927 
STXAS 	= 000000  G	#49-2160    67-3027   
STXCS 	= 000000  G	#49-2161   
STXDX 	= 000000  G	 8-331     #49-2162   
SWR   	= 177570	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
SWSLLT	= 100000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
SY0PUD	  011242 RG	#40-1616   
S.BA  	= 000012  G	#52-2277    76-3583    257-13686 
S.DI  	= 000011  G	#52-2276    76-3631   
S.DL  	= 000032  G	#52-2285    76-3616    76-3617    257-13678  257-13680 
S.DP  	= 000010  G	#52-2275    76-3560    137-7529  
S.FW  	= 000006  G	#52-2274   *73-3221    73-3223    73-3239   *73-3274    76-3550    76-3570   *76-3588   *76-3648   
                         139-7658  
S.LZ  	= 000014  G	#52-2278    76-3614   
S.PC  	= 000020  G	#52-2280    76-3575   
S.RB  	= 000026  G	#52-2283    128-6989  
S.RF  	= 000024  G	#52-2282    131-7140   137-7529  
S.SP  	= 000022  G	#52-2281    76-3573    76-3580   
S.SS  	= 000030  G	 43-1742   #52-2284    67-2793    67-2961   *72-3208   *133-7303  
S.SZ  	= 000036  G	#52-2288   
S.TD  	= 000004  G	#52-2273    76-3557   
S.TN  	= 000000  G	#52-2271    131-7187   131-7188   139-7668   139-7669  
S.TZ  	= 000016  G	#52-2279    77-3705   
S0.ABR	= 100000  G	#189-10104  189-10108  222-11794 
S0.CON	= 040000  G	#189-10105  189-10108  213-11265  224-11931  225-11975  225-11981 
S0.ISP	= 001700  G	#189-10106  189-10109  213-11290  242-13000 
S0.MSK	= 140000  G	#189-10108  213-11245  213-11248  223-11828  223-11836  230-12359  237-12778  243-13056 
S0.OSP	= 036000  G	#189-10107  189-10109 
S0.SPD	= 037700  G	#189-10109 
S2.CHR	= 000377  G	#189-10150 
S2.CNT	= 001400  G	#189-10148  242-13007  243-13070 
S2.DDN	= 100000  G	#189-10141  230-12356  237-12781  237-12784  239-12851  240-12891  242-12964  242-13008  243-13042 
                         243-13070 
S2.DIP	= 040000  G	#189-10142  212-11112  216-11413  230-12356  237-12781  239-12851  240-12891  242-12964  242-12986 
                         242-13007  243-13042  243-13045 
S2.DIS	= 020000  G	#189-10143  237-12781  241-12924  242-12975  242-12984  243-13078 
S2.ENB	= 010000  G	#189-10144  237-12781  241-12921  242-12976  243-13070  243-13077 
S2.LCL	= 004000  G	#189-10145  232-12537  239-12853  240-12882  240-12887  240-12896  242-12998  242-13009  243-13070 
S2.RES	= 002000  G	#189-10146 
S2.SSZ	= 001000  G	#189-10147  238-12815  242-12994 
TBIT  	= 000020  G	#49-2158   
TEDXIT	  030534 R	 178-9406  #178-9414  
TENAD1	= 174410	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
TENAD2	= 174412	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
TF.OU 	= 000002  G	 38-1412    38-1416    38-1420    38-1424    38-1428    38-1433    38-1437    38-1441    38-1451   
                        #50-2239    73-3230    73-3260    76-3592    76-3620    76-3629   
THRED 	= 000000  G	#189-10093 
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 21

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

TMOCNT	  002662 RG	#17-869    *193-10316 *193-10318 *193-10322 *193-10324 
TNAD1 	= 000010	#3-129     *81-3942   *81-3970   *81-3984   *81-4011   *81-4022   *81-4028   *81-4047   *81-4070   
                        *81-4122   *97-5027   *177-9284  *179-9452  *179-9536  *181-9656  *183-9777  *184-9814   278-14989 
                        *279-15023 *279-15039 
TNAD2 	= 000012	#3-130     *81-3943   *81-3971   *81-3985   *81-4012   *81-4023   *81-4029   *81-4048   *81-4071   
                        *81-4123   *97-5028   *177-9285  *179-9455  *179-9537  *181-9657  *183-9778  *184-9815  *279-15024 
                        *279-15040 
TN.EMT	= 000012  G	#58-2517    67-2798   
TN.LRF	= 000040  G	#58-2519    71-3171   
TN.TRP	= 000014  G	#58-2518    67-2965   
TOBM  	= 000004	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120   177-9248   177-9290  
                         181-9677  #189-10058 #250-13319 
TOD   	= 000003	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
TOIP  	= 000002	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120   177-9248   177-9290  
                         179-9507  #189-10058 #250-13319 
TOIT  	= 000001	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120   178-9412   179-9549  
                         181-9687  #189-10058 #250-13319 
TOITDN	  030522 R	 178-9364   178-9388  #178-9411  
TOXQIP	  001373 RG	#12-719    *81-4115   *177-9257   183-9759  *183-9783  
TO10  	= 000200	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
TO10AD	= 174420	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
TO10AS	  001316 RG	#12-662     177-9229  *177-9238  *177-9280  *183-9773  
TO10BC	= 174414	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
TO10BM	= 000001	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
TO10DB	= 000400	#7-262      44-1863   #48-2092   #80-3894    81-3988    81-4032    81-4074    81-4126   #82-4186   
                         85-4377   #86-4445   #145-8019  #175-9120   177-9298   183-9782  #189-10058 #250-13319 
TO10DN	= 100000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120   176-9171  #189-10058 
                        #250-13319 
TO10DT	= 174424	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
TO10ER	= 020000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120   176-9171  #189-10058 
                        #250-13319 
TO10PK	  005564 RG	#33-1062   
TO10Q 	  001326 RG	#12-672     81-4089    81-4090    147-8150   147-8151   177-9239   177-9258   177-9259   275-14673 
                         275-14679  276-14719  276-14730 
TO10QC	= 001324 RG	#12-669    *81-4103    179-9526  *179-9528   179-9529   180-9606  
TO10SZ	  001314 RG	#12-660     177-9228  *177-9278  *183-9770  
TO11  	= 000100	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
TO11AD	= 174422	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
TO11AS	  001310 RG	#12-656     178-9340  *186-9896  
TO11BC	= 174416	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
TO11BM	= 020000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120   178-9336   178-9404  
                         180-9619   181-9681  #189-10058 #250-13319 
TO11BS	  001312 RG	#12-658     178-9333   178-9336  *186-9895  
TO11DB	= 004000	#7-262     #48-2092   #80-3894    81-3955    81-4000   #82-4186   #86-4445   #145-8019  #175-9120  
                         176-9183  #189-10058 #250-13319 
TO11DN	= 000200	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120   176-9177  #189-10058 
                        #250-13319 
TO11DT	= 174426	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
TO11DV	  001300 RG	#12-647    *178-9371   178-9372   187-9922  
TO11ER	= 000002	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120   176-9177  #189-10058 
                        #250-13319 
TO11FN	  001276 RG	#12-645    *178-9348   178-9377   178-9382  *178-9394   179-9509  *181-9684   187-9920  
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 22

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

TO11FW	  001304 RG	#12-651     187-9923  
TO11GW	  001306 RG	#12-654    
TO11HD	  001274 RG	#12-643    *178-9370   178-9395   180-9618   187-9921  
TO11NP	  001272 RG	#12-641     178-9354   178-9385   178-9391   181-9668  *185-9870  
TO11Q 	  001334 RG	#12-678     147-8136  *147-8138   178-9355   183-9756   185-9851  
TO11QC	= 001325 RG	#12-670    *183-9780  
TO11SP	  001302 RG	#12-649    
TRPASV	  001120 RG	#9-486     *43-1728   *43-1729    43-1744    43-1752    43-1765   *67-2798   *67-2965   
TRPXIT	  011570 R	#43-1759    43-1787   
TRP4  	  011616 R	 43-1770   #43-1775   
TS.EXT	= 000026  G	#69-3124    122-6310  
TS.LRF	= 000006  G	#69-3106   
TS.LRQ	= 000002  G	#69-3102    76-3625    76-3644   
TS.RUN	= 000010  G	 37-1351    37-1354    37-1358    37-1365    37-1371    37-1378    37-1385    37-1398    37-1401   
                        #69-3108    70-3165    72-3185    76-3577    127-6919  
TS.SUS	= 000012  G	#69-3110    127-6917  
TS.TKN	= 000004  G	 43-1753   #69-3104    71-3172   
TS.WF0	= 000014  G	#69-3112    114-5869   115-5961  
TS.WF1	= 000016  G	#69-3116   
TS.WF2	= 000020  G	#69-3118   
TS.WF3	= 000022  G	#69-3120   
TS.WF4	= 000024  G	#69-3122    115-5950  
TTCNT 	= 000205  G	#28-975     29-992     39-1473    39-1485    212-11109 
TTCTY 	  036646 R	 216-11440 #218-11507 
TTINI 	  032404 RG	 190-10206  190-10206 #192-10278  200-10553 
TTINO 	  033546 R	 197-10455 #200-10552 
TTINPA	  036206 R	#215-11340  217-11499 
TTINPB	  036374 R	 213-11236  213-11250  213-11257  213-11266  213-11281  214-11299  214-11308  215-11344  215-11346 
                         216-11387  216-11393  216-11397  216-11416 #216-11420  216-11436 
TTINX 	  033542 R	 197-10464  197-10468  197-10472 #200-10550 
TTOUTR	  034366 R	 204-10694  204-10714  206-10771  206-10776 #207-10802 
TTOUTX	  034360 R	 205-10744 #207-10800  211-11056 
TTPEN 	  010232 RG	#40-1525    40-1526    65-2695    81-3918    147-8123   190-10206  200-10534 
TTPKT 	  002732 RG	#18-886     197-10454 *197-10481  198-10500 *198-10507  211-11074 
TTSAV 	  037332 R	 206-10754  215-11336 #219-11683  224-11881 
TTSTCH	  036232 R	 213-11274  213-11287  213-11294 #216-11383 
TTTBL 	  002776 RG	#20-928     28-975     29-986     39-1473    39-1485    161-8504   212-11108  219-11695  225-11986 
                         229-12221  229-12237  232-12543  246-13190 
TTWLO 	  032252 R	#190-10220  192-10279 
TTYDNE	  034654 R	#209-10909  211-11078 
TTYDNX	  034720 R	 209-10913 #209-10921 
TTYEND	= 005046 RG	#28-976     169-8796   230-12379  232-12541 
TTYEXP	= 000002  G	 169-8766   169-8790   174-9043  #189-10094  201-10575  209-10917  211-11031  211-11039  219-11697 
                         220-11728  228-12077  229-12136  229-12147 *229-12187  230-12319 *230-12394  231-12458  270-14329 
                         270-14373 
TTYHD 	  031736 RG	 36-1335    37-1354    38-1424   #190-10205 
TTYSP 	  032216 RG	 37-1354    190-10206 #190-10206 
TTYTPD	  007632 RG	 36-1335   #38-1423   
TTYTSK	  007152 RG	 15-785     15-790     37-1351   #37-1353    37-1358    40-1526   *209-10910 *216-11434 *217-11476 
                        *222-11800 *228-12083 
TT.ABL	= 000040  G	 153-8284   156-8372  #189-10132  221-11765  224-11933 
TT.ABW	= 000010  G	 169-8781  #189-10134  213-11224  213-11253  224-11935  228-12095  237-12776  270-14345 
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 23

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

TT.CRW	= 000004  G	#189-10135  216-11392  217-11485  224-11930  224-11947  228-12095  229-12168  231-12466 
TT.CTY	= 000002  G	 20-930     153-8260   157-8388   169-8783  #189-10136  201-10581  206-10758  208-10826  216-11389 
                         234-12633  236-12711  239-12847  270-14307  270-14365  271-14409  271-14440 
TT.FEC	= 014000  G	#189-10120  213-11273  213-11286  237-12789 
TT.FEI	= 004000  G	#189-10122  213-11282 
TT.NSA	= 000400  G	 152-8237   169-8768   169-8781  #189-10125  204-10702  228-12095  237-12776 
TT.OUT	= 000001  G	 169-8788  #189-10137  197-10463  197-10467  201-10568  201-10580  204-10693  206-10755  206-10757 
                         206-10770  207-10801  209-10860  209-10868  211-11035  214-11298  236-12708  237-12776  242-12970 
                         243-13067  244-13110  270-14358  271-14445 
TT.RIP	= 002000  G	#189-10123  217-11485  224-11930  224-11947  228-12095  229-12170  229-12172  231-12468  231-12475 
TT.RMT	= 000100  G	 20-932     20-933     20-934     20-935     156-8367  #189-10131  213-11263  217-11462  224-11901 
                         226-12017  228-12075 
TT.RSI	= 020000  G	#189-10119  213-11280  230-12351  230-12361  237-12776 
TT.SIP	= 001000  G	 169-8793  #189-10124  202-10621  202-10623  204-10707  234-12631  236-12708  237-12776  271-14447 
TT.SND	= 140000  G	#189-10115  237-12776 
TT.SNI	= 040000  G	 169-8844  #189-10116  202-10625 
TT.XEN	= 000020  G	 151-8226  #189-10133  216-11403  237-12789 
TT.XOF	= 000200  G	 152-8242  #189-10129  234-12653  236-12745  237-12789  270-14358 
T.BA  	= 000004  G	#50-2227   
T.FW  	= 000010  G	#50-2229   *73-3230    73-3260    76-3592    76-3620   *76-3629   
T.HBCT	= 000002  G	*185-9869  #189-10155 *233-12580  268-14167 
T.HCAD	= 000004  G	*170-8880  *170-8881  #189-10156  203-10660 *203-10661  205-10737  207-10797 *207-10798 *236-12729 
                         236-12730 
T.HCBC	= 000006  G	#189-10157  203-10659 *203-10664  205-10738 *206-10765  236-12727 *236-12731 *271-14431 
T.HFCN	= 000007  G	#189-10158 *270-14339 
T.HHDS	= 000010  G	 164-8591   164-8599   170-8881  #189-10159 
T.HP  	= 000012  G	#50-2230   
T.HRED	= 000000  G	#189-10154 
T.PN  	= 000000  G	#50-2225    139-7666   139-7667   141-7776   141-7777  
T.PZ  	= 000006  G	#50-2228    77-3707    139-7655  
T.RAPB	= 000004  G	#62-2601   
T.RAPE	= 000012  G	#62-2604    67-2795   
T.RAPF	= 000016  G	#62-2606   
T.RAPI	= 000006  G	#62-2602   
T.RAPM	= 000002  G	#62-2600   
T.RAPR	= 000010  G	#62-2603   
T.RAPT	= 000014  G	#62-2605    67-2963   
T.RAP4	= 000000  G	#62-2599   
T.RB  	= 000016  G	#50-2232   
T.RF  	= 000014  G	#50-2231    73-3263    76-3654   
T.SZ  	= 000020  G	#50-2234    77-3700    141-7785  
T10AD 	= 000020	#3-127      177-9230  *177-9281  *183-9772  
T11AD 	= 000022	#3-126      178-9341   178-9343  *186-9897  
T11BC 	= 000016	#3-128     *186-9898  
U     	= 000040	#8-396     #8-401      8-404     
UC.CCL	= 000002  G	 40-1526    40-1608   #57-2483   
UC.COM	= 020000  G	#57-2494   
UC.DIR	= 000010  G	#57-2485   
UC.ETB	= 000100  G	#57-2488   
UC.F11	= 040000  G	#57-2495   
UC.INB	= 000400  G	#57-2489   
UC.ISP	= 002000  G	#57-2491   
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 24

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

UC.MNT	= 100000  G	#57-2496   
UC.PSE	= 010000  G	#57-2493   
UC.REC	= 000001  G	 40-1526    40-1608   #57-2482   
UC.SDI	= 000020  G	#57-2486   
UC.SQD	= 000040  G	#57-2487   
UC.SWL	= 001000  G	#57-2490   
UC.TTY	= 000004  G	 40-1526   #57-2484   
UC.0SP	= 004000  G	#57-2492   
UF.OFL	= 000040  G	#57-2478   
UF.RD 	= 000040  G	#57-2475   
UF.RH 	= 000200  G	 40-1613   #57-2476   
UF.TL 	= 000100  G	#57-2477   
UNASG1	= 000032	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
UNASG2	= 000033	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
UNASG3	= 000034	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
UNASG4	= 000035	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
UNASG5	= 000036	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
UNASG6	= 000037	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
UNRGFN	  025400 RG	 148-8163   148-8169   148-8174   148-8181  #149-8202  
UPAR0 	= 177640	#49-2133   
UPAR1 	= 177642	#49-2134   
UPAR2 	= 177644	#49-2135   
UPAR3 	= 177646	#49-2136   
UPAR4 	= 177650	#49-2137   
UPAR5 	= 177652	#49-2138   
UPAR6 	= 177654	#49-2139   
UPAR7 	= 177656	#49-2140   
UPDR0 	= 177600	#49-2142   
UPDR1 	= 177602	#49-2143   
UPDR2 	= 177604	#49-2144   
UPDR3 	= 177606	#49-2145   
UPDR4 	= 177610	#49-2146   
UPDR5 	= 177612	#49-2147   
UPDR6 	= 177614	#49-2148   
UPDR7 	= 177616	#49-2149   
UT.LG 	= 000004  G	#57-2511   
UT.PR 	= 000001  G	#57-2509   
UT.SL 	= 000002  G	#57-2510   
U.ACP 	= 000040  G	#57-2465    124-6626  
U.AF  	= 000014  G	#57-2447    200-10534 *257-13711 *257-13721 
U.AR  	= 000034  G	#57-2463   
U.CH  	= 000032  G	#57-2461   
U.C1  	= 000004  G	#57-2443   
U.C2  	= 000006  G	#57-2444   
U.C3  	= 000010  G	#57-2445   
U.C4  	= 000012  G	#57-2446   
U.DACP	= 000036  G	#57-2464   
U.DN  	= 000000  G	#57-2440   
U.FB  	= 000003  G	#57-2442   
U.FO  	= 000043  G	#57-2468   
U.GC  	= 000031  G	#57-2459   
U.HA  	= 000020  G	#57-2449    124-6613  
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 25

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

U.LBH 	= 000044  G	#57-2469   
U.LBN 	= 000046  G	#57-2470   
U.PC  	= 000030  G	#57-2458   
U.PR  	= 000042  G	#57-2467   
U.RB  	= 000024  G	#57-2451   
U.RF  	= 000022  G	#57-2450    76-3636    124-6660   257-13654  257-13662  257-13662  257-13705 *257-13711 *257-13721 
U.RP  	= 000016  G	#57-2448    78-3776   
U.SZ  	= 000050  G	 36-1307   #57-2471    76-3633    103-5287   257-13650  257-13661  257-13662 
U.TF  	= 000042  G	#57-2466   
U.UI  	= 000030  G	#57-2457   
U.UN  	= 000002  G	#57-2441    103-5283   257-13705 
U.VA  	= 000026  G	#57-2456   
U.VP  	= 000032  G	#57-2460   
WEP   	= 000010	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
WFXSET	  013762 R	 70-3157    70-3159    70-3161   #70-3164   
WI.WRV	= 001000	 285-15427 
WTLODT	  024572 R	#146-8092   147-8130  
W.VBN 	  000006	 286-15500 
XOFF  	  026166 RG	 148-8177  #159-8448  
XON   	  026202 RG	 148-8178  #160-8477  
X.X94 	  015650 R	 77-3699   #77-3718   
X.X95 	  015652 R	 77-3714   #77-3719   
X8X97 	  043146 RG	 252-13393 #252-13412 
X9X96 	  015726 R	 78-3770   #78-3786   
ZSTOP 	= 040000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
$BTMSK	  002642 RG	#17-847     211-11049 
$CDINT	= ******  GX	 8-370     
$CD11 	= 000001	#1-38       33-1084    36-1231    36-1268    36-1328    37-1369    38-1430   
$DBDTE	= 000001	#1-44       12-653    
$DHINP	  035534 RG	 8-400      8-400      8-400      8-400      8-400      8-400      8-400      8-400     #213-11194 
$DHOUT	  033552 RG	 8-400      8-400      8-400      8-400      8-400      8-400      8-400      8-400     #201-10561 
$DH11 	= 000001	#1-42      
$DIV  	= ******  GX	 107-5485   107-5485   107-5489   107-5489  
$DMINT	  037626 RG	 8-400      8-400      8-400      8-400      8-400      8-400      8-400      8-400     #224-11879 
$DORBL	  020502 RG	 87-4506   #88-4535   
$DPMYG	  021110 RG	 87-4509   #91-4748   
$DPMYN	  021160 RG	 87-4512   #94-4866   
$DSW  	= 000046  G	#49-2151   *67-2980    74-3331    74-3346   
$DTA  	= 000001	#1-54       8-360      29-993     36-1235    36-1277    36-1290    36-1306    37-1376    38-1438   
                         40-1582   
$DTE  	= 000001	#1-45       85-4376   
$DTEDR	= ******	 15-797     67-2885    88-4536    253-13452 
$DTEOF	  020504 RG	 87-4507   #89-4576   
$DTEON	  020512 RG	 87-4508   #90-4617   
$DTINT	= ******  GX	 8-361     
$EXHSG	  021166 RG	 87-4513   #95-4901   
$EXHSM	  021174 RG	 87-4514   #96-4935   
$EXMYG	  021142 RG	 87-4510   #92-4796   
$EXMYN	  021152 RG	 87-4511   #93-4832   
$FE   	= 000001	#1-40       36-1238    36-1274    36-1285    37-1383    38-1417    40-1610   
$F11  	= 000001	#1-41       36-1244    36-1255    36-1259    36-1300    36-1318    38-1409    38-1453    66-2713   
                         285-15374 
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 26

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

$KLDFC	  021362 RG	 97-5011   #97-5019   
$KLDFR	  021202 RG	 87-4515   #97-4973   
$KLDFW	  021342 RG	 87-4516   #97-5013   
$KLDFX	  021320 RG	 87-4517   #97-5005   
$LPINT	= ******  GX	 8-418      8-419     
$LP20 	= 000001	#1-36       8-417      34-1129    36-1247    36-1262    36-1323    37-1363    38-1425    40-1605   
$MUL  	= ******  GX	 81-3927    81-3927   
$PRVDP	  021440 RG	 87-4519   #98-5061   
$PRVEX	  021454 RG	 87-4518   #99-5091   
$RP04 	= 000001	#1-39       36-1251    36-1265    36-1313    37-1356    38-1448    40-1538   
$RWDRG	  021510 RG	 87-4520   #100-5131  
$RX11 	= ******	 8-381      30-1010    36-1241    36-1271    36-1295    36-1303    37-1390    38-1443    40-1592   
$TOP10	= 000001	#1-34       1-52       3-106      40-1621    56-2405    66-2752   
$TOP20	= ******	 1-60       3-113      40-1617   
$TTINP	  036166 RG	 8-340      8-390      8-408      8-411      8-414     #215-11334 
$TTOUT	  034224 RG	 8-341      8-391      8-409      8-412      8-415     #206-10752 
$T1091	= ******	 1-48       1-53       3-107      40-1622   
$UNIT 	  002640 RG	#17-845     211-11044 
$$    	= 000037	#44-1825    44-1825   #44-1828    44-1828   #44-1843    44-1843   #66-2735    66-2735   #66-2737   
                         66-2737   #73-3236    73-3236   #73-3238    73-3238   #73-3258    73-3258   #73-3264    73-3264   
                        #73-3272    73-3272   #73-3275    73-3275   #75-3522    75-3522   #76-3564    76-3564   #76-3596   
                         76-3596   #76-3601    76-3601   #76-3637    76-3637   #76-3640    76-3640   #76-3655    76-3655   
                        #79-3807    79-3807   #79-3822    79-3822   #81-3927    81-3927   #81-3944    81-3944   #81-3963   
                         81-3963   #81-3972    81-3972   #81-3986    81-3986   #81-4014    81-4014   #81-4024    81-4024   
                        #81-4030    81-4030   #81-4038    81-4038   #81-4040    81-4040   #81-4049    81-4049   #81-4072   
                         81-4072   #81-4092    81-4092   #81-4099    81-4099   #81-4124    81-4124   #81-4127    81-4127   
                        #84-4290    84-4290   #84-4291    84-4291   #84-4306    84-4306   #85-4345    85-4345   #85-4348   
                         85-4348   #85-4349    85-4349   #85-4350    85-4350   #89-4589    89-4589   #90-4623    90-4623   
                        #90-4634    90-4634   #90-4647    90-4647   #90-4687    90-4687   #90-4694    90-4694   #90-4714   
                         90-4714   #91-4756    91-4756   #97-4976    97-4976   #97-5008    97-5008   #97-5016    97-5016   
                        #97-5032    97-5032   #99-5099    99-5099   #103-5256   103-5256  #105-5396   105-5396  #107-5485  
                         107-5485  #107-5489   107-5489  #109-5597   109-5597  #110-5647   110-5647  #111-5706   111-5706  
                        #111-5710   111-5710  #112-5757   112-5757  #114-5859   114-5859  #118-6085   118-6085  #120-6223  
                         120-6223  #124-6493   124-6493  #124-6516   124-6516  #124-6561   124-6561  #124-6643   124-6643  
                        #124-6648   124-6648  #124-6652   124-6652  #124-6662   124-6662  #124-6664   124-6664  #126-6764  
                         126-6764  #126-6774   126-6774  #127-6847   127-6847  #127-6862   127-6862  #127-6868   127-6868  
                        #127-6893   127-6893  #128-6963   128-6963  #128-6974   128-6974  #128-6990   128-6990  #131-7148  
                         131-7148  #131-7157   131-7157  #131-7174   131-7174  #131-7196   131-7196  #137-7469   137-7469  
                        #137-7477   137-7477  #137-7497   137-7497  #137-7511   137-7511  #137-7519   137-7519  #137-7546  
                         137-7546  #143-7900   143-7900  #143-7906   143-7906  #143-7913   143-7913  #147-8153   147-8153  
                        #152-8240   152-8240  #153-8258   153-8258  #153-8269   153-8269  #153-8281   153-8281  #153-8283  
                         153-8283  #153-8286   153-8286  #153-8293   153-8293  #154-8304   154-8304  #154-8305   154-8305  
                        #155-8317   155-8317  #156-8332   156-8332  #156-8337   156-8337  #156-8358   156-8358  #156-8365  
                         156-8365  #156-8368   156-8368  #156-8375   156-8375  #157-8386   157-8386  #157-8394   157-8394  
                        #157-8397   157-8397  #157-8401   157-8401  #158-8418   158-8418  #158-8423   158-8423  #159-8449  
                         159-8449  #159-8451   159-8451  #160-8478   160-8478  #160-8481   160-8481  #161-8508   161-8508  
                        #161-8518   161-8518  #161-8524   161-8524  #163-8570   163-8570  #163-8572   163-8572  #164-8593  
                         164-8593  #164-8606   164-8606  #164-8608   164-8608  #164-8617   164-8617  #165-8640   165-8640  
                        #166-8652   166-8652  #166-8654   166-8654  #166-8659   166-8659  #169-8706   169-8706  #169-8771  
                         169-8771  #169-8773   169-8773  #169-8792   169-8792  #169-8842   169-8842  #170-8872   170-8872  
                        #174-9070   174-9070  #177-9247   177-9247  #177-9253   177-9253  #177-9256   177-9256  #177-9261  
                         177-9261  #177-9286   177-9286  #177-9292   177-9292  #178-9363   178-9363  #178-9386   178-9386  
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 27

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                        #178-9392   178-9392  #178-9405   178-9405  #178-9413   178-9413  #179-9456   179-9456  #179-9480  
                         179-9480  #179-9490   179-9490  #179-9517   179-9517  #179-9538   179-9538  #179-9545   179-9545  
                        #179-9550   179-9550  #180-9600   180-9600  #180-9608   180-9608  #181-9658   181-9658  #181-9661  
                         181-9661  #181-9669   181-9669  #181-9686   181-9686  #181-9688   181-9688  #183-9779   183-9779  
                        #183-9781   183-9781  #184-9816   184-9816  #185-9867   185-9867  #193-10319  193-10319 #193-10320 
                         193-10320 #193-10325  193-10325 #194-10338  194-10338 #194-10340  194-10340 #194-10344  194-10344 
                        #195-10410  195-10410 #195-10433  195-10433 #196-10441  196-10441 #196-10444  196-10444 #196-10447 
                         196-10447 #197-10471  197-10471 #198-10505  198-10505 #200-10549  200-10549 #201-10563  201-10563 
                        #201-10584  201-10584 #201-10594  201-10594 #201-10596  201-10596 #203-10668  203-10668 #204-10692 
                         204-10692 #206-10754  206-10754 #206-10768  206-10768 #206-10769  206-10769 #208-10840  208-10840 
                        #208-10846  208-10846 #209-10911  209-10911 #209-10918  209-10918 #212-11101  212-11101 #212-11111 
                         212-11111 #212-11114  212-11114 #212-11127  212-11127 #212-11128  212-11128 #212-11137  212-11137 
                        #212-11139  212-11139 #213-11196  213-11196 #213-11208  213-11208 #213-11254  213-11254 #213-11255 
                         213-11255 #213-11256  213-11256 #213-11268  213-11268 #213-11293  213-11293 #215-11336  215-11336 
                        #216-11409  216-11409 #216-11411  216-11411 #216-11412  216-11412 #216-11415  216-11415 #216-11419 
                         216-11419 #216-11430  216-11430 #216-11435  216-11435 #217-11470  217-11470 #217-11477  217-11477 
                        #217-11489  217-11489 #217-11495  217-11495 #219-11698  219-11698 #221-11770  221-11770 #223-11829 
                         223-11829 #223-11830  223-11830 #224-11881  224-11881 #224-11942  224-11942 #225-11980  225-11980 
                        #225-11991  225-11991 #226-12019  226-12019 #228-12098  228-12098 #229-12138  229-12138 #229-12150 
                         229-12150 #229-12176  229-12176 #229-12197  229-12197 #229-12227  229-12227 #230-12330  230-12330 
                        #230-12344  230-12344 #230-12355  230-12355 #230-12412  230-12412 #231-12470  231-12470 #231-12471 
                         231-12471 #231-12477  231-12477 #231-12486  231-12486 #232-12536  232-12536 #233-12578  233-12578 
                        #234-12641  234-12641 #234-12647  234-12647 #235-12676  235-12676 #236-12719  236-12719 #236-12733 
                         236-12733 #236-12736  236-12736 #236-12743  236-12743 #237-12779  237-12779 #237-12785  237-12785 
                        #237-12788  237-12788 #238-12817  238-12817 #241-12920  241-12920 #241-12930  241-12930 #242-12983 
                         242-12983 #242-12996  242-12996 #243-13053  243-13053 #243-13069  243-13069 #244-13109  244-13109 
                        #244-13112  244-13112 #244-13117  244-13117 #244-13119  244-13119 #244-13123  244-13123 #244-13129 
                         244-13129 #245-13158  245-13158 #247-13230  247-13230 #252-13396  252-13396 #255-13530  255-13530 
                        #255-13545  255-13545 #256-13583  256-13583 #256-13590  256-13590 #256-13592  256-13592 #256-13597 
                         256-13597 #256-13602  256-13602 #257-13658  257-13658 #257-13703  257-13703 #257-13707  257-13707 
                        #257-13713  257-13713 #257-13716  257-13716 #258-13748  258-13748 #262-13873  262-13873 #262-13874 
                         262-13874 #264-13942  264-13942 #269-14248  269-14248 #270-14312  270-14312 #270-14314  270-14314 
                        #270-14318  270-14318 #270-14374  270-14374 #271-14415  271-14415 #271-14418  271-14418 #271-14434 
                         271-14434 #271-14459  271-14459 #272-14489  272-14489 #272-14497  272-14497 #273-14526  273-14526 
                        #274-14580  274-14580 #274-14590  274-14590 #275-14646  275-14646 #275-14664  275-14664 #275-14677 
                         275-14677 #275-14680  275-14680 #276-14722  276-14722 #276-14731  276-14731 #276-14734  276-14734 
                        #277-14858  277-14858 #277-14874  277-14874 #277-14911  277-14911 #277-14921  277-14921 #278-14961 
                         278-14961 #279-15025  279-15025 #279-15041  279-15041 #281-15091  281-15091 #282-15117  282-15117 
                        #284-15319  284-15319 #285-15436  285-15436 #286-15517  286-15517 #286-15551  286-15551 
$$$   	= 010016 R	#38-1412    38-1412   #38-1416    38-1416   #38-1420    38-1420   #38-1424    38-1424   #38-1428   
                         38-1428   #38-1433    38-1433   #38-1437    38-1437   #38-1441    38-1441   #38-1451    38-1451   
                        #38-1456    38-1456   #38-1460    38-1460   
$$$ARG	= 000011	#81-4133    81-4133   #81-4133    81-4133   #81-4133    81-4133   #81-4133    81-4133   
$$$GLB	= ******	 66-2742    66-2742    66-2742    66-2742    66-2742    66-2742    66-2746    66-2746    66-2746   
                         66-2746    66-2746    66-2746    81-4133    81-4133    81-4133    81-4133    81-4133    81-4133   
                         81-4133    81-4133    146-8093   146-8096   146-8096   146-8096   146-8096   146-8096   146-8096  
                         190-10221  190-10225  190-10225  190-10225  190-10225  190-10225  190-10225  190-10227  190-10227 
                         190-10227  190-10227  190-10227  190-10227  190-10229  190-10229  190-10229  190-10229  190-10229 
                         190-10229 
$$$OST	= 000016	#66-2742    66-2742    66-2742   #66-2742    66-2742    66-2742   #66-2742    66-2742    66-2742   
                        #66-2742    66-2742    66-2742   #66-2742    66-2742    66-2742   #66-2742   #66-2746    66-2746   
                         66-2746   #66-2746    66-2746    66-2746   #66-2746    66-2746    66-2746   #66-2746    66-2746   
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 28

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                         66-2746   #66-2746    66-2746    66-2746   #66-2746   #81-4133    81-4133    81-4133   #81-4133   
                         81-4133    81-4133   #81-4133    81-4133    81-4133   #81-4133    81-4133    81-4133   #81-4133   
                         81-4133    81-4133   #81-4133    81-4133    81-4133   #81-4133    81-4133   #146-8096   146-8096  
                         146-8096  #146-8096   146-8096   146-8096  #146-8096   146-8096   146-8096  #146-8096   146-8096  
                         146-8096  #146-8096   146-8096   146-8096  #146-8096  #190-10225  190-10225  190-10225 #190-10225 
                         190-10225  190-10225 #190-10225  190-10225  190-10225 #190-10225  190-10225  190-10225 #190-10225 
                         190-10225  190-10225 #190-10225 #190-10227  190-10227  190-10227 #190-10227  190-10227  190-10227 
                        #190-10227  190-10227  190-10227 #190-10227  190-10227  190-10227 #190-10227  190-10227  190-10227 
                        #190-10227 #190-10229  190-10229  190-10229 #190-10229  190-10229  190-10229 #190-10229  190-10229 
                         190-10229 #190-10229  190-10229  190-10229 #190-10229  190-10229  190-10229 #190-10229 
$$$T1 	= 000000	#66-2742    66-2742    66-2742    66-2742   #66-2742    66-2742   #66-2746    66-2746    66-2746   
                         66-2746   #66-2746    66-2746   #146-8096   146-8096   146-8096   146-8096  #146-8096   146-8096  
                        #190-10225  190-10225  190-10225  190-10225 #190-10225  190-10225 #190-10227  190-10227  190-10227 
                         190-10227 #190-10227  190-10227 #190-10229  190-10229  190-10229  190-10229 #190-10229  190-10229 
$$$UNI	= 000002	#35-1166    35-1182    35-1182    35-1182   #35-1182    35-1182    35-1182    35-1182   #35-1182   
                        #35-1210    35-1214    35-1214   #35-1214    35-1214    35-1214   #35-1214   
.ABCNT	  002600 RG	#17-820    *85-4353    192-10303 *222-11793 
.ABFLG	  002602 RG	#17-822    *85-4354   *162-8537   192-10301 *192-10303 
.ACKAL	  001164 RG	#9-537      66-2706   *81-4128    194-10332 *194-10334 
.ATLLH	  007106 RG	#37-1345    37-1351    37-1401    69-3082    76-3589    127-6909   127-6912  
.ATOTA	  011317 RG	#41-1655   
.BGBST	= 076000  G	#14-741     14-748     42-1670   
.BGBUF	  001414 RG	#14-747     42-1675   
.BGLEN	= 002000  G	#14-742     14-749     42-1677   
.BM873	= 173000  G	#49-2108    83-4248   
.BRCLK	= 005000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.BRKCH	  002630 RG	#17-835     216-11432 
.BTPRM	  001160 RG	#9-533      161-8522  
.BTSCH	  001162 RG	#9-535     *81-3989    81-4005   *81-4026   *216-11443 
.BTSTK	  016312 RG	 37-1398    81-3918   #81-3918   
.CECLK	= 004000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.CEFN 	  043062 RG	 109-5597   109-5597   110-5647   110-5647   111-5710   111-5710   112-5757   112-5757   118-6085  
                         118-6085   124-6516   124-6516   128-6963   128-6963  #252-13386 
.CEFN3	  043066 RG	#252-13389  275-14664  275-14664 
.CKASS	  001050 RG	#9-475      75-3509   *75-3511   *143-7908  
.CKDEL	  043150 RG	 120-6223   120-6223   143-7913   143-7913  #253-13437 
.CLKBA	  002370 RG	#15-784     118-6118   120-6213   143-7891  
.CLKEA	  002574 RG	#15-794     118-6119   120-6215  
.CLKSW	  001136 RG	#9-510      66-2722   *66-2724   *143-7878  *143-7881  
.CLKSZ	= 000007  G	#15-781     15-791    
.CLRMR	= 006000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.CLRUN	= 010000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.COMEF	  001010 RG	#9-445      43-1786    66-2704    70-3146    70-3151    70-3160    70-3162    81-3939    81-3957   
                        *81-3968   *81-4082   *83-4226   *85-4374    91-4753    113-5806   113-5807   147-8147  *167-8676  
                        *167-8680  *179-9498   195-10389  212-11131  213-11206  213-11222  216-11394 *216-11429  216-11441 
                         222-11796  224-11903  228-12093  233-12569  252-13402  255-13523  258-13753  275-14636  278-14953 
                        *280-15067  281-15089 *281-15094 *282-15115 
.CONBT	= 012000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.CPDV 	  001254 RG	#12-625    *81-4104    274-14570 *274-14602 *276-14740 
.CPFN 	  001252 RG	#12-623     274-14568 *274-14600 
.CPUSN	  011312 RG	#41-1634   
.CRHD 	  001262 RG	#12-631     81-4105    276-14715 *276-14739 
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 29

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

.CRPB 	  001260 RG	#12-629    *81-4107    274-14573 *274-14575  274-14594 *274-14604 *276-14744 
.CRPFL	  005706 RG	#34-1099   *85-4352   
.CRQZ 	  001250 RG	#12-621    *81-4112   *274-14577 *274-14595  276-14716 *276-14747 
.CRSB 	  001264 RG	#12-633     274-14576 *274-14597 
.CRSND	  002626 RG	#17-833    *169-8779  *169-8799   270-14340 
.CRSZ 	  001256 RG	#12-627    *81-4111   *274-14578  274-14587 *274-14596  276-14726 *276-14746 
.CRTSK	  001006 RG	#9-442      43-1740    43-1751    67-2791    67-2853    67-2959    73-3290   *73-3293    74-3306   
                         74-3313   *74-3394    79-3811    147-8133   192-10281  255-13532  257-13644  257-13670  275-14662 
.CSHRG	= 164000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.CTYPT	  002634 RG	#17-839    
.CYLTM	= 000074  G	 9-529      15-787     15-788    #54-2375   
.DATE 	  001140 RG	#9-512      165-8631  
.DATE3	  001140 RG	#9-513      162-8535   222-11798 
.DAY  	  001144 RG	#9-518      107-5496  
.DBINT	= ******  GX	 8-377     
.DHSPD	  037554 RG	 156-8375   156-8375   213-11254  213-11254  221-11770  221-11770 #223-11825 
.DHSPF	  037514 RG	 213-11255  213-11255 #222-11792 
.DHSPR	  037460 RG	 153-8286   153-8286  #221-11764  225-11980  225-11980  231-12471  231-12471 
.DHSTO	  034164 RG	 204-10708 #205-10736  236-12736  236-12736  244-13119  244-13119  270-14376 
.DHTMO	  040646 RG	 85-4348    85-4348    193-10319  193-10319 #230-12291 
.DHXOF	  041632 RG	 234-12634  234-12638  234-12641  234-12641 #234-12646 
.DHXON	  041754 RG	 236-12712  236-12716  236-12719  236-12719 #236-12724 
.DLHUP	  040214 RG	 153-8269   153-8269   153-8293   153-8293  #228-12074  229-12176  229-12176 
.DLINT	  036500 RG	 215-11339 #217-11461 
.DLSTO	  034340 RG	#207-10796  236-12743  236-12743  244-13123  244-13123  270-14384 
.DLTMO	  040336 RG	 85-4349    85-4349    193-10320  193-10320 #229-12134 
.DLXOF	  041640 RG	 234-12632 #234-12652 
.DLXON	  042020 RG	 236-12734 #236-12742 
.DMHUP	  040144 RG	 153-8283   153-8283   156-8368   156-8368  #226-12016  231-12470  231-12470 
.DMTMO	  041126 RG	 85-4350    85-4350    193-10325  193-10325 #231-12441 
.DOW  	  001147 RG	#9-524     
.DQCDR	  010152 RG	#39-1492   
.DQDH0	  010072 RG	#39-1480    169-8755  
.DQDLS	  010112 RG	#39-1484   
.DQDL1	  010052 RG	#39-1476   
.DQLPT	  010132 RG	#39-1488   
.DQPBA	  010032 RG	#39-1472    39-1503    154-8305   154-8305  *155-8318   163-8572   163-8572   164-8608   164-8608  
                         166-8654   166-8654   166-8656   174-9027   174-9028   174-9032   273-14542  273-14544 
.DQPEA	  010232 RG	#39-1502    39-1503   
.DQPSZ	= 000010  G	#39-1503    178-9372  
.DRBEL	  030540 RG	 176-9186  #179-9450  
.DRLTC	= 015000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.DRSRN	  013352 RG	 8-333     #67-2953   
.DR.NS	  013460 RG	#67-2976    90-4717    141-7814  
.DSACF	= 066000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.DSIOJ	= 065000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.DST  	  001146 RG	#9-522     
.DTBLK	  001374 RG	#12-722    *81-4080   *180-9602  *181-9663  *181-9689   195-10429  212-11133  212-11137  212-11137 
.DTINT	  027624 RG	 8-427      8-427      8-427      8-427     #176-9160  
.DXRTY	  001364 RG	#12-701     277-14824 *277-14857  277-14878  277-14932 
.D.ASS	  021564 RG	 67-2862   #103-5253  
.D.CEF	  022034 RG	 67-2874   #109-5597  
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 30

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

.D.CMT	  022452 RG	 67-2872   #120-6212  
.D.DSE	  022070 RG	 67-2876   #111-5706  
.D.DTE	  020344 RG	 67-2863   #87-4479   
.D.EXT	  022520 RG	 67-2884   #122-6306   131-7211  
.D.GLI	  021670 RG	 67-2861   #105-5387  
.D.GMP	  024232 RG	 67-2896   #141-7769  
.D.GPP	  024110 RG	 67-2895   #139-7650  
.D.GTP	  021720 RG	 67-2893   #107-5481  
.D.MKT	  022350 RG	 67-2870   #118-6085  
.D.PUT	  023640 RG	 67-2871   #135-7389  
.D.QIO	  022542 RG	 67-2859    67-2860   #124-6487  
.D.RAF	  022126 RG	 67-2878   #113-5804  
.D.REC	  023460 RG	 67-2867   #131-7136  
.D.REF	  022112 RG	 67-2877   #112-5757  
.D.REQ	  023662 RG	 67-2864   #137-7469  
.D.ROE	  023460 RG	 67-2868   #131-7137  
.D.ROS	  023460 RG	 67-2869   #131-7138  
.D.SAR	  023226 RG	 67-2866   #127-6847  
.D.SEF	  022052 RG	 67-2875   #110-5647  
.D.SEN	  023212 RG	 67-2865   #126-6764  
.D.STV	  023626 RG	 67-2892   #133-7302  
.D.WFL	  022230 RG	 67-2880   #115-5934  
.D.WFO	  022154 RG	#114-5852   124-6673  
.D.WFS	  022152 RG	 67-2879   #114-5850  
.D.WSE	  022336 RG	 67-2883   #116-5998  
.EBPEC	  001370 RG	#12-714     278-14957 *278-14959 
.EBPEQ	  001366 RG	#12-711     196-10443  278-14964 
.EBRTY	  001365 RG	#12-703    *277-14876  277-14905  277-14933  278-14955 
.EIOJA	= 067000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.ELEDN	  030234 RG	 176-9178  #178-9331  
.EXEND	  001002 RG	#9-434      42-1666   
.FEACK	= ******  GX	 39-1499   
.FEACT	  005666 RG	#33-1077   *81-4129   
.FEMOD	  001170 RG	#9-541     
.FEPPU	  015550 RG	#77-3692    127-6868   127-6868   137-7477   137-7477  
.FEST 	= ******  GX	 39-1499   
.FESTB	  001000 RG	#9-432      9-433     
.FREPL	  001420 RG	#14-751    *42-1669   *42-1674    185-9865   212-11125  216-11398  239-12849  240-12889  267-14074 
                         268-14172 
.FSRPT	= 000050  G	#49-2152   
.GFNR 	= 102000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.HRDWR	  011314 RG	#41-1639   
.IBFLO	  005054 RG	#29-987     239-12849 
.IBFOK	  005056 RG	#29-989     212-11125  240-12889 
.INHDM	  002576 RG	#17-818    *150-8213   224-11905 
.INICL	= 070000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.INTEN	= 000100  G	#49-2113    85-4375   
.IOSNP	  012156 R	 44-1825    44-1825   #45-1920   
.IRLTC	= 014000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.KACFL	  001412 RG	#13-735     195-10402 
.KALSC	= 000005  G	#54-2377    90-4711    195-10422 
.KLERQ	  001130 RG	#9-502     
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 31

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

.KLERW	  001166 RG	#9-539     
.KLFCF	  001173 RG	#9-545     
.KLFLG	  001174 RG	#9-547     
.KLITK	  001126 RG	#9-499     *81-3962   *84-4304   *179-9488  *195-10416 *277-14852 *277-14856 *277-14873 *277-14898 
                        *277-14912 
.KLIWD	  001132 RG	#9-505     
.KLNBC	  001200 RG	#10-560     10-580    
.KLNFD	  001204 RG	#10-565    
.KLNFT	  001202 RG	#10-562     10-575     167-8675  
.KLNLB	  001200 RG	#10-559    
.KLNMD	  001216 RG	#10-572     161-8509   208-10834 
.KLNPB	  001176 RG	#10-556     161-8512  
.KLNPE	= 001220 RG	#10-576    
.KLNPT	  002636 RG	#17-842    
.KLNPW	  001220 RG	#10-577    
.KLNSW	  001226 RG	#10-581     44-1867    44-1875    153-8262   157-8390   169-8763   197-10460  208-10830  209-10855 
                         209-10912  211-11027  216-11386  217-11474  228-12080 *228-12082  234-12637  236-12715  270-14309 
                         271-14411 
.KLNTD	  001212 RG	#10-570    
.KLNTT	  001210 RG	#10-567    
.KLRLD	  001172 RG	#9-543     
.KPAC 	  001410 RG	#13-733    *90-4711   *90-4712   *195-10397 *195-10400 *195-10422 
.KPALV	  031326 RG	 180-9608   180-9608  #182-9716   195-10433  195-10433  212-11139  212-11139 
.KW11S	  035366 RG	 8-347     #212-11100 
.LCEND	= 011320 RG	 9-433     #41-1657   
.LCRDL	= 052000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.LCRDR	= 051000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.LCRM1	= 057000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.LCRM2	= 056000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.LCRM3	= 055000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.LCRM4	= 054000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.LCRM5	= 053000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.LDAR 	= 077000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.LDBRL	= 043000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.LDBRR	= 042000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.LDCK1	= 046000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.LDCK2	= 047000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.LDDIS	= 045000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.LDRJD	= 064000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.LDRJV	= 063000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.LDRM1	= 060000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.LDRM2	= 061000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.LDRM3	= 062000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.LDSEL	= 044000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.LPPFL	  006214 RG	#35-1151   *85-4351   
.MEMRS	= 076000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.MISC 	  011316 RG	#41-1650   *192-10288  197-10458 
.MON  	  001145 RG	#9-520      107-5499  
.MSIZE	  001114 RG	#9-482     
.NOERR	  001122 RG	#9-493      9-495     *42-1678   *81-3961   *84-4305   *179-9489   195-10391 *195-10411  277-14848 
                         277-14865 *277-14920 
.NOHLT	= 001123 RG	#9-495      277-14894 
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 32

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

.OBFLO	= 001200  G	#185-9846   185-9865  
.PARER	  011702 R	 8-353     #43-1796   
.PARRG	= 172100  G	 43-1797   #49-2109    85-4358   
.PAT1.	  000040 RG	#8-335     
.PAT2.	  000120 RG	#8-355     
.PAT3.	  000234 RG	#8-372     
.PAT4.	  000520 RG	#8-403     
.PCAB1	= 150000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.PCAB2	= 151000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.PCAB3	= 152000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.PCAB4	= 153000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.PDP11	= 000050	#139-7636   139-7659  
.PFAIL	  001026 RG	#9-464      75-3454   *83-4231   *84-4293   
.PFASS	  001052 RG	#9-477      75-3512    75-3517   *75-3518   
.PFIOW	  001030 RG	#9-466     *84-4294   *85-4337   *85-4356    229-12140  229-12194  230-12293  230-12342  230-12409 
                         231-12443  231-12460  237-12774 
.PFRST	  020126 RG	 75-3522    75-3522   #85-4329   
.POLLH	  001424 RG	#14-755     14-761     14-771     73-3237    73-3271    76-3563    76-3600    128-6973   131-7195  
                         137-7510   137-7516  
.POLND	  002330 RG	 14-757    #14-770    
.POLST	  001430 RG	 14-756    #14-759    
.PRADR	  001354 RG	#12-690    *90-4676    176-9169   183-9765   212-11136 
.PRDCT	  001362 RG	#12-696    *81-3969   *81-4046   *176-9185  
.PRDTE	  001360 RG	#12-694     44-1858    81-3929    84-4289    90-4674    176-9168   183-9764   195-10432  212-11135 
.PRPSE	  001372 RG	#12-717     66-2730   *81-3921   *81-3941   *81-3982   *85-4355    216-11396 
.PRSTA	  001356 RG	#12-692     43-1779    44-1863    81-3930    84-4318    85-4377    176-9170   177-9298   183-9782  
                         280-15066  281-15093 
.PUDBA	  010232 RG	 36-1307   #40-1522    76-3632    103-5276   257-13646 
.PUDEA	  011312 RG	#40-1628    103-5278  
.PWRDN	  017574 RG	 8-329      75-3456   #83-4225    84-4303   
.RCRM1	= 147000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.RCRM2	= 146000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.RCRM3	= 145000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.RCRM4	= 144000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.RCSPF	= 141000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.RDJ14	= 134000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.RDJ71	= 135000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.RDMAB	= 133000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.REQS 	  015046 RG	 73-3275    73-3275   #76-3550    124-6652   124-6652   127-6893   127-6893   137-7497   137-7497  
.RPADR	  005670 RG	#33-1079   
.RPELC	  005540 RG	#32-1044   
.RPELQ	  005536 RG	#32-1042    196-10446 
.RPSIZ	  005674 RG	#33-1081   
.RPUNT	  005664 RG	#33-1075   
.RP1PE	  010352 RG	#40-1545    40-1546   
.RP2PE	  010422 RG	#40-1550    40-1551   
.RP3PE	  010472 RG	#40-1555    40-1556   
.RP4PE	  010542 RG	#40-1560    40-1561   
.RP5PE	  010612 RG	#40-1565    40-1566   
.RP6PE	  010662 RG	#40-1570    40-1571   
.RP7PE	  010732 RG	#40-1575    40-1576   
.RQESD	  015540 RG	#76-3659    127-6899   137-7500  
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 33

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

.RQSPD	  024600 RG	#146-8095   162-8539   192-10305 
.SECLK	= 003000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.SEND 	  023360 RG	 124-6648   124-6648   126-6774   126-6774   127-6862   127-6862  #128-6956   137-7546   137-7546  
.SERFG	  001014 RG	#9-448     *42-1680   *69-3081    74-3308    75-3458    75-3486    75-3491    75-3498   *75-3514   
                        *75-3521   *79-3828   *83-4232   *84-4308   *143-7916  *143-7920  *212-11102 *259-13781 
.SETMR	= 007000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.SETRN	= 011000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.SEWFL	  001016 RG	#9-450     *116-5999   143-7920  *143-7921  
.SNDAL	  027006 RG	 66-2737    66-2737    169-8706   169-8706  #169-8742  
.SNDBF	  002606 RG	#17-829    *169-8757  *169-8841   202-10647 *202-10648  204-10705 
.SNDCN	  002616 RG	#17-831    *169-8755  *169-8837  *202-10631 
.SNDLP	  002604 RG	#17-827     85-4338    169-8749  *169-8754   169-8833   202-10637  204-10700 
.SSCLK	= 002000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.SSM  	  001150 RG	#9-526      107-5483  *143-7873  *143-7875   143-7876  
.SSTCO	  013326 RG	 43-1748   #67-2904   
.SSTET	  013320 RG	 67-2796   #67-2901    67-2964   
.STAST	  015730 RG	#79-3805    143-7906   143-7906   256-13597  256-13597 
.STDHL	  037416 RG	#220-11727  223-11830  223-11830  235-12676  235-12676  236-12733  236-12733  242-12996  242-12996 
                         243-13053  243-13053  244-13117  244-13117  270-14374  270-14374 
.STDTA	  006334 RG	#36-1223    73-3242    266-14021 
.STDTB	  006342 RG	 36-1224   #36-1230   
.STDTC	  006336 RG	#36-1225   
.STDTZ	  006340 RG	#36-1227    73-3243   *73-3244   *137-7540   266-14023 
.STELD	  031062 RG	 179-9545   179-9545  #180-9597   180-9602  
.STELI	  031150 RG	 179-9517   179-9517  #181-9653   181-9663  
.STPCL	= 000000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.STPDM	  040174 RG	 226-12019  226-12019 #227-12044  231-12477  231-12477 
.STRCL	= 001000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.STTNF	  031370 RG	 147-8153   147-8153  #183-9758  
.STTNQ	  031362 RG	 177-9261   177-9261  #183-9755   275-14677  275-14677  276-14722  276-14722 
.STTYD	  040060 RG	 213-11256  213-11256  217-11489  217-11489  224-11934 #225-11974 
.STTYH	  040074 RG	 224-11942  224-11942 #225-11979  228-12098  228-12098 
.SYUIC	  001156 RG	#9-531      124-6601   139-7661  
.S2IDC	  005050 RG	#29-983     212-11120 *212-11129 *240-12894 *242-13011 
.S2ITP	  005052 RG	#29-985     232-12532 *232-12547 
.TENDN	  027746 RG	 176-9172  #177-9226  
.TFXOF	  043004 RG	 242-12983  242-12983 #247-13226 
.TFXON	  042774 RG	 243-13069  243-13069 #247-13221 
.TICK 	  024364 RG	 75-3489   #143-7865   143-7917  
.TICKS	  001134 RG	#9-508      143-7865  
.TKPS 	  001154 RG	#9-528      81-3924    107-5481   143-7867  *161-8496  *161-8499  
.TKTN 	  001124 RG	#9-497     *43-1754    66-2710   *66-2712   *71-3173   *81-3960   *84-4307   *179-9491  *195-10417 
                        *277-14922 
.TKTN.	  012740 R	 66-2715   #66-2745   
.TOD. 	  012722 R	 66-2726   #66-2741   
.TPDBA	  007552 RG	#38-1408    77-3697    77-3698    141-7781  
.TPDEA	  010032 RG	#38-1462    141-7779  
.TTACK	  034370 RG	 204-10712  206-10756  206-10764  206-10774 #208-10825 
.TTBTW	  042604 RG	 158-8423   158-8423   241-12930  241-12930 #244-13105  247-13230  247-13230 
.TTCHK	  042124 RG	 212-11114  212-11114  216-11415  216-11415 #238-12813 
.TTDIS	  042312 RG	 238-12817  238-12817  239-12854  240-12884  241-12925 #242-12960 
.TTELB	  002660 RG	#17-864    *213-11292 *229-12226 *231-12485  233-12597 *233-12599 
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 34

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

.TTELC	  002656 RG	#17-862     233-12571 
.TTELQ	  002654 RG	#17-857     196-10439  233-12581 
.TTENB	  042464 RG	 212-11128  212-11128  237-12785  237-12785  240-12890  241-12922 #243-13038 
.TTERL	  041426 RG	 213-11293  213-11293  230-12412  230-12412 #233-12568 
.TTFDI	  041360 RG	 212-11127  212-11127 #232-12531 
.TTICK	  042150 RG	 216-11419  216-11419 #239-12846 
.TTIXC	  042254 RG	 201-10596  201-10596  204-10692  204-10692  206-10769  206-10769 #241-12919 
.TTP11	  002632 RG	#17-837     169-8785  *197-10473 *198-10506  201-10591  206-10760  208-10828  216-11439  234-12635 
                         236-12713  270-14367  271-14442 
.TTQDS	  042204 RG	 157-8402  #240-12881 
.TTQEN	  042214 RG	 157-8405  #240-12886 
.TTRNG	  040044 R	 217-11470  217-11470  224-11924 #224-11941 
.TTRST	  042034 RG	 228-12102  229-12197  229-12197  230-12344  230-12344 #237-12772 
.TTSCW	  040050 R	 217-11495  217-11495  224-11926 #224-11946 
.TTSTP	  041650 RG	 234-12647  234-12647 #235-12675  244-13129  244-13129  271-14449 
.TTSW2	  042754 RG	 157-8401   157-8401   212-11111  212-11111  213-11268  213-11268  216-11412  216-11412  223-11829 
                         223-11829  230-12355  230-12355  232-12536  232-12536  237-12779  237-12779  241-12920  241-12920 
                         244-13109  244-13109 #246-13188 
.TTS2F	  005046 RG	#29-981     212-11103 *238-12818 *242-12987 *243-13046 
.TTXOF	  041554 RG	 159-8451   159-8451   216-11409  216-11409 #234-12628 
.TTXON	  041676 RG	 160-8481   160-8481  #236-12705 
.VCLUN	  015654 RG	#78-3751    103-5256   103-5256   105-5396   105-5396   124-6493   124-6493  
.VERNO	  001036 RG	#9-472     
.WRMBX	= 071000	#7-262     #48-2092   #80-3894   #82-4186   #86-4445   #145-8019  #175-9120  #189-10058 #250-13319 
.X.02 	  023234 R	 126-6770  #127-6854  
.YEAR 	  001142 RG	#9-516      107-5501  
..AKCR	= ******  GX	 39-1493   
..AKLP	= ******  GX	 39-1489   
..ALCB	  044416 RG	 76-3596    76-3596    124-6561   124-6561   185-9867   185-9867   233-12578  233-12578  245-13158 
                         245-13158 #267-14068  269-14248  269-14248  276-14734  276-14734  278-14961  278-14961 
..ALC2	  044432 RG	#267-14075 
..ALOW	  044706 RG	 164-8593   164-8593   170-8872   170-8872  #269-14247  269-14251  275-14646  275-14646 
..BLXI	  047062 RG	#284-15307 
..BLXO	  047074 RG	 256-13583  256-13583 #284-15313 
..DECB	  044552 RG	 81-4099    81-4099    177-9256   177-9256   256-13602  256-13602 #268-14168 
..DECN	  044546 RG	 85-4345    85-4345    164-8617   164-8617   165-8640   165-8640   169-8842   169-8842   178-9386  
                         178-9386   203-10668  203-10668  206-10768  206-10768  255-13545  255-13545 #268-14166  270-14337 
                         270-14349  271-14459  271-14459 
..DEC2	  044542 RG	#268-14162 
..DQRN	  043432 RG	 197-10471  197-10471 #257-13643  257-13717 
..DSEV	  044026 RG	 76-3640    76-3640    79-3807    79-3807    111-5706   111-5706   124-6664   124-6664   128-6996  
                         143-7900   143-7900   177-9247   177-9247   178-9363   178-9363   209-10911  209-10911  216-11430 
                         216-11430  216-11435  216-11435  217-11477  217-11477  222-11801  228-12084  256-13592  256-13592 
                        #259-13780  282-15117  282-15117 
..DTP1	  047036 RG	 90-4714    90-4714   #282-15114 
..DTP2	  047006 RG	 89-4589    89-4589    179-9480   179-9480  #281-15088 
..DTSP	  046770 RG	 81-3963    81-3963    84-4306    84-4306    179-9490   179-9490   195-10410  195-10410  277-14921 
                         277-14921 #280-15065  281-15091  281-15091 
..ENB0	  044302 RG	 79-3822    79-3822    81-4040    81-4040    81-4127    81-4127    257-13707  257-13707  257-13713 
                         257-13713  262-13874  262-13874 #265-13980  286-15517  286-15517  286-15551  286-15551 
..ERLG	  043212 RG	 196-10441  196-10441  196-10444  196-10444  196-10447  196-10447 #255-13522  255-13546 
..FSTD	  044336 RG	 126-6764   126-6764   127-6847   127-6847   131-7157   131-7157   137-7469   137-7469  #266-14019 
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 35

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

..INTX	  014632 RG	 43-1762   #75-3449    84-4309    143-7922   176-9195   219-11705  265-13989 
..IODN	  043312 RG	 198-10505  198-10505 #256-13573  257-13716  257-13716 
..IPRI	  044122 RG	 76-3637    76-3637    76-3655    76-3655    124-6662   124-6662  #262-13861 
..NADD	  044176 RG	 73-3238    73-3238    73-3258    73-3258    73-3272    73-3272    76-3601    76-3601    128-6990  
                         128-6990   131-7196   131-7196   137-7519   137-7519   262-13873  262-13873 #263-13895  275-14680 
                         275-14680  276-14731  276-14731 
..NDEL	  044062 RG	 73-3236    73-3236    81-4092    81-4092    131-7174   131-7174   177-9253   177-9253  #261-13829 
                         264-13942  264-13942 
..PICK	  044240 RG	 73-3264    73-3264    76-3564    76-3564    128-6974   128-6974   131-7148   131-7148   137-7511  
                         137-7511   257-13658  257-13658 #264-13936 
..SACK	  045372 RG	 166-8659   166-8659   208-10846  208-10846 #273-14522 
..SEFN	  043754 RG	 256-13590  256-13590 #258-13742 
..SPLP	= ******  GX	 39-1489   
..STCH	  045326 RG	 216-11411  216-11411 #272-14484 
..STCR	= ******  GX	 39-1493   
..STFC	  045456 RG	 161-8508   161-8508   161-8524   161-8524   174-9070   174-9070   194-10338  194-10338  194-10340 
                         194-10340  194-10344  194-10344  225-11991  225-11991  272-14497  272-14497 #274-14565 
..STIN	  045646 RG	 161-8518   161-8518   255-13530  255-13530 #275-14635 
..STLP	= ******  GX	 39-1489   
..STPT	  045142 RG	 39-1473    39-1477    39-1481    39-1485    237-12788  237-12788 #271-14404 
..STQ 	  046046 RG	 213-11208  213-11208  274-14580  274-14580  274-14590  274-14590 #276-14711 
..STTY	  044726 RG	 39-1473    39-1477    39-1481    39-1485    169-8773   169-8773   169-8792   169-8792  #270-14300 
..SWED	  046670 RG	 90-4623    90-4623    90-4634    90-4634    90-4647    90-4647    90-4687    90-4687    90-4694   
                         90-4694    91-4756    91-4756    99-5099    99-5099   #279-15016 
..VTOL	  047150 RG	 124-6643   124-6643  #285-15401 
..VVLL	  047332 RG	 285-15436  285-15436 #286-15486 
..VXFR	  047054 RG	 257-13703  257-13703 #283-15156  284-15319  284-15319 
..WFED	  046216 RG	 81-3944    81-3944    81-3972    81-3972    81-3986    81-3986    81-4014    81-4014    81-4024   
                         81-4024    81-4030    81-4030    81-4038    81-4038    81-4049    81-4049    81-4072    81-4072   
                         81-4124    81-4124    97-5032    97-5032    177-9286   177-9286   179-9456   179-9456   179-9538  
                         179-9538   181-9658   181-9658   182-9725   183-9779   183-9779   184-9816   184-9816  #277-14820 
                         279-15025  279-15025  279-15041  279-15041 
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 36

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

CALL  		#7-257     #44-1825   #44-1828   #44-1843   #48-2089   #66-2735   #66-2737   #73-3236   #73-3238   #73-3258   
                #73-3264   #73-3272   #73-3275   #75-3522   #76-3564   #76-3596   #76-3601   #76-3637   #76-3640   #76-3655   
                #79-3807   #79-3822   #80-3892   #81-3927   #81-3944   #81-3963   #81-3972   #81-3986   #81-4014   #81-4024   
                #81-4030   #81-4038   #81-4040   #81-4049   #81-4072   #81-4092   #81-4099   #81-4124   #81-4127   #82-4185   
                #84-4290   #84-4291   #84-4306   #85-4345   #85-4348   #85-4349   #85-4350   #86-4443   #89-4589   #90-4623   
                #90-4634   #90-4647   #90-4687   #90-4694   #90-4714   #91-4756   #97-4976   #97-5008   #97-5016   #97-5032   
                #99-5099   #102-5201  #103-5256  #104-5343  #105-5396  #106-5446  #107-5485  #107-5489  #108-5559  #109-5597  
                #110-5647  #111-5706  #111-5710  #112-5757  #114-5859  #117-6038  #118-6085  #119-6174  #120-6223  #121-6271  
                #123-6352  #124-6493  #124-6516  #124-6561  #124-6643  #124-6648  #124-6652  #124-6662  #124-6664  #125-6720  
                #126-6764  #126-6774  #127-6847  #127-6862  #127-6868  #127-6893  #128-6963  #128-6974  #128-6990  #131-7148  
                #131-7157  #131-7174  #131-7196  #132-7252  #134-7341  #136-7433  #137-7469  #137-7477  #137-7497  #137-7511  
                #137-7519  #137-7546  #142-7859  #143-7900  #143-7906  #143-7913  #145-8017  #147-8153  #152-8240  #153-8258  
                #153-8269  #153-8281  #153-8283  #153-8286  #153-8293  #154-8304  #154-8305  #155-8317  #156-8332  #156-8337  
                #156-8358  #156-8365  #156-8368  #156-8375  #157-8386  #157-8394  #157-8397  #157-8401  #158-8418  #158-8423  
                #159-8449  #159-8451  #160-8478  #160-8481  #161-8508  #161-8518  #161-8524  #163-8570  #163-8572  #164-8593  
                #164-8606  #164-8608  #164-8617  #165-8640  #166-8652  #166-8654  #166-8659  #169-8706  #169-8771  #169-8773  
                #169-8792  #169-8842  #170-8872  #174-9070  #175-9118  #177-9247  #177-9253  #177-9256  #177-9261  #177-9286  
                #177-9292  #178-9363  #178-9386  #178-9392  #178-9405  #178-9413  #179-9456  #179-9480  #179-9490  #179-9517  
                #179-9538  #179-9545  #179-9550  #180-9600  #180-9608  #181-9658  #181-9661  #181-9669  #181-9686  #181-9688  
                #183-9779  #183-9781  #184-9816  #185-9867  #189-10056 #193-10319 #193-10320 #193-10325 #194-10338 #194-10340 
                #194-10344 #195-10410 #195-10433 #196-10441 #196-10444 #196-10447 #197-10471 #198-10505 #200-10549 #201-10563 
                #201-10584 #201-10594 #201-10596 #203-10668 #204-10692 #206-10754 #206-10768 #206-10769 #208-10840 #208-10846 
                #209-10911 #209-10918 #212-11101 #212-11111 #212-11114 #212-11127 #212-11128 #212-11137 #212-11139 #213-11196 
                #213-11208 #213-11254 #213-11255 #213-11256 #213-11268 #213-11293 #215-11336 #216-11409 #216-11411 #216-11412 
                #216-11415 #216-11419 #216-11430 #216-11435 #217-11470 #217-11477 #217-11489 #217-11495 #219-11698 #221-11770 
                #223-11829 #223-11830 #224-11881 #224-11942 #225-11980 #225-11991 #226-12019 #228-12098 #229-12138 #229-12150 
                #229-12176 #229-12197 #229-12227 #230-12330 #230-12344 #230-12355 #230-12412 #231-12470 #231-12471 #231-12477 
                #231-12486 #232-12536 #233-12578 #234-12641 #234-12647 #235-12676 #236-12719 #236-12733 #236-12736 #236-12743 
                #237-12779 #237-12785 #237-12788 #238-12817 #241-12920 #241-12930 #242-12983 #242-12996 #243-13053 #243-13069 
                #244-13109 #244-13112 #244-13117 #244-13119 #244-13123 #244-13129 #245-13158 #247-13230 #250-13315 #252-13396 
                #255-13530 #255-13545 #256-13583 #256-13590 #256-13592 #256-13597 #256-13602 #257-13658 #257-13703 #257-13707 
                #257-13713 #257-13716 #258-13748 #262-13873 #262-13874 #264-13942 #269-14248 #270-14312 #270-14314 #270-14318 
                #270-14374 #271-14415 #271-14418 #271-14434 #271-14459 #272-14489 #272-14497 #273-14526 #274-14580 #274-14590 
                #275-14646 #275-14664 #275-14677 #275-14680 #276-14722 #276-14731 #276-14734 #277-14858 #277-14874 #277-14911 
                #277-14921 #278-14961 #279-15025 #279-15041 #281-15091 #282-15117 #284-15319 #285-15436 #286-15517 #286-15551 
CLEF$ 		#189-10056 
CLEF$C		#48-2090   
CLEF$S		#48-2088   #80-3892   #81-4116   
CMKT$S		#48-2089   
DECL$S		#48-2089   
DHPSW 		#7-305      8-400      8-400      8-400      8-400      8-400      8-400      8-400      8-400     
DIR$  		#48-2088   #66-2715   #66-2726   #81-3922   #81-3922   #81-3936   #81-3936   #81-3998   #81-3998   #81-4067   
                #81-4116   #81-4116   #81-4117   #81-4117   #142-7859  #145-8017  #147-8130  #162-8539  #189-10057 #192-10279 
                #192-10289 #192-10293 #192-10297 #192-10305 #192-10307 #192-10307 #195-10393 #250-13314 #255-13536 #255-13536 
                #269-14250 #269-14250 
DMYG$ 		#250-13314 
DTON$S		#48-2089   #80-3892    81-4117   
EHSG$ 		#189-10057  190-10223 
ERR$  		#66-2715   #66-2726   #81-3922   #81-3936   #81-3998   #81-4067   #81-4116   #81-4117   #147-8130  #162-8539  
                #192-10279 #192-10289 #192-10293 #192-10297 #192-10305 #192-10307 #195-10393 #255-13536 #269-14250 
F11DF$		#7-259      7-263     #250-13316  250-13320 
IDENT$		#4-144     #6-187     #6-187     #46-1946   #46-1946   #80-3834   #80-3834   #82-4139   #82-4139   #86-4392   
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 37

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

                #86-4392   #102-5168  #102-5168  #104-5310  #104-5310  #106-5413  #106-5413  #108-5520  #108-5520  #117-6005  
                #117-6005  #119-6140  #119-6140  #121-6237  #121-6237  #123-6317  #123-6317  #125-6682  #125-6682  #132-7219  
                #132-7219  #134-7308  #134-7308  #136-7400  #136-7400  #138-7560  #138-7560  #140-7684  #140-7684  #144-7926  
                #144-7926  #175-9079  #175-9079  #188-9928  #188-9928  #249-13239 #249-13239 
MFPI  		#48-2089    77-3692    77-3693   #86-4443   #102-5202   103-5253   103-5268  #104-5343   105-5395  #108-5559  
                #117-6038   118-6100   118-6101   118-6102  #123-6352   124-6492   124-6502   124-6504   124-6536  #125-6720  
                 128-6956   128-6982   131-7142   131-7143  #132-7252  #134-7341  #140-7718   141-7769   141-7770  #250-13315 
                 266-14024  266-14025 
MFPS  		#7-257      43-1745   #48-2089    67-2795    67-2829    67-2963    77-3712   #86-4443    87-4483    87-4491   
                 87-4492    87-4495    97-5020    97-5021    97-5022    98-5062    99-5092    99-5097    100-5137  #102-5202  
                 103-5270   103-5272  #104-5343   105-5403  #106-5446   107-5510  #108-5559   115-5938   115-5941   115-5944  
                 115-5946   115-5954   115-5956  #117-6038  #123-6352   124-6489   124-6523   124-6607  #125-6720   131-7180  
                #132-7252   133-7303  #134-7341   135-7389  #136-7433   137-7505   137-7506   137-7507   137-7508   137-7509  
                #138-7593   139-7672  #140-7718   141-7793  #250-13315  252-13388  279-15036  279-15037  279-15038 
MOV$  		#81-3922   #81-3922   #81-4116   #81-4116   
MRKT$ 		#48-2090   #145-8017  
MRKT$S		#48-2090   
MTPI  		#48-2089   #86-4443   #104-5343   105-5405  #106-5446   107-5512  #108-5559  #117-6038  #123-6352   124-6508  
                 124-6510  #125-6720  #132-7252  #134-7341  #140-7718   141-7806  #250-13315 
MTPS  		#48-2089   #86-4443    97-4991    97-4992    97-4993    97-4998    97-4999    97-5000    97-5001    100-5141  
                #108-5559   113-5804   113-5805   113-5806   113-5807  #117-6038  #123-6352  #125-6720   131-7187   131-7188  
                 131-7192  #132-7252  #134-7341  #138-7593   139-7676  #140-7718   141-7809  #250-13315  279-15027  279-15028 
                 279-15029 
OFF$  		#66-2742    66-2742    66-2742    66-2742    66-2742    66-2742    66-2742   #66-2746    66-2746    66-2746   
                 66-2746    66-2746    66-2746    66-2746   #81-4133    81-4133    81-4133    81-4133    81-4133    81-4133   
                 81-4133    81-4133    81-4133   #146-8096   146-8096   146-8096   146-8096   146-8096   146-8096   146-8096  
                #190-10225  190-10225  190-10225  190-10225  190-10225  190-10225  190-10225 #190-10227  190-10227  190-10227 
                 190-10227  190-10227  190-10227  190-10227 #190-10229  190-10229  190-10229  190-10229  190-10229  190-10229 
                 190-10229 
PSW   		#7-292     #8-319     #8-321     #8-323     #8-325     #8-327     #8-329     #8-331     #8-333     #8-338     
                #8-338     #8-338     #8-338     #8-340     #8-341     #8-345     #8-345     #8-347     #8-351     #8-351     
                #8-353     #8-358     #8-358     #8-358     #8-358     #8-358     #8-358     #8-358     #8-358     #8-358     
                #8-358     #8-358     #8-358     #8-358     #8-358     #8-358     #8-361     #8-368     #8-368     #8-370     
                #8-375     #8-375     #8-375     #8-375     #8-377     #8-379     #8-384     #8-387     #8-388     #8-390     
                #8-391     #8-393     #8-394     #8-406     #8-406     #8-406     #8-406     #8-406     #8-406     #8-406     
                #8-406     #8-406     #8-406     #8-406     #8-406     #8-406     #8-406     #8-406     #8-406     #8-406     
                #8-406     #8-406     #8-406     #8-406     #8-406     #8-406     #8-406     #8-406     #8-406     #8-406     
                #8-406     #8-406     #8-406     #8-406     #8-406     #8-408     #8-409     #8-411     #8-412     #8-414     
                #8-415     #8-418     #8-419     #8-427     #8-427     #8-427     #8-427     
QDPB$ 		#81-4133    81-4133   
QIOSY$		#48-2090    48-2091   
QIOW$ 		#48-2088   #80-3892   #81-4133   
RETURN		 44-1883    45-1937   #48-2089    76-3553    76-3568    76-3657    77-3716    78-3782    79-3825   #80-3892   
                 84-4321    85-4379   #86-4443    101-5164  #102-5201  #104-5343  #106-5446  #108-5559  #117-6038  #119-6174  
                #121-6271  #123-6352  #125-6720  #132-7252  #134-7341  #136-7433  #142-7859  #145-8017   169-8803   170-8882  
                 171-8919   172-8952   174-9054  #175-9118   181-9691   184-9820   185-9873   186-9899   187-9924  #189-10056 
                 201-10578  207-10803  208-10842  208-10849  209-10872  210-10939  213-11210  216-11422  216-11445  217-11502 
                 218-11524  220-11742  223-11842  224-11949  225-11993  227-12051  228-12087  229-12181  229-12241  230-12381 
                 230-12414  231-12501  232-12548  233-12605  234-12655  235-12682  236-12747  237-12792  238-12820  240-12898 
                 241-12933  244-13134  245-13169  246-13194  247-13232 #250-13315  252-13410  254-13492  255-13549  256-13605 
                 257-13708  259-13782  260-13810  261-13837  262-13876  263-13905  264-13945  266-14044  267-14128  268-14227 
                 269-14254  270-14324  270-14379  271-14422  271-14463  272-14502  273-14551  274-14584  275-14688  276-14752 
RSXTOPS10  CREATED BY  MACRO  ON 10-NOV-81 AT 17:25	PAGE 38

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

                 277-14937  278-14991  279-15044  282-15120  283-15159  284-15364  285-15458  286-15557 
RQST$ 		#48-2087   #66-2742   #66-2746   #145-8016  #146-8096  #189-10057 #190-10225 #190-10227 #190-10229 
RSXVR$		#7-265     #9-473     #9-473     
R50$  		#66-2742    66-2742    66-2742   #66-2746    66-2746    66-2746   #146-8096   146-8096   146-8096  #190-10225 
                 190-10225  190-10225 #190-10227  190-10227  190-10227 #190-10229  190-10229  190-10229 
WSIG$S		#48-2090   #80-3893    81-3936    81-3998   #145-8016  #189-10056  192-10307 #250-13317  255-13536  269-14250 
WTLO$ 		#48-2090   #145-8017  #146-8093  #189-10056 #190-10221 
WTLO$C		#48-2090   
WTSE$ 		#48-2088   #145-8017  
WTSE$S		#48-2088   #80-3892    81-3922   #145-8016  
$DEF  		#7-259      7-262     #48-2088    48-2092   #80-3893    80-3894   #82-4185    82-4186   #86-4443    86-4445   
                #145-8016   145-8019  #175-9118   175-9120  #189-10057  189-10058 #250-13316  250-13319 
.ATLEN		#7-258      37-1351    37-1354    37-1358    37-1365    37-1371    37-1378    37-1385    37-1398    37-1401   
.CRASH		#7-257      43-1757    43-1781    43-1788    43-1791    43-1794    43-1805   #48-2087    71-3176    75-3525   
                #80-3892   #82-4185    84-4286   #86-4443   #142-7859  #145-8017   149-8203  #175-9118   176-9174   176-9180  
                 177-9232   178-9345   178-9374   178-9379   179-9474   179-9511   179-9531   179-9542  #189-10057  245-13171 
                #250-13314  276-14736 
.DQPEN		#7-260      39-1473    39-1477    39-1481    39-1485    39-1489    39-1493    39-1496    39-1499   #48-2089   
                #145-8017  
.ENB  		#48-2087   #86-4443   #250-13318 
.ENBT 		#145-8026  #161-8517  #164-8592  #170-8871  
.ENB0 		#48-2087    79-3822   #80-3893    81-4040    81-4127   #250-13317  257-13707  257-13713  262-13874  286-15517 
                 286-15551 
.ENB5 		#48-2087   #145-8016  #189-10056  193-10327 #250-13315 
.ENB6 		#48-2087    66-2698    66-2714    66-2725   #80-3893    81-3935    81-3964    81-3997    81-4066   #145-8017  
                 147-8128   147-8145  #189-10056  192-10284  195-10434  197-10474  200-10551 #250-13318  261-13835  263-13903 
                 264-13944  267-14125  268-14222  274-14582  275-14681 
.INH  		#48-2087   #86-4443   #250-13318 
.INHT 		#145-8033   161-8519   164-8594   170-8873  
.INH0 		#48-2087   #79-3810   #250-13317 #257-13655 #262-13864 #286-15490 
.INH5 		#48-2087   #145-8016  #189-10056 #193-10315 #250-13315 
.INH6 		#48-2087   #66-2703   #80-3893   #81-3938   #81-3999   #81-4068   #145-8017  #147-8132  #147-8149  #189-10056 
                #192-10280 #195-10431 #197-10457 #200-10548 #250-13318 #261-13831 #263-13898 #264-13938 #267-14079 #268-14177 
                #274-14567 #275-14672 
.PUDEN		#7-258     #7-260     #40-1526   #40-1540   #40-1546   #40-1551   #40-1556   #40-1561   #40-1566   #40-1571   
                #40-1576   #40-1584   #40-1588   #40-1608   #40-1613   #40-1623   
.STDEN		#7-258     #36-1284   #36-1288   #36-1293   #36-1307   #36-1316   #36-1321   #36-1326   #36-1331   #36-1335   
                #36-1338   
.STKM 		#48-2088   #65-2695   #80-3892   #81-3918   #142-7859  #145-8017  #147-8123  #189-10056 #190-10206 
.TPDEN		#7-260     #38-1412   #38-1416   #38-1420   #38-1424   #38-1428   #38-1433   #38-1437   #38-1441   #38-1451   
                #38-1456   #38-1460