Google
 

Trailing-Edge - PDP-10 Archives - BB-H348C-RM_1982 - swskit-v21/listings/loader/terdmc.list
There are no other files named terdmc.list in the archive.
CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST	DNMAC X24.07-563  06-DEC-79  10:34
C11DMC.MAC    10-AUG-79 16:08		TABLE OF CONTENTS

   178	 CHKDEF - DEFINE THE HARDWARE THAT CHK11 WILL TEST
   231	 END OF MODULE CHKDEF
   232
   240	 S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77
   304		STOPCD'S
   338		GENERAL MACRO DEFINITIONS
   578		PDP-11 EIS EMULATORS
   734		SYMBOL DEFINITIONS
   797		HARDWARE DEFINITIONS
   798			VECTORS
   818			DEVICES
   819			CD20 - PUNCHED CARD READER
   889			CR11 - PUNCHED/MARK SENSE CARD READER
   912			CTY - CONSOLE TELETYPE
   931			DH11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER
   972			DJ11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER
   974			DL10 - UNIBUS-TO-MBUS INTERFACE
  1002			DL11 - ASYNCHRONOUS SERIAL LINE INTERFACE
  1055			DM11BB - MODEM CONTROLLER FOR DH11
  1072			DMC11/KMC11 - MICROPROCESSOR BASED COMM CONTROLLER
  1096			DN11 - AUTODIALER
  1114			DP11 - SYNCHRONOUS LINE INTERFACE
  1146			DQ11 - DMA SYNCHRONOUS LINE INTERFACE
  1267			DS11 - SYNCHRONOUS LINE INTERFACE
  1355			DTE20 - DECSYSTEM 20(10)/PDP-11 INTERPROCESSOR INTERFACE
  1402			DU11 - SYNCHRONOUS LINE CONTROLLER
  1404			DUP11 - SYNCHRONOUS LINE INTERFACE WITH CRC
  1494			DZ11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER
  1511			EIA PIN DEFINITIONS
  1539			KG11 - COMMUNICATIONS ARITHMETIC PROCESSOR
  1570			KT11 - MEMORY MANAGEMENT MODULE
  1648			KW11 - LINE TIME CLOCK
  1665			LP11 - LINE PRINTER CONTROLLER
  1685			LP20 - LINEPRINTER CONTROLLER
  1776			MM11-LP PARITY MEMORY
  1788			PA611 - TYPESET READER/PUNCH
  1794			PC11 - PAPER TAPE READER/PUNCH INTERFACE
  1821			TC11 - DECTAPE CONTROLLER
  1879			TM11 - MAGNETIC TAPE CONTROLLER
  1944		END OF DEVICE DEFINITIONS
  2997	 MODULE END
  2998
  3300	 CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC
  3370		CHK11 MACROS
  3371			CK11SC
  3425			$CKINT
  3457			DEVICE
  3535			CHKCHR
  3551			CKVECT, CKVEC1
  3636		CHK11 DEVICE NAME TABLE
  3718	 **** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****
  4053			CHECK KT11 HARDWARE
  4281			CHECK MEMORY - SLIDING BIT PATTERN
  4467			CHECK KW11-L HDW
  4524			CHECK DL10 HDW
  4560			DEVICE SCAN AND CHECK
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34
C11DMC.MAC    10-AUG-79 16:08		TABLE OF CONTENTS

  4659			CHK11 COMPLETION
  4675		END OF CHK11 MAINLINE
  4677		GENERAL SUBROUTINES
  4680			LOOK FOR AND CHECK SYSTEM DEVICES
  4886			BIT BY BIT SET/CLEAR TEST
  4936			BIT SET/BIT CLEAR TEST FOR DL10
  4958			PRINT DEVICE ID ROUTINE
  4983			ROUTINE TO FIND DEVICE INTERRUPT LEVEL
  5024			CHECK INTERRUPTS AND FIND DEVICE LEVEL
  5116			GENERAL INTERRUPT FIELDER FOR CHK11
  5168		DEVICE DIAGNOSTICS
  5183			CHECK CD20 HARDWARE
  5243			CHECK CR11 HARDWARE
  5293			CHECK DH11 HDW
  5496			CHECK DL11-A HDW
  5504			CHECK DL11-E HDW
  5525			CHECK DM11BB HDW
  5573			CHECK DN11 HDW
  5588			CHECK DP11 HDW
  5612			CHECK DQ11 HDW
  5929			CHECK DS11 HDW
  5981			CHECK DTE20 HARDWARE
  6024			CHECK DU11 HDW
  6036			CHECK DUP11 HDW
  6060			CHECK DZ11 HDW
  6083			CHECK KG11 HARDWARE
  6130			CHECK KMC/DMC HARDWARE
  6381			CHECK LP11 HARDWARE
  6402			CHECK LP20 HARDWARE
  6460			CHECK MD11 HDW
  6472			DUMMY NULL DEVICE CHECKER
  6478			CHECK PA611P HARDWARE
  6491			CHECK PA611R HARDWARE
  6504			CHECK PP11 HARDWARE
  6520			CHECK PR11 HARDWARE
  6549			CHECK RH11 HARDWARE
  6563			CHECK TC11 HARDWARE
  6596			CHECK TM11 HARDWARE
  6609			NULL DIAGNOSTIC
  6624		TTY SUPPORT FOR TYPE OUTS
  6802		REMOTE OUTPUT HANDLER
  6873		UNEXPECTED BUS TRAP HANDLER
  6889		CK11SC/TRAP INSTRUCTION HANDLER
  7050	 MODULE END
  7051	 PROGRAM END
CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1
C11DMC.MAC    10-AUG-79 16:08

     1						.TITLE	CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST
     2						.IDENT	/X2A.21/
     3		000000											.REPT 0
     4					                                                        :                
     5					                                          :             :         :     
     6					                                                        :         :     
     7					 ::::    ::::   : :::   :   :   :: ::    ::      ::: :  ::::    :::::   
     8					:    :  :    :   :   :  :   :    ::  :    :     :   :   :   :     :     
     9					:       :    :   :   :  :   :    :        :     :   :   :   :     :     
    10					:       :    :   :   :  :   :    :        :     :   :   :   :     :     
    11					:    :  :    :   ::::    ::::    :        :      ::::   :   :     :  :  
    12					 ::::    ::::    :          :   :::      :::        :   :   :      ::   
    13					                 :      :   :                   :   :                   
    14					                ::       :::                     :::                    
    15					 
    16									AND
    17
    18					    ::                                                                
    19					    :    :                   ::             :                         
    20					    :                         :                                       
    21					 ::::   ::     :::    :::     :     :::    ::   : :: ::     :::   :: ::  
    22					:   :    :    :      :   :    :        :    :    :  :  :   :   :   ::  : 
    23					:   :    :     :::   :        :     ::::    :    :  :  :   :::::   :     
    24					:   :    :        :  :        :    :   :    :    :  :  :   :       :     
    25					:   :    :    :   :  :   :    :    :   :    :    :  :  :   :   :   :     
    26					 ::: :  :::    :::    :::    :::    ::: :  :::   :  :  :    :::   :::    
    27					 
    28					 
    29							    COPYRIGHT (C) 1976,1977,1978,1979 BY
    30							DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
    31
    32					THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
    33					ONLY  IN  ACORDANCE  WITH  THE  TERMS  OF  SUCH  LICENSE AND WITH THE
    34					INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE  OR ANY OTHER
    35					COPIES THEREOF MAY NOT BE PROVIDED OR  OTHERWISE MADE AVAIABLE TO ANY
    36					OTHER PERSON.  NO TITLE  TO  AND OWNERSHIP OF THIS SOFTWARE IS HEREBY
    37					TRANSFERRED.
    38					T
    39					THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT NOTICE
    40					AND  SHOULD  NOT  BE  CONSTRUED AS A COMMITMENT  BY DIGITAL EQUIPMENT
    41					CORPORATION.
    42					C
    43					DIGITAL ASSUMES NO RESPONSIBILITY  FOR THE  USE OR RELIABILITY OF ITS
    44					SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
    45													.ENDR
CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-1
C11DMC.MAC    10-AUG-79 16:08

    47		000000											.REPT 0
    48						.TITLE	CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST
    49					                                                        :                
    50					                                          :             :         :     
    51					                                                        :         :     
    52					 ::::    ::::   : :::   :   :   :: ::    ::      ::: :  ::::    :::::   
    53					:    :  :    :   :   :  :   :    ::  :    :     :   :   :   :     :     
    54					:       :    :   :   :  :   :    :        :     :   :   :   :     :     
    55					:       :    :   :   :  :   :    :        :     :   :   :   :     :     
    56					:    :  :    :   ::::    ::::    :        :      ::::   :   :     :  :  
    57					 ::::    ::::    :          :   :::      :::        :   :   :      ::   
    58					                 :      :   :                   :   :                   
    59					                ::       :::                     :::                    
    60					 
    61									AND
    62
    63					    ::                                                                
    64					    :    :                   ::             :                         
    65					    :                         :                                       
    66					 ::::   ::     :::    :::     :     :::    ::   : :: ::     :::   :: ::  
    67					:   :    :    :      :   :    :        :    :    :  :  :   :   :   ::  : 
    68					:   :    :     :::   :        :     ::::    :    :  :  :   :::::   :     
    69					:   :    :        :  :        :    :   :    :    :  :  :   :       :     
    70					:   :    :    :   :  :   :    :    :   :    :    :  :  :   :   :   :     
    71					 ::: :  :::    :::    :::    :::    ::: :  :::   :  :  :    :::   :::    
    72					 
    73					 
    74							    COPYRIGHT (C) 1976,1977,1978,1979 BY
    75							DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
    76
    77					THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
    78					ONLY  IN  ACORDANCE  WITH  THE  TERMS  OF  SUCH  LICENSE AND WITH THE
    79					INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE  OR ANY OTHER
    80					COPIES THEREOF MAY NOT BE PROVIDED OR  OTHERWISE MADE AVAIABLE TO ANY
    81					OTHER PERSON.  NO TITLE  TO  AND OWNERSHIP OF THIS SOFTWARE IS HEREBY
    82					TRANSFERRED.
    83					T
    84					THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT NOTICE
    85					AND  SHOULD  NOT  BE  CONSTRUED AS A COMMITMENT  BY DIGITAL EQUIPMENT
    86					CORPORATION.
    87					C
    88					DIGITAL ASSUMES NO RESPONSIBILITY  FOR THE  USE OR RELIABILITY OF ITS
    89					SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
    90													.ENDR
CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-2
C11DMC.MAC    10-AUG-79 16:08

    92					;**********************************************************************;
    93					;								       ;
    94					;		EDIT HISTORY AND VERSION DOCUMENTATION		       ;
    95					;		(ALSO SEE VERSION INFO IN CHK11 BODY)		       ;
    96					;								       ;
    97					;  THIS MODULE IS A COMBINED TERTIARY LOADER AND HARDWARE CHECKING     ;
    98					;  PROGRAM.  IT IS LOADED BY A SECONDARY LOADER, AND GIVEN CONTROL     ;
    99					;  AT THE TOP.  THE "CHECK11" HARDWARE EXERCISER IS THEN INVOKED,      ;
   100					;  AFTER WHICH THE LOADER LOADS THE SPECIFIED OPERATING SYSTEM.	       ;
   101					;								       ;
   102					;  "TERBOT" AND "CHK11" WERE DEVELOPED SEPERATELY.  THIS EDIT HISTORY  ;
   103					;  BEGINS WITH VERSION 2A.0, THE FIRST TO COMBINE THE MODULES.  ONLY   ;
   104					;  EDITS WHICH CHANGE THE SENSE OF THE CODE ARE DOCUMENTED HERE; TYPO  ;
   105					;  CORRECTIONS AND SUCH CHANGE THE EDIT NUMBER BUT THE CHANGES ARE NOT ;
   106					;  FLAGGED.							       ;
   107					;								       ;
   108					;**********************************************************************;
   109					;								       ;
   110					;  EDIT HISTORY:						       ;
   111					;	X2A.00	10-NOV-78  L. WEBBER				       ;
   112					;			ORIGINAL COMBINATION OF TERBOT AND CHK11       ;
   113					;			(CORRESPONDS TO DTE CHK11 VERSION 2A.05)       ;
   114					;	   .01	7-DEC-78  L. WEBBER				       ;
   115					;			INTEGRATE CHK11 UPDATES FROM DTE VERSION       ;
   116					;			(CORRESPONDS TO DTE CHK11 VERSION 2A.11)       ;
   117					;	   .02	7-DEC-78  L. WEBBER				       ;
   118					;			SKIP DEVICE DIAGNOSTICS FOR LOAD DEVICE	       ;
   119					;			(NOT RELEVANT TO DTE CHK11)		       ;
   120					;	   .03	8-DEC-78  L. WEBBER				       ;
   121					;			SAVE AND RESTORE PAGE 6 MAPPING REGISTERS FOR  ;
   122					;			MEMORY MANAGEMENT TEST			       ;
   123					;			(NOT RELEVANT TO DTE CHK11)		       ;
   124					;	   .04  20-DEC-78  L. WEBBER				       ;
   125					;			MOVE DMC INITIALIZATION CODE OUT OF RELOCATED  ;
   126					;			CODE SO THAT IT IS DONE BEFORE CHK11 STARTS;   ;
   127					;			FIX CALL TO DMC DRIVER IN CHK11 TO RESTORE THE ;
   128					;			SP BEFORE INVOKING IT.			       ;
   129					;			(NOT RELEVANT TO DTE CHK11)		       ;
   130					;	   .05  22-JAN-79  L. WEBBER				       ;
   131					;			FIX STACK SETUP IN "SETREG" TERBOT ROUTINE     ;
   132					;			(NOT RELEVANT TO DTE CHK11)		       ;
   133					;	   .06  24-JAN-79  L. WEBBER				       ;
   134					;			USE PAGE 5 INSTEAD OF PAGE 6 FOR MEMORY	       ;
   135					;			TESTING.				       ;
   136					;			(NOT RELEVANT TO DTE CHK11)		       ;
   137					;	   .07  13-FEB-79  L. WEBBER				       ;
   138					;			RECODE ALL EXPRESSIONS WHICH USE COMPLEX       ;
   139					;			RELOCATION.				       ;
   140					;			(NOT RELEVANT TO DTE CHK11)		       ;
   141					;	   .09	28-MAR-79  L. WEBBER				       ;
   142					;			DON'T USE R5 IN CHKBIT; THE REMOTE REPORTING   ;
   143					;			CODE KILLS IT				       ;
   144					;			(NOT RELEVANT TO DTE CHK11)		       ;
   145					;	   .10	28-MAR-79  L. WEBBER				       ;
   146					;	   .11		SAVE & RESTORE R5 IN VARIOUS PLACES THE REMOTE ;
   147					;			REPORTING CODE MIGHT KILL IT		       ;
CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-3
C11DMC.MAC    10-AUG-79 16:08

   148					;			(NOT RELEVANT TO DTE CHK11)		       ;
   149					;	   .12	29-MAR-79  L. WEBBER				       ;
   150					;			FIX TYPO IN TERTIARY; PUT IN CODE TO HALT THE  ;
   151					;			PROCESSOR IF THE TERTIARY GETS AN EARLY TRAP   ;
   152					;			TO 4.					       ;
   153					;			(NOT RELEVANT TO DTE CHK11)		       ;
   154					;	   .14  29-MAR-79  L. WEBBER				       ;
   155					;			TAKE OUT "DO YOU WANT TO CONTINUE"	       ;
   156					;			(CORRESPONDS TO DTE CHK11 2A.12)	       ;
   157					;	   .15	29-MAR-79  L. WEBBER				       ;
   158					;	   .16		MODIFY CR11/CD20 DIFFERENTIATION CODE	       ;
   159					;			(CORRESPONDS TO DTE CHK11 2A.13)	       ;
   160					;	   .17	19-APR-79  L. WEBBER				       ;
   161					;			FIX BUG IN CR11 DIFFERENTIATION CODE	       ;
   162					;			(CORRESPONDS TO DTE CHK11 2A.14)	       ;
   163					;	   .18	19-APR-79  L. WEBBER				       ;
   164					;			FIX TYPO IN FIRST HALF OF TERTIARY	       ;
   165					;			(NOT RELEVANT TO DTE CHK11)		       ;
   166					;	   .19	30-APR-79  L. WEBBER				       ;
   167					;			FIX REGISTER DESTRUCTION IN "CHKDEV"	       ;
   168					;	   .20	21-JUN-79  L. WEBBER				       ;
   169					;			ADD DEVICE CHECKOUT FOR KDZ'S KMCS	       ;
   170					;			(CORRESPONDS TO DTE CHK11 2A.16)	       ;
   171					;	   .21	10-AUG-79  L. WEBBER				       ;
   172					;			MODIFY MEMORY MANAGEMENT TEST TO SET UP	       ;
   173					;			PDR 5 BEFORE USING IT			       ;
   174					;			(CORRESPONDS TO DTE CHK11 2A.17)	       ;
   175					;								       ;
   176					;**********************************************************************;
CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-4
C11DMC.MAC    10-AUG-79 16:08		CHKDEF - DEFINE THE HARDWARE THAT CHK11 WILL TEST

   178						.SBTTL CHKDEF - DEFINE THE HARDWARE THAT CHK11 WILL TEST
   179									;
   180									;
   181		000042				PDP11 = 34.		; EXPECTED CPU IS 11/34
   182									;
   183					;;;;	CKSTD = 0		; SYSTEM CONFIGURATION IS PDP-11 STANDARD
   184		000043				CKDN2X = 1!2!40		; SYSTEM CONIGURATION IS DN20, DN21, OR DN25
   185									;  (SPECIFIED BY BIT NUMBERS SET IN CKDN2X DEF -
   186									;    B0 SAYS DN20, B1 SAYS DN21, B5 SAYS DN25)
   187		177777				INCLUD	= -1		;
   188		000000				EXCLUD	= 0		;
   189									;
   190					;	CKNODV	= 0		; IF DEFINED, LIST NONEXISTENT DEVICES
   191									;
   192		000000				M$$MGE	= 0		; IF DEFINED, ASSEMBLE FOR MAPPED SYSTEM
   193									;
   194									;
   195									;
   196		177777				FTCD20	= INCLUD
   197		177777				FTCR11	= INCLUD
   198		000000				FTDH11	= EXCLUD
   199		000000					NDH11	= 1&FTDH11	;NUMBER OF DH11'S
   200		000000				FTDJ11	= EXCLUD
   201		000000				FTDL10	= EXCLUD
   202		000000				FTDL1A	= EXCLUD
   203		177777				FTDL1E	= INCLUD
   204		000000				FTDM11	= INCLUD&FTDH11	;DM11BB DEPENDS ON EXISTENCE OF DH11
   205		000120					DM.TIM	= 80.	; DM11BB SETTLE TIME IN MEM CYCLES
   206		177777				FTDMC	= INCLUD
   207		000000				FTDN11	= EXCLUD
   208		000000				FTDP11	= EXCLUD
   209		000000				FTDQ11	= EXCLUD
   210		000000					SPCVFY	= EXCLUD&FTDQ11 ;DQ11 SPECIAL CHARACTER TEST
   211		000000				FTDS11	= EXCLUD
   212		177777				FTDTE	= INCLUD
   213		000000				FTDU11	= EXCLUD
   214		177777				FTDUP1	= INCLUD
   215		177777				FTDZ11	= INCLUD
   216		000000				FTKG11	= EXCLUD
   217		177777				FTKMC	= INCLUD&FTDMC	;KMC IS SUPERSET OF DMC
   218		000000					FTKMCL	= EXCLUD&FTKMC	;INCLUDE ONLY IF CRAM IMAGE IS SUPPLIED
   219		177777				FTLE11	= INCLUD
   220		177777				FTLP20	= INCLUD
   221		000000				FTMD11	= EXCLUD
   222		000000				FTPA61	= EXCLUD
   223		000000				FTPP11	= EXCLUD
   224		000000				FTPR11	= EXCLUD
   225		000000				FTRH11	= EXCLUD
   226		000000				FTRK11	= EXCLUD
   227		000000				FTRX11	= EXCLUD
   228		000000				FTTC11	= EXCLUD
   229		000000				FTTM11	= EXCLUD
CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-5
C11DMC.MAC    10-AUG-79 16:08		END OF MODULE CHKDEF

   231						.SBTTL END OF MODULE CHKDEF
   232						.SBTTL
   233					;****************************************************************
   234					;
   235					;	END OF CHKDEF
   236					;
   237					;****************************************************************
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-6
C11DMC.MAC    10-AUG-79 16:08

   239						.TITLE S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77
   240						.SBTTL S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77
   241					;
   242					;
   243					;
   244					;
   245					;
   246					;
   247					;
   248					;
   249					;
   250					;
   251					;
   252					;
   253					;	COPYRIGHT 1974, 1975, 1976,1977
   254					;	DIGITAL EQUIPMENT CORP., MAYNARD MASS.
   255					;
   256					;	SEPT 25,1974 - DMCC/EGF/LAD/EJW/TEP
   257					;
   258					;
   259					;
   260					;
   261					;
   262					;
   263					;
   264					;
   265					;
   266					;
   267					;
   268					;
   269		000002				VRS	= 02		;FILE EDIT NUMBER
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-7
C11DMC.MAC    10-AUG-79 16:08		S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77

   271						.ENABL	LC		;LOWER CASE IS LOWER CASE
   272						.ENABL	AMA		;USE ABSOLUTE RATHER THAN RELATIVE PC ADDRESSING
   273					;;;;	.DSABL	GBL		;DISABLE GLOBAL REFERENCES
   274					;;;;	.LIST	MC,MD,ME	;
   275					;;;;	.NLIST	CND		;
   276					;;;;	.LIST	MEB		;LIST ONLY CODE PRODUCING PARTS OF MACROS
   277									;
   278					;	DGUTS NON ZERO REQUESTS THE "DON'T GIVE UP THE SHIP" FAILSOFT FEATURE
   279					;
   280					.IIF NDF DGUTS,DGUTS=0
   281					;
   282		   001			.IF NE DGUTS
   283							;IF WE'RE NOT TO GIVE UP THE SHIP, TURN OFF DEBUGGING TRAPS
   284							;THEN WE'LL DIE ONLY ON HARD ERRORS.
   285						DEBUG=0
   286						FTASRT=0
   287						FT.CHK=0
   288		   000			.ENDC
   289					;
   290					.IIF NDF FT.HLP,FT.HLP=	1	;1 = TYPE OUT STOPCD INFORMATION
   291					;
   292					.IIF NDF DEBUG,DEBUG=1		;LEVEL OF DEBUG CODE INCLUDED
   293									; 0 = NONE = KEEP AS SMALL AS POSSIBLE
   294									; 1 = SOME - KEEP TRACKS, DIE ON SOME ERRORS
   295									; -1 = DIE ON ALL ERRORS
   296					;
   297					.IIF NDF STKLEN,STKLEN=	200	;LENGTH OF SYSTEM STACK
   298					;
   299					.IIF NDF FT.CHK,FT.CHK=	1	;1 EQUALS CHECK STUFF ON FLY
   300					;
   301					.IIF NDF PASS,PASS=0	;COUNT ASSEMBLER PASSES
   302		000002				PASS=PASS+1
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-8
C11DMC.MAC    10-AUG-79 16:08		STOPCD'S

   304					.SBTTL	STOPCD'S
   305							;
   306		000000			S..AMC	= 0	;ASSERT MACRO CALL - DEFAULT CODE
   307		000001			S..NXM	= 1	;BUS TRAPS'S, ADDRESS ERROR'S, ETC.
   308		000002			S..DL1	= 2	;DL10 ERRORS
   309		000002			S..DTE	= S..DL1 ;DTE20 ERRORS (NOTE - SAME AS DL10)
   310		000003			S..CNK	= 3	;CHUNKS ARE MESSED UP
   311		000004			S..ILS	= 4	;ILLEGAL INSTRUCTION
   312		000005			S..CTY	= 5	;NO CTY
   313		000006			S..MEM	= 6	;MEMORY ERROR (E.G. PARITY, OR CAN'T READ WRITE BITS)
   314		000007			S..KW11	= 7	;KW11 ERROR
   315		000010			S..NCN	= 10	;NO CONNECTION FOR RECEIVED DATA
   316							; OR CONNECTION NUMBER USED BY SOME OTHER NODE
   317		000011			S..BDT	= 11	;BAD DATA TYPE REQUESTED BY 10
   318		000012			S..CHK	= 12	;CHECK 11 ERROR
   319		000013			S..MPD	= 13	;MAPPED ASSEMBLY RUNNING IN UNMAPPED HARDWARE
   320		000014			S..MMG	= 14	;MEMORY MANAGEMENT ERROR
   321							;
   322					;STOP CODE MACRO
   323					;	FIRST ARGUMENT IS CODE FOR STOP
   324					;	SECOND ARGUMENT IS SEVERITY
   325					;
   326					.MACRO	STOPCD	CD,TYPE
   327						    .IF NB <CD>
   328						S.....=S..'CD
   329						    .IFF ;NB <CD>
   330						S.....=0
   331						    .ENDC ;NB <CD>
   332						Z=1
   333					.IIF IDN <.'TYPE>,<.DEBUG>,	Z=DEBUG
   334					.IIF NE Z,	TRAP S.....
   335						S.....=0
   336					.ENDM	STOPCD
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-9
C11DMC.MAC    10-AUG-79 16:08		GENERAL MACRO DEFINITIONS

   338					.SBTTL	GENERAL MACRO DEFINITIONS
   339					;
   340					;
   341					.MACRO COUNT A,?X
   342						INC	A+2
   343						BNE	X
   344						INC	A
   345					X:
   346					.ENDM	COUNT
   347					;
   348					; REGISTER SAVE MACRO
   349					;
   350					.MACRO	SAVE	A
   351						.IRP	X,<A>
   352						MOV	X,-(SP)		;PUSH X ON THE STACK
   353						.ENDR ;IRP X
   354					.ENDM	SAVE
   355					;
   356					; REGISTER RESTORE MACRO
   357					;
   358					.MACRO	RESTORE	A
   359						.IRP	X,<A>
   360						MOV	(SP)+,X		;POP X OFF THE STACK
   361						.ENDR ;IRP X
   362					.ENDM	RESTORE
   363					;
   364					.MACRO	FALLR	DEST
   365					.IIF NE DEST-.	.ERROR	DEST-.	;**** ERRONEOUS CODE FALL THROUGH ATTEMPTED ****
   366					.ENDM	FALLR
   367					;
   368					.MACRO	.INC	ARG
   369						ARG	= ARG + 1
   370					.ENDM	.INC
   371					;
   372					.MACRO	.DEC	ARG
   373						ARG	= ARG - 1
   374					.ENDM	.DEC
   375					;
   376					.MACRO	LESSER	A,B,C	;DEFINE A AS THE LESSER OF B AND C
   377						    .IF GT B-C
   378						A	= C
   379						    .IFF
   380						A	= B
   381						    .ENDC
   382					.ENDM	LESSER
   383					;
   384					.MACRO	GREATR	A,B,C	;DEFINE A AS THE GREATER OF B AND C
   385						LESSER	A,C,B
   386					.ENDM	GREATR
   387					;
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-10
C11DMC.MAC    10-AUG-79 16:08		GENERAL MACRO DEFINITIONS

   389					.MACRO	NAMEBT	REG,IPOSMS,LIST
   390						    .IF NB IPOSMS
   391						POSMSK = IPOSMS
   392						    .ENDC
   393						    .IF  DF POSMSK
   394						    .IF EQ POSMSK
   395						POSMSK = 100000
   396						    .ENDC
   397						    .IFF
   398						POSMSK = 100000
   399						    .ENDC
   400						.IRP	NAME,<LIST>
   401						    .IF EQ POSMSK
   402						.ERROR	NAME	;**** POSITION MASK UNDERFLOW ****
   403						    .ENDC
   404						    .IF NB NAME
   405						NAME = POSMSK
   406						    .ENDC
   407						POSMSK = <POSMSK/2>&77777
   408						.ENDR ;IRP NAME
   409					.ENDM	NAMEBT
   410					;
   411					.MACRO	NAMASC
   412						$$ = 0
   413						.IRP	X,<NUL,SOH,STX,ETX,EOT,ENQ,ACK,BEL>
   414						X = $$
   415						.INC	$$
   416						.ENDR	;IRP X
   417						;
   418						.IRP	X,<BS,HT,LF,VT,FF,CR,SO,SI>
   419						X = $$
   420						.INC	$$
   421						.ENDR	;IRP X
   422						;
   423						.IRP	X,<DLE,DC1,DC2,DC3,DC4,NAK,SYN,ETB>
   424						X = $$
   425						.INC	$$
   426						.ENDR	;IRP X
   427						;
   428						.IRP	X,<CAN,EM,SUB,ESC,FS,GS,RS,US>
   429						X = $$
   430						.INC	$$
   431						.ENDR	;IRP X
   432						;
   433						DEL = 177
   434						;
   435						ERRCHR = '\!200		;DEC STD ERROR CHARACTER
   436						;
   437					.ENDM	NAMASC
   438					;
   439					.MACRO	FIELD	NAME,HI,LO
   440						NAME	= <HI-1+HI>&^C<LO-1>
   441					.ENDM	FIELD
   442					;
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-11
C11DMC.MAC    10-AUG-79 16:08		GENERAL MACRO DEFINITIONS

   444					; HIDDEN HERE IN THE SOURCE CODE ARE A WHOLE BUNCH OF DEBUGGING
   445					;    AND OTHER SPECIAL MACROS WHICH ARE SUPRESSED IN THE ASSEMBLY IN
   446					;    THE INTEREST OF SQUATTER LISTINGS (AND FASTER ASSEMBLING)
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-12
C11DMC.MAC    10-AUG-79 16:08		PDP-11 EIS EMULATORS

   578					.SBTTL	PDP-11 EIS EMULATORS
   579					;
   580					;MACROS TO SIMULATE INSTRUCTIONS FOR SIMPLE PDP11'S
   581					;
   582		   001			.IF LT <PDP11-30.>
   583					;
   584					;MACRO TO SIMULATE SOB ON SIMPLE PDP11'S
   585					;
   586					.MACRO	SOB	CNT,WHERE
   587					.IIF GT WHERE-., .ERROR	0; SOB FORWARD BRANCH ????
   588					.IIF NE <.-WHERE>&^C176, .ERROR	WHERE; SOB BRANCH RANGE ????
   589		   002				    .IF NE WHERE-.
   590						DEC	CNT
   591						BNE	WHERE
   592						    .IFF
   593						BRLOC=.
   594						DEC	CNT
   595						BNE	BRLOC
   596		   001				    .ENDC ;NE WHERE-.
   597					.ENDM	SOB
   598					;
   599					;MACRO TO DO AN XOR FOR SIMPLE PDP11'S
   600					;
   601					; ARGUMENTS:	A-- IS ALWAYS A REGISTER, B-- REFLECTS
   602					;		THE DESTINATION OPERAND, C-- IS USUALLY ON THE STACK
   603					;
   604					.MACRO	XOR2	A02,B02,B12,B22,C02,C12,C22
   605						MOV	A02,C02
   606						BIC	B02,C12
   607						BIC	A02,B12
   608						BIS	C22,B22
   609					.ENDM	XOR2
   610					;
   611					.MACRO	XOR1	A01,B01,B11,B21
   612						XOR2	A01,B01,B11,B21,-(SP),(SP),(SP)+
   613					.ENDM	XOR1
   614					;
   615					.MACRO	XORERR	AV,BV,DB
   616		   002				    .IF B DB
   617					.ERROR	74000; XOR SOURCE ('AV') NOT A REGISTER ???
   618						    .IFF
   619					.ERROR	<74000+<AV*100>+BV>; XOR WITH DEST DB IS NOT SUPPORTED ????
   620		   001				    .ENDC
   621						HALT
   622					.ENDM	XORERR
   623					;
   624					.MACRO	XMODE	Y,S,D
   625						XMOD'Y	\QD,S,D
   626					.ENDM	XMODE
   627					;
   628					.MACRO	XMOD0	X,S,D
   629						XOR1	S,D,D,D
   630					.ENDM	XMOD0
   631					;
   632					.MACRO	XMOD10	X,S,D
   633						XOR1	S,D,D,D
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-13
C11DMC.MAC    10-AUG-79 16:08		PDP-11 EIS EMULATORS

   634					.ENDM	XMOD10
   635					;
   636					.MACRO	XMOD20	X,S,D
   637						XOR1	S,(R'X),(R'X),(R'X)+
   638					.ENDM	XMOD20
   639					;
   640					.MACRO	XMOD30	X,S,D
   641						XOR1	S,@(R'X),@(R'X),@(R'X)+
   642					.ENDM	XMOD30
   643					;
   644					.MACRO	XMOD40	X,S,D
   645						XOR1	S,-(R'X),(R'X),(R'X)
   646					.ENDM	XMOD40
   647					;
   648					.MACRO	XMOD50	X,S,D
   649						XOR1	S,@-(R'X),@(R'X),@(R'X)
   650					.ENDM	XMOD50
   651					;
   652					.MACRO	XMOD60	X,S,D
   653						XOR1	S,D,D,D
   654					.ENDM	XMOD60
   655					;
   656					.MACRO	XMOD70	X,S,D
   657						XOR1	S,D,D,D
   658					.ENDM	XMOD70
   659					;
   660					.MACRO	XOR	A,B
   661						.NTYPE	QA,A	;QA IS 6-BIT SOURCE SPEC
   662						.NTYPE	QB,B	;QB IS 6-BIT DEST SPEC
   663						QC=QB&70	;QC IS DEST ADDRESS MODE
   664						QD=QB&7		;QD IS DEST ADDRESS REGISTER
   665		   002				    .IF NE QA&^C7 ;QA MUST BE REGISTER DIRECT
   666						XORERR	\QA
   667						    .IFF
   668								;QA IS REGISTER DIRECT, DECODE DEST SPEC
   669		   003				    .IF LE <QD-5> ;DEST USES USER GPR (0-5)
   670						XMODE	\QC,A,B	;CALL MODE SELECTOR MACRO BASED ON QC
   671						    .IFF
   672								;DEST USES SP OR PC
   673						.IIF EQ <QC-0>	;MODE IS REGISTER DIRECT (ERROR)
   674						.IIF EQ <QB-06>,	XORERR	\QA,\QB,B
   675						.IIF EQ <QB-07>,	XORERR	\QA,\QB,B
   676						.IIF EQ <QC-1>	;MODE IS REGISTER DEFERRED
   677						.IIF EQ <QB-16>,	XOR1	A,2(SP),2(SP),(SP)
   678						.IIF EQ <QB-17>,	XORERR	\QA,\QB,B
   679						.IIF EQ <QC-2>	;MODE IS POP (PC IMMEDIATE)
   680						.IIF EQ <QB-26>,	XORERR	\QA,\QB,B
   681		   004				    .IF EQ <QB-27>
   682						MOV	B,.+22
   683						XOR1	A,.+12,.+6,(PC)+
   684						.WORD	0	;UNLABELED LITERAL
   685		   003				    .ENDC
   686						.IIF EQ <QC-3>	;MODE IS DEFER AND POP (PC ABSOLUTE)
   687						.IIF EQ <QB-36>,	XOR1	A,@2(SP),@2(SP),@(SP)+
   688						.IIF EQ <QB-37>,	XOR1	A,B,B,B
   689						.IIF EQ <QC-4>	;MODE IS PUSH
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-14
C11DMC.MAC    10-AUG-79 16:08		PDP-11 EIS EMULATORS

   690						.IIF EQ <QB-46>,	XORERR	\QA,\QB,B
   691						.IIF EQ <QB-47>,	XORERR	\QA,\QB,B
   692						.IIF EQ <QC-5>	;MODE IS PUSH AND DEFER
   693						.IIF EQ <QB-56>,	XORERR	\QA,\QB,B
   694						.IIF EQ <QB-57>,	XORERR	\QA,\QB,B
   695						.IIF EQ <QC-6>	;MODE IS INDEXED
   696						.IIF EQ <QB-66>,	XOR1	A,2+B,2+B,B
   697						.IIF EQ <QB-67>,	XOR1	A,B,B,B
   698						.IIF EQ <QC-7>	;MODE IS DEFERRED INDEXED
   699						.IIF EQ <QB-76>,	XORERR	\QA,\QB,B
   700						.IIF EQ <QB-77>,	XOR1	A,B,B,B
   701		   002				    .ENDC ;USER GPR VS. SP/PC
   702		   001				    .ENDC ;QA IS REGISTER DIRECT
   703					.ENDM	XOR
   704					;
   705		   000			.ENDC;.IF LT <PDP11-30.>
   706					;
   707		   001			.IF LT <PDP11-45.>
   708						;MACRO TO SET PROCESSOR LEVEL
   709					.MACRO	SPL	Q
   710						    .IF	NE Q
   711						BIS	#BR7,PS			;SET PROCESSOR STATUS TO LEVEL 7
   712						    .ENDC
   713						    .IF NE <Q-7>
   714						BIC	#40*<7&<^C<Q>>>,PS	;NOW DROP TO LEVEL Q
   715						    .ENDC
   716					.ENDM	SPL
   717		   000			.ENDC;.IF LT <PDP11-45.>
   718					;
   719					;MACRO TO SIMULATE EXCH INSTRUCTION
   720					;
   721					.MACRO	EXCH	A,B
   722						MOV	A,-(P)		;SAVE C(A) ON THE STACK
   723						MOV	B,A		;PUT C(B) INTO A
   724						MOV	(P)+,B		;PUT ORIGINAL C(A) INTO B
   725					.ENDM	EXCH
   726					;
   727					;MACRO TO GENERATE AN .ASCIZ STRING TERMINATED WITH .EVEN
   728					;
   729					.MACRO	ASCIZ	STRING
   730						.ASCIZ	\STRING\
   731						.EVEN
   732					.ENDM	ASCIZ
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-15
C11DMC.MAC    10-AUG-79 16:08		SYMBOL DEFINITIONS

   734					.SBTTL	SYMBOL DEFINITIONS
   735					;
   736		000000			R0	= %0
   737		000001			R1	= %1
   738		000002			R2	= %2
   739		000003			R3	= %3
   740		000004			R4	= %4
   741		000005			R5	= %5
   742		000006			SP	= %6		;STACK POINTER
   743		000007			PC	= %7
   744					;
   745		177776			PS	= 177776	;PROCESSOR STATUS WORD
   746						;	000001	;C (CARRY)
   747						;	000002	;V (OVERFLOW)
   748						;	000004	;Z (ZERO)
   749						;	000010	;N (NEGATIVE)
   750						;	000020	;T (TRAP)
   751						;	000340	;PRIORITY LEVEL (0-7)
   752						;	004000	;REGISTER SET
   753						;	030000	;PREVIOUS MODE
   754						;	140000	;CURRENT MODE
   755						;		;MODE: 00=KERNEL, 01=SUPERVISOR, 11=USER
   756		177570			SW=177570	;ADDRESS OF SWTCHES
   757					;
   758		000001			B0	= 1
   759		000002			B1	= 2
   760		000004			B2	= 4
   761		000010			B3	= 10
   762		000020			B4	= 20
   763		000040			B5	= 40
   764		000100			B6	= 100
   765		000200			B7	= 200
   766		000400			B8	= 400
   767		001000			B9	= 1000
   768		002000			B10	= 2000
   769		004000			B11	= 4000
   770		010000			B12	= 10000
   771		020000			B13	= 20000
   772		040000			B14	= 40000
   773		100000			B15	= 100000
   774					;
   775	000000'				FIELD	ALLBTS,B15,B0
   776					;
   777					;DEFINE PROCESSOR LEVELS
   778					;
   779		000000			BR0	= 0*40
   780		000040			BR1	= 1*40
   781		000100			BR2	= 2*40
   782		000140			BR3	= 3*40
   783		000200			BR4	= 4*40
   784		000240			BR5	= 5*40
   785		000300			BR6	= 6*40
   786		000340			BR7	= 7*40
   787					;
   788		000000			PR0	= 0
   789		000040			PR1	= 40
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-16
C11DMC.MAC    10-AUG-79 16:08		SYMBOL DEFINITIONS

   790		000100			PR2	= 2*PR1
   791		000140			PR3	= 3*PR1
   792		000200			PR4	= 4*PR1
   793		000240			PR5	= 5*PR1
   794		000300			PR6	= 6*PR1
   795		000340			PR7	= 7*PR1
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-17
C11DMC.MAC    10-AUG-79 16:08		HARDWARE DEFINITIONS

   797					.SBTTL	HARDWARE DEFINITIONS
   798					.SBTTL		VECTORS
   799					;
   800					.MACRO	DEFVEC	TYP,VQ,LQ
   801						TYP'VEC=	VQ		;VECTOR FOR TYP IS VQ
   802						    .IF B LQ
   803						TYP'LVL=	7		;DEFAULT LEVEL IS LEVEL 7
   804						    .IFF
   805						TYP'LVL=	LQ		;LEVEL OF TYP IS LQ
   806						    .ENDC ;B LQ
   807					.ENDM	DEFVEC
   808					;
   809	000000'					DEFVEC	NXM,04	;BUS-TIMEOUT INTERRUPT
   810	000000'					DEFVEC	ILS,10	;ILLEGAL INSTRUCTION INTERRUPT
   811	000000'					DEFVEC	BPT,14	;BREAKPOINT TRAP
   812	000000'					DEFVEC	IOT,20	;I/O TRAP INSTRUCTION
   813	000000'					DEFVEC	PWF,24	;POWER FAIL INT'S
   814	000000'					DEFVEC	EMT,30	;EMT CALL'S
   815	000000'					DEFVEC	TRP,34	;TRAP INSTRUCTION
   816	000000'					DEFVEC	MMG,250	;MEMORY MANAGEMENT FAULT
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-18
C11DMC.MAC    10-AUG-79 16:08			DEVICES

   818					.SBTTL		DEVICES
   819						.SBTTL		CD20 - PUNCHED CARD READER
   820					;
   821					; CD20 HARDWARE DEVICE REGISTER DEFINITIONS
   822					;
   823		000004			CD.LVL	= 4		;BUS REQUEST PRIORITY
   824		000230			CD.VEC	= 230		;CD20 VECTOR
   825					;
   826		177160				CD.STS = 177160
   827		000000				CDST = 0		;FIRST STATUS AND CONTROL REGISTER
   828	000000'					NAMEBT	CDST,0,<CD.ERR,CD.RDC,CD.EOF,CD.OFL,CD.DER,CD.DLT>
   829	000000'					NAMEBT	,,<CD.NXM,CD.PWC,CD.RDY,CD.IE,CD.B17,CD.B16>
   830	000000'					NAMEBT	,,<CD.ONL,CD.HPE,CD.PAC,CD.GO>
   831		000060					CD.XAD	= CD.B17!CD.B16	;HIGH ORDER BUS ADDRESS MASK
   832		000000						.REPT	0
   833							CD.ERR	= OR OF ALL ERROR CONDITIONS, RO
   834							CD.RDC	= READER CHECK, PHYSICAL READER ERROR, RO
   835							CD.EOF	= END OF FILE BUTTON PRESSED, RO
   836							CD.OFL	= OFF LINE, RO
   837							CD.DER	= DATA ERROR, ILLEGAL PACKED CHAR, RO
   838							CD.DLT	= DATA LATE, NPR TIMING ERROR, RO
   839							CD.NXM	= NONEXISTENT MEMORY REFERENCE DURING DMA, RO
   840							CD.PWC	= POWER CLEAR, INITIALIZE CONTROLLER, WO
   841
   842							CD.RDY	= CONTROLLER READY FOR ACTION, RO
   843							CD.IE	= INTERRUPT ENABLE, RW
   844							CD.B17,CD.B16	= HIGHEST ORDER BUS ADDRESS BITS, RW
   845							CD.ONL	= TRANSITION TO ONLINE OCCURRED, RO
   846							CD.HPE	= HOPPER EMPTY, RO
   847							CD.PAC	= READ MODE SWITCH, RW
   848							CD.GO	= START READER COMMAND, WO
   849								.ENDR
   850									;
   851		000002			CDCC	= 2			;COLUMN COUNT REGISTER
   852		000120				CD.COL = 80.		;80 COLUMN READER
   853									;
   854		000004			CDBA	= 4			;CURRENT ADDRESS REGISTER
   855									;
   856		000006			CDDB	= 6			;DATA BUFFER
   857						; IMAGE MODE DEFINITIONS
   858	000000'					NAMEBT	CDDB,0,<CD.CER,IDZ2,IDZ1,IDZ0,IZ12,IZ11,IZ00,IZ01>
   859	000000'					NAMEBT	,,<IZ02,IZ03,IZ04,IZ05,IZ06,IZ07,IZ08,IZ09>
   860		000000						.REPT	0
   861							CD.CER	= CHARACTER PACKING ERROR
   862							IDZ-	= IMAGE MODE PACKED DIGIT ZONE BITS
   863							IZ--	= IMAGE MODE ZONE PUNCH BITS
   864								.ENDR
   865									;
   866						; PACKED MODE DEFINITIONS
   867	000000'					NAMEBT	CDDB,200,<PZ12,PZ11,PZ00,PZ09,PZ08,PDZ2,PDZ1,PDZ0>
   868		000000						.REPT	0
   869							PZ--	= PACKED MODE ZONE PUNCH BITS
   870							PDZ-	= PACKED MODE PACKED DIGIT ZONE BITS
   871								.ENDR
   872									;
   873		000006			CDST2 = CDDB			;SECOND STATUS AND CONTROL REGISTER
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-19
C11DMC.MAC    10-AUG-79 16:08			CD20 - PUNCHED CARD READER

   874									;  MULTIPLEXED USE OF DATA BUFFER REGISTER
   875	000000'					NAMEBT	CDST2,0,<ST2ENB,CD.RCK,CD.PCK,CD.SCK>
   876	000000'					NAMEBT	,,<ZT12,ZT11,ZT00,ZT01,ZT02,ZT03,ZT04,ZT05,ZT06,ZT07,ZT08,ZT09>
   877		007777					ZTALL	= 7777
   878		000000						.REPT	0
   879							ST2ENB	= CDST2 ENABLE
   880							RCHK	= READ CHECK (CARD ERROR)
   881							PCHK	= PICK CHECK (FEED ERROR)
   882							SCHK	= STACK CHECK (FEED ERROR)
   883							ZT--	= ZONE TEST BITS
   884							ZTALL	= OR OF ALL ZONE TEST BITS
   885								.ENDR
   886									;
   887		000010			CDHRSZ = 10			;SIZE OF REGISTER BLOCK IN BYTES
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-20
C11DMC.MAC    10-AUG-79 16:08			CR11 - PUNCHED/MARK SENSE CARD READER

   889					.SBTTL		CR11 - PUNCHED/MARK SENSE CARD READER
   890					;
   891		000006			CR.LVL= 6		; PROCESSOR LEVEL FOR CR11 INTERRUPTS
   892		000230			CR.VEC= 230
   893					;
   894		177160			CR0STS = 177160
   895		177160			CR.STS= 177160		; CR11 STATUS REGISTER
   896					;
   897		100000				CR.ERR= B15	; ERROR
   898		040000				CR.DNE= B14	; CARD DONE
   899		020000				CR.HCK= B13	; HOPPER CHECK
   900		010000				CR.MCK= B12	; MOTION CHECK
   901		004000				CR.TIM= B11	; TIMING ERROR
   902		002000				CR.OLN= B10	; BACK ONLINE AFTER BEING OFF
   903		001000				CR.BSY= B9	; BUSY
   904		000400				CR.RDY= B8	; NOT READY
   905		000200				CR.CDN= B7	; COLUMN DONE
   906		000100				CR.INE= B6	; INTERRUPT ENABLE
   907		000002				CR.EJT= B1	; EJECT
   908		000001				CR.CFD= B0	; CARD FEED
   909
   910		177162			CR.DAT= 177162		; 12 LOW ORDER BITS ARE DATA
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-21
C11DMC.MAC    10-AUG-79 16:08			CTY - CONSOLE TELETYPE

   912					.SBTTL		CTY - CONSOLE TELETYPE
   913					;
   914					;CTY HARDWARE BITS
   915					;
   916		177560			CTISTS = 177560
   917		177562			CTICHR = 177562
   918		000060			CTIVEC=	60
   919		000004			CTILVL=	4	; PRIORITY LEVEL
   920					;
   921		000100				CI.INE=	B6		; CTY INPUT INTERRUPT ENABLE
   922					;
   923		177564			CTOSTS = 177564
   924		177566			CTOCHR = 177566
   925		000064			CTOVEC=	64
   926		000004			CTOLVL=	4	; PRIORITY LEVEL
   927					;
   928		000100				CO.INE=	B6		; CTY OUTPUT INTERRUPT ENABLE
   929		000004				CO..MM=	B2		; CTY OUTPUT MAINT MODE
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-22
C11DMC.MAC    10-AUG-79 16:08			DH11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER

   931					.SBTTL		DH11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER
   932		160020			DHBASE=	160020	;HARDWARE ADR OF FIRST DH11
   933		000007			DH.LVL=	7		;DH11 INTERRUPT LEVEL
   934								; 1ST WORD IS SYSTEM CONTROL REGISTER
   935		000100				DH.RIE=	B6	;RECEIVE INTERRUPT ENABLE
   936		000200				DH..RI=	B7	;RECEIVE INTERRUPT
   937		000400				DH.CNX=	B8	;CLEAR NON EX MEM INT
   938		001000				DH..MM=	B9	;MAINTANCE MODE
   939		002000				DH.NXM=	B10	;NON EXISTENCE MEMORY
   940		004000				DH..MC=	B11	;MASTER CLEAR
   941		010000				DH.SIE=	B12	;STORAGE INTERRUPT ENABLE
   942		020000				DH.TIE=	B13	;TRANSMIT INTERRUPT ENABLE
   943		040000				DH..SI=	B14	;STORAGE INTERRUPT
   944		100000				DH..TI=	B15	;TRANSMIT INTERRUPT
   945		000002			DH.NRC=2		; 2ND WORD IS NEXT RECEIVED CHAR REGISTER
   946		000004			DH.LPR=4		; 3RD WORD IS LINE PARAMETER REGISTER
   947		000006			DH.CAR=6		; 4TH WORD IS CURRENT ADDRESS REGISTER
   948		000010			DH.BCR=10		; 5TH WORD IS BUFFER COUNT REGISTER
   949		000012			DH.BAR=12		; 6TH WORD IS BUFFER ACTIVE REGISTER
   950		000014			DH.BRK=14		; 7TH WORD IS BREAK CONTROL REGISTER
   951		000016			DH.SSR=16		; 8TH WORD IS SILO STATUS REGISTER
   952					;
   953							;ON CHARS OUT OF SILO
   954		040000				DHROVR=	B14		;DATA OVERRUN
   955		020000				DHRFER=	B13		;FRAMMING ERROR
   956		100000				DH.VDP=	B15	;VALID DATA PRESENT
   957		040000				DH.DOV=	B14	;DATA OVER RUN
   958		020000				DH..FE=	B13	;FRAMING ERROR
   959		010000				DH..PE=	B12	;PARITY ERROR
   960					;
   961							;FOR LINE PARAMETERS
   962		100000				DH.AEE=	B15	;AUTO ECHO ENABLE
   963		040000				DH..HD=	B14	;HALF DUPLEX
   964		000040				DH..OP=	B5	;ODD PARITY
   965		000020				DH.PEN=	B4	;PARITY ENABLED
   966		000004				DH.2SB=	B2	;2 STOP BITS
   967		000000				DH.CL5=	0	;5 BIT
   968		000001				DH.CL6=	B0	;6 BIT
   969		000002				DH.CL7=	B1	;7 BIT
   970		000003				DH.CL8=	B1!B0	;8 BIT
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-23
C11DMC.MAC    10-AUG-79 16:08			DJ11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER

   972					.SBTTL		DJ11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-24
C11DMC.MAC    10-AUG-79 16:08			DL10 - UNIBUS-TO-MBUS INTERFACE

   974					.SBTTL		DL10 - UNIBUS-TO-MBUS INTERFACE
   975					;
   976					;DL10 - UNIBUS TO DECSYSTEM-10 MEMORY BUS INTERFACE
   977					;
   978		100000			DL.BAS=	100000			;BASE ADDRESS FOR 10 MEMORY
   979		100000			DLBASE=	DL.BAS			;
   980		000170			DL.VEC=	170			;VECTOR ADR FOR DL10
   981		000004			DL.LVL=	4			;CHANNEL FIVE
   982					;
   983		100000			DL.STS=DLBASE	;1ST WORD IS STATUS
   984		100000				DL.11I=	B15		; BIT 15 - 11 INT(INTERRUPTS IF 11-INT-ENB SET)
   985		040000				DL.11C=	B14		; BIT 14 - CLEAR 11 INT
   986		020000				DL.10I=	B13		; BIT 13 - 10 INT
   987		010000				DL.10C=	B12		; BIT 12 - CLEAR 10 INT
   988		004000				DL.NXM=	B11		; BIT 11 - NXM(INTERRUPTS IF ERR ENB SET)
   989		002000				DL.CNX=	B10		; BIT 10 - CLEAR NXM
   990		001000				DL.PAR=	B9		; BIT 09 - PAR ERR(INTERRUPTS IF ERR ENB SET)
   991		000400				DL.CPE=	B8		; BIT 08 - CLEAR PAR ERR
   992		000200				DL.WCO=	B7		; BIT 07 - WCOV(INTERRUPTS IF ERR ENB SET)
   993		000100				DL.CWC=	B6		; BIT 06 - CLEAR WCOV
   994		000040				DL.PEN=	B5		; BIT 05 - PORT ENABLE
   995		000040				DLPENB=	DL.PEN		;
   996		000020				DL.B04=	B4		; BIT 04 - (GUESS !)
   997		000010				DL.ERE=	B3		; BIT 03 - ERR ENABLE
   998		000004				DL.INE=	B2		; BIT 02 - 11 INT ENB
   999		000002				DL.B01=	B1		; BITS 00 & 01 - PIA
  1000		000001				DL.B00=	B0		;
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-25
C11DMC.MAC    10-AUG-79 16:08			DL11 - ASYNCHRONOUS SERIAL LINE INTERFACE

  1002					.SBTTL		DL11 - ASYNCHRONOUS SERIAL LINE INTERFACE
  1003					;
  1004					;
  1005		175610			DLDADR=175610	; DL11 NUMBER ZERO DEVICE ADDRESS
  1006		000010			DLDSIZ=10	; LENGTH OF DEVICE ADDRESS ASSIGNMENT
  1007					;
  1008					;	CONTROL REGISTERS
  1009					;
  1010					;
  1011		000000			DLRSTS=0		; RECEIVER STATUS AND CONTROL
  1012					;
  1013					;		BIT ASSIGNMENTS
  1014		000001				DL..RE=B0	; PAPER TAPE READER ENABLE (R/W)
  1015		000002				DL.DTR=B1	; DATA TERMINAL READY (R/W)
  1016		000004				DL.RTS=B2	; REQUEST TO SEND (R/W)
  1017		000010				DL.2XM=B3	; SECONDARY XMIT (R/W)
  1018		000040				DL.DIE=B5	; DATASET INTERRUPTS ENABLE (R/W)
  1019		000100				DL.RIE=B6	; RECEIVER INTERRUPTS ENABLE (R/W)
  1020		000200				DL.ROK=B7	; RECEIVER DONE (R)
  1021		002000				DL.2RC=B10	; SECONDARY RECEIVE (R)
  1022		004000				DL.RGO=B11	; RECEIVER ACTIVE (R)
  1023		010000				DL.CAR=B12	; CARRIER PRESENT (R)
  1024		020000				DL.CTS=B13	; CLEAR TO SEND (R)
  1025		040000				DL.RNG=B14	; DATASET RING (R)
  1026		100000				DL.DSC=B15	; DATASET STATUS CHANGE (R)
  1027					;
  1028					;
  1029		000002			DLRBUF=2	; RECEIVED CHARACTER BUFFER
  1030					;
  1031					;		BIT ASSIGNMENTS
  1032		000377				DL..RC=B0!B1!B2!B3!B4!B5!B6!B7	;THE RECEIVED CHARACTER (R)
  1033		010000				DL..PE=B12	; PARITY ERROR (R)
  1034		020000				DL..FE=B13	; FRAMING ERROR (R)
  1035		040000				DL.OVR=B14	; RECEIVER OVER RUN (R)
  1036		100000				DL.ERR=B15	; RECEIVER ERROR DETECTED (R)
  1037					;
  1038					;
  1039					;
  1040		000004			DLXSTS=4	; XMITTER STATUS AND CONTROL REGISTER
  1041					;
  1042					;		BIT ASSIGNMENTS
  1043		000001				DL.BRK=B0	; SEND BREAK (W)
  1044		000004				DL..MM=B2	; MAINTAINANCE MODE (R/W)
  1045		000100				DL.XIE=B6	; XMITTER INTERRUPTS ENABLE (R/W)
  1046		000200				DL.XOK=B7	; XMITTER READY FOR NEXT CHARACTDER (R)
  1047					;
  1048					;
  1049					;
  1050		000006			DLXBUF=6	; XMITTER CHARACTER BUFFER
  1051					;
  1052					;	BIT ASSSIGNMENT
  1053		000377				DL..XC=B0!B1!B2!B3!B4!B5!B6!B7	; CHARACTER BEING XMITTED (W)
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-26
C11DMC.MAC    10-AUG-79 16:08			DM11BB - MODEM CONTROLLER FOR DH11

  1055					.SBTTL		DM11BB - MODEM CONTROLLER FOR DH11
  1056					;
  1057		170500			DMBASE=	170500		;HDW ADR OF FIRST DM11
  1058					;
  1059		000007			DM.LVL=	7		;PROCESSOR LEVEL FOR DM11BB INTERRUPTS
  1060					;
  1061		170500				B.DM11=	170500	;FIRST DM11 ADR
  1062		004000				DM.SCN=	B11	;CLEAR SCANNER
  1063		002000				DM.INI=	B10	;CLEAR MULTIPLEXER
  1064		001000				DM..MM=	B9	;MAINTENANCE MODE
  1065		000400				DM.STP=	B8	;STEP TO NEXT LINE
  1066		000200				DM.DNE=	B7
  1067		000100				DM.IEN=	B6	;INTERRUPT ENABLE
  1068		000040				DM.ENB=	B5	;SCAN ENABLE
  1069		000020				DM.BSY=	B4	;CLEAR SCAN STILL PERCOLATING
  1070		000017				DM.ALI=	B0!B1!B2!B3	;LINE NUMBER FIELD
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-27
C11DMC.MAC    10-AUG-79 16:08			DMC11/KMC11 - MICROPROCESSOR BASED COMM CONTROLLER

  1072					.SBTTL		DMC11/KMC11 - MICROPROCESSOR BASED COMM CONTROLLER
  1073					;
  1074		000005			DMC.LVL	= 5
  1075					;
  1076	000000'					NAMEBT	,0,<MD.RUN,MD.CLR,MD.CWR,MD.SLU,MD.LLU>
  1077	000000'					NAMEBT	,,<MD.RMO,MD.RMI,MD.SMP,B7,B6,B5,B4,B3,B2,B1,B0>
  1078		000000						.REPT	0
  1079							MD.RUN	- RUN THE MICROPROCESSOR
  1080							MD.CLR	- CLEAR THE MICROPROCESSOR
  1081							MD.CWR	- CRAM WRITE
  1082							MD.SLU	- STEP LINE UNIT
  1083							MD.LLU	- LOOP LINE UNIT
  1084							MD.RMO	- ROM OUTPUT
  1085							MD.RMI	- ROM INPUT
  1086							MD.SMP	- STEP MICROPROCESSOR
  1087								.ENDR
  1088						.IRP	X,<0,2,4,6>
  1089						SEL'X	= X
  1090						BSEL'X	= X
  1091						.ENDR ;X
  1092						.IRP	X,<1,3,5,7>
  1093						BSEL'X	= X
  1094						.ENDR ;X
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-28
C11DMC.MAC    10-AUG-79 16:08			DN11 - AUTODIALER

  1096					.SBTTL		DN11 - AUTODIALER
  1097					;
  1098		000007			DN.LVL=	7			;PROCESSOR LEVEL FOR DN INTERRUPTS
  1099		175200			DNBASE=175200
  1100					;
  1101		100000				DN.PWI=	B15		;POWER INDICATE
  1102		040000				DN.ACR=	B14		;ABANDON CALL AND RETRY
  1103		010000				DN.DLO=	B12		;DATA LINE OCCUPIED
  1104		000200				DN.DNE=	B7		;DONE
  1105		000100				DN..IE=	B6		;INTERRUPT ENABLE
  1106		000040				DN.DSS=	B5		;DATA SET STATUS
  1107		000020				DN.PND=	B4		;PRESENT NEXT DIGIT
  1108		000010				DN..MM=	B3		;MAINTENANCE MODE
  1109		000004				DN..ME=	B2		;MASTER ENABLE
  1110		000002				DN..DP=	B1		;DIGIT PRESENT
  1111		000001				DN..CR=	B0		;CALL REQUEST
  1112		007400				DN.DGT=B8+B9+B10+B11	;DIGIT BITS
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-29
C11DMC.MAC    10-AUG-79 16:08			DP11 - SYNCHRONOUS LINE INTERFACE

  1114					.SBTTL		DP11 - SYNCHRONOUS LINE INTERFACE
  1115					;
  1116		000007			DP.LVL=	7	;PROCESSOR LEVEL FOR DP11 INTERRUPTS
  1117					;
  1118					; "A" RECEIVER STATUS REGISTER  (ADR = XXXXX0)
  1119					;
  1120		010000			DP..CP=	B12		;CHARACTER PARITY; 1=ODD, 0=EVEN
  1121		004000			DP..RA=	B11		;RECEIVE ACTIVE
  1122		000200			DP..RD=	B7		;RECEIVE DONE
  1123		000100			DP.RIE=	B6		;RECEIVE DONE INTERRUPT ENABLE
  1124		000010			DP..MR=	B3		;MISCELLANEOUS RECEIVE
  1125		000004			DP..MM=	B2		;MAINTENANCE MODE
  1126		000002			DP..HD=	B1		;HALF DUPLEX
  1127		000001			DP..SS=	B0		;STRIP SYNC
  1128					;
  1129					; "B" TRANSMIT AND CONTROL STATUS REG  (ADR = XXXXX2)
  1130					;
  1131		100000			DP..CF=	B15		;CARRIER FLAG
  1132		040000			DP.ROF=	B14		;RECEIVE OVERRUN FLAG
  1133		020000			DP.RNG=	B13		;RING FLAG
  1134		010000			DP.MRY=	B12		;MODEM READY
  1135		004000			DP.CAR=	B11		;CARRIER
  1136		002000			DP.CTS=	B10		;CLEAR TO SEND
  1137		001000			DP.RTS=	B9		;REQUEST TO SEND
  1138		000200			DP..TD=	B7		;TRANSMIT DONE
  1139		000100			DP.TIE=	B6		;TRANSMIT DONE INTERRUPT ENABLE
  1140		000040			DP.SIE=	B5		;STATUS INTERRUPT ENABLE
  1141		000020			DP.MIS=	B4		;MISCELLANEOUS
  1142		000010			DP..MT=	B3		;MISCELLANEOUS TRANSMIT
  1143		000002			DP..IS=	B1		;IDLE SYNC
  1144		000001			DP.DTR=	B0		;TERMINAL READY
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-30
C11DMC.MAC    10-AUG-79 16:08			DQ11 - DMA SYNCHRONOUS LINE INTERFACE

  1146					.SBTTL		DQ11 - DMA SYNCHRONOUS LINE INTERFACE
  1147					;
  1148		000007			DQ.LVL=	7		;PROCESSOR LEVEL FOR DQ11 INTERRUPTS
  1149					;
  1150					; THE BASE ADR FOR THE DQ11 IS CONTAINED IN THE LINE BLOCK
  1151					; RECEIVE STATUS ( ADR =XXXXX0 )
  1152					;
  1153		000001				DQ.RGO=	B0	; RECEIVE GO
  1154		000002				DQ.SSY=	B1	; STRIP SYNC
  1155		000004				DQ.SEC=	B2	; 0=	PRIMARY,1=SECONDARY
  1156		000010				DQ.HD=	B3	; HALF DUPLEX(=	MASK INPUT WHEN XMT ACTIVE)
  1157		000020				DQ.CIE=	B4	; CHAR INTERRUPT ENABLE
  1158		000040				DQ.RIE=	B5	; RECEIVE DONE INTERRUPT ENABLE
  1159		000100				DQ.RDS=	B6	; RECEIVE DONE (SECONDARY) FLAG
  1160		000200				DQ.RDP=	B7	; RECEIVE DONE (PRIMARY) FLAG
  1161		007400				DQ.CHR=	7400	; CHAR DETECTED
  1162		000400				DQ.ETB=	B8	; CHAR WAS AN ETB
  1163		001000				DQ.ETX=	B9	; CHAR WAS AN ETX
  1164		002000				DQ.ENQ=	B10	; CHAR WAS AN ENQ
  1165		004000				DQ.SYN=	B11	; SPECIAL CHAR WAS A SYNC
  1166		010000				DQ.RAC=	B12	; RECEIVE ACTIVE
  1167					;		060000	; USER OPTION
  1168		100000				DQ.VCH=	B15	; VCHAR FLAG
  1169		110021				DQ.RKL=	DQ.RAC!DQ.VCH!DQ.RGO!DQ.CIE	; BITS TO STOP RECEIVER
  1170					;
  1171					; TRANSMIT STATUS ( ADR = XXXXX2 )
  1172					;
  1173		000001				DQ.XGO=	B0	; TRANSMIT GO
  1174					;		B1	; IDLE MODE
  1175		000004				DQ.SEC=	B2	; 0=	PRIMARY ACTIVE,1=SECONDARY ACTIVE
  1176		000010				DQ.EIE=	B3	; ERR INTERRUPT ENABLE
  1177		000020				DQ.DIE=	B4	; DATA SET INTERRUPT ENABLE
  1178		000040				DQ.XIE=	B5	; TRANSMIT DONE INTERRUPT ENABLE
  1179		000100				DQ.XDS=	B6	; TRANSMIT DONE(SECONDARY)
  1180		000200				DQ.XDP=	B7	; TRANSMIT DONE(PRIMARY)
  1181		000400				DQ.RTS=	B8	; REQUEST TO SEND
  1182		001000				DQ.DTR=	B9	; DATA TERMINAL READY
  1183		002000				DQ.DSR=	B10	; DATA SET READY
  1184		004000				DQ.RNG=	B11	; RING
  1185		010000				DQ.CAR=	B12	; CARRIER
  1186		020000				DQ.CTS=	B13	; CLEAR TO SEND
  1187					;		B14	; USER OPTION
  1188		100000				DQ.DSF=	B15	; DATA SET FLAG
  1189					;
  1190					; REG/ERR REGISTER ( ADR =XXXXX4 )
  1191					;
  1192		000001				DQ.XCL=	B0	; TRANSMIT CLOCK LOSS
  1193		000002				DQ.RCL=	B1	; RECEIVE CLOCK LOSS
  1194		000004				DQ.XLE=	B2	; TRANSMIT LATENCY ERROR
  1195		000010				DQ.RLE=	B3	; RECEIVE LATENCY ERROR
  1196		000020				DQ.XNX=	B4	; TRANSMIT NONEX MEM
  1197		000040				DQ.RNX=	B5	; RECEIVE NONEX MEM
  1198		000100				DQ.BCC=	B6	; RECEIVE BCC ERROR
  1199		000200				DQ.VRC=	B7	; RECEIVE VRC ERROR
  1200					;		007400	; REG SELECT FOR REFERENCE TO XXXXX6
  1201		010000				DQ.MEM=	B12	; WRENABLE 060000
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-31
C11DMC.MAC    10-AUG-79 16:08			DQ11 - DMA SYNCHRONOUS LINE INTERFACE

  1202		000020				DQ.MBM=	020	; BYTE EQUIVALENT OF ABOVE
  1203					;		060000	; MEM EXT OR ENTER T/EXIT T
  1204					;		B15	; ERROR INTERRUPT
  1205					;
  1206					; SECONDARY REGISTERS ( ADR = XXXXX6 )
  1207					;
  1208		000000				RG.PRA=	0	; PRIMARY RECEIVE BA
  1209		000001				RG.PRC=	1	; PRIMARY RECEIVE CC
  1210		000002				RG.PTA=	2	; PRIMARY TRANSMIT BA
  1211		000003				RG.PTC=	3	; PRIMARY TRANSMIT CC
  1212		000004				RG.SRA=	4	; SECONDARY RECEIVE BA
  1213		000005				RG.SRC=	5	; SECONDARY RECEIVE CC
  1214		000006				RG.STA=	6	; SECONDARY TRANSMIT BA
  1215		000007				RG.STC=	7	; SECONDARY TRANSMIT CC
  1216					;;;;		10	; CHAR DET REG
  1217		000011				RG.SYN=	11	; SYNC REG
  1218		000012				RG.MSC=	12	; MISC REG
  1219		000040				DQ.MC=	B5	; MASTER CLEAR (SORT OF)
  1220					;;;;		13	; TRANSMIT BUF
  1221					;;;;		14	; SEQUENCE REGISTER
  1222					;;;;		15	; RECEIVE BCC
  1223					;;;;		16	; TRANSMIT BCC
  1224					;;;;		17	; RECEIVE/TRANSMIT POLYNOMIAL
  1225								;
  1226					.MACRO	DQREGS	REG,QQ
  1227					Z=	RG.'REG
  1228					.IIF EQ <Z&10>,Z=	Z+DQ.MBM
  1229						    .IF B,QQ
  1230						MOVB	#Z,5(DQ)	;SET TO ADDRESS SECONDARY REGISTER RG.'REG
  1231						    .IFF ;B <QQ>
  1232						MOVB	#Z,5QQ		;SET TO ADDRESS SECONDARY REGISTER RG.'REG
  1233						    .ENDC ;B <QQ>
  1234					.ENDM	DQREGS
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-32
C11DMC.MAC    10-AUG-79 16:08			DQ11 - DMA SYNCHRONOUS LINE INTERFACE

  1236					;
  1237					;	THE SEVEN SWITCHES (PACKAGES) WILL BE LOCATED
  1238					;		ON BOARD #M7818 WITHIN THE DQ11 LOGIC BLOCK
  1239					;
  1240					;
  1241					;	PACKAGE #	SWITCH #'S	SWITCH SETTINGS ON RESPECTIVE PACKAGES
  1242					;
  1243					;	1		 8 - 1		ALL OFF
  1244					;
  1245					;	2		16 - 9		ALL OFF
  1246					;
  1247					;	3		24 - 17		ALL OFF
  1248					;
  1249					;	4		32 - 25	DAS78	 ON, ON,OFF, ON,OFF,OFF, ON,OFF
  1250					;					CHARACTER = 055 (ENQ)
  1251					;	4		32 - 25 DAS85	 ON, ON, ON, ON, ON,OFF, ON,OFF
  1252					;					CHARACTER = 005 (ENQ)
  1253					;
  1254					;	5		40 - 33	DAS78	 ON, ON,OFF,OFF,OFF, ON, ON, ON
  1255					;				DAS85	 ON,OFF,OFF,OFF,OFF, ON, ON, ON
  1256					;
  1257					;	6		48 - 41	DAS78	 ON, ON, ON, ON, ON, ON,OFF,OFF
  1258					;					CHARACTER = 03 (ETX)
  1259					;				DAS85	OFF, ON, ON,OFF, ON, ON,ON, ON
  1260					;					CHARACTER = 220 (DLE)
  1261					;
  1262					;	7		56 - 49	DAS78	 ON, ON, OFF, ON, ON,OFF,OFF, ON
  1263					;					CHARACTER = 46 (ETB)
  1264					;				DAS85	OFF, ON, ON, ON, ON, ON, ON,OFF
  1265					;					CHARACTER = 201 (SOH)
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-33
C11DMC.MAC    10-AUG-79 16:08			DS11 - SYNCHRONOUS LINE INTERFACE

  1267					.SBTTL		DS11 - SYNCHRONOUS LINE INTERFACE
  1268					;
  1269					;HARDWARE ADDRESSES
  1270					;
  1271		175600			DS.AUX=	175600		;AUXILLARY REGISTER
  1272		175400			DS.DVA=	175400		;BEGINNING OF LINE DEVICE REGISTERS
  1273		000400			DS.VEC=	400		;FIRST DS11 VECTOR
  1274		000007			DS.LVL=	7		;PROCESSOR LEVEL OR DS11 INTERRUPTS
  1275					;
  1276					;BITS IN AUXILLARY REGISTER
  1277					;
  1278		100000			DS.AD3=B15		;ADAPTER 3 IS PRRSENT IF SET
  1279		040000			DS.AD2=B14		;ADAPTER 2 IS PRESENT IF SET
  1280		020000			DS.AD1=B13		;ADAPTER 1 IS PRESENT IF SET
  1281					;	B12		;NOT USED
  1282					;	B11		;NOT USED
  1283					;	B10		;NOT USED
  1284					;	B9		;PROGRAM VECTOR 9
  1285		000400			DS.IVA=B8		;PROGRAM VECTOR 8 - INTERRUPTS START AT 400
  1286					;	B7		;DIAG MODE
  1287					;	B6		;PROGRAM CLOCK ALLOW
  1288					;	B5		;NOT USED
  1289					;	B4		;DIAG BIT CNTR CLEAR
  1290					;	B3		;DIAG BIT COUNTER 4
  1291					;	B2		;DIAG BIT COUNTER 3
  1292					;	B1		;DIAG BIT COUNTER 2
  1293					;	B0		;DIAG BIT COUNTER 1
  1294					;
  1295					;
  1296					;OFFSETS OF REGISTERS FROM LINE BASE ADDRESS
  1297					;
  1298		000006			DS.XDR=6		;TRANSMIT DATA REGISTER
  1299		000004			DS.XST=4		;TRANSMIT STATUS REGISTER
  1300		000002			DS.RDR=2		;RECEIVE DATA REGISTER
  1301		000000			DS.RST=0		;RECEIVE STATUS REGISTER
  1302					;
  1303					;PRIORITY INTERRUPT LEVELS
  1304					;
  1305		000007			I.DSRD=7		;RECEIVE DATA INTERRUPT
  1306		000006			I.DSRS=6		;RECEIVE STATUS INTERRUPT
  1307		000007			I.DSXD=7		;A TRANSMIT DATA INTERRUPT
  1308		000006			I.DSXS=6		;A TRANSMIT STATUS INTERRUPT
  1309					;
  1310					;BITS IN XMIT STATUS REGISTER & RECEIVE REG.
  1311					;
  1312		000440			DS.DTR=000440		;BOTH XMT & RCV REG.
  1313		170000			DS.ZAP=170000		;CLEAR ALL OVERRUN FLAGS
  1314		000455			DS.XGO=DS.DTR+<<I.DSXD/2>*4>+1	;REQUEST TO SEND
  1315		006455			DS.RGO=B11!B10!DS.DTR!<<I.DSRD/2>*4>+1	;RECEIVE
  1316					;
  1317					;BITS IN TRANSMIT STATUS REGISTER
  1318					;
  1319					;	B15		; NOT USED
  1320					;	B14		; XMIT BIT OVERRUN
  1321					;	B13		; XMIT CHAR OVERRUN
  1322					;	B12		; CLEAR TO SEND FLAG
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-34
C11DMC.MAC    10-AUG-79 16:08			DS11 - SYNCHRONOUS LINE INTERFACE

  1323					;	B11		; NOT USED
  1324					;	B10		; NOT USED
  1325					;	B9		; CLEAR TO SEND
  1326					;	B8		; DATA TERM READY
  1327					;	B7		; XMIT CHAR DONE
  1328					;	B6		; DATA SET READY
  1329					;	B5		; CODE SIZE 2
  1330					;	B4		; CODE SIZE 1
  1331					;	B3		; PRIORITY REQUEST 2
  1332					;	B2		; PRIORITY REQUEST 1
  1333					;	B1		; IDLE
  1334					;	B0		; REQUEST TO SEND
  1335					;
  1336					;BITS IN RECEIVE STATUS REGISTER
  1337					;
  1338					;	B15		; RING FLAG
  1339					;	B14		; REC BIT OVERRUN
  1340					;	B13		; REC CHAR OVERRUN
  1341					;	B12		; LINE SIGNAL FLAG
  1342					;	B11		; SYN STATE 2
  1343					;	B10		; SYN STATE 1
  1344					;	B9		; LINE SIGNAL
  1345					;	B8		; DATA TERMINAL READY
  1346					;	B7		; REC CHAR DONE
  1347					;	B6		; DATA SET READY
  1348					;	B5		; CODE SIZE 2
  1349					;	B4		; CODE SIZE 1
  1350					;	B3		; PRIORITY REQUEST 2
  1351					;	B2		; PRIORITY REQUEST 1
  1352					;	B1		; RING ALLOW
  1353					;	B0		; RECEIVE
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-35
C11DMC.MAC    10-AUG-79 16:08			DTE20 - DECSYSTEM 20(10)/PDP-11 INTERPROCESSOR INTERFACE

  1355					.SBTTL		DTE20 - DECSYSTEM 20(10)/PDP-11 INTERPROCESSOR INTERFACE
  1356					;
  1357		000000			DLYCNT	= 0		;DELAY COUNTER
  1358		100000				BUSA17	= B15		;UNIBUS ADDRESS BIT 17
  1359		040000				BUSA16	= B14		;UNIBUS ADDRESS BIT 16
  1360		037777				DLYMSK	= 37777		;DELAY COUNT FIELD
  1361		000002			DEXWD3	= 2		;DEPOSIT/EXAMINE WORD 3
  1362		000004			DEXWD2	= 4		;DEPOSIT/EXAMINE WORD 2
  1363		000006			DEXWD1	= 6		;DEPOSIT/EXAMINE WORD 1
  1364		000010			TENAD1	= 10		;KL-10 MEMORY ADDRESS 1
  1365		000012			TENAD2	= 12		;KL-10 MEMORY ADDRESS 2
  1366		000014			TO10BC	= 14		;TO -10 BYTE (WORD) COUNT
  1367		000016			TO11BC	= 16		;TO -11 BYTE (WORD) COUNT
  1368		100000				TO11IB	= B15		;INTERRUPT BOTH SIDES WHEN DONE
  1369		020000				TO11BM	= B13		;TO -11 BYTE MODE
  1370		007777				TO11CM	= 7777		;BYTE (WORD) COUNT
  1371		000020			TO10AD	= 20		;TO -10 ADDRESS
  1372		000022			TO11AD	= 22		;TO -11 ADDRESS
  1373		000024			TO10DT	= 24		;TO -10 DATA WORD
  1374		000026			TO11DT	= 26		;TO -11 DATA WORD
  1375		000030			DIAG1	= 30		;DIAGNOSTIC CONTROL REGISTER 1
  1376		000032			DIAG2	= 32		;DIAGNOSTIC CONTROL REGISTER 2
  1377		000100				DRESET	= B6		;(W) DTE20 RESET
  1378		000034			CSTAT	= 34		;CONTROL STATUS REGISTER
  1379		100000				TO10DN	= B15		;(R) TO -10 TRANSFER DONE
  1380		040000				DON10C	= B14		;(W) CLEAR TO -10 DONE
  1381		020000				TO10ER	= B13		;(R) TO -10 TRANSFER ERROR
  1382		010000				ERR10C	= B12		;(W) CLEAR TO -10 TRANSFER ERROR
  1383		004000				TO11DB	= B11		;(R) TO -11 DOORBELL
  1384		004000				INT11S	= TO11DB	;(W) REQUEST INTERRUPT
  1385		002000				INT11C	= B10		;(W) CLEAR TO -11 DOORBELL
  1386		001000				MPE11	= B9		;(R) -11 PARITY ERROR
  1387		000400				TO10DB	= B8		;(R/W) TO -10 DOORBELL
  1388		000200				TO11DN	= B7		;(R) TO -11 TRANSFER DONE
  1389		000100				DON11C	= B6		;(W) CLEAR TO -11 DONE
  1390		000040				INTRON	= B5		;(W) ENABLE FROM -10 INTERRUPTS
  1391		000020				BPARER	= B4		;(R) EBUS PARITY ERROR
  1392		000010				INTROF	= B3		;(W) DISABLE FROM -10 INTERRUPTS
  1393		000010				RM	= INTROF	;(R) RESTRICTED MODE
  1394		000004				DEXDON	= B2		;(R) DEPOSIT/EXAMINE DONE
  1395		000002				TO11ER	= B1		;(R) TO -11 TRANSFER ERROR
  1396		000002				ERR11S	= TO11ER	;(W) SET TO -11 ERROR
  1397		000001				ERR11C	= B0		;(W) CLEAR TO -11 TRANSFER ERROR
  1398		000001				INTSON	= ERR11C	;(R) INTERRUPTS ARE ENABLED
  1399		000036			DIAG3	= 36		;DIAGNOSTIC CONTROL REGISTER 3
  1400		000001				TO10BM	= B0		;(W) TO -10 BYTE MODE
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-36
C11DMC.MAC    10-AUG-79 16:08			DU11 - SYNCHRONOUS LINE CONTROLLER

  1402					.SBTTL		DU11 - SYNCHRONOUS LINE CONTROLLER
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-37
C11DMC.MAC    10-AUG-79 16:08			DUP11 - SYNCHRONOUS LINE INTERFACE WITH CRC

  1404					.SBTTL		DUP11 - SYNCHRONOUS LINE INTERFACE WITH CRC
  1405					;
  1406		000006			DUP.LVL	= 6
  1407					;
  1408					;;;;	DUPSTS = FLOATING
  1409					;
  1410		000000			DUPCRS = 0	;RECEIVER STATUS AND CONTROL REGISTER
  1411	000000'					NAMEBT	DUPRCS,0,<DUPDSA,DUPRNG,DUPCTS,DUPCAR,DUPACT,DUP2RC>
  1412	000000'					NAMEBT	,,<DUPDSR,DUPSSY,DUPRDN,DUPRIE,DUPDIE,DUPRCE>
  1413	000000'					NAMEBT	,,<DUP2TX,DUPRTS,DUPDTR,DUPDSB>
  1414									;
  1415		000000						.REPT	0
  1416							DUPDSA	- DATA SET CHANGE A	RO
  1417							DUPRNG	- RING INDICATOR	RO
  1418							DUPCTS	- CLEAR TO SEND		RO
  1419							DUPCAR	- CARRIER		RO
  1420							DUPACT	- ACTIVE		RM
  1421							DUP2RC	- SECONDARY RECEIVE DATA RO
  1422							DUPDSR	- DATA SET READY	RO
  1423							DUPSSY	- STRIP SYNCH		RW
  1424
  1425							DUPRDN	- RECEIVE DONE		RO
  1426							DUPRIE	- RECEIVER INTERRUPT ENABLE RW
  1427							DUPDIE	- DATA SET INTERRUPT ENABLE RW
  1428							DUPRCE	- RECEIVE ENABLE (CLEARS THE READ MOSTLY BITS) RW
  1429							DUP2TX	- SECONDARY TRANSMIT	RW
  1430							DUPRTS	- REQUEST TO SEND	RW
  1431							DUPDTR	- DATA TERMINAL READY	RW
  1432							DUPDSB	- DATA SET CHANGE B	RO
  1433								.ENDR
  1434		000002			DUPRDB = 2		;RECEIVE DATA BUFFER
  1435	000000'					NAMEBT	DUPRDB,0,<DUPRER,DUPROV,,DUPRCR,,DUPRAB,DUPREM,DUPRSM>
  1436		000377				DUPRDT	= 377			;RECEIVED DATA BUFFER
  1437		000000						.REPT	0
  1438							DUPRER	- RECEIVER ERROR	RO
  1439							DUPROV	- RECEIVER OVERRUN	RO
  1440								- RESERVED
  1441							DUPRCR	- RCRC ERROR+ZERO	RO
  1442								- RESERVED
  1443							DUPRAB	- RECEIVED ABORT	RW
  1444							DUPREM	- END OF REC'D MSG	RM
  1445							DUPRSM	- START OF REC'D MSG	RM
  1446								.ENDR
  1447		000002			DUPPSR = DUPRDB		;PARAMETER STATUS REGISTER
  1448	000000'					NAMEBT	DUPPSR,0,<DUPPDM,,,DUPP2M,,,DUPPIC,>
  1449		000377				DUPP2S	= 377		;SECONDARY STATION ADDRESS OR REC SYNCH REG
  1450		000000						.REPT	0
  1451							DUPPDM	- DEC MODE (BYTE MODE)		WO
  1452								- RESERVED
  1453								- RESERVED
  1454							DUPP2M	- SENCONDARY MODE SELECT	WO
  1455								- RESERVED
  1456								- RESERVED
  1457							DUPPIC	- INHIBIT CRC COMPUTATION	WO
  1458								.ENDR
  1459		000004			DUPTCS = 4		;TRANSMITTER STATUS REGISTER
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-38
C11DMC.MAC    10-AUG-79 16:08			DUP11 - SYNCHRONOUS LINE INTERFACE WITH CRC

  1460	000000'					NAMEBT	DUPTCS,0,<DUPTDL,DUPTMT,DUPTMC,DUPTM1,DUPTM0>
  1461	000000'					NAMEBT	,,<DUPTMI,DUPTAC,DUPTRS,DUPTDN,DUPTIE,,DUPTSN,DUPTHD,,,>
  1462		000000						.REPT	0
  1463							DUPTDL	- TRANSMIT DATA LATE	RM
  1464							DUPTMT	- MAINTENANCE TRANSLATE	RO
  1465							DUPTMC	- MAINTENANCE CLOCK	RW
  1466							DUPTM1	- MAINTENANCE MODE SELECT RW
  1467							DUPTM0	- 
  1468							DUPTMI	- MAINTENANCE INPUT	RW
  1469							DUPTAC	- TRANSMITTER ACTIVE	RO
  1470							DUPTRS	- DEVICE RESET		WO
  1471							DUPTDN	- TRANSMIT DONE		RM
  1472							DUPTIE	- TRANSMITTER INTERRUPT ENABLE RW
  1473								- RESERVED
  1474							DUPTSN	- SEND			RW
  1475							DUPTHD	- HALF DUPLEX		RW
  1476								- RESERVED
  1477								- RESERVED
  1478								- RESERVED
  1479								.ENDR
  1480		000006			DUPTDB = 6		;TRANSMITTER DATA BUFFER
  1481	000000'						NAMEBT	DUPTDB,0,<,DUPXCI,,DUPXCO,DUPXMT,DUPXAB,DUPXEM,DUPXSM>
  1482		000377					DUPXDB	= 377		;TRANSMITTER DATA BUFFER BYTE
  1483		000000						.REPT	0
  1484								- RESERVED
  1485							DUPXCI	- MAINTENANCE CRC INPUT	RO
  1486								- RESERVED
  1487							DUPXCO	- MAINTENANCE CRC OUTPUT RO
  1488							DUPXMT	- MAINTENANCE TIMER	RO
  1489							DUPXAB	- TRANSMIT ABORT	RW
  1490							DUPXEM	- TRANSMIT END OF MSG	RW
  1491							DUPXSM	- TRANSMIT STRAT OF MSG	RW
  1492								.ENDR
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-39
C11DMC.MAC    10-AUG-79 16:08			DZ11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER

  1494					.SBTTL		DZ11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER
  1495					;
  1496					; DZ11 CONTROL STATUS REGISTER (CSR) FLAGS
  1497					;
  1498		000020			DZ.CLR=	000020				;MASTER CLEAR
  1499		000040			DZ.SCN=	000040				;SCAN ENABLE (ENABLE RCV & XMT)
  1500		000100			DZ.RIE=	000100				;RECEIVE INTERUPT ENABLE
  1501		010000			DZ.SAE=	010000				;SILO ALARM ENABLE
  1502		040000			DZ.TIE=	040000				;TRANSMIT INTERUPT ENABLE
  1503		050140			DZ.INI=	DZ.SCN!DZ.RIE!DZ.TIE!DZ.SAE	;INITIAL VALUE FOR CSR
  1504					 
  1505					 
  1506					;
  1507					; DZ11 LINE PARAMETER REGISTER (LPR) FLAGS
  1508					;
  1509		010000			DZ.RCV=	010000				;RCV ON IN LPR
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-40
C11DMC.MAC    10-AUG-79 16:08			EIA PIN DEFINITIONS

  1511					.SBTTL		EIA PIN DEFINITIONS
  1512					;
  1513					;	1	PROTECTIVE GROUND
  1514					;	2	TRANSMITTED DATA
  1515					;	3	RECEIVED DATA
  1516					;	4	REQUEST TO SEND
  1517					;	5	CLEAR TO SEND
  1518					;	6	DATA SET READY
  1519					;	7	SIGNAL GROUND
  1520					;	8	RECEIVED LINE SIGNAL DECTECTOR
  1521					;	9	*
  1522					;	10	*
  1523					;	11	*
  1524					;	12	*
  1525					;	13	*
  1526					;	14	*
  1527					;	15	*
  1528					;	16	*
  1529					;	17	RECEIVED SIGNAL ELEMENT TIMING
  1530					;	18	*
  1531					;	19	*
  1532					;	20	DATA TERMINAL READY
  1533					;	21	SIGNAL QUALITY DETECTOR
  1534					;	22	RING INDICATOR
  1535					;	23	*
  1536					;	24	TRANSMIT SIGNAL ELEMENT TIMING
  1537					;	25	*
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-41
C11DMC.MAC    10-AUG-79 16:08			KG11 - COMMUNICATIONS ARITHMETIC PROCESSOR

  1539					.SBTTL		KG11 - COMMUNICATIONS ARITHMETIC PROCESSOR
  1540					;
  1541		170700			KG.STS = 170700
  1542		000200				KG.DNE=200	;CALCULATION DONE
  1543		000100				KG.SEN=100	;NOT SINGLE CYCLE
  1544		000040				KG.STP=040	;STEP
  1545		000020				KG.CLR=020	;CLEAR
  1546		000010				KG.DDB=010	;WORD MODE
  1547						;	007	;TYPE OF CALCULATION
  1548		000001				KG.CRC=001	; 1 = CRC-16
  1549		000003				KG.LRC=003	; 3 = LRC-16
  1550		000005				KG.CCI=005	; 5 = CRC-CCITT
  1551		000121			KG.INI=	KG.SEN!KG.CLR!KG.CRC
  1552		000002			KGBCC = 2
  1553		000004			KGDATA = 4
  1554					;
  1555					.MACRO	KGLOAD	X,MODE
  1556						Z=101
  1557						    .IF NB MODE
  1558						.IIF IDN <MODE>,<WORD>,Z=Z!KG.DDB	;SET WORD MODE
  1559						.IIF IDN <MODE>,<BYTE>,Z=Z&<^CKG.DDB>
  1560						    .ENDC;.IF NB MODE
  1561						    .IF IDN <#0>,<X>
  1562						Z=Z!KG.CLR
  1563						    .IFF
  1564						MOV	#133,(R4)		;CLEAN OUT KG11
  1565						MOV	X,KGDATA(R4)		;LOAD WITH DATA  ( X )
  1566						    .ENDC ;IDN <#0>,<X>
  1567						MOV	#Z,(R4)		;AND SET CRC MODE
  1568					.ENDM	KGLOAD
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-42
C11DMC.MAC    10-AUG-79 16:08			KT11 - MEMORY MANAGEMENT MODULE

  1570					.SBTTL		KT11 - MEMORY MANAGEMENT MODULE
  1571					;
  1572					.MACRO	MMNAM1	MODE,TYPE,SPACE,NUMB
  1573						MODE'SPACE'S'TYPE'R'NUMB	= $MMADR
  1574						$MMADR	= $MMADR + 2
  1575					.ENDM	MMNAM1
  1576					;
  1577					.MACRO	MMNAM2	MODE,BASE
  1578						$MMADR	= BASE
  1579						.IRPC	TYPE,<DA>
  1580						  .IRPC	SPACE,<ID>
  1581						    $$ = 0
  1582						    .REPT 8.
  1583						      MMNAM1	MODE,TYPE,SPACE,\$$
  1584						      $$ = $$ + 1
  1585						    .ENDR ;8.
  1586						  .ENDR	;SPACE
  1587						.ENDR	;TYPE
  1588					.ENDM	MMNAM2
  1589					;
  1590					;
  1591					;
  1592					; MEMORY MANAGEMENT STATUS REGISTER BLOCK
  1593					;	ASTERISK (*) DENOTES THE 11/34 MEMORY MANAGEMENT SUBSET
  1594					;
  1595		177572				MMGSR0	= 177572	;MEM MGT STATUS REGISTER	*
  1596	000000'					NAMEBT	MMGSR0,0,<MG.ANR,MG.APL,MG.ARO,MG.TMM,,>
  1597	000000'					NAMEBT	,,<MG.EMT,MG.MNT,MG.IDN,MG.MD1,MG.MD0>
  1598	000000'					NAMEBT	,,<MG.DAD,MG.PG2,MG.PG1,MG.PG0,MG.ENB>
  1599		000000					.REPT	0
  1600							MG.ANR - ABORT, NON-RESIDENT		*
  1601							MG.APL - ABORT, PAGE LENGTH		*
  1602							MG.ARO - ABORT, READ ONLY		*
  1603							MG.TMM - ABORT, TRAP ON MEM MGT
  1604							MG.XXX - UNUSED
  1605							MG.XXX - UNUSED
  1606							MG.EMT - ENABLE MEM MGT TRAP
  1607							MG.MNT - MAINTENANCE MODE		*
  1608							MG.IDN - INSTRUCTION DONE
  1609							MG.MD1 - MODE, BIT 1			*
  1610							MG.MD0 - MODE, BIT 0			*
  1611							MG.DAD - D ADDRESS SPACE SELECTED
  1612							MG.PG2 - PAGE SELECTED, BIT 2		*
  1613							MG.PG1 - PAGE SELECTED, BIT 1		*
  1614							MG.PG0 - PAGE SELECTED, BIT 0		*
  1615							MG.ENB - ENABLE MEM MGT			*
  1616							.ENDR ;TEXT
  1617									;
  1618		177574				MMGSR1	= 177574	;GPR MODIFICATION RECORD
  1619									;
  1620		177576				MMGSR2	= 177576	;VIRTUAL ADDRESS REGISTER	*
  1621									;
  1622		172516				MMGSR3	= 172516	;
  1623	000000'					NAMEBT	MMGSR3,4,<MG.KDS,MG.SDS,MG.UDS>
  1624									;
  1625					;
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-43
C11DMC.MAC    10-AUG-79 16:08			KT11 - MEMORY MANAGEMENT MODULE

  1626					; DEFINE NAMES FOR THE PAGE ADDRESS AND DESCRIPTOR REGISTERS
  1627					;
  1628	000000'					MMNAM2	U,177600	;USER MODE MEM MGT		*
  1629					;;;;	MMNAM2	S,172200	;SUPERVISOR MODE MEM MGT (NOT FOR 11/34)
  1630	000000'					MMNAM2	K,172300	;KERNEL MODE MEM MGT		*
  1631					;
  1632					; PAGE DESCRIPTOR REGISTER FIELD DEFINITIONS
  1633					;
  1634	000000'					NAMEBT	PDR,0,<,PD.PL6,PD.PL5,PD.PL4,PD.PL3,PD.PL2,PD.PL1,PD.PL0>
  1635	000000'					NAMEBT	,,<PD.A,PD.W,,,PD.ED,PD.AC2,PD.AC1,PD.AC0>
  1636	000000'					FIELD	PD.PLF,PD.PL6,PD.PL0
  1637	000000'					FIELD	PD.ACF,PD.AC2,PD.AC0
  1638					;
  1639					; VIRTUAL ADDRESS DEFINITIONS
  1640					;
  1641		000100				BSFACT	= 100	;BIAS FACTOR, NUMBER OF BYTES PER BLOCK
  1642						.IRP	X,<0,1,2,3,4,5,6,7>
  1643						PAGE'X	= X*20000	;BASE ADDRESS REACHED THROUGH APR'X
  1644						PAGE'X'B	= X*200	;MAPPING BIAS FOR VIRTUAL=PHYSICAL
  1645						.ENDR	;IRP X
  1646		007600				PAGE7B	= 7600	;PAGE 7 BIAS (I/O PAGE) HAS A SPECIAL VALUE
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-44
C11DMC.MAC    10-AUG-79 16:08			KW11 - LINE TIME CLOCK

  1648					.SBTTL		KW11 - LINE TIME CLOCK
  1649					;
  1650					;KW11 LINE FREQUENCY CLOCK DEFINITIONS
  1651					;
  1652		   001			.IF DF FT.87S
  1653					CLKLVL=	6		; DN87 USES STANDARD PRIORITY LEVEL
  1654					.IFF
  1655		000004			CLKLVL=	4		; CLOCK INTERRUPT PRIORITY LEVEL
  1656		   000			.ENDC
  1657		000100			CLKVEC=	100		; CLOCK VECTOR
  1658					;
  1659		177546			CLKWRD = 177546		; CLOCK STATUS WORD
  1660					;
  1661		000100				KW.INE=B6	; ENABLE INTERRUPTS
  1662		000100				CLKENB=B6	; ENABLE INTERRUPTS
  1663		000200				KW.TIC=B7	; CLOCK MONITOR TOGGLE (CLEARED BY PROGRAM)
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-45
C11DMC.MAC    10-AUG-79 16:08			LP11 - LINE PRINTER CONTROLLER

  1665					.SBTTL		LP11 - LINE PRINTER CONTROLLER
  1666					;
  1667		000004			LE.LVL=	4		; PROCESSOR LEVEL FOR LP11 INTERRUPTS
  1668		000200			LE.VEC=	200		; VECTOR LOCATION
  1669					;
  1670		177514			LE0STS = 177514	;STATUS REGISTER FOR 1ST LP11
  1671		177514				LE.STS=LE0STS
  1672					;
  1673		100000				LE.ERR=	B15	; ERROR BIT(POWER OFF, NO PAPER, GATE, TEMP, OFFLINE)
  1674		000200				LE.DNE=	B7	; READY FOR NEXT CHARACTER
  1675		000100				LE.INE=	B6	; INTERRUPT ENABLE
  1676					;
  1677		177516			LE0DAT = 177516	;DATA REGISTER
  1678		177516				LE.DAT=LE0DAT
  1679					;
  1680					;
  1681					;FOR THE SECOND LP11
  1682		177520			LE1STS = 177520
  1683		177522			LE1DAT = 177522
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-46
C11DMC.MAC    10-AUG-79 16:08			LP20 - LINEPRINTER CONTROLLER

  1685					.SBTTL		LP20 - LINEPRINTER CONTROLLER
  1686					;
  1687					; LP20 HARDWARE DEVICE REGISTER DEFINITIONS
  1688					;
  1689		000004			LP.LVL	= 4		;BUS REQUEST PRIORITY
  1690		000754			LP.VEC	= 754		;FIRST LP VECTOR
  1691								;
  1692		175400			LP0STS	= 175400	;LP20 UNIT 0 FIRST REGISTER BLOCK
  1693								;
  1694		000000			LPCSRA=0		;CONTROL AND STATUS REGISTER A
  1695	000000'					NAMEBT	LPCSRA,0,<LP.ERR,LP.PGZ,LP.CHI,LP.VFR,LP.ONL,LP.DH>
  1696	000000'					NAMEBT	,,<LP.RSE,LP.LOI,LP.DNE,LP.IE,LP.B17,LP.B16>
  1697	000000'					NAMEBT	,,<LP.MD1,LP.MD0,LP.PEN,LP.GO>
  1698		000000						.REPT	0
  1699							LP.ERR=	ERROR (R)
  1700							LP.PGZ=	PAGE ZERO (R)
  1701							LP.CHI=	UNDEFINED CHAR TRAPPED (R)
  1702							LP.VFR=	VERT FORMAT UNIT READY (R)
  1703							LP.ONL=	ONLINE (R)
  1704							LP.DH=	DELIMITER HOLD (R-W)
  1705							LP.RSE=	RESET ERRORS (W)
  1706							LP.LOI=	LOCAL INITIALIZE (W)
  1707
  1708							LP.DNE=	DONE (R)
  1709							LP.IE=	INTERRUPT ENABLE (R-W)
  1710							LP.B17=	HIGH ORDER BUS ADDRESS BITS (R-W)
  1711							LP.B16=		"
  1712							LP.MD1=	OPERATION MODE BITS (R-W)
  1713							LP.MD0=		"
  1714							LP.PEN=	PARITY CHECK INTERRUPT ENABLE (R-W)
  1715							LP.GO=	START COMMAND (R-W)
  1716								.ENDR
  1717									;
  1718		000004						TSTMOD=	LP.MD0 * 1	;TEST MODE
  1719		000010						VFULOD=	LP.MD0 * 2	;VFU LOAD MODE
  1720		000014						RAMLOD=	LP.MD0 * 3	;LOAD TRANSLATION RAM
  1721		000014						LP.MDS=	LP.MD0 ! LP.MD1	;MODE BIT MASK
  1722		000060						LP.XAD=	LP.B17!LP.B16	;HIGH ORDER BUSADD BITS
  1723		000103						ENBGO=	LP.PEN!LP.IE!LP.GO ;ENABLES AND GO
  1724									;
  1725		000002			LPCSRB=2			;CONTROL AND STATUS REGISTER B
  1726	000000'					NAMEBT	LPCRSA,0,<LP.DV,LP.180,LP.NRD,LP.PAR>
  1727	000000'					NAMEBT	,,<LP.OPT,LP.TS2,LP.TS1,LP.TS0,LP.OFL,LP.VFE>
  1728	000000'					NAMEBT	,,<LP.PER,LP.MPE,LP.RPE,LP.SYN,LP.DEM,LP.GOE>
  1729									;
  1730		000000						.REPT	0
  1731							LP.DV=	VALID DATA (R)
  1732							LP.180=	PRINTER IS AN LA180 (R)
  1733							LP.NRD=	LINE PRINTER NOT READY (R)
  1734							LP.PAR=	LINE PRINTER PARITY (R)
  1735							LP.OPT=	PRINTER HAS OPTICAL VFU (R)
  1736							LP.TS2=	TEST MODE BITS (R-W)
  1737							LP.TS1=		"
  1738							LP.TS0=		"
  1739
  1740							LP.OFL=	DEVICE NOT READY (R)
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-47
C11DMC.MAC    10-AUG-79 16:08			LP20 - LINEPRINTER CONTROLLER

  1741							LP.VFE=	CHANNEL TYPE ERROR (R)
  1742							LP.PER=	VARIOUS PARITY ERRORS (R)
  1743							LP.MPE=		"
  1744							LP.RPE=		"
  1745							LP.SYN=	SYNCH TIMEOUT (DATA LATE) (R)
  1746							LP.DEM=	DEMAND TIMEOUT (PRINTER HANG) (R)
  1747							LP.GOE=	GO ERROR (R-W)
  1748								.ENDR
  1749									;
  1750		000004			LPBSAD=4			;BUS ADDRESS REGISTER (R-W)
  1751									;
  1752		000006			LPBCTR=6			;BYTE COUNT (2'S COMPLEMENT)
  1753							; BITS	15-12	NOT USED
  1754							;	11-0	BYTE COUNT (R-W)
  1755							;
  1756		000010			LPPCTR=10			;PAGE COUNTER
  1757							; BITS	15-12	NOT USED
  1758							;	11-0	PAGE COUNT (R-W)
  1759							;
  1760		000012			LPRAMD=12			;RAM DATA REGISTER
  1761	000000'					NAMEBT	LPRAMD,0,<,,,LP.RP,LP.RIN,LP.RDL,LP.RTR,LP.RPI>
  1762		007777					RAMDAT = LP.RP - 1	;MASK FOR WRITABLE RAM BITS
  1763		000020					SLEW = 20	;"SLEW" FLAG FOR VFU
  1764							; BITS	15-13	NOT USED
  1765							;	12	RAM PARITY (R)
  1766							;	11-0	RAM DATA (R-W)
  1767							;
  1768		000014			LPCBUF=14			;(BYTE) CHARACTER BUFFER REGISTER (R-W)
  1769		000015			LPCCTR=15			;(BYTE) COLUMN COUNT REGISTER (R-W)
  1770									;
  1771		000016			LPTDAT=16			;(BYTE) PRINTER DATA REGISTER (R)
  1772		000017			LPCKSM=17			;(BYTE) CHECKSUM REGISTER (R)
  1773									;
  1774		000020			LPRBSZ=20			;SIZE OF HARDWARE REGISTER BLOCK
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-48
C11DMC.MAC    10-AUG-79 16:08			MM11-LP PARITY MEMORY

  1776					.SBTTL		MM11-LP PARITY MEMORY
  1777					;
  1778		000114				MP.VEC=114
  1779		000007				MP.LVL=7
  1780					;
  1781		172100			MP.REG=172100		;ADR OF PARITY REGISTER
  1782					;
  1783		100000				MP.ERR=100000	;ERROR BIT
  1784								; BITS 11-5 ERROR ADDRESS
  1785		000004				MP.WWP=000004	;WRITE WRONG PARITY
  1786		000001				MP.ENB=000001	;ENABLE
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-49
C11DMC.MAC    10-AUG-79 16:08			PA611 - TYPESET READER/PUNCH

  1788					.SBTTL		PA611 - TYPESET READER/PUNCH
  1789					;
  1790		000007			P6.LVL=	7		; PROCESSOR LEVEL FOR PA611P INTERRUPTS
  1791					;
  1792		000007			R6.LVL=	7		; PROCESSOR LEVEL FOR PA611R INTERRUPTS
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-50
C11DMC.MAC    10-AUG-79 16:08			PC11 - PAPER TAPE READER/PUNCH INTERFACE

  1794					.SBTTL		PC11 - PAPER TAPE READER/PUNCH INTERFACE
  1795					;
  1796		000004			PR.LVL=	4		; PROCESSOR LEVEL FOR PC11 READER INTERRUPTS
  1797		000070			PR.VEC=	70		; VECTOR FOR PC11 READER
  1798		000004			PP.LVL=	4		; PROCESSOR LEVEL FOR PC11 PUNCH INTERRUPTS
  1799		000074			PP.VEC=	74		; VECTOR FOR PC11 PUNCH
  1800					;
  1801		177554			PP0STS = 177554	;STATUS REGISTER FOR 1ST PC11 PUNCH
  1802		177554			PP.STS=	177554		; PUNCH STATUS REGISTER
  1803					;
  1804		100000				PP.ERR=	B15	; ERROR BIT (NO TAPE OR NO POWER)
  1805		000200				PP.RDY=	B7	; SET WHEN RREADY TO PUNCH A CHARACTER
  1806		000100				PP.INE=	B6	; INTERRUPT ENABLE
  1807					;
  1808		177556			PP.DAT=	177556		; PUNCH BUFFER REGISTER
  1809					;
  1810		177550			PR0STS = 177550		;STATUS REGISTER FOR 1ST PC11 READER
  1811		177550			PR.STS=	177550		; READER STATUS REGISTER
  1812					;
  1813		100000				PR.ERR=	B15	; ERROR BIT (NO TAPE, NO POWER, OR OFF-LINE)
  1814		004000				PR.BSY=	B11	; SET WHEN A CHARACTER IS BEING READ
  1815		000200				PR.DNE=	B7	; CHARACTER IS AVAILABLE IN THE READER BUFFER
  1816		000100				PR.INE=	B6	; INTERRUPT ENABLE
  1817		000001				PR..RE=	B0	; READER ENABLE
  1818					;
  1819		177552			PR.DAT=	177552		; READER BUFFER REGISTER
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-51
C11DMC.MAC    10-AUG-79 16:08			TC11 - DECTAPE CONTROLLER

  1821					.SBTTL		TC11 - DECTAPE CONTROLLER
  1822					;
  1823		000214			TC.VEC=	214			; TC11 INTERRUPT VECTOR ADDRESS
  1824					;
  1825		000006			TC.LVL=	6			; TC11 PRIORITY LEVEL
  1826					;
  1827		177340			TC.STS=	177340			; TC11 CONTROL AND STATUS REGISTER
  1828					;
  1829		100000				TC..EZ=	B15		; END ZONE
  1830		040000				TC.PAR=	B14		; PARITY ERROR
  1831		020000				TC.MTE=	B13		; MARK TRACK ERROR
  1832		010000				TC.ILO=	B12		; ILLEGAL OPERATION
  1833		004000				TC..SE=	B11		; SELECTION ERROR
  1834		002000				TC..BM=	B10		; BLOCK MISSED
  1835		001000				TC..DM=	B9		; DATA MISSED
  1836		000400				TC.NXM=	B8		; NON-EX MEM
  1837		000200				TC.UPS=	B7		; TAPE IS UP TO SPEED
  1838		000100				TC.CLK=	B6		; USED TO SIMULATE TIMING TRACK
  1839		000040				TC.MMT=	B5		; MAINT MARK TRACK
  1840		000020				TC.DT0=	B4		; DATA TRACK 0
  1841		000010				TC.DT1=	B3		; DATA TRACK 1
  1842		000004				TC.DT2=	B2		; DATA TRACK 2
  1843		000002				TC.D17=	B1		; EXTENDED DATA 17
  1844		000001				TC.D16=	B0		; EXTENDED DATA 16
  1845					;
  1846		177342			TC.CMD=	177342			; TC11 COMMAND REGISTER
  1847					;
  1848		100000				TC.ERR=	B15		; ERROR
  1849		020000				TC..MM=	B13		; MAINT MODE
  1850		010000				TC..DI=	B12		; DELAY INHIBIT
  1851		004000				TC.REV=	B11		; SET = REVERSE MOTION; CLEAR = FORWARD MOTION
  1852		000000				TC.US0=	0		; SELECT UNIT 0
  1853		000400				TC.US1=	B8		; SELECT UNIT 1
  1854		001000				TC.US2=	B9		; SELECT UNIT 2
  1855		001400				TC.US3=	B9!B8		; SELECT UNIT 3
  1856		002000				TC.US4=	B10		; SELECT UNIT 4
  1857		002400				TC.US5=	B10!B8		; SELECT UNIT 5
  1858		003000				TC.US6=	B10!B9		; SELECT UNIT 6
  1859		003400				TC.US7=	B10!B9!B8	; SELECT UNIT 7
  1860		000200				TC.RDY=	B7		; READY
  1861		000100				TC.INE=	B6		; INTERRUPT ENABLE
  1862		000040				TC.A17=	B5		; EXTENDED MEM BIT BA17
  1863		000020				TC.A16=	B4		; EXTENDED MEM BIT BA16
  1864		000000				TC.SAT=	0		; STOP ALL TAPE MOTION
  1865		000002				TC.RMT=	B1		; FINDS MARK TRACK CODE
  1866		000004				TC..RD=	B2		; READ
  1867		000006				TC.RDA=	B2!B1		; READ ALL
  1868		000010				TC.SST=	B3		; STOP ALL TAPE MOTION IN SEL'D TRANSPORT ONLY
  1869		000012				TC.WTM=	B3!B1		; WRITE TIMING AND MARK TRACK
  1870		000014				TC..WR=	B3!B2		; WRITE
  1871		000016				TC.WRA=	B3!B2!B1	; WRITE ALL
  1872					;
  1873		177344			TC.WCR=	177344			; TC11 WORD COUNT REGISTER
  1874					;
  1875		177346			TC.BAR=	177346			; TC11 BUS ADDRESS REGISTER
  1876					;
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-52
C11DMC.MAC    10-AUG-79 16:08			TC11 - DECTAPE CONTROLLER

  1877		177350			TC.DAT=	177350			; TC11 DATA REGISTER
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-53
C11DMC.MAC    10-AUG-79 16:08			TM11 - MAGNETIC TAPE CONTROLLER

  1879					.SBTTL		TM11 - MAGNETIC TAPE CONTROLLER
  1880					;
  1881		000224			TM.VEC=	224			; TM11 VECTOR ADDRESS
  1882					;
  1883		000005			TM.LVL=	5			; TM11 PRIORITY LEVEL
  1884					;
  1885		172520			TM.STS=	172520			; STATUS REGISTER
  1886					;
  1887		100000				TM..IC=	B15		; ILLEGAL COMMAND
  1888		040000				TM.EOF=	B14		; END OF FILE
  1889		020000				TM.CRE=	B13		; CYCLICAL REDUNDANCY
  1890		010000				TM.PAE=	B12		; PARITY ERROR
  1891		004000				TM.BGL=	B11		; BUS GRANT LATE
  1892		002000				TM.EOT=	B10		; END OF TAPE
  1893		001000				TM.RLE=	B9		; RECORD LENGTH ERROR
  1894		000400				TM.BTE=	B8		; BAD TAPE ERROR
  1895		000200				TM.NXM=	B7		; NON-EXISTENT MEMORY
  1896		000100				TM.SLR=	B6		; SELECT REMOTE
  1897		000040				TM.BOT=	B5		; BEGINNING OF TAPE
  1898		000020				TM.7CH=	B4		; SEVEN CHANNEL
  1899		000010				TM.TSD=	B3		; TAPE SETTLE DOWN
  1900		000004				TM.WRL=	B2		; WRITE LOCK
  1901		000002				TM.RWS=	B1		; REWIND STATUS
  1902		000001				TM.TUR=	B0		; TAPE UNIT READY
  1903					;
  1904		172522			TM.MTC=	172522			; COMMAND REGISTER
  1905					;
  1906		100000				TM.ERR=	B15		; ERROR
  1907		000000				TM.D72=	0		; 200 BPI 7 CHANNEL
  1908		020000				TM.D75=	B13		; 556 BPI 7 CHANNEL
  1909		040000				TM.D78=	B14		; 800 PBI 7 CHANNEL
  1910		060000				TM.D98=	B14!B13		; 800 BPI 9 CHANNEL
  1911		010000				TM..PC=	B12		; POWER CLEAR
  1912		004000				TM..LP=	B11		; LATERAL PARITY
  1913		003400				TM..US=	B10!B9!B8	; UNIT SELECT FIELD
  1914		000000				TM.US0=	0		; SELECT UNIT 0
  1915		000400				TM.US1=	B8		; SELECT UNIT 1
  1916		001000				TM.US2=	B9		; SELECT UNIT 2
  1917		001400				TM.US3=	B8!B9		; SELECT UNIT 3
  1918		002000				TM.US4= B10		; SELECT UNIT 4
  1919		002400				TM.US5=	B10!B8		; SELECT UNIT 5
  1920		003000				TM.US6=	B10!B9		; SELECT UNIT 6
  1921		003400				TM.US7=	B10!B9!B8	; SELECT UNIT 7
  1922		000200				TM.CUR=	B7		; CU READY
  1923		000100				TM.INE=	B6		; INTERRUPT ENABLE
  1924		000040				TM.A17=	B5		; EXTENDED MEM BIT BA17
  1925		000020				TM.A16=	B4		; EXTENDED MEM BIT BA16
  1926		000000				TM.OFL=	0		; OFF-LINE
  1927		000002				TM..RD=	B1		; READ
  1928		000004				TM..WR=	B2		; WRITE
  1929		000006				TM.WEF=	B1!B2		; WRITE EOF
  1930		000010				TM..SF=	B3		; SPACE FORWARD
  1931		000012				TM..SR=	B3!B1		; SPACE REVERSE
  1932		000014				TM.WEG=	B3!B2		; WRITE WITH EXTENDED GAP
  1933		000016				TM.REW=	B3!B2!B1	; REWIND
  1934		000001				TM..GO=	B0		; GO
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-54
C11DMC.MAC    10-AUG-79 16:08			TM11 - MAGNETIC TAPE CONTROLLER

  1935					;
  1936		172524			TM.BCR=	172524			; BYTE COUNT REGISTER
  1937					;
  1938		172526			TM.BAR=	172526			; BYTE ADDRESS REGISTER
  1939					;
  1940		172530			TM.DAT=	172530			; DATA BUFFER
  1941					;
  1942		172532			TM.RDL=	172532			; TU 10 READ LINES
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-55
C11DMC.MAC    10-AUG-79 16:08		END OF DEVICE DEFINITIONS

  1944					.SBTTL	END OF DEVICE DEFINITIONS
  1945					;
  1946					; HERE AGAIN RESIDE THE HIDDEN DEBUGGING AND OTHER SPECIAL MACROS
  1947					;    WHICH ARE HIDDEN IN THE INTEREST OF SAVING ASSEMBLY TIME RESOURCES
  1948					;    AND LARGE AMOUNTS OF PAPER IN LISTING
  2997						.SBTTL MODULE END
  2998						.SBTTL
  2999					;****************************************************************
  3000					;
  3001					;	END OF S - SYMBOL AND MACRO DEFINITION SECTION
  3002					;
  3003					;****************************************************************
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-56
C11DMC.MAC    10-AUG-79 16:08

  3005						.TITLE	TERBOT - TERTIARY NETWORK BOOTSTRAP
  3006						.IDENT	/X02.00/
  3007					 
  3008					;
  3009					; COPYRIGHT (C) 1978 BY
  3010					; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
  3011					;
  3012					;
  3013					; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND  COPIED
  3014					; ONLY  IN  ACCORDANCE  WITH  THE  TERMS  OF  SUCH  LICENSE AND WITH THE
  3015					; INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR  ANY  OTHER
  3016					; COPIES  THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
  3017					; OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF  THE  SOFTWARE  IS  HEREBY
  3018					; TRANSFERRED.
  3019					;
  3020					; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITHOUT  NOTICE
  3021					; AND  SHOULD  NOT  BE  CONSTRUED  AS  A COMMITMENT BY DIGITAL EQUIPMENT
  3022					; CORPORATION.
  3023					;
  3024					; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR  RELIABILITY  OF  ITS
  3025					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
  3026					;
  3027					;
  3028					; MODULE DESCRIPTION:
  3029					;
  3030					;	TERTIARY BOOT PART I
  3031					;
  3032					;
  3033					;
  3034					; DISTRIBUTED SYSTEMS SOFTWARE ENGINEERING
  3035					;
  3036					; IDENT HISTORY:
  3037					;
  3038					; 1.00	10-FEB-78
  3039					;	VERSION 2.0 RELEASE
  3040					; 2.00	16-OCT-78
  3041					;	MODIFICATION FOR DN20/DN200 USE WITH CHECK11
  3042					;
  3043					  
  3044					;	THE BOOTSTRAP MESSAGES ARE OF THE FORM:
  3045					;
  3046					;	SYN,DLE,COUNT,F,S,FILL,FILL,ADDR,CRC1,DATA,CRC2
  3047					;
  3048					;	ALL ITEMS ARE 8-BIT QUANTITIES UNLESS OTHERWISE SPECIFIED
  3049					;
  3050					;	SYN-THE SYNC CHARACTER-OCTAL 226 OR 377 (ASYNCHRONOUS)
  3051					;	DLE-THE ASCII DLE CHARACTER-OCTAL 220
  3052					;	COUNT-THE 14-BIT COUNT FIELD-LENGTH OF DATA FIELD
  3053					;	F-THE FINAL BIT-LINK CONTROL
  3054					;	S-THE SELECT BIT-LINK CONTROL
  3055					;	FILL-A FILL CHARACTER-OCTAL 000
  3056					;	ADDR-THE ADDRESS OF STATION BEING BOOTED-FOR PT. TO PT. = 1
  3057					;	CRC1-THE 16-BIT CRC-16 COMPUTED ON DLE THROUGH ADDR
  3058					;	DATA-THE BOOT DATA AS FOLLOWS:
  3059					;		FOR BLOCKS WITHOUT CODE=XFER ADDRESS BLOCK:
  3060					;		COUNT .GT. 6
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-57
C11DMC.MAC    10-AUG-79 16:08

  3061					;		CODE,BLKNO.,BLOCK LOAD ADDR,CORE IMAGE DATA
  3062					;		FOR BLOCK WITH CODE=XFER ADDRESS BLOCK
  3063					;		COUNT .EQ. 6
  3064					;		CODE,BLKNO.,PROGRAM TRANSFER ADDRESS
  3065					;		ADDRESSES ARE 4 BYTES-32 BITS-LOW BIT FIRST
  3066					;		CODE - 2==>BOOT IMAGE DATA
  3067					;			0==>XFER ADDRESS
  3068					;		BLKNO. - BLOCK NO. STARTING AT 0
  3069					;	CRC2-THE 16-BIT CRC-16 COMPUTED ON THE DATA FIELD ONLY
  3070					;
  3071					;
  3072					;	***** NOTE *****
  3073					;
  3074					; IF A KT-11 MEMORY MANAGEMENT UNIT EXISTS ON THE TARGET COMPUTER,
  3075					; IT WILL BE ENABLED WHEN THE PROGRAM IS STARTED ON THE TARGET MACHINE
  3076					;
  3077					;
  3078					;	***** NOTE *****
  3079					;
  3080					; THIS VERSION OF THE TERTIARY LOADER RELOCATES THE LOADER TO HIGH CORE
  3081					; AND THEN INVOKES CHECK11, WHICH IS LOCATED IN LOW CORE BEYOND THE LOADER
  3082					; AND ITS DRIVER.  CHECK11 IS PASSED THE STARTING ADDRESS OF THE RELOCATED
  3083					; LOADER IN R0, AND RETURNS TO THE LOADER WHEN IT HAS FINISHED ITS
  3084					; DIAGNOSTICS.
  3085					;
  3086					;	***** NOTE *****
  3087					;
  3088					;
  3089					; THE LOADER AND DRIVER CODE IS POSITION-INDEPENDENT.  CHECK11 CODE IS NOT.
  3090					;
  3091					;-
  3092					;
  3093					; LOCAL SYMBOL DEFINITIONS
  3094					;
  3095					;
  3096		172340			KISAR0=172340
  3097		172300			KISDR0=172300
  3098		172344			KISAR2=172344			;NOT DEFINED IN EXELIB
  3099		172304			KISDR2=172304			;NOT DEFINED IN EXELIB
  3100		172352			KISAR5=172352
  3101		172312			KISDR5=172312
  3102		172314			KISDR6=172314			;DITTO
  3103		172354			KISAR6=172354			;DITTO AGAIN
  3104		172356			KISAR7=172356
  3105		177572			SR0=177572
  3106
  3107		000406			BUFSIZ=262.			;BUFFER SIZE (MOP HEADER & LOAD DATA)
  3108					;
  3109					;	START OF BOOT PROGRAM
  3110					;
  3111					;
  3112					;	SET $DEVTP TO DEVICE TYPE AND $UNIT TO UNIT NUMBER
  3113					;	GET TYPE FROM DLLDRV AND UNIT NUMBER BY LOOKING
  3114					;	IN DEVICE SPACE
  3115					;
  3116	000000'	010702			START:	MOV	PC,R2		;CURRENT PC
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-58
C11DMC.MAC    10-AUG-79 16:08

  3117	000002'	062702	000116			ADD	#DEVNAM-.,R2	;DEVNAM TABLE ADDR
  3118	000006'	062702	000000G			ADD	#DEVTYP,R2	;INDEXED BY DEVICE TYPE
  3119	000012'	011237	016722'			MOV	(R2),$DEVTP	;STORE DEVICE TYPE IN ASCII
  3120	000016'	016204	000044			MOV	CSRTAB-DEVNAM(R2),R4 ;GET CSR ADDRESS
  3121	000022'	016203	000022			MOV	FLTTAB-DEVNAM(R2),R3 ;GET FLOAT TABLE VALUE
  3122	000026'	001421				BEQ	SETUNT		;IF EQ, NOT A FLOATING DEVICE
  3123	000030'	012737	000340	000006		MOV	#340,@#6	;SET NEW TRAP PS
  3124	000036'	010702				MOV	PC,R2		;CURRENT PC
  3125	000040'	062702	000160			ADD	#NODEV-.,R2	;NODEV ADDR
  3126	000044'	010237	000004			MOV	R2,@#4		;TRAP ROUTINE ADDR
  3127	000050'	062702	177766			ADD	#DEVTAB-NODEV,R2 ;MODULO TABLE ADDR
  3128	000054'	005714			FLOAT:	TST	(R4)		;LOOK FOR DEVICE
  3129	000056'	111205				MOVB	(R2),R5		;UP TO NEXT MODULO
  3130	000060'	060504				ADD	R5,R4		;
  3131	000062'	005204				INC	R4		;
  3132	000064'	040504				BIC	R5,R4		;
  3133	000066'	005703				TST	R3		;CHECK FOR END OF SEARCH
  3134	000070'	001371				BNE	FLOAT		;AGAIN
  3135	000072'	160104			SETUNT:	SUB	R1,R4		;DISPLACEMENT FROM UNIT 0
  3136	000074'	005727	000000G			TST	#DEVTYP		;IS IT A DP-11
  3137	000100'	001401				BEQ	1$		;NO
  3138	000102'	005404				NEG	R4		;CHANGE DISPLACEMENT
  3139	000104'	006204			1$:	ASR	R4		;DIVIDE BY 8.
  3140	000106'	006204				ASR	R4		;
  3141	000110'	006204				ASR	R4		;
  3142	000112'	110437	016724'			MOVB	R4,$UNIT	;SAVE UNIT NUMBER
  3143	000116'	000442				BR	SETREG		;TO RELOCATE ROUTINE
  3144					;
  3145					;
  3146					;	DEVICE NAME TABLE
  3147					;
  3148	000120'	050130			DEVNAM:	.ASCII	'XP'
  3149	000122'	052530				.ASCII	'XU'
  3150	000124'	046130				.ASCII	'XL'
  3151	000126'	050530				.ASCII	'XQ'
  3152	000130'	041130				.ASCII	'XB'
  3153	000132'	053530				.ASCII	'XW'
  3154	000134'	046530				.ASCII	'XM'
  3155	000136'	030530				.ASCII	'X1'
  3156	000140'	046130				.ASCII	'XL'
  3157					;
  3158					;	FLOATING NUMBER TABLE
  3159					;
  3160	000142'	000000			FLTTAB:	.WORD	0
  3161	000144'	000003				.WORD	3
  3162	000146'	000000				.WORD	0
  3163	000150'	000002				.WORD	2
  3164	000152'	000000				.WORD	0
  3165	000154'	000004				.WORD	4
  3166	000156'	000006				.WORD	6
  3167	000160'	000000				.WORD	0
  3168	000162'	000000				.WORD	0
  3169					;
  3170					;	CSR ADDRESS TABLE
  3171					;
  3172	000164'	174770			CSRTAB:	.WORD	174770
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-59
C11DMC.MAC    10-AUG-79 16:08

  3173	000166'	160010				.WORD	160010
  3174	000170'	175610				.WORD	175610
  3175	000172'	160010				.WORD	160010
  3176	000174'	172414				.WORD	172414
  3177	000176'	160010				.WORD	160010
  3178	000200'	160010				.WORD	160010
  3179	000202'	176500				.WORD	176500
  3180	000204'	175610				.WORD	175610
  3181					;
  3182					;	FLOATING DEVICE MODULO TABLE
  3183					;
  3184	000206'	   007			DEVTAB:	.BYTE	7	;DJ
  3185	000207'	   017				.BYTE	17	;DH
  3186	000210'	   007				.BYTE	7	;DQ
  3187	000211'	   007				.BYTE	7	;DU
  3188	000212'	   007				.BYTE	7	;DUP
  3189	000213'	   007				.BYTE	7	;LK11
  3190	000214'	   007				.BYTE	7	;DMC
  3191	000215'	   007				.BYTE	7	;DLV
  3192	000216'	   000				.BYTE	0	;FILLER
  3193
  3194		000220'			.EVEN
  3195					;
  3196					;	FLOAT DEVICE TRAP ROUTINE
  3197					;
  3198	000220'	122243			NODEV:	CMPB	(R2)+,-(R3)
  3199	000222'	000002				RTI
  3200
  3201					;
  3202					; INPUTS:
  3203					;		R1 CONTAINS THE CSR ADDRESS OF THE LINK DEVICE
  3204					;
  3205					;
  3206					; OUTPUTS:	R1 CONTAINS CSR ADDRESS OF LINK DEVICE
  3207					;		R2 CONTAINS THE ASCII NAME OF THE LINK DEVICE TYPE
  3208					;-
  3209					;
  3210	000224'	010700			SETREG:	MOV	PC,R0		;SET UP TO FIND TOP OF MEMORY
  3211	000226'	062700	000024			ADD	#20$-.,R0	;
  3212	000232'	010037	000004			MOV	R0,@#4		;SET TRAP ADDRESS
  3213	000236'	012737	000340	000006		MOV	#340,@#6	;PS
  3214	000244'	005006				CLR	SP		;RESET
  3215	000246'	022616			10$:	CMP	(SP)+,(SP)	;FIND TOP
  3216	000250'	000776				BR	10$		;LOOP UNTIL TRAP
  3217	000252'				20$:
  3218	000252'	022626				CMP	(SP)+,(SP)+	;SET TO TOP OF CORE
  3219
  3220					;
  3221					; LOOK FOR MEMORY MANAGEMENT
  3222					;
  3223	000254'	010700				MOV	PC,R0		;SET UP MEMORY TRAP
  3224	000256'	062700	000112			ADD	#70$-.,R0	;
  3225	000262'	010037	000004			MOV	R0,@#4		;TRAP PC
  3226	000266'	005000				CLR	R0		;SET UP PAR'S TO 4K BOUNDARIES...
  3227	000270'	012704	172300			MOV	#KISDR0,R4	;...AND ALL PDR'S FOR 4K R/W
  3228	000274'	012703	000010			MOV	#8.,R3		;THERE ARE 8 APR'S
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-60
C11DMC.MAC    10-AUG-79 16:08

  3229	000300'	010064	000040		30$:	MOV	R0,KISAR0-KISDR0(R4) ;SET UP NEXT 4K LOW BOUNDARY
  3230	000304'	012724	077406			MOV	#77406,(R4)+	;SET UP ASSOCIATED PDR
  3231	000310'	062700	000200			ADD	#200,R0		;SET FOR NEXT 4K
  3232	000314'	005303				DEC	R3		;MORE?
  3233	000316'	001370				BNE	30$		;IF NE YES
  3234					;
  3235					; NOTE THAT SETTING PAR6 AND PAR7 HERE IS SUPERFLUOUS
  3236					;
  3237					;
  3238					; IF WE GET TO THIS CODE, WE USE THE MEMORY MANAGEMENT UNIT
  3239					;
  3240					;
  3241	000320'	105237	016726'			INCB	KT11		;YES, VIRGINIA, THERE REALLY IS A KT-11
  3242	000324'	012737	007600	172356		MOV	#7600,@#KISAR7	;POINT TO THE EXTERNAL PAGE
  3243	000332'	005237	177572			INC	@#SR0		;ENABLE MEMORY MANAGEMENT
  3244	000336'	012700	000140			MOV	#140,R0		;START LOOKING HERE
  3245	000342'	012706	144000			MOV	#144000,SP	;THIS WILL BE 1ST NON-EXISTENT LOC
  3246	000346'	010037	172354		50$:	MOV	R0,@#KISAR6	;SET UP REGISTER
  3247	000352'	020027	007540			CMP	R0,#7540	;AT ABSOLUTE END?
  3248	000356'	103005				BHIS	90$		;IF HIS YES
  3249	000360'	005716				TST	(SP)		;DOES THE MEMORY EXIST?
  3250	000362'	062700	000200			ADD	#200,R0		;IF WE GET HERE, YES
  3251	000366'	000767				BR	50$		;TRY ANOTHER 4K
  3252	000370'	022626			70$:	CMP	(SP)+,(SP)+	;NO MEMORY MANAGEMENT TODAY, THANKS
  3253	000372'	010703			90$:	MOV	PC,R3		;COMPUTE ADDRESS OF MOVE START
  3254	000374'	162703	000374'			SUB	#.,R3		;  (INCLUDES
  3255	000400'	062703	000000G			ADD	#ENDDRV,R3	;  THE DRIVER)
  3256	000404'	012702	000000G			MOV	#ENDDRV,R2	;SET NUMBER
  3257	000410'	162702	016032'			SUB	#BT3STR,R2	;  OF WORDS
  3258	000414'	006202				ASR	R2		;  TO RELOCATE
  3259	000416'	014346			100$:	MOV	-(R3),-(SP)	;MOVE A WORD
  3260	000420'	005302				DEC	R2		;MORE TO MOVE?
  3261	000422'	001375				BNE	100$		;IF NE YES
  3262	000424'	005046				CLR	-(SP)		;
  3263	000426'	010616				MOV	SP,(SP)		;CALCULATE
  3264	000430'	162716	000504			SUB	#BUFSIZ+64.-2,(SP) ;  START OF BUFFER & UNUSED STACK
  3265	000434'	011646				MOV	(SP),-(SP)	;SPECIFY MEMORY LOAD LIMIT
  3266					;  ***NOTE***  SP NOW POINTS TO RELOCATED CODE MINUS 4
  3267	000436'	005000				CLR	R0		;START WITH LOAD 0
  3268	000440'	012705	000004G			MOV	#INIDRV+4,R5	;START
  3269	000444'	162705	016032'			SUB	#BT3STR,R5	;  UP
  3270	000450'	060605				ADD	SP,R5		;  THE
  3271	000452'	004715				JSR	PC,(R5)		;  DEVICE
  3272	000454'	010600				MOV	SP,R0		;SAVE BOOT ADDRESS
  3273	000456'	062700	000004			ADD	#4,R0		;SKIP PAST THE CONTENTS OF THE STACK
  3274	000462'	000137	001230'			JMP	CHK.11		;INVOKE CHECK11 (WILL GO ON TO BOOT)
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 1-61
C11DMC.MAC    10-AUG-79 16:08

  3276					;
  3277					; COPYRIGHT (C) 1977,1978 DIGITAL EQUIPMENT CORPORATION, MAYNARD, MA 01754
  3278					;
  3279					;
  3280					;	MODULE:	CHECK11
  3281					;
  3282					;	DATE:	21-NOV-78
  3283					;
  3284					;	AUTHOR:	TOM PORCHER
  3285					;		TOM POWERS
  3286					;		LEE WEBBER
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 2
C11DMC.MAC    10-AUG-79 16:08

  3288
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 3
C11DMC.MAC    10-AUG-79 16:08

  3290
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 4
C11DMC.MAC    10-AUG-79 16:08

  3292
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 5
C11DMC.MAC    10-AUG-79 16:08

  3294
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 6
C11DMC.MAC    10-AUG-79 16:08

  3296
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 7
C11DMC.MAC    10-AUG-79 16:08

  3298
  3299					.TITLE CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC
  3300					.SBTTL CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC
  3301					;  22 SEP 1977 DMCC/EGF/JBS/LAD/EJW/TEP
  3302					;
  3303					;
  3304					;
  3305					; THIS CODE IS EXECUTED ONCE AND THEN OVERLAID
  3306					;
  3307					;
  3308					;
  3309					;
  3310					; THE CALL TO CHK11 IS AS FOLLOWS:
  3311					;	JSR	PC,CHK.11
  3312					;	.WORD	PTR	;POINTER TO ASCIZ NAME STRING AND EDIT POINTERS
  3313					;	RETURNS TO CALLER FOLLOWING POINTER WORD
  3314					;
  3315					;	CHK11 WILL DETERMINE WHAT HARDWARE IS PRESENT
  3316					;	  AND WILL PERFORM A FEW SIMPLE DIAGNOSTIC TESTS OF THE HDW
  3317					;
  3318					;	FOR DEV = < DH11, DM11BB, DP11, DQ11, DS11, DU11>
  3319					;	CHK11 WILL:	JSR PC,CKA'DEV
  3320					;			WITH (R3) = DEVICE VECTOR
  3321					;			AND (R4) = DEVICE ADR
  3322					;			AND (R1) = DEVICE ADR
  3323					;	ONCE FOR EACH DEVICE AND A FINAL:
  3324					;			JSR	PC,CKA'DEV WITH (R4)=0
  3325					;
  3326					; ALL SYMBOLS BEGINING CHK OR CK ARE RESERVED FOR CHK11
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 7-1
C11DMC.MAC    10-AUG-79 16:08		CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC

  3328						.ENABL	AMA
  3329					; VERSION INFORMATION
  3330					;
  3331	000466'	005015	006012	044103	CKNAME:	.ASCIZ	<15><12><12><14>"CHK11 HARDWARE TEST"
	000474'	030513	020061	040510
	000502'	042122	040527	042522
	000510'	052040	051505	000124
  3332						.EVEN
  3333	000516'	000002	000101	000025		.WORD	CKVMAJ,CKVMIN,CKVEDI
  3334	000524'	000530'	000542'			.WORD	CKVWHN,CKVWHO
  3335					;
  3336		000002			CKVMAJ	= 2	;MAJOR VERSION NUMBER
  3337		000101			CKVMIN	= 'A	;MINOR VERSION LETTER (AS 'A)
  3338		000025			CKVEDI	= 21.	;EDIT NUMBER
  3339		000001				ED.HIS	= 1		;TYPE OUT DETAILS
  3340	000530'	030061	040455	043525	CKVWHN:	.ASCIZ	"10-AUG-79"	;LAST EDIT DATE
	000536'	033455	000071
  3341						.EVEN
  3342	000542'	042114	000127		CKVWHO:	.ASCIZ	"LDW"		;LAST EDITOR
  3343						.EVEN
  3344					;
  3345					;
  3346					;
  3347					;BE SURE ALL THE REGS ARE DEFINED PROPERLY
  3348					;
  3349		000000				R0=%0
  3350		000001				R1=%1
  3351		000002				R2=%2
  3352		000003				R3=%3
  3353		000004				R4=%4
  3354		000005				R5=%5
  3355		000006				R6=%6
  3356		000006				SP=%6
  3357		000007				R7=%7
  3358		000007				PC=%7
  3359					;
  3360					.IIF NDF FTKG11,FTKG11=	1	;0 IF KG11 MUST BE PRESENT
  3361					;
  3362					;OTHER DEFAULTS
  3363						.IIF NDF FLOATV FLOATV=	300	;FIRST FLOATING VECTOR
  3364						.IIF NDF FLOATD FLOATD=	160000	;FLOATING DEVICES BEGIN HERE
  3365					;
  3366					.IIF NDF DL10AD,DL10AD=.
  3367	000546'	000001				.BLKW	1		;PUT DL10 ADR HERE IF NOWHERE ELSE
  3368					;
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 7-2
C11DMC.MAC    10-AUG-79 16:08		CHK11 MACROS

  3370					.SBTTL	CHK11 MACROS
  3371					.SBTTL		CK11SC
  3372					;
  3373					;THIS MACRO IS USED FOR TYPING TEXT AND ERROR REPORTING.
  3374					;
  3375					;	ARG	BITS	;WHAT TO DO ON A TRAP
  3376		000001					CKEFAT=	B0	;FATAL ERROR - HALT
  3377		000002					CKEPC=	B1	;PRINT ADDRESS OF ERROR TRAP
  3378		000004					CKEMSG=	B2	;PRINT THE MESSAGE FOLLOWING CK11SC
  3379		000010					CKEDID=	B3	;PRINT DEVICE ID AND REG
  3380		000020					CKEMSE=	B4	;PRINT THE MESSAGE POINTED TO BY
  3381									; THE ADDRESS FOLLOWING THE TRAP.
  3382		000040					CKENCL=	B5	;PRINT TEXT WITH OUT CR+LF
  3383		000100					CKEGB=	B6	;PRINT ADR/REG=XXXXX GD=XXXXX  BD=XXXXX XOR=XXXXX
  3384					;
  3385					;	ARG	MSG	;TEXT TO BE OUTPUT
  3386					;
  3387					;	ARG	COMENT	;ADD A COMMENT TO THE TRAP INSTRUCTION
  3388					;
  3389					;	ARG	STOPCD	;ON A FATAL ERROR VALUE TO BE PUT IN R0
  3390					;
  3391					.MACRO	CK11SC	BITS,MSG,COMENT,STOPCD
  3392					.IIF NB,STOPCD,	MOV	#STOPCD,CKSPCD	;VALUE TO DISPLAY ON FATAL ERROR
  3393						    .IF B <MSG>
  3394						TRAP	BITS		;COMENT
  3395						    .IFF ;B <MSG.>
  3396						    .IF	EQ,<BITS&CKEMSE>
  3397						TRAP	BITS!CKEMSG		;COMENT
  3398					;;;;	ASCIZ	<MSG>			;MESSAGE TEXT FOLLOWS TRAP
  3399						    .IFF
  3400						TRAP	BITS&<^CCKEMSG>		;COMENT
  3401						.WORD	MSG			;ADR OF MESSAGE FOLLOWS TRAP
  3402						    .ENDC ;EQ <BITS..>
  3403						    .ENDC ;B <MSG.>
  3404					.ENDM	CK11SC
  3405					;
  3406					;
  3407					;THIS MACRO IS USED FOR SAVING GOOD, BAD, AND ADR ON THE STACK
  3408					;PRIOR TO INVOKING CK11SC
  3409					;
  3410					;	ARG	GD		;GOOD DATA
  3411					;	ARG	BD		;BAD DATA
  3412					;	ARG	ADR		;ADDRESS WHERE IT HAPPENED
  3413					;
  3414					.MACRO	CKSERR	GD,BD,ADR
  3415						MOV	GD,-(SP)			;SAVE GOOD (GD) ON STACK
  3416						MOV	BD,-(SP)			;SAVE BAD (BD) ON STACK
  3417						MOV	ADR,-(SP)		;SAVE ADDRESS (ADR) ON STACK
  3418					.ENDM	CKSERR
  3419					;
  3420					.MACRO	ABORT
  3421						CK11SC	CKEFAT
  3422					.ENDM	ABORT
  3423					;
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 7-3
C11DMC.MAC    10-AUG-79 16:08			$CKINT

  3425					.SBTTL		$CKINT
  3426					;
  3427					;THIS MACRO IS USED TO CHECK INTERRUPT CONDITIONS
  3428					;
  3429					;	ARG	ENBADR		;DEVICE ADR TO ENABLE INTERRUPTS
  3430					;
  3431					;	ARG	INTADR		;DEVICE ADR TO GENERATE AN INTERRUPT
  3432					;
  3433					;	ARG	ENLBIT		;BIT TO ENABLE INTERRUPTS
  3434					;
  3435					;	ARG	INTBIT		;BITS TO CHECK INTERRUPT CONDITIONS
  3436					;
  3437					;	ARG	BITCLR		;BITS TO CLEAR INTERRUPT CONDITIONS
  3438					;				;IF CLEARING INTERRUPT BITS WON'T CLEAR
  3439					;				;THEM.  [EXAMPLE - DL10]
  3440					;
  3441					.MACRO	$CKINT	ENBADR,INTADR,ENLBIT,INTBIT,BITCLR
  3442					.IIF	NB,ENBADR,	MOV	ENBADR,R1			;LOAD ENABLE ADR
  3443					.IIF	NB,INTADR,	MOV	INTADR,R2			;LOAD INTERRUPT ADR
  3444						JSR	R5,CKINT	;GO CHECK INTERRUPTS
  3445						    .IIF NDF I.$$$$,I.XXXX = .
  3446						    .IIF NDF I.$$$$,I.ENAB = . - I.XXXX
  3447						.WORD	ENLBIT		;ENABLE BITS -  ENLBIT
  3448						    .IIF NDF I.$$$$,I.INTS = . - I.XXXX
  3449						.WORD	INTBIT		;INTERRUPT BITS -  INTBIT
  3450						    .IIF NDF I.$$$$,I.INTC = . - I.XXXX
  3451						.WORD	BITCLR+0	;BITS TO CLEAR DEVICE - ARG MAY BE BLANK
  3452						    .IIF NDF I.$$$$,I.RTRN = . - I.XXXX
  3453						    .IIF NDF I.$$$$,I.$$$$ = 0
  3454					.ENDM
  3455					;
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 7-4
C11DMC.MAC    10-AUG-79 16:08			DEVICE

  3457					.SBTTL		DEVICE
  3458					;
  3459					;THIS MACRO IS USED TO TO CALL THE ROUTINE TO CHECK A DEVICE
  3460					;AND ASSIGN THE FLOATING ADDRESS AND VECTORS IF THE DEVICE
  3461					;IS THE TYPE THAT REQUIRES IT.
  3462					;
  3463					;	ARG	A	;DEVICE ADDRESS OR 0 IF FLOATING DEVICE
  3464					;	ARG	MAXN	;MAXIMUM NUMBER OF DEVICES
  3465					;	ARG	VI	;VECTOR INCREMENT
  3466					;	ARG	HI	;HARDWARE INCREMENT
  3467					;	ARG	VM	;VECTOR MULTIPLE
  3468					;	ARG	NAM	;DEVICE NAME ABBREVIATION
  3469					;	ARG	FV	;FIRST VECTOR ADR (FIXED DEV ONLY)
  3470					;
  3471					.MACRO	DEVICE	A,MAXN,VI,HI,VM,NAM,FV
  3472						    .IF DF X'NAM'11
  3473						X'NAM'$$=X'NAM'11	;IF A LOCAL DIAGNOSTIC IS DEFINED, USE IT
  3474						    .IFF
  3475						X'NAM'$$=X.....		;ELSE USE NULL DIAGNOSTIC
  3476						    .ENDC ;DF X'NAM'11
  3477									;
  3478									;
  3479						    .IF DF CKA'NAM'11
  3480						CKA'NAM'$$=CKA'NAM'11	;IF PROGRAM ENTRY DEFINED, USE IT
  3481						    .IFF
  3482						CKA'NAM'$$=CKPOPJ	;ELSE USE NULL SUBROUTINE
  3483						    .ENDC ;DF CKA'NAM'11
  3484									;
  3485									;
  3486						    .IF DF CKV'NAM'11
  3487						CV'NAM'$$=CKV'NAM'11	;IF REAL VECTOR DEFINED, USE IT
  3488						    .IFF
  3489						CV'NAM'$$=0		;ELSE IGNORE EVERYTHING
  3490						    .ENDC ;DF CKV'NAM'11
  3491									;
  3492									;
  3493						.IIF NDF,NAM'.LVL,NAM'.LVL=0	;USE LEVEL NAME IF IT EXISTS
  3494										;
  3495						JSR	R5,CHKDEV		;CALL DEVICE ANALYZER
  3496						    .IIF NDF D.$$$$,D.XXXX=.	;FIRST TIME THROUGH (ONLY)
  3497										; THE OFFSETS ARE DEFINED
  3498						    .IIF NDF D.$$$$,D.BADR=.-D.XXXX
  3499						.WORD	A		;1ST NAM'11 ADR IS A
  3500						    .IIF NDF D.$$$$,D.MAXL=.-D.XXXX
  3501						.BYTE	<MAXN>		;MAXIMUM NUMBER OF NAM'11 IS MAXN,
  3502						    .IIF NDF D.$$$$,D.VINC=.-D.XXXX
  3503						.BYTE	<VI>		;VECTOR INCREMENT IS VI
  3504						    .IIF NDF D.$$$$,D.HINC=.-D.XXXX
  3505						.BYTE	<HI>		;HARDWARE INCREMENT IS HI,
  3506						    .IIF NDF D.$$$$,D.VMUL=.-D.XXXX
  3507						.BYTE	<VM>		;1ST VECTOR MULTIPLE IS VM
  3508						    .IIF NDF D.$$$$,D.CNTP=.-D.XXXX
  3509						.WORD	0		;WILL BECOME NUMBER OF DEVICES
  3510						    .IIF NDF D.$$$$,D.NAMP=.-D.XXXX
  3511						.WORD	N.'NAM'11		;ADDRESS OF ASCIZ NAME STRING
  3512						    .IIF NDF D.$$$$,D.DIAG=.-D.XXXX
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 7-5
C11DMC.MAC    10-AUG-79 16:08			DEVICE

  3513						.WORD	X'NAM'$$		;ADDRESS OF ROUTINE TO CHECK DEVICE
  3514						    .IIF NDF D.$$$$,D.MAIN=.-D.XXXX
  3515						.WORD	CKA'NAM'$$		;CALL FOR MAIN PROGRAM (CKA'NAM'11)
  3516						    .IIF NDF D.$$$$,D.MPVC=.-D.XXXX
  3517						.WORD	CV'NAM'$$		;POINTS TO VECTOR SETUP TABLE
  3518						    .IIF NDF D.$$$$,D.CNTF=.-D.XXXX
  3519						.WORD	0		;WILL CONTAIN NUMBER OF NAM'11 FOUND
  3520						    .IIF NDF D.$$$$,D.FRSV=.-D.XXXX
  3521						.WORD	0		;WILL CONTAIN FIRST NAM'11 VECTOR ADR
  3522						    .IIF NDF D.$$$$,D.PRIO=.-D.XXXX
  3523						.WORD	NAM'.LVL*40	;CONTAINS NAM'11 PI LEVEL
  3524						    .IIF NDF D.$$$$,D.FVFD=.-D.XXXX
  3525						.WORD	FV		;DEVICE FIRST VECTOR (FIXED DEV ONLY)
  3526						    .IIF NDF D.$$$$,D.NEXT=.-D.XXXX
  3527						    .IIF NDF D.$$$$,D.$$$$=0	;DEFINE DEFINITION STOPPER
  3528					.ENDM	DEVICE
  3529					;
  3530					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 8
C11DMC.MAC    10-AUG-79 16:08			DEVICE

  3532
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 9
C11DMC.MAC    10-AUG-79 16:08			DEVICE

  3534
  3535					.SBTTL		CHKCHR
  3536					;
  3537					;THIS MACRO IS USED FOR SETTING CHARACTERISTICS TABLE
  3538					;
  3539					;	ARG	DA		;DEVICE ADDRESS TO PUT IN CHARACTERISTICS TABLE
  3540					;
  3541					;	ARG	DV		;DEVICE VECTOR ADDRESS TO PUT IN TABLE
  3542					;
  3543					;	ARG	PI		;DEVICE PI LEVEL TO PUT IN TABLE
  3544					;
  3545					.MACRO	CHKCHR	DA,DV,PI
  3546					.IIF NB,<DA>,	MOV	DA,CHKCHR+CKDA	;PUT DA IN DEVICE ADR SLOT
  3547					.IIF NB,<DV>,	MOV	DV,CHKCHR+CKDV	;PUT DV IN DEVICE VEC SLOT
  3548					.IIF NB,<PI>,	MOV	PI,CHKCHR+CKPI	;PUT PI IN DEVICE INT LVL SLOT
  3549					.ENDM	CHKCHR
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 9-1
C11DMC.MAC    10-AUG-79 16:08			CKVECT, CKVEC1

  3551					.SBTTL		CKVECT, CKVEC1
  3552					;
  3553					;"CKVECT" INVOKES "CKVEC1" TO BUILD A TABLE
  3554					;FOR EACH DEVICE.  THE INFORMATION IN THE TABLE IS OF THE FOLLOWING FORM:
  3555					;
  3556					;	CKV'NAM'11:
  3557					;		.BYTE	NUMBER OF MAIN ROUTINES
  3558					;		.BYTE	NUMBER OF VECTORS PER DEV
  3559					;		.WORD	NAM'VA'NUM
  3560					;
  3561					;	EXAMPLE:
  3562					;
  3563					;	1.	MAIN PROGRAM HAS 1 DQ11
  3564					;		THE MAIN PROGRAM MUST GIVE DQ #0 VECTOR A THE TAG:  DQVA0
  3565					;					   DQ #0 VECTOR B THE TAG:  DQVB0
  3566					;	THE RESULTING TABLE WILL BE:
  3567					;
  3568					;	CKVDQ11:.BYTE	1,2
  3569					;		DQAV0
  3570					;		DQBV0
  3571					;
  3572					;	2.	MAIN PROGRAM HAS 2 DQ11'S
  3573					;		THE MAIN PROGRAM MUST GIVE DQ #0 VECTOR A THE TAG:  DQVA0
  3574					;					   DQ #0 VECTOR B THE TAG:  DQVB0
  3575					;					   DQ #1 VECTOR A THE TAG:  DQVA1
  3576					;					   DQ #1 VECTOR B THE TAG:  DQVB1
  3577					;
  3578					;	THE RESULTING TABLE WILL BE:
  3579					;
  3580					;	CKVDQ11:.BYTE	2,2
  3581					;		DQVA0
  3582					;		DQVB0
  3583					;		DQVA1
  3584					;		DQVB1
  3585					;
  3586					;
  3587					;	ARG	NAM		;NAME (2 CHARACTERS)
  3588					;	ARG	NUMV		;NUMBER OF VECTORS PER DEVICE
  3589					;	ARG	MAXN		;MAXIMUM NUMBER OF DEVICES OF A TYPE
  3590					;
  3591					.MACRO	CKVECT	NAM,NUMV,MAXN
  3592					CKZQZQ=0
  3593					CV'NAM'11:.BYTE	NAM'QQQ,NUMV			;NUM OF VEC FOR EACH NAM'11 IS NUMV
  3594					NAM'QQQ=0				;DEFINE AND SET TO 0
  3595						.REPT	MAXN
  3596						CKVEC1	NAM,NUMV,\CKZQZQ
  3597						CKZQZQ=CKZQZQ+1
  3598						.ENDR
  3599					.ENDM	CKVECT
  3600					;
  3601					;
  3602					;
  3603					;
  3604					.MACRO	CKVEC1	NAM,NUMV,NUM
  3605						    .IF DF,NAM'VA'NUM
  3606						NAM'QQQ=NAM'QQQ+1		;COUNT NUMBER IN MAIN
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 9-2
C11DMC.MAC    10-AUG-79 16:08			CKVECT, CKVEC1

  3607					.IIF GE,<NUMV-1>,	.WORD	NAM'VA'NUM		;VECTOR A FOR DEV NAM'11
  3608					.IIF GE,<NUMV-2>,	.WORD	NAM'VB'NUM		;VECTOR B FOR DEV NAM'11
  3609					.IIF GE,<NUMV-3>,	.WORD	NAM'VC'NUM		;VECTOR C FOR DEV NAM'11
  3610					.IIF GE,<NUMV-4>,	.WORD	NAM'VD'NUM		;VECTOR D FOR DEV NAM'11
  3611						    .ENDC
  3612					.ENDM	CKVEC1
  3613					;
  3614					.MACRO	LDVECT	DEV
  3615						    .IF DF DEV'INT
  3616						MOV	#DEV'INT,DEV'VEC		;SET DEV TO GO TO DEV'VEC
  3617						MOV	#DEV'LVL*40,DEV'VEC+2		; AND SET THE LEVEL.
  3618						    .IFF
  3619						MOV	0,@#0			;LEAVE ROOM FOR ENTRY TO BE PATCHED
  3620						MOV	2,@#2			;
  3621						    .ENDC
  3622					.ENDM	LDVECT
  3623					 
  3624					;
  3625					;  LIMIT FOR INTERRUPT VECTORS WHICH CHECK11 WILL MONITOR
  3626					;
  3627					 
  3628		000400			$$HERE	= <CKNAME-START>&177700	;ABSOLUTE ADDRESS OF TOP OF CHK11
  3629		   001				.IF LT,<1000-$$HERE>
  3630					VCTLIM:	.WORD	$$HERE
  3631						.IFF
  3632	000550'	001000			VCTLIM:	.WORD	1000
  3633		   000				.ENDC
  3634					;
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 9-3
C11DMC.MAC    10-AUG-79 16:08		CHK11 DEVICE NAME TABLE

  3636					.SBTTL	CHK11 DEVICE NAME TABLE
  3637					;
  3638					.MACRO	NAMSTR	DEV,ABBR
  3639					N.'ABBR'11:
  3640							.ASCIZ	"DEV"
  3641					.ENDM	NAMSTR
  3642					;
  3643					;NOTE: THIS LIST IS ALPHABETIZED BY DEVICE NAME, NOT DEVICE ABBREVIATION
  3644					;
  3645	000552'					NAMSTR	<CD20>,CD
  3646	000557'					NAMSTR	<CR11>,CR
  3647	000564'					NAMSTR	<CTY IN>,CI
  3648	000573'					NAMSTR	<CTY OUT>,CO
  3649	000603'					NAMSTR	<DH11>,DH
  3650	000610'					NAMSTR	<DJ11>,DJ
  3651	000615'					NAMSTR	<DL10>,DL0
  3652	000622'					NAMSTR	<DL11-A>,DL.A
  3653	000631'					NAMSTR	<DL11-E>,DL.E
  3654	000640'					NAMSTR	<DM11-BB>,DM
  3655	000650'					NAMSTR	<DMC11>,DMC
  3656	000656'					NAMSTR	<DN11>,DN
  3657	000663'					NAMSTR	<DP11>,DP
  3658	000670'					NAMSTR	<DQ11>,DQ
  3659	000675'					NAMSTR	<DS11>,DS
  3660	000702'					NAMSTR	<DTE20>,DTE2
  3661	000710'					NAMSTR	<DU11>,DU
  3662	000715'					NAMSTR	<DUP11>,DUP
  3663	000723'					NAMSTR	<DV11>,DV
  3664	000730'					NAMSTR	<DZ11>,DZ
  3665	000735'					NAMSTR	<KG11-A>,KG
  3666	000744'					NAMSTR	<KMC11>,KMC
  3667	000752'					NAMSTR	<KT11>,KT
  3668	000757'					NAMSTR	<KW11-L>,KW.L
  3669	000766'					NAMSTR	<KW11-P>,KW.P
  3670	000775'					NAMSTR	<LK11>,LK
  3671	001002'					NAMSTR	<LP11>,LE
  3672	001007'					NAMSTR	<LP20>,LP
  3673	001014'					NAMSTR	<MF11-UP>,MM
  3674	001024'					NAMSTR	<null device>,NL
  3675	001040'					NAMSTR	<PA611-P>,P6
  3676	001050'					NAMSTR	<PA611-R>,R6
  3677	001060'					NAMSTR	<PP11>,PP
  3678	001065'					NAMSTR	<PR11>,PR
  3679	001072'					NAMSTR	<RC11>,RC
  3680	001077'					NAMSTR	<RF11>,RF
  3681	001104'					NAMSTR	<RK11>,RK
  3682	001111'					NAMSTR	<RH11>,RH
  3683	001116'					NAMSTR	<RP11-C>,RP
  3684	001125'					NAMSTR	<RX11>,RX
  3685	001132'					NAMSTR	<TA11>,TA
  3686	001137'					NAMSTR	<TC11>,TC
  3687	001144'					NAMSTR	<TM11>,TM
  3688		001152'				.EVEN
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 9-4
C11DMC.MAC    10-AUG-79 16:08		CHK11 DEVICE NAME TABLE

  3690	001152'	000001			CHKFLG:	.BLKW	1		;CHK11 FLAGS
  3691		000001				CKFERR=	B0		;ERROR DETECTED
  3692		100000				CKFIDT=	B15		;ID ALREADY TYPED
  3693	001154'	000001			CKDEVN:	.BLKW	1		;UNIT # CURRENTLY BEING TESTED
  3694	001156'	000001			CKDNAM:	.BLKW	1		;ADR OF DEVICE NAME(.ASCIZ)
  3695					;
  3696	001160'	000001			CK.CAL:	.BLKW	1		;RETURN ADDRESS TO CALLER OF CHK11
  3697	001162'	000001			CK.DMC:	.BLKW	1		;DMC CSR ADDRESS (FOR REMOTE REPORTING)
  3698	001164'	000001			CK.CSP:	.BLKW	1		;CALLER'S SP ON ENTRY
  3699	001166'	000001			CK.OSP:	.BLKW	1		;SAVE AREA FOR CK11'S SP
  3700					;
  3701	001170'	000001			PHYLIM:	.BLKW	1		;LIMIT OF PHYSICAL MEMORY (BLOCKS)
  3702		000060			NLINES	= 48.			;NUMBER OF DMC/KMC LINES, 4 PER DEVICE
  3703	001172'	000000			MDCSRP:	.WORD	0		;POINTER INTO MDCSR TABLE
  3704	001174'	000000	000000	000000	MDCSR:	.WORD	0,0,0,0,0,0,0,0	; (TWELVE ENTRIES FOR NOW)
	001202'	000000	000000	000000
	001210'	000000	000000
  3705	001214'	000000	000000	000000			0,0,0,0		;
	001222'	000000
  3706					;
  3707	001224'	000207			CKPOPJ:	RTS	PC		;CKPOPJ IS THE GENERAL NULL SUBROUTINE
  3708	001226'	000000			CKHALT:	HALT			;CKHALT IS THE HARD ERROR ROUTINE
  3709					.IIF NDF CKADLX,CKADLX=CKPOPJ
  3710					.IIF NDF CKAMEM,CKAMEM=CKPOPJ
  3711					.IIF NDF CKAKW1,CKAKW1=CKPOPJ
  3712					.IIF NDF CKAKG1,CKAKG1=CKPOPJ
  3713					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 10
C11DMC.MAC    10-AUG-79 16:08		CHK11 DEVICE NAME TABLE

  3715
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 11
C11DMC.MAC    10-AUG-79 16:08		CHK11 DEVICE NAME TABLE

  3717
  3718					.SBTTL **** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****
  3719					;
  3720	001230'				CHK.11:	SPL	7		;PROCESSOR LEVEL TO 7
  3721	001236'	010037	001160'			MOV	R0,CK.CAL	;SAVE RETURN ADDRESS
  3722	001242'	010137	001162'			MOV	R1,CK.DMC	;SAVE THE CSR ADDRESS
  3723	001246'	010637	001164'			MOV	SP,CK.CSP	;SAVE CALLER'S SP
  3724	001252'	012706	016032'			MOV	#CHKSTK,SP	;SET UP CHK11'S SP
  3725	001256'	010446				MOV	R4,-(SP)	;SAVE THE LOADER'S
  3726	001260'	010546				MOV	R5,-(SP)	;  REGISTERS
  3727	001262'	013746	172354			MOV	KISAR6,-(SP)	;SAVE PAGE 6 MAPPING
  3728	001266'	013746	172314			MOV	KISDR6,-(SP)	;  REGISTERS (FOR CALLER'S STACK)
  3729	001272'	012737	000300	010706'		MOV	#FLOATV,CHKFLV	;FLOATING INT VEC BEGIN HERE
  3730	001300'	012737	160000	010710'		MOV	#FLOATD,CHKFLD	;FLOATING DEV ADR'S BEGIN HERE
  3731	001306'	005037	001152'			CLR	CHKFLG		;CLEAR CHK11 FLAGS
  3732	001312'	005037	015474'			CLR	CKSPCD		;CLEAR STOP CODE; NON 0 ON FATAL
  3733									; ERROR PUTS C(CKSPCD) IN R0.
  3734					;
  3735					;INITIALIZE VECTOR SPACE
  3736					;
  3737					; THIS ROUTINE LOADS THE VECTOR AREA WITH ADDRESSES POINTING
  3738					;   INTO TABLE/CODE CHKINT - CHKINT IS USED TO FIELD MOST CHK11
  3739					;   INTERRUPTS AND CAN TELL WHICH VECTOR WAS USED BY DECODING
  3740					;   THE CONDITION CODE BITS AND THE ENTRY IN CHKINT WHICH WAS USED -
  3741					;   THE REFERENCES TO "LIMIT" AND "ADD #CHKISZ,R1" IN THE CODE BELOW
  3742					;   ARE WHAT DETERMINE THE CHKINT ENTRY LOCATION
  3743					;
  3744	001316'	013703	000014		CKINTS:	MOV	@#14,R3		;SAVE ODT ADDRESS
  3745	001322'	005000				CLR	R0		;START LOADING AT ADR 0
  3746	001324'	012701	010544'			MOV	#CHKINT,R1	;WHERE TO GO ON INTERRUPT
  3747	001330'	012702	000340			MOV	#BR7,R2		;INTERRUPT PS
  3748									;
  3749	001334'	010120			33$:	MOV	R1,(R0)+	;SET INTERRUPT VECTOR
  3750	001336'	010220				MOV	R2,(R0)+	;SET INTERRUPT LEVEL
  3751	001340'	005202				INC	R2		;UP VECTOR COUNTER
  3752	001342'	032700	000077			BIT	#77,R0		;HAVE WE HIT A LIMIT ?
  3753	001346'	001004				BNE	35$		;NO
  3754	001350'	062701	000012			ADD	#CHKISZ,R1	;YES, CHANGE VECT TO NEXT CHKINT BLOCK
  3755	001354'	012702	000340			MOV	#BR7,R2		;RESET PS
  3756	001360'	020037	000550'		35$:	CMP	R0,VCTLIM	;FILL VECTORS UP TO VECTOR LIMIT
  3757	001364'	103763				BLO	33$		;MORE TO DO
  3758									;
  3759	001366'	012737	015022'	000034		MOV	#CHKERR,TRPVEC	;WHERE TO GO ON TRAP INSTRUCTION
  3760	001374'	010337	000014			MOV	R3,@#14		;RESTORE ODT ADDRESS
  3761	001400'					FALLR	CHKCTY		;
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 11-1
C11DMC.MAC    10-AUG-79 16:08		**** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****

  3763					;NOW CHECK THE CTY (CONSOLE TTY)
  3764					;
  3765	001400'	012737	001452'	000004	CHKCTY:	MOV	#10$,NXMVEC	;WHERE TO TRAP IF NO CTY
  3766	001406'	042737	100000	001152'		BIC	#CKFIDT,CHKFLG	;SO WE PRINT DEV ID
  3767	001414'	012737	100000	013732'		MOV	#100000,CKTRPT	;ASSUME A CTY EXISTS AS THE REPORT DEV
  3768	001422'	005737	177564			TST	CTOSTS		;IF ANY OF THESE FOUR TST'S TRAPS
  3769	001426'	005737	177566			TST	CTOCHR		;  THEN WE DEEM THERE IS NO CTY
  3770	001432'	005737	177560			TST	CTISTS		;
  3771	001436'	005737	177562			TST	CTICHR		;
  3772	001442'	012737	014756'	000004		MOV	#CKBUST,NXMVEC	;CTY EXISTS, RESET BUS ERROR VECTOR
  3773	001450'	000411				BR	14$		;
  3774									;
  3775	001452'	022626				10$:	CMP	(SP)+,(SP)+	;POP TRAP
  3776	001454'	012737	000200	013732'			MOV	#200,CKTRPT ;NO CTY EXISTS, ASSUME REMOTE REPORTING
  3777	001462'	012737	014756'	000004			MOV	#CKBUST,NXMVEC ;RESET BUS ERROR VECTOR
  3778	001470'	000137	002012'				JMP	CHKCKD	;SKIP TO END OF CTY CHECK
  3779									;
  3780	001474'				14$:				; CHECK TO SEE IF CTY OUTPUT SHOULD BE
  3781									;    SUPPRESSED OR DIVERTED OR BOTH
  3782	001474'	012702	100000			MOV	#100000,R2	;PLAN TO DIRECT OUTPUT TO CTY
  3783		000000				.REPT	0	;***OMITTED***;
  3784					30$:	JSR	R0,CKTCRL	;ASK FOR DIRECTION
  3785						.ASCIZ	"IS THIS CTY THE DEFAULT REPORTING DEVICE? (Y OR N) "<377>
  3786						.EVEN			;
  3787						JSR	PC,CKGYES	;WAIT FOR ANSWER
  3788						BCS	30$		;
  3789						BEQ	40$		;"YES"
  3790						CLR	R2		;"NO", DON'T OUTPUT TO CTY
  3791					40$:	JSR	R0,CKTCRL	;CHECK FOR REMOTE REPORTING
  3792						.ASCIZ	"IS OUTPUT TO BE DIRECTED TO A REMOTE RECORDER? (Y OR N) "<377>
  3793						.EVEN			;
  3794						JSR	PC,CKGYES	;WAIT FOR ANSWER
  3795						BCS	40$		;
  3796						BNE	50$		;"NO", DON'T OUTPUT REMOTELY
  3797						.ENDR		;***OMITTED PART***;
  3798	001500'	052702	000200			BIS	#200,R2		;REPORT OUTPUT REMOTELY
  3799	001504'	010237	013732'		50$:	MOV	R2,CKTRPT	;SAVE REQUESTED MODE
  3800									;TEST CTY
  3801	001510'	012704	177564			MOV	#CTOSTS,R4	;CTY OUTPUT STATUS
  3802	001514'	010437	015476'			MOV	R4,CHKCHR+CKDA	;DEV ADR
  3803	001520'	010401				MOV	R4,R1		;CHKBIT NEEDS ADR IN R1
  3804	001522'	012737	000064	015500'		MOV	#CTOVEC,CHKCHR+CKDV;CTY OUTPUT VECTOR
  3805	001530'	012737	000573'	001156'		MOV	#N.CO11,CKDNAM	;NAME ADDRESS
  3806	001536'	005037	001154'			CLR	CKDEVN		;DEVICE 0
  3807	001542'	004537	007574'			JSR	R5,CHKBIT	;CHECK THE FOLLOWING BITS FOR R/W
  3808	001546'	000104				.WORD	CO.INE!CO..MM	;BITS TO CHECK FOR R/W
  3809	001550'	012714	000100			MOV	#CO.INE,(R4)	;ENABLE INTERRUPTS
  3810	001554'	004537	010032'			JSR	R5,CHKINL	;CHECK INTERRUPT AND FIND DEV LEVEL
  3811	001560'	177777				.WORD	ALLBTS		;TIME LOOP CONSTANT
  3812	001562'	005014				CLR	(R4)		;CLR DEV OUT
  3813									;
  3814	001564'					FALLR	CHKCKB		;
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 11-2
C11DMC.MAC    10-AUG-79 16:08		**** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****

  3816					;NOW CHECK THE KBRD SECTION
  3817					;
  3818	001564'	042737	100000	001152'	CHKCKB:	BIC	#CKFIDT,CHKFLG	;PRINT DEV ID
  3819	001572'	012704	177560			MOV	#CTISTS,R4	;KBRD STATUS REG
  3820	001576'	010437	015476'			MOV	R4,CHKCHR+CKDA	;DEV ADR
  3821	001602'	010401				MOV	R4,R1		;CHKBIT NEEDS ADR IN R1
  3822	001604'	012737	000060	015500'		MOV	#CTIVEC,CHKCHR+CKDV ;VECTOR ADR
  3823	001612'	012737	000564'	001156'		MOV	#N.CI11,CKDNAM	;ADR OF DEV NAME
  3824	001620'	004537	007574'			JSR	R5,CHKBIT	;CHECK THE FOLLOWING BITS
  3825	001624'	000100				.WORD	CI.INE		;BITS TO CHECK R/W
  3826									;
  3827	001626'	012700	000466'		15$:	MOV	#CKNAME,R0	;GET ADDR OF .ASCIZ \PROG NAME\
  3828	001632'	004737	013734'			JSR	PC,CKTTXT	;TYPE PROGRAM NAME, ETC.
  3829	001636'	010002				MOV	R0,R2		;GET ADDR OF EDIT DATA (FOLLOWS PROG NAME)
  3830	001640'	004037	013774'			JSR	R0,CKTCRL	;
  3831	001644'	062566	071562	067551		.ASCIZ	"version "	;
	001652'	020156	   000
  3832		001656'				.EVEN			;
  3833	001656'	012200				MOV	(R2)+,R0	;GET MAJOR VERSION NUMBER
  3834	001660'	004737	014022'			JSR	PC,CKTOCT	;TYPE IT
  3835	001664'	012201				MOV	(R2)+,R1	;GET MINOR VERSION LETTER
  3836	001666'	001402				BEQ	20$		;NOT THERE
  3837	001670'	004737	014074'			JSR	PC,CKTCHR	;TYPE IT
  3838	001674'	112701	000050		20$:	MOVB	#'(,R1		;TYPE EDIT NUMBER IN ()
  3839	001700'	004737	014074'			JSR	PC,CKTCHR	;
  3840	001704'	012200				MOV	(R2)+,R0	;GET EDIT NUMBER
  3841	001706'	004737	014022'			JSR	PC,CKTOCT	;TYPE IT
  3842	001712'	112701	000051			MOVB	#'),R1		;
  3843	001716'	004737	014074'			JSR	PC,CKTCHR	;
  3844		   001				    .IF DF ED.HIS	;DO NEXT ONLY IF LAST EDIT HISTORY REQ'D
  3845	001722'	004037	014000'			JSR	R0,CKTSTR	;
  3846	001726'	067440	020146	   000		.ASCIZ	" of "		;
  3847		001734'				.EVEN			;
  3848	001734'	012200				MOV	(R2)+,R0	;DATE STRING ADDRESS
  3849	001736'	004737	013734'			JSR	PC,CKTTXT	;
  3850	001742'	004037	014000'			JSR	R0,CKTSTR	;
  3851	001746'	061040	020171	   000		.ASCIZ	" by "		;
  3852		001754'				.EVEN			;
  3853	001754'	012200				MOV	(R2)+,R0	;
  3854	001756'	004737	013734'			JSR	PC,CKTTXT	;
  3855		   000				    .ENDC ;DF ED.HIS	;
  3856	001762'	004037	013774'			JSR	R0,CKTCRL	;
  3857	001766'	062524	072163	067151		.ASCIZ	"Testing begins..."<15><12>
	001774'	020147	062542	064547
	002002'	071556	027056	006456
	002010'	000012
  3858						.EVEN			;
  3859									;
  3860	002012'				CHKCKD:	FALLR	CKCPU		;
  3861					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 12
C11DMC.MAC    10-AUG-79 16:08		**** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****

  3863
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 13
C11DMC.MAC    10-AUG-79 16:08		**** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****

  3865
  3866					; DETERMINE PROCESSOR MODEL NUMBER
  3867					;
  3868	002012'	004037	013774'		CKCPU:	JSR	R0,CKTCRL	;
  3869	002016'	044124	020105	051120		.ASCIZ	"THE PROCESSOR SEEMS TO BE A "
	002024'	041517	051505	047523
	002032'	020122	042523	046505
	002040'	020123	047524	041040
	002046'	020105	020101	   000
  3870		002054'				.EVEN			;
  3871									;
  3872	002054'	012700	002242'			MOV	#CKWRD,R0	;GET ADDRESS OF TEST WORD
  3873					;;;;	MOV	R0,(R0)+	;STORE AND AUTOINC ON SAME REGISTER
  3874	002060'	010020				.WORD	10020		;	(PRE-ASSEMBLE TO PREVENT Z ERROR)
  3875	002062'	012700	002104'			MOV	#5$,R0		;GET BUMPER TABLE ADDRESS
  3876	002066'	023727	002242'	002242'		CMP	CKWRD,#CKWRD	;BUMP BEFORE STORE?
  3877	002074'	001402				BEQ	3$		;NO, CPU IS NEWER THAN THAT
  3878									;YES, CPU IS OF /20 /40 VINTAGE
  3879	002076'	062700	000004			ADD	#9$-5$,R0	;MODIFY ADDRESS INTO BUMPER TABLE
  3880									;
  3881	002102'				3$: ;;;	JMP	(R0)+		;BUMP BEFORE JUMP?
  3882	002102'	000120				.WORD	120		;	(PRE-ASSEMBLE TO PREVENT Z ERROR)
  3883	002104'	000403			5$:	BR	10$		;NO, CPU IS LIKE /04 /34 /45
  3884	002106'	000562				BR	CK05		;YES, CPU IS /05 /10
  3885									;BUMP BEFORE JUMP?
  3886	002110'	000572			9$:	BR	CK40		;NO, CPU IS /40
  3887	002112'	000563				BR	CK20		;YES, CPU IS /15 OR /20
  3888									;
  3889	002114'				10$:				;CPU IS /04 /34/ OR /40 OR HIGHER
  3890	002114'	013746	000004			MOV	@#4,-(SP)	;SAVE BUS ERROR VECTOR
  3891	002120'	012737	002160'	000004		MOV	#20$,@#4	;SET LOCAL ONE
  3892	002126'	012700	177770			MOV	#177770,R0	;TRY TO FIND NONEXISTENT MEMORY
  3893	002132'	005710			15$:	TST	(R0)		;IS THIS MEMORY HERE?
  3894	002134'	162700	000002			SUB	#2,R0		;YES, THERE WAS NO TRAP
  3895	002140'	001374				BNE	15$		;LOOK AGAIN (UNLESS ALL MEMORY SEEN)
  3896									;THIS IS RIDICULOUS! THERE ARE NO HOLES
  3897									;  IN MEMORY, OR THE BUS ERROR TRAPPER
  3898									;  DOESN'T WORK
  3899	002142'				17$:	CK11SC	CKEPC,<NO NXM??>,<NO NONEXISTENT MEMORY TRAP>
  3900	002144'	047516	047040	046530		.ASCIZ	"NO NXM??"	;
	002152'	037477	   000
  3901		002156'				.EVEN			;
  3902	002156'	000410				BR	26$		;
  3903									;
  3904	002160'	012737	002174'	000004	20$:	MOV	#25$,@#4	;SET UP NEXT BUS ERROR ADDRESS
  3905	002166'	010001				MOV	R0,R1		;COPY ADDRESS WHICH DIDN'T ANSWER
  3906	002170'	010220				MOV	R2,(R0)+	;REPEAT TRAP
  3907	002172'	000763				BR	17$		;YOU CAN'T GET HERE UNLESS TRAP FAILS
  3908	002174'	062706	000010		25$:	ADD	#10,SP		;POP BOTH TRAPS
  3909	002200'	012637	000004		26$:	MOV	(SP)+,@#4	;RESTORE SAVED BUS ERROR VECTOR
  3910	002204'	020001				CMP	R0,R1		;DID R0 POP DURING TRAP?
  3911	002206'	001517				BEQ	CK04		;NO, CPU IS /04
  3912	002210'	013746	000010			MOV	@#10,-(SP)	;YES, SAVE RESERVED INSTRUCTION VECTOR
  3913	002214'	012737	002230'	000010		MOV	#30$,@#10	;SET UP A NEW ONE
  3914	002222'	005000				CLR	R0		;R0 WILL STAY CLEAR IF CPU IS /45
  3915	002224'	106700				.WORD	106700		;11/34 MFPS INSTR (OP NAME=A MACRO NAME)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 13-1
C11DMC.MAC    10-AUG-79 16:08		**** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****

  3916	002226'	005200				INC	R0		;DIDN'T TRAP, CPU IS /34 (OR /03)
  3917	002230'	012637	000010		30$:	MOV	(SP)+,@#10	;RESTORE RES INSTR VECTOR
  3918	002234'	005700				TST	R0		;WAS THERE A TRAP?
  3919	002236'	001114				BNE	CK34		;NO, CPU IS 11/34
  3920	002240'	000521				BR	CK45		;YES, CPU IS 11/45
  3921									;
  3922	002242'	000000			CKWRD:	.WORD	0		;CPU ID TEST WORD
  3923	002244'	000000			CKCPUN:	.WORD	0		;CPU MODEL NUMBER (DECIMAL)
  3924						    .ENABL LSB		;
  3925	002246'	   004			4$:	.BYTE	4.
  3926	002247'	   113	030504	026461		.ASCIZ	"KD11-D (11/04)"
	002254'	020104	030450	027461
	002262'	032060	000051
  3927	002266'	   005			5$:	.BYTE	5.
  3928	002267'	   113	030504	026461		.ASCIZ	"KD11-B (11/05 OR 11/10)"
	002274'	020102	030450	027461
	002302'	032460	047440	020122
	002310'	030461	030457	024460
	002316'	   000
  3929	002317'	   024			20$:	.BYTE	20.
  3930	002320'	040513	030461	024040		.ASCIZ	"KA11 (11/20) OR KC11 (11/15)"
	002326'	030461	031057	024460
	002334'	047440	020122	041513
	002342'	030461	024040	030461
	002350'	030457	024465	   000
  3931	002355'	   042			34$:	.BYTE	34.
  3932	002356'	042113	030461	042455		.ASCIZ	"KD11-E (11/34)"
	002364'	024040	030461	031457
	002372'	024464	   000
  3933	002375'	   050			40$:	.BYTE	40.
  3934	002376'	042113	030461	040455		.ASCIZ	"KD11-A (11/35 OR 11/40)"
	002404'	024040	030461	031457
	002412'	020065	051117	030440
	002420'	027461	030064	000051
  3935	002426'	   055			45$:	.BYTE	45.
  3936	002427'	   113	030502	026461		.ASCIZ	"KB11-A (11/45)"
	002434'	020101	030450	027461
	002442'	032464	000051
  3937						.EVEN			;
  3938									;
  3939	002446'	012700	002246'		CK04:	MOV	#4$,R0		;
  3940	002452'	000417				BR	CKCPUE		;
  3941									;
  3942	002454'	012700	002266'		CK05:	MOV	#5$,R0		;
  3943	002460'	000414				BR	CKCPUE		;
  3944									;
  3945	002462'	012700	002317'		CK20:	MOV	#20$,R0		;
  3946	002466'	000411				BR	CKCPUE		;
  3947									;
  3948	002470'	012700	002355'		CK34:	MOV	#34$,R0		;
  3949	002474'	000406				BR	CKCPUE		;
  3950									;
  3951	002476'	012700	002375'		CK40:	MOV	#40$,R0		;
  3952	002502'	000403				BR	CKCPUE		;
  3953									;
  3954	002504'	012700	002426'		CK45:	MOV	#45$,R0		;
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 13-2
C11DMC.MAC    10-AUG-79 16:08		**** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****

  3955	002510'	000400				BR	CKCPUE		;
  3956						    .DSABL LSB		;
  3957									;
  3958	002512'	112037	002244'		CKCPUE:	MOVB	(R0)+,CKCPUN	;SAVE PROCESSOR MODEL NUMBER AWAY FOR REFERENCE
  3959	002516'	004737	013734'			JSR	PC,CKTTXT	;TYPE OUT THE ID TEXT
  3960		   001				    .IF NE 1
  3961	002522'	004037	013774'			JSR	R0,CKTCRL	;TYPE OUT EXPECTED MODEL NUMBER
  3962	002526'	041411	045510	030461		.ASCIZ	"	CHK11 EXPECTED AN 11/"
	002534'	042440	050130	041505
	002542'	042524	020104	047101
	002550'	030440	027461	   000
  3963		002556'				.EVEN			;
  3964	002556'	012700	000042			MOV	#PDP11,R0	;ADD NUMBER
  3965	002562'	004737	014170'			JSR	PC,CKTDEC
  3966		   000				    .ENDC ;NE 1
  3967									;
  3968	002566'					FALLR	CKDLXB		;FALL INTO DL10 SEEKER
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 13-3
C11DMC.MAC    10-AUG-79 16:08		**** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****

  3970					;DETERMINE THE DL10 BASE ADDRESS
  3971					;
  3972					;
  3973					.IIF NDF FTDL10,FTDL10=0
  3974					;
  3975	002566'				CKDLXB:
  3976		   001				    .IF NE FTDL10
  3977						MOV	#CHKFFB,R0		;SET ADDRESS TO START LOOKING FOR A DL10
  3978						CLR	DL10AD			;SET FOR NO DL10
  3979						MOV	#10$,NXMVEC		;WHERE TO GO ON A NXM
  3980					3$:	MOV	#DL.CNX!DL.CPE!DL.CWC!DL.11C,R1	;BITS TO SET IN DL10
  3981						MOV	(R0),R2			;SAVE CONTENTS AS IT MAY BE CORE
  3982						BIS	R1,(R0)			;CLEAR THESE CONDITIONS IF DL10
  3983										; OR IF MEMORY BITS WILL BE SET
  3984						ASL	R1			;POSITION BITS FOR SETTING CONDITIONS
  3985						CLR	(R0)			;SEE IF SOMETHING THERE AND CLEAR IF IT IS THERE
  3986						TST	(R0)			;MAKE SURE ITS CLEAR SINCE ITS THERE
  3987						BEQ	1$			;BRANCH IF IT CLEARED
  3988						CLR	-(SP)			;RESULT SHOULD BE 0
  3989						MOV	(R0),-(SP)		;SAVE WHAT IT WAS
  3990						MOV	R0,-(SP)			;SAVE THE ADDRESS WHERE IT HAPPENED
  3991						CK11SC	<CKEPC!CKEGB>,<Can't Clear DL10 or MEM>,<CLR @R0 DIDN'T CLEAR @R0>,<S..D
  3992						.ASCIZ	\Can't Clear DL10 or MEM\<377>
  3993						.EVEN
  3994						BR	1$			;
  3995					1$:	BIS	R1,(R0)			;NOW SET DL10 BITS
  3996						CMP	R1,(R0)			;SEE IF THEY SET BE IT MEMORY OR DL10
  3997						BEQ	2$			;BRANCH IF THE SET OK
  3998						CKSERR	R1,<(R0)>,R0		;SAVE GD,BD,ADR
  3999						CK11SC	<CKEPC!CKEGB>,<DL10 or Mem Err>,<EITHER DL10 IS BAD OR MEMORY IS BAD>,<S
  4000						.ASCIZ	\DL10 or Mem Err\<377>
  4001						.EVEN
  4002						BR	2$			;
  4003					2$:	CLC				;CARRY MUST BE CLR
  4004						ROR	R1			;SHIFT TO CLEAR BITS JUST SET
  4005						BIS	R1,(R0)			;SET BITS, IF DL10 ALL BITS SHOULD BE 0
  4006						TST	(R0)			;SEE IF ALL 0
  4007						BEQ	4$			;BRANCH IF SO
  4008					6$:	MOV	R2,(R0)			;RESTORE MEMORY
  4009					7$:	ADD	#4000,R0		;GO TO NEXT POSSIBLE DL10 ADR
  4010						CMP	R0,#160000		;TIME TO STOP CHECKING FOR DL10?
  4011						BLO	3$			;BRANCH IF NOT
  4012						BR	5$			;NEVER FOUND A DL10
  4013										;
  4014					10$:	ADD	#4,P			;FLUSH NXM TRAP
  4015						BR	7$			;GO CHECK NEXT POSSIBLE ADR
  4016										;
  4017					4$:					;DL10 FOUND
  4018						MOV	R0,DL10AD		;PUT DL10 BASE ADDR WE FOUND AWAY
  4019						JSR	PC,CKADLX		;PRINT DL10 BASE ADDR
  4020		   000				    .ENDC ;NE FTDL10
  4021	002566'				5$:	FALLR	CHKMAP			;
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 13-4
C11DMC.MAC    10-AUG-79 16:08		**** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****

  4023					; CHECK TO SEE IF SYSTEM IS MAPPED
  4024					;
  4025	002566'				CHKMAP:
  4026						    .IIF NDF MMGSR0,MMGSR0 = 177572
  4027									;
  4028	002566'	012737	002602'	000004		MOV	#48$,NXMVEC	;SET UP BUS ERROR VECTOR
  4029	002574'	013700	177572			MOV	MMGSR0,R0	;READ MEM MGT STATUS
  4030									;
  4031		   001				    .IF NDF M$$MGE
  4032						CK11SC	<CKEMSG>,<WRONG VERSION>
  4033						.ASCIZ	"A NON-MAPPING CHK11 IS LOADED ON A MAPPED SYSTEM"<15><12><377>
  4034						.EVEN			;
  4035						BR	63$		;
  4036									;
  4037					48$:	CMP	(SP)+,(SP)+	;POP TRAP, IGNORE IT (IT WAS HOPED FOR)
  4038						FALLR	63$		;DROP RIGHT OUT
  4039						    .IFF
  4040	002600'	000433				BR	63$		;NO TRAP, THAT'S WHAT WAS EXPECTED
  4041									;TRAP, REPORT
  4042	002602'				48$:	CK11SC	<CKEMSG>,<WRONG VERSION>
  4043	002604'	020101	040515	050120		.ASCIZ	"A MAPPING CHK11 IS LOADED ON UNMAPPED HARDWARE"<15><12><377>
	002612'	047111	020107	044103
	002620'	030513	020061	051511
	002626'	046040	040517	042504
	002634'	020104	047117	052440
	002642'	046516	050101	042520
	002650'	020104	040510	042122
	002656'	040527	042522	005015
	002664'	000377
  4044	002666'					ABORT			;
  4045						.EVEN			;
  4046		   000				    .ENDC ;NDF M$$MGE
  4047	002670'				63$:	FALLR	CHKMMG		;CHECK MEMORY MGT
  4048					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 14
C11DMC.MAC    10-AUG-79 16:08		**** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****

  4050
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 15
C11DMC.MAC    10-AUG-79 16:08		**** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****

  4052
  4053					.SBTTL		CHECK KT11 HARDWARE
  4054					;
  4055					;VERIFY MEMORY MANAGEMENT HARDWARE - *** CODED FOR 11/34 SUBSET ***
  4056					;
  4057	002670'				CHKMMG:				;
  4058		   001				    .IF DF M$$MGE
  4059	002670'	004037	013774'			JSR	R0,CKTCRL	;
  4060	002674'	045412	030524	020061		.ASCIZ	<12>"KT11 memory management test"
	002702'	062555	067555	074562
	002710'	066440	067141	063541
	002716'	066545	067145	020164
	002724'	062564	072163	   000
  4061		002732'				.EVEN			;
  4062	002732'	012704	000250			MOV	#MMGVEC,R4	;SAVE ADDRESS OF MEM MGT VECTOR
  4063	002736'	011446				MOV	(R4),-(SP)	;SAVE CURRENT MEM MGT VECTOR
  4064	002740'	012714	003116'			MOV	#25$,(R4)	;SET MEM MGT VECTOR TO "BAD TRAP"
  4065	002744'	012700	077406			MOV	#PD.PLF!<6*PD.AC0>,R0 ;SET UP CONSTANT FOR FULL PAGE, R/W ACCESS
  4066	002750'	032737	000001	177572		BIT	#MG.ENB,MMGSR0	;MEM MGT ALREADY ENABLED?
  4067	002756'	001020				BNE	10$		;YES, DON'T MESS
  4068	002760'	005037	172340			CLR	KISAR0		;NO, SET UP REASONABLY, AS APR0 TO PAGE ZERO
  4069	002764'	010037	172300			MOV	R0,KISDR0	;FULL PAGE ACCESS, R/W, EXPAND UP
  4070	002770'	012737	000200	172342		MOV	#PAGE1B,KISAR1	;MAP THIS PROGRAM TO SELF
  4071	002776'	010037	172302			MOV	R0,KISDR1	;INCLUDE SAME TOTAL ACCESS
  4072	003002'	012737	007600	172356		MOV	#PAGE7B,KISAR7	;SPECIAL MAP TO I/O PAGE
  4073	003010'	010037	172316			MOV	R0,KISDR7	;
  4074	003014'	005237	177572			INC	MMGSR0		;TURN ON MEMORY MANAGEMENT
  4075									;
  4076	003020'				10$:				;RELOCATION CONSISTENCY CHECK
  4077									;
  4078	003020'	013737	172340	172352		MOV	KISAR0,KISAR5	;MAP APR5 TO SAME MEMORY AS APR0
  4079	003026'	013737	172300	172312		MOV	KISDR0,KISDR5	;  AND COPY OVER THE PDR TOO
  4080	003034'	012701	000302			MOV	#PAGE0+302,R1	;GET POINTERS INTO PAGES 0 AND 5
  4081	003040'	012702	120302			MOV	#PAGE5+302,R2	;  THE OFFSET INTO THE PAGE IS MOSTLY ARBITRARY
  4082									;
  4083	003044'	011146				MOV	(R1),-(SP)	;SAVE THE CURRENT CONTENTS OF THE DIDDLE LOC
  4084	003046'	010712			16$:	MOV	PC,(R2)		;ENSURE TEST LOCATION HAS NON-ZERO CONTENTS
  4085	003050'	005011				CLR	(R1)		;CLEAR THE TEST LOCATION THROUGH THE OTHER PTR
  4086	003052'	005712				TST	(R2)		;DID IT REALLY CLEAR?
  4087	003054'	001015				BNE	20$		;NO, WHAT A SHAME
  4088	003056'	010711				MOV	PC,(R1)		;YES, ENSURE IT'S NOT ZERO AGAIN
  4089	003060'	021112				CMP	(R1),(R2)	;STILL MATCH?
  4090	003062'	001012				BNE	20$		;NO, THAT'S FUNNY, IT WORKED BEFORE
  4091									;
  4092	003064'	023737	172340	172352		CMP	KISAR0,KISAR5	;DONE OFFSET TEST YET?
  4093	003072'	001015				BNE	30$		;YES
  4094	003074'	062737	000002	172352		ADD	#2,KISAR5	;NO, CHANGE APR6 UP
  4095	003102'	162702	000200			SUB	#2*BSFACT,R2	;  AND PAGE POINTER DOWN ACCORDINGLY
  4096	003106'	000757				BR	16$		;REPEAT TEST FOR DIFFERENT RELOCATION ADDRESSES
  4097									;
  4098	003110'				20$:	CK11SC	CKEMSE,101$	;
  4099	003114'	000404				BR	30$		;
  4100	003116'				25$:	CK11SC	CKEMSE,104$	;
  4101	003122'	000400				BR	26$		;
  4102	003124'	000002			26$:	RTI			;
  4103									;
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 15-1
C11DMC.MAC    10-AUG-79 16:08			CHECK KT11 HARDWARE

  4104	003126'	012611			30$:	MOV	(SP)+,(R1)	;RESTORE ORIGINAL TEST WORD CONTENTS
  4105									;
  4106									;PAGE LENGTH PROTECTION TEST
  4107									;
  4108	003130'	013737	172340	172352		MOV	KISAR0,KISAR5	;USE VECTOR SPACE AGAIN FOR TEST
  4109	003136'	012737	000406	172312		MOV	#PD.PL0!<6*PD.AC0>,KISDR5 ;SET 2 BLOCK PAGE, R/W, UP
  4110	003144'	012701	000176			MOV	#PAGE0+<2*BSFACT>-2,R1 ;SET PTRS NEAR PAGE BOUNDARY
  4111	003150'	012702	120176			MOV	#PAGE5+<2*BSFACT>-2,R2 ;
  4112	003154'	012146				MOV	(R1)+,-(SP)	;FETCH FROM BELOW BOUNDARY
  4113	003156'	012622				MOV	(SP)+,(R2)+	;WRITE IT BACK, DIFFERENT PTR, SHOULDN'T TRAP
  4114	003160'	012146				MOV	(R1)+,-(SP)	;FETCH FROM ABOVE BOUNDARY, PAGE 0, NO TRAP
  4115	003162'	012714	003176'			MOV	#45$,(R4)	;SET UP TO EXPECT TRAP
  4116	003166'	012622				MOV	(SP)+,(R2)+	;WRITE BACK TO TEST LOCATION, EXPECT TRAP
  4117									;NO TRAP, THAT'S BAD
  4118	003170'				40$:	CK11SC	CKEMSE,107$	;
  4119	003174'	024646				CMP	-(SP),-(SP)	;FAKE TRAP
  4120									;
  4121	003176'	022626			45$:	CMP	(SP)+,(SP)+	;GOOD TRAP, POP IT
  4122	003200'	012714	003116'			MOV	#25$,(R4)	;RESET TO BAD TRAP MSG
  4123	003204'	032737	120000	177572		BIT	#MG.ANR!MG.ARO,MMGSR0 ;TRAP FOR RIGHT REASON?
  4124	003212'	001403				BEQ	47$		;YES, KEEP ON KEEPIN' ON
  4125	003214'					CK11SC	CKEMSE,107$	;NO, GOOD GRIEF!
  4126	003220'	000400				BR	47$		;
  4127	003222'				47$:				;
  4128									;**** CONSIDER ADDING HERE THE SAME TYPE OF
  4129									;     TEST FOR A DOWNWARD EXPANDABLE PAGE ****
  4130									;
  4131									;ACCESS CONTROL MODE TEST
  4132									;
  4133	003222'	013737	172340	172352		MOV	KISAR0,KISAR5	;USE THE VECTOR AREA AGAIN
  4134	003230'	012737	077406	172312		MOV	#PD.PLF+<6*PD.AC0>,KISDR5 ;RESET TO FULL PAGE, FULL ACCESS
  4135	003236'	012702	120052			MOV	#PAGE5+52,R2	;RESET POINTER TO ARBITRARY LOCATION IN PAGE
  4136	003242'	012714	003272'			MOV	#50$,(R4)	;SET UP THE EXPECTED BAD TRAP HANDLER
  4137	003246'	011246				MOV	(R2),-(SP)	;READ (DON'T TRAP)
  4138	003250'	012612				MOV	(SP)+,(R2)	;PUT IT BACK (DON'T TRAP)
  4139	003252'	112737	000002	172312		MOVB	#PD.AC0*2,KISDR5 ;SET PDR FOR READ ONLY ACCESS
  4140	003260'	011246				MOV	(R2),-(SP)	;READ AGAIN (DON'T TRAP)
  4141	003262'	012714	003306'			MOV	#60$,(R4)	;RESET TRAP VECTOR AGAIN
  4142	003266'	012612				MOV	(SP)+,(R2)	;WRITE IT BACK AGAIN, AND FINALLY TRAP!
  4143	003270'	024646				CMP	-(SP),-(SP)	;DIDN'T TRAP, HAVE TO FAKE IT
  4144									;
  4145	003272'					50$:	CK11SC	CKEMSE,110$	;BAD TRAP, OR NON-TRAP, DEPENDING
  4146	003276'	000404					BR	62$		;
  4147										;
  4148	003300'	062716	000002			55$:	ADD	#2,(SP)		;GOOD TRAP, SKIP ERROR BRANCH
  4149	003304'	000002					RTI			;  ON RETURN
  4150									;
  4151	003306'	022626			60$:	CMP	(SP)+,(SP)+	;GOOD TRAP, POP IT
  4152	003310'	012714	003356'		62$:	MOV	#67$,(R4)	;CHANGE TRAP VECTOR STILL AGAIN
  4153	003314'	012737	077404	172312		MOV	#PD.PLF+<PD.AC0*4>,KISDR5 ;SET PDR FOR ILLEGAL ACCESS
  4154	003322'	011201			65$:	MOV	(R2),R1		;TRY TO READ, EXPECT A TRAP
  4155	003324'					CK11SC	<CKEMSE!CKEPC>,110$ ;DIDN'T, ERROR
  4156	003330'	010112				MOV	R1,(R2)		;TRY A WRITE, EXPECT A TRAP
  4157	003332'					CK11SC	<CKEMSE!CKEPC>,110$ ;DIDN'T, ERROR
  4158	003336'	032737	000007	172312		BIT	#PD.ACF,KISDR5	;DONE ALL ACF MODES YET?
  4159	003344'	001511				BEQ	70$		;YES, GO ON
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 15-2
C11DMC.MAC    10-AUG-79 16:08			CHECK KT11 HARDWARE

  4160	003346'	042737	000007	172312		BIC	#PD.ACF,KISDR5	;NO, CLEAR ACF FOR LAST ILLEGAL MODE
  4161	003354'	000762				BR	65$		;REPEAT TEST
  4162									;
  4163	003356'	062716	000004			67$:	ADD	#4,(SP)	;GOOD TRAP, POP IT
  4164	003362'	000002					RTI		;
  4165									;
  4166	003364'	064411	061556	067157	101$:	.ASCIZ	"	inconsistent relocation"<377>
	003372'	064563	072163	067145
	003400'	020164	062562	067554
	003406'	060543	064564	067157
	003414'	000377
  4167	003416'	072411	062556	070170	104$:	.ASCIZ	"	unexpected mem mgt trap"<377>
	003424'	061545	062564	020144
	003432'	062555	020155	063555
	003440'	020164	071164	070141
	003446'	000377
  4168	003450'	066411	066545	066440	107$:	.ASCIZ	"	mem mgt page length protection failure"<377>
	003456'	072147	070040	063541
	003464'	020145	062554	063556
	003472'	064164	070040	067562
	003500'	062564	072143	067551
	003506'	020156	060546	066151
	003514'	071165	177545	   000
  4169	003521'	   011	062555	020155	110$:	.ASCIZ	"	mem mgt access mode control failure"<377>
	003526'	063555	020164	061541
	003534'	062543	071563	066440
	003542'	062157	020145	067543
	003550'	072156	067562	020154
	003556'	060546	066151	071165
	003564'	177545	   000
  4170		003570'				.EVEN			;
  4171									;
  4172	003570'	012614			70$:	MOV	(SP)+,(R4)	;RESTORE PREVIOUS MEMORY MANAGEMENT TRAP VECTOR
  4173						    .IFF
  4174						JSR	R0,CKTCRL	;
  4175						.ASCIZ	"NO MEM MGT TEST"
  4176						.EVEN			;
  4177		   000				    .ENDC ;DF M$$MGE
  4178	003572'					FALLR	CHKCOR		;
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 15-3
C11DMC.MAC    10-AUG-79 16:08			CHECK KT11 HARDWARE

  4180					; SEE HOW MUCH CORE IS PRESENT
  4181					;
  4182	003572'				CHKCOR:				;
  4183		   001				    .IF NDF M$$MGE
  4184									;UNMAPPED SNIFFER
  4185						CLR	R0		;START SMALL
  4186						MOV	#20$,NXMVEC	;SET BUS TRAP VECTOR
  4187					10$:	TST	(R0)+		;CHECK NEXT LOCATION
  4188						CMP	R0,DL10AD	;SEE IF NEXT WORD IS DL10
  4189						BNE	10$		;
  4190						BR	21$		;
  4191									;
  4192					20$:	CMP	(SP)+,(SP)+	;FLUSH STACK
  4193						SUB	#2,R0		;MAKE 2 LESS SO WE HAVE 1ST NXM LOC
  4194					21$:	MOV	R0,PHYLIM	;SAVE ADR OF 1ST NXM LOCATION
  4195						JSR	PC,CKAMEM	;PRINT LAST MEM LOCATION
  4196						    .IFF
  4197									;MAPPED SNIFFER
  4198	003572'	004037	013774'			JSR	R0,CKTCRL	;ADVERTISE RANGES OF MEMORY
  4199	003576'	050012	054510	044523		.ASCIZ	<12>"PHYSICAL MEMORY HAS ABSOLUTE LIMITS OF "
	003604'	040503	020114	042515
	003612'	047515	054522	044040
	003620'	051501	040440	051502
	003626'	046117	052125	020105
	003634'	044514	044515	051524
	003642'	047440	020106	   000
  4200		003650'				.EVEN			;
  4201	003650'	005037	172352			CLR	KISAR5		;START AT ZERO MEMORY
  4202	003654'	012737	077406	172312		MOV	#PD.PLF!<6*PD.AC0>,KISDR5 ;FULL PAGE, R/W ACCESS
  4203	003662'	005000				CLR	R0		;START OF CURRENT BLOCK ADDRESS
  4204	003664'	005001				CLR	R1		;ACCUMULATED PAGE COUNT
  4205	003666'	005003				CLR	R3		;CURRENT BLOCK PAGE COUNT
  4206	003670'	012737	003710'	000004		MOV	#35$,NXMVEC	;SET UP BUS ERROR VECTOR
  4207									;
  4208	003676'	012702	000100		30$:	MOV	#BSFACT,R2	;SET BYTE COUNT OF PAGE
  4209	003702'	105762	117777		31$:	TSTB	PAGE5-1(R2)	;READ A BYTE FROM THE ADDRESSED PAGE
  4210	003706'	000412				BR	43$		;NO TRAP
  4211									;
  4212	003710'	022626				35$:	CMP	(SP)+,(SP)+	;TRAP, POP IT
  4213	003712'	005703					TST	R3		;ANY PAGES FOUND?
  4214	003714'	001402					BEQ	39$		;NO, SKIP REPORT
  4215	003716'	004737	004076'				JSR	PC,65$		;YES, REPORT RANGE
  4216	003722'	005237	172352			39$:	INC	KISAR5		;COMPUTE NEXT BIAS VALUE
  4217	003726'	013700	172352				MOV	KISAR5,R0	;SAVE IT AS START ADDRESS OF NEXT RANGE
  4218	003732'	000404					BR	52$		;RETURN TO TEST LOOP
  4219									;
  4220	003734'	077216			43$:	SOB	R2,31$		;LOOP OVER ALL BYTES ON CURRENT PAGE
  4221	003736'	005203				INC	R3		;NO TRAP, UP BLOCK COUNT
  4222	003740'	005237	172352			INC	KISAR5		;UP PAGE BIAS
  4223									;
  4224	003744'	023727	172352	007600	52$:	CMP	KISAR5,#PAGE7B	;DONE ALL POSSIBLE MEMORY SPACE?
  4225	003752'	103751				BLO	30$		;NOT YET
  4226									;YES
  4227	003754'	005703				TST	R3		;ANY BLOCKS FOUND AT END OF MEMORY?
  4228	003756'	001402				BEQ	54$		;NO
  4229	003760'	004737	004076'			JSR	PC,65$		;YES, REPORT LAST BLOCK
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 15-4
C11DMC.MAC    10-AUG-79 16:08			CHECK KT11 HARDWARE

  4230	003764'	010137	001170'		54$:	MOV	R1,PHYLIM	;SAVE NUMBER OF BLOCKS OF MEMORY
  4231	003770'	004037	013774'			JSR	R0,CKTCRL	;SUMMARIZE MEMORY SIZE DATA
  4232	003774'	043011	051117	040440		.ASCIZ	"	FOR A TOTAL OF "
	004002'	052040	052117	046101
	004010'	047440	020106	   000
  4233		004016'				.EVEN			;
  4234	004016'	010100				MOV	R1,R0		;
  4235	004020'	006200				ASR	R0		;DIVIDE NUMBER OF 32 WORD BLOCKS
  4236	004022'	006200				ASR	R0		;  BY 32 TO GET NUMBER OF KW
  4237	004024'	006200				ASR	R0		;
  4238	004026'	006200				ASR	R0		;
  4239	004030'	006200				ASR	R0		;
  4240	004032'	004737	014170'			JSR	PC,CKTDEC	;OUTPUT MEMORY SIZE IN KW DECIMAL
  4241	004036'	032701	000037			BIT	#37,R1		;REMAINDER OVER EXACT KW AMOUNT?
  4242	004042'	001402				BEQ	62$		;NO
  4243	004044'					CK11SC	<CKENCL>,<+>,<REMAINDER OVER EVEN K AMOUNT>
  4244	004046'	000053				.ASCIZ	"+"		;
  4245						.EVEN			;
  4246	004050'	004037	014000'		62$:	JSR	R0,CKTSTR	;
  4247	004054'	053513	024040	042504		.ASCIZ	"KW (DECIMAL)"<15><12>
	004062'	044503	040515	024514
	004070'	005015	   000
  4248		004074'				.EVEN			;
  4249	004074'	000432				BR	70$		;
  4250									;
  4251	004076'					65$:	CK11SC	0,<CRLFTAB>	;FEED LINE, SPACE OVER
  4252	004100'	000011					.ASCIZ	"	"	;
  4253							.EVEN			;
  4254	004102'	060301					ADD	R3,R1		;ACCUMULATE TOTAL BLOCKS TO DATE
  4255	004104'	005003					CLR	R3		;CLEAR FOR NEXT TIME
  4256	004106'	004737	014022'				JSR	PC,CKTOCT	;TYPE R0 FOR START BIAS
  4257	004112'	005700					TST	R0		;SKIP LEADING ZEROS IF ZERO
  4258	004114'	001404					BEQ	66$		;
  4259	004116'	004037	014000'				JSR	R0,CKTSTR	;ADD ZEROS FOR FULL ADDRESS
  4260	004122'	030060	   000				.ASCIZ	"00"		;
  4261		004126'					.EVEN			;
  4262	004126'	004037	014000'			66$:	JSR	R0,CKTSTR	;
  4263	004132'	026440	000040				.ASCIZ	" - "		;
  4264							.EVEN			;
  4265	004136'	013700	172352				MOV	KISAR5,R0	;GET END OF BLOCK ADDRESS BIAS
  4266	004142'	005300					DEC	R0		;BACK TO LAST GOOD BIAS
  4267	004144'	004737	014022'				JSR	PC,CKTOCT	;
  4268	004150'	004037	014000'				JSR	R0,CKTSTR	;
  4269	004154'	033467	   000				.ASCIZ	"77"		;
  4270		004160'					.EVEN			;
  4271	004160'	000207					RTS	PC		;
  4272										;
  4273	004162'				70$:				;
  4274		   000				    .ENDC ;NDF M$$MGE
  4275	004162'					FALLR	CKCOR		;
  4276					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 16
C11DMC.MAC    10-AUG-79 16:08			CHECK KT11 HARDWARE

  4278
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 17
C11DMC.MAC    10-AUG-79 16:08			CHECK KT11 HARDWARE

  4280
  4281					.SBTTL		CHECK MEMORY - SLIDING BIT PATTERN
  4282					;
  4283					; PERFORM A SIMPLE READ/WRITE MEMORY TEST -
  4284					;THE PATTERN USED IS A SLIDING BIT, WITH THE
  4285					;BIT IN EACH OF THE 16 BIT POSITIONS AND THE
  4286					;LAST PATTERN BEING ALL 0'S.
  4287					;
  4288	004162'				CKCOR:
  4289		   001				    .IF NDF M$$MGE
  4290						CLR	R0		;FIRST ADR TO CHECK
  4291						MOV	#10$,R1		;LIMIT TO CHECK
  4292									;CHECK IN TWO PIECES, SKIPPING
  4293									;  THE AREA OF THE SUBROUTINE,
  4294									;  SO AS NOT TO CLOBBER OURSELVES
  4295						JSR	PC,10$		;CHECK LOW CORE
  4296						MOV	#CKMPAR,R0	;BEGIN CHECKING HERE NOW
  4297						MOV	PHYLIM,R1	;AND STOP HERE
  4298						JSR	PC,10$		;
  4299						JSR	R0,CKTCRL	;PRINT AMOUNT OF CORE
  4300						.ASCIZ	\   \		;
  4301						.EVEN			;
  4302						MOV	PHYLIM,R0	;GET AMOUNT
  4303						JSR	PC,CKTOCT	;PRINT IT
  4304						JSR	R0,CKTSTR	;FOLLOWED BY MSG:
  4305						.ASCIZ	\ BYTES OF UNMAPPED MEMORY\
  4306						.EVEN			;
  4307						BR	CKMPAR		;ALL OK, SKIP TO PARITY CHECKER
  4308						    .IFF
  4309	004162'	004037	013774'			JSR	R0,CKTCRL	;
  4310	004166'	040515	050120	042105		.ASCIZ	"MAPPED PHYSICAL MEMORY TEST..."
	004174'	050040	054510	044523
	004202'	040503	020114	042515
	004210'	047515	054522	052040
	004216'	051505	027124	027056
	004224'	   000
  4311		004226'				.EVEN			;
  4312	004226'	005037	172352			CLR	KISAR5		;START AT LOWEST POSSIBLE ADDRESS
  4313					;;;;	MOV	#PD.PLF!<6*PD.AC0>,KISDR5 ;FULL PAGE, R/W ACCESS (SET ALREADY)
  4314	004232'	012737	004330'	000004		MOV	#80$,NXMVEC	;SET UP BUS ERROR VECTOR
  4315		002000				CKCPSZ	= 1024.		;SET UP SIZE OF PAGE TO CHECK
  4316	004240'	005001				CLR	R1		;
  4317	004242'	010100			8$:	MOV	R1,R0		;SET UP POINTER, CONSIDERING NON-ZERO START
  4318	004244'	005400				NEG	R0		;CHANGE NEGATIVE WORD COUNT
  4319	004246'	006300				ASL	R0		;  TO POSITIVE BYTE ADDRESS OFFSET
  4320	004250'	062700	120000			ADD	#PAGE5,R0	;MAP THROUGH APR5
  4321	004254'	062701	002000			ADD	#CKCPSZ,R1	;SET UP COUNT TO TEST
  4322	004260'	004737	004412'			JSR	PC,10$		;CALL CHECKER FOR DEFINED PAGE
  4323	004264'	062737	000020	172352		ADD	#CKCPSZ/BSFACT.,KISAR5 ;UP MAPPING REG TO NEXT PAGE
  4324	004272'	023737	172352	001170'		CMP	KISAR5,PHYLIM	;PAST ALL OF PHYSICAL MEMORY?
  4325	004300'	101760				BLOS	8$		;NOT YET
  4326	004302'	004037	013774'			JSR	R0,CKTCRL	;ADVERTISE COMPLETION
  4327	004306'	004411	027056	041456		.ASCIZ	"		...COMPLETE"<15><12>
	004314'	046517	046120	052105
	004322'	006505	000012
  4328						.EVEN			;
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 17-1
C11DMC.MAC    10-AUG-79 16:08			CHECK MEMORY - SLIDING BIT PATTERN

  4329	004326'	000512				BR	CKMPAR		;
  4330									;
  4331	004330'				80$:				;THIS TRAP HANDLER IS NEEDED ONLY IF THERE
  4332									;  CAN BE HOLES IN THE PHYSICAL MEMORY
  4333	004330'	021627	004420'			CMP	(SP),#15$	;EXPECTED TRAP FROM CHECKER?
  4334	004334'	001422				BEQ	82$		;OKAY
  4335	004336'					CK11SC	<CKEPC!CKEMSG>,<BAD NXM TRAP IN MEM CHK>
  4336	004340'	040502	020104	054116		.ASCIZ	"BAD NXM TRAP IN MEMORY CHECKER"<377>
	004346'	020115	051124	050101
	004354'	044440	020116	042515
	004362'	047515	054522	041440
	004370'	042510	045503	051105
	004376'	000377
  4337						.EVEN			;
  4338	004400'	000400				BR	82$		;
  4339	004402'	012716	004550'		82$:	MOV	#40$,(SP)	;SET RECOVERY ADDRESS
  4340	004406'	000002				RTI			;RECOVER
  4341		   000				    .ENDC ;NDF M$$MGE
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 17-2
C11DMC.MAC    10-AUG-79 16:08			CHECK MEMORY - SLIDING BIT PATTERN

  4343					; MEMORY CHECKER SUBROUTINE, CALLED FROM ABOVE, AND SKIPPED AROUND INLINE
  4344					;
  4345	004410'	000000			1$:	.WORD	0		;LOCAL LOWER LIMIT WORD
  4346	004412'	012702	000001		10$:	MOV	#1,R2		;SET UP TEST PATTERN
  4347	004416'	011003				MOV	(R0),R3		;SAVE CONTENTS OF OBJECT LOCATION
  4348	004420'				15$:				;LEGAL TRAP OCCURS HERE
  4349	004420'	012737	177777	004410'		MOV	#-1,1$		;SET LIMIT WORD NON-ZERO
  4350	004426'	005010				CLR	(R0)		;CLEAR OBJECT WORD
  4351	004430'	005737	004410'			TST	1$		;REACHED LOWER LIMIT?
  4352	004434'	001006				BNE	20$		;NO, CONTINUE WITH TEST
  4353									;YES, SET VALUES TO SKIP TESTING THIS CODE AREA
  4354	004436'	062700	000142			ADD	#60$-1$,R0	;POINT PAST THIS CODE
  4355	004442'	162701	000061			SUB	#<60$-1$>/2,R1	;ADJUST COUNT FOR SKIPPING TEST
  4356	004446'	003361				BGT	10$		;NO PAGE BREAK RESULTED, RESUME TEST
  4357	004450'	000207				RTS	PC		;CODE COVERS PAGE BREAK, RETURN R1 LE ZERO
  4358									;
  4359	004452'				20$:				;
  4360	004452'	010210			22$:	MOV	R2,(R0)		;STUFF CURRENT PATTERN
  4361	004454'	005110				COM	(R0)		;INVERT IT
  4362	004456'	005110				COM	(R0)		;AND BRING IT BACK
  4363	004460'	021002				CMP	(R0),R2		;DID IT SURVIVE?
  4364	004462'	001411				BEQ	30$		;YES
  4365	004464'					CKSERR	R2,<(R0)>,R0	;SAVE GD,BD,ADR
  4366	004472'					CK11SC	<CKEMSE!CKEPC!CKEGB>,<CKMG01>,<MEMORY ERROR>,<S..MEM>
  4367	004504'	000400				BR	30$		;
  4368	004506'	006302			30$:	ASL	R2		;ADVANCE PATTERN
  4369	004510'	001360				BNE	22$		;REPEAT UNTIL R2 IS ZERO
  4370	004512'	103757				BCS	22$		;  AND EVEN THEN, DO IT ONCE MORE
  4371	004514'	010310				MOV	R3,(R0)		;RESTORE RIGHTFUL DATA
  4372	004516'	005110				COM	(R0)		;BLAP IT, TOO
  4373	004520'	005110				COM	(R0)		;  BACK AND FORTH
  4374	004522'	022003				CMP	(R0)+,R3	;CHECK FOR SURVIVAL AND ADVANCE POINTER
  4375	004524'	001411				BEQ	40$		;OKAY
  4376	004526'					CKSERR	R3,<-(R0)>,R0	;SAVE GD,BD,ADR
  4377	004534'					CK11SC	<CKEMSE!CKEPC!CKEGB>,<CKMG01>,<MEMORY ERROR>,<S..MEM>
  4378	004546'	000400				BR	40$		;
  4379	004550'	077160			40$:	SOB	R1,10$		;DO OVER THE WHOLE DEFINED LIMIT OF THE PAGE
  4380	004552'	000207			60$:	RTS	PC		;THEN RETURN
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 17-3
C11DMC.MAC    10-AUG-79 16:08			CHECK MEMORY - SLIDING BIT PATTERN

  4382					; CHECK THE MEMORY PARITY OPTION
  4383					;
  4384	004554'				CKMPAR:					;START CHECKING CORE HERE
  4385		   001			.IF EQ <PDP11-40.>
  4386						MOV	#N.MM11,CKDNAM		;SAVE NAME OF "DEVICE"
  4387						CLR	CKDEVN			;"UNIT" IS 0
  4388						MOV	#MP.REG,R1		;OPTION REGISTER
  4389						MOV	R1,CHKCHR+CKDA		;SAVE ADR IN CASE NEED TO TYPE IT
  4390						MOV	NXMVEC,-(SP)
  4391						MOV	#MP.VEC,CHKCHR+CKDV	;VECTOR
  4392					 FOR INTERRUPTS
  4393						MOV	#60$,NXMVEC		;IN CASE PARITY OPTION NOT INSTALLED
  4394						CLR	MP.REG			;TRY TO CLEAR MEMORY PARITY REGISTER
  4395						MOV	@P,NXMVEC		;RESTORE TRAP VECTOR
  4396						JSR	R5,CHKBIT		;CHECK READ/WRITE BITS
  4397						107745
  4398					;NOW CHECK INTERRUPTS FROM PARITY CONTROL
  4399					; THIS IS DIFFICULT CUZ SETTING MP.ENB & MP.ERR WON'T CAUSE INTERRUPT
  4400						CLR	R0			;VECTOR WE TOOK WILL APPEAR HERE
  4401						MOV	#MP.WWP,@R1		;WE WANT TO WRITE WRONG PARITY
  4402						MOV	CKMPAR,CKMPAR		;WRITE A BAD WORD
  4403					;
  4404						CLR	@R1			;BUT ONLY ONE WORD !
  4405						TST	CKMPAR			;TRY FOR AN INTERRUPT
  4406						NOP				;IN CASE SLOW
  4407						TST	R0			;SEE IF WE GOT ONE
  4408						BEQ	32$
  4409						CK11SC	<CKEMSE!CKEDID!CKEPC>,CKMG07,<INTERRUPTED WHEN NOT ENABLED>
  4410					32$:	MOV	#MP.ENB,@R1		;NOW LETS GET THE INTERRUPT
  4411						TST	CKMPAR
  4412						CLR	@R1			;DISABLE FURTHER INTERRUPTS
  4413						MOV	CKMPAR,CKMPAR		;WRITE BACK RIGHT
  4414						TST	R0			;DID WE GET THE INTERRUPT ?
  4415						BNE	34$
  4416						CK11SC	<CKEDID!CKEMSE!CKEPC>,CKMG04,<INTERRUPT DID NOT OCCUR>
  4417						BR	80$
  4418					;
  4419					34$:	CMP	R0,CHKCHR+CKDV		;WAS INTERRUPT RIGHT?
  4420						BEQ	36$			;YES.
  4421						CKSERR	<CHKCHR+CKDV>,R0,<#CKMPAR>	;GD,BD,ADR
  4422						CK11SC	<CKEMSE!CKEDID!CKEPC!CKEGB>,CKMG05,<interrupted to wrong vector>
  4423						BR	80$			;DONE.
  4424					;
  4425					.PAGE
  4426					; COME HERE IF PARITY OPTION IS PRESENT AND WORKING
  4427					;
  4428					36$:	JSR	R0,CKTCRL		;PRINT MESSAGE ABOUT IT
  4429						.ASCIZ	\     MF11-UP\
  4430						.EVEN
  4431						MOV	#MP.ENB,MP.REG		;ENABLE PARITY ERRORS
  4432						BR	80$			;ALL DONE.
  4433					;
  4434					;HERE IF WE GET A BUS TRAP WHILE ACCESSING THE PARITY CONTROL REG
  4435					60$:	MOV	(SP)+,(SP)+		;CLEAN OFF STACK
  4436						CK11SC	<CKEDID!CKEPC!CKEMSE>,CKMG06,<not found>
  4437					;
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 17-4
C11DMC.MAC    10-AUG-79 16:08			CHECK MEMORY - SLIDING BIT PATTERN

  4438		   002			.IF DF MP.ARM
  4439						MOV	#402,MP.ARM		;MP.ARM CONTAINS A MOV #MP.ENB,MP.REG;
  4440										; THIS TURNS IT INTO A BR .+6
  4441		   001			.ENDC
  4442					80$:	MOV	(SP)+,NXMVEC
  4443					;
  4444		   000			.ENDC;.IF EQ <PDP11-40.>
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 17-5
C11DMC.MAC    10-AUG-79 16:08			CHECK MEMORY - SLIDING BIT PATTERN

  4446					; SEE IF ROM = BM873 OR M9301 IS PRESENT
  4447					;
  4448		   001				    .IF DF FT.ROM
  4449		   002				    .IF NE FT.ROM
  4450					CK.ROM:	MOV	NXMVEC,-(SP)		;SAVE BUS TRAP VECTOR
  4451						MOV	#20$,NXMVEC
  4452						TST	ROMADR			;IS ROM REALLY HERE ?
  4453						BR	90$			;YES
  4454					;
  4455					;HERE BECAUSE ROM NOT PRESENT
  4456					20$:	CLR	GO.ROM			;MAKE JMP ROMADR = HALT
  4457						MOV	(SP)+,(SP)+		;CLEAN OFF STACK
  4458					;
  4459					90$:	MOV	(SP)+,NXMVEC
  4460		   001				    .ENDC;NE FT.ROM
  4461		   000				    .ENDC;DF FT.ROM
  4462					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 18
C11DMC.MAC    10-AUG-79 16:08			CHECK MEMORY - SLIDING BIT PATTERN

  4464
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 19
C11DMC.MAC    10-AUG-79 16:08			CHECK MEMORY - SLIDING BIT PATTERN

  4466
  4467					.SBTTL		CHECK KW11-L HDW
  4468					;
  4469					; BE SURE CLOCK IS PRESENT AND TICKS
  4470					;
  4471	004554'	012737	000757'	001156'	CHKCLK:	MOV	#N.KW.L,CKDNAM		;SET UP FOR NAME
  4472	004562'	042737	100000	001152'		BIC	#CKFIDT,CHKFLG		;SO WE PRINT DEV ID
  4473	004570'	012704	177546			MOV	#CLKWRD,R4		;SET UP DEV ADR
  4474	004574'	010437	015476'			MOV	R4,CHKCHR+CKDA		;SET UP DEVICE ADR
  4475	004600'	012737	000100	015500'		MOV	#CLKVEC,CHKCHR+CKDV	;SET UP VECTOR ADR
  4476	004606'	005037	001154'			CLR	CKDEVN			;DEVICE NUMBER
  4477	004612'	012737	004720'	000004		MOV	#20$,NXMVEC		;SET BUS TRAP IN CASE CLOCK IS NOT PRESENT
  4478	004620'	005714				TST	(R4)			;TRAP IF NOT INSTALLED
  4479	004622'	012737	014756'	000004		MOV	#CKBUST,NXMVEC		;WHERE TO GO ON BUS TRAP
  4480	004630'	013746	000100			MOV	CLKVEC,-(SP)		;SAVE WHERE TO GO ON INT
  4481	004634'	012737	004742'	000100		MOV	#80$,CLKVEC		;SETUP INTERRUPT VECTOR
  4482	004642'	012737	000003	004754'		MOV	#3,CHKTIM		;TIME 3 TICKS
  4483	004650'	005037	177776			CLR	PS			;LET INTERRUPTS HAPPEN
  4484	004654'	012714	000100			MOV	#KW.INE,(R4)		;ENABLE THE CLOCK
  4485	004660'	001412				BEQ	15$			;IF COUNTED OUT ALREADY EVIL
  4486	004662'	005000				CLR	R0			;INITIALIZE WATCHDOG COUNTER
  4487	004664'	005737	004754'		10$:	TST	CHKTIM
  4488	004670'	001432				BEQ	CKCLK9			;BRANCH IF TIMED OUT ALREADY
  4489	004672'	077004				SOB	R0,10$
  4490	004674'					CK11SC	<CKEPC!CKEDID>,<Slow>,<NO RESPONSE FROM KW11>
  4491	004676'	066123	073557	000377		.ASCIZ	\Slow\<377>
  4492						.EVEN
  4493	004704'	000424				BR	CKCLK9			;
  4494	004706'				15$:	CK11SC	<CKEPC!CKEDID>,<Fast>,<KW11 TICKING TOO FAST>
  4495	004710'	060506	072163	000377		.ASCIZ	\Fast\<377>
  4496						.EVEN
  4497	004716'	000417				BR	CKCLK9			;
  4498	004720'				20$:	CK11SC	<CKEPC!CKEDID>,<Not Present>,<CAN'T ACCESS KW11>
  4499	004722'	067516	020164	071120		.ASCIZ	\Not Present\<377>
	004730'	071545	067145	177564
	004736'	   000
  4500		004740'				.EVEN
  4501	004740'	000406				BR	CKCLK9			;
  4502					;
  4503					; KW11 INTERRUPT HANDLER
  4504					;
  4505	004742'	005337	004754'		80$:	DEC	CHKTIM		;COUNT OUT TIMER
  4506	004746'	001001				BNE	90$		;
  4507	004750'	005014				CLR	(R4)		;TURN OFF CLOCK
  4508	004752'	000002			90$:	RTI			;DISMISS INTERRUPT
  4509									;
  4510	004754'	000000			CHKTIM:	.WORD	0		;
  4511	004756'				CKCLK9:	SPL	7		;SET TO LEVEL 7
  4512	004764'	012714	000100			MOV	#KW.INE,(R4)	;ENABLE INT
  4513	004770'	012637	000100			MOV	(SP)+,CLKVEC	;RESTORE WHERE TO GO ON INT
  4514	004774'	004537	010032'			JSR	R5,CHKINL	;FIND THE INT LEVEL
  4515	005000'	177777				-1			;DELAY TO WAIT FOR INT
  4516	005002'	042737	000100	177546		BIC	#KW.INE,CLKWRD	;DISABLE CLK INTS
  4517	005010'	004037	013774'			JSR	R0,CKTCRL	;INDICATE CLOCK PRESENT
  4518	005014'	053513	030461	046055		.ASCIZ	\KW11-L checked\
	005022'	061440	062550	065543
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 19-1
C11DMC.MAC    10-AUG-79 16:08			CHECK KW11-L HDW

	005030'	062145	   000
  4519		005034'				.EVEN			;
  4520	005034'	004737	001224'			JSR	PC,CKAKW1	;CALL TO MAIN FOR CLOCK
  4521									;
  4522	005040'					FALLR	.		;FALL INTO WHATEVER COMES NEXT
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 19-2
C11DMC.MAC    10-AUG-79 16:08			CHECK DL10 HDW

  4524					.SBTTL		CHECK DL10 HDW
  4525					;
  4526	005040'				CKDL10:
  4527		   001				    .IF NE FTDL10	;IF DOESN'T HAVE A DL10,DON'T CHECK IT
  4528						MOV	DL10AD,R4	;IF "DL10AD" IS NON 0 A DL10 IS PRESENT
  4529									; AND R4 WILL BE LOADED WITH BASE ADR
  4530						BEQ	10$		;BRANCH IF WE DO NOT
  4531						BIC	#CKFIDT,CHKFLG	;SO WE PRINT DEV ID
  4532						MOV	#CKND10,CKDNAM	;DEVICE NAME
  4533						CLR	CKDEVN		;DEVICE NUMBER
  4534						MOV	R4,R1		;PUT DEVICE ADDR FOR CHKBIT
  4535						MOV	R4,CHKCHR+CKDA	;PUT IN CHARACT TABLE FOR ERROR REPORTING
  4536						JSR	R5,CHKBIT	;CHECK THE FOLLOWING BITS
  4537						DL.B00!DL.B01!DL.INE!DL.ERE
  4538						JSR	R5,CHKDLX	;CHECK SET/CLEAR OF
  4539						DL.WCO			;WORD COUNT OVERFLOW
  4540						JSR	R5,CHKDLX	;CHECK SET/CLEAR OF
  4541						DL.PAR			;PARITY ERROR
  4542						JSR	R5,CHKDLX	;CHECK SET/CLEAR OF
  4543						DL.NXM			;NON EX MEM
  4544						JSR	R5,CHKDLX	;CHECK SET/CLEAR OF
  4545						DL.11I
  4546					8$:	MOV	#DL.B01,(R4)	;SET DL10 FOR LEVEL 5
  4547						MOV	#DL.VEC,CHKCHR+CKDV;PUT DEVICE VECTOR IN TABLE FOR CKINT
  4548						$CKINT	R4,R4,DL.INE,DL.11I,DL.11C
  4549						$CKINT	R4,R4,DL.ERE,<DL.PAR!DL.NXM!DL.WCO>,<DL.CNX!DL.CPE!DL.CWC>
  4550						JSR	R0,CKTCRL	;NOTE PRESENCE OF DL10
  4551						.ASCIZ	\     DL10\
  4552						.EVEN
  4553					10$:
  4554		   000				    .ENDC ;.IF NE FTDL10
  4555					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 20
C11DMC.MAC    10-AUG-79 16:08			CHECK DL10 HDW

  4557
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 21
C11DMC.MAC    10-AUG-79 16:08			CHECK DL10 HDW

  4559
  4560					.SBTTL		DEVICE SCAN AND CHECK
  4561					;
  4562					;THE SAME ROUTINE IS USED FOR FLOATING AND FIXED DEVICES
  4563					;HOWEVER FOR FIXED DEVICES THE VECTOR MULTIPLE MUST BE 0
  4564					;  *** WARNING: ***  CKCDEV IS BOTH CODE AND DATA BASE.
  4565					;DO *NOT* PUT ANYTHING OTHER THAN "DEVICE" MACROS BETWEEN CKCDEV AND CKCEND!
  4566					;
  4567					; INVOCATION:
  4568					;	DEVICE	A,MAXN,VI,HI,VM,NAM,FV
  4569					;
  4570					;	ARG	A	;DEVICE ADDRESS OR 0 IF FLOATING DEVICE
  4571					;	ARG	MAXN	;MAXIMUM NUMBER OF DEVICES
  4572					;	ARG	VI	;VECTOR INCREMENT
  4573					;	ARG	HI	;HARDWARE INCREMENT
  4574					;	ARG	VM	;VECTOR MULTIPLE
  4575					;	ARG	NAM	;DEVICE NAME ABBREVIATION
  4576					;	ARG	FV	;FIRST VECTOR ADR (FIXED DEV ONLY)
  4577					;
  4578	005040'	004037	013774'			JSR	R0,CKTCRL		;
  4579	005044'	062012	073145	061551		.ASCII	<12>"device scan report assumes"
	005052'	020145	061563	067141
	005060'	071040	070145	071157
	005066'	020164	071541	072563
	005074'	062555	   163
  4580					.IIF DF CKSTD .ASCII	<15><12>"standard PDP-11 fixed and floating assignments"
  4581		   001				    .IF DF CKDN2X
  4582		   002				    .IF NE CKDN2X&B0
  4583	005077'	   015	020012	020040		.ASCII	<15><12>"       DN20"
	005104'	020040	020040	047104
	005112'	030062
  4584		   001				    .ENDC
  4585		   002				    .IF NE CKDN2X&B1
  4586	005114'	005015	020040	020040		.ASCII	<15><12>"       DN21"
	005122'	020040	042040	031116
	005130'	   061
  4587		   001				    .ENDC
  4588		   002				    .IF NE CKDN2X&B5
  4589	005131'	   015	020012	020040		.ASCII	<15><12>"       DN25"
	005136'	020040	020040	047104
	005144'	032462
  4590		   001				    .ENDC
  4591	005146'	063040	074151	062145		.ASCII	" fixed assignments (no floating)"
	005154'	060440	071563	063551
	005162'	066556	067145	071564
	005170'	024040	067556	063040
	005176'	067554	072141	067151
	005204'	024547
  4592		   000				    .ENDC ;DF CKDN2X
  4593	005206'	   000				.BYTE	0
  4594		005210'				.EVEN				;
  4595					;
  4596					;
  4597	005210'				CKCDEV:					;FIXED ADDRESS, FIXED VECTOR DEVICES
  4598	005210'				CHKCD:	DEVICE	CD.STS,1,0,0,0,CD,CD.VEC	;CD20(CD11)
  4599		000034						CKCADD=.-CKCDEV			;SIZE OF "DEVICE" BLOCK
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 21-1
C11DMC.MAC    10-AUG-79 16:08			DEVICE SCAN AND CHECK

  4600	005244'				CHKCR:	DEVICE	CR.STS,1,0,0,0,CR,CR.VEC	;CR11
  4601	005300'					DEVICE	KG.STS,8.,0,10,0,KG,0		;KG11
  4602	005334'					DEVICE	LE.STS,2,-10,10,0,LE,LE.VEC	;LP11
  4603	005370'					DEVICE	LP0STS,2,-4,20,0,LP,LP.VEC	;LP20
  4604	005424'					DEVICE	PP.STS,1,0,0,0,PP,PP.VEC	;PP11(PC11)
  4605	005460'					DEVICE	PR.STS,1,0,0,0,PR,PR.VEC	;PR11(PC11)
  4606	005514'					DEVICE	TC.STS,1,0,0,0,TC,TC.VEC	;TC11
  4607	005550'					DEVICE	TM.STS,1,0,0,0,TM,TM.VEC	;TM11
  4608	005604'					DEVICE	177446,1,0,0,0,RC,210		;RC11
  4609	005640'					DEVICE	177460,1,0,0,0,RF,204		;RF11
  4610	005674'					DEVICE	176700,1,0,0,0,RH,254		;RH11
  4611	005730'				CHKRP:	DEVICE	176710,1,0,0,0,RP,254		;RP11-C
  4612	005764'					DEVICE	177500,1,0,0,0,TA,260		;TA11
  4613	006020'					DEVICE	177404,1,0,0,0,RK,220		;RK11
  4614	006054'					DEVICE	177170,1,0,0,0,RX,264		;RX11
  4615	006110'					DEVICE	172540,1,0,0,0,KW.P,104		;KW11-P
  4616					;;;;	DEVICE	DS.DVA,1,20,10,0,DS,DS.VEC	;DS11
  4617	006144'				CHKDTE:	DEVICE	174440,4,-4,40,0,DTE2,774	;DTE20
  4618		   001				    .IF DF CKSTD		;STANDARD FLOATING ASSIGNMENTS
  4619										;FIXED ADDRESS, FLOATING VECTOR DEVICES
  4620						DEVICE	174770,32.,10,-10,10,DP,0	;DP11
  4621						DEVICE	175200,64.,4,10,4,DN,0		;DN11
  4622						DEVICE	170500,16.,4,10,10,DM,0		;DM11BB
  4623						DEVICE	172600,16.,4,10,4,R6,0		;PA611RDR
  4624						DEVICE	172700,16.,4,10,4,P6,0		;PA611PNCH
  4625						DEVICE	175610,16.,10,10,10,DL.E,0	;DL11-E
  4626					.IIF DF SY0880	DEVICE	177776,1,10,0,10,NL,0	;(NULL DEVICE, VECTOR SPACER)
  4627										;FULLY FLOATING DEVICES
  4628						DEVICE	0,16.,10,10,10,DJ,0		;DJ11
  4629						DEVICE	0,16.,10,20,10,DH,0		;DH11
  4630						DEVICE	0,16.,10,10,10,DQ,0		;DQ11
  4631						DEVICE	0,16.,10,10,10,DU,0		;DU11
  4632					.IIF DF SY0880	DEVICE	0,1,10,10,10,NL,0	;(NULL DEVICE, ADDRESS SPACER)
  4633						DEVICE	0,16.,10,10,10,DUP,0		;DUP11
  4634					.IIF DF SY0880	DEVICE	0,1,10,10,10,NL,0	;(NULL DEVICE, ADDRESS SPACER)
  4635					.IIF DF SY0880	DEVICE	0,1,10,10,10,NL,0	;(NULL DEVICE, ADDRESS SPACER)
  4636						DEVICE	0,16.,10,10,4,DMC,0		;DMC11
  4637						DEVICE	0,3.,10,10,4,KMC,0		;KMC11
  4638		   000				    .ENDC ;DF CKSTD
  4639											;
  4640		   001				    .IF DF CKDN2X		;-20 FRONT END CONFIGURATIONS
  4641		   002					.IF NE CKDN2X&B0	;DN20
  4642	006200'					DEVICE	160540,3,10,10,0,KMC,540	;KMC11
  4643	006234'					DEVICE	160300,12.,10,10,0,DUP,570	;DUP11
  4644	006270'					DEVICE	175630,1,10,10,0,DL.E,740	;DL11-E (DN20 #1)
  4645	006324'					DEVICE	175640,1,10,10,0,DL.E,730	;DL11-E (DN20 #2)
  4646	006360'					DEVICE	175650,1,10,10,0,DL.E,720	;DL11-E (DN20 #3)
  4647		   001					.ENDC ;NE CKDN2X&B0
  4648		   002					.IF NE CKDN2X&B1	;DN21
  4649	006414'					DEVICE	160740,4,10,10,0,DMC,670	;DMC11
  4650		   001					.ENDC ;NE CKDN2X&B1
  4651		   002					.IF NE CKDN2X&B5	;DN25
  4652	006450'					DEVICE	160640,3,10,10,0,KMC,300	;KMC11
  4653	006504'					DEVICE	160010,16.,10,10,0,DZ,340	;DZ11
  4654		   001					.ENDC ;NE CKDN2X&B5
  4655		   000				    .ENDC ;DF CKDN2X
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 21-2
C11DMC.MAC    10-AUG-79 16:08			DEVICE SCAN AND CHECK

  4656											;
  4657	006540'				CKCEND:					;END OF DEVICES TO CHECK
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 21-3
C11DMC.MAC    10-AUG-79 16:08			CHK11 COMPLETION

  4659					.SBTTL		CHK11 COMPLETION
  4660					;
  4661	006540'	004037	013774'		CHK.90:	JSR	R0,CKTCRL	;
  4662	006544'	004412	044103	030513		.ASCIZ	<12>"	CHK11 complete"<15><12><12>
	006552'	020061	067543	070155
	006560'	062554	062564	005015
	006566'	000012
  4663						.EVEN			;
  4664	006570'	012700	014631'			MOV	#CK.BUF,R0	;SEND A BLANK
  4665	006574'	004737	014536'			JSR	PC,CKBFSH	;  MESSAGE TO REMOTE
  4666	006600'	005037	000006			CLR	@#6		;SET UP HALT TRAP
  4667	006604'	012737	000006	000004		MOV	#6,@#4		;  FOR NEXT PROGRAM
  4668	006612'	012637	172314			MOV	(SP)+,KISDR6	;RESTORE PAGE 6
  4669	006616'	012637	172354			MOV	(SP)+,KISAR6	;  MAPPING REGISTERS
  4670	006622'	012605				MOV	(SP)+,R5	;RESTORE
  4671	006624'	012604				MOV	(SP)+,R4	;  CALLER'S
  4672	006626'	013701	001162'			MOV	CK.DMC,R1	;  REGISTERS
  4673	006632'	013706	001164'			MOV	CK.CSP,SP	;RESTORE CALLER'S SP
  4674	006636'	000177	172316			JMP	@CK.CAL		;RETURN TO CALLER
  4675					.SBTTL	END OF CHK11 MAINLINE
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 21-4
C11DMC.MAC    10-AUG-79 16:08		GENERAL SUBROUTINES

  4677					.SBTTL	GENERAL SUBROUTINES
  4678					;**** GOT RID OF ALL THE STANDARD CHK11 VECTOR SETUP HERE ****;
  4679					;**** AFTER ALL, THIS IS ONLY THE TERTIARY LOADER...      ****;
  4680					.SBTTL		LOOK FOR AND CHECK SYSTEM DEVICES
  4681					;
  4682					; CALLING SEQUENCE (GENERATED BY MACRO "DEVICE"):
  4683					;	JSR	R5,CHKDEV
  4684					;	(OFFSET
  4685					;	  NAME)
  4686					;	D.BADR	.WORD	ADDRESS OF 1ST DEVICE REGISTER
  4687					;	D.MAXL	.BYTE	MAX # OF DEVICES TO SEEK
  4688					;	D.VINC	.BYTE	VECTOR INC
  4689					;	D.HINC	.BYTE	HDW INC
  4690					;	D.VMUL	.BYTE	1ST VEC MULTIPLE
  4691					;	D.CNTP	.WORD	<ADR OF NUMBER OF DEVICES OR ZERO>
  4692					;	D.NAMP	.WORD	<ADR OF .ASCIZ \NAME\>
  4693					;	D.DIAG	.WORD	<ADR OF ROUTINE TO VERIFY OPERATION>
  4694					;	D.MAIN	.WORD	<ADR OF MAIN PROGRAM ROUTINE FOR DEVICE>
  4695					;	D.MPVC	.WORD	<ADR OF TABLE WHICH CONTAINS MAIN PROG VECTORS OR 0>
  4696					;	D.CNTF	.WORD	<# OF DEVICES FOUND>
  4697					;	D.FRSV	.WORD	<FIRST VECTOR FOUND>
  4698					;	D.PRIO	.WORD	<PI LEVEL>
  4699					;	D.FVFD	.WORD	<FIRST DEV VECTOR FOR FIXED TYPE DEV>
  4700					;	D.NEXT	(RETURN ADDRESS)
  4701					;
  4702	006642'				CHKDEV:			;
  4703								;LOOK FOR AND COUNT PLAUSIBLE DEVICE TYPES
  4704								;
  4705	006642'	016537	000010	001156'		MOV	D.NAMP(R5),CKDNAM ;REMEMBER DEVICE NAME
  4706	006650'	005002				CLR	R2		;INITIALIZE COUNTER FOR DEVICES
  4707									;GET DEVICE VECTOR
  4708	006652'	013703	010706'			MOV	CHKFLV,R3	;ASSUME FLOATING VECTOR
  4709	006656'	105765	000005			TSTB	D.VMUL(R5)	;BUT SEE IF FIXED
  4710	006662'	001002				BNE	4$		;FLOATING VECTOR
  4711	006664'	016503	000026			MOV	D.FVFD(R5),R3	;FIXED, GET PRE-ASSIGNED VECTOR
  4712									;
  4713	006670'	011504			4$:	MOV	(R5),R4		;GET HDW ADR FOR 1ST DEVICE
  4714	006672'	001012				BNE	6$		;ADDRESS IS NOT ZERO, HENCE FIXED DEVICE
  4715									;DEV EXPECTS TO FLOAT, BUMP UP TO NEXT SLOT
  4716	006674'	116501	000004			MOVB	D.HINC(R5),R1	;COMPUTE NEXT ADDRESS AS MULTIPLE OF HDW INC
  4717	006700'	060137	010710'			ADD	R1,CHKFLD	;
  4718	006704'	005301				DEC	R1		;
  4719	006706'	040137	010710'			BIC	R1,CHKFLD	;
  4720	006712'	013704	010710'			MOV	CHKFLD,R4	;COPY FOR USE
  4721	006716'	010415				MOV	R4,(R5)		;STUFF EXPECTED ADDRESS IN DEVICE TABLE
  4722	006720'				6$:				;
  4723	006720'	012737	007032'	000004	7$:	MOV	#20$,NXMVEC	;SET BUS TRAP VECTOR
  4724	006726'	005714				TST	(R4)		;CHECK TO SEE IF DEVICE IS PRESENT
  4725	006730'	012737	014756'	000004		MOV	#CKBUST,NXMVEC	;IT'S THERE, SET BUS ERR VEC BACK
  4726	006736'	005702				TST	R2		;IS THIS THE FIRST OF ITS KIND ?
  4727	006740'	001014				BNE	15$		;NO
  4728	006742'	005065	000020			CLR	D.CNTF(R5)	;YES, CLEAR NUMBER OF DEV FOUND
  4729	006746'	005065	000022			CLR	D.FRSV(R5)	;CLEAR FIRST VECTOR ADR
  4730					;;;;	CLR	D.PRIO(R5)	;CLEAR BR LEVEL
  4731	006752'	116501	000005			MOVB	D.VMUL(R5),R1	;GET ADDRESS MULTIPLE OF VECTOR
  4732	006756'	001405				BEQ	15$		;BRANCH IF FIXED VECTOR DEV
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 21-5
C11DMC.MAC    10-AUG-79 16:08			LOOK FOR AND CHECK SYSTEM DEVICES

  4733	006760'	005301				DEC	R1		;ELSE COUNT UP VECTOR MOD VMUL
  4734	006762'	010365	000026			MOV	R3,D.FVFD(R5)	;SAVE EXPECTED ADDRESS OF FIRST VECTOR
  4735	006766'	060103				ADD	R1,R3		;
  4736	006770'	040103				BIC	R1,R3		;
  4737	006772'	005202			15$:	INC	R2		;COUNT DEVICE
  4738	006774'	005265	000020			INC	D.CNTF(R5)	;COUNT DEVICE AND REMEMBER IT
  4739	007000'	116501	000003			MOVB	D.VINC(R5),R1	;GET VECTOR INCREMENT
  4740	007004'	060103				ADD	R1,R3		;COMPUTE NEW VECTOR
  4741	007006'	116501	000004			MOVB	D.HINC(R5),R1	;GET REG BLOCK INCREMENT
  4742	007012'	060104				ADD	R1,R4		;ADVANCE DEVICE ADR POINTER
  4743	007014'	021537	010710'			CMP	(R5),CHKFLD	;FLOATING DEVICE?
  4744	007020'	101737				BLOS	7$		;YES, KEEP LOOKING UNTIL GAP FOUND
  4745	007022'	120265	000002			CMPB	R2,D.MAXL(R5)	;HAVE WE CHECKED AS MANY AS WE CAN EXPECT?
  4746	007026'	001334				BNE	7$		;NO, LOOP BACK FOR REST
  4747	007030'	024646				CMP	-(SP),-(SP)	;YES, FAKE A TRAP
  4748									;WE HAVE FOUND AS MANY UNITS AS WE SOUGHT,
  4749									;  OR WE HAVE TRAPPED ON FINDING FEWER
  4750									;REPORT THE DEVICE COUNT
  4751	007032'	012737	014756'	000004	20$:	MOV	#CKBUST,NXMVEC	;RESET BUS ERROR VECTOR
  4752	007040'	022626				CMP	(SP)+,(SP)+	;POP OFF TRAP
  4753	007042'	021537	010710'			CMP	(R5),CHKFLD	;FLOATER?
  4754	007046'	101016				BHI	21$		;NO
  4755	007050'	010437	010710'			MOV	R4,CHKFLD	;YES, SAVE CURRENT ADDRESS AS GAP ADDRESS
  4756	007054'	120265	000002			CMPB	R2,D.MAXL(R5)	;TOO MANY?
  4757	007060'	101411				BLOS	21$		;NO
  4758	007062'					CK11SC	<CKEDID>,<Too many device units>
  4759	007064'	067524	020157	060555		.ASCIZ	"Too many units"
	007072'	074556	072440	064556
	007100'	071564	   000
  4760		007104'				.EVEN			;
  4761	007104'	005765	000006		21$:	TST	D.CNTP(R5)	;DO WE HAVE A REMOTE ADDRESS TO REPORT COUNT?
  4762	007110'	001402				BEQ	22$		;IF NOT, DON'T TRY
  4763	007112'	010275	000006			MOV	R2,@D.CNTP(R5)	;YES, PUT NUMBER FOR SOMEONE TO FIND
  4764	007116'	010200			22$:	MOV	R2,R0		;NUMBER OF DEVICES WE FOUND
  4765	007120'	001001				BNE	24$		;THERE ARE SOME
  4766		   001				.IF DF CKNODV
  4767						JSR	PC,CKCRLF	;DO CR/LF
  4768						JSR	R0,CKTSTR	;THERE AREN'T ANY
  4769						.ASCIZ	"no"		;
  4770						.EVEN			;
  4771						BR	25$		;
  4772						.IFF
  4773	007122'	000567				BR	40$		;AREN'T ANY - FORGET IT
  4774		   000				.ENDC
  4775	007124'	004737	013762'		24$:	JSR	PC,CKCRLF	;DO CR/LF
  4776	007130'	004737	014022'			JSR	PC,CKTOCT	;TYPE OUT THE NUMBER
  4777	007134'	012700	007532'		25$:	MOV	#70$,R0		;ASSUME FIXED ADDRESS DEVICE
  4778	007140'	021537	010710'			CMP	(R5),CHKFLD	;  BUT CHECK
  4779	007144'	101002				BHI	26$		;FIXED
  4780	007146'	012700	007542'			MOV	#72$,R0		;RATHER FLOATING
  4781	007152'	004737	013734'		26$:	JSR	PC,CKTTXT	;SAY WHICH
  4782	007156'	013700	001156'			MOV	CKDNAM,R0	;GET ADR OF ASCIZ STRING
  4783	007162'	004737	013734'			JSR	PC,CKTTXT	;TYPE DEVICE NAME
  4784	007166'	020227	000001			CMP	R2,#1		;HOW MANY ?
  4785	007172'	001402				BEQ	27$		;SINGULAR
  4786	007174'					CK11SC	<CKENCL>,<'s>	;PLURAL
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 21-6
C11DMC.MAC    10-AUG-79 16:08			LOOK FOR AND CHECK SYSTEM DEVICES

  4787	007176'	000163				.ASCIZ	\s\		;
  4788						.EVEN			;
  4789	007200'	012700	007566'		27$:	MOV	#74$,R0		;ADD TO DESCRIPTOR STRING
  4790	007204'	020227	000001			CMP	R2,#1		;USE PROPER PREPOSITION
  4791	007210'	101402				BLOS	28$		;
  4792	007212'	012700	007556'			MOV	#73$,R0		;
  4793	007216'	004737	013734'		28$:	JSR	PC,CKTTXT	;TYPE PREPOSITION
  4794	007222'	011500				MOV	(R5),R0		;GET EXPECTED DEVICE ADDRESS
  4795	007224'	004737	014022'			JSR	PC,CKTOCT	;TYPE IT OUT
  4796									;THE CURRENT DEVICE UNITS HAVE BEEN SOUGHT
  4797									;  AND COUNTED - PROCEED TO TEST ANY SO FOUND
  4798	007230'	005702				TST	R2		;WERE THERE ANY?
  4799	007232'	001523				BEQ	40$		;NO
  4800	007234'	010346				MOV	R3,-(SP)	;
  4801	007236'	010446				MOV	R4,-(SP)	;
  4802	007240'	010246				MOV	R2,-(SP)	;R2 MUST STAY ON TOP FOR COUNT
  4803	007242'	005037	001154'			CLR	CKDEVN		;CHECK UNIT 0 FIRST
  4804	007246'	016503	000026			MOV	D.FVFD(R5),R3	;GET FIRST VECTOR FOR POSSIBLE FIXED
  4805	007252'	010346				MOV	R3,-(SP)	;
  4806	007254'	004037	014000'			JSR	R0,CKTSTR	;REPORT VECTOR ADDRESS
  4807	007260'	020054	062566	072143		.ASCIZ	", vector at"	;
	007266'	071157	060440	000164
  4808						.EVEN			;
  4809	007274'	011600				MOV	(SP),R0		;
  4810	007276'	004737	014006'			JSR	PC,CKTBOC	;
  4811	007302'	012603				MOV	(SP)+,R3	;
  4812	007304'	116500	000005			MOVB	D.VMUL(R5),R0	;GET VECTOR MULTIPLE
  4813	007310'	001405				BEQ	30$		;BRANCH IF FIXED
  4814	007312'	013703	010706'			MOV	CHKFLV,R3	;GET VECTOR FOR 1ST UNIT
  4815	007316'	005300				DEC	R0		;
  4816	007320'	060003				ADD	R0,R3		;
  4817	007322'	040003				BIC	R0,R3		;
  4818	007324'	011504			30$:	MOV	(R5),R4		;GET HDW ADR FOR FIRST UNIT
  4819	007326'	001002				BNE	32$		;
  4820	007330'	013704	010710'			MOV	CHKFLD,R4	;FLOATING DEVICE
  4821	007334'	005037	015502'		32$:	CLR	CHKCHR+CKPI	;ROUTINE WILL SET PI LEVEL
  4822	007340'	016500	000012			MOV	D.DIAG(R5),R0	;ADR OF ROUTINE TO VERIFY DEVICE
  4823	007344'	001431				BEQ	34$		;BRANCH IF NO ROUTINE TO VERIFY
  4824	007346'	042737	100000	001152'		BIC	#CKFIDT,CHKFLG	;HAVEN'T TYPED ID YET
  4825	007354'	010437	015476'			MOV	R4,CHKCHR+CKDA	;SAVE DEVICE ADDRESS
  4826	007360'	010337	015500'			MOV	R3,CHKCHR+CKDV	;SAVE VECTOR ADDRESS IN TABLE
  4827	007364'	010401				MOV	R4,R1		;PUT DEV ADR IN R1, MOST WILL USE IT
  4828	007366'	005037	015504'			CLR	CHKCHR+CKFLG	;CLR AND LET DEV ROUTINE SET FLAGS
  4829	007372'					SPL	7		;MAKE SURE WE'RE AT LEVEL 7
  4830	007400'	020437	001162'			CMP	R4,CK.DMC	;IF THIS IS THE LOAD DEVICE,
  4831	007404'	001403				BEQ	33$		;  SKIP OVER DIAGNOSTICS FOR IT
  4832	007406'	010546				MOV	R5,-(SP)	;
  4833	007410'	004710				JSR	PC,(R0)		;CALL TO DEVICE CHECK
  4834	007412'	012605				MOV	(SP)+,R5	;
  4835	007414'	005765	000022		33$:	TST	D.FRSV(R5)	;SEE IF VECTOR ADR SET YET
  4836	007420'	001003				BNE	34$		;BRANCH IF SET
  4837	007422'	013765	015500'	000022		MOV	CHKCHR+CKDV,D.FRSV(R5) ;SET FIRST VECTOR FOUND
  4838					;;;;	MOV	CHKCHR+CKPI,D.PRIO(R5) ;SET FIRST PI LEVEL FOUND
  4839	007430'	021527	175400		34$:	CMP	(R5),#DS.DVA	;DS11 ARE SPECIAL SO DON'T CALL MAIN HERE
  4840	007434'	001404				BEQ	35$		;BRANCH IF DS11
  4841	007436'	012700	015476'			MOV	#CHKCHR,R0	;POINT TO THE CHARACTERISTIC TABLE
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 21-7
C11DMC.MAC    10-AUG-79 16:08			LOOK FOR AND CHECK SYSTEM DEVICES

  4842	007442'	004775	000014			JSR	PC,@D.MAIN(R5)	;CALL TO MAIN PROGRAM
  4843	007446'	116500	000003		35$:	MOVB	D.VINC(R5),R0	;GET VECTOR INCREMENT
  4844	007452'	060003				ADD	R0,R3		;
  4845	007454'	116500	000004			MOVB	D.HINC(R5),R0	;HDW INCREMENT
  4846	007460'	060004				ADD	R0,R4		;POINT TO NEXT REGISTER SET
  4847	007462'	005237	001154'			INC	CKDEVN		;ON TO NEXT DEVICE NUMBER
  4848	007466'	023716	001154'			CMP	CKDEVN,(SP)	;DONE ALL UNITS YET? (SET TO 177776 BY NULL DIAG)
  4849	007472'	103720				BLO	32$		;NO, NOT YET
  4850	007474'	012602				MOV	(SP)+,R2	;
  4851	007476'	012604				MOV	(SP)+,R4	;
  4852	007500'	012603				MOV	(SP)+,R3	;
  4853	007502'				40$:				;
  4854		000000				.REPT	0
  4855							;;;;DISABLED CODE!!!
  4856						SAVE	<R3,R4>
  4857						CLR	R4		;FLAG NO MORE DEVICES
  4858						JSR	PC,@D.MAIN(R5)	;CALL MAIN PROGRAM
  4859						RESTORE	<R4,R3>
  4860						.ENDR
  4861					;
  4862					;DONE CHECKING ALL DEVICE UNITS, UPDATE FLOATING VALUES AS REQ'D
  4863					;
  4864	007502'	105765	000005			TSTB	D.VMUL(R5)	;FIXED VECTOR DEV?
  4865	007506'	001406				BEQ	50$		;YES
  4866	007510'	013746	010706'			MOV	CHKFLV,-(SP)	;NO, RESET FLOATING VECTOR
  4867	007514'	010337	010706'			MOV	R3,CHKFLV	;
  4868	007520'	012603				MOV	(SP)+,R3	;
  4869	007522'	011500				MOV	(R5),R0		;WAS THIS A FLOATING DEVICE ?
  4870	007524'	062705	000030		50$:	ADD	#D.NEXT,R5	;RETURN FOLLOWING TRAILING ARGS
  4871	007530'	000205				RTS	R5		;
  4872									;
  4873	007532'	043040	074151	062145	70$:	.ASCIZ	" Fixed "	;
	007540'	000040
  4874						.EVEN			;
  4875	007542'	043040	067554	072141	72$:	.ASCIZ	" Floating "	;
	007550'	067151	020147	   000
  4876		007556'				.EVEN			;
  4877	007556'	063040	067562	020155	73$:	.ASCIZ	" from "	;
	007564'	   000
  4878		007566'				.EVEN			;
  4879	007566'	060440	020164	   000	74$:	.ASCIZ	" at "		;
  4880		007574'				.EVEN			;
  4881					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 22
C11DMC.MAC    10-AUG-79 16:08			LOOK FOR AND CHECK SYSTEM DEVICES

  4883
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 23
C11DMC.MAC    10-AUG-79 16:08			LOOK FOR AND CHECK SYSTEM DEVICES

  4885
  4886					.SBTTL		BIT BY BIT SET/CLEAR TEST
  4887					;
  4888					; CHECK WE CAN SET/CLEAR VARIOUS BITS
  4889					;
  4890					; CALL	MOV	#<ADR OF ASCIZ \NAME\>,CKDNAM
  4891					;	MOV	<DEVICE NUMBER>,CKDEVN
  4892					;	MOV	<DEVICE REGISTER ADDRESS>,R1
  4893					;	JSR	R5,CHKBIT
  4894					;	<ALL BITS TO TEST>
  4895					;
  4896	007574'	010046			CHKBIT:	MOV	R0,-(SP)	;
  4897	007576'	010246				MOV	R2,-(SP)	;
  4898	007600'	010502				MOV	R5,R2		;USE R2 AS WORK REGISTER IN ROUTINE
  4899	007602'	052737	000340	177776		BIS	#BR7,PS		;DISABLE INTERRUPTS
  4900	007610'	011500				MOV	(R5),R0		;GET BITS TO CHECK
  4901	007612'	040011				BIC	R0,(R1)		;TRY AND CLEAR ALL OF THEM
  4902	007614'	030011				BIT	R0,(R1)		;SEE IF ALL OF THEM CLEARED?
  4903	007616'	001410				BEQ	1$		;BRANCH IF ALL CLEAR
  4904	007620'	005046				CLR	-(SP)		;WHAT THE RESULT SHOULD BE
  4905	007622'	011146				MOV	(R1),-(SP)	;PUT C(DEV REG) ON STACK
  4906	007624'	010046				MOV	R0,-(SP)	;BUT ONLY CERTAIN BITS ARE BAD CANDIDATES
  4907	007626'	005116				COM	(SP)		;GET RID OF ONES
  4908	007630'	042616				BIC	(SP)+,(SP)	; THAT WE'RE NOT INTERESTED IN
  4909	007632'	010146				MOV	R1,-(SP)	;SAVE THE DEVICE ADR
  4910	007634'					CK11SC	<CKEMSE!CKEPC!CKEDID!CKEGB>,<CKMG02>,<BITS WOULD NOT CLEAR>
  4911	007640'	012700	000001		1$:	MOV	#1,R0		;START WITH B0 AND GO UNTIL B15 IS DONE
  4912	007644'	031500			2$:	BIT	(R5),R0		;WANT THIS BIT CHECKED?
  4913	007646'	001420				BEQ	4$		;BRANCH IF NOT, AND MAKE NEW BIT
  4914	007650'	050011				BIS	R0,(R1)		;TRY TO SET THE BIT
  4915	007652'	030011				BIT	R0,(R1)		;SEE IF THE BIT SET
  4916	007654'	001005				BNE	3$		;BRANCH IF IT SET
  4917	007656'	010046				MOV	R0,-(SP)	;SAVE GOOD
  4918	007660'	005046				CLR	-(SP)		;GOOD SHOUD BE 0 FOR THAT BIT
  4919	007662'	010146				MOV	R1,-(SP)	;DEV ADR WHERE IT HAPPENED
  4920	007664'					CK11SC	<CKEMSE!CKEPC!CKEDID!CKEGB>,<CKMG03>,<BIT WOULD NOT SET>
  4921	007670'	040011			3$:	BIC	R0,(R1)		;NOW THAT ITS SET TRY TO CLEAR IT
  4922	007672'	030011				BIT	R0,(R1)		;SEE IF IT CLEARED
  4923	007674'	001405				BEQ	4$		;BRANCH IF IT CLEARED AND GET NEW BIT
  4924	007676'	005046				CLR	-(SP)		;GOOD SHOUD BE 0
  4925	007700'	010046				MOV	R0,-(SP)	;SINCE IT DIDN'T CLEAR THIS BIT IS BAD
  4926	007702'	010146				MOV	R1,-(SP)	;DEV ADR THAT FAILED
  4927	007704'					CK11SC	<CKEMSE!CKEPC!CKEDID!CKEGB>,<CKMG02>,<BIT WOULD NOT CLEAR>
  4928	007710'	006300			4$:	ASL	R0		;MAKE NEW BIT POSITION
  4929	007712'	001354				BNE	2$		;BRANCH IF THERE IS A BIT
  4930	007714'	010205				MOV	R2,R5		;RESTORE LINK REGISTER
  4931	007716'	012602				MOV	(SP)+,R2	;
  4932	007720'	012600				MOV	(SP)+,R0	;
  4933	007722'	005725				TST	(R5)+		;GO OVER BITS FOLLOWING JSR
  4934	007724'	000205				RTS	R5		;EXIT
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 23-1
C11DMC.MAC    10-AUG-79 16:08			BIT SET/BIT CLEAR TEST FOR DL10

  4936					.SBTTL		BIT SET/BIT CLEAR TEST FOR DL10
  4937					;
  4938					;ROUTINE TO CHECK DL10 BITS
  4939					;
  4940		   001				    .IF NE FTDL10
  4941					CHKDLX:	MOV	(R5)+,R0	;GET BIT TO CHECK
  4942						BIS	R0,(R1)		;SET THE BIT IN THE DL10
  4943						CMP	(R1),R0		;DID IT SET AND ONLY IT SET?
  4944						BEQ	1$		;BRANCH IF OK
  4945						CKSERR	R0,<(R1)>,R1	;GD, BD, ADR
  4946						CK11SC	<CKEMSE!CKEPC!CKEDID!CKEGB>,<CKMG03>,<SET BIT BUT ITS NOT SET>
  4947					1$:	ASR	R0		;SHIFT RIGHT TO GET IT IN CLEAR POSITION
  4948						BIS	R0,(R1)		;SET BIT TO CLEAR BIT
  4949						TST	(R1)		;ALL BITS SHOULD BE CLEAR NOW
  4950						BEQ	2$		;BRANCH IF THEY ARE
  4951						CLR	-(SP)		;THE GOOD
  4952						MOV	(R1),-(SP)	;THE BAD
  4953						MOV	R1,-(SP)		;THE BAD ADR
  4954						CK11SC	<CKEMSE!CKEPC!CKEDID!CKEGB>,<CKMG02>,<SETTING DIDN'T CLR BIT>
  4955					2$:	RTS	R5		;EXIT
  4956		   000				    .ENDC ;.IF NE FTDL10
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 23-2
C11DMC.MAC    10-AUG-79 16:08			PRINT DEVICE ID ROUTINE

  4958					.SBTTL		PRINT DEVICE ID ROUTINE
  4959					;
  4960	007726'	032737	100000	001152'	CKDIDT:	BIT	#CKFIDT,CHKFLG	;HAVE WE ALREADY TYPE DEVICE ID ?
  4961	007734'	001035				BNE	1$
  4962	007736'					CK11SC	0,<? >
  4963	007740'	004407	020077	   000			.ASCIZ	<7>"	? "
  4964		007746'					.EVEN
  4965	007746'	013700	001156'			MOV	CKDNAM,R0	;GET ASCIZ \DEVICE NAME\
  4966	007752'	004737	013734'			JSR	PC,CKTTXT	;TYPE DEVICE NAME
  4967	007756'					CK11SC	<CKENCL>,< #>
  4968	007760'	021440	   000				.ASCIZ	\ #\
  4969		007764'					.EVEN
  4970	007764'	013700	001154'			MOV	CKDEVN,R0	;GET UNIT NUMBER
  4971	007770'	004737	014022'			JSR	PC,CKTOCT	;TYPE UNIT NUMBER
  4972	007774'					CK11SC	<CKENCL>,<(Adr = >
  4973	007776'	040450	071144	036440			.ASCIZ	\(Adr = \
	010004'	000040
  4974							.EVEN
  4975	010006'	013700	015476'			MOV	CHKCHR+CKDA,R0	;GET DEVICE ADDR
  4976	010012'	004737	014022'			JSR	PC,CKTOCT	;TYPE IT
  4977	010016'					CK11SC	<CKENCL>,<)>
  4978	010020'	000051					.ASCIZ	\)\
  4979							.EVEN
  4980	010022'	052737	100000	001152'		BIS	#CKFIDT,CHKFLG	;REMEMBER WE TYPED DEVICE ID
  4981	010030'	000207			1$:	RTS	PC
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 23-3
C11DMC.MAC    10-AUG-79 16:08			ROUTINE TO FIND DEVICE INTERRUPT LEVEL

  4983					.SBTTL		ROUTINE TO FIND DEVICE INTERRUPT LEVEL
  4984					;
  4985					;CALL	JSR R5,CHKINL		;WITH DEVICE READY TO INT BUT
  4986					;				; WITH THE PS SET TO LEVEL 7.
  4987					;
  4988	010032'	010046			CHKINL:	MOV	R0,-(SP)	;SAVE R0
  4989	010034'	010146				MOV	R1,-(SP)	;SAVE R1
  4990	010036'	010246				MOV	R2,-(SP)	;SAVE R2
  4991	010040'	012702	000300			MOV	#BR6,R2		;START BY CHECKING LEVEL 6
  4992	010044'	011501			1$:	MOV	(R5),R1		;GET TIME TO WAIT
  4993	010046'	005000				CLR	R0		;WILL BE SET BY INT ROUTINE IF INT
  4994	010050'	010237	177776			MOV	R2,PS		;LOWER PS LEVEL
  4995									;MOST REASONABLE INTERRUPTS WHICH OCCUR WILL
  4996									;  DISPATCH THROUGH CKINT, RETURN THE VECTOR
  4997									;  ADDRESS USED IN R0
  4998	010054'	005700			2$:	TST	R0		;SEE IF INT YET
  4999	010056'	001012				BNE	10$		;NON 0 SAYS INTERRUPT HAPPENED
  5000	010060'	077103				SOB	R1,2$		;TIME AND WAIT
  5001	010062'					SPL	7		;TIMED OUT SET LEVEL 7, LOWER AND TRY AGAIN
  5002	010070'	162702	000040			SUB	#40,R2		;MAKE LEVEL LOWER BY 1
  5003	010074'	002363				BGE	1$		;BRANCH IF LEVEL 0 NOT CHECKED YET
  5004	010076'					CK11SC	<CKEMSE!CKEDID!CKEPC>,<CKMG04>,<DEVICE NEVER INTERRUPTED>
  5005	010102'	000415				BR	3$		;EXIT
  5006									;
  5007	010104'	020037	015500'		10$:	CMP	R0,CHKCHR+CKDV	;SEE IF SAME AS WHAT IT SHOULD BE
  5008	010110'	001406				BEQ	11$		;BRANCH IF CORRECT VECTOR
  5009	010112'					CKSERR	<CHKCHR+CKDV>,<R0>,<R4>
  5010	010122'					CK11SC	<CKEMSE!CKEPC!CKEDID!CKEGB>,<CKMG05>,<WENT TO WRONG VECTOR>
  5011									;
  5012	010126'	062702	000040		11$:	ADD	#40,R2		;MAKE THE DEVICE LEVEL
  5013	010132'	010237	015502'			MOV	R2,CHKCHR+CKPI	;SAVE LEVEL DEVICE INTERRUPTED AT
  5014	010136'	012602			3$:	MOV	(SP)+,R2	;RESTORE R2
  5015	010140'	012601				MOV	(SP)+,R1	;RESTORE R1
  5016	010142'	012600				MOV	(SP)+,R0	;RESTORE R0
  5017	010144'	005725				TST	(R5)+		;SKIP OVER TIME DELAY CONSTANT
  5018	010146'	000205				RTS	R5		;RETURN WITH DEVICE LEVEL SAVED IN CHARACTERISTICS TABLE
  5019					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 24
C11DMC.MAC    10-AUG-79 16:08			ROUTINE TO FIND DEVICE INTERRUPT LEVEL

  5021
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 25
C11DMC.MAC    10-AUG-79 16:08			ROUTINE TO FIND DEVICE INTERRUPT LEVEL

  5023
  5024					.SBTTL		CHECK INTERRUPTS AND FIND DEVICE LEVEL
  5025					;
  5026					;ROUTINE TO CHECK INTERRUPTS AND FIND DEVICE LEVEL
  5027					;
  5028					; CALL (GENERATED BY MACRO "$CKINT"):
  5029					;	MOV	ENABLE ADR,R1
  5030					;	MOV	INT ADR,R2
  5031					;	JSR	R5,CKINT
  5032					;	TRAILING ARGS:
  5033					;		(NAME)	(PURPOSE)
  5034					;		I.ENAB	- ENABLE BIT
  5035					;		I.INTS	- INTERRUPT BITS
  5036					;		I.INTC	- SPECIAL CLEAR BITS
  5037					;		I.RTRN	- RETURN ADDRESS
  5038					;
  5039	010150'	010346			CKINT:	MOV	R3,-(SP)
  5040	010152'	010446				MOV	R4,-(SP)
  5041	010154'	005037	015502'			CLR	CHKCHR+CKPI	;START WITH PI OF 0 (NO DEV)
  5042	010160'	005037	010542'			CLR	CKFLAG		;0 = PI LEVEL FOUND MUST BE PUT IN TABLE
  5043									; NON 0 = CHECK PI LEVEL FOUND WITH TABLE
  5044	010164'	012704	000001			MOV	#1,R4		;STARTING POSITION OF SLIDING INT BIT
  5045	010170'	012703	000340		CKINT1:	MOV	#BR7,R3		;START CHECKING AT THIS LEVEL
  5046	010174'	010337	177776		CKINT2:	MOV	R3,PS		;SET PS
  5047	010200'	005000				CLR	R0		;SET TO 0 SO IF INT HAPPENS WE KNOW IT
  5048	010202'	030465	000002		CKINT3:	BIT	R4,I.INTS(R5)	;IS THERE A BIT TO TEST?
  5049	010206'	001002				BNE	5$		;BRANCH IF BIT IN POSITION
  5050	010210'	000137	010520'			JMP	CKINT7		;MAKE NEW BIT POSITION
  5051	010214'	051511			5$:	BIS	(R5),(R1)	;SET INTERRUPT ENABLE
  5052	010216'	050412				BIS	R4,(R2)		;SET INTERRUPT BIT
  5053	010220'	000240				NOP			;ALLOW 1 EXTRA INST TIME FOR INT
  5054	010222'					SPL	7		;LET NO INT HAPPEN
  5055	010230'	041511				BIC	(R5),(R1)	;CLEAR INT ENABLE
  5056	010232'	005765	000004			TST	I.INTC(R5)	;SEE IF SPECIAL CLEAR
  5057	010236'	001403				BEQ	7$		;BRANCH IF NOT
  5058	010240'	056512	000004			BIS	I.INTC(R5),(R2)	;SPECIAL CLEAR
  5059	010244'	000402				BR	9$		;CONTINUE
  5060	010246'	046512	000002		7$:	BIC	I.INTS(R5),(R2)	;CLEAR INT BITS
  5061	010252'	005700			9$:	TST	R0		;IF R0 IS NON 0 IT SHOULD BE THE
  5062									; VECTOR ADR. IF 0 NO INT HAPPENED.
  5063	010254'	001006				BNE	10$		;BRANCH IF INTERRUPT
  5064	010256'	162703	000040			SUB	#40,R3		;MAKE PS VALUE 1 LEVEL LESS
  5065	010262'	002344				BGE	CKINT2		;BRANCH IF NEW LEVEL OK
  5066	010264'					CK11SC	<CKEMSE!CKEPC!CKEDID>,<CKMG04>,<DEVICE NEVER INTERRUPTED>
  5067	010270'	000517				BR	CKINTE		;EXIT
  5068	010272'				10$:				;INTERRUPT OCCURRED, CHECK IT OUT
  5069	010272'	020037	015500'			CMP	R0,CHKCHR+CKDV	;SEE IF WE WENT TO CORRECT ADR
  5070	010276'	001407				BEQ	13$		;BRANCH IF WE DID, R0 = VECTOR ADR
  5071	010300'					CKSERR	<CHKCHR+CKDV>,R0,<R2>;GD,BD,ADR
  5072	010310'					CK11SC	<CKEMSE!CKEPC!CKEDID!CKEGB>,<CKMG05>,<WENT TO WRONG VECTOR>
  5073	010314'	000505				BR	CKINTE		;EXIT
  5074	010316'	005737	010542'		13$:	TST	CKFLAG		;MUST WE LOAD LEVEL OR CHECK IT?
  5075	010322'	001010				BNE	11$		;BRANCH IF JUST CHECK
  5076	010324'	010337	015502'			MOV	R3,CHKCHR+CKPI	;LOAD LEVEL JUST FOUND
  5077	010330'	062737	000040	015502'		ADD	#40,CHKCHR+CKPI	;MAKE LEVEL OF DEVICE
  5078	010336'	012737	177777	010542'		MOV	#-1,CKFLAG	;SET FLAG SO NEXT TIME WE CHECK LEVEL AS WELL
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 25-1
C11DMC.MAC    10-AUG-79 16:08			CHECK INTERRUPTS AND FIND DEVICE LEVEL

  5079	010344'	010300			11$:	MOV	R3,R0		;GET PRESENT LEVEL
  5080	010346'	062700	000040			ADD	#40,R0		;MAKE IT THE DEVICE LEVEL
  5081	010352'	020037	015502'			CMP	R0,CHKCHR+CKPI	;CHECK LEVEL AGAINST LAST TIME
  5082	010356'	001427				BEQ	CKINT6		;BRANCH IF LEVEL CHECKS
  5083	010360'					CKSERR	<CHKCHR+CKPI>,R0,R4
  5084	010370'					CK11SC	<CKEPC!CKEDID!CKEGB>,<Interrupt to Different BR Level>,<INTERRUPT TO DIF
  5085	010372'	067111	062564	071162		.ASCIZ	\Interrupt to Different BR Level\<377>
	010400'	070165	020164	067564
	010406'	042040	063151	062546
	010414'	062562	072156	041040
	010422'	020122	062514	062566
	010430'	177554	   000
  5086		010434'				.EVEN
  5087	010434'	000435				BR	CKINTE		;EXIT
  5088	010436'	005037	177776		CKINT6:	CLR	PS		;CHECK WITH LEVEL 0 AND
  5089	010442'	005000				CLR	R0		; NO INT ENABLE BITS SET
  5090	010444'	050412				BIS	R4,(R2)		;  AND INT BIT SET THAT NO INT OCCURRS
  5091	010446'	000240				NOP			;PAUSE
  5092	010450'	000240				NOP			;PAUSE
  5093	010452'					SPL	7		;DON'T LET AN INT HAPPEN
  5094	010460'	005700				TST	R0		;SEE IF ONE HAPPENED
  5095	010462'	001403				BEQ	19$		;BRANCH IF NO INT
  5096	010464'					CK11SC	<CKEMSE!CKEDID!CKEPC>,CKMG07,<INTERRUPT WHEN NOT ENABLED>
  5097	010470'	000417				BR	CKINTE		;EXIT
  5098	010472'	005765	000004		19$:	TST	I.INTC(R5)	;SEE IF SPECIAL CLEAR
  5099	010476'	001403				BEQ	22$		;BRANCH IF NOT
  5100	010500'	056512	000004			BIS	I.INTC(R5),(R2)	;SPECIAL CLEAR  (DL10 FOR ONE)
  5101	010504'	000401				BR	24$		;CONTINUE
  5102	010506'	040412			22$:	BIC	R4,(R2)		;CLEAR INT BITS
  5103	010510'	006304			24$:	ASL	R4		;MAKE NEW BIT POSITION
  5104	010512'	001406				BEQ	CKINTE		;BRANCH IF DONE
  5105	010514'	000137	010170'			JMP	CKINT1		;TEST NEW BIT
  5106	010520'	006304			CKINT7:	ASL	R4		;MAKE NEW INT BIT POSITION
  5107	010522'	001402				BEQ	CKINTE		;BRANCH IF NO NEW BIT POSITION
  5108	010524'	000137	010202'			JMP	CKINT3		;BRANCH IF NEW BIT POSITION
  5109	010530'	062705	000006		CKINTE:	ADD	#I.RTRN,R5	;FOR CORRECT RETURN
  5110	010534'	012604				MOV	(SP)+,R4	;
  5111	010536'	012603				MOV	(SP)+,R3	;
  5112	010540'	000205				RTS	R5		;RETURN
  5113					;
  5114	010542'	000000			CKFLAG:	0
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 25-2
C11DMC.MAC    10-AUG-79 16:08			GENERAL INTERRUPT FIELDER FOR CHK11

  5116					.SBTTL		GENERAL INTERRUPT FIELDER FOR CHK11
  5117					;
  5118					;WE GET HERE FROM ALMOST ANY INTERRUPT WHILE IN CHK11
  5119					; THIS WILL RETURN THE VECTOR ADDRESS IN R0 -
  5120					; THIS IS DISCERNED FROM THE CONDITION CODE BITS AND THE
  5121					; ADDRESS AT WHICH THE CODE IS ENTERED
  5122					;
  5123	010544'				CHKINT:
  5124									;ENTRY FOR VECTORS 0-74
  5125	010544'	013700	177776			MOV	PS,R0		;GET PROCESSOR STATUS
  5126	010550'	004737	010664'			JSR	PC,1$
  5127	010554'	000000				.WORD	0
  5128		000012					CHKISZ	= .-CHKINT ;CHKINT BLOCK SIZE
  5129									;ENTRY FOR VECTORS 100-174
  5130	010556'	013700	177776			MOV	PS,R0		;GET PROCESSOR STATUS
  5131	010562'	004737	010664'			JSR	PC,1$
  5132	010566'	000100				.WORD	100
  5133									;ENTRY FOR VECTORS 200-274
  5134	010570'	013700	177776			MOV	PS,R0		;GET PROCESSOR STATUS
  5135	010574'	004737	010664'			JSR	PC,1$
  5136	010600'	000200				.WORD	200
  5137									;ENTRY FOR VECTORS 300-374
  5138	010602'	013700	177776			MOV	PS,R0		;GET PROCESSOR STATUS
  5139	010606'	004737	010664'			JSR	PC,1$
  5140	010612'	000300				.WORD	300
  5141									;ENTRY FOR VECTORS 400-474
  5142	010614'	013700	177776			MOV	PS,R0		;GET PROCESSOR STATUS
  5143	010620'	004737	010664'			JSR	PC,1$
  5144	010624'	000400				.WORD	400
  5145									;ENTRY FOR VECTORS 500-574
  5146	010626'	013700	177776			MOV	PS,R0		;GET PROCESSOR STATUS
  5147	010632'	004737	010664'			JSR	PC,1$
  5148	010636'	000500				.WORD	500
  5149									;ENTRY FOR VECTORS 600-674
  5150	010640'	013700	177776			MOV	PS,R0		;GET PROCESSOR STATUS
  5151	010644'	004737	010664'			JSR	PC,1$
  5152	010650'	000600				.WORD	600
  5153									;ENTRY FOR VECTORS 700-774
  5154	010652'	013700	177776			MOV	PS,R0		;GET PROCESSOR STATUS
  5155	010656'	004737	010664'			JSR	PC,1$
  5156	010662'	000700				.WORD	700
  5157						;-----------------------------------------------------------------
  5158	010664'	042700	177760		1$:	BIC	#^C17,R0	;SAVE ONLY CONDITION CODE BITS
  5159	010670'	006300				ASL	R0		;MULTIPLY BY 4 (4 BYTES PER VECTOR)
  5160	010672'	006300				ASL	R0		;
  5161	010674'	063600				ADD	@(SP)+,R0	;MAKES VECTOR ADR (POPS JSR RET ADR)
  5162	010676'	012766	000340	000002		MOV	#BR7,2(SP)	;DON'T TRAP AGAIN ON RETURN
  5163	010704'	000002				RTI			;
  5164									;
  5165	010706'	000001			CHKFLV:	.BLKW	1		;CURRENT FLOATING DEVICE VECTOR
  5166	010710'	000001			CHKFLD:	.BLKW	1		;CURRENT FLOATING DEVICE ADR
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 25-3
C11DMC.MAC    10-AUG-79 16:08		DEVICE DIAGNOSTICS

  5168					.SBTTL	DEVICE DIAGNOSTICS
  5169					;
  5170					; THE FOLLOWING ROUTINES HAVE NAMES OF THE FORM X--11, WHERE -- IS
  5171					;   A DEVICE NAME (E.G. DH, DL, DTE2, KMC, ETC.) - THIS DEVICE NAME IS USED
  5172					;   IN THE MACRO "DEVICE" TO GENERATE A POINTER TO THE APPROPRIATE
  5173					;   DIAGNOSTIC ROUTINE - "DEVICE" CALLS CHKDEV, WHICH ACCESSES THE
  5174					;   TABLE GENERATED BY "DEVICE" CONTAINING THIS POINTER, AND USES
  5175					;   IT TO CALL THE PROPER DIAGNOSTIC
  5176					;
  5177					; DEVELOPERS: TRY TO KEEP THE DEVICE ROUTINE SETS IN
  5178					;   ALPHABETICAL ORDER BY DEVICE NAME (E.G., ...DL11-A, DL11-E,
  5179					;   DM11BB, DN11, ... DU11, DUP11, DZ11...) - ALSO NOTE THAT THE
  5180					;   THE DEVICE NAMES ARE THE ABBREVIATIONS USED IN THE MACRO NAMSTR
  5181					;
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 25-4
C11DMC.MAC    10-AUG-79 16:08			CHECK CD20 HARDWARE

  5183					.SBTTL		CHECK CD20 HARDWARE
  5184					;
  5185						    .IIF NDF FTCD20,FTCD20=0
  5186		   001				    .IF NE FTCD20
  5187	010712'				XCD11:				;
  5188	010712'	012737	011146'	000004		MOV	#30$,NXMVEC	;SET A LOCAL BUS ERROR HANDLER
  5189	010720'	005761	000006			TST	CDST2(R1)	;LOOK FOR SECONDARY STATUS REGISTER
  5190	010724'	012737	014756'	000004		MOV	#CKBUST,NXMVEC	;IT'S THERE, THIS MAY BE A CD20 (NOT A CR11)
  5191	010732'	016146	000004			MOV	CDBA(R1),-(SP)	;TO BE SURE,
  5192	010736'	012700	177777			MOV	#-1,R0		;  FIND OUT IF WE CAN
  5193	010742'	074061	000004			XOR	R0,CDBA(R1)	;  FIDDLE THE "CDBA" BITS
  5194	010746'	022661	000004			CMP	(SP)+,CDBA(R1)	;  IF WE CAN'T,
  5195	010752'	001501				BEQ	40$		;  IT ISN'T A CD11/20
  5196	010754'	074061	000004			XOR	R0,CDBA(R1)	;  IF WE DID, PUT THE BITS BACK
  5197	010760'	052737	000001	005250'		BIS	#1,CHKCR+4	;MAKE CR11 TEST FAIL IF TRIED
  5198	010766'	004537	007574'			JSR	R5,CHKBIT	;R/W CHECK ON CD.STS
  5199	010772'	000162				.WORD	CD.IE!CD.XAD!CD.PAC
  5200	010774'	005721				TST	(R1)+		;UP TO CDCC
  5201	010776'	004537	007574'			JSR	R5,CHKBIT	;
  5202	011002'	177777				.WORD	ALLBTS		;
  5203	011004'	005721				TST	(R1)+		;UP TO CDBA
  5204	011006'	004537	007574'			JSR	R5,CHKBIT	;
  5205	011012'	177777				.WORD	ALLBTS		;
  5206	011014'	010401				MOV	R4,R1		;RESTORE CD.STS POINTER
  5207	011016'	032711	010000			BIT	#CD.OFL,(R1)	;READER AVAILABLE?
  5208	011022'	001012				BNE	10$		;YES
  5209	011024'					CK11SC	0,<not ready>	;
  5210	011026'	041411	031104	020060		.ASCIZ	"	CD20 off line"
	011034'	063157	020146	064554
	011042'	062556	   000
  5211		011046'				.EVEN			;
  5212	011046'	000207				RTS	PC		;
  5213									;
  5214	011050'	012721	000400		10$:	MOV	#CD.PWC,(R1)+	;CLEAR READER
  5215	011054'	012721	177777			MOV	#-1,(R1)+	;SET TO READ ONE COLUMN
  5216	011060'	012721	160000			MOV	#160000,(R1)+	;  INTO A NON-EXISTENT LOCATION
  5217	011064'	012714	000161			MOV	#CD.IE!CD.XAD!CD.GO,(R4) ;START READER
  5218	011070'	005000				CLR	R0		;SET TIMER FOR READ WAIT
  5219	011072'	032714	100200		15$:	BIT	#CD.ERR!CD.RDY,(R4) ;LOOK FOR ERROR OR DONE
  5220	011076'	001017				BNE	20$		;GOT ONE OF THEM
  5221	011100'	077004				SOB	R0,15$		;NOT YET
  5222	011102'					CK11SC	<CKEPC!CKEDID>,<SLOW READ>
  5223	011104'	041411	031104	020060		.ASCIZ	"	CD20 time out on read"
	011112'	064564	062555	067440
	011120'	072165	067440	020156
	011126'	062562	062141	   000
  5224		011134'				.EVEN			;
  5225	011134'	000207				RTS	PC		;
  5226									;
  5227	011136'	004537	010032'		20$:	JSR	R5,CHKINL	;CD20 SHOULD BE READY TO INTERRUPT
  5228	011142'	177777				.WORD	177777		;
  5229	011144'	000207				RTS	PC		;
  5230									;
  5231	011146'	012737	014756'	000004	30$:	MOV	#CKBUST,NXMVEC	;RESTORE BUS ERROR VECTOR
  5232	011154'	022626				CMP	(SP)+,(SP)+	;POP TRAP
  5233	011156'				40$:	CK11SC	0,<NOT CD20>	;
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 25-5
C11DMC.MAC    10-AUG-79 16:08			CHECK CD20 HARDWARE

  5234	011160'	061411	071157	062562		.ASCIZ	"	correction - reader is NOT a CD20"
	011166'	072143	067551	020156
	011174'	020055	062562	062141
	011202'	071145	064440	020163
	011210'	047516	020124	020141
	011216'	042103	030062	   000
  5235		011224'				.EVEN			;
  5236	011224'	000207				RTS	PC		;
  5237		   000				    .ENDC ;NE FTCD20
  5238					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 26
C11DMC.MAC    10-AUG-79 16:08			CHECK CD20 HARDWARE

  5240
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 27
C11DMC.MAC    10-AUG-79 16:08			CHECK CD20 HARDWARE

  5242
  5243					.SBTTL		CHECK CR11 HARDWARE
  5244					;
  5245					;CALL	MOV	#<VECTOR ADR>,R3
  5246					;	MOV	#<HDW ADR>,R4
  5247					;	MOV	#<HDW ADR>,R1
  5248					;	JSR	PC,XCR11
  5249					;
  5250						    .IIF NDF FTCR11,FTCR11=0
  5251		   001				    .IF NE FTCR11
  5252	011226'				XCR11:
  5253	011226'	016146	000004			MOV	CDBA(R1),-(SP)	;CHECK TO SEE
  5254	011232'	012700	177777			MOV	#-1,R0		;  IF WE CAN
  5255	011236'	074061	000004			XOR	R0,CDBA(R1)	;  FIDDLE THE BITS IN
  5256	011242'	022661	000004			CMP	(SP)+,CDBA(R1)	;  THE BUFFER ADDRESS CSR
  5257	011246'	001423				BEQ	10$		;NO - READER IS REAL
  5258	011250'	074061	000004			XOR	R0,CDBA(R1)	;YES - SET THE BITS BACK
  5259	011254'					CK11SC	0,<NOT CR11>	;  AND COMPLAIN
  5260	011256'	067411	070157	020163		.ASCIZ	"	oops - reader is NOT a CR11"
	011264'	020055	062562	062141
	011272'	071145	064440	020163
	011300'	047516	020124	020141
	011306'	051103	030461	   000
  5261		011314'				.EVEN			;
  5262	011314'	000207				RTS	PC		;
  5263									;
  5264	011316'	052737	000001	005214'	10$:	BIS	#1,CHKCD+4	;MAKE CD20 TEST FAIL IF TRIED
  5265	011324'	004537	007574'			JSR	R5,CHKBIT	;CHECK HARDWARE BITS
  5266	011330'	000102				.WORD	CR.EJT!CR.INE	;
  5267	011332'	032714	001000			BIT	#CR.BSY,(R4)	;SEE IF BUSY (MAYBE POWER OFF)
  5268	011336'	001414				BEQ	2$		;BRANCH IF COMMAND CAN BE GIVEV
  5269	011340'					CK11SC	0,< CR11 not Rdy>
  5270	011342'	041440	030522	020061		.ASCIZ	\ CR11 not Rdy\
	011350'	067556	020164	062122
	011356'	000171
  5271						.EVEN
  5272	011360'	012737	000006	015502'		MOV	#CR.LVL,CHKCHR+CKPI ;GIVE DEFAULT LEVEL
  5273	011366'	000207				RTS	PC		;
  5274									;
  5275	011370'	012714	000101		2$:	MOV	#CR.INE!CR.CFD,(R4) ;SET INT ENABLE AND READ
  5276								; TO FORCE ANY KIND OF INT
  5277	011374'	005000				CLR	R0		;FOR TIMING OUT
  5278	011376'	032714	100200		1$:	BIT	#CR.ERR!CR.CDN,(R4) ;SEE IF AN INT CONDITION EXISTS
  5279	011402'	001015				BNE	3$		;IF NOT, THEN WAIT.
  5280	011404'	077004				SOB	R0,1$		;START TIMING OUT
  5281	011406'	042714	000100			BIC	#CR.INE,(R4)	;DISABLE CR11 INT ENABLE
  5282	011412'					CK11SC	<CKEPC!CKEDID>,<CR11 Timed Out>,<CR11 NOT RESPONDING>
  5283	011414'	051103	030461	052040		.ASCIZ	\CR11 Timed Out\
	011422'	066551	062145	047440
	011430'	072165	   000
  5284		011434'				.EVEN			;
  5285	011434'	000207				RTS	PC		;
  5286									;
  5287	011436'	004537	010032'		3$:	JSR	R5,CHKINL	;FIND INT LEVEL
  5288	011442'	177777				-1			;FOR TIME-OUT LOOP
  5289	011444'	042714	000100			BIC	#CR.INE,(R4)	;DISABLE INT FOR CR11
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 27-1
C11DMC.MAC    10-AUG-79 16:08			CHECK CR11 HARDWARE

  5290	011450'	000207				RTS	PC		;
  5291		   000				    .ENDC ;NE FTCR11
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 27-2
C11DMC.MAC    10-AUG-79 16:08			CHECK DH11 HDW

  5293					.SBTTL		CHECK DH11 HDW
  5294					.IIF NDF NDH11,NDH11=0	;BY DEFAULT NO DH11S
  5295					;
  5296					;CALL	MOV	#<VECTOR ADR>,R3
  5297					;	MOV	#<HDW ADR>,R4
  5298					;	MOV	#<HDW ADR>,R1
  5299					;	JSR	PC,XDH11
  5300					;
  5301						    .IIF NDF FTDH11,FTDH11=0
  5302		   001				    .IF NE FTDH11
  5303					XDH11:	MOV	R3,-(SP)	;SAVE REGISTER
  5304						JSR	R5,CHKBIT	;CHECK RD/WRT BITS
  5305						131177			;READ/WRITE BITS
  5306						TST	(R1)+		;ADVANCE TO NXT REC CHAR REG
  5307						TST	(R1)+		;ADVANCE TO LINE PARAMETER REG(XX4)
  5308						JSR	R5,CHKBIT	;CHECK RD/WRT BITS
  5309						177767			;READ/WRITE BITS
  5310						TST	(R1)+		;ADVANCE TO CURRENT ADR REG(XX6)
  5311						CLR	R2		;START CHECK AT LINE 0
  5312					1$:	JSR	R5,CHKBIT	;CHECK RD/WRT BITS
  5313						-1			;READ/WRITE BITS
  5314						INC	R2		;NEXT LINE TO CHECK
  5315						CMP	R2,#17		;DONE
  5316						BLE	1$		;CHECK LINES 0-17
  5317						TST	(R1)+		;ADVANCE TO BYTE COUNT REG(X10)
  5318						CLR	R2		;START CHECK AT LINE 0
  5319					2$:	JSR	R5,CHKBIT	;CHECK RD/WRT BITS
  5320						-1			;READ/WRITE BITS
  5321						INC	R2		;NEXT LINE TO CHECK
  5322						CMP	R2,#17		;ALL LINES CHECKED?
  5323						BLE	2$		;CHECK ALL 20 LINES
  5324						TST	(R1)+		;ADVANCE TO BAR REG(XX12)
  5325						TST	(R1)+		;ADVANCE TO BREAK REG(X14)
  5326						JSR	R5,CHKBIT	;CHECK BITS
  5327						-1			;READ/WRITE BITS
  5328						TST	(R1)+		;ADVANCE TO SILO STATUS REG(X16)
  5329						JSR	R5,CHKBIT	;CHECK READ/WRITE BITS
  5330						77
  5331						$CKINT	R4,R4,<DH.RIE!DH..MM>,<DH..RI>
  5332						$CKINT	,,<DH.SIE!DH..MM>,<DH..SI>
  5333						ADD	#4,CHKCHR+CKDV		;MAKE EXPECTED VECTOR FOR XMIT
  5334						$CKINT	,,<DH.TIE>,<DH..TI>
  5335						MOV	R3,CHKCHR+CKDV		;PUT VECTOR ADDRESS IN TABLE
  5336										;
  5337		   002				    .IF NE NDH11		;DON'T CHECK HARDWARE NOT TO BE USED
  5338					CKDH1A:	MOV	R3,DHXMII		;ADR TO COME TO ON XMIT INT
  5339						ADD	#4,DHXMII		;
  5340						MOV	#CKBLK,R0		;LOAD A BUFFER WITH COUNT PATTERN
  5341						MOV	#400,R1			;LOAD 400 CHARACTERS
  5342						CLR	R2			;START WITH 0
  5343					1$:	MOVB	R2,(R0)+		;STORE THE COUNT PATTERN
  5344						INCB	R2			;NEW PATTERN
  5345						SOB	R1,1$			;BUFFER LOADED?
  5346						CLR	R3			;START WITH LINE 0
  5347						MOV	#1,R2			;LINE BIT  (LINE 0)
  5348					CKDH1B:	CLR	DHDATA			;FIRST RCV'D SHOULD BE 0
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 27-3
C11DMC.MAC    10-AUG-79 16:08			CHECK DH11 HDW

  5349					.IIF NDF NTRIB,NTRIB=0
  5350		   003				    .IF NE NTRIB
  5351									;IF TRIBUTARY LINES IN USE
  5352									;USE MINIMAL TEST TO AVOID INTERFERRENCE
  5353									;WITH THE FUNCTIONAL STATIONS ON LINE
  5354									;THE PROBLEM ARISES BECAUSE MAINTAINANCE
  5355									;MODE ON THE DH11 DRIVES THE MODEM LINES!!!
  5356						MOV	#-1,R1
  5357						DEC	DHDATA
  5358						MOVB	R1,CKBLK
  5359						    .IFF
  5360						MOV	#-400,R1
  5361		   002				    .ENDC	;.IF NE NTRIB
  5362						BIS	#DH..MC,(R4)		;CLEAR THE DH
  5363						BIS	#DH..MM!DH.SIE!DH.TIE!DH.RIE,(R4)	;ENABLE INTS
  5364						BIS	R3,(R4)			;LOAD THE LINE NUMBER
  5365						MOV	#B6!B8!B9!B10!B12!B13!DH.2SB!DH.CL8!DH.PEN!DH..OP,DH.LPR(R4)
  5366										;SEL 8BIT,9600,PAR,ODD
  5367						MOV	R1,DH.BCR(R4)		;LENGTH TO XMIT
  5368						MOV	#CKBLK,DH.CAR(R4)	;ADR WHERE THE DATA IS
  5369						MOV	#4,DH.SSR(R4)		;ALARM LEVEL TO 4
  5370					CKDH1E:	CLR	R0			;INT RETURNS ADR IN HERE
  5371						CLR	R1			;TIMER
  5372						MOV	R2,DH.BAR(R4)		;SET LINE ACTIVE
  5373					2$:	CLR	PS			;LEVEL TO 0 FOR INTS
  5374						NOP				;LET AN INTERRUPT HAPPEN
  5375						SPL	7			;DON'T LET ONE HAPPEN
  5376						CMP	R0,CHKCHR+CKDV		;SEE IF RCV INT YET
  5377						BEQ	4$			;BRANCH IF RCV INT
  5378						CMP	R0,DHXMII		;SEE IF XMIT INT
  5379						BEQ	5$			;BRANCH IF XMIT INT
  5380						TST	R0			;SEE IF ANY INTERRUPT
  5381						BEQ	3$			;BRANCH IF NO INTERRUPT
  5382						CKSERR	<CHKCHR+CKDV>,R0,R3
  5383						CK11SC	<CKEPC!CKEGB!CKEDID>,<Ill Int>,<ILLEGAL INT WHILE WAITING FOR DH11 INT>
  5384						.ASCIZ	\Ill Int\<377>
  5385						.EVEN
  5386						JMP	CKDH1D			;DON'T TEST ANY MORE
  5387					3$:	SOB	R1,2$			;TIME-OUT
  5388						CK11SC	<CKEPC!CKEDID>,<No Int>,<NO DH11 INTERRUPT>
  5389						.ASCIZ	\No Int\<377>
  5390						.EVEN
  5391						JSR	PC,CKDHPL		;REPORT LINE NUMBER
  5392						JMP	CKDH1D			;DON'T TEST ANY MORE
  5393					5$:	BIT	#DH.NXM,(R4)		;SEE IF NXM
  5394						BEQ	16$			;BRANCH IF NO NXM
  5395						CK11SC	<CKEPC!CKEDID>,<Xmit Nxm>,<TRANSMIT NXM ON DH>
  5396						.ASCIZ	\Xmit Nxm\<377>
  5397						.EVEN
  5398						JSR	PC,CKDHPL		;REPORT LINE NUMBER
  5399						BR	CKDH1D			;DON'T TEST ANY MORE
  5400					16$:	BIT	#DH..TI,(R4)		;BETTER HAVE XMIT INT
  5401						BNE	17$			;BRANCH IF WE DO
  5402						CK11SC	<CKEPC!CKEDID>,<Ill Xmit Int>,<INT TO XMIT BUT FOR NO REASON>
  5403						.ASCIZ	\Ill Xmit Int\<377>
  5404						.EVEN
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 27-4
C11DMC.MAC    10-AUG-79 16:08			CHECK DH11 HDW

  5405						JSR	PC,CKDHPL		;REPORT LINE NUMBER
  5406						BR	CKDH1D			;DON'T TEST ANY MORE
  5407					17$:	BIC	#DH..TI,(R4)		;CLEAR XMIT INT
  5408						BR	CKDH1E			;
  5409					4$:	BIT	#DH..SI,(R4)		;SEE IF SILO OVERFLOW
  5410						BEQ	CKDH1C			;BRANCH IF SILO HAD ROOM
  5411						CK11SC	<CKEPC!CKEDID>,<Silo Full>,<SILO OVERFLOW>
  5412						.ASCIZ	\Silo Full\<377>
  5413						.EVEN
  5414						JSR	PC,CKDHPL		;REPORT LINE NUMBER
  5415						BR	CKDH1D			;DON'T TEST ANY MORE
  5416					CKDH1C:	BIC	#DH..RI,(R4)		;CLEAR RCV INT (MUST FOR MAINT MODE)
  5417						MOV	DH.NRC(R4),R0		;GET STUFF FROM SILO
  5418						BIT	#DH.DOV!DH..FE!DH..PE,R0	;SEE IF ANY ERROR BITS WITH DATA
  5419						BEQ	7$			;BRANCH IF NO ERRORS WITH THE DATA
  5420						MOV	DHDATA,-(SP)		;MAKE THE GOOD
  5421						MOV	R3,-(SP)			;PUT LINE # IN
  5422						SWAB	(SP)			;GET IT IN THE (LB)
  5423						BIS	(SP)+,(SP)		;LINE # NOW IN GOOD
  5424						BIS	#DH.VDP,(SP)		;GOOD INCLUDES VALID DATA PRESENT
  5425						MOV	R0,-(SP)			;THE BAD
  5426						MOV	R3,-(SP)			;THE LINE UNDER TEST
  5427						CK11SC	<CKEGB!CKEPC!CKEDID>,<Data Err Bit Set>,<ERROR BITS WITH THE DATA>
  5428						.ASCIZ	\Data Err Bit Set\<377>
  5429						.EVEN
  5430						BR	CKDH1D			;DON'T TEST ANY MORE
  5431					7$:	BIT	#DH.VDP,R0		;SEE IF VALID DATA
  5432						BNE	8$			;BRANCH IF VALID DATA
  5433						CK11SC	<CKEPC!CKEDID>,<Not Valid Data>,<NOT VALID DATA BIT SET>
  5434						.ASCIZ	\Not Valid Data\<377>
  5435						.EVEN
  5436						JSR	PC,CKDHPL		;REPORT LINE NUMBER
  5437						BR	CKDH1D			;DON'T TEST ANY MORE
  5438					8$:	BIC	#B15!B14!B13!B12,R0	;CLEAR DATA ERROR BITS
  5439						SWAB	R0			;FOR CHECKING LINE #
  5440						CMPB	R0,R3			;SEE IF LINE #OK
  5441						BEQ	9$			;BRANCH IF IT IS
  5442						MOV	R3,-(SP)			;LEGAL LINE NUMBER
  5443						CLR	-(SP)			;0 FOR BYTE MOVE
  5444						MOVB	R0,(SP)			;THE ILLEGAL LINE NUMBER
  5445						MOV	R3,-(SP)			;LINE UNDER TEST
  5446						CK11SC	<CKEGB!CKEPC!CKEDID>,<Ill Line Num>,<ILLEGAL LINE NUMBER>
  5447						.ASCIZ	\Ill Line Num\<377>
  5448						.EVEN
  5449						BR	CKDH1D			;DON'T TEST ANY MORE
  5450					9$:	SWAB	R0			;FOR CHECKING THE DATA
  5451						CMPB	R0,DHDATA		;SEE IF CORRECT DATA
  5452						BEQ	10$			;BRANCH IF DATA OK
  5453						MOV	DHDATA,-(SP)		;GOOD DATA
  5454						CLR	-(SP)			;FOR BYTE MOVE
  5455						MOVB	R0,(SP)			;THE BAD DATA
  5456						MOV	R3,-(SP)			;THE LINE #
  5457						CK11SC	<CKEGB!CKEPC!CKEDID>,<Data Err>,<DATA ERROR>
  5458						.ASCIZ	\Data Err\<377>
  5459						.EVEN
  5460						BR	CKDH1D			;DON'T TEST ANY MORE
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 27-5
C11DMC.MAC    10-AUG-79 16:08			CHECK DH11 HDW

  5461					10$:	INCB	DHDATA			;NEW PATTERN EXPECTED
  5462						BEQ	11$			;BRANCH IF LINE DONE
  5463						JMP	CKDH1E			;
  5464					;
  5465					11$:
  5466					CKDH1D:	INC	R3			;NEW LINE NUMBER
  5467						ASL	R2			;NEW BIT FOR NEXT LINE
  5468						BEQ	CKDH1F			;BRANCH IF TEST ALL DONE
  5469						JMP	CKDH1B			;
  5470					;
  5471					CKDHPL:	CK11SC	0,<		Line #>
  5472						.ASCIZ	\		Line #\
  5473						.EVEN
  5474						MOV	R3,R0			;LINE NUMBER TO R0 FOR CALL
  5475						JSR	PC,CKTOCT		;PRINT LINE NUMBER
  5476						RTS	PC			;RETURN
  5477					;
  5478						    .IFF ;NE NDH11
  5479					10$:	JSR	R0,CKTSTR
  5480						.ASCIZ	\	SKIPPING TRANSMISSION CHECK\
  5481						.EVEN
  5482						MOV	#377+<<.+6-10$>/2>,10$	;SHUT OFF SKIPPING COMMENT
  5483		   001				    .ENDC ;NE NDH11
  5484					;
  5485					CKDH1F:	BIS	#DH..MC,(R4)		;MASTER CLEAR
  5486						MOV	(SP)+,R3	;GET R3 BACK
  5487						RTS	PC			;DH CHARACTER TEST DONE
  5488					DHDATA:	0
  5489					DHXMII:	0
  5490		   000				    .ENDC ;NE FTDH11
  5491					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 28
C11DMC.MAC    10-AUG-79 16:08			CHECK DH11 HDW

  5493
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 29
C11DMC.MAC    10-AUG-79 16:08			CHECK DH11 HDW

  5495
  5496					.SBTTL		CHECK DL11-A HDW
  5497					;
  5498						    .IIF NDF FTDL1A,FTDL1A=0
  5499		   001				    .IF NE FTDL1A
  5500					XDL.A11:
  5501						RTS	PC
  5502		   000				    .ENDC ;NE FTDL1A
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 29-1
C11DMC.MAC    10-AUG-79 16:08			CHECK DL11-E HDW

  5504					.SBTTL		CHECK DL11-E HDW
  5505					;
  5506					;CALL	MOV	#<VECTOR ADR>,R3
  5507					;	MOV	#<HDW ADR>,R4
  5508					;	MOV	#<HDW ADR>,R1
  5509					;	JSR	PC,XDL11
  5510					;
  5511						    .IIF NDF FTDL1E,FTDL1E=0
  5512		   001				    .IF NE FTDL1E
  5513	011452'				XDL.E11:
  5514	011452'	010346				MOV	R3,-(SP)	;
  5515	011454'	004537	007574'			JSR	R5,CHKBIT	;CHECK READ/WRITE BITS
  5516	011460'	000156				000156			;
  5517	011462'	005721				TST	(R1)+		;ADVANCE TO RECEIVE DATA REGISTER
  5518	011464'	005721				TST	(R1)+		;ADVANCE TO TRANSMIT STATUS REGISTER
  5519	011466'	004537	007574'			JSR	R5,CHKBIT	;
  5520	011472'	000105				000105			;
  5521	011474'	012603				MOV	(SP)+,R3	;
  5522	011476'	000207				RTS	PC		;
  5523		   000				    .ENDC ;NE FTDL1E
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 29-2
C11DMC.MAC    10-AUG-79 16:08			CHECK DM11BB HDW

  5525					.SBTTL		CHECK DM11BB HDW
  5526					;
  5527					;CALL	MOV	#<VECTOR ADR>,R3
  5528					;	MOV	#<HDW ADR>,R4
  5529					;	MOV	#<HDW ADR>,R1
  5530					;	JSR	PC,XDM11
  5531					;
  5532						    .IIF NDF FTDM11,FTDM11=0
  5533		   001				    .IF NE FTDM11
  5534					XDM11:	JSR	R5,CHKBIT		;CHECK FOLLOWING BITS
  5535						DM.ALI!DM.DNE!DM..MM!DM.ENB!DM.IEN
  5536						$CKINT	,R4,<DM.IEN>,<DM.DNE>
  5537						JSR	PC,CKDMCS		;CLEAR SCAN AND CHECK IT CLEARED
  5538						BIS	#DM.ENB,(R4)		;ENABLE SCAN
  5539						BIT	#DM.BSY,(R4)		;SEE IF BSY SET
  5540						BNE	1$			;BRANCH IF IT DID
  5541						CK11SC	<CKEPC!CKEDID>,<Busy did not Set>,<BUSY DID NOT SET>
  5542						.ASCIZ	\Busy did not Set\<377>
  5543						.EVEN
  5544					1$:	JSR	PC,CKDMCS		;CLEAR SCAN AND CHECKED IT CLEARED
  5545						RTS	PC
  5546					;
  5547					.IIF NDF DM.TIM,DM.TIM=40.		;DM11BB SETTLE TIME IN MEMORY CYCLES
  5548					;
  5549					CKDMCS:	MOV	#DM.DNE!DM..MM!DM.IEN!DM.ENB!DM.ALI,R2
  5550										;BITS WHICH SHOULD GET CLEARED
  5551						MOV	#<DM.TIM/5>,R0		;TIME OUT FOR BUSY
  5552						BIS	#DM.SCN,(R4)		;CLEAR SCAN
  5553					5$:	BIT	#DM.BSY,(R4)		;SEE IF BUSY CLEAR YET
  5554						BEQ	2$			;BRANCH IF IT IS
  5555						SOB	R0,5$			;TIME OUT WAITING FOR BSY TO CLEAR
  5556						CK11SC	<CKEPC!CKEDID>,<Busy did not Clear>,<CLEARING SCAN FAILED TO CLEAR BUSY>
  5557						.ASCIZ	\Busy did not Clear\<377>
  5558						.EVEN
  5559					2$:	BIT	R1,(R4)			;SEE IF THEY ARE ALL CLEAR
  5560						BEQ	3$			;BRANCH IF THEY ARE ALL CLEAR
  5561						MOV	(R4),R0			;GET DM11 STATUS
  5562						COM	R2			;MASK OUT NON INTERESTING BITS
  5563						BIC	R2,R0			;
  5564						CLR	-(SP)			;GOOD
  5565						MOV	R0,-(SP)			;BAD
  5566						MOV	R4,-(SP)			;ADR
  5567						CK11SC	<CKEGB!CKEPC!CKEDID>,<Clear Scan Error>,<CLR SCAN FAILED TO CLEAR A BIT>
  5568						.ASCIZ	\Clear Scan Error\<377>
  5569						.EVEN
  5570					3$:	RTS	PC
  5571		   000				    .ENDC ;NE FTDM11
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 29-3
C11DMC.MAC    10-AUG-79 16:08			CHECK DN11 HDW

  5573					.SBTTL		CHECK DN11 HDW
  5574					;
  5575					;CALL	MOV	#<VECTOR ADR>,R3
  5576					;	MOV	#<HDW ADR>,R4
  5577					;	MOV	#<HDW ADR>,R1
  5578					;	JSR	PC,XDN11
  5579					;
  5580						    .IIF NDF FTDN11,FTDN11=0
  5581		   001				    .IF NE FTDN11
  5582					XDN11:	JSR	R5,CHKBIT		;CHECK BITS
  5583						007714				;READ/WRITE BITS
  5584						$CKINT	,R4,<DN..IE!DN..ME>,<DN.DNE>
  5585						RTS	PC
  5586		   000				    .ENDC ;NE FTDN11
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 29-4
C11DMC.MAC    10-AUG-79 16:08			CHECK DP11 HDW

  5588					.SBTTL		CHECK DP11 HDW
  5589					;
  5590					;CALL	MOV	#<VECTOR ADR>,R3
  5591					;	MOV	#<HDW ADR>,R4
  5592					;	MOV	#<HDW ADR>,R1
  5593					;	JSR	PC,XDP11
  5594					;
  5595						    .IIF NDF FTDP11,FTDP11=0
  5596		   001				    .IF NE FTDP11
  5597					XDP11:	JSR	R5,CHKBIT	;CHECK BITS
  5598						3707			;READ/WRITE BITS
  5599						TST	(R1)+		;ADV TO REC BUF/SYN REG
  5600					;;;;	JSR	R5,CHKBIT	;CHECK BITS
  5601					;;;;	000000			;READ/WRITE BITS
  5602						TST	(R1)+		;ADV TO XMT STATUS REG
  5603						JSR	R5,CHKBIT	;
  5604						000143			;READ/WRITE BITS
  5605					;;;;	TST	(R1)+		;ADV TO XMT BUFFER
  5606					;;;;	JSR	R5,CHKBIT	;
  5607					;;;;	000000			;READ/WRITE BITS
  5608						$CKINT	R4,R4,B6,B7	;
  5609						RTS	PC		;
  5610		   000				    .ENDC ;NE FTDP11
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 29-5
C11DMC.MAC    10-AUG-79 16:08			CHECK DQ11 HDW

  5612					.SBTTL		CHECK DQ11 HDW
  5613					;
  5614					;CALL	MOV	#<VECTOR ADR>,R3
  5615					;	MOV	#<HDW ADR>,R4
  5616					;	MOV	#<HDW ADR>,R1
  5617					;	JSR	PC,XDQ11
  5618					;
  5619						    .IIF NDF FTDQ11,FTDQ11=0
  5620		   001				    .IF NE FTDQ11
  5621					XDQ11:
  5622		   002				    .IF	NDF,FT.D75		;ONLY ASSEMBLE DQ IF NOT DC75
  5623						JSR	R5,CHKBIT		;CHECK WE CAN SET BITS
  5624						110373				;READ/WRITE BITS
  5625						TST	(R1)+			;ADVANCE TO XMT REGISTER
  5626						JSR	R5,CHKBIT		;CHECK WE CAN SET BITS
  5627						101772				;READ/WRITE BITS
  5628						TST	(R1)+			;ADVANCE TO ERR REGISTER
  5629						JSR	R5,CHKBIT		;CHECK WE CAN SET BITS
  5630						017477				;READ/WRITE BITS
  5631						TST	(R1)+			;ADVANCE TO SHADOW REGISTERS
  5632						JSR	R5,CHKBIT
  5633						-1
  5634					;
  5635					;DETERMINE DQ11 INTERRUPT LEVEL
  5636					;
  5637					30$:	$CKINT	R4,R4,DQ.RIE,<DQ.RDP!DQ.RDS>
  5638						MOV	CHKCHR+CKDV,-(SP)	;SAVE VECTOR
  5639						ADD	#4,CHKCHR+CKDV		;MAKE VECTOR B
  5640						CMP	(R1)+,(R2)+		;POINT TO XMIT REG
  5641						$CKINT	,,<DQ.XIE>,<DQ.XDS!DQ.XDP>
  5642						TST	(R2)+			;ADVANCE INT BIT POINTER TO ERR REG
  5643						$CKINT	,,<DQ.EIE>,<DQ.VRC!DQ.XLE!DQ.RLE!DQ.XNX!DQ.RNX!DQ.XCL!DQ.RCL>
  5644						MOV	(SP)+,CHKCHR+CKDV		;RESTORE VECTOR A VECTOR
  5645					;
  5646					;ENTRY BECAUSE DQ11 TRAPPED TO RIGHT LOCATION
  5647					; CHECK WE CAN CLEAR THE DATASET FLAG
  5648					;
  5649					32$:	MOV	#5,R0			;PATIENCE COUNTER ON DATASET FLAG
  5650					31$:	BIC	#DQ.DSF,2(R4)		;CLEAR DATASET FLAG
  5651						CMP	(SP),(SP)			;TIME WASTER ONLY
  5652						BIT	#DQ.DSF,2(R4)		;CHECK TO SEE IF DATASET FLAG STILL OFF
  5653						BEQ	CHKDQE
  5654						SOB	R0,31$
  5655						CK11SC	<CKEDID!CKEPC>,<Can't Clr Dataset Flg>,< CAN'T CLEAR DATASET FLAG>
  5656						.ASCIZ	\Can't Clr Dataset Flg\<377>
  5657						.EVEN
  5658					.PAGE
  5659					;CHECK THAT ERROR BITS WORK
  5660					;
  5661					CHKDQE:	JSR	PC,CKDQCL		;CLEAR ENTIRE DQ
  5662						MOV	#40,R2			;FIRST BIT TO TRY
  5663					1$:	BIS	R2,4(R4)		;SET AN ERROR BIT
  5664						MOV	4(R4),R0		;GET ERR REG
  5665						BPL	2$			;BRANCH IF B15 ERR NOT SET
  5666						BIT	R2,R0			;SEE IF THE BIT SET
  5667						BNE	3$			;BRANCH IF B15 SET AND ERR BIT SET
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 29-6
C11DMC.MAC    10-AUG-79 16:08			CHECK DQ11 HDW

  5668					2$:	MOV	R2,-(SP)			;SAVE GOOD
  5669						BIS	#B15,(SP)		; ALSO MUST INCLUDE BIT 15.
  5670						JSR	PC,CKDQES		;PUT BAD AND REG # ON STACK
  5671						CK11SC	<CKEDID!CKEPC!CKEGB>,<Bit not Set>,<CAN'T SET BIT>
  5672						.ASCIZ	\Bit not Set\<377>
  5673						.EVEN
  5674					3$:	BIC	R2,4(R4)		;CLEAR BIT JUST SET, SHOULD ALSO CLEAR B15.
  5675						MOV	4(R4),R0		;SAVE RESULTS
  5676						BMI	4$			;BRANCH IF B15 SET (IT SHOULDN'T BE)
  5677						BIT	R2,R0		;SEE IF THE BIT IS CLEAR
  5678						BEQ	5$			;BRANCH IF ITS 0
  5679					4$:	CLR	-(SP)			;WHAT GOOD SHOULD BE
  5680						JSR	PC,CKDQES		;SAVE BD, AND REG # ON STACK
  5681						CK11SC	<CKEDID!CKEPC!CKEGB>,<Bit not Clear>,<COULDN'T CLEAR BIT>
  5682						.ASCIZ	\Bit not Clear\<377>
  5683						.EVEN
  5684					5$:	ASR	R2			;ALL DONE?
  5685						BNE	1$			;BRANCH BACK IF ANOTHER BIT TO TEST
  5686						BR	CHKDQS		;GO CHECK SECONDARY REGS
  5687					;
  5688					CKDQES:	MOV	(SP)+,R1			;SAVE RETURN PC
  5689						MOV	R0,-(SP)			;PUT C(ERR REG) ON STACK
  5690						MOV	R2,-(SP)			;BIT WE TESTED
  5691						BIS	#B15,(SP)		;INCLUDE ERROR BIT
  5692						COM	(SP)			;
  5693						BIC	(SP)+,(SP)		;KEEP ONLY THE INTERESTING BITS
  5694						MOV	R4,-(SP)			;SAVE REG ADR
  5695						ADD	#4,(SP)			;MAKE IT THE ERROR REG
  5696						JMP	(R1)			;RETURN
  5697					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 30
C11DMC.MAC    10-AUG-79 16:08			CHECK DQ11 HDW

  5699
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 31
C11DMC.MAC    10-AUG-79 16:08			CHECK DQ11 HDW

  5701
  5702					; CHECK WE CAN LOAD VARIOUS DQ11 SECONDARY REGISTERS
  5703					;
  5704					CHKDQS:	CLR	R0			;1ST TRY TO CLEAR ALL SECONDARY REGISTERS
  5705						JSR	PC,60$			;GO DO IT
  5706						MOV	#-1,R0			;NOW TRY TO SET ALL SECONDARY REGISTERS
  5707						JSR	PC,60$
  5708						MOV	#1,R0			;BIT TO LOAD
  5709					10$:	JSR	PC,60$			;TRY TO LOAD BIT
  5710						ASL	R0			;SHIFT BIT
  5711						BNE	10$			;BRANCH IF STILL HAVE BITS TO TEST
  5712						MOV	#RG.SYN,R1		;NOW TRY TO LOAD REG WITH REG #
  5713					12$:	MOV	R1,R0			;DATA = REGISTER NUMBER
  5714						JSR	PC,CKDQSL		;TRY TO LOAD REGISTER
  5715						CMP	#RG.SYN,R1
  5716						BNE	14$
  5717						DEC	R1			;SKIP REG 10
  5718					14$:	DEC	R1			;ON TO NEXT REGISTER
  5719						BPL	12$
  5720						MOV	#RG.SYN,R1		;NOW CHECK IT LOADED
  5721					16$:	MOV	R1,R0			;DATA SHOULD BE SAME
  5722						JSR	PC,CKDQSR		;CHECK DATA STILL THERE
  5723						CMP	#RG.SYN,R1		;WAS THIS THE FIRST REG ?
  5724						BNE	18$
  5725						DEC	R1			;YES SO SKIP REG 10
  5726					18$:	DEC	R1			;ON TO NEXT REGISTER
  5727						BPL	16$			;DO REST IF ANY
  5728						MOV	#RG.MSC,R1		;NOW TEST MISC REG
  5729						CLR	R0			;TRY TO CLEAR REGISTER
  5730						JSR	PC,CKDQSL		;TRY TO LOAD IT
  5731						MOV	#2,R0			;TEST STEP-MODE BIT
  5732						JSR	PC,CKDQSL
  5733						MOV	#
  5734					10,R0			;TEST TEST-LOOP BIT
  5735						JSR	PC,CKDQSL
  5736						CLR	R0
  5737						JSR	PC,CKDQSL		;CLEAR MISC REG
  5738						BR	CHKDQL			;DO A LOOP BACK TEST
  5739					;
  5740					60$:	MOV	#RG.SYN,R1		;1ST REGISTER TO LOAD
  5741					62$:	JSR	PC,CKDQSL
  5742						CMP	#RG.SYN,R1		;DID WE JUST CHECK THE SYN REG ?
  5743						BNE	64$
  5744						DEC	R1			;YES SO SKIP A REG
  5745					64$:	DEC	R1			;ON TO THE NEXT REG
  5746						BPL	62$
  5747						RTS	PC			;YES
  5748					;
  5749					; LOAD A DQ11 2NDARY REGISTER
  5750					; CALL	MOV	#DATA,R0
  5751					;	MOV	#REG,R1
  5752					;	JSR	PC,CKDQSL
  5753					CKDQSL:	BIS	#DQ.MBM,R1
  5754						MOVB	R1,5(R4)		;SELECT THE REGISTER
  5755						MOV	R0,6(R4)		;LOAD THE DATA
  5756					CKDQSR:	BIS	#DQ.MBM,R1
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 31-1
C11DMC.MAC    10-AUG-79 16:08			CHECK DQ11 HDW

  5757						MOVB	R1,5(R4)		;SELECT THE REGISTER
  5758						BIC	#DQ.MBM,R1
  5759						CMP	R0,6(R4)		;CHECK TO SEE IF WE LOADED IT
  5760						BNE	10$
  5761						RTS	PC
  5762					10$:	MOV	R0,-(SP)			;SAVE GOOD DATA
  5763						MOV	6(R4),-(SP)		;SAVE BAD DATA
  5764						MOV	R1,-(SP)			;SAVE 2ND REG #
  5765						CK11SC	<CKEDID!CKEPC!CKEGB>,<Secondary Reg Err>,<SECONDARY REG ERROR>
  5766						.ASCIZ	\Secondary Reg Err\<377>
  5767						.EVEN
  5768						RTS	PC			;RETURN
  5769					.PAGE
  5770					; DISCOVER WHAT THE SPECIAL CHARACTERS ARE IN THE DQ11.
  5771					;
  5772					CHKDQL:
  5773		   003				    .IF NE SPCVFY		;CHECK FOR SPECIAL CHARS ONLY IF USED
  5774						CLR	CHKCHR+CKFLG		;CLEAR WHERE WE COUNT SPECIAL CHARS
  5775						MOV	R2,-(SP)		;SAVE R2
  5776						MOV	R3,-(SP)		;SAVE R3 (VECTOR)
  5777						MOV	R5,-(SP)		;SAVE R5
  5778						MOVB	#255,CHKXBF+2		;SOMETHING OTHER THAN SYNC (226)
  5779						CLR	R3			;START WITH CHARACTER 0
  5780					CKDQLP:
  5781					1$:	JSR	PC,CKDQCL		;CLEAR DQ
  5782						MOV	#CHKRBF,R5		;ADDRESS TO LOAD
  5783						MOV	#<<CHKRBF-CHKXBF>/2>,R1	;LENGTH TO LOAD
  5784						CLR	R2			;DATA TO LOAD
  5785						JSR	PC,CKLDBF		;LOAD BUFFER
  5786						MOV	#226*401,CHKXBF		;SYNC CHAR WE USE
  5787						MOVB	R3,CHKXBF+3		;PUT CHAR IN XMIT BUFFER
  5788						DQREGS	SYN,(R4)		;SYNC REG
  5789						MOV	#226*401,6(R4)		;PUT SYNC CHAR IN REG
  5790						DQREGS	MSC,(R4)		;MISC REG
  5791						MOV	#4010,6(R4)		;LOAD MISC REG
  5792						DQREGS	PTA,(R4)		;PRI XMIT ADDR REG
  5793						MOV	#CHKXBF,6(R4)		;LOAD XMIT PRI ADDR REG
  5794						DQREGS	STA,(R4)		;SEC XMIT ADR REG
  5795						MOV	#CHKXBF,6(R4)		;LOAD XMIT SEC ADDR REG
  5796						DQREGS	PRA,(R4)		;PRIMARY RECEIVE ADDR REG
  5797						MOV	#CHKRBF,6(R4)		;LOAD REC ADDR REG PRI
  5798						DQREGS	SRA,(R4)		;SEC REC ADR REG
  5799						MOV	#CHKRBF,6(R4)		;LOAD REC ADDR REG SEC
  5800						DQREGS	PTC,(R4)		;PRI XMIT CC
  5801						MOV	#-4,6(R4)		;LOAD PRI XMIT CC
  5802						DQREGS	STC,(R4)		;SEC XMIT CC
  5803						MOV	#-2,6(R4)		;LOAD SEC XMIT CC
  5804						DQREGS	PRC,(R4)		;PRI REC CC
  5805						MOV	#-2,6(R4)		;LOAD PRI REC CC
  5806						DQREGS	SRC,(R4)		;SEC REC CC
  5807						MOV	#-2,6(R4)		;LOAD SEC REC CC
  5808						CLR	R1			;CLEAR SAVED STATUS
  5809						MOV	#DQ.RGO!DQ.CIE!DQ.RIE,(R4)	;TELL REC TO GO WITH IE
  5810						MOV	#DQ.XGO,2(R4)		;TELL XMIT TO GO
  5811					CKDQWA:	CLR	R5			;FOR TIME-OUT
  5812						CLR	R0			;UPON INT R0 WILL GET VECTOR
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 31-2
C11DMC.MAC    10-AUG-79 16:08			CHECK DQ11 HDW

  5813						CLR	PS			;LET INT HAPPEN
  5814					1$:	TST	R0			;SEE IF AN INTERRUPT
  5815						BNE	2$			;BRANCH IF ONE (R0 IS NON 0)
  5816						SOB	R5,1$			;TIME OUT
  5817						CK11SC	<CKEPC!CKEDID>,<Timed Out>,<TIMED OUT WHILE WAITING FOR AN INT>
  5818						.ASCIZ	\Timed Out\<377>
  5819						.EVEN
  5820						BR	CKDQOT		;DON'T CHK THIS DQ ANY MORE
  5821					2$:	CMP	R0,CHKCHR+CKDV		;SEE IF WE CAME TO THE RIGH VECTOR
  5822						BEQ	CKDQGI			;BRANCH IF WE DID
  5823						CKSERR	<CHKCHR+CKDV>,R0,R4	;SAVE GD,BD,DEV ADR
  5824						CK11SC	<CKEPC!CKEDID!CKEGB>,<Interrupted to Wrong Vector>,<INTERRUPTED TO WRONG
  5825						.ASCIZ	\Interrupted to Wrong Vector\<377>
  5826						.EVEN
  5827						BR	CKDQOT			;DON'T CHK ANY MORE OF THIS DQ
  5828					CKLDBF:	MOV	R2,(R5)+		;PUT DATA IN ADDR
  5829						SOB	R1,CKLDBF		;FILLED?
  5830						RTS	PC			;YES.
  5831					;
  5832					CKDQGI:	MOV	(R4),R5			;GET STATUS
  5833						TSTB	R5			;SEE IF DONE YET?
  5834						BMI	1$			;BRANCH IF SO
  5835						BIT	#DQ.RDS,R5		;SEE IF SEC INT
  5836						BNE	2$			;BRANCH IF IT IS
  5837						BIT	#DQ.VCH,R5		;SEE IF SPECIAL CHAR INT
  5838						BNE	3$			;BRANCH IF SO
  5839						CK11SC	<CKEDID!CKEPC>,<Illegal Interrupt>,<SOME BIT OTHER THAN SPEC CHAR INT'ED
  5840						.ASCIZ	\Illegal Interrupt\<377>
  5841						.EVEN
  5842						BR	CKDQOT			;DON'T CHECK ANY MORE OF THIS DQ
  5843					1$:	BIT	#DQ.VCH,R5		;SEE IF SPECIAL CHAR INT
  5844						BEQ	5$			;BRANCH IF NOT
  5845						MOV	R5,R1			;SAVE REC STATUS FOR PRINT
  5846						BIC	#DQ.VCH!DQ.RDP!DQ.CIE,(R4)	;DISMISS INT
  5847						BR	CKDQWA			;GO WAIT FOR ANOTHER INT
  5848					3$:	BIC	#DQ.VCH,(R4)		;CLEAR FOR EXIT
  5849						BR	CKDQWA			;GO WAIT FOR ANOTHER INT
  5850					5$:	BIC	#DQ.RDP,(R4)		;
  5851						BR	CKDQWA			;GO WAIT FOR ANOTHER INT
  5852					2$:	BIT	#DQ.VCH,R1		;WAS IT A SPECIAL CHAR?
  5853						BEQ	6$			;NO, SO JUST UPDATE PATTERN
  5854						BIT	#DQ.CHR,R1		;WAS THERE CAUSE FOR VCH ?
  5855						BNE	9$			;MUST BE NON 0 OR WHY ARE WE HERE
  5856						CK11SC	<CKEDID!CKEPC>,<Spec Char Code Fld 0>,<SPECIAL CHAR CODE FIELD 0>
  5857						.ASCIZ	\Spec Char Code Fld 0\
  5858						.EVEN
  5859						BR	CKDQOT			;DON'T CHECK ANY MORE OF THIS DQ
  5860					9$:	BIT	#DQ.ETB!DQ.ETX!DQ.ENQ,R1 ;WAS IT INTERESTING SPECIAL CHAR ?
  5861						BNE	10$			;IF SO FIND WHICH
  5862						BIS	#B15,CHKCHR+CKFLG	;SET FLAG THAT SYNC INTERRUPTS
  5863						BR	6$
  5864					69$:	.WORD	B10
  5865						.WORD	B9
  5866						.WORD	B8
  5867					10$:	MOV	#4,R5			;INDEX FOR SPECIAL CHAR TABLE
  5868						INC	CHKCHR+CKFLG		;COUNT SPECIAL CHARACTER
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 31-3
C11DMC.MAC    10-AUG-79 16:08			CHECK DQ11 HDW

  5869					12$:	BIT	69$(R5),R1		;CHECK FOR SPECIAL CHAR FLAG
  5870						BEQ	14$
  5871						MOV	R3,CHKCHR+CKSPC(R5)	;PUT INTO THE TABLE
  5872					14$:	SUB	#2,R5
  5873						BGE	12$			;LOOK FOR ANOTHER MAYBE
  5874					6$:	INCB	R3			;NEXT CHAR TO CHECK
  5875						BEQ	4$			;BRANCH IF ALL DONE
  5876						BIC	#DQ.RDS!DQ.VCH!DQ.CIE!DQ.RIE,(R4)	;
  5877						JMP	CKDQLP			;
  5878					CKDQOT=.
  5879					4$:	MOV	(SP)+,R5
  5880						MOV	(SP)+,R3
  5881						MOV	(SP)+,R2
  5882						CMPB	CHKCHR+CKFLG,#4		;SHOULD BE NO MORE THAT 4
  5883						BLE	15$			;CHECK IF SO
  5884						CK11SC	<CKEDID!CKEPC>,<More than 4 Spec Char Det>,<MORE THAN 4 SPEC CHAR WERE D
  5885						.ASCIZ	\More than 4 Spec Char Det\
  5886						.EVEN
  5887						BR	CKDQOT			;DON'T CHECK ANY MORE OF THIS DQ
  5888						    .IFF
  5889					10$:	JSR	R0,CKTSTR
  5890						.ASCIZ	\	SKIPPING SPEC CHAR TEST\
  5891						.EVEN
  5892						MOV	#377+<<.+6-10$>/2>,10$	;SHUT OFF SKIPPING COMMENT
  5893		   002				    .ENDC ; .IF NE SPCVFY
  5894					15$:	RTS	PC			;RETURN
  5895					.PAGE
  5896					;ROUTINE TO CLEAR THE ENTIRE DQ
  5897					;
  5898					CKDQCL:	MOV	R0,-(SP)
  5899						MOV	R1,-(SP)
  5900						MOV	R2,-(SP)
  5901						DQREGS	MSC,(R4)		;SELECT MISC REG
  5902						MOV	#DQ.MC,6(R4)		;MASTER CLEAR
  5903						DQREGS	MSC,(R4)		;SELECT MISC REG AGAIN
  5904						MOV	#DQ.MC,6(R4)		;MASTER CLEAR AGAIN
  5905						MOV	#17,R0			;CLEAR ALL SEC REG
  5906						MOV	#B12,R2			;CLEAR BITS 13+14 IN ERR
  5907					1$:	MOV	R2,4(R4)		;SELECT A SEC REG
  5908						CLR	6(R4)			;CLEAR THAT SEC REG
  5909						ADD	#B8,R2			;SELECT NEXT SEC REG TO CLEAR
  5910						SOB	R0,1$			;ALL SEC CLEARED?
  5911						MOV	(SP)+,R2		;RESTORE REGS USED
  5912						MOV	(SP)+,R1
  5913						MOV	(SP)+,R0
  5914						RTS	PC			;RETURN
  5915					;
  5916					.IIF NDF CHKBSZ,CHKBSZ=10
  5917					CHKXBF:	.BLKB	CHKBSZ
  5918					CHKRBF:	.BLKB	CHKBSZ
  5919					;
  5920		   001				    .ENDC	;RANGES OVER ENTIRE DQ CHECK (NDF FT.D75)
  5921					;
  5922					.IIF	DF,FT.D75,	RTS	PC
  5923		   000				    .ENDC ;NE FTDQ11
  5924					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 32
C11DMC.MAC    10-AUG-79 16:08			CHECK DQ11 HDW

  5926
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 33
C11DMC.MAC    10-AUG-79 16:08			CHECK DQ11 HDW

  5928
  5929					.SBTTL		CHECK DS11 HDW
  5930					;
  5931					;CALL	MOV	#<VECTOR ADR>,R3
  5932					;	MOV	#<HDW ADR>,R4
  5933					;	MOV	#<HDW ADR>,R1
  5934					;	JSR	PC,CKDS11
  5935					;
  5936						    .IIF NDF FTDS11,FTDS11=0
  5937		   001				    .IF NE FTDS11
  5938					CKDS11:
  5939						MOV	DS.AUX,R1		;GET AUX REG TO SEE HOW MANY GROUPS
  5940						MOV	#DS.AD1,R2		;FOR CHECKING GROUP NUMBER
  5941						MOV	#4,R0			;ALWAYS 1 GROUP IF DS11
  5942					1$:	BIT	R2,R1			;GROUP EXIST?
  5943						BEQ	2$			;BRANCH IF NO GROUP
  5944						ADD	#4,R0			;COUNT 4 LINES FOR EACH GROUP
  5945						ASL	R2			;POSITION TO CHECK NEXT GROUP BIT
  5946						BNE	1$			;BRANCH IF WE CAN CHECK ANOTHER
  5947					2$:	JSR	PC,CKTBOC		;PRINT NUMBER OF LINES
  5948						CK11SC	CKENCL,< Lines>
  5949						.ASCIZ	\ Lines\
  5950						.EVEN
  5951						MOV	#DS.AUX,R1		;CHECK THE AUX REG
  5952						JSR	R5,CHKBIT		;CHECK FOLLOWING BITS
  5953						1700				;BITS TO CHECK
  5954						MOV	#DS.DVA-2,R1		;SET TO CHECK LINES
  5955						MOV	#DS.VEC,CHKCHR+CKDV	;VECTOR TO START AT
  5956						MOV	26(R5),CHKCHR+CKPI	;PI LEVEL FOR ALL DS11
  5957						MOV	R0,R2			;NUMBER OF LINES TO CHECK
  5958						MOV	#CHKCHR,R0		;POINT TO BLOCK FOR MAIN CALL
  5959					3$:	ADD	#2,R1			;LINE ADR TO CHECK
  5960						MOV	R1,CHKCHR+CKDA		;MAIN NEEDS THIS INFO
  5961						JSR	R5,CHKBIT		;CHK RECEIVE STATUS REG
  5962						6477				;BITS TO CHECK
  5963						TST	(R1)+			;ADVANCE TO REC DATA REG
  5964						JSR	R5,CHKBIT		;CHK RECEIVE DATA REG
  5965						7777				;BITS TO CHECK
  5966						TST	(R1)+			;ADVANCE TO XMIT STATUS REG
  5967						JSR	R5,CHKBIT		;CHK XMIT STATUS REG
  5968						476				;BITS TO CHECK
  5969						TST	(R1)+			;ADVNACE TO XMIT DATA REG
  5970						JSR	R5,CHKBIT		;CHK XMIT DATA REG
  5971						7777				;BITS TO CHECK
  5972						JSR	PC,@14(R5)		;CALL THE MAIN PROGRAM
  5973						ADD	#20,CHKCHR+CKDV		;ADVANCE VECTOR ADR FOR NEXT LINE
  5974						ADD	#10,CHKCHR+CKDA		;ADVANCE DEVICE ADR FOR NEXT LINE
  5975						SOB	R2,3$			;ALL LINES CHECKED?
  5976						MOV	#DS.VEC,CHKCHR+CKDV	;SO "CHKDEV" WILL FILL OUT BLOCK
  5977										;
  5978						RTS	PC			;FINI CHECKING DS11
  5979		   000				    .ENDC ;NE FTDS11
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 33-1
C11DMC.MAC    10-AUG-79 16:08			CHECK DTE20 HARDWARE

  5981					.SBTTL		CHECK DTE20 HARDWARE
  5982					;
  5983					;CALL	MOV	#<VECTOR ADR>,R3
  5984					;	MOV	#<HDW ADR>,R4
  5985					;	MOV	#<HDW ADR>,R1
  5986					;	JSR	PC,XDTE211
  5987					;
  5988						    .IIF NDF FTDTE,FTDTE=0
  5989		   001				    .IF NE FTDTE
  5990	011500'				XDTE211:				;
  5991	011500'	010100				MOV	R1,R0		;FROM THE DEVICE ADDRESS
  5992	011502'	006200				ASR	R0		;BITS 5 AND 6 GIVE US WHICH ONE IT IS
  5993	011504'	006200				ASR	R0		;POSITION TO BITS 2 AND 3 WHICH IS
  5994	011506'	006200				ASR	R0		;WHERE THE VECTOR VARIES
  5995	011510'	042700	177763			BIC	#^C14,R0	;ISOLATE THEM
  5996	011514'	160037	015500'			SUB	R0,CHKCHR+CKDV	;CORRECT OUR VECTOR ADDRESS
  5997	011520'	004537	007574'			JSR	R5,CHKBIT	;CHECK DLYCNT IN DTE'S RAM
  5998	011524'	177777				177777			; SINCE WE CAN ACCESS ALL THE BITS
  5999	011526'	062701	000034			ADD	#CSTAT-DLYCNT,R1 ;POINT TO STATUS REGISTER
  6000	011532'	012711	000040			MOV	#INTRON,(R1)	;ENABLE INTERRUPTS
  6001	011536'	032711	000001			BIT	#INTSON,(R1)	;DOES DTE AGREE?
  6002	011542'	001022				BNE	10$		;YEP
  6003	011544'					CK11SC	<CKEPC!CKEDID>,<Setting INTRON didn't set INTSON>
  6004	011546'	062523	072164	067151		.ASCIZ	\Setting INTRON didn't set INTSON\<377>
	011554'	020147	047111	051124
	011562'	047117	062040	062151
	011570'	023556	020164	062563
	011576'	020164	047111	051524
	011604'	047117	000377
  6005						.EVEN
  6006	011610'	012711	004000		10$:	MOV	#INT11S,(R1)	;NOW SEE IF IT WILL INTERRUPT US
  6007	011614'	004537	010032'			JSR	R5,CHKINL
  6008	011620'	177777				-1			;TIME DELAY COUNT
  6009	011622'	012711	000010			MOV	#INTROF,(R1)	;TRY TO MAKE IT GO AWAY
  6010	011626'	032711	000001			BIT	#INTSON,(R1)	;WHICH SHOULD TURN THIS OFF
  6011	011632'	001423				BEQ	20$		;OKAY
  6012	011634'					CK11SC	<CKEPC!CKEDID>,<Setting INTROF didn't clear INTSON>
  6013	011636'	062523	072164	067151		.ASCIZ	\Setting INTROF didn't clear INTSON\<377>
	011644'	020147	047111	051124
	011652'	043117	062040	062151
	011660'	023556	020164	066143
	011666'	060545	020162	047111
	011674'	051524	047117	000377
  6014						.EVEN
  6015	011702'	032711	000010		20$:	BIT	#RM,(R1)		;WE SHOULD BE RESTRICTED
  6016	011706'	001016				BNE	30$		;WE ARE, FINE
  6017	011710'					CK11SC	<CKEPC!CKEDID>,<DTE20 is not restricted>
  6018	011712'	052104	031105	020060		.ASCIZ	\DTE20 is not restricted\<377>
	011720'	071551	067040	072157
	011726'	071040	071545	071164
	011734'	061551	062564	177544
	011742'	   000
  6019		011744'				.EVEN			;
  6020	011744'	012741	000100		30$:	MOV	#DRESET,-(R1)	;REALLY INITIALIZE DTE20
  6021	011750'	000207				RTS	PC
  6022		   000				    .ENDC ;NE FT.DTE
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 33-2
C11DMC.MAC    10-AUG-79 16:08			CHECK DU11 HDW

  6024					.SBTTL		CHECK DU11 HDW
  6025					;
  6026					;CALL	MOV	#<VECTOR ADR>,R3
  6027					;	MOV	#<HDW ADR>,R4
  6028					;	MOV	#<HDW ADR>,R1
  6029					;	JSR	PC,XDU11
  6030						    .IIF NDF FTDU11,FTDU11=0
  6031		   001				    .IF NE FTDU11
  6032					XDU11:				;
  6033						RTS	PC
  6034		   000				    .ENDC ;NE FTDU11
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 33-3
C11DMC.MAC    10-AUG-79 16:08			CHECK DUP11 HDW

  6036					.SBTTL		CHECK DUP11 HDW
  6037					;
  6038					;CALL	MOV	#<VECTOR ADR>,R3
  6039					;	MOV	#<HDW ADR>,R4
  6040					;	MOV	#<HDW ADR>,R1
  6041					;	JSR	PC,XUP11
  6042						    .IIF NDF FTDUP1,FTDUP1=0
  6043		   001				    .IF NE FTDUP1
  6044	011752'				XDUP11:				;
  6045	011752'					FIELD	$$,DUPRIE,DUPDTR ;
  6046	011752'	004537	007574'			JSR	R5,CHKBIT	;TEST THE RECVR CSR
  6047	011756'	000576				.WORD	DUPSSY!$$	;
  6048	011760'	005721				TST	(R1)+		;UP TO RECVR, BUT IT'S READ ONLY
  6049	011762'	005721				TST	(R1)+		;UP TO XMIT CSR
  6050	011764'	004537	007574'			JSR	R5,CHKBIT	;
  6051	011770'	036130				.WORD	DUPTMC!DUPTM1!DUPTM0!DUPTMI!DUPTIE!DUPTSN!DUPTHD
  6052	011772'	005721				TST	(R1)+		;UP TO XMIT DBR
  6053	011774'	004537	007574'			JSR	R5,CHKBIT	;
  6054	012000'	003777				.WORD	DUPXAB!DUPXEM!DUPXSM!DUPXDB
  6055	012002'	010401				MOV	R4,R1		;RESTORE DEVICE ADDRESS
  6056									;(ADD INTERRUPT CHECK)
  6057	012004'	000207				RTS	PC		;
  6058		   000				    .ENDC ;NE FTDUP1
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 33-4
C11DMC.MAC    10-AUG-79 16:08			CHECK DZ11 HDW

  6060					.SBTTL		CHECK DZ11 HDW
  6061					;
  6062					;CALL	MOV	#<VECTOR ADR>,R3
  6063					;	MOV	#<HDW ADR>,R4
  6064					;	MOV	#<HDW ADR>,R1
  6065					;	JSR	PC,XDZ11
  6066						    .IIF NDF FTDZ11,FTDZ11=0
  6067		   001				    .IF NE FTDZ11
  6068	012006'				XDZ11:				;
  6069	012006'	004537	007574'			JSR	R5,CHKBIT	;
  6070	012012'	040140				.WORD	DZ.TIE!DZ.RIE!DZ.SCN
  6071	012014'	005721				TST	(R1)+		;
  6072	012016'	004537	007574'			JSR	R5,CHKBIT	;
  6073	012022'	000000				.WORD	0		;
  6074	012024'	010401				MOV	R4,R1		;
  6075									;ADD INTERRUPT TEST
  6076	012026'	000207				RTS	PC		;
  6077		   000				    .ENDC ;NE FTDZ11
  6078					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 34
C11DMC.MAC    10-AUG-79 16:08			CHECK DZ11 HDW

  6080
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 35
C11DMC.MAC    10-AUG-79 16:08			CHECK DZ11 HDW

  6082
  6083					.SBTTL		CHECK KG11 HARDWARE
  6084					;
  6085	012030'				XKG11:	SAVE	R3		;
  6086	012032'					CHKCHR	R4,<#0>,<#0>	;
  6087	012052'	005000				CLR	R0		;
  6088	012054'				11$:	KGLOAD	R0		;
  6089	012070'	020064	000002			CMP	R0,KGBCC(R4)	;CHECK THAT IT LOADED
  6090	012074'	001422				BEQ	12$		;OK
  6091	012076'					CKSERR	R0,KGBCC(R4),R4	;GD,BD,ADR
  6092	012106'					CK11SC	<CKEPC!CKEDID!CKEGB>,<Can't load BCC Correctly>,<BCC ERROR>
  6093	012110'	060503	023556	020164		.ASCIZ	\Can't load BCC Correctly\<377>
	012116'	067554	062141	041040
	012124'	041503	041440	071157
	012132'	062562	072143	074554
	012140'	000377
  6094						.EVEN			;
  6095	012142'	077034			12$:	SOB	R0,11$		;
  6096									;
  6097									; CHECK CRC PORTION
  6098									;
  6099	012144'	012700	000777			MOV	#777,R0		;FIRST ENTRY FOR CRC
  6100	012150'					KGLOAD	#0		;CLEAR KG11
  6101	012154'	005003				CLR	R3		;CLEAR SOFTWARE COPY
  6102	012156'	004737	012234'		20$:	JSR	PC,70$		;CALCULATE SOFTWARE BCC
  6103	012162'	110064	000004			MOVB	R0,KGDATA(R4)	;INCLUDE CHAR IN HDW BCC
  6104	012166'	020364	000002			CMP	R3,KGBCC(R4)	;
  6105	012172'	001415				BEQ	54$		;
  6106	012174'					CKSERR	R3,KGBCC(R4),R4	;
  6107	012204'					CK11SC	<CKEPC!CKEGB!CKEDID>,<Incorrect CRC>,<INCORRECT CRC>
  6108	012206'	067111	067543	071162		.ASCIZ	\Incorrect CRC\<377>
	012214'	061545	020164	051103
	012222'	177503	   000
  6109		012226'				.EVEN			;
  6110	012226'	077025			54$:	SOB	R0,20$		;
  6111									;
  6112	012230'					RESTORE	R3		;
  6113	012232'	000207				RTS	PC		;
  6114					;
  6115					;SUBROUTINE TO CALCULATE CRC IN R3
  6116					;
  6117	012234'				70$:	SAVE	<R0,R1>		;
  6118	012240'	042700	177400			BIC	#^C377,R0	;STRIP EXTRA BITS
  6119	012244'	012701	000010			MOV	#8.,R1		;COUNTER
  6120	012250'	074003				XOR	R0,R3		;
  6121	012252'	012700	120001			MOV	#120001,R0	;
  6122	012256'	000241			72$:	CLC			;CLEAR CARRY BIT
  6123	012260'	006003				ROR	R3		;
  6124	012262'	103001				BCC	74$		;
  6125	012264'	074003				XOR	R0,R3		;
  6126	012266'	077105			74$:	SOB	R1,72$		;
  6127	012270'					RESTORE	<R1,R0>		;
  6128	012274'	000207				RTS	PC		;
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 35-1
C11DMC.MAC    10-AUG-79 16:08			CHECK KMC/DMC HARDWARE

  6130					.SBTTL		CHECK KMC/DMC HARDWARE
  6131					;
  6132					;CALL	MOV	#<VECTOR ADR OF KMC11>,R3
  6133					;	MOV	#<HDW ADR OF KMC11>,R4
  6134					;	MOV	#<HDW ADR OF KMC11>,R1
  6135					;	JSR	PC,XKMC11
  6136					;
  6137						    .IIF NDF FTKMC,FTKMC=0
  6138						    .IIF NDF FTDMC,FTDMC=0
  6139		   001				    .IF NE FTDMC
  6140	012276'				XDMC11:
  6141	012276'	010546			XKMC11:	MOV	R5,-(SP)	;SAVE R5
  6142	012300'	010446				MOV	R4,-(SP)	; AND R4
  6143	012302'	010346				MOV	R3,-(SP)	; AND R3
  6144	012304'	012714	040000			MOV	#MD.CLR,(R4)	;INITIALIZE THE KMC11
  6145	012310'	013746	001172'			MOV	MDCSRP,-(SP)	;LOG IN THE DEVICE
  6146	012314'	001004				BNE	10$		;NOT THE FIRST
  6147	012316'	012716	001174'			MOV	#MDCSR,(SP)	;THE FIRST, SET POINTER
  6148	012322'	011637	001172'			MOV	(SP),MDCSRP	;
  6149	012326'	010436			10$:	MOV	R4,@(SP)+	;ENTER DEVICE CSR INTO STARTUP TABLE
  6150	012330'	062737	000002	001172'		ADD	#2,MDCSRP	;UPDATE TABLE POINTER
  6151	012336'	005024				CLR	(R4)+		;CLEAR THE CSRS
  6152	012340'	005024				CLR	(R4)+		;
  6153	012342'	005024				CLR	(R4)+		;
  6154	012344'	005024				CLR	(R4)+		;
  6155	012346'	010104				MOV	R1,R4		;
  6156	012350'	004537	007574'			JSR	R5,CHKBIT	;VERIFY THESE BITS WORK
  6157	012354'	000377				.WORD	377		;ALL BITS OF BSEL 0
  6158	012356'	005721				TST	(R1)+		;LOOK AT SEL 2
  6159	012360'	004537	007574'			JSR	R5,CHKBIT	;VERIFY THESE BITS WORK
  6160	012364'	177777				.WORD	ALLBTS		;ALL BITS OF SEL 2
  6161	012366'	005721				TST	(R1)+		;LOOK AT SEL 4
  6162	012370'	004537	007574'			JSR	R5,CHKBIT	;VERIFY THESE BITS WORK
  6163	012374'	177777				.WORD	ALLBTS		;ALL BITS OF SEL 4
  6164	012376'	005721				TST	(R1)+		;LOOK AT SEL 6
  6165	012400'	004537	007574'			JSR	R5,CHKBIT	;VERIFY THESE BITS WORK
  6166	012404'	177777				.WORD	ALLBTS		;ALL BITS OF SEL 6
  6167		   002				    .IF NE FTKMCL
  6168						TST	MDCODB+2	;IF WE ARE RETAINING THE CRAM...
  6169						BEQ	20$		; DON'T CHECK INTERRUPTS (CLOBBERS CRAM 0)
  6170		   001				    .ENDC ;NE FTKMCL
  6171									;CREATE A DMC INTERRUPT BY SETTING
  6172									;  BUS RQ IN MP MISC BY JAMMING MP INSTRS
  6173	012406'	012737	000340	177776		MOV	#BR7,PS		;STOP INTERRUPTS
  6174	012414'	012714	001000			MOV	#MD.RMI,(R4)	;SET ROM I ("JAM INSTRUCTION")
  6175	012420'	012764	000600	000006		MOV	#600,6(R4)	;600 = "MOVE #200,BRG"
  6176	012426'	052714	000400			BIS	#MD.SMP,(R4)	;EXECUTE THE INSTRUCTION
  6177	012432'	005014				CLR	(R4)		;TURN OFF STEP AND ROM I
  6178	012434'	012714	001000			MOV	#MD.RMI,(R4)	;SET ROM I AGAIN
  6179	012440'	012764	061231	000006		MOV	#61231,6(R4)	;61231 = "MOVE BRG,MISC" (SETS BUS RQ)
  6180	012446'	052714	000400			BIS	#MD.SMP,(R4)	;EXECUTE
  6181	012452'	005014				CLR	(R4)		;TURN OFF ROM I
  6182	012454'	004537	010032'			JSR	R5,CHKINL	;CHECK FOR THE RESULTING INTERRUPT
  6183	012460'	177777				.WORD	177777		;
  6184	012462'	012714	040000			MOV	#MD.CLR,(R4)	;CLEAR INTERFACE
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 35-2
C11DMC.MAC    10-AUG-79 16:08			CHECK KMC/DMC HARDWARE

  6186					; IF WE HAVE A VALID COPY OF THE MICROCODE, WE CAN TEST
  6187					;  THE CRAM.  OTHERWISE BYPASS MOST OF THE TESTING.
  6188					;
  6189	012466'				20$:
  6190		   002				    .IF NE FTKMC
  6191	012466'	012701	000012			MOV	#12,R1		;CHECK ARBITRARY LOCATION IN CRAM
  6192	012472'	004737	013334'			JSR	PC,CKMDRD	;READ FROM IT
  6193	012476'	010046				MOV	R0,-(SP)	;SAVE DATA READ
  6194	012500'	005100				COM	R0		;INVERT IT
  6195	012502'	004737	013202'			JSR	PC,CKMDWR	;WRITE BACK INVERTED DATA
  6196	012506'	004737	013334'			JSR	PC,CKMDRD	;READ IT BACK OUT
  6197	012512'	020026				CMP	R0,(SP)+	;CHECK IT AGAINST WHAT WAS WRITTEN
  6198	012514'	001034				BNE	22$		;DATA DIFFERENT, CRAM IS READ/WRITE
  6199									;NOT WRITTEN, CRAM IS A CROM
  6200	012516'	023727	001156'	000744'		CMP	CKDNAM,#N.KMC11	;DID YOU EXPECT A KMC?
  6201	012524'	001026				BNE	21$		;NO, SKIP CRAM CHECK, NO MSG
  6202	012526'	013746	001152'			MOV	CHKFLG,-(SP)	;PREVENT ERROR FROM BEING SET
  6203	012532'					CK11SC	CKEDID,<DEV IS DMC>
  6204	012534'	041411	040522	020115		.ASCIZ	"	CRAM is not R/W, device is a DMC"
	012542'	071551	067040	072157
	012550'	051040	053457	020054
	012556'	062544	064566	062543
	012564'	064440	020163	020141
	012572'	046504	000103
  6205						.EVEN			;
  6206	012576'	012637	001152'			MOV	(SP)+,CHKFLG	;RESTORE PREVIOUS FLAG WORD
  6207	012602'	000137	013136'		21$:	JMP	CKMDXT		;SKIP CRAM CHECK
  6208									;
  6209	012606'	005100			22$:	COM	R0		;INVERT DATA BACK
  6210	012610'	004737	013202'			JSR	PC,CKMDWR	;REWRITE AGAIN
  6211	012614'	023727	001156'	000650'		CMP	CKDNAM,#N.DMC11	;WAS A DMC EXPECTED?
  6212	012622'	001027				BNE	23$		;NO, MUST HAVE BEEN A KMC CALL
  6213	012624'	013746	001152'			MOV	CHKFLG,-(SP)	;PREVENT ERROR FROM BEING SET
  6214	012630'					CK11SC	CKEDID,<dev is a KMC>
  6215	012632'	051011	053457	041440		.ASCIZ	"	R/W CRAM present, device is a KMC"
	012640'	040522	020115	071160
	012646'	071545	067145	026164
	012654'	062040	073145	061551
	012662'	020145	071551	060440
	012670'	045440	041515	   000
  6216		012676'				.EVEN			;
  6217	012676'	012637	001152'			MOV	(SP)+,CHKFLG	;RESTORE PREVIOUS FLAG WORD
  6218	012702'	   003			23$:	    .IF NE FTKMCL
  6219						TST	MDCODB+2	;IS MICROCODE IMAGE INVALID?
  6220						BNE	24$		;NOT OBVIOUSLY
  6221						JSR	PC,CKMDEX	;YES, BE SURE WE CAN CYCLE THE CRAM
  6222						JMP	CKMDXT		; BUT LEAVE ITS CONTENTS ALONE.
  6223					24$:
  6224		   002				    .ENDC ;NE FTKMCL
  6225	012702'	005001				CLR	R1		;START AT CRAM ADDRESS 0
  6226	012704'	005000			30$:	CLR	R0		;DATA IS ZERO
  6227	012706'	004737	013230'			JSR	PC,CKMDCK	;WRITE 0 AND CHECK IT
  6228	012712'	005201				INC	R1		;NEXT CRAM LOCATION
  6229	012714'	022701	002000			CMP	#2000,R1	;REACHED THE END OF THE CRAM?
  6230	012720'	001371				BNE	30$		;NO, DO THE REST.
  6231	012722'	004737	013152'			JSR	PC,CKMDEX	;COMPLEMENT THE CRAM TWICE
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 35-3
C11DMC.MAC    10-AUG-79 16:08			CHECK KMC/DMC HARDWARE

  6232	012726'	005001				CLR	R1		;START AT THE BEGINNING AGAIN
  6233	012730'	004737	013334'		36$:	JSR	PC,CKMDRD	;READ A WORD FROM THE CRAM
  6234	012734'	005700				TST	R0		;IS IT ZERO?
  6235	012736'	001417				BEQ	42$		;YES, THAT IS OK.
  6236	012740'					CKSERR	<#0>,R0,R1	;GOOD, BAD, CRAM ADDRESS
  6237	012750'					CK11SC	<CKEPC!CKEGB!CKEDID>,<CRAM CLEAR FAILED>,<CRAM CLEAR FAILED>
  6238	012752'	041440	040522	020115		.ASCIZ	/ CRAM clear failed /
	012760'	066143	060545	020162
	012766'	060546	066151	062145
	012774'	000040
  6239						.EVEN
  6240	012776'	005201			42$:	INC	R1		;NEXT CRAM ADDRESS
  6241	013000'	022701	002000			CMP	#2000,R1	;REACHED THE END OF THE CRAM?
  6242	013004'	001351				BNE	36$		;NO, DO THE REST
  6243					;
  6244					; NOW SET EACH CRAM LOCATION TO ITS OWN ADDRESS.  THIS CHECKS FOR
  6245					;  ADDRESSING FAILURES.
  6246					;
  6247	013006'	005001				CLR	R1		;START AT LOCATION ZERO
  6248	013010'	010100			50$:	MOV	R1,R0		;GET ADDRESS
  6249	013012'	006300				ASL	R0		; * 2 (WE ARE PUTTING THE 10-BIT
  6250	013014'	006300				ASL	R0		; * 4  CRAM ADDRESS IN THE MIDDLE
  6251	013016'	006300				ASL	R0		; * 8  OF THE 16-BIT WORD.)
  6252	013020'	004737	013230'			JSR	PC,CKMDCK	;WRITE ADDRESS INTO CRAM
  6253	013024'	005201				INC	R1		;NEXT CRAM ADDRESS
  6254	013026'	020127	002000			CMP	R1,#2000	;REACHED END OF CRAM YET?
  6255	013032'	103766				BLO	50$		;NO, GO DO THE REST.
  6256	013034'	004737	013152'			JSR	PC,CKMDEX	;COMPLEMENT THE CRAM TWICE
  6257	013040'	005001				CLR	R1		;START AT BEGINNING OF CRAM AGAIN
  6258	013042'	004737	013334'		55$:	JSR	PC,CKMDRD	;READ WORD FROM CRAM
  6259	013046'	010102				MOV	R1,R2		;GET CRAM ADDRESS
  6260	013050'	006302				ASL	R2		; * 2
  6261	013052'	006302				ASL	R2		; * 4
  6262	013054'	006302				ASL	R2		; * 8
  6263	013056'	020002				CMP	R0,R2		;IS THE CRAM OK?
  6264	013060'	001422				BEQ	60$		;YES
  6265	013062'					CKSERR	R2,R0,R1	;NO, STUFF GOOD, BAD, AND CRAM ADDRESS
  6266	013070'					CK11SC	<CKEPC!CKEGB!CKEDID>,<CRAM ERROR>,<CRAM ERROR>
  6267	013072'	041440	040522	020115		.ASCIZ	/ CRAM data = address error /
	013100'	060544	060564	036440
	013106'	060440	062144	062562
	013114'	071563	062440	071162
	013122'	071157	000040
  6268						.EVEN			;
  6269	013126'	005201			60$:	INC	R1		;NEXT CRAM ADDRESS
  6270	013130'	020127	002000			CMP	R1,#2000	;REACHED THE END OF THE CRAM?
  6271	013134'	103742				BLO	55$		;NO, GO DO THE REST
  6272					;
  6273					; NOW LOAD THE APPLICATION CODE INTO THE CRAM, IF REQUESTED.
  6274					;
  6275		   003				    .IF NE FTKMCL
  6276						CLR	R1		;START AT THE BEGINNING OF THE CRAM
  6277						MOV	#MDCODB,R2	;POINT TO APPLICATION CODE
  6278					70$:	MOV	(R2)+,R0	;GET WORD TO LOAD
  6279						JSR	PC,CKMDCK	;WRITE IT INTO THE CRAM
  6280						INC	R1		;POINT TO NEXT CRAM LOCATION
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 35-4
C11DMC.MAC    10-AUG-79 16:08			CHECK KMC/DMC HARDWARE

  6281						CMP	R2,#MDCODE	;REACHED END OF PROGRAM?
  6282						BNE	70$		;NO, LOAD THE REST
  6283						JSR	PC,CKMDEX	;COMPLEMENT THE CRAM TWICE
  6284						CLR	R1		;START AT BEGINNING OF CRAM AGAIN
  6285						MOV	#MDCODB,R2	;POINT TO APPLICATION CODE AGAIN
  6286					72$:	JSR	PC,CKMDRD	;READ A WORD FROM THE CRAM
  6287						MOV	(R2)+,R3	;GET WORD THAT SHOULD BE THERE
  6288						CMP	R3,R0		;IS IT RIGHT?
  6289						BEQ	78$		;YES
  6290						CKSERR	R3,R0,R1	;GOOD, BAD, CRAM ADDRESS
  6291						CK11SC	<CKEPC!CKEGB!CKEDID>,<CRAM LOAD ERROR>,<CRAM LOAD ERROR>
  6292						.ASCIZ	/ CRAM load error /
  6293						.EVEN			;
  6294					78$:	INC	R1		;NEXT CRAM ADDRESS
  6295						CMP	R2,#MDCODE	;REACHED END OF APPLICATION PROGRAM?
  6296						BLO	72$		;NO, DO THE REST
  6297		   002				    .ENDC ;NE FTKMCL
  6298		   001				    .ENDC ;NE FTKMC
  6299					;
  6300					; DMC (KMC) CHECK COMPLETED
  6301					;
  6302	013136'	012714	040000		CKMDXT:	MOV	#MD.CLR,(R4)	;BE SURE THE KMC11 IS CLEAR
  6303	013142'	012603				MOV	(SP)+,R3	;RESTORE R3
  6304	013144'	012604				MOV	(SP)+,R4	; AND R4
  6305	013146'	012605				MOV	(SP)+,R5	; AND R5
  6306	013150'	000207				RTS	PC		;RETURN.
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 35-5
C11DMC.MAC    10-AUG-79 16:08			CHECK KMC/DMC HARDWARE

  6308		   002				    .IF NE FTKMC	;THESE SUBROUTINES APPLY ONLY TO
  6309									;  WRITEABLE CONTROL STORES, I.E., KMC'S
  6310					;
  6311					; SUBROUTINE TO COMPLEMENT THE DATA IN THE KMC11'S CRAM.
  6312					;  ENTERING AT CKMDEX WILL CAUSE THE ROUTINE TO EXECUTE TWICE -
  6313					;  IF THE KMC11 IS WORKING PROPERLY THIS WILL LEAVE THE CRAM UNCHANGED.
  6314					;
  6315	013152'	004717			CKMDEX:	JSR	PC,(PC)		;CALL REST OF ROUTINE ONCE, RETURN
  6316									;  HERE AND FALL INTO IT FOR SECOND PASS
  6317	013154'	005001				CLR	R1		;START AT BEGINNING OF CRAM
  6318	013156'	004737	013334'		80$:	JSR	PC,CKMDRD	;READ WORD FROM CRAM
  6319	013162'	005100				COM	R0		;COMPLEMENT IT
  6320	013164'	004737	013230'			JSR	PC,CKMDCK	;WRITE IT BACK (AND CHECK IT)
  6321	013170'	005201				INC	R1		;NEXT CRAM LOCATION
  6322	013172'	020127	002000			CMP	R1,#2000	;REACHED END OF CRAM?
  6323	013176'	103767				BLO	80$		;NO, DO THE REST
  6324	013200'	000207				RTS	PC		;YES, ALL DONE
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 35-6
C11DMC.MAC    10-AUG-79 16:08			CHECK KMC/DMC HARDWARE

  6326					; SUBROUTINE TO WRITE A WORD INTO THE KMC11'S CRAM
  6327					;
  6328					; R0 = WORD TO WRITE
  6329					; R1 = CRAM ADDRESS
  6330					; R4 = POINTER TO KMC11 CSR
  6331					;
  6332	013202'	005014			CKMDWR:	CLR	(R4)		;CLEAR BSEL 1
  6333	013204'	010164	000004			MOV	R1,4(R4)	;SET ADDRESS INTO SEL 4
  6334	013210'	010064	000006			MOV	R0,6(R4)	;LOAD DATA INTO SEL 6
  6335	013214'	052714	002000			BIS	#MD.RMO,(R4)	;SET ROM O
  6336	013220'	052714	022000			BIS	#MD.RMO!MD.CWR,(R4) ;SET CRAM WRITE ALSO
  6337	013224'	005014				CLR	(R4)		;CLEAR ROM O AND CRAM WRITE
  6338	013226'	000207				RTS	PC		;RETURN
  6339					;
  6340					; SUBROUTINE TO WRITE AND VERIFY A WORD IN THE CRAM
  6341					;
  6342					; CALLED AS CKMDWR
  6343					;
  6344	013230'	010046			CKMDCK:	MOV	R0,-(SP)	;SAVE DATA TO BE WRITTEN
  6345	013232'	004737	013202'			JSR	PC,CKMDWR	;WRITE THE WORD
  6346	013236'	004737	013334'			JSR	PC,CKMDRD	;READ IT BACK
  6347	013242'	020016				CMP	R0,(SP)		;DATA SAME AS WRITTEN?
  6348	013244'	001431				BEQ	85$		;YES.
  6349	013246'	010246				MOV	R2,-(SP)	;NO, SAVE R2
  6350	013250'	016602	000002			MOV	2(SP),R2	;GET BAD DATA FROM CRAM
  6351	013254'					CKSERR	R2,R0,R1	;GOOD, BAD, CRAM ADDRESS
  6352	013262'					CK11SC	<CKEPC!CKEGB!CKEDID>,<CRAM DATA ERROR>,<CRAM DATA ERROR>
  6353	013264'	041440	040522	020115		.ASCIZ	/ CRAM data error in write check /
	013272'	060544	060564	062440
	013300'	071162	071157	064440
	013306'	020156	071167	072151
	013314'	020145	064143	061545
	013322'	020153	   000
  6354		013326'				.EVEN
  6355	013326'	012602				MOV	(SP)+,R2	;RESTORE R2
  6356	013330'	012600			85$:	MOV	(SP)+,R0	;RESTORE DATA
  6357	013332'	000207				RTS	PC		;RETURN
  6358					;
  6359					; SUBROUTINE TO READ A WORD FROM THE KMC11'S CRAM.
  6360					;
  6361					; R1 = ADDRESS
  6362					; R4 = POINTER TO KMC11 CSR
  6363					;
  6364					; ON RETURN:
  6365					;
  6366					;  R0 = DATA FROM CRAM
  6367					;
  6368	013334'	005014			CKMDRD:	CLR	(R4)		;CLEAR BSEL 1
  6369	013336'	010164	000004			MOV	R1,4(R4)	;SET ADDRESS INTO BSEL 4
  6370	013342'	052714	002000			BIS	#MD.RMO,(R4)	;SET ROM O
  6371	013346'	016400	000006			MOV	6(R4),R0	;FETCH DATA
  6372	013352'	005014				CLR	(R4)		;CLEAR ROM O
  6373	013354'	000207				RTS	PC		;RETURN
  6374		   001				    .ENDC ;NE FTKMC
  6375		   000				    .ENDC ;NE FTDMC
  6376					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 36
C11DMC.MAC    10-AUG-79 16:08			CHECK KMC/DMC HARDWARE

  6378
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 37
C11DMC.MAC    10-AUG-79 16:08			CHECK KMC/DMC HARDWARE

  6380
  6381					.SBTTL		CHECK LP11 HARDWARE
  6382					;
  6383					;CALL	MOV	#<VECTOR ADR>,R3
  6384					;	MOV	#<HDW ADR>,R4
  6385					;	MOV	#<HDW ADR>,R1
  6386					;	JSR	PC,XLE11
  6387					;
  6388						    .IIF NDF FTLE11,FTLE11=0
  6389		   001				    .IF NE FTLE11
  6390	013356'				XLE11:				;
  6391	013356'	032714	100000			BIT	#LE.ERR,(R4)	;SEE IF DEV READY
  6392	013362'	001406				BEQ	1$		;BRANCH IF RDY
  6393	013364'					CK11SC	<CKEDID!CKENCL>,< Not Rdy>
  6394	013366'	047040	072157	051040		.ASCIZ	\ Not Rdy\<377>
	013374'	074544	000377
  6395						.EVEN			;
  6396	013400'	004537	007574'		1$:	JSR	R5,CHKBIT	;CHECK HDW BITS
  6397	013404'	000100				.WORD	LE.INE
  6398	013406'					$CKINT	,R4,<LE.INE>,<LE.DNE>
  6399	013422'	000207				RTS	PC
  6400		   000				    .ENDC ;NE FTLE11
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 37-1
C11DMC.MAC    10-AUG-79 16:08			CHECK LP20 HARDWARE

  6402					.SBTTL		CHECK LP20 HARDWARE
  6403					;
  6404						    .IIF NDF FTLP20,FTLP20=0
  6405		   001				    .IF NE FTLP20
  6406	013424'				XLP11:				;
  6407	013424'	012737	000340	177776		MOV	#BR7,PS		;
  6408	013432'	012714	001400			MOV	#LP.RSE!LP.LOI,(R4) ;CLEAR CONTROLLER
  6409	013436'	062701	000012			ADD	#LPRAMD,R1	;POINT TO RAM DATA BUFFER
  6410	013442'	010102				MOV	R1,R2		;
  6411	013444'	005722				TST	(R2)+		;POINT TO CHAR BUFFER
  6412	013446'	105012				CLRB	(R2)		;SET RAM ADDRESS TO ZERO
  6413	013450'	005011			10$:	CLR	(R1)		;CLEAR RAM LOCATION
  6414	013452'	105212				INCB	(R2)		;UP RAM ADDRESS
  6415	013454'	001375				BNE	10$		;  UNTIL IT OVERFLOWS
  6416	013456'	010401				MOV	R4,R1		;RECOVER BASE CRS ADDRESS
  6417	013460'	005061	000004			CLR	LPBSAD(R1)	;SET UP HARMLESS TRANSFER
  6418	013464'	012761	177777	000006		MOV	#-1,LPBCTR(R1)	;
  6419	013472'	004537	007574'			JSR	R5,CHKBIT	;CHECK R/W ON CSRA
  6420	013476'	002176				.WORD	LP.DH!LP.IE!LP.XAD!LP.MDS!LP.PEN
  6421									;
  6422	013500'	005721				TST	(R1)+		;UP TO CSRB
  6423	013502'	004537	007574'			JSR	R5,CHKBIT	;
  6424	013506'	003400				.WORD	LP.TS2!LP.TS1!LP.TS0
  6425	013510'	012714	001400			MOV	#LP.RSE!LP.LOI,(R4) ;
  6426									;
  6427	013514'	005721				TST	(R1)+		;CHECK R/W ON BUS ADDRESS
  6428	013516'	004537	007574'			JSR	R5,CHKBIT	;
  6429	013522'	177777				.WORD	ALLBTS		;
  6430	013524'	012714	001400			MOV	#LP.RSE!LP.LOI,(R4) ;
  6431									;
  6432	013530'	012702	000003			MOV	#3,R2		;NEXT THREE REGISTERS ARE ALIKE
  6433	013534'	005721			20$:	TST	(R1)+		;BYTE COUNT, PAGE CONT, RAMDATA
  6434	013536'	004537	007574'			JSR	R5,CHKBIT	;
  6435	013542'	007777				.WORD	7777		;
  6436	013544'	012714	001400			MOV	#LP.RSE!LP.LOI,(R4) ;
  6437	013550'	077207				SOB	R2,20$		;
  6438									;
  6439	013552'	005721				TST	(R1)+		;CHECK R/W ON CHAR BUFFER
  6440	013554'	004537	007574'			JSR	R5,CHKBIT	;
  6441	013560'	177777				.WORD	ALLBTS		;
  6442	013562'	012714	001400			MOV	#LP.RSE!LP.LOI,(R4) ;
  6443									;
  6444	013566'	010401				MOV	R4,R1		;RECOVER BASE CSR ADDRESS
  6445	013570'	032711	004000			BIT	#LP.ONL,(R1)	;PRINTER AVAILABLE?
  6446	013574'	001012				BNE	30$		;YES
  6447	013576'					CK11SC	0,<NOT READY>
  6448	013600'	050114	030062	067040		.ASCIZ	"LP20 not ready"
	013606'	072157	071040	060545
	013614'	074544	   000
  6449		013620'				.EVEN			;
  6450	013620'	000207				RTS	PC		;
  6451									;
  6452	013622'	012761	177777	000006	30$:	MOV	#-1,LPBCTR(R1)	;SET CHAR COUNT
  6453	013630'	010161	000004			MOV	R1,LPBSAD(R1)	;SET ADDRESS TO SELF
  6454	013634'	062761	000014	000004		ADD	#LPCBUF,LPBSAD(R1) ;
  6455	013642'	012711	000061			MOV	#LP.B17!LP.B16!LP.GO,(R1) ;SET HIGH ADDRESS BITS AND START
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 37-2
C11DMC.MAC    10-AUG-79 16:08			CHECK LP20 HARDWARE

  6456	013646'					$CKINT	,R4,LP.IE,LP.IE	;
  6457	013662'	000207				RTS	PC		;
  6458		   000				    .ENDC ;NE FTLP20
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 37-3
C11DMC.MAC    10-AUG-79 16:08			CHECK MD11 HDW

  6460					.SBTTL		CHECK MD11 HDW
  6461					;
  6462					;CALL	MOV	#<VECTOR ADR>,R3
  6463					;	MOV	#<HDW ADR>,R4
  6464					;	MOV	#<HDW ADR>,R1
  6465					;	JSR	PC,XMD11
  6466						    .IIF NDF FTMD11,FTMD11=0
  6467		   001				    .IF NE FTMD11
  6468					XMD11:				;
  6469						RTS	PC
  6470		   000				    .ENDC ;NE FTMD11
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 37-4
C11DMC.MAC    10-AUG-79 16:08			DUMMY NULL DEVICE CHECKER

  6472					.SBTTL		DUMMY NULL DEVICE CHECKER
  6473					;
  6474					;
  6475					;
  6476	013664'	000207			XNL11:	RTS	PC	;DUMMY
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 37-5
C11DMC.MAC    10-AUG-79 16:08			CHECK PA611P HARDWARE

  6478					.SBTTL		CHECK PA611P HARDWARE
  6479					;
  6480					;CALL	MOV	#<VECTOR ADR>,R3
  6481					;	MOV	#<HDW ADR>,R4
  6482					;	MOV	#<HDW ADR>,R1
  6483					;	JSR	PC,XP611
  6484					;
  6485						    .IIF NDF FTP611,FTP611=0
  6486		   001				    .IF NE FTP611
  6487					XP611:				;
  6488						RTS	PC
  6489		   000				    .ENDC ;NE FTP611
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 37-6
C11DMC.MAC    10-AUG-79 16:08			CHECK PA611R HARDWARE

  6491					.SBTTL		CHECK PA611R HARDWARE
  6492					;
  6493					;CALL	MOV	#<VECTOR ADR>,R3
  6494					;	MOV	#<HDW ADR>,R4
  6495					;	MOV	#<HDW ADR>,R1
  6496					;	JSR	PC,XR611
  6497					;
  6498						    .IIF NDF FTR611,FTR611=0
  6499		   001				    .IF NE FTR611
  6500					XR611:				;
  6501						RTS	PC
  6502		   000				    .ENDC ;NE FTR611
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 37-7
C11DMC.MAC    10-AUG-79 16:08			CHECK PP11 HARDWARE

  6504					.SBTTL		CHECK PP11 HARDWARE
  6505					;
  6506					;CALL	MOV	#<VECTOR ADR>,R3
  6507					;	MOV	#<HDW ADR>,R4
  6508					;	MOV	#<HDW ADR>,R1
  6509					;	JSR	PC,XPP11
  6510					;
  6511						    .IIF NDF FTPP11,FTPP11=0
  6512		   001				    .IF NE FTPP11
  6513					XPP11:
  6514						JSR	R5,CHKBIT
  6515						PP.INE
  6516						$CKINT	,R4,<PP.INE>,<PP.RDY>
  6517						RTS	PC
  6518		   000				    .ENDC ;NE FTPP11
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 37-8
C11DMC.MAC    10-AUG-79 16:08			CHECK PR11 HARDWARE

  6520					.SBTTL		CHECK PR11 HARDWARE
  6521					;
  6522					;CALL	MOV	#<VECTOR ADR>,R3
  6523					;	MOV	#<HDW ADR>,R4
  6524					;	MOV	#<HDW ADR>,R1
  6525					;	JSR	PC,XPR11
  6526					;
  6527						    .IIF NDF FTPR11,FTPR11=0
  6528		   001				    .IF NE FTPR11
  6529					XPR11:					;
  6530						JSR	R5,CHKBIT		;CHECK HARDWARE BITS
  6531						PR.INE
  6532						CLR	R0			;FOR TIME OUT
  6533						BIS	#PR..RE!PR.INE,(R4)	;TELL READER TO DO SOMETHING
  6534										; TO FORCE ANY INTERRUPT COND
  6535					1$:	BIT	#PR.DNE!PR.ERR,(R4)	;SEE IF AN INT CONDITION IS THERE
  6536						BNE	2$			;IF NOT, THEN WAIT FOR ONE.
  6537						SOB	R0,1$			;TIME OUT TO CATCH NO RESPONSE
  6538						CK11SC	<CKEDID!CKEPC>,<Timed Out>,<NO RESPONSE>
  6539						.ASCIZ	\Timed Out\<377>
  6540						.EVEN
  6541						BIC	#PR.INE,(R4)		;DISABLE INT ENABLE
  6542						RTS	PC			;EXIT
  6543					2$:	JSR	R5,CHKINL		;FIND INT LEVEL
  6544						-1				;FOR TIME-OUT
  6545						BIC	#PR.INE,(R4)		;DISABLE INTS
  6546						RTS	PC
  6547		   000				    .ENDC ;NE FTPR11
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 37-9
C11DMC.MAC    10-AUG-79 16:08			CHECK RH11 HARDWARE

  6549					.SBTTL		CHECK RH11 HARDWARE
  6550					;
  6551					;CALL	MOV	#<VECTOR ADR>,R3
  6552					;	MOV	#<HDW ADR>,R4
  6553					;	MOV	#<HDW ADR>,R1
  6554					;	JSR	PC,XRH11
  6555					;
  6556						    .IIF NDF FTRH11,FTRH11=0
  6557		   001				    .IF NE FTRH11
  6558					XRH11:	BIS	#1,CHKRP+4+0	;GROSS KLUDGE TO PREVENT CHKDEV FROM
  6559						RTS	PC		; FINDING WHAT LOOKS LIKE AN RP.
  6560									; (THE DEVICE REGISTERS OVERLAP)
  6561		   000				    .ENDC ;NE FTRH11
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 37-10
C11DMC.MAC    10-AUG-79 16:08			CHECK TC11 HARDWARE

  6563					.SBTTL		CHECK TC11 HARDWARE
  6564					;
  6565					;CALL	MOV	#<VECTOR ADR>,R3
  6566					;	MOV	#<HDW ADR>,R4
  6567					;	MOV	#<HDW ADR>,R1
  6568					;	JSR	PC,XTC11
  6569					;
  6570						    .IIF NDF FTTC11,FTTC11=0
  6571		   001				    .IF NE FTTC11
  6572					XTC11:				;
  6573		   002				    .IF NDF,FT.D75
  6574						JSR	R5,CHKBIT	;TEST FOLLOWING BITS
  6575						TC.D17!TC.D16
  6576						TST	(R1)+		;ADVANCE TO COMMAND REGISTER
  6577						JSR	R5,CHKBIT		;TEST FOLLOWING BITS
  6578						TC..MM!TC..DI!TC.REV!TC.US7!TC.INE!TC.A17!TC.A16
  6579						TST	(R1)+		;ADVANCE TO WORD COUNT REG
  6580						JSR	R5,CHKBIT	;TEST FOLLOWING BITS
  6581						-1
  6582						TST	(R1)+		;ADVANCE TO BUS ADDR REG
  6583						JSR	R5,CHKBIT		;TEST THE FOLLOWING BITS
  6584						-1
  6585						TST	(R1)+		;ADVANCE TO DATA REGISTER
  6586						JSR	R5,CHKBIT	;CHECK FOLLOWING BITS
  6587						-1
  6588						MOV	R4,R1		;SET UP ADR FOR INT CHK
  6589						TST	(R1)+		;ADVANCE TO COMMAND REG
  6590						MOV	R1,R2		;SET UP FOR INT CHK
  6591						$CKINT	,,<TC.INE>,<TC.RDY>
  6592		   001				    .ENDC ;IF NDF FT.D75
  6593						RTS	PC
  6594		   000				    .ENDC ;NE FTTC11
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 37-11
C11DMC.MAC    10-AUG-79 16:08			CHECK TM11 HARDWARE

  6596					.SBTTL		CHECK TM11 HARDWARE
  6597					;
  6598					;CALL	MOV	#<VECTOR ADR>,R3
  6599					;	MOV	#<HDW ADR>,R4
  6600					;	MOV	#<HDW ADR>,R1
  6601					;	JSR	PC,XTM11
  6602					;
  6603						    .IIF NDF FTTM11,FTTM11=0
  6604		   001				    .IF NE FTTM11
  6605					XTM11:				;
  6606						RTS	PC
  6607		   000				    .ENDC ;NE FTTM11
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 37-12
C11DMC.MAC    10-AUG-79 16:08			NULL DIAGNOSTIC

  6609					.SBTTL		NULL DIAGNOSTIC
  6610					;
  6611					;
  6612					;
  6613	013666'				X.....:				;
  6614	013666'	004037	014000'			JSR	R0,CKTSTR	;
  6615	013672'	020073	067151	062564		.ASCIZ	"; integrity not tested"
	013700'	071147	072151	020171
	013706'	067556	020164	062564
	013714'	072163	062145	   000
  6616		013722'				.EVEN			;
  6617	013722'	012737	177776	001154'		MOV	#177776,CKDEVN	;SET COUNT TO PREVENT MORE TYPEOUTS
  6618	013730'	000207				RTS	PC		;
  6619					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 38
C11DMC.MAC    10-AUG-79 16:08			NULL DIAGNOSTIC

  6621
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 39
C11DMC.MAC    10-AUG-79 16:08			NULL DIAGNOSTIC

  6623
  6624					.SBTTL	TTY SUPPORT FOR TYPE OUTS
  6625					;
  6626	013732'	000000			CKTRPT:	.WORD	0		;REPORT DESTINATION DEVICE
  6627									; B15 - CTY
  6628									; B7 - REMOTE DEVICE
  6629					;
  6630					; TYPE THE MESSAGE STRING POINTED TO BY R0
  6631					;
  6632					; CALL	JSR	PC,CKTTXT	;R0 CONTAINS ADDR OF TXT
  6633					; ON EXIT R0 POINTS TO THE EVEN LOCATION FOLLOWING THE TEXT
  6634					;
  6635						    .ENABL LSB
  6636	013734'				CKTTXT:	SAVE	<R1>
  6637	013736'	112001			10$:	MOVB	(R0)+,R1	;GET THE NEXT CHARACTER
  6638	013740'	001403				BEQ	20$		;BRANCH IF END (NULL)
  6639	013742'	004737	014074'			JSR	PC,CKTCHR	;TYPE CHAR
  6640	013746'	000773				BR	10$		;GET NEXT CHAR
  6641									;
  6642	013750'	005200			20$:	INC	R0		;
  6643	013752'	042700	000001			BIC	#B0,R0		;POINT TO EVEN LOC
  6644	013756'				25$:	RESTORE	<R1>
  6645	013760'	000207				RTS	PC		;RETURN TO CALLER
  6646					;
  6647					; TYPE A CARRIAGE RETURN AND LINE FEED
  6648					;
  6649					; CALL	JSR	PC,CKCRLF
  6650					;
  6651	013762'	004037	014000'		CKCRLF:	JSR	R0,CKTSTR
  6652	013766'	005015	   000			.ASCIZ	<15><12>
  6653		013772'				.EVEN
  6654	013772'	000207				RTS	PC
  6655					;
  6656					; TYPE A STRING PRECEEDED BY A CR/LF
  6657					;
  6658					; CALL	JSR	R0,CKTCRL
  6659					;	.ASCIZ	\TEXT\
  6660					;	.EVEN
  6661					;
  6662	013774'	004737	013762'		CKTCRL:	JSR	PC,CKCRLF	;FIRST TYPE A CR/LF
  6663					;
  6664					; TYPE A MESSAGE ON THE CTY
  6665					; CALL	JSR	R0,CKTSTR	;CALL TYPE ROUTINE
  6666					;	.ASCIZ \TEXT\
  6667					;	.EVEN
  6668					;
  6669	014000'	004737	013734'		CKTSTR:	JSR	PC,CKTTXT	;GO TYPE STRING
  6670	014004'	000200				RTS	R0
  6671					;
  6672					;TYPE A BLANK AND THE OCTAL CONTENTS OF R0
  6673					;
  6674					;	SIMILIAR TO CKTOCT
  6675					;
  6676	014006'				CKTBOC:	SAVE	<R1>
  6677	014010'	012701	000040			MOV	#040,R1
  6678	014014'	004737	014074'			JSR	PC,CKTCHR
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 39-1
C11DMC.MAC    10-AUG-79 16:08		TTY SUPPORT FOR TYPE OUTS

  6679	014020'	000401				BR	30$
  6680					;
  6681					; TYPE THE OCTAL CONTENTS OF R0
  6682					;
  6683					; CALL	JSR	PC,CKTOCT	;WITH ARG IN R0
  6684					;
  6685	014022'				CKTOCT:	SAVE	<R1>
  6686	014024'				30$:	SAVE	<R0>
  6687	014026'	004737	014040'			JSR	PC,50$
  6688	014032'				40$:	RESTORE	<R0>
  6689	014034'					RESTORE	<R1>
  6690	014036'	000207				RTS	PC
  6691					;
  6692					;RECURSIVE BINARY TO ASCIC CONVERSION
  6693					;  PUSHES CURRENT VALUE IN R0 ONTO STACK, THEN DIVIDES BY 8 -
  6694					;    IF THE QUOTIENT IS NOT ZERO IT CALLS ITSELF, HENCE INTERLEAVING
  6695					;    INTERMEDIATE VALUES AND RETURN ADDRESSES - WHEN THE QUOTIENT
  6696					;    BECOMES ZERO, INTERMEDIATE VALUES ARE POPPED, AND THE LEAST
  6697					;    SIGNIFICANT VALUES ARE PRINTED IN TURN, WITH RETURN FALLING
  6698					;    BACK INTO THE PRINT ROUTINE - NOTICE THAT LEADING ZEROS ARE
  6699					;    AUTOMATICALLY SUPPRESSED, EXCEPT THE LONE ZERO OF A ZERO WORD
  6700					;
  6701	014040'				50$:	SAVE	<R0>		;STUFF CURRENT VALUE
  6702	014042'	006000				ROR	R0		;DIVIDE BY EIGHT
  6703	014044'	006000				ROR	R0		;
  6704	014046'	006000				ROR	R0		;
  6705	014050'	042700	160000			BIC	#160000,R0	;CLEAR SPURIOUS CARRIES IN
  6706	014054'	001402				BEQ	60$		;SKIP TO PRINT WHEN QUOTIENT ZERO
  6707	014056'	004737	014040'			JSR	PC,50$		;  ELSE CALL SELF
  6708	014062'				60$:	RESTORE	<R1>		;POP INTERMEDIATE VALUE
  6709	014064'	042701	177770			BIC	#^C7,R1		;SAVE LSD
  6710	014070'	052701	000060			BIS	#60,R1		;SET BITS FOR ASCII CHARACTER
  6711									;  AND DROP INTO CHARACTER PRINT
  6712					;
  6713					; TYPE THE SINGLE CHARACTER IN R1
  6714					;
  6715					; CALL	JSR	PC,CKTCHR	;WITH CHAR IN R1
  6716					;
  6717	014074'	120127	000040		CKTCHR:	CMPB	R1,#40		;DOES THIS NEED FILLER ?
  6718	014100'	103015				BHIS	80$		;
  6719	014102'	120127	000011			CMPB	R1,#11		;IS CHAR A TAB (11)
  6720	014106'	001005				BNE	70$		;BRANCH IF NOT A TAB
  6721	014110'	004037	014000'			JSR	R0,CKTSTR	;GIVE SPACES FOR IT
  6722	014114'	   040	   040	   040		.BYTE	40,40,40,0	;SUBSTITUTE SPACES FOR TAB
	014117'	   000
  6723	014120'	000207				RTS	PC		;
  6724									;
  6725	014122'	004737	014126'		70$:	JSR	PC,75$		;TYPE CHAR FIRST THEN PAD IT WITH 4 NULLS
  6726	014126'	004737	014134'		75$:	JSR	PC,80$		;
  6727	014132'	005001				CLR	R1		;
  6728	014134'	005737	013732'		80$:	TST	CKTRPT		;CTY OUTPUT REPORT DEVICE?
  6729	014140'	100005				BPL	83$		;NO
  6730	014142'	105737	177564		81$:	TSTB	CTOSTS		;YES, TEST FOR STILL BUSY
  6731	014146'	100375				BPL	81$		;
  6732	014150'	110137	177566			MOVB	R1,CTOCHR	;TYPE CHAR
  6733	014154'	105737	013732'		83$:	TSTB	CKTRPT		;REMOTE DEVICE RECEIVING REPORT?
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 39-2
C11DMC.MAC    10-AUG-79 16:08		TTY SUPPORT FOR TYPE OUTS

  6734	014160'	100002				BPL	86$		;NO
  6735	014162'	004737	014412'			JSR	PC,CKTREM	;YES, REPORT REMOTELY
  6736	014166'	000207			86$:	RTS	PC		;
  6737					;
  6738					; BINARY TO DECIMAL ASCII CONVERSION AND OUTPUT
  6739					;
  6740	014170'				CKTDEC:	SAVE	<R0,R1,R2>	;
  6741	014176'	012702	014264'			MOV	#125$,R2	;SET DIVISOR POINTER
  6742	014202'	005001			101$:	CLR	R1		;CLEAR QUOTIENT COUNTER
  6743	014204'	005742			103$:	TST	-(R2)		;BACK DOWN INTO ARRAY
  6744	014206'	001414				BEQ	111$		;DONE ALL BUT UNITS
  6745	014210'	005201			107$:	INC	R1		;UP QUOTIENT
  6746	014212'	161200				SUB	(R2),R0		;SUBTRACT CURRENT 10**N
  6747	014214'	002375				BGE	107$		;NOT NEGATIVE YET, LOOP AROUND
  6748	014216'	061200				ADD	(R2),R0		;WENT TOO FAR, GO BACK ONE
  6749	014220'	005301				DEC	R1		;COUNT BACK QUOTIENT
  6750	014222'	001770				BEQ	103$		;IF QUOTIENT IS ZERO, SUPPRESS IT
  6751	014224'	052701	000060			BIS	#'0,R1		;CONVERT QUOTIENT DIGIT TO ASCII
  6752	014230'	004737	014074'			JSR	PC,CKTCHR	;TYPE DIGIT
  6753	014234'	005712				TST	(R2)		;DONE TO LSD?
  6754	014236'	001361				BNE	101$		;NO
  6755	014240'				111$:	RESTORE	<R2,R1,R0>	;RESTORE AND RETURN
  6756	014246'	000207				RTS	PC		;
  6757	014250'	000000	000001	000012	124$:	.WORD	0,1.,10.,100.,1000.,10000. ;DECIMAL ORDERS OF MAGNITUDE
	014256'	000144	001750	023420
  6758	014264'				125$:				;125$ **ENDS** THE ARRAY
  6759					;
  6760					; GET A SINGLE CHAR FROM THE KEYBOARD
  6761					;	R1 WILL HAVE THE SEVEN BIT CHAR INPUT, OR
  6762					;	  WILL HAVE -1 IF THE ROUTINE HAD TO WAIT MORE
  6763					;	  THAN 30 SECONDS FOR A RESPONSE
  6764					;	IF THERE IS NO CTY, THE RETURNED CHAR WILL BE "N" (DEFAULT "NO")
  6765					; CALL	JSR	PC,CKGCHR
  6766					;
  6767	014264'	005737	013732'		CKGCHR:	TST	CKTRPT		;KB EXIST?
  6768	014270'	100030				BPL	96$		;NO, DON'T LOOK FOR A CHARACTER
  6769	014272'					SAVE	<R0,R2>		;YES, ENTER INPUT WAIT
  6770	014276'	012702	000764			MOV	#500.,R2	;SET TIMEOUT COUNTERS
  6771	014302'	005000				CLR	R0		;
  6772	014304'	012701	177777			MOV	#-1,R1		;ASSUME NO CHARACTER WILL BE RECEIVED
  6773	014310'	005737	177562			TST	CTICHR		;CLEAR BUFFER
  6774	014314'	077001			90$:	SOB	R0,90$		;THIS TAKES ABOUT 1/15 SECOND TO FALL THROUGH
  6775	014316'	005302				DEC	R2		;DO IT ENOUGH TIMES TO GET TO 30-60 SECONDS
  6776	014320'	001411				BEQ	95$		;NO INPUT WAS SEEN, RETURN WITH DEFAULT
  6777	014322'	105737	177560			TSTB	CTISTS		;LOOK FOR CHAR
  6778	014326'	100372				BPL	90$		;NOT THERE YET
  6779	014330'	113701	177562			MOVB	CTICHR,R1	;FINALLY GOT ONE, GRAB IT
  6780	014334'	042701	177600			BIC	#^C177,R1	;KEEP ONLY INTERESTING BITS
  6781	014340'	004737	014074'			JSR	PC,CKTCHR	;TYPE IT BACK TO HIM (ECHO)
  6782	014344'				95$:	RESTORE	<R2,R0>		;
  6783	014350'	000207				RTS	PC		;
  6784									;
  6785	014352'	012701	000116		96$:	MOV	#'N,R1		;NO CTY, RETURN "NO" FOR ANSWER
  6786	014356'	000207				RTS	PC		;
  6787					;
  6788					; GET A CHARACTER AND RETURN Z-BIT SET IF IT IS A "Y" (CASE INSENSITIVE) -
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 39-3
C11DMC.MAC    10-AUG-79 16:08		TTY SUPPORT FOR TYPE OUTS

  6789					;    RETURN WITH C-BIT SET IF NO CHARACTER WAS RECEIVED
  6790					;
  6791	014360'	004737	014264'		CKGYES:	JSR	PC,CKGCHR	;GET ANY CHARACTER
  6792	014364'	120127	000040			CMPB	R1,#40		;TEST FOR IGNORED OR UNPRINTABLE
  6793	014370'	002406				BLT	97$		;NO CHARACTER
  6794	014372'	052701	000040			BIS	#40,R1		;FORCE LOWER CASE FOR COMPARISON
  6795	014376'	120127	000171			CMPB	R1,#'Y!40	;IS IT A "Y"?
  6796	014402'	000241				CLC			;RETURN Z-BIT FOR CALLER TO BRANCH ON
  6797	014404'	000207				RTS	PC		;
  6798	014406'	000261			97$:	SEC			;NO REASONABLE CHARACTER TYPED
  6799	014410'	000207				RTS	PC		;
  6800						    .DSABL LSB
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 39-4
C11DMC.MAC    10-AUG-79 16:08		REMOTE OUTPUT HANDLER

  6802					.SBTTL	REMOTE OUTPUT HANDLER
  6803					;
  6804	014412'				CKTREM:				;
  6805						; THIS ROUTINE WILL TAKE THE OUTPUT DIRECTED
  6806						;   TO THE CTY AND SEND IT OVER A BUFFERED
  6807						;   LINK TO BE OUTPUT ON A REMOTE DEVICE
  6808						;
  6809						; IF THE TRANSFER IS BUFFERED, RECEIPT OF A -1 BYTE
  6810						;   SHOULD FORCE THE TRANSMISSION OF THE PARTIALLY FILLED
  6811						;   BUFFER TO ENSURE THE UP TO DATE REPORTING OF VITAL
  6812						;   MESSAGES (DEATH, DISEASE, FAMINE, ETC.)
  6813									;
  6814	014412'	010546				MOV	R5,-(SP)	;
  6815	014414'	105037	013732'			CLRB	CKTRPT	;PREVENT ERROR LOOP IN THIS ROUTINE
  6816	014420'	010046				MOV	R0,-(SP)	;
  6817	014422'	013700	014754'			MOV	CK.PTR,R0	;PICK UP BUFFER FILL POINTER
  6818	014426'	120127	177777			CMPB	R1,#-1		;IF CHARACTER IS -1,
  6819	014432'	001003				BNE	5$		;  (NOT)
  6820	014434'	004737	014536'			JSR	PC,CKBFSH	;WRITE OUT BUFFER
  6821	014440'	000426				BR	100$		;AND QUIT (DON'T STORE THE -1)
  6822	014442'	020127	000015		5$:	CMP	R1,#15		;IF CHARACTER IS <CR>,
  6823	014446'	001003				BNE	10$		;  (NOT)
  6824	014450'	005237	014752'			INC	CK.BFG		;SET FLAG
  6825	014454'	000412				BR	30$		;AND STORE IN BUFFER
  6826	014456'	020127	000012		10$:	CMP	R1,#12		;IF CHARACTER IS <LF>,
  6827	014462'	001005				BNE	20$		;  (NOT)
  6828	014464'	005737	014752'			TST	CK.BFG		;AND LAST CHAR WAS <CR>,
  6829	014470'	001402				BEQ	20$		;  (NOT)
  6830	014472'	004737	014536'			JSR	PC,CKBFSH	;WRITE OUT BUFFER
  6831
  6832	014476'	005037	014752'		20$:	CLR	CK.BFG		;CLEAR <CR> FLAG
  6833	014502'	110120			30$:	MOVB	R1,(R0)+	;STORE CHAR IN BUFFER
  6834	014504'	020027	014751'			CMP	R0,#CK.BFN	;IF AT END OF BUFFER,
  6835	014510'	001002				BNE	100$		;  (NOT)
  6836	014512'	004737	014536'			JSR	PC,CKBFSH	;WRITE OUT BUFFER
  6837	014516'	010037	014754'		100$:	MOV	R0,CK.PTR	;REFRESH BUFFER FILL POINTER
  6838	014522'	012600				MOV	(SP)+,R0	;
  6839	014524'	112737	177777	013732'		MOVB	#-1,CKTRPT	;RESET "REMOTE REPORTING" FLAG
  6840	014532'	012605				MOV	(SP)+,R5	;
  6841	014534'	000207				RTS	PC		;RETURN  TO CALLER
  6842
  6843
  6844					;  ROUTINE TO WRITE OUT A BUFFER
  6845					;
  6846	014536'	010146			CKBFSH:	MOV	R1,-(SP)	;
  6847	014540'	010246				MOV	R2,-(SP)	;
  6848	014542'	010637	001166'			MOV	SP,CK.OSP	;SAVE OUR STACK POINTER
  6849	014546'	013706	001164'			MOV	CK.CSP,SP	;PICK UP CALLER'S STACK
  6850	014552'	010002				MOV	R0,R2		;CALCULATE
  6851	014554'	162702	014631'			SUB	#CK.BUF,R2	;  BUFFER LENGTH
  6852	014560'	005202				INC	R2		;  PLUS ONE FOR OPCODE
  6853	014562'	012746	014630'			MOV	#CK.COD,-(SP)	;ADDRESS MESSAGE START
  6854	014566'	013701	001162'			MOV	CK.DMC,R1	;PICK UP DMC CSR ADDRESS
  6855	014572'	013700	001160'			MOV	CK.CAL,R0	;CALL THE
  6856	014576'	062700	000000G			ADD	#SNDDRV,R0	;  DMC SEND
  6857	014602'	162700	016032'			SUB	#BT3STR,R0	;  ROUTINE
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 39-5
C11DMC.MAC    10-AUG-79 16:08		REMOTE OUTPUT HANDLER

  6858	014606'	004710				JSR	PC,(R0)		;  IN LOADER
  6859	014610'	005726				TST	(SP)+		;GET RID OF BUFFER ADDRESS
  6860	014612'	013706	001166'			MOV	CK.OSP,SP	;RESTORE OUR STACK
  6861	014616'	012602				MOV	(SP)+,R2	;
  6862	014620'	012601				MOV	(SP)+,R1	;
  6863	014622'	012700	014631'			MOV	#CK.BUF,R0	;RESET FILL POINTER TO START OF BUFFER
  6864	014626'	000207				RTS	PC
  6865
  6866	014630'	   026			CK.COD:	.BYTE	22.		;MOP OP CODE
  6867	014631'	000120			CK.BUF:	.BLKB	80.		;BUFFER
  6868	014751'	   000			CK.BFN:	.BYTE	0		;  END OF BUFFER (1 BYTE SAFETY PAD)
  6869						.EVEN			;
  6870	014752'	000000			CK.BFG:	.WORD	0		;FLAG WORD
  6871	014754'	014631'			CK.PTR:	.WORD	CK.BUF		;BUFFER FILL POINTER
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 39-6
C11DMC.MAC    10-AUG-79 16:08		UNEXPECTED BUS TRAP HANDLER

  6873					.SBTTL	UNEXPECTED BUS TRAP HANDLER
  6874					;
  6875	014756'				CKBUST:	CK11SC	<CKEDID>,<Bus error trap>
  6876	014760'	072502	020163	071105		.ASCIZ	\Bus Error trap from\
	014766'	067562	020162	071164
	014774'	070141	063040	067562
	015002'	000155
  6877						.EVEN			;
  6878	015004'	011600				MOV	(SP),R0		;GET PC OF NEXT INST
  6879	015006'	162700	000002			SUB	#2,R0		;MAKE PC WITHIN BAD INST
  6880	015012'	004737	014006'			JSR	PC,CKTBOC	;PRINT THE PC WHERE WE WERE DONE IN
  6881					;;;;	JMP	?		;FATAL BUS ERROR
  6882	015016'	000000			20$:	HALT			;SOMEDAY WE MAY HAVE A REAL ABORT ROUTINE
  6883	015020'	000776				BR	20$		;  BUT FOR NOW, WE JUST HANG
  6884					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 40
C11DMC.MAC    10-AUG-79 16:08		UNEXPECTED BUS TRAP HANDLER

  6886
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 41
C11DMC.MAC    10-AUG-79 16:08		UNEXPECTED BUS TRAP HANDLER

  6888
  6889					.SBTTL	CK11SC/TRAP INSTRUCTION HANDLER
  6890					;
  6891					; TRAP INSTRUCTION HANDLER - WE GET HERE ON ERROR IN CHK11
  6892					;
  6893					;   AT HALT TIME R0 CONTAINS ADDRESS OF TRAP
  6894					;
  6895	015022'	010046			CHKERR:	MOV	R0,-(SP)	;SAVE A WORKING REGISTER
  6896	015024'	016646	000002			MOV	2(SP),-(SP)	;GET THE ADDRESS OF
  6897	015030'	162716	000002			SUB	#2,(SP)		; THE TRAP INSTRUCTION
  6898	015034'	013646				MOV	@(SP)+,-(SP)	;REPLACE THE ADDRESS WITH THE INSTR
  6899	015036'	032716	000010			BIT	#CKEDID,(SP)	;PRINT DEVICE ID+REG MSG?
  6900	015042'	001405				BEQ	11$		;NO
  6901	015044'	052737	000001	001152'		BIS	#CKFERR,CHKFLG	;YES, REMEMBER WE HAD AN ERROR
  6902	015052'	004737	007726'			JSR	PC,CKDIDT	;
  6903	015056'	032716	000002		11$:	BIT	#CKEPC,(SP)	;TYPE PC MESSAGE?
  6904	015062'	001421				BEQ	14$		;NO
  6905	015064'	004037	013774'			JSR	R0,CKTCRL	;YES
  6906	015070'	020011	071105	067562		.ASCIZ	\	 Error at PC\
	015076'	020162	072141	050040
	015104'	000103
  6907						.EVEN			;
  6908	015106'	052737	000001	001152'		BIS	#CKFERR,CHKFLG	;REMEMBER WE HAD AN ERROR
  6909	015114'	016600	000004			MOV	4(SP),R0	;GET ADDRESS
  6910	015120'	005740				TST	-(R0)		;  OF INSTRUCTION
  6911	015122'	004737	014006'			JSR	PC,CKTBOC	;PRINT SPACE AND ADDRESS
  6912	015126'	032716	000024		14$:	BIT	#CKEMSG!CKEMSE,(SP);ANY MSG TO DO?
  6913	015132'	001434				BEQ	36$		;NO
  6914									;
  6915	015134'	032716	000040			BIT	#CKENCL,(SP)	;YES, SUPPRESS CR/LF?
  6916	015140'	001002				BNE	20$		;YES
  6917	015142'	004737	013762'			JSR	PC,CKCRLF	;NO, DO CR/LF
  6918	015146'	032716	000110		20$:	BIT	#CKEDID!CKEGB,(SP);DETAIL FORMAT SPACES?
  6919	015152'	001404				BEQ	24$		;NO
  6920	015154'	004037	014000'			JSR	R0,CKTSTR	;YES
  6921	015160'	004411	   000			.ASCIZ	"		"
  6922		015164'				.EVEN			;
  6923	015164'	016600	000004		24$:	MOV	4(SP),R0	;GET MSG ADDRESS
  6924	015170'	032716	000020			BIT	#CKEMSE,(SP)	;INDIRECT?
  6925	015174'	001401				BEQ	29$		;NO, INLINE
  6926	015176'	011000				MOV	(R0),R0		;YES, GET ACTUAL ADDRESS
  6927	015200'	004737	013734'		29$:	JSR	PC,CKTTXT	;TYPE OUT MSG
  6928	015204'	062766	000002	000004		ADD	#2,4(SP)	;UPDATE RETURN ADDRESS
  6929	015212'	032716	000004			BIT	#CKEMSG,(SP)	;WAS MSG INLINE?
  6930	015216'	001402				BEQ	36$		;NO
  6931	015220'	010066	000004			MOV	R0,4(SP)	;YES, REPLACE RETURN ADDRESS
  6932	015224'	032716	000100		36$:	BIT	#CKEGB,(SP)	;SEE IF GOOD BAD PRINT OUT
  6933	015230'	001454				BEQ	40$		;BRANCH IF NOT THIS
  6934	015232'	004037	013774'			JSR	R0,CKTCRL	;
  6935	015236'	004411	062101	027562		.ASCIZ	\		Adr/Reg =\
	015244'	062522	020147	000075
  6936						.EVEN			;
  6937	015252'	016600	000010			MOV	10(SP),R0	;GET ADR OFF THE STACK
  6938	015256'	004737	014006'			JSR	PC,CKTBOC	;PRINT ADR
  6939	015262'	004037	014000'			JSR	R0,CKTSTR	;
  6940	015266'	020040	042107	036440		.ASCIZ	\  GD =\
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 41-1
C11DMC.MAC    10-AUG-79 16:08		CK11SC/TRAP INSTRUCTION HANDLER

	015274'	   000
  6941		015276'				.EVEN
  6942	015276'	016600	000014			MOV	14(SP),R0	;GET "GOOD"
  6943	015302'	004737	014006'			JSR	PC,CKTBOC	;PRINT IT
  6944	015306'	004037	014000'			JSR	R0,CKTSTR	;
  6945	015312'	020040	042102	036440		.ASCIZ	\  BD =\
	015320'	   000
  6946		015322'				.EVEN
  6947	015322'	016600	000012			MOV	12(SP),R0	;PRINT BAD STUFF
  6948	015326'	004737	014006'			JSR	PC,CKTBOC	;PRINT BAD
  6949	015332'	004037	014000'			JSR	R0,CKTSTR	;
  6950	015336'	020040	047530	020122		.ASCIZ	\  XOR =\
	015344'	000075
  6951						.EVEN
  6952	015346'	016646	000014			MOV	14(SP),-(SP)	;GET GOOD
  6953	015352'	074016				XOR	R0,(SP)		;LEAVE ONLY QUESTIONABLE BITS
  6954	015354'	012600				MOV	(SP)+,R0	;PRINT THEM
  6955	015356'	004737	014006'			JSR	PC,CKTBOC	;
  6956	015362'	032716	000001		40$:	BIT	#CKEFAT,(SP)	;FATAL ERROR?  HALT REQUIRED?
  6957	015366'	001426				BEQ	50$		;NO
  6958	015370'	052737	000001	001152'		BIS	#CKFERR,CHKFLG	;YES, NOTE THAT WE HAD AN ERROR
  6959	015376'	004037	013774'			JSR	R0,CKTCRL	;
  6960	015402'	004411	060506	060564		.ASCIZ	\		Fatal Error\<377>
	015410'	020154	071105	067562
	015416'	177562	   000
  6961		015422'				.EVEN
  6962	015422'	013700	015474'			MOV	CKSPCD,R0	;PUT STOPCODE IN R0, 0 IS NOT TO BE DISPLAYED
  6963	015426'	001401				BEQ	45$		;IF 0
  6964	015430'	000000				HALT			;STOP CODE IN R0, PRESS CONTINUE
  6965									; GIVES ADR WE CAME FROM
  6966	015432'	016600	000004		45$:	MOV	4(SP),R0	;ADDRESS OF RETURN FROM TRAP IN R0
  6967	015436'	000000				HALT			;FATAL ERROR - R0 CONTAINS ERROR ADDRESS
  6968	015440'	000137	001230'			JMP	CHK.11		;IF CONTINUE DO PROGRAM AGAIN.
  6969	015444'	032726	000100		50$:	BIT	#CKEGB,(SP)+	;WAS THERE A GD-BD PRINT? (POP SAVED INSTUCTION)
  6970	015450'	001002				BNE	55$		;YES, CLEAR STACK
  6971	015452'	012600				MOV	(SP)+,R0	;
  6972	015454'	000002				RTI			;  AND EXIT
  6973									;
  6974	015456'	012600			55$:	MOV	(SP)+,R0	;RESTORE WORKING REGISTER, CLEAN STACK
  6975	015460'	012666	000004			MOV	(SP)+,4(SP)	;PC
  6976	015464'	012666	000004			MOV	(SP)+,4(SP)	;PS
  6977	015470'	005726				TST	(SP)+		;CLEAN THE STACK
  6978	015472'	000002				RTI			;  THEN EXIT
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 41-2
C11DMC.MAC    10-AUG-79 16:08		CK11SC/TRAP INSTRUCTION HANDLER

  6980	015474'	000000			CKSPCD:	.WORD	0		;CONTAINS STOPCODE ON FATAL ERROR
  6981									;
  6982	015476'				CHKCHR:
  6983									;
  6984		000000			CKDA = .-CHKCHR			;DEVICE ADDRESS OFFSET
  6985	015476'	000001				.BLKW	1
  6986									;
  6987		000002			CKDV = .-CHKCHR			;DEVICE VECTOR OFFSET
  6988	015500'	000001				.BLKW	1
  6989									;
  6990		000004			CKPI = .-CHKCHR			;DEVICE PI LEVEL OFFSET
  6991	015502'	000001				.BLKW	1
  6992									;
  6993		000006			CKFLG = .-CHKCHR		;DEVICE FLAGS OFFSET
  6994									; B0-B5 = # OF DQ11 SPECIAL CHAR
  6995									; B15 = INTERRUPTED ON SYNC
  6996	015504'	000001				.BLKW	1
  6997									;
  6998		000010			CKSPC = .-CHKCHR		;SPECIAL CHAR OFFSET
  6999	015506'	000004				.BLKW	4		;SPECIAL CHARACTERS
  7000					;
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 41-3
C11DMC.MAC    10-AUG-79 16:08		CK11SC/TRAP INSTRUCTION HANDLER

  7002		000000					.REPT	0
  7003						CKVECT	CD,1,1			;CD20 VECTOR SETUP
  7004						CKVECT	CR,1,1			;CR11 VECTOR SETUP
  7005						CKVECT	DH,2,16.		;DH11 VECTOR SETUP
  7006						CKVECT	DJ,2,16.		;DJ11 VECTOR SETUP
  7007						CKVECT	DL.E,2,16.		;DL11 VECTOR SETUP
  7008						CKVECT	DM,1,16.		;DM11BB VECTOR SETUP
  7009						CKVECT	DMC,2,16.		;DMC11 VECTOR SETUP
  7010						CKVECT	DN,1,64.		;DN11 VECTOR SETUP
  7011						CKVECT	DP,2,32.		;DP11 VECTOR SETUP
  7012						CKVECT	DQ,2,16.		;DQ11 VECTOR SETUP
  7013						CKVECT	DS,4,16.		;DS11 VECTOR SETUP
  7014						CKVECT	DU,2,16.		;DU11 VECTOR SETUP
  7015						CKVECT	DUP,2,16.		;DUP11 VECTOR SETUP
  7016						CKVECT	DTE2,1,1		;DTE20 VECTOR SETUP
  7017						CKVECT	KMC,2,3			;KMC11 VECTOR SETUP
  7018						CKVECT	KW.P,1,1		;KW11-P VECTOR SETUP
  7019						CKVECT	LE,1,2			;LP11 VECTOR SETUP
  7020						CKVECT	LP,1,2			;LP20 VECTOR SETUP
  7021						CKVECT	PP,1,1			;PP11 VECTOR SETUP
  7022						CKVECT	PR,1,1			;PR11 VECTOR SETUP
  7023						CKVECT	P6,1,16.		;PA611P VECTOR SETUP
  7024						CKVECT	R6,1,16.		;PA611R VECTOR SETUP
  7025						CKVECT	TC,1,1			;TC11 VECTOR SETUP
  7026						CKVECT	TM,1,1			;TM11 VECTOR SETUP
  7027						CKVECT	RC,1,1			;RC11 VECTOR SETUP
  7028						CKVECT	RF,1,1			;RF11 VECTOR SETUP
  7029						CKVECT	RH,1,1			;RH11 (RJP04) VECTOR SETUP
  7030						CKVECT	RP,1,1			;RP11-C VECTOR SETUP
  7031						CKVECT	TA,1,1			;TA11 VECTOR SETUP
  7032						CKVECT	RK,1,1			;RK11 VECTOR SETUP
  7033						CKVECT	RX,1,1			;RX11 VECOR SETUP
  7034							.ENDR	;END OF SUPPRES VECTORS
  7035					;
  7036	015516'	062515	020155	071105	CKMG01:	.ASCIZ	\Mem Err\<377>
	015524'	177562	   000
  7037	015527'	   102	072151	062040	CKMG02:	.ASCIZ	\Bit did not clear\<377>
	015534'	062151	067040	072157
	015542'	061440	062554	071141
	015550'	000377
  7038	015552'	064502	020164	064544	CKMG03:	.ASCIZ	\Bit did not set\<377>
	015560'	020144	067556	020164
	015566'	062563	177564	   000
  7039	015573'	   111	072156	071145	CKMG04:	.ASCIZ	\Interrupt did not occur\<377>
	015600'	072562	072160	062040
	015606'	062151	067040	072157
	015614'	067440	061543	071165
	015622'	000377
  7040	015624'	067111	062564	071162	CKMG05:	.ASCIZ	\Interrupted to wrong vector\<377>
	015632'	070165	062564	020144
	015640'	067564	073440	067562
	015646'	063556	073040	061545
	015654'	067564	177562	   000
  7041	015661'	   156	072157	063040	CKMG06:	.ASCIZ	\not found\<377>
	015666'	072557	062156	000377
  7042	015674'	067151	062564	071162	CKMG07:	.ASCIZ	\interrupted when not enabled\<377>
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 41-4
C11DMC.MAC    10-AUG-79 16:08		CK11SC/TRAP INSTRUCTION HANDLER

	015702'	070165	062564	020144
	015710'	064167	067145	067040
	015716'	072157	062440	060556
	015724'	066142	062145	000377
  7043					;
  7044						.EVEN
  7045		001316'			CKBLK=CKINTS			;REMOVE THIS AREA AS A BUFFER FOR THE DH11 TEST
  7046					;
  7047	015732'	000040				.BLKW	40		;STACK FOR CHECK-11
  7048		016032'			CHKSTK	=.			;END OF STACK
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 41-5
C11DMC.MAC    10-AUG-79 16:08		MODULE END

  7050					.SBTTL MODULE END
  7051					.SBTTL PROGRAM END
  7052		016032'				CHKEND=	.	;COMPUTE AND PRINT PROGRAM SIZE
  7053					;
  7054					;	EEEEEEEEEEEEEE	NN          NN	DDDDDDDDDD	!!
  7055					;	EE		NNNN        NN	DD        DD	!!
  7056					;	EE		NN  NN      NN	DD          DD	!!
  7057					;	EE		NN  NN      NN	DD          DD	!!
  7058					;	EEEEEEEEEE	NN    NN    NN	DD          DD	!!
  7059					;	EE		NN    NN    NN	DD          DD	!!
  7060					;	EE		NN      NN  NN	DD          DD	!!
  7061					;	EE		NN        NNNN	DD        DD
  7062					;	EEEEEEEEEEEEEE	NN          NN	DDDDDDDDDD	!!
  7063					;
  7064					;
  7065					;**********************************************************************
  7066					;
  7067					; END OF CHK11 - THE ONLY ONCE ONLY SYSTEM DIAGNOSTIC YOU'LL EVER NEED
  7068					;
  7069					;**********************************************************************
  7070					;
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 41-6
C11DMC.MAC    10-AUG-79 16:08		PROGRAM END

  7072						.TITLE	TERBOT - TERTIARY NETWORK BOOTSTRAP
  7073					;
  7074					; MODULE DESCRIPTION:
  7075					;
  7076					;	TERTIARY BOOT PART II
  7077					;
  7078					;
  7079					;
  7080					; DISTRIBUTED SYSTEMS SOFTWARE ENGINEERING
  7081					;
  7082					; IDENT HISTORY:
  7083					;
  7084					; 1.00	10-FEB-78
  7085					;	VERSION 2.0 RELEASE
  7086					; 2.00	16-OCT-78
  7087					;	MODIFICATION FOR DN20/DN200 USE WITH CHECK11
  7088					;
  7089					  
  7090					;+
  7091					; **-BT3STR-START OF TERTIARY NETWORK LOADER
  7092					;
  7093					; INPUTS:
  7094					;
  7095					;	R1 = CSR ADDRESS OF LOAD DEVICE
  7096					;	SP = HIGHEST MEMORY ADDRESS OF THE MACHINE
  7097					;	ALL THE CODE BETWEEN 'BT3STR' AND 'BT3END' HAS BEEN RELOCATED
  7098					;	TO THE TOP OF MEMORY.
  7099					;	THE FOLLOWING DATA LOCATIONS HAVE BEEN INITIALIZED:
  7100					;		$DEVTP - ASCII NAME OF THE LOAD DEVICE
  7101					;		$UNIT  - UNIT NUMBER OF THE LOAD DEVICE
  7102					;		KT11   - FLAG TO INDICATE EXISTANCE OF MEMORY MANAGEMENT
  7103					;
  7104					;
  7105					;-
  7106					;
  7107						.DSABL	AMA
  7108	016032'	005000			BT3STR:	CLR	R0		;START WITH LOAD 0
  7109	016034'	004767	000000G		INIT:	JSR	PC,INIDRV	;INIT DEVICE
  7110	016040'	105767	000662			TSTB	KT11		;MEMORY MANAGEMENT ENABLED ?
  7111	016044'	001403				BEQ	10$		;IF EQ, NO - LEAVE HIGHEST LOAD ADDRESS ALONE
  7112	016046'	042766	160000	000002		BIC	#160000,2(SP)	;OTHERWISE REDUCE IT TO A VIRTUAL ADDRESS THROUGH APR0
  7113	016054'				10$:				;
  7114
  7115					;
  7116					;	SEND REQUEST OPERATING SYSTEM BOOT MESSAGE
  7117					;
  7118					;	MESSAGE SENT IS:
  7119					;	CODE 8-REQUEST PROGRAM
  7120					;	CODE(1),DEVTYPE(1),STADDR(1),PGMTYPE(1)
  7121					;
  7122	016054'	011605			SNDOS:	MOV	(SP),R5		;MESSAGE BUFFER ADDR
  7123	016056'	012702	000000G			MOV	#DEVTYP,R2	;  DEVICE
  7124	016062'	000302				SWAB	R2		;  TYPE AND
  7125	016064'	062702	000010			ADD	#8.,R2		;  CODE
  7126	016070'	010225				MOV	R2,(R5)+	;  INTO MESSAGE
  7127	016072'	012725	001001			MOV	#1001,(R5)+	;STATION ADDR + OPERATING SYSTEM REQUEST
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 41-7
C11DMC.MAC    10-AUG-79 16:08		PROGRAM END

  7128	016076'	012702	000004		SENDIT:	MOV	#4,R2		;MESSAGE LENGTH
  7129	016102'	004767	000000G		SNDIT:	JSR	PC,SNDDRV	;TO SEND DRIVER
  7130	016106'	001352				BNE	INIT		;START AGAIN
  7131					;
  7132					;	RECEIVE A MESSAGE FROM THE LINK
  7133					;
  7134					;
  7135	016110'	012702	000406			MOV	#BUFSIZ,R2	;SET BUFFER SIZE
  7136	016114'	004767	000000G			JSR	PC,RCVDRV	;TO RECEIVE DRIVER
  7137	016120'	001113				BNE	ERR		;ERROR ON RECEIVE
  7138	016122'	011603				MOV	(SP),R3		;BUFFER ADDR
  7139					;
  7140					;	PROGRAM LOAD WITH AND WITHOUT TRANSFER ADDR
  7141					;	R2-MESSAGE BYTE COUNT(WITHOUT CODE)
  7142					;	R3-MESSAGE ADDR(BYTE FOLLOWING CODE)
  7143					;	R4-CODE
  7144					;
  7145					;	MESSAGES RECEIVED ARE:
  7146					;	CODE 0-PGM LOAD WITH TRANSFER ADDR
  7147					;	CODE(1),LDNUM(1),LDADDR(4),IMAGE(N),XADDR(4)
  7148					;
  7149					;	CODE 2-PGM LOAD WITHOUT XFER ADDR
  7150					;	CODE(1),LDNUM(1),LDADDR(4),IMAGE(N)
  7151					;
  7152					;	CODE 20-PARAMETERS WITH TRANSFER ADDRESS
  7153					;	CODE(1),LDNUM(1),PARAMETERS,XADDR(4)
  7154					;	PARAMETERS:  ENTRY,ENDMARK
  7155					;	ENTRIES:
  7156					;	PARTYPE (1):B	PARAMETER TYPE #
  7157					;	PARLENGTH (1):B	# OF BYTES IN PARVALUE
  7158					;	PARVALUE (1):B	PARAMETER VALUE ACCORDING TO PARTYPE AND PARLENGTH
  7159					;	PARAMETER TYPE		LENGTH		VALUE
  7160					;		1		1 TO 6		ASCII NODE NAME
  7161					;		2		  2		BINARY NODE NO.
  7162					;		3		1 TO 6		ASCII HOST NODE NAME
  7163					;	ENDMARK (1):B  = 0
  7164					;
  7165					;
  7166					;	MESSAGE RETURNED IS:
  7167					;	CODE 10-REQUEST PROGRAM LOAD
  7168					;	CODE(1),LDNUM(1),ERROR(1)
  7169					;
  7170					;
  7171	016124'	112304			PGMLD0:	MOVB	(R3)+,R4	;SAVE CODE
  7172	016126'	005302				DEC	R2		;SUBTRACT CODE LENGTH
  7173	016130'	120427	000002			CMPB	R4,#2		;IS IT LOAD WITH XFER ADDR
  7174	016134'	001407				BEQ	PGMLD2		;YES
  7175	016136'	120427	000024			CMPB	R4,#20.		;IS IT A PARAMETERS MESSAGE
  7176	016142'	001402				BEQ	5$		;IF EQ, YES
  7177	016144'	105704				TSTB	R4		;IS IT LOAD WITHOUT XFER ADDR
  7178	016146'	001342				BNE	SNDOS		;NO
  7179	016150'	162702	000004		5$:	SUB	#4.,R2		;SUBTRACT XFER ADDR LENGTH
  7180	016154'	105713			PGMLD2:	TSTB	(R3)		;IS IT LOAD 0
  7181	016156'	001402				BEQ	10$		;YES, RESET LOAD NUMBER
  7182	016160'	121300				CMPB	(R3),R0		;DOES IT MATCH REQUESTED LOAD
  7183	016162'	001072				BNE	ERR		;NO, ASK AGAIN
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 41-8
C11DMC.MAC    10-AUG-79 16:08		PROGRAM END

  7184	016164'	112300			10$:	MOVB	(R3)+,R0	;SET LOAD NUMBER
  7185	016166'	105200				INCB	R0		;SET TO NEXT REQUESTED
  7186	016170'	005302				DEC	R2		;DECREMENT REMAINING COUNT
  7187					;	BLE	NODAT		;IF LE, NO DATA IN THIS LOAD
  7188					;
  7189					;
  7190					; GET LOAD ADDRESS
  7191					;
  7192	016172'	120427	000024			CMPB	R4,#20.		;IS THIS A PARAMETERS MESSAGE ?
  7193	016176'	001467				BEQ	PARM		;IF EQ, YES - EXTRACT PARAMETERS
  7194	016200'	012305				MOV	(R3)+,R5	;LOAD ADDR
  7195	016202'	105767	000520			TSTB	KT11		;MEMORY MANAGEMENT ENABLED ?
  7196	016206'	001414				BEQ	20$		;IF EQ, NO - SKIP EXTENDED MEMORY COMPUTATION
  7197	016210'	010546				MOV	R5,-(SP)	;USE THE HIGH BYTE OF R5 AS THE LOW ORDER
  7198	016212'	000316				SWAB	(SP)		;    BYTE OF THE REAL MEMORY ADDRESS
  7199	016214'	111366	000001			MOVB	(R3),1(SP)	;THE NEXT BYTE IN THE MESSAGE IS THE HIGH ORDER ADDRESS
  7200	016220'	042716	000007			BIC	#7,(SP)		;POSITION FOR MULTIPLES OF 1K WORDS
  7201	016224'	006316				ASL	(SP)		;...
  7202	016226'	006316				ASL	(SP)		;...
  7203	016230'	012637	172340			MOV	(SP)+,@#KISAR0	;SET UP THE MAPPING REGISTER
  7204	016234'	042705	174000			BIC	#^C<3777>,R5	;BUILD A VIRTUAL ADDRESS USING APR0
  7205	016240'	005723			20$:	TST	(R3)+		;SKIP OVER HIGH ORDER WORD OF LOAD ADDRESS
  7206	016242'	162702	000004			SUB	#4.,R2		;SUBTRACT LOAD ADDR LENGTH
  7207	016246'	003415				BLE	NODAT		;IF LE, NO DATA
  7208
  7209					;
  7210					; MOVE THE DATA BUT DON'T OVERWRITE THE LOADER
  7211					;
  7212	016250'	105767	000452		30$:	TSTB	KT11		;MEMORY MANAGEMENT ENBALED ?
  7213	016254'	001404				BEQ	40$		;IF EQ, NO - SKIP EXTENDED ADDRESS CHECK
  7214	016256'	023737	172340	172354		CMP	@#KISAR0,@#KISAR6 ;IS THE BLOCK RELOCATION BIAS POINTING BEYOND THE LOAD
  7215	016264'	001002				BNE	50$		;IF NE, IT MIGHT BE - DONT NEED VIRTUAL ADDRESS CHECK
  7216	016266'	020566	000002		40$:	CMP	R5,2(SP)	;IS THE VIRTUAL ADDRESS TOO LARGE ?
  7217	016272'	103020			50$:	BHIS	LDERR		;IF HIS, YES - LOAD ERROR
  7218	016274'	112325				MOVB	(R3)+,(R5)+	;MOVE BYTE TO REQUESTED LOCATION
  7219	016276'	005302				DEC	R2		;DECREMENT COUNT
  7220	016300'	003363				BGT	30$		;MORE TO MOVE
  7221
  7222					;
  7223					; CHECK FOR TRANSFER ADDRESS
  7224					;
  7225	016302'	105704			NODAT:	TSTB	R4		;IS IT LOAD WITH XFER ADDR
  7226	016304'	001507				BEQ	XFER		;IF EQ, YES - TRANSFER TO PROGRAM
  7227
  7228					;
  7229					; REQUEST NEXT BLOCK
  7230					;
  7231	016306'	005003			ACKLD:	CLR	R3		;CLEAR ERROR BYTE
  7232	016310'	011605			SNDER:	MOV	(SP),R5		;BUFFER ADDR
  7233	016312'	112725	000012			MOVB	#10.,(R5)+	;REQUEST PGM LOAD CODE
  7234	016316'	110025				MOVB	R0,(R5)+	;REQUESTED LOAD NUMBER
  7235	016320'	012702	000003			MOV	#3,R2		;SET FOR ACK CNT
  7236	016324'	010325				MOV	R3,(R5)+	;SET ERROR STATUS
  7237	016326'	001665				BEQ	SNDIT
  7238	016330'	005202				INC	R2		;ONE MORE IF ERROR
  7239	016332'	000663				BR	SNDIT
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 41-9
C11DMC.MAC    10-AUG-79 16:08		PROGRAM END

  7240
  7241					;
  7242					; LOADER OVERWRITE ERROR
  7243					;
  7244	016334'	012703	000000		LDERR:	MOV	#0,R3		;SET ERROR CODE
  7245	016340'	000763				BR	SNDER		;
  7246
  7247					;
  7248					; TRANSFER ADDRESS ERROR
  7249					;
  7250	016342'	012703	000002		XFERR:	MOV	#2,R3		;SET ERROR CODE
  7251	016346'	000760				BR	SNDER		;
  7252
  7253					;
  7254					;	ERROR ON RECEIVE
  7255					;	SEND EITHER REQUEST PROGRAM OR LOAD
  7256					;
  7257	016350'	105700			ERR:	TSTB	R0		;HAVE WE STARTED XFER YET
  7258	016352'	001640				BEQ	SNDOS		;NOT YET,REQUEST PROGRAM
  7259	016354'	000754				BR	ACKLD		;ALREADY STARTED, REQUEST LOAD
  7260
  7261					;
  7262					; PARAMETERS MESSAGE WITH TRANSFER ADDRESS
  7263					;
  7264	016356'	010304			PARM:	MOV	R3,R4		;SAVE PARAMETER ADDRESS
  7265	016360'	060203				ADD	R2,R3		;SKIP OVER ALL PARAMETERS
  7266	016362'	062766	000506	000002		ADD	#BUFSIZ+64.,2(SP);LAST 32. WORDS		GP013078
  7267	016370'	062766	000000G	000002		ADD	#TOP32,2(SP)	;32 WORD BLOCK AT END
  7268	016376'	162766	016032'	000002		SUB	#BT3STR,2(SP)	;HAD BEEN SAVED
  7269	016404'	022727	000000G	000014		CMP	#DEVTYP,#12.	;USING DMC?			GP020678
  7270	016412'	001003				BNE	9$		;NO				GP020678
  7271	016414'	062766	000200	000002		ADD	#128.,2(SP)	;YES, ADJUST ADDRESS MORE	GP020678
  7272	016422'	016602	000002		9$:	MOV	2(SP),R2	;				GP013078
  7273	016426'	105767	000274			TSTB	KT11		;MEMORY MANAGEMENT		GP021278
  7274	016432'	001403				BEQ	12$		;NO				GP021278
  7275	016434'	013737	172354	172340		MOV	@#KISAR6,@#KISAR0;				GP021278
  7276	016442'	005022			12$:	CLR	(R2)+		;CLEAR BINARY AREA
  7277	016444'	012705	000014			MOV	#12.,R5		;PAD OUT REST
  7278	016450'	112722	000040		10$:	MOVB	#40,(R2)+	;WITH SPACES
  7279	016454'	005305				DEC	R5
  7280	016456'	001374				BNE	10$
  7281	016460'	016602	000002		11$:	MOV	2(SP),R2	;GET BACK ADDRESS		GP013078
  7282	016464'	105714				TSTB	(R4)		;CHK FOR END			GP013078
  7283	016466'	001416				BEQ	XFER		;IF 0, NO MORE DATA		GP013078
  7284	016470'	122714	000002			CMPB	#2,(R4)		;BINARY? (TYPE=2)		GP012578
  7285	016474'	001405				BEQ	15$		;NO				GP012578
  7286	016476'	005722				TST	(R2)+		;BEYOND BINARY AREA		GP012578
  7287	016500'	105314				DECB	(R4)		;CHK IF HOST NAME (TYPE=3)	GP013178
  7288	016502'	001402				BEQ	15$		;IF EQ, NODE NAME		GP013178
  7289	016504'	062702	000006			ADD	#6,R2		;GET TO PROPER AREA
  7290	016510'	105724			15$:	TSTB	(R4)+		;GET COUNT
  7291	016512'	112405				MOVB	(R4)+,R5
  7292	016514'	112422			20$:	MOVB	(R4)+,(R2)+	;MOVE NAME OR NUMBER
  7293	016516'	005305				DEC	R5
  7294	016520'	001375				BNE	20$
  7295	016522'	000756				BR	11$		;CHK FOR MORE			GP013078
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 41-10
C11DMC.MAC    10-AUG-79 16:08		PROGRAM END

  7296
  7297					;
  7298					;	IF FINAL LOAD THEN TRANSFER
  7299					;
  7300	016524'	016602	000002		XFER:	MOV	2(SP),R2	;GET BACK ADDRESS               ;**NEW**
  7301	016530'	005722				TST	(R2)+		;TO NAME AREA                   ;**NEW**
  7302	016532'	121227	000040			CMPB	(R2),#40	;VALID NAME?                    ;**NEW**
  7303	016536'	001001				BNE	5$		;YES                            ;**NEW**
  7304	016540'	005012				CLR	(R2)		;NO, NULL IT                    ;**NEW**
  7305	016542'	062702	000006		5$:	ADD	#6,R2		;NEXT NAME AREA                 ;**NEW**
  7306	016546'	121227	000040			CMPB	(R2),#40	;SAME TEST                      ;**NEW**
  7307	016552'	001001				BNE	10$                                             ;**NEW**
  7308	016554'	005012				CLR 	(R2)                                            ;**NEW**
  7309	016556'	112346			10$:	MOVB	(R3)+,-(SP)	;LOW BYTE TO STACK
  7310	016560'	112366	000001			MOVB	(R3)+,1(SP)	;HIGH BYTE
  7311	016564'	012603				MOV	(SP)+,R3	;GET THE TRANSFER ADDRESS
  7312	016566'	105767	000134			TSTB	KT11		;IS THERE MEMORY MANAGEMENT?
  7313	016572'	001416				BEQ	70$		;IF EQ NO
  7314	016574'	005037	172340			CLR	@#KISAR0	;SET APR TO LOW 4K
  7315	016600'	020327	140000			CMP	R3,#140000	;IS THE ADDRESS WITHIN BOUNDS?
  7316	016604'	103413				BLO	80$		;IF LO YES
  7317	016606'	013737	172354	172344		MOV	@#KISAR6,@#KISAR2 ;NEED TO "RELOCATE" THIS CODE
  7318	016614'	042707	100000			BIC	#100000,PC	;USE APR2 INSTEAD OF APR6
  7319	016620'	012737	001400	172354		MOV	#1400,@#KISAR6	;SET TO PROPER 4K BOUNDARY
  7320	016626'	000402				BR	80$		;CLEAN UP AND XFER
  7321					;
  7322	016630'	020306			70$:	CMP	R3,SP		;TRANSFER WITHIN BOOT3?
  7323	016632'	103243				BHIS	XFERR		;IF HIS, YES - SEND ERROR
  7324
  7325					;
  7326					; ACKNOWLEDGE THE LAST BLOCK TO FINISH THE LOAD
  7327					;
  7328	016634'	011605			80$:	MOV	(SP),R5		;GET BUFFER ADDRESS
  7329	016636'	112725	000012			MOVB	#10.,(R5)+	;REQUEST PROGRAM LOAD
  7330	016642'	110025				MOVB	R0,(R5)+	;REQUESTED LOAD NUMBER
  7331	016644'	005025				CLR	(R5)+		;NO ERROR
  7332	016646'	010300				MOV	R3,R0		;SAVE TRANSFER ADDRESS
  7333	016650'	012702	000002			MOV	#2,R2		;SET LENGTH
  7334	016654'	004767	000000G			JSR	PC,SNDDRV	;SEND THE LAST ACK
  7335	016660'	012702	000012			MOV	#10.,R2		;KILL ENOUGH TIME FOR THE LAST ACK TO GO
  7336	016664'	010005				MOV	R0,R5		;RESTORE TRANSFER ADDRESS
  7337	016666'	005300			1$:	DEC	R0		;DECREMENT INNER LOOP
  7338	016670'	001376				BNE	1$		;KEEP GOING TILL ZERO
  7339	016672'	005302				DEC	R2		;DECREMENT OUTER LOOP
  7340	016674'	001374				BNE	1$		;ONCE MORE
  7341	016676'	005003			25$:	CLR	R3
  7342	016700'	156703	000020			BISB	$UNIT,R3	;SET LOAD UNIT NO.
  7343	016704'	016704	000012			MOV	$DEVTP,R4	;AND DEVICE TYPE
  7344	016710'	012701	177777			MOV	#-1,R1		;TO INDICATE DOWN LINE LOAD
  7345	016714'	012702	177777			MOV	#-1,R2		;SAME
  7346	016720'	010507				MOV	R5,PC		;DO THE TRANSFER
  7347
  7348					;
  7349					; LOCAL DATA (RELOCATED WITH THE LOADER)
  7350					;
  7351	016722'	000001			$DEVTP::.BLKW	1		;ASCII NAME OF DEVICE TYPE USED DOWN-LINE
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 41-11
C11DMC.MAC    10-AUG-79 16:08		PROGRAM END

  7352	016724'	000001			$UNIT::	.BLKB	1		;PHYSICAL DEVICE NO. OF LOAD UNIT
  7353		016726'				.EVEN
  7354	016726'	   000			KT11:	.BYTE	0		;KT-11 FLAG
  7355	016727'	   000				.BYTE	0		;RESERVED
  7356		016730'			BT3END	=.			;END OF TERTIARY LOADER
  7357		000000'				.END	START
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 42
C11DMC.MAC    10-AUG-79 16:08		CROSS REFERENCE TABLE -- USER SYMBOLS

ACKLD   016306R       	 7231#	 7259
ALLBTS= 177777        	  775#	 3811	 5202	 5205	 6160	 6163	 6166	 6429	 6441
BPARER= 000020        	 1391#
BPTLVL= 000007        	  811#
BPTVEC= 000014        	  811#
BR0   = 000000        	  779#
BR1   = 000040        	  780#
BR2   = 000100        	  781#
BR3   = 000140        	  782#
BR4   = 000200        	  783#
BR5   = 000240        	  784#
BR6   = 000300        	  785#	 4991
BR7   = 000340        	  786#	 3720	 3747	 3755	 4511	 4829	 4899	 5001	 5045	 5054	 5093	 5162	 6173
			 6407
BSEL0 = 000000        	 1091#
BSEL1 = 000001        	 1094#
BSEL2 = 000002        	 1091#
BSEL3 = 000003        	 1094#
BSEL4 = 000004        	 1091#
BSEL5 = 000005        	 1094#
BSEL6 = 000006        	 1091#
BSEL7 = 000007        	 1094#
BSFACT= 000100        	 1641#	 4095	 4110	 4111	 4208	 4323
BT3END= 016730R       	 7356#
BT3STR  016032R       	 3257	 3269	 6857	 7108#	 7268
BUFSIZ= 000406        	 3107#	 3264	 7135	 7266
BUSA16= 040000        	 1359#
BUSA17= 100000        	 1358#
B.DM11= 170500        	 1061#
B0    = 000001        	  758#	  775	  908	  968	  970	 1000	 1014	 1032	 1043	 1053	 1070	 1077#	 1111
			 1127	 1144	 1153	 1173	 1192	 1397	 1400	 1817	 1844	 1902	 1934	 3376	 3691
			 4582	 4641	 6643
B1    = 000002        	  759#	  907	  969	  970	  999	 1015	 1032	 1053	 1070	 1077#	 1110	 1126	 1143
			 1154	 1193	 1395	 1843	 1865	 1867	 1869	 1871	 1901	 1927	 1929	 1931	 1933
			 3377	 4585	 4648
B10   = 002000        	  768#	  902	  939	  989	 1021	 1063	 1112	 1136	 1164	 1183	 1315	 1385	 1834
			 1856	 1857	 1858	 1859	 1892	 1913	 1918	 1919	 1920	 1921
B11   = 004000        	  769#	  901	  940	  988	 1022	 1062	 1112	 1121	 1135	 1165	 1184	 1315	 1383
			 1814	 1833	 1851	 1891	 1912
B12   = 010000        	  770#	  900	  941	  959	  987	 1023	 1033	 1103	 1120	 1134	 1166	 1185	 1201
			 1382	 1832	 1850	 1890	 1911
B13   = 020000        	  771#	  899	  942	  955	  958	  986	 1024	 1034	 1133	 1186	 1280	 1369	 1381
			 1831	 1849	 1889	 1908	 1910
B14   = 040000        	  772#	  898	  943	  954	  957	  963	  985	 1025	 1035	 1102	 1132	 1279	 1359
			 1380	 1830	 1888	 1909	 1910
B15   = 100000        	  773#	  775	  897	  944	  956	  962	  984	 1026	 1036	 1101	 1131	 1168	 1188
			 1278	 1358	 1368	 1379	 1673	 1804	 1813	 1829	 1848	 1887	 1906	 3692
B2    = 000004        	  760#	  929	  966	  998	 1016	 1032	 1044	 1053	 1070	 1077#	 1109	 1125	 1155
			 1175	 1194	 1394	 1842	 1866	 1867	 1870	 1871	 1900	 1928	 1929	 1932	 1933
			 3378
B3    = 000010        	  761#	  997	 1017	 1032	 1053	 1070	 1077#	 1108	 1124	 1142	 1156	 1176	 1195
			 1392	 1841	 1868	 1869	 1870	 1871	 1899	 1930	 1931	 1932	 1933	 3379
B4    = 000020        	  762#	  965	  996	 1032	 1053	 1069	 1077#	 1107	 1141	 1157	 1177	 1196	 1391
			 1840	 1863	 1898	 1925	 3380
B5    = 000040        	  763#	  964	  994	 1018	 1032	 1053	 1068	 1077#	 1106	 1140	 1158	 1178	 1197
			 1219	 1390	 1839	 1862	 1897	 1924	 3382	 4588	 4651
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 42-1
C11DMC.MAC    10-AUG-79 16:08		CROSS REFERENCE TABLE -- USER SYMBOLS

B6    = 000100        	  764#	  906	  921	  928	  935	  993	 1019	 1032	 1045	 1053	 1067	 1077#	 1105
			 1123	 1139	 1159	 1179	 1198	 1377	 1389	 1661	 1662	 1675	 1806	 1816	 1838
			 1861	 1896	 1923	 3383
B7    = 000200        	  765#	  905	  936	  992	 1020	 1032	 1046	 1053	 1066	 1077#	 1104	 1122	 1138
			 1160	 1180	 1199	 1388	 1663	 1674	 1805	 1815	 1837	 1860	 1895	 1922
B8    = 000400        	  766#	  904	  937	  991	 1065	 1112	 1162	 1181	 1285	 1387	 1836	 1853	 1855
			 1857	 1859	 1894	 1913	 1915	 1917	 1919	 1921
B9    = 001000        	  767#	  903	  938	  990	 1064	 1112	 1137	 1163	 1182	 1386	 1835	 1854	 1855
			 1858	 1859	 1893	 1913	 1916	 1917	 1920	 1921
CDBA  = 000004        	  854#	 5191	 5193*	 5194	 5196*	 5253	 5255*	 5256	 5258*
CDCC  = 000002        	  851#
CDDB  = 000006        	  856#	  873
CDHRSZ= 000010        	  887#
CDST  = 000000        	  827#
CDST2 = 000006        	  873#	 5189
CD.B16= 000020        	  829#	  831
CD.B17= 000040        	  829#	  831
CD.CER= 100000        	  858#
CD.COL= 000120        	  852#
CD.DER= 004000        	  828#
CD.DLT= 002000        	  828#
CD.EOF= 020000        	  828#
CD.ERR= 100000        	  828#	 5219
CD.GO = 000001        	  830#	 5217
CD.HPE= 000004        	  830#
CD.IE = 000100        	  829#	 5199	 5217
CD.LVL= 000004        	  823#	 4598
CD.NXM= 001000        	  829#
CD.OFL= 010000        	  828#	 5207
CD.ONL= 000010        	  830#
CD.PAC= 000002        	  830#	 5199
CD.PCK= 020000        	  875#
CD.PWC= 000400        	  829#	 5214
CD.RCK= 040000        	  875#
CD.RDC= 040000        	  828#
CD.RDY= 000200        	  829#	 5219
CD.SCK= 010000        	  875#
CD.STS= 177160        	  826#	 4598
CD.VEC= 000230        	  824#	 4598
CD.XAD= 000060        	  831#	 5199	 5217
CHKBIT  007574R       	 3807	 3824	 4896#	 5198	 5201	 5204	 5265	 5515	 5519	 5997	 6046	 6050	 6053
			 6069	 6072	 6156	 6159	 6162	 6165	 6396	 6419	 6423	 6428	 6434	 6440
CHKCD   005210R       	 4598#	 5264*
CHKCHR  015476R       	 3802*	 3804*	 3820*	 3822*	 4474*	 4475*	 4821*	 4825*	 4826*	 4828*	 4837	 4841	 4975
			 5007	 5009	 5013*	 5041*	 5069	 5071	 5076*	 5077*	 5081	 5083	 5272*	 5996*	 6086*
			 6982#	 6984	 6987	 6990	 6993	 6998
CHKCKB  001564R       	 3814	 3818#
CHKCKD  002012R       	 3778	 3860#
CHKCLK  004554R       	 4471#
CHKCOR  003572R       	 4178	 4182#
CHKCR   005244R       	 4600#	 5197*
CHKCTY  001400R       	 3761	 3765#
CHKDEV  006642R       	 4598	 4600	 4601	 4602	 4603	 4604	 4605	 4606	 4607	 4608	 4609	 4610	 4611
			 4612	 4613	 4614	 4615	 4617	 4642	 4643	 4644	 4645	 4646	 4649	 4652	 4653
			 4702#
CHKDTE  006144R       	 4617#
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 42-2
C11DMC.MAC    10-AUG-79 16:08		CROSS REFERENCE TABLE -- USER SYMBOLS

CHKEND= 016032R       	 7052#
CHKERR  015022R       	 3759	 6895#
CHKFLD  010710R       	 3730*	 4717*	 4719*	 4720	 4743	 4753	 4755*	 4778	 4820	 5166#
CHKFLG  001152R       	 3690#	 3731*	 3766*	 3818*	 4472*	 4824*	 4960	 4980*	 6202	 6206*	 6213	 6217*	 6901*
			 6908*	 6958*
CHKFLV  010706R       	 3729*	 4708	 4814	 4866	 4867*	 5165#
CHKINL  010032R       	 3810	 4514	 4988#	 5227	 5287	 6007	 6182
CHKINT  010544R       	 3746	 5123#	 5128
CHKISZ= 000012        	 3754	 5128#
CHKMAP  002566R       	 4021	 4025#
CHKMMG  002670R       	 4047	 4057#
CHKRP   005730R       	 4611#
CHKSTK= 016032R       	 3724	 7048#
CHKTIM  004754R       	 4482*	 4487	 4505*	 4510#
CHK.11  001230R       	 3274	 3720#	 6968
CHK.90  006540R       	 4661#
CI.INE= 000100        	  921#	 3825
CKACD$= 001224R       	 4598#
CKACD1= ****** U      	 4598
CKACR$= 001224R       	 4600#
CKACR1= ****** U      	 4600
CKADLX= 001224R       	 3709
CKADL.= 001224R       	 4644#	 4645#	 4646#
CKADMC= 001224R       	 4649#
CKADTE= 001224R       	 4617#
CKADUP= 001224R       	 4643#
CKADZ$= 001224R       	 4653#
CKADZ1= ****** U      	 4653
CKAKG$= 001224R       	 4601#
CKAKG1= 001224R       	 3712	 4601
CKAKMC= 001224R       	 4642#	 4652#
CKAKW.= 001224R       	 4615#
CKAKW1= 001224R       	 3711	 4520
CKALE$= 001224R       	 4602#
CKALE1= ****** U      	 4602
CKALP$= 001224R       	 4603#
CKALP1= ****** U      	 4603
CKAMEM= 001224R       	 3710
CKAPP$= 001224R       	 4604#
CKAPP1= ****** U      	 4604
CKAPR$= 001224R       	 4605#
CKAPR1= ****** U      	 4605
CKARC$= 001224R       	 4608#
CKARC1= ****** U      	 4608
CKARF$= 001224R       	 4609#
CKARF1= ****** U      	 4609
CKARH$= 001224R       	 4610#
CKARH1= ****** U      	 4610
CKARK$= 001224R       	 4613#
CKARK1= ****** U      	 4613
CKARP$= 001224R       	 4611#
CKARP1= ****** U      	 4611
CKARX$= 001224R       	 4614#
CKARX1= ****** U      	 4614
CKATA$= 001224R       	 4612#
CKATA1= ****** U      	 4612
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 42-3
C11DMC.MAC    10-AUG-79 16:08		CROSS REFERENCE TABLE -- USER SYMBOLS

CKATC$= 001224R       	 4606#
CKATC1= ****** U      	 4606
CKATM$= 001224R       	 4607#
CKATM1= ****** U      	 4607
CKBFSH  014536R       	 4665	 6820	 6830	 6836	 6846#
CKBLK = 001316R       	 7045#
CKBUST  014756R       	 3772	 3777	 4479	 4725	 4751	 5190	 5231	 6875#
CKCADD= 000034        	 4599#
CKCDEV  005210R       	 4597#	 4599
CKCEND  006540R       	 4657#
CKCLK9  004756R       	 4488	 4493	 4497	 4501	 4511#
CKCOR   004162R       	 4275	 4288#
CKCPSZ= 002000        	 4315#	 4321	 4323
CKCPU   002012R       	 3860	 3868#
CKCPUE  002512R       	 3940	 3943	 3946	 3949	 3952	 3955	 3958#
CKCPUN  002244R       	 3923#	 3958*
CKCRLF  013762R       	 4775	 6651#	 6662	 6917
CKDA  = 000000        	 3802*	 3820*	 4474*	 4825*	 4975	 6086*	 6984#
CKDEVN  001154R       	 3693#	 3806*	 4476*	 4803*	 4847*	 4848	 4970	 6617*
CKDIDT  007726R       	 4960#	 6902
CKDLXB  002566R       	 3968	 3975#
CKDL10  005040R       	 4526#
CKDNAM  001156R       	 3694#	 3805*	 3823*	 4471*	 4705*	 4782	 4965	 6200	 6211
CKDN2X= 000043        	  184#	 4581	 4582	 4585	 4588	 4640	 4641	 4648	 4651
CKDV  = 000002        	 3804*	 3822*	 4475*	 4826*	 4837	 5007	 5009	 5069	 5071	 5996*	 6086*	 6987#
CKEDID= 000010        	 3379#	 4490	 4494	 4498	 4758	 4910	 4920	 4927	 5004	 5010	 5066	 5072	 5084
			 5096	 5222	 5282	 6003	 6012	 6017	 6092	 6107	 6203	 6214	 6237	 6266	 6352
			 6393	 6875	 6899	 6918
CKEFAT= 000001        	 3376#	 4044	 6956
CKEGB = 000100        	 3383#	 4366	 4377	 4910	 4920	 4927	 5010	 5072	 5084	 6092	 6107	 6237	 6266
			 6352	 6918	 6932	 6969
CKEMSE= 000020        	 3380#	 3899	 4042	 4098	 4100	 4118	 4125	 4145	 4155	 4157	 4243	 4251	 4335
			 4366	 4377	 4490	 4494	 4498	 4758	 4786	 4910	 4920	 4927	 4962	 4967	 4972
			 4977	 5004	 5010	 5066	 5072	 5084	 5096	 5209	 5222	 5233	 5259	 5269	 5282
			 6003	 6012	 6017	 6092	 6107	 6203	 6214	 6237	 6266	 6352	 6393	 6447	 6875
			 6912	 6924
CKEMSG= 000004        	 3378#	 3899	 4042	 4098	 4100	 4118	 4125	 4145	 4155	 4157	 4243	 4251	 4335
			 4366	 4377	 4490	 4494	 4498	 4758	 4786	 4910	 4920	 4927	 4962	 4967	 4972
			 4977	 5004	 5010	 5066	 5072	 5084	 5096	 5209	 5222	 5233	 5259	 5269	 5282
			 6003	 6012	 6017	 6092	 6107	 6203	 6214	 6237	 6266	 6352	 6393	 6447	 6875
			 6912	 6929
CKENCL= 000040        	 3382#	 4243	 4786	 4967	 4972	 4977	 6393	 6915
CKEPC = 000002        	 3377#	 3899	 4155	 4157	 4335	 4366	 4377	 4490	 4494	 4498	 4910	 4920	 4927
			 5004	 5010	 5066	 5072	 5084	 5096	 5222	 5282	 6003	 6012	 6017	 6092	 6107
			 6237	 6266	 6352	 6903
CKFERR= 000001        	 3691#	 6901	 6908	 6958
CKFIDT= 100000        	 3692#	 3766	 3818	 4472	 4824	 4960	 4980
CKFLAG  010542R       	 5042*	 5074	 5078*	 5114#
CKFLG = 000006        	 4828*	 6993#
CKGCHR  014264R       	 6767#	 6791
CKGYES  014360R       	 6791#
CKHALT  001226R       	 3708#
CKINT   010150R       	 5039#	 6398	 6456
CKINTE  010530R       	 5067	 5073	 5087	 5097	 5104	 5107	 5109#
CKINTS  001316R       	 3744#	 7045
CKINT1  010170R       	 5045#	 5105
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 42-4
C11DMC.MAC    10-AUG-79 16:08		CROSS REFERENCE TABLE -- USER SYMBOLS

CKINT2  010174R       	 5046#	 5065
CKINT3  010202R       	 5048#	 5108
CKINT6  010436R       	 5082	 5088#
CKINT7  010520R       	 5050	 5106#
CKMDCK  013230R       	 6227	 6252	 6320	 6344#
CKMDEX  013152R       	 6231	 6256	 6315#
CKMDRD  013334R       	 6192	 6196	 6233	 6258	 6318	 6346	 6368#
CKMDWR  013202R       	 6195	 6210	 6332#	 6345
CKMDXT  013136R       	 6207	 6302#
CKMG01  015516R       	 4366	 4377	 7036#
CKMG02  015527R       	 4910	 4927	 7037#
CKMG03  015552R       	 4920	 7038#
CKMG04  015573R       	 5004	 5066	 7039#
CKMG05  015624R       	 5010	 5072	 7040#
CKMG06  015661R       	 7041#
CKMG07  015674R       	 5096	 7042#
CKMPAR  004554R       	 4329	 4384#
CKNAME  000466R       	 3331#	 3628	 3827
CKNODV= ****** U      	 4766
CKPI  = 000004        	 4821*	 5013*	 5041*	 5076*	 5077*	 5081	 5083	 5272*	 6086*	 6990#
CKPOPJ  001224R       	 3707#	 4598	 4600	 4602	 4603	 4604	 4605	 4606	 4607	 4608	 4609	 4610	 4611
			 4612	 4613	 4614	 4653
CKSPC = 000010        	 6998#
CKSPCD  015474R       	 3732*	 4366*	 4377*	 6962	 6980#
CKSTD = ****** U      	 4580	 4618
CKTBOC  014006R       	 4810	 6676#	 6880	 6911	 6938	 6943	 6948	 6955
CKTCHR  014074R       	 3837	 3839	 3843	 6639	 6678	 6717#	 6752	 6781
CKTCRL  013774R       	 3830	 3856	 3868	 3961	 4059	 4198	 4231	 4309	 4326	 4517	 4578	 4661	 6662#
			 6905	 6934	 6959
CKTDEC  014170R       	 3965	 4240	 6740#
CKTOCT  014022R       	 3834	 3841	 4256	 4267	 4776	 4795	 4971	 4976	 6685#
CKTREM  014412R       	 6735	 6804#
CKTRPT  013732R       	 3767*	 3776*	 3799*	 6626#	 6728	 6733	 6767	 6815*	 6839*
CKTSTR  014000R       	 3845	 3850	 4246	 4259	 4262	 4268	 4806	 6614	 6651	 6669#	 6721	 6920	 6939
			 6944	 6949
CKTTXT  013734R       	 3828	 3849	 3854	 3959	 4781	 4783	 4793	 4966	 6636#	 6669	 6927
CKVCD1= ****** U      	 4598
CKVCR1= ****** U      	 4600
CKVDL.= ****** U      	 4644	 4645	 4646
CKVDMC= ****** U      	 4649
CKVDTE= ****** U      	 4617
CKVDUP= ****** U      	 4643
CKVDZ1= ****** U      	 4653
CKVEDI= 000025        	 3333	 3338#
CKVKG1= ****** U      	 4601
CKVKMC= ****** U      	 4642	 4652
CKVKW.= ****** U      	 4615
CKVLE1= ****** U      	 4602
CKVLP1= ****** U      	 4603
CKVMAJ= 000002        	 3333	 3336#
CKVMIN= 000101        	 3333	 3337#
CKVPP1= ****** U      	 4604
CKVPR1= ****** U      	 4605
CKVRC1= ****** U      	 4608
CKVRF1= ****** U      	 4609
CKVRH1= ****** U      	 4610
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 42-5
C11DMC.MAC    10-AUG-79 16:08		CROSS REFERENCE TABLE -- USER SYMBOLS

CKVRK1= ****** U      	 4613
CKVRP1= ****** U      	 4611
CKVRX1= ****** U      	 4614
CKVTA1= ****** U      	 4612
CKVTC1= ****** U      	 4606
CKVTM1= ****** U      	 4607
CKVWHN  000530R       	 3334	 3340#
CKVWHO  000542R       	 3334	 3342#
CKWRD   002242R       	 3872	 3876	 3922#
CK.BFG  014752R       	 6824*	 6828	 6832*	 6870#
CK.BFN  014751R       	 6834	 6868#
CK.BUF  014631R       	 4664	 6851	 6863	 6867#	 6871
CK.CAL  001160R       	 3696#	 3721*	 4674	 6855
CK.COD  014630R       	 6853	 6866#
CK.CSP  001164R       	 3698#	 3723*	 4673	 6849
CK.DMC  001162R       	 3697#	 3722*	 4672	 4830	 6854
CK.OSP  001166R       	 3699#	 6848*	 6860
CK.PTR  014754R       	 6817	 6837*	 6871#
CK04    002446R       	 3911	 3939#
CK05    002454R       	 3884	 3942#
CK20    002462R       	 3887	 3945#
CK34    002470R       	 3919	 3948#
CK40    002476R       	 3886	 3951#
CK45    002504R       	 3920	 3954#
CLKENB= 000100        	 1662#
CLKLVL= 000004        	 1655#
CLKVEC= 000100        	 1657#	 4475	 4480	 4481*	 4513*
CLKWRD= 177546        	 1659#	 4473	 4516*
CO.INE= 000100        	  928#	 3808	 3809
CO..MM= 000004        	  929#	 3808
CR.BSY= 001000        	  903#	 5267
CR.CDN= 000200        	  905#	 5278
CR.CFD= 000001        	  908#	 5275
CR.DAT= 177162        	  910#
CR.DNE= 040000        	  898#
CR.EJT= 000002        	  907#	 5266
CR.ERR= 100000        	  897#	 5278
CR.HCK= 020000        	  899#
CR.INE= 000100        	  906#	 5266	 5275	 5281	 5289
CR.LVL= 000006        	  891#	 4600	 5272
CR.MCK= 010000        	  900#
CR.OLN= 002000        	  902#
CR.RDY= 000400        	  904#
CR.STS= 177160        	  895#	 4600
CR.TIM= 004000        	  901#
CR.VEC= 000230        	  892#	 4600
CR0STS= 177160        	  894#
CSRTAB  000164R       	 3120	 3172#
CSTAT = 000034        	 1378#	 5999
CTICHR= 177562        	  917#	 3771	 6773	 6779
CTILVL= 000004        	  919#
CTISTS= 177560        	  916#	 3770	 3819	 6777
CTIVEC= 000060        	  918#	 3822
CTOCHR= 177566        	  924#	 3769	 6732*
CTOLVL= 000004        	  926#
CTOSTS= 177564        	  923#	 3768	 3801	 6730
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 42-6
C11DMC.MAC    10-AUG-79 16:08		CROSS REFERENCE TABLE -- USER SYMBOLS

CTOVEC= 000064        	  925#	 3804
CVCD$$= 000000        	 4598#
CVCR$$= 000000        	 4600#
CVDL.E= 000000        	 4644#	 4645#	 4646#
CVDMC$= 000000        	 4649#
CVDTE2= 000000        	 4617#
CVDUP$= 000000        	 4643#
CVDZ$$= 000000        	 4653#
CVKG$$= 000000        	 4601#
CVKMC$= 000000        	 4642#	 4652#
CVKW.P= 000000        	 4615#
CVLE$$= 000000        	 4602#
CVLP$$= 000000        	 4603#
CVPP$$= 000000        	 4604#
CVPR$$= 000000        	 4605#
CVRC$$= 000000        	 4608#
CVRF$$= 000000        	 4609#
CVRH$$= 000000        	 4610#
CVRK$$= 000000        	 4613#
CVRP$$= 000000        	 4611#
CVRX$$= 000000        	 4614#
CVTA$$= 000000        	 4612#
CVTC$$= 000000        	 4606#
CVTM$$= 000000        	 4607#
DEBUG = 000001        	  292
DEVNAM  000120R       	 3117	 3120	 3121	 3148#
DEVTAB  000206R       	 3127	 3184#
DEVTYP= ****** GX     	 3118	 3136	 7123	 7269
DEXDON= 000004        	 1394#
DEXWD1= 000006        	 1363#
DEXWD2= 000004        	 1362#
DEXWD3= 000002        	 1361#
DGUTS = 000000        	  280	  282
DHBASE= 160020        	  932#
DHRFER= 020000        	  955#
DHROVR= 040000        	  954#
DH.AEE= 100000        	  962#
DH.BAR= 000012        	  949#
DH.BCR= 000010        	  948#
DH.BRK= 000014        	  950#
DH.CAR= 000006        	  947#
DH.CL5= 000000        	  967#
DH.CL6= 000001        	  968#
DH.CL7= 000002        	  969#
DH.CL8= 000003        	  970#
DH.CNX= 000400        	  937#
DH.DOV= 040000        	  957#
DH.LPR= 000004        	  946#
DH.LVL= 000007        	  933#
DH.NRC= 000002        	  945#
DH.NXM= 002000        	  939#
DH.PEN= 000020        	  965#
DH.RIE= 000100        	  935#
DH.SIE= 010000        	  941#
DH.SSR= 000016        	  951#
DH.TIE= 020000        	  942#
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 42-7
C11DMC.MAC    10-AUG-79 16:08		CROSS REFERENCE TABLE -- USER SYMBOLS

DH.VDP= 100000        	  956#
DH..FE= 020000        	  958#
DH..HD= 040000        	  963#
DH..MC= 004000        	  940#
DH..MM= 001000        	  938#
DH..OP= 000040        	  964#
DH..PE= 010000        	  959#
DH..RI= 000200        	  936#
DH..SI= 040000        	  943#
DH..TI= 100000        	  944#
DH.2SB= 000004        	  966#
DIAG1 = 000030        	 1375#
DIAG2 = 000032        	 1376#
DIAG3 = 000036        	 1399#
DLBASE= 100000        	  979#	  983
DLDADR= 175610        	 1005#
DLDSIZ= 000010        	 1006#
DLPENB= 000040        	  995#
DLRBUF= 000002        	 1029#
DLRSTS= 000000        	 1011#
DLXBUF= 000006        	 1050#
DLXSTS= 000004        	 1040#
DLYCNT= 000000        	 1357#	 5999
DLYMSK= 037777        	 1360#
DL.BAS= 100000        	  978#	  979
DL.BRK= 000001        	 1043#
DL.B00= 000001        	 1000#
DL.B01= 000002        	  999#
DL.B04= 000020        	  996#
DL.CAR= 010000        	 1023#
DL.CNX= 002000        	  989#
DL.CPE= 000400        	  991#
DL.CTS= 020000        	 1024#
DL.CWC= 000100        	  993#
DL.DIE= 000040        	 1018#
DL.DSC= 100000        	 1026#
DL.DTR= 000002        	 1015#
DL.ERE= 000010        	  997#
DL.ERR= 100000        	 1036#
DL.E.L= 000000        	 4644	 4645	 4646
DL.INE= 000004        	  998#
DL.LVL= 000004        	  981#
DL.NXM= 004000        	  988#
DL.OVR= 040000        	 1035#
DL.PAR= 001000        	  990#
DL.PEN= 000040        	  994#	  995
DL.RGO= 004000        	 1022#
DL.RIE= 000100        	 1019#
DL.RNG= 040000        	 1025#
DL.ROK= 000200        	 1020#
DL.RTS= 000004        	 1016#
DL.STS= 100000        	  983#
DL.VEC= 000170        	  980#
DL.WCO= 000200        	  992#
DL.XIE= 000100        	 1045#
DL.XOK= 000200        	 1046#
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 42-8
C11DMC.MAC    10-AUG-79 16:08		CROSS REFERENCE TABLE -- USER SYMBOLS

DL..FE= 020000        	 1034#
DL..MM= 000004        	 1044#
DL..PE= 010000        	 1033#
DL..RC= 000377        	 1032#
DL..RE= 000001        	 1014#
DL..XC= 000377        	 1053#
DL.10C= 010000        	  987#
DL.10I= 020000        	  986#
DL.11C= 040000        	  985#
DL.11I= 100000        	  984#
DL.2RC= 002000        	 1021#
DL.2XM= 000010        	 1017#
DL10AD= 000546R       	 3366
DMBASE= 170500        	 1057#
DMC.LV= 000005        	 1074#	 4649
DM.ALI= 000017        	 1070#
DM.BSY= 000020        	 1069#
DM.DNE= 000200        	 1066#
DM.ENB= 000040        	 1068#
DM.IEN= 000100        	 1067#
DM.INI= 002000        	 1063#
DM.LVL= 000007        	 1059#
DM.SCN= 004000        	 1062#
DM.STP= 000400        	 1065#
DM.TIM= 000120        	  205#
DM..MM= 001000        	 1064#
DNBASE= 175200        	 1099#
DN.ACR= 040000        	 1102#
DN.DGT= 007400        	 1112#
DN.DLO= 010000        	 1103#
DN.DNE= 000200        	 1104#
DN.DSS= 000040        	 1106#
DN.LVL= 000007        	 1098#
DN.PND= 000020        	 1107#
DN.PWI= 100000        	 1101#
DN..CR= 000001        	 1111#
DN..DP= 000002        	 1110#
DN..IE= 000100        	 1105#
DN..ME= 000004        	 1109#
DN..MM= 000010        	 1108#
DON10C= 040000        	 1380#
DON11C= 000100        	 1389#
DP.CAR= 004000        	 1135#
DP.CTS= 002000        	 1136#
DP.DTR= 000001        	 1144#
DP.LVL= 000007        	 1116#
DP.MIS= 000020        	 1141#
DP.MRY= 010000        	 1134#
DP.RIE= 000100        	 1123#
DP.RNG= 020000        	 1133#
DP.ROF= 040000        	 1132#
DP.RTS= 001000        	 1137#
DP.SIE= 000040        	 1140#
DP.TIE= 000100        	 1139#
DP..CF= 100000        	 1131#
DP..CP= 010000        	 1120#
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 42-9
C11DMC.MAC    10-AUG-79 16:08		CROSS REFERENCE TABLE -- USER SYMBOLS

DP..HD= 000002        	 1126#
DP..IS= 000002        	 1143#
DP..MM= 000004        	 1125#
DP..MR= 000010        	 1124#
DP..MT= 000010        	 1142#
DP..RA= 004000        	 1121#
DP..RD= 000200        	 1122#
DP..SS= 000001        	 1127#
DP..TD= 000200        	 1138#
DQ.BCC= 000100        	 1198#
DQ.CAR= 010000        	 1185#
DQ.CHR= 007400        	 1161#
DQ.CIE= 000020        	 1157#	 1169
DQ.CTS= 020000        	 1186#
DQ.DIE= 000020        	 1177#
DQ.DSF= 100000        	 1188#
DQ.DSR= 002000        	 1183#
DQ.DTR= 001000        	 1182#
DQ.EIE= 000010        	 1176#
DQ.ENQ= 002000        	 1164#
DQ.ETB= 000400        	 1162#
DQ.ETX= 001000        	 1163#
DQ.HD = 000010        	 1156#
DQ.LVL= 000007        	 1148#
DQ.MBM= 000020        	 1202#
DQ.MC = 000040        	 1219#
DQ.MEM= 010000        	 1201#
DQ.RAC= 010000        	 1166#	 1169
DQ.RCL= 000002        	 1193#
DQ.RDP= 000200        	 1160#
DQ.RDS= 000100        	 1159#
DQ.RGO= 000001        	 1153#	 1169
DQ.RIE= 000040        	 1158#
DQ.RKL= 110021        	 1169#
DQ.RLE= 000010        	 1195#
DQ.RNG= 004000        	 1184#
DQ.RNX= 000040        	 1197#
DQ.RTS= 000400        	 1181#
DQ.SEC= 000004        	 1155#	 1175#
DQ.SSY= 000002        	 1154#
DQ.SYN= 004000        	 1165#
DQ.VCH= 100000        	 1168#	 1169
DQ.VRC= 000200        	 1199#
DQ.XCL= 000001        	 1192#
DQ.XDP= 000200        	 1180#
DQ.XDS= 000100        	 1179#
DQ.XGO= 000001        	 1173#
DQ.XIE= 000040        	 1178#
DQ.XLE= 000004        	 1194#
DQ.XNX= 000020        	 1196#
DRESET= 000100        	 1377#	 6020
DS.AD1= 020000        	 1280#
DS.AD2= 040000        	 1279#
DS.AD3= 100000        	 1278#
DS.AUX= 175600        	 1271#
DS.DTR= 000440        	 1312#	 1314	 1315
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 42-10
C11DMC.MAC    10-AUG-79 16:08		CROSS REFERENCE TABLE -- USER SYMBOLS

DS.DVA= 175400        	 1272#	 4839
DS.IVA= 000400        	 1285#
DS.LVL= 000007        	 1274#
DS.RDR= 000002        	 1300#
DS.RGO= 006455        	 1315#
DS.RST= 000000        	 1301#
DS.VEC= 000400        	 1273#
DS.XDR= 000006        	 1298#
DS.XGO= 000455        	 1314#
DS.XST= 000004        	 1299#
DS.ZAP= 170000        	 1313#
DTE2.L= 000000        	 4617
DUPACT= 004000        	 1411#
DUPCAR= 010000        	 1411#
DUPCRS= 000000        	 1410#
DUPCTS= 020000        	 1411#
DUPDIE= 000040        	 1412#
DUPDSA= 100000        	 1411#
DUPDSB= 000001        	 1413#
DUPDSR= 001000        	 1412#
DUPDTR= 000002        	 1413#	 6045
DUPPDM= 100000        	 1448#
DUPPIC= 001000        	 1448#
DUPPSR= 000002        	 1447#
DUPP2M= 010000        	 1448#
DUPP2S= 000377        	 1449#
DUPRAB= 002000        	 1435#
DUPRCE= 000020        	 1412#
DUPRCR= 010000        	 1435#
DUPRDB= 000002        	 1434#	 1447
DUPRDN= 000200        	 1412#
DUPRDT= 000377        	 1436#
DUPREM= 001000        	 1435#
DUPRER= 100000        	 1435#
DUPRIE= 000100        	 1412#	 6045
DUPRNG= 040000        	 1411#
DUPROV= 040000        	 1435#
DUPRSM= 000400        	 1435#
DUPRTS= 000004        	 1413#
DUPSSY= 000400        	 1412#	 6047
DUPTAC= 001000        	 1461#
DUPTCS= 000004        	 1459#
DUPTDB= 000006        	 1480#
DUPTDL= 100000        	 1460#
DUPTDN= 000200        	 1461#
DUPTHD= 000010        	 1461#	 6051
DUPTIE= 000100        	 1461#	 6051
DUPTMC= 020000        	 1460#	 6051
DUPTMI= 002000        	 1461#	 6051
DUPTMT= 040000        	 1460#
DUPTM0= 004000        	 1460#	 6051
DUPTM1= 010000        	 1460#	 6051
DUPTRS= 000400        	 1461#
DUPTSN= 000020        	 1461#	 6051
DUPXAB= 002000        	 1481#	 6054
DUPXCI= 040000        	 1481#
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 42-11
C11DMC.MAC    10-AUG-79 16:08		CROSS REFERENCE TABLE -- USER SYMBOLS

DUPXCO= 010000        	 1481#
DUPXDB= 000377        	 1482#	 6054
DUPXEM= 001000        	 1481#	 6054
DUPXMT= 004000        	 1481#
DUPXSM= 000400        	 1481#	 6054
DUP.LV= 000006        	 1406#	 4643
DUP2RC= 002000        	 1411#
DUP2TX= 000010        	 1413#
DZ.CLR= 000020        	 1498#
DZ.INI= 050140        	 1503#
DZ.LVL= 000000        	 4653
DZ.RCV= 010000        	 1509#
DZ.RIE= 000100        	 1500#	 1503	 6070
DZ.SAE= 010000        	 1501#	 1503
DZ.SCN= 000040        	 1499#	 1503	 6070
DZ.TIE= 040000        	 1502#	 1503	 6070
D.CNTF= 000020        	 4728*	 4738*
D.CNTP= 000006        	 4761	 4763*
D.DIAG= 000012        	 4822
D.FRSV= 000022        	 4729*	 4835	 4837*
D.FVFD= 000026        	 4711	 4734*	 4804
D.HINC= 000004        	 4716	 4741	 4845
D.MAIN= 000014        	 4842
D.MAXL= 000002        	 4745	 4756
D.NAMP= 000010        	 4705
D.NEXT= 000030        	 4870
D.VINC= 000003        	 4739	 4843
D.VMUL= 000005        	 4709	 4731	 4812	 4864
D.$$$$= 000000        	 4598	 4600	 4601	 4602	 4603	 4604	 4605	 4606	 4607	 4608	 4609	 4610	 4611
			 4612	 4613	 4614	 4615	 4617	 4642	 4643	 4644	 4645	 4646	 4649	 4652	 4653
ED.HIS= 000001        	 3339#	 3844
EMTLVL= 000007        	  814#
EMTVEC= 000030        	  814#
ENBGO = 000103        	 1723#
ENDDRV= ****** GX     	 3255	 3256
ERR     016350R       	 7137	 7183	 7257#
ERR10C= 010000        	 1382#
ERR11C= 000001        	 1397#	 1398
ERR11S= 000002        	 1396#
EXCLUD= 000000        	  188#	  198	  200	  201	  202	  207	  208	  209	  210	  211	  213	  216	  218
			  221	  222	  223	  224	  225	  226	  227	  228	  229
FLOAT   000054R       	 3128#	 3134
FLOATD= 160000        	 3364	 3730
FLOATV= 000300        	 3363	 3729
FLTTAB  000142R       	 3121	 3160#
FTCD20= 177777        	  196#	 5185	 5186
FTCR11= 177777        	  197#	 5250	 5251
FTDH11= 000000        	  198#	  199	  204	 5301	 5302
FTDJ11= 000000        	  200#
FTDL1A= 000000        	  202#	 5498	 5499
FTDL1E= 177777        	  203#	 5511	 5512
FTDL10= 000000        	  201#	 3973	 3976	 4527	 4940
FTDMC = 177777        	  206#	  217	 6138	 6139
FTDM11= 000000        	  204#	 5532	 5533
FTDN11= 000000        	  207#	 5580	 5581
FTDP11= 000000        	  208#	 5595	 5596
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 42-12
C11DMC.MAC    10-AUG-79 16:08		CROSS REFERENCE TABLE -- USER SYMBOLS

FTDQ11= 000000        	  209#	  210	 5619	 5620
FTDS11= 000000        	  211#	 5936	 5937
FTDTE = 177777        	  212#	 5988	 5989
FTDUP1= 177777        	  214#	 6042	 6043
FTDU11= 000000        	  213#	 6030	 6031
FTDZ11= 177777        	  215#	 6066	 6067
FTKG11= 000000        	  216#	 3360
FTKMC = 177777        	  217#	  218	 6137	 6190	 6308
FTKMCL= 000000        	  218#	 6167	 6218	 6275
FTLE11= 177777        	  219#	 6388	 6389
FTLP20= 177777        	  220#	 6404	 6405
FTMD11= 000000        	  221#	 6466	 6467
FTPA61= 000000        	  222#
FTPP11= 000000        	  223#	 6511	 6512
FTPR11= 000000        	  224#	 6527	 6528
FTP611= 000000        	 6485	 6486
FTRH11= 000000        	  225#	 6556	 6557
FTRK11= 000000        	  226#
FTRX11= 000000        	  227#
FTR611= 000000        	 6498	 6499
FTTC11= 000000        	  228#	 6570	 6571
FTTM11= 000000        	  229#	 6603	 6604
FT.CHK= 000001        	  299
FT.HLP= 000001        	  290
FT.ROM= ****** U      	 4448
FT.87S= ****** U      	 1652
IDZ0  = 010000        	  858#
IDZ1  = 020000        	  858#
IDZ2  = 040000        	  858#
ILSLVL= 000007        	  810#
ILSVEC= 000010        	  810#
INCLUD= 177777        	  187#	  196	  197	  203	  204	  206	  212	  214	  215	  217	  219	  220
INIDRV= ****** GX     	 3268	 7109
INIT    016034R       	 7109#	 7130
INTROF= 000010        	 1392#	 1393	 6009
INTRON= 000040        	 1390#	 6000
INTSON= 000001        	 1398#	 6001	 6010
INT11C= 002000        	 1385#
INT11S= 004000        	 1384#	 6006
IOTLVL= 000007        	  812#
IOTVEC= 000020        	  812#
IZ00  = 001000        	  858#
IZ01  = 000400        	  858#
IZ02  = 000200        	  859#
IZ03  = 000100        	  859#
IZ04  = 000040        	  859#
IZ05  = 000020        	  859#
IZ06  = 000010        	  859#
IZ07  = 000004        	  859#
IZ08  = 000002        	  859#
IZ09  = 000001        	  859#
IZ11  = 002000        	  858#
IZ12  = 004000        	  858#
I.DSRD= 000007        	 1305#	 1315
I.DSRS= 000006        	 1306#
I.DSXD= 000007        	 1307#	 1314
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 42-13
C11DMC.MAC    10-AUG-79 16:08		CROSS REFERENCE TABLE -- USER SYMBOLS

I.DSXS= 000006        	 1308#
I.INTC= 000004        	 5056	 5058	 5098	 5100
I.INTS= 000002        	 5048	 5060
I.RTRN= 000006        	 5109
I.$$$$= 000000        	 6398	 6456
KDSAR0= 172360        	 1630#
KDSAR1= 172362        	 1630#
KDSAR2= 172364        	 1630#
KDSAR3= 172366        	 1630#
KDSAR4= 172370        	 1630#
KDSAR5= 172372        	 1630#
KDSAR6= 172374        	 1630#
KDSAR7= 172376        	 1630#
KDSDR0= 172320        	 1630#
KDSDR1= 172322        	 1630#
KDSDR2= 172324        	 1630#
KDSDR3= 172326        	 1630#
KDSDR4= 172330        	 1630#
KDSDR5= 172332        	 1630#
KDSDR6= 172334        	 1630#
KDSDR7= 172336        	 1630#
KGBCC = 000002        	 1552#	 6089	 6091	 6104	 6106
KGDATA= 000004        	 1553#	 6088*	 6103*
KG.CCI= 000005        	 1550#
KG.CLR= 000020        	 1545#	 1551	 6100
KG.CRC= 000001        	 1548#	 1551
KG.DDB= 000010        	 1546#
KG.DNE= 000200        	 1542#
KG.INI= 000121        	 1551#
KG.LRC= 000003        	 1549#
KG.LVL= 000000        	 4601
KG.SEN= 000100        	 1543#	 1551
KG.STP= 000040        	 1544#
KG.STS= 170700        	 1541#	 4601
KISAR0= 172340        	 1630#	 3096#	 3229*	 4068*	 4078	 4092	 4108	 4133	 7203*	 7214	 7275*	 7314*
KISAR1= 172342        	 1630#	 4070*
KISAR2= 172344        	 1630#	 3098#	 7317*
KISAR3= 172346        	 1630#
KISAR4= 172350        	 1630#
KISAR5= 172352        	 1630#	 3100#	 4078*	 4092	 4094*	 4108*	 4133*	 4201*	 4216*	 4217	 4222*	 4224	 4265
			 4312*	 4323*	 4324
KISAR6= 172354        	 1630#	 3103#	 3246*	 3727	 4669*	 7214	 7275	 7317	 7319*
KISAR7= 172356        	 1630#	 3104#	 3242*	 4072*
KISDR0= 172300        	 1630#	 3097#	 3227	 3229*	 4069*	 4079
KISDR1= 172302        	 1630#	 4071*
KISDR2= 172304        	 1630#	 3099#
KISDR3= 172306        	 1630#
KISDR4= 172310        	 1630#
KISDR5= 172312        	 1630#	 3101#	 4079*	 4109*	 4134*	 4139*	 4153*	 4158	 4160*	 4202*
KISDR6= 172314        	 1630#	 3102#	 3728	 4668*
KISDR7= 172316        	 1630#	 4073*
KMC.LV= 000000        	 4642	 4652
KT11    016726R       	 3241*	 7110	 7195	 7212	 7273	 7312	 7354#
KW.INE= 000100        	 1661#	 4484	 4512	 4516
KW.P.L= 000000        	 4615
KW.TIC= 000200        	 1663#
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 42-14
C11DMC.MAC    10-AUG-79 16:08		CROSS REFERENCE TABLE -- USER SYMBOLS

LDERR   016334R       	 7217	 7244#
LE.DAT= 177516        	 1678#
LE.DNE= 000200        	 1674#	 6398
LE.ERR= 100000        	 1673#	 6391
LE.INE= 000100        	 1675#	 6397	 6398
LE.LVL= 000004        	 1667#	 4602
LE.STS= 177514        	 1671#	 4602
LE.VEC= 000200        	 1668#	 4602
LE0DAT= 177516        	 1677#	 1678
LE0STS= 177514        	 1670#	 1671
LE1DAT= 177522        	 1683#
LE1STS= 177520        	 1682#
LPBCTR= 000006        	 1752#	 6418*	 6452*
LPBSAD= 000004        	 1750#	 6417*	 6453*	 6454*
LPCBUF= 000014        	 1768#	 6454
LPCCTR= 000015        	 1769#
LPCKSM= 000017        	 1772#
LPCSRA= 000000        	 1694#
LPCSRB= 000002        	 1725#
LPPCTR= 000010        	 1756#
LPRAMD= 000012        	 1760#	 6409
LPRBSZ= 000020        	 1774#
LPTDAT= 000016        	 1771#
LP.B16= 000020        	 1696#	 1722	 6455
LP.B17= 000040        	 1696#	 1722	 6455
LP.CHI= 020000        	 1695#
LP.DEM= 000002        	 1728#
LP.DH = 002000        	 1695#	 6420
LP.DNE= 000200        	 1696#
LP.DV = 100000        	 1726#
LP.ERR= 100000        	 1695#
LP.GO = 000001        	 1697#	 1723	 6455
LP.GOE= 000001        	 1728#
LP.IE = 000100        	 1696#	 1723	 6420	 6456
LP.LOI= 000400        	 1696#	 6408	 6425	 6430	 6436	 6442
LP.LVL= 000004        	 1689#	 4603
LP.MDS= 000014        	 1721#	 6420
LP.MD0= 000004        	 1697#	 1718	 1719	 1720	 1721
LP.MD1= 000010        	 1697#	 1721
LP.MPE= 000020        	 1728#
LP.NRD= 020000        	 1726#
LP.OFL= 000200        	 1727#
LP.ONL= 004000        	 1695#	 6445
LP.OPT= 004000        	 1727#
LP.PAR= 010000        	 1726#
LP.PEN= 000002        	 1697#	 1723	 6420
LP.PER= 000040        	 1728#
LP.PGZ= 040000        	 1695#
LP.RDL= 002000        	 1761#
LP.RIN= 004000        	 1761#
LP.RP = 010000        	 1761#	 1762
LP.RPE= 000010        	 1728#
LP.RPI= 000400        	 1761#
LP.RSE= 001000        	 1696#	 6408	 6425	 6430	 6436	 6442
LP.RTR= 001000        	 1761#
LP.SYN= 000004        	 1728#
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 42-15
C11DMC.MAC    10-AUG-79 16:08		CROSS REFERENCE TABLE -- USER SYMBOLS

LP.TS0= 000400        	 1727#	 6424
LP.TS1= 001000        	 1727#	 6424
LP.TS2= 002000        	 1727#	 6424
LP.VEC= 000754        	 1690#	 4603
LP.VFE= 000100        	 1727#
LP.VFR= 010000        	 1695#
LP.XAD= 000060        	 1722#	 6420
LP.180= 040000        	 1726#
LP0STS= 175400        	 1692#	 4603
MDCSR   001174R       	 3704#	 6147
MDCSRP  001172R       	 3703#	 6145	 6148*	 6150*
MD.CLR= 040000        	 1076#	 6144	 6184	 6302
MD.CWR= 020000        	 1076#	 6336
MD.LLU= 004000        	 1076#
MD.RMI= 001000        	 1077#	 6174	 6178
MD.RMO= 002000        	 1077#	 6335	 6336	 6370
MD.RUN= 100000        	 1076#
MD.SLU= 010000        	 1076#
MD.SMP= 000400        	 1077#	 6176	 6180
MG.ANR= 100000        	 1596#	 4123
MG.APL= 040000        	 1596#
MG.ARO= 020000        	 1596#	 4123
MG.DAD= 000020        	 1598#
MG.EMT= 001000        	 1597#
MG.ENB= 000001        	 1598#	 4066
MG.IDN= 000200        	 1597#
MG.KDS= 000004        	 1623#
MG.MD0= 000040        	 1597#
MG.MD1= 000100        	 1597#
MG.MNT= 000400        	 1597#
MG.PG0= 000002        	 1598#
MG.PG1= 000004        	 1598#
MG.PG2= 000010        	 1598#
MG.SDS= 000002        	 1623#
MG.TMM= 010000        	 1596#
MG.UDS= 000001        	 1623#
MMGLVL= 000007        	  816#
MMGSR0= 177572        	 1595#	 4026	 4029	 4066	 4074*	 4123
MMGSR1= 177574        	 1618#
MMGSR2= 177576        	 1620#
MMGSR3= 172516        	 1622#
MMGVEC= 000250        	  816#	 4062
MPE11 = 001000        	 1386#
MP.ENB= 000001        	 1786#
MP.ERR= 100000        	 1783#
MP.LVL= 000007        	 1779#
MP.REG= 172100        	 1781#
MP.VEC= 000114        	 1778#
MP.WWP= 000004        	 1785#
M$$MGE= 000000        	  192#	 4031	 4058	 4183	 4289
NDH11 = 000000        	  199#	 5294
NLINES= 000060        	 3702#
NODAT   016302R       	 7207	 7225#
NODEV   000220R       	 3125	 3127	 3198#
NXMLVL= 000007        	  809#
NXMVEC= 000004        	  809#	 3765*	 3772*	 3777*	 4028*	 4206*	 4314*	 4477*	 4479*	 4723*	 4725*	 4751*	 5188*
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 42-16
C11DMC.MAC    10-AUG-79 16:08		CROSS REFERENCE TABLE -- USER SYMBOLS

			 5190*	 5231*
N.CD11  000552R       	 3645#	 4598
N.CI11  000564R       	 3647#	 3823
N.CO11  000573R       	 3648#	 3805
N.CR11  000557R       	 3646#	 4600
N.DH11  000603R       	 3649#
N.DJ11  000610R       	 3650#
N.DL.A  000622R       	 3652#
N.DL.E  000631R       	 3653#	 4644	 4645	 4646
N.DL01  000615R       	 3651#
N.DMC1  000650R       	 3655#	 4649	 6211
N.DM11  000640R       	 3654#
N.DN11  000656R       	 3656#
N.DP11  000663R       	 3657#
N.DQ11  000670R       	 3658#
N.DS11  000675R       	 3659#
N.DTE2  000702R       	 3660#	 4617
N.DUP1  000715R       	 3662#	 4643
N.DU11  000710R       	 3661#
N.DV11  000723R       	 3663#
N.DZ11  000730R       	 3664#	 4653
N.KG11  000735R       	 3665#	 4601
N.KMC1  000744R       	 3666#	 4642	 4652	 6200
N.KT11  000752R       	 3667#
N.KW.L  000757R       	 3668#	 4471
N.KW.P  000766R       	 3669#	 4615
N.LE11  001002R       	 3671#	 4602
N.LK11  000775R       	 3670#
N.LP11  001007R       	 3672#	 4603
N.MM11  001014R       	 3673#
N.NL11  001024R       	 3674#
N.PP11  001060R       	 3677#	 4604
N.PR11  001065R       	 3678#	 4605
N.P611  001040R       	 3675#
N.RC11  001072R       	 3679#	 4608
N.RF11  001077R       	 3680#	 4609
N.RH11  001111R       	 3682#	 4610
N.RK11  001104R       	 3681#	 4613
N.RP11  001116R       	 3683#	 4611
N.RX11  001125R       	 3684#	 4614
N.R611  001050R       	 3676#
N.TA11  001132R       	 3685#	 4612
N.TC11  001137R       	 3686#	 4606
N.TM11  001144R       	 3687#	 4607
PAGE0 = 000000        	 1645#	 4080	 4110
PAGE0B= 000000        	 1645#
PAGE1 = 020000        	 1645#
PAGE1B= 000200        	 1645#	 4070
PAGE2 = 040000        	 1645#
PAGE2B= 000400        	 1645#
PAGE3 = 060000        	 1645#
PAGE3B= 000600        	 1645#
PAGE4 = 100000        	 1645#
PAGE4B= 001000        	 1645#
PAGE5 = 120000        	 1645#	 4081	 4111	 4135	 4209	 4320
PAGE5B= 001200        	 1645#
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 42-17
C11DMC.MAC    10-AUG-79 16:08		CROSS REFERENCE TABLE -- USER SYMBOLS

PAGE6 = 140000        	 1645#
PAGE6B= 001400        	 1645#
PAGE7 = 160000        	 1645#
PAGE7B= 007600        	 1645#	 1646#	 4072	 4224
PARM    016356R       	 7193	 7264#
PASS  = 000002        	  301	  302#
PDP11 = 000042        	  181#	  582	  707	 3964	 4385
PDZ0  = 000001        	  867#
PDZ1  = 000002        	  867#
PDZ2  = 000004        	  867#
PD.A  = 000200        	 1635#
PD.ACF= 000007        	 1637#	 4158	 4160
PD.AC0= 000001        	 1635#	 1637	 4065	 4109	 4134	 4139	 4153	 4202
PD.AC1= 000002        	 1635#
PD.AC2= 000004        	 1635#	 1637
PD.ED = 000010        	 1635#
PD.PLF= 077400        	 1636#	 4065	 4134	 4153	 4202
PD.PL0= 000400        	 1634#	 1636	 4109
PD.PL1= 001000        	 1634#
PD.PL2= 002000        	 1634#
PD.PL3= 004000        	 1634#
PD.PL4= 010000        	 1634#
PD.PL5= 020000        	 1634#
PD.PL6= 040000        	 1634#	 1636
PD.W  = 000100        	 1635#
PGMLD0  016124R       	 7171#
PGMLD2  016154R       	 7174	 7180#
PHYLIM  001170R       	 3701#	 4230*	 4324
POSMSK= 000200        	  828#	  829#	  830#	  858#	  859#	  867#	  875#	  876#	 1076#	 1077#	 1411#	 1412#	 1413#
			 1435#	 1448#	 1460#	 1461#	 1481#	 1596#	 1597#	 1598#	 1623#	 1634#	 1635#	 1695#	 1696#
			 1697#	 1726#	 1727#	 1728#	 1761#
PP.DAT= 177556        	 1808#
PP.ERR= 100000        	 1804#
PP.INE= 000100        	 1806#
PP.LVL= 000004        	 1798#	 4604
PP.RDY= 000200        	 1805#
PP.STS= 177554        	 1802#	 4604
PP.VEC= 000074        	 1799#	 4604
PP0STS= 177554        	 1801#
PR.BSY= 004000        	 1814#
PR.DAT= 177552        	 1819#
PR.DNE= 000200        	 1815#
PR.ERR= 100000        	 1813#
PR.INE= 000100        	 1816#
PR.LVL= 000004        	 1796#	 4605
PR.STS= 177550        	 1811#	 4605
PR.VEC= 000070        	 1797#	 4605
PR..RE= 000001        	 1817#
PR0   = 000000        	  788#
PR0STS= 177550        	 1810#
PR1   = 000040        	  789#	  790	  791	  792	  793	  794	  795
PR2   = 000100        	  790#
PR3   = 000140        	  791#
PR4   = 000200        	  792#
PR5   = 000240        	  793#
PR6   = 000300        	  794#
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 42-18
C11DMC.MAC    10-AUG-79 16:08		CROSS REFERENCE TABLE -- USER SYMBOLS

PR7   = 000340        	  795#
PS    = 177776        	  745#	 3720*	 4483*	 4511*	 4829*	 4899*	 4994*	 5001*	 5046*	 5054*	 5088*	 5093*	 5125
			 5130	 5134	 5138	 5142	 5146	 5150	 5154	 6173*	 6407*
PWFLVL= 000007        	  813#
PWFVEC= 000024        	  813#
PZ00  = 000040        	  867#
PZ08  = 000010        	  867#
PZ09  = 000020        	  867#
PZ11  = 000100        	  867#
PZ12  = 000200        	  867#
P6.LVL= 000007        	 1790#
RAMDAT= 007777        	 1762#
RAMLOD= 000014        	 1720#
RCVDRV= ****** GX     	 7136
RC.LVL= 000000        	 4608
RF.LVL= 000000        	 4609
RG.MSC= 000012        	 1218#
RG.PRA= 000000        	 1208#
RG.PRC= 000001        	 1209#
RG.PTA= 000002        	 1210#
RG.PTC= 000003        	 1211#
RG.SRA= 000004        	 1212#
RG.SRC= 000005        	 1213#
RG.STA= 000006        	 1214#
RG.STC= 000007        	 1215#
RG.SYN= 000011        	 1217#
RH.LVL= 000000        	 4610
RK.LVL= 000000        	 4613
RM    = 000010        	 1393#	 6015
RP.LVL= 000000        	 4611
RX.LVL= 000000        	 4614
R6.LVL= 000007        	 1792#
SEL0  = 000000        	 1091#
SEL2  = 000002        	 1091#
SEL4  = 000004        	 1091#
SEL6  = 000006        	 1091#
SENDIT  016076R       	 7128#
SETREG  000224R       	 3143	 3210#
SETUNT  000072R       	 3122	 3135#
SLEW  = 000020        	 1763#
SNDDRV= ****** GX     	 6856	 7129	 7334
SNDER   016310R       	 7232#	 7245	 7251
SNDIT   016102R       	 7129#	 7237	 7239
SNDOS   016054R       	 7122#	 7178	 7258
SPCVFY= 000000        	  210#
SR0   = 177572        	 3105#	 3243*
START   000000R       	 3116#	 3628	 7357
STKLEN= 000200        	  297
ST2ENB= 100000        	  875#
SW    = 177570        	  756#
S..AMC= 000000        	  306#
S..BDT= 000011        	  317#
S..CHK= 000012        	  318#
S..CNK= 000003        	  310#
S..CTY= 000005        	  312#
S..DL1= 000002        	  308#	  309
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 42-19
C11DMC.MAC    10-AUG-79 16:08		CROSS REFERENCE TABLE -- USER SYMBOLS

S..DTE= 000002        	  309#
S..ILS= 000004        	  311#
S..KW1= 000007        	  314#
S..MEM= 000006        	  313#	 4366	 4377
S..MMG= 000014        	  320#
S..MPD= 000013        	  319#
S..NCN= 000010        	  315#
S..NXM= 000001        	  307#
TA.LVL= 000000        	 4612
TC.A16= 000020        	 1863#
TC.A17= 000040        	 1862#
TC.BAR= 177346        	 1875#
TC.CLK= 000100        	 1838#
TC.CMD= 177342        	 1846#
TC.DAT= 177350        	 1877#
TC.DT0= 000020        	 1840#
TC.DT1= 000010        	 1841#
TC.DT2= 000004        	 1842#
TC.D16= 000001        	 1844#
TC.D17= 000002        	 1843#
TC.ERR= 100000        	 1848#
TC.ILO= 010000        	 1832#
TC.INE= 000100        	 1861#
TC.LVL= 000006        	 1825#	 4606
TC.MMT= 000040        	 1839#
TC.MTE= 020000        	 1831#
TC.NXM= 000400        	 1836#
TC.PAR= 040000        	 1830#
TC.RDA= 000006        	 1867#
TC.RDY= 000200        	 1860#
TC.REV= 004000        	 1851#
TC.RMT= 000002        	 1865#
TC.SAT= 000000        	 1864#
TC.SST= 000010        	 1868#
TC.STS= 177340        	 1827#	 4606
TC.UPS= 000200        	 1837#
TC.US0= 000000        	 1852#
TC.US1= 000400        	 1853#
TC.US2= 001000        	 1854#
TC.US3= 001400        	 1855#
TC.US4= 002000        	 1856#
TC.US5= 002400        	 1857#
TC.US6= 003000        	 1858#
TC.US7= 003400        	 1859#
TC.VEC= 000214        	 1823#	 4606
TC.WCR= 177344        	 1873#
TC.WRA= 000016        	 1871#
TC.WTM= 000012        	 1869#
TC..BM= 002000        	 1834#
TC..DI= 010000        	 1850#
TC..DM= 001000        	 1835#
TC..EZ= 100000        	 1829#
TC..MM= 020000        	 1849#
TC..RD= 000004        	 1866#
TC..SE= 004000        	 1833#
TC..WR= 000014        	 1870#
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 42-20
C11DMC.MAC    10-AUG-79 16:08		CROSS REFERENCE TABLE -- USER SYMBOLS

TENAD1= 000010        	 1364#
TENAD2= 000012        	 1365#
TM.A16= 000020        	 1925#
TM.A17= 000040        	 1924#
TM.BAR= 172526        	 1938#
TM.BCR= 172524        	 1936#
TM.BGL= 004000        	 1891#
TM.BOT= 000040        	 1897#
TM.BTE= 000400        	 1894#
TM.CRE= 020000        	 1889#
TM.CUR= 000200        	 1922#
TM.DAT= 172530        	 1940#
TM.D72= 000000        	 1907#
TM.D75= 020000        	 1908#
TM.D78= 040000        	 1909#
TM.D98= 060000        	 1910#
TM.EOF= 040000        	 1888#
TM.EOT= 002000        	 1892#
TM.ERR= 100000        	 1906#
TM.INE= 000100        	 1923#
TM.LVL= 000005        	 1883#	 4607
TM.MTC= 172522        	 1904#
TM.NXM= 000200        	 1895#
TM.OFL= 000000        	 1926#
TM.PAE= 010000        	 1890#
TM.RDL= 172532        	 1942#
TM.REW= 000016        	 1933#
TM.RLE= 001000        	 1893#
TM.RWS= 000002        	 1901#
TM.SLR= 000100        	 1896#
TM.STS= 172520        	 1885#	 4607
TM.TSD= 000010        	 1899#
TM.TUR= 000001        	 1902#
TM.US0= 000000        	 1914#
TM.US1= 000400        	 1915#
TM.US2= 001000        	 1916#
TM.US3= 001400        	 1917#
TM.US4= 002000        	 1918#
TM.US5= 002400        	 1919#
TM.US6= 003000        	 1920#
TM.US7= 003400        	 1921#
TM.VEC= 000224        	 1881#	 4607
TM.WEF= 000006        	 1929#
TM.WEG= 000014        	 1932#
TM.WRL= 000004        	 1900#
TM..GO= 000001        	 1934#
TM..IC= 100000        	 1887#
TM..LP= 004000        	 1912#
TM..PC= 010000        	 1911#
TM..RD= 000002        	 1927#
TM..SF= 000010        	 1930#
TM..SR= 000012        	 1931#
TM..US= 003400        	 1913#
TM..WR= 000004        	 1928#
TM.7CH= 000020        	 1898#
TOP32 = ****** GX     	 7267
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 42-21
C11DMC.MAC    10-AUG-79 16:08		CROSS REFERENCE TABLE -- USER SYMBOLS

TO10AD= 000020        	 1371#
TO10BC= 000014        	 1366#
TO10BM= 000001        	 1400#
TO10DB= 000400        	 1387#
TO10DN= 100000        	 1379#
TO10DT= 000024        	 1373#
TO10ER= 020000        	 1381#
TO11AD= 000022        	 1372#
TO11BC= 000016        	 1367#
TO11BM= 020000        	 1369#
TO11CM= 007777        	 1370#
TO11DB= 004000        	 1383#	 1384
TO11DN= 000200        	 1388#
TO11DT= 000026        	 1374#
TO11ER= 000002        	 1395#	 1396
TO11IB= 100000        	 1368#
TRPLVL= 000007        	  815#
TRPVEC= 000034        	  815#	 3759*
TSTMOD= 000004        	 1718#
UDSAR0= 177660        	 1628#
UDSAR1= 177662        	 1628#
UDSAR2= 177664        	 1628#
UDSAR3= 177666        	 1628#
UDSAR4= 177670        	 1628#
UDSAR5= 177672        	 1628#
UDSAR6= 177674        	 1628#
UDSAR7= 177676        	 1628#
UDSDR0= 177620        	 1628#
UDSDR1= 177622        	 1628#
UDSDR2= 177624        	 1628#
UDSDR3= 177626        	 1628#
UDSDR4= 177630        	 1628#
UDSDR5= 177632        	 1628#
UDSDR6= 177634        	 1628#
UDSDR7= 177636        	 1628#
UISAR0= 177640        	 1628#
UISAR1= 177642        	 1628#
UISAR2= 177644        	 1628#
UISAR3= 177646        	 1628#
UISAR4= 177650        	 1628#
UISAR5= 177652        	 1628#
UISAR6= 177654        	 1628#
UISAR7= 177656        	 1628#
UISDR0= 177600        	 1628#
UISDR1= 177602        	 1628#
UISDR2= 177604        	 1628#
UISDR3= 177606        	 1628#
UISDR4= 177610        	 1628#
UISDR5= 177612        	 1628#
UISDR6= 177614        	 1628#
UISDR7= 177616        	 1628#
VCTLIM  000550R       	 3632#	 3756
VFULOD= 000010        	 1719#
VRS   = 000002        	  269#
XCD$$ = 010712R       	 4598#
XCD11   010712R       	 4598	 5187#
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 42-22
C11DMC.MAC    10-AUG-79 16:08		CROSS REFERENCE TABLE -- USER SYMBOLS

XCR$$ = 011226R       	 4600#
XCR11   011226R       	 4600	 5252#
XDL.E$= 011452R       	 4644#	 4645#	 4646#
XDL.E1  011452R       	 4644	 4645	 4646	 5513#
XDMC$$= 012276R       	 4649#
XDMC11  012276R       	 4649	 6140#
XDTE2$= 011500R       	 4617#
XDTE21  011500R       	 4617	 5990#
XDUP$$= 011752R       	 4643#
XDUP11  011752R       	 4643	 6044#
XDZ$$ = 012006R       	 4653#
XDZ11   012006R       	 4653	 6068#
XFER    016524R       	 7226	 7283	 7300#
XFERR   016342R       	 7250#	 7323
XKG$$ = 012030R       	 4601#
XKG11   012030R       	 4601	 6085#
XKMC$$= 012276R       	 4642#	 4652#
XKMC11  012276R       	 4642	 4652	 6141#
XKW.P$= 013666R       	 4615#
XKW.P1= ****** U      	 4615
XLE$$ = 013356R       	 4602#
XLE11   013356R       	 4602	 6390#
XLP$$ = 013424R       	 4603#
XLP11   013424R       	 4603	 6406#
XNL11   013664R       	 6476#
XPP$$ = 013666R       	 4604#
XPP11 = ****** U      	 4604
XPR$$ = 013666R       	 4605#
XPR11 = ****** U      	 4605
XRC$$ = 013666R       	 4608#
XRC11 = ****** U      	 4608
XRF$$ = 013666R       	 4609#
XRF11 = ****** U      	 4609
XRH$$ = 013666R       	 4610#
XRH11 = ****** U      	 4610
XRK$$ = 013666R       	 4613#
XRK11 = ****** U      	 4613
XRP$$ = 013666R       	 4611#
XRP11 = ****** U      	 4611
XRX$$ = 013666R       	 4614#
XRX11 = ****** U      	 4614
XTA$$ = 013666R       	 4612#
XTA11 = ****** U      	 4612
XTC$$ = 013666R       	 4606#
XTC11 = ****** U      	 4606
XTM$$ = 013666R       	 4607#
XTM11 = ****** U      	 4607
X.....  013666R       	 4604	 4605	 4606	 4607	 4608	 4609	 4610	 4611	 4612	 4613	 4614	 4615	 6613#
Z     = 000121        	 6088#	 6100#
ZTALL = 007777        	  877#
ZT00  = 001000        	  876#
ZT01  = 000400        	  876#
ZT02  = 000200        	  876#
ZT03  = 000100        	  876#
ZT04  = 000040        	  876#
ZT05  = 000020        	  876#
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 42-23
C11DMC.MAC    10-AUG-79 16:08		CROSS REFERENCE TABLE -- USER SYMBOLS

ZT06  = 000010        	  876#
ZT07  = 000004        	  876#
ZT08  = 000002        	  876#
ZT09  = 000001        	  876#
ZT11  = 002000        	  876#
ZT12  = 004000        	  876#
$DEVTP  016722RG      	 3119*	 7343	 7351#
$MMADR= 172400        	 1628#	 1630#
$UNIT   016724RG      	 3142*	 7342	 7352#
$$    = 000176        	 1628#	 1630#	 6045#	 6047
$$HERE= 000400        	 3628#	 3629
.     = 016730R       	 3117	 3125	 3194#	 3211	 3224	 3254	 3367#	 3688#	 3690#	 3693#	 3694#	 3696#	 3697#
			 3698#	 3699#	 3701#	 3761	 3814	 3832#	 3847#	 3852#	 3860	 3870#	 3901#	 3963#	 3968
			 4021	 4047	 4061#	 4170#	 4178	 4200#	 4233#	 4248#	 4261#	 4270#	 4275	 4311#	 4500#
			 4519#	 4522	 4594#	 4599	 4760#	 4876#	 4878#	 4880#	 4964#	 4969#	 5086#	 5128	 5165#
			 5166#	 5211#	 5224#	 5235#	 5261#	 5284#	 6019#	 6109#	 6216#	 6354#	 6449#	 6616#	 6653#
			 6867#	 6922#	 6941#	 6946#	 6961#	 6984	 6985#	 6987	 6988#	 6990	 6991#	 6993	 6996#
			 6998	 6999#	 7047#	 7048	 7052	 7351#	 7352#	 7353#	 7356
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  06-DEC-79  10:34  PAGE 43
C11DMC.MAC    10-AUG-79 16:08		CROSS REFERENCE TABLE -- MACRO NAMES

ABORT	 3420#	 4044
ASCIZ	  729#
CHKCHR	 3545#	 6086
CKSERR	 3414#	 4365	 4376	 5009	 5071	 5083	 6091	 6106	 6236	 6265	 6351
CKVECT	 3591#
CKVEC1	 3604#
CK11SC	 3391#	 3899	 4042	 4044	 4098	 4100	 4118	 4125	 4145	 4155	 4157	 4243	 4251	 4335	 4366
	 4377	 4490	 4494	 4498	 4758	 4786	 4910	 4920	 4927	 4962	 4967	 4972	 4977	 5004	 5010
	 5066	 5072	 5084	 5096	 5209	 5222	 5233	 5259	 5269	 5282	 6003	 6012	 6017	 6092	 6107
	 6203	 6214	 6237	 6266	 6352	 6393	 6447	 6875
COUNT	  341#
DEFVEC	  800#	  809	  810	  811	  812	  813	  814	  815	  816
DEVICE	 3471#	 4598	 4600	 4601	 4602	 4603	 4604	 4605	 4606	 4607	 4608	 4609	 4610	 4611	 4612
	 4613	 4614	 4615	 4617	 4642	 4643	 4644	 4645	 4646	 4649	 4652	 4653
DQREGS	 1226#
EXCH	  721#
FALLR	  364#	 3761	 3814	 3860	 3968	 4021	 4047	 4178	 4275	 4522
FIELD	  439#	  775	 1636	 1637	 6045
GREATR	  384#
KGLOAD	 1555#	 6088	 6100
LDVECT	 3614#
LESSER	  376#
MMNAM1	 1572#	 1628	 1630
MMNAM2	 1577#	 1628	 1630
NAMASC	  411#
NAMEBT	  389#	  828	  829	  830	  858	  859	  867	  875	  876	 1076	 1077	 1411	 1412	 1413	 1435
	 1448	 1460	 1461	 1481	 1596	 1597	 1598	 1623	 1634	 1635	 1695	 1696	 1697	 1726	 1727
	 1728	 1761
NAMSTR	 3638#	 3645	 3646	 3647	 3648	 3649	 3650	 3651	 3652	 3653	 3654	 3655	 3656	 3657	 3658
	 3659	 3660	 3661	 3662	 3663	 3664	 3665	 3666	 3667	 3668	 3669	 3670	 3671	 3672	 3673
	 3674	 3675	 3676	 3677	 3678	 3679	 3680	 3681	 3682	 3683	 3684	 3685	 3686	 3687
RESTOR	  358#	 6112	 6127	 6644	 6688	 6689	 6708	 6755	 6782
SAVE	  350#	 6085	 6117	 6636	 6676	 6685	 6686	 6701	 6740	 6769
SPL	  709#	 3720	 4511	 4829	 5001	 5054	 5093
STOPCD	  326#
$CKINT	 3441#	 6398	 6456
.DEC	  372#
.INC	  368#


. ABS.  000000     000	   CON   RW    ABS   LCL   I  
        016730     001	   CON   RO    ABS   GBL   D  


 ERRORS DETECTED:  0
 DEFAULT GLOBALS GENERATED:  6

 C11DMC,C11DMC/CRF=C11DMC
 RUN-TIME: 12 18 3 SECONDS
 RUN-TIME RATIO: 131/34=3.8
 CORE USED:  17K  (33 PAGES)