Google
 

Trailing-Edge - PDP-10 Archives - BB-P363B-SM_1985 - mcb/loaders/terdmc.lst
There are no other files named terdmc.lst in the archive.
CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST	DNMAC X24.07-563  04-JAN-83  16:24
C11DMC.MAC    04-JAN-83 11:18		TABLE OF CONTENTS

   197	 CHKDEF - DEFINE THE HARDWARE THAT CHK11 WILL TEST
   250	 END OF MODULE CHKDEF
   251
   259	 S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77
   323		STOPCD'S
   357		GENERAL MACRO DEFINITIONS
   597		PDP-11 EIS EMULATORS
   753		SYMBOL DEFINITIONS
   816		HARDWARE DEFINITIONS
   817			VECTORS
   837			DEVICES
   838			CD20 - PUNCHED CARD READER
   908			CR11 - PUNCHED/MARK SENSE CARD READER
   931			CTY - CONSOLE TELETYPE
   950			DH11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER
   991			DJ11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER
   993			DL10 - UNIBUS-TO-MBUS INTERFACE
  1021			DL11 - ASYNCHRONOUS SERIAL LINE INTERFACE
  1074			DM11BB - MODEM CONTROLLER FOR DH11
  1091			DMC11/KMC11 - MICROPROCESSOR BASED COMM CONTROLLER
  1115			DN11 - AUTODIALER
  1133			DP11 - SYNCHRONOUS LINE INTERFACE
  1165			DQ11 - DMA SYNCHRONOUS LINE INTERFACE
  1286			DS11 - SYNCHRONOUS LINE INTERFACE
  1374			DTE20 - DECSYSTEM 20(10)/PDP-11 INTERPROCESSOR INTERFACE
  1421			DU11 - SYNCHRONOUS LINE CONTROLLER
  1423			DUP11 - SYNCHRONOUS LINE INTERFACE WITH CRC
  1513			DZ11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER
  1530			EIA PIN DEFINITIONS
  1558			KG11 - COMMUNICATIONS ARITHMETIC PROCESSOR
  1589			KT11 - MEMORY MANAGEMENT MODULE
  1667			KW11 - LINE TIME CLOCK
  1684			LP11 - LINE PRINTER CONTROLLER
  1704			LP20 - LINEPRINTER CONTROLLER
  1795			MM11-LP PARITY MEMORY
  1807			PA611 - TYPESET READER/PUNCH
  1813			PC11 - PAPER TAPE READER/PUNCH INTERFACE
  1840			TC11 - DECTAPE CONTROLLER
  1898			TM11 - MAGNETIC TAPE CONTROLLER
  1963		END OF DEVICE DEFINITIONS
  3016	 MODULE END
  3017
  3319	 CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC
  3389		CHK11 MACROS
  3390			CK11SC
  3444			$CKINT
  3476			DEVICE
  3554			CHKCHR
  3570			CKVECT, CKVEC1
  3655		CHK11 DEVICE NAME TABLE
  3737	 **** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****
  4071			CHECK KT11 HARDWARE
  4299			CHECK MEMORY - SLIDING BIT PATTERN
  4485			CHECK KW11-L HDW
  4542			CHECK DL10 HDW
  4578			DEVICE SCAN AND CHECK
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24
C11DMC.MAC    04-JAN-83 11:18		TABLE OF CONTENTS

  4677			CHK11 COMPLETION
  4693		END OF CHK11 MAINLINE
  4695		GENERAL SUBROUTINES
  4698			LOOK FOR AND CHECK SYSTEM DEVICES
  4904			BIT BY BIT SET/CLEAR TEST
  4954			BIT SET/BIT CLEAR TEST FOR DL10
  4976			PRINT DEVICE ID ROUTINE
  5001			ROUTINE TO FIND DEVICE INTERRUPT LEVEL
  5042			CHECK INTERRUPTS AND FIND DEVICE LEVEL
  5134			GENERAL INTERRUPT FIELDER FOR CHK11
  5186		DEVICE DIAGNOSTICS
  5201			CHECK CD20 HARDWARE
  5261			CHECK CR11 HARDWARE
  5311			CHECK DH11 HDW
  5514			CHECK DL11-A HDW
  5522			CHECK DL11-E HDW
  5543			CHECK DM11BB HDW
  5591			CHECK DN11 HDW
  5606			CHECK DP11 HDW
  5630			CHECK DQ11 HDW
  5947			CHECK DS11 HDW
  5999			CHECK DTE20 HARDWARE
  6042			CHECK DU11 HDW
  6054			CHECK DUP11 HDW
  6078			CHECK DZ11 HDW
  6101			CHECK KG11 HARDWARE
  6148			CHECK KMC/DMC HARDWARE
  6399			CHECK LP11 HARDWARE
  6420			CHECK LP20 HARDWARE
  6478			CHECK MD11 HDW
  6490			DUMMY NULL DEVICE CHECKER
  6496			CHECK PA611P HARDWARE
  6509			CHECK PA611R HARDWARE
  6522			CHECK PP11 HARDWARE
  6538			CHECK PR11 HARDWARE
  6567			CHECK RH11 HARDWARE
  6581			CHECK TC11 HARDWARE
  6614			CHECK TM11 HARDWARE
  6627			NULL DIAGNOSTIC
  6642		TTY SUPPORT FOR TYPE OUTS
  6820		REMOTE OUTPUT HANDLER
  6893		UNEXPECTED BUS TRAP HANDLER
  6909		CK11SC/TRAP INSTRUCTION HANDLER
  7070	 MODULE END
  7071	 PROGRAM END
  7433		DMC BOOT DRIVER
CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1
C11DMC.MAC    04-JAN-83 11:18

     1						.TITLE	CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST
     2						.IDENT	/X3.05/
     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) 1980,1981,1982 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  04-JAN-83  16:24  PAGE 1-1
C11DMC.MAC    04-JAN-83 11:18

    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) 1979,1980,1981,1982 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  04-JAN-83  16:24  PAGE 1-2
C11DMC.MAC    04-JAN-83 11:18

    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  04-JAN-83  16:24  PAGE 1-3
C11DMC.MAC    04-JAN-83 11:18

   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					;	X3.01	18-JUN-81  R. PLATUKIS
   176					;		CHANGE MEMORY TEST TO DO ONLY TRY 2 BITS
   177					;		PREVENT LOGGING ACROSS DMC LINE
   178					;
   179					;	X3.02	12-AUG-81  R. PLATUKIS
   180					;		MODIFY ROUTINE PARM IN TERBOT TO STORE HOST ID NUMBER
   181					;		IN THE PARAMETER AREA IN TOP32.
   182					;
   183					;	X3.03	29-DEC-81  L. WEBBER
   184					;		PUT DMC LOGGING CODE BACK IN (BUT LEAVE ROOM FOR IT
   185					;		TO BE PATCHED OUT)
   186					;
   187					;	X3.04	1-JUN-82  A. PECKHAM
   188					;		ADD ^T CODE TO ALLOW PROGRESS UPDATE OF LOADER.
   189					;
   190					;	X3.05	5-JUN-82  A. PECKHAM
   191					;		ENABLE TRANSMIT/RECEIVE TIMERS
   192					;
   193					;
   194					;
   195					;**********************************************************************;
CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-4
C11DMC.MAC    04-JAN-83 11:18		CHKDEF - DEFINE THE HARDWARE THAT CHK11 WILL TEST

   197						.SBTTL CHKDEF - DEFINE THE HARDWARE THAT CHK11 WILL TEST
   198									;
   199									;
   200		000042				PDP11 = 34.		; EXPECTED CPU IS 11/34
   201									;
   202					;;;;	CKSTD = 0		; SYSTEM CONFIGURATION IS PDP-11 STANDARD
   203		000043				CKDN2X = 1!2!40		; SYSTEM CONIGURATION IS DN20, DN21, OR DN25
   204									;  (SPECIFIED BY BIT NUMBERS SET IN CKDN2X DEF -
   205									;    B0 SAYS DN20, B1 SAYS DN21, B5 SAYS DN25)
   206		177777				INCLUD	= -1		;
   207		000000				EXCLUD	= 0		;
   208									;
   209					;	CKNODV	= 0		; IF DEFINED, LIST NONEXISTENT DEVICES
   210									;
   211		000000				M$$MGE	= 0		; IF DEFINED, ASSEMBLE FOR MAPPED SYSTEM
   212									;
   213									;
   214									;
   215		177777				FTCD20	= INCLUD
   216		177777				FTCR11	= INCLUD
   217		000000				FTDH11	= EXCLUD
   218		000000					NDH11	= 1&FTDH11	;NUMBER OF DH11'S
   219		000000				FTDJ11	= EXCLUD
   220		000000				FTDL10	= EXCLUD
   221		000000				FTDL1A	= EXCLUD
   222		177777				FTDL1E	= INCLUD
   223		000000				FTDM11	= INCLUD&FTDH11	;DM11BB DEPENDS ON EXISTENCE OF DH11
   224		000120					DM.TIM	= 80.	; DM11BB SETTLE TIME IN MEM CYCLES
   225		177777				FTDMC	= INCLUD
   226		000000				FTDN11	= EXCLUD
   227		000000				FTDP11	= EXCLUD
   228		000000				FTDQ11	= EXCLUD
   229		000000					SPCVFY	= EXCLUD&FTDQ11 ;DQ11 SPECIAL CHARACTER TEST
   230		000000				FTDS11	= EXCLUD
   231		177777				FTDTE	= INCLUD
   232		000000				FTDU11	= EXCLUD
   233		177777				FTDUP1	= INCLUD
   234		177777				FTDZ11	= INCLUD
   235		000000				FTKG11	= EXCLUD
   236		177777				FTKMC	= INCLUD&FTDMC	;KMC IS SUPERSET OF DMC
   237		000000					FTKMCL	= EXCLUD&FTKMC	;INCLUDE ONLY IF CRAM IMAGE IS SUPPLIED
   238		177777				FTLE11	= INCLUD
   239		177777				FTLP20	= INCLUD
   240		000000				FTMD11	= EXCLUD
   241		000000				FTPA61	= EXCLUD
   242		000000				FTPP11	= EXCLUD
   243		000000				FTPR11	= EXCLUD
   244		000000				FTRH11	= EXCLUD
   245		000000				FTRK11	= EXCLUD
   246		000000				FTRX11	= EXCLUD
   247		000000				FTTC11	= EXCLUD
   248		000000				FTTM11	= EXCLUD
CHKDEF - SPECIFY THE HARDWARE THAT CHK11 WILL TEST	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-5
C11DMC.MAC    04-JAN-83 11:18		END OF MODULE CHKDEF

   250						.SBTTL END OF MODULE CHKDEF
   251						.SBTTL
   252					;****************************************************************
   253					;
   254					;	END OF CHKDEF
   255					;
   256					;****************************************************************
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-6
C11DMC.MAC    04-JAN-83 11:18

   258						.TITLE S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77
   259						.SBTTL S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77
   260					;
   261					;
   262					;
   263					;
   264					;
   265					;
   266					;
   267					;
   268					;
   269					;
   270					;
   271					;
   272					;	COPYRIGHT 1974, 1975, 1976,1977
   273					;	DIGITAL EQUIPMENT CORP., MAYNARD MASS.
   274					;
   275					;	SEPT 25,1974 - DMCC/EGF/LAD/EJW/TEP
   276					;
   277					;
   278					;
   279					;
   280					;
   281					;
   282					;
   283					;
   284					;
   285					;
   286					;
   287					;
   288		000002				VRS	= 02		;FILE EDIT NUMBER
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-7
C11DMC.MAC    04-JAN-83 11:18		S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77

   290						.ENABL	LC		;LOWER CASE IS LOWER CASE
   291						.ENABL	AMA		;USE ABSOLUTE RATHER THAN RELATIVE PC ADDRESSING
   292					;;;;	.DSABL	GBL		;DISABLE GLOBAL REFERENCES
   293					;;;;	.LIST	MC,MD,ME	;
   294					;;;;	.NLIST	CND		;
   295					;;;;	.LIST	MEB		;LIST ONLY CODE PRODUCING PARTS OF MACROS
   296									;
   297					;	DGUTS NON ZERO REQUESTS THE "DON'T GIVE UP THE SHIP" FAILSOFT FEATURE
   298					;
   299					.IIF NDF DGUTS,DGUTS=0
   300					;
   301		   001			.IF NE DGUTS
   302							;IF WE'RE NOT TO GIVE UP THE SHIP, TURN OFF DEBUGGING TRAPS
   303							;THEN WE'LL DIE ONLY ON HARD ERRORS.
   304						DEBUG=0
   305						FTASRT=0
   306						FT.CHK=0
   307		   000			.ENDC
   308					;
   309					.IIF NDF FT.HLP,FT.HLP=	1	;1 = TYPE OUT STOPCD INFORMATION
   310					;
   311					.IIF NDF DEBUG,DEBUG=1		;LEVEL OF DEBUG CODE INCLUDED
   312									; 0 = NONE = KEEP AS SMALL AS POSSIBLE
   313									; 1 = SOME - KEEP TRACKS, DIE ON SOME ERRORS
   314									; -1 = DIE ON ALL ERRORS
   315					;
   316					.IIF NDF STKLEN,STKLEN=	200	;LENGTH OF SYSTEM STACK
   317					;
   318					.IIF NDF FT.CHK,FT.CHK=	1	;1 EQUALS CHECK STUFF ON FLY
   319					;
   320					.IIF NDF PASS,PASS=0	;COUNT ASSEMBLER PASSES
   321		000002				PASS=PASS+1
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-8
C11DMC.MAC    04-JAN-83 11:18		STOPCD'S

   323					.SBTTL	STOPCD'S
   324							;
   325		000000			S..AMC	= 0	;ASSERT MACRO CALL - DEFAULT CODE
   326		000001			S..NXM	= 1	;BUS TRAPS'S, ADDRESS ERROR'S, ETC.
   327		000002			S..DL1	= 2	;DL10 ERRORS
   328		000002			S..DTE	= S..DL1 ;DTE20 ERRORS (NOTE - SAME AS DL10)
   329		000003			S..CNK	= 3	;CHUNKS ARE MESSED UP
   330		000004			S..ILS	= 4	;ILLEGAL INSTRUCTION
   331		000005			S..CTY	= 5	;NO CTY
   332		000006			S..MEM	= 6	;MEMORY ERROR (E.G. PARITY, OR CAN'T READ WRITE BITS)
   333		000007			S..KW11	= 7	;KW11 ERROR
   334		000010			S..NCN	= 10	;NO CONNECTION FOR RECEIVED DATA
   335							; OR CONNECTION NUMBER USED BY SOME OTHER NODE
   336		000011			S..BDT	= 11	;BAD DATA TYPE REQUESTED BY 10
   337		000012			S..CHK	= 12	;CHECK 11 ERROR
   338		000013			S..MPD	= 13	;MAPPED ASSEMBLY RUNNING IN UNMAPPED HARDWARE
   339		000014			S..MMG	= 14	;MEMORY MANAGEMENT ERROR
   340							;
   341					;STOP CODE MACRO
   342					;	FIRST ARGUMENT IS CODE FOR STOP
   343					;	SECOND ARGUMENT IS SEVERITY
   344					;
   345					.MACRO	STOPCD	CD,TYPE
   346						    .IF NB <CD>
   347						S.....=S..'CD
   348						    .IFF ;NB <CD>
   349						S.....=0
   350						    .ENDC ;NB <CD>
   351						Z=1
   352					.IIF IDN <.'TYPE>,<.DEBUG>,	Z=DEBUG
   353					.IIF NE Z,	TRAP S.....
   354						S.....=0
   355					.ENDM	STOPCD
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-9
C11DMC.MAC    04-JAN-83 11:18		GENERAL MACRO DEFINITIONS

   357					.SBTTL	GENERAL MACRO DEFINITIONS
   358					;
   359					;
   360					.MACRO COUNT A,?X
   361						INC	A+2
   362						BNE	X
   363						INC	A
   364					X:
   365					.ENDM	COUNT
   366					;
   367					; REGISTER SAVE MACRO
   368					;
   369					.MACRO	SAVE	A
   370						.IRP	X,<A>
   371						MOV	X,-(SP)		;PUSH X ON THE STACK
   372						.ENDR ;IRP X
   373					.ENDM	SAVE
   374					;
   375					; REGISTER RESTORE MACRO
   376					;
   377					.MACRO	RESTORE	A
   378						.IRP	X,<A>
   379						MOV	(SP)+,X		;POP X OFF THE STACK
   380						.ENDR ;IRP X
   381					.ENDM	RESTORE
   382					;
   383					.MACRO	FALLR	DEST
   384					.IIF NE DEST-.	.ERROR	DEST-.	;**** ERRONEOUS CODE FALL THROUGH ATTEMPTED ****
   385					.ENDM	FALLR
   386					;
   387					.MACRO	.INC	ARG
   388						ARG	= ARG + 1
   389					.ENDM	.INC
   390					;
   391					.MACRO	.DEC	ARG
   392						ARG	= ARG - 1
   393					.ENDM	.DEC
   394					;
   395					.MACRO	LESSER	A,B,C	;DEFINE A AS THE LESSER OF B AND C
   396						    .IF GT B-C
   397						A	= C
   398						    .IFF
   399						A	= B
   400						    .ENDC
   401					.ENDM	LESSER
   402					;
   403					.MACRO	GREATR	A,B,C	;DEFINE A AS THE GREATER OF B AND C
   404						LESSER	A,C,B
   405					.ENDM	GREATR
   406					;
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-10
C11DMC.MAC    04-JAN-83 11:18		GENERAL MACRO DEFINITIONS

   408					.MACRO	NAMEBT	REG,IPOSMS,LIST
   409						    .IF NB IPOSMS
   410						POSMSK = IPOSMS
   411						    .ENDC
   412						    .IF  DF POSMSK
   413						    .IF EQ POSMSK
   414						POSMSK = 100000
   415						    .ENDC
   416						    .IFF
   417						POSMSK = 100000
   418						    .ENDC
   419						.IRP	NAME,<LIST>
   420						    .IF EQ POSMSK
   421						.ERROR	NAME	;**** POSITION MASK UNDERFLOW ****
   422						    .ENDC
   423						    .IF NB NAME
   424						NAME = POSMSK
   425						    .ENDC
   426						POSMSK = <POSMSK/2>&77777
   427						.ENDR ;IRP NAME
   428					.ENDM	NAMEBT
   429					;
   430					.MACRO	NAMASC
   431						$$ = 0
   432						.IRP	X,<NUL,SOH,STX,ETX,EOT,ENQ,ACK,BEL>
   433						X = $$
   434						.INC	$$
   435						.ENDR	;IRP X
   436						;
   437						.IRP	X,<BS,HT,LF,VT,FF,CR,SO,SI>
   438						X = $$
   439						.INC	$$
   440						.ENDR	;IRP X
   441						;
   442						.IRP	X,<DLE,DC1,DC2,DC3,DC4,NAK,SYN,ETB>
   443						X = $$
   444						.INC	$$
   445						.ENDR	;IRP X
   446						;
   447						.IRP	X,<CAN,EM,SUB,ESC,FS,GS,RS,US>
   448						X = $$
   449						.INC	$$
   450						.ENDR	;IRP X
   451						;
   452						DEL = 177
   453						;
   454						ERRCHR = '\!200		;DEC STD ERROR CHARACTER
   455						;
   456					.ENDM	NAMASC
   457					;
   458					.MACRO	FIELD	NAME,HI,LO
   459						NAME	= <HI-1+HI>&^C<LO-1>
   460					.ENDM	FIELD
   461					;
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-11
C11DMC.MAC    04-JAN-83 11:18		GENERAL MACRO DEFINITIONS

   463					; HIDDEN HERE IN THE SOURCE CODE ARE A WHOLE BUNCH OF DEBUGGING
   464					;    AND OTHER SPECIAL MACROS WHICH ARE SUPRESSED IN THE ASSEMBLY IN
   465					;    THE INTEREST OF SQUATTER LISTINGS (AND FASTER ASSEMBLING)
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-12
C11DMC.MAC    04-JAN-83 11:18		PDP-11 EIS EMULATORS

   597					.SBTTL	PDP-11 EIS EMULATORS
   598					;
   599					;MACROS TO SIMULATE INSTRUCTIONS FOR SIMPLE PDP11'S
   600					;
   601		   001			.IF LT <PDP11-30.>
   602					;
   603					;MACRO TO SIMULATE SOB ON SIMPLE PDP11'S
   604					;
   605					.MACRO	SOB	CNT,WHERE
   606					.IIF GT WHERE-., .ERROR	0; SOB FORWARD BRANCH ????
   607					.IIF NE <.-WHERE>&^C176, .ERROR	WHERE; SOB BRANCH RANGE ????
   608		   002				    .IF NE WHERE-.
   609						DEC	CNT
   610						BNE	WHERE
   611						    .IFF
   612						BRLOC=.
   613						DEC	CNT
   614						BNE	BRLOC
   615		   001				    .ENDC ;NE WHERE-.
   616					.ENDM	SOB
   617					;
   618					;MACRO TO DO AN XOR FOR SIMPLE PDP11'S
   619					;
   620					; ARGUMENTS:	A-- IS ALWAYS A REGISTER, B-- REFLECTS
   621					;		THE DESTINATION OPERAND, C-- IS USUALLY ON THE STACK
   622					;
   623					.MACRO	XOR2	A02,B02,B12,B22,C02,C12,C22
   624						MOV	A02,C02
   625						BIC	B02,C12
   626						BIC	A02,B12
   627						BIS	C22,B22
   628					.ENDM	XOR2
   629					;
   630					.MACRO	XOR1	A01,B01,B11,B21
   631						XOR2	A01,B01,B11,B21,-(SP),(SP),(SP)+
   632					.ENDM	XOR1
   633					;
   634					.MACRO	XORERR	AV,BV,DB
   635		   002				    .IF B DB
   636					.ERROR	74000; XOR SOURCE ('AV') NOT A REGISTER ???
   637						    .IFF
   638					.ERROR	<74000+<AV*100>+BV>; XOR WITH DEST DB IS NOT SUPPORTED ????
   639		   001				    .ENDC
   640						HALT
   641					.ENDM	XORERR
   642					;
   643					.MACRO	XMODE	Y,S,D
   644						XMOD'Y	\QD,S,D
   645					.ENDM	XMODE
   646					;
   647					.MACRO	XMOD0	X,S,D
   648						XOR1	S,D,D,D
   649					.ENDM	XMOD0
   650					;
   651					.MACRO	XMOD10	X,S,D
   652						XOR1	S,D,D,D
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-13
C11DMC.MAC    04-JAN-83 11:18		PDP-11 EIS EMULATORS

   653					.ENDM	XMOD10
   654					;
   655					.MACRO	XMOD20	X,S,D
   656						XOR1	S,(R'X),(R'X),(R'X)+
   657					.ENDM	XMOD20
   658					;
   659					.MACRO	XMOD30	X,S,D
   660						XOR1	S,@(R'X),@(R'X),@(R'X)+
   661					.ENDM	XMOD30
   662					;
   663					.MACRO	XMOD40	X,S,D
   664						XOR1	S,-(R'X),(R'X),(R'X)
   665					.ENDM	XMOD40
   666					;
   667					.MACRO	XMOD50	X,S,D
   668						XOR1	S,@-(R'X),@(R'X),@(R'X)
   669					.ENDM	XMOD50
   670					;
   671					.MACRO	XMOD60	X,S,D
   672						XOR1	S,D,D,D
   673					.ENDM	XMOD60
   674					;
   675					.MACRO	XMOD70	X,S,D
   676						XOR1	S,D,D,D
   677					.ENDM	XMOD70
   678					;
   679					.MACRO	XOR	A,B
   680						.NTYPE	QA,A	;QA IS 6-BIT SOURCE SPEC
   681						.NTYPE	QB,B	;QB IS 6-BIT DEST SPEC
   682						QC=QB&70	;QC IS DEST ADDRESS MODE
   683						QD=QB&7		;QD IS DEST ADDRESS REGISTER
   684		   002				    .IF NE QA&^C7 ;QA MUST BE REGISTER DIRECT
   685						XORERR	\QA
   686						    .IFF
   687								;QA IS REGISTER DIRECT, DECODE DEST SPEC
   688		   003				    .IF LE <QD-5> ;DEST USES USER GPR (0-5)
   689						XMODE	\QC,A,B	;CALL MODE SELECTOR MACRO BASED ON QC
   690						    .IFF
   691								;DEST USES SP OR PC
   692						.IIF EQ <QC-0>	;MODE IS REGISTER DIRECT (ERROR)
   693						.IIF EQ <QB-06>,	XORERR	\QA,\QB,B
   694						.IIF EQ <QB-07>,	XORERR	\QA,\QB,B
   695						.IIF EQ <QC-1>	;MODE IS REGISTER DEFERRED
   696						.IIF EQ <QB-16>,	XOR1	A,2(SP),2(SP),(SP)
   697						.IIF EQ <QB-17>,	XORERR	\QA,\QB,B
   698						.IIF EQ <QC-2>	;MODE IS POP (PC IMMEDIATE)
   699						.IIF EQ <QB-26>,	XORERR	\QA,\QB,B
   700		   004				    .IF EQ <QB-27>
   701						MOV	B,.+22
   702						XOR1	A,.+12,.+6,(PC)+
   703						.WORD	0	;UNLABELED LITERAL
   704		   003				    .ENDC
   705						.IIF EQ <QC-3>	;MODE IS DEFER AND POP (PC ABSOLUTE)
   706						.IIF EQ <QB-36>,	XOR1	A,@2(SP),@2(SP),@(SP)+
   707						.IIF EQ <QB-37>,	XOR1	A,B,B,B
   708						.IIF EQ <QC-4>	;MODE IS PUSH
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-14
C11DMC.MAC    04-JAN-83 11:18		PDP-11 EIS EMULATORS

   709						.IIF EQ <QB-46>,	XORERR	\QA,\QB,B
   710						.IIF EQ <QB-47>,	XORERR	\QA,\QB,B
   711						.IIF EQ <QC-5>	;MODE IS PUSH AND DEFER
   712						.IIF EQ <QB-56>,	XORERR	\QA,\QB,B
   713						.IIF EQ <QB-57>,	XORERR	\QA,\QB,B
   714						.IIF EQ <QC-6>	;MODE IS INDEXED
   715						.IIF EQ <QB-66>,	XOR1	A,2+B,2+B,B
   716						.IIF EQ <QB-67>,	XOR1	A,B,B,B
   717						.IIF EQ <QC-7>	;MODE IS DEFERRED INDEXED
   718						.IIF EQ <QB-76>,	XORERR	\QA,\QB,B
   719						.IIF EQ <QB-77>,	XOR1	A,B,B,B
   720		   002				    .ENDC ;USER GPR VS. SP/PC
   721		   001				    .ENDC ;QA IS REGISTER DIRECT
   722					.ENDM	XOR
   723					;
   724		   000			.ENDC;.IF LT <PDP11-30.>
   725					;
   726		   001			.IF LT <PDP11-45.>
   727						;MACRO TO SET PROCESSOR LEVEL
   728					.MACRO	SPL	Q
   729						    .IF	NE Q
   730						BIS	#BR7,PS			;SET PROCESSOR STATUS TO LEVEL 7
   731						    .ENDC
   732						    .IF NE <Q-7>
   733						BIC	#40*<7&<^C<Q>>>,PS	;NOW DROP TO LEVEL Q
   734						    .ENDC
   735					.ENDM	SPL
   736		   000			.ENDC;.IF LT <PDP11-45.>
   737					;
   738					;MACRO TO SIMULATE EXCH INSTRUCTION
   739					;
   740					.MACRO	EXCH	A,B
   741						MOV	A,-(P)		;SAVE C(A) ON THE STACK
   742						MOV	B,A		;PUT C(B) INTO A
   743						MOV	(P)+,B		;PUT ORIGINAL C(A) INTO B
   744					.ENDM	EXCH
   745					;
   746					;MACRO TO GENERATE AN .ASCIZ STRING TERMINATED WITH .EVEN
   747					;
   748					.MACRO	ASCIZ	STRING
   749						.ASCIZ	\STRING\
   750						.EVEN
   751					.ENDM	ASCIZ
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-15
C11DMC.MAC    04-JAN-83 11:18		SYMBOL DEFINITIONS

   753					.SBTTL	SYMBOL DEFINITIONS
   754					;
   755		000000			R0	= %0
   756		000001			R1	= %1
   757		000002			R2	= %2
   758		000003			R3	= %3
   759		000004			R4	= %4
   760		000005			R5	= %5
   761		000006			SP	= %6		;STACK POINTER
   762		000007			PC	= %7
   763					;
   764		177776			PS	= 177776	;PROCESSOR STATUS WORD
   765						;	000001	;C (CARRY)
   766						;	000002	;V (OVERFLOW)
   767						;	000004	;Z (ZERO)
   768						;	000010	;N (NEGATIVE)
   769						;	000020	;T (TRAP)
   770						;	000340	;PRIORITY LEVEL (0-7)
   771						;	004000	;REGISTER SET
   772						;	030000	;PREVIOUS MODE
   773						;	140000	;CURRENT MODE
   774						;		;MODE: 00=KERNEL, 01=SUPERVISOR, 11=USER
   775		177570			SW=177570	;ADDRESS OF SWTCHES
   776					;
   777		000001			B0	= 1
   778		000002			B1	= 2
   779		000004			B2	= 4
   780		000010			B3	= 10
   781		000020			B4	= 20
   782		000040			B5	= 40
   783		000100			B6	= 100
   784		000200			B7	= 200
   785		000400			B8	= 400
   786		001000			B9	= 1000
   787		002000			B10	= 2000
   788		004000			B11	= 4000
   789		010000			B12	= 10000
   790		020000			B13	= 20000
   791		040000			B14	= 40000
   792		100000			B15	= 100000
   793					;
   794	000000'				FIELD	ALLBTS,B15,B0
   795					;
   796					;DEFINE PROCESSOR LEVELS
   797					;
   798		000000			BR0	= 0*40
   799		000040			BR1	= 1*40
   800		000100			BR2	= 2*40
   801		000140			BR3	= 3*40
   802		000200			BR4	= 4*40
   803		000240			BR5	= 5*40
   804		000300			BR6	= 6*40
   805		000340			BR7	= 7*40
   806					;
   807		000000			PR0	= 0
   808		000040			PR1	= 40
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-16
C11DMC.MAC    04-JAN-83 11:18		SYMBOL DEFINITIONS

   809		000100			PR2	= 2*PR1
   810		000140			PR3	= 3*PR1
   811		000200			PR4	= 4*PR1
   812		000240			PR5	= 5*PR1
   813		000300			PR6	= 6*PR1
   814		000340			PR7	= 7*PR1
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-17
C11DMC.MAC    04-JAN-83 11:18		HARDWARE DEFINITIONS

   816					.SBTTL	HARDWARE DEFINITIONS
   817					.SBTTL		VECTORS
   818					;
   819					.MACRO	DEFVEC	TYP,VQ,LQ
   820						TYP'VEC=	VQ		;VECTOR FOR TYP IS VQ
   821						    .IF B LQ
   822						TYP'LVL=	7		;DEFAULT LEVEL IS LEVEL 7
   823						    .IFF
   824						TYP'LVL=	LQ		;LEVEL OF TYP IS LQ
   825						    .ENDC ;B LQ
   826					.ENDM	DEFVEC
   827					;
   828	000000'					DEFVEC	NXM,04	;BUS-TIMEOUT INTERRUPT
   829	000000'					DEFVEC	ILS,10	;ILLEGAL INSTRUCTION INTERRUPT
   830	000000'					DEFVEC	BPT,14	;BREAKPOINT TRAP
   831	000000'					DEFVEC	IOT,20	;I/O TRAP INSTRUCTION
   832	000000'					DEFVEC	PWF,24	;POWER FAIL INT'S
   833	000000'					DEFVEC	EMT,30	;EMT CALL'S
   834	000000'					DEFVEC	TRP,34	;TRAP INSTRUCTION
   835	000000'					DEFVEC	MMG,250	;MEMORY MANAGEMENT FAULT
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-18
C11DMC.MAC    04-JAN-83 11:18			DEVICES

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

   893									;  MULTIPLEXED USE OF DATA BUFFER REGISTER
   894	000000'					NAMEBT	CDST2,0,<ST2ENB,CD.RCK,CD.PCK,CD.SCK>
   895	000000'					NAMEBT	,,<ZT12,ZT11,ZT00,ZT01,ZT02,ZT03,ZT04,ZT05,ZT06,ZT07,ZT08,ZT09>
   896		007777					ZTALL	= 7777
   897		000000						.REPT	0
   898							ST2ENB	= CDST2 ENABLE
   899							RCHK	= READ CHECK (CARD ERROR)
   900							PCHK	= PICK CHECK (FEED ERROR)
   901							SCHK	= STACK CHECK (FEED ERROR)
   902							ZT--	= ZONE TEST BITS
   903							ZTALL	= OR OF ALL ZONE TEST BITS
   904								.ENDR
   905									;
   906		000010			CDHRSZ = 10			;SIZE OF REGISTER BLOCK IN BYTES
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-20
C11DMC.MAC    04-JAN-83 11:18			CR11 - PUNCHED/MARK SENSE CARD READER

   908					.SBTTL		CR11 - PUNCHED/MARK SENSE CARD READER
   909					;
   910		000006			CR.LVL= 6		; PROCESSOR LEVEL FOR CR11 INTERRUPTS
   911		000230			CR.VEC= 230
   912					;
   913		177160			CR0STS = 177160
   914		177160			CR.STS= 177160		; CR11 STATUS REGISTER
   915					;
   916		100000				CR.ERR= B15	; ERROR
   917		040000				CR.DNE= B14	; CARD DONE
   918		020000				CR.HCK= B13	; HOPPER CHECK
   919		010000				CR.MCK= B12	; MOTION CHECK
   920		004000				CR.TIM= B11	; TIMING ERROR
   921		002000				CR.OLN= B10	; BACK ONLINE AFTER BEING OFF
   922		001000				CR.BSY= B9	; BUSY
   923		000400				CR.RDY= B8	; NOT READY
   924		000200				CR.CDN= B7	; COLUMN DONE
   925		000100				CR.INE= B6	; INTERRUPT ENABLE
   926		000002				CR.EJT= B1	; EJECT
   927		000001				CR.CFD= B0	; CARD FEED
   928
   929		177162			CR.DAT= 177162		; 12 LOW ORDER BITS ARE DATA
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-21
C11DMC.MAC    04-JAN-83 11:18			CTY - CONSOLE TELETYPE

   931					.SBTTL		CTY - CONSOLE TELETYPE
   932					;
   933					;CTY HARDWARE BITS
   934					;
   935		177560			CTISTS = 177560
   936		177562			CTICHR = 177562
   937		000060			CTIVEC=	60
   938		000004			CTILVL=	4	; PRIORITY LEVEL
   939					;
   940		000100				CI.INE=	B6		; CTY INPUT INTERRUPT ENABLE
   941					;
   942		177564			CTOSTS = 177564
   943		177566			CTOCHR = 177566
   944		000064			CTOVEC=	64
   945		000004			CTOLVL=	4	; PRIORITY LEVEL
   946					;
   947		000100				CO.INE=	B6		; CTY OUTPUT INTERRUPT ENABLE
   948		000004				CO..MM=	B2		; CTY OUTPUT MAINT MODE
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-22
C11DMC.MAC    04-JAN-83 11:18			DH11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER

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

   991					.SBTTL		DJ11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-24
C11DMC.MAC    04-JAN-83 11:18			DL10 - UNIBUS-TO-MBUS INTERFACE

   993					.SBTTL		DL10 - UNIBUS-TO-MBUS INTERFACE
   994					;
   995					;DL10 - UNIBUS TO DECSYSTEM-10 MEMORY BUS INTERFACE
   996					;
   997		100000			DL.BAS=	100000			;BASE ADDRESS FOR 10 MEMORY
   998		100000			DLBASE=	DL.BAS			;
   999		000170			DL.VEC=	170			;VECTOR ADR FOR DL10
  1000		000004			DL.LVL=	4			;CHANNEL FIVE
  1001					;
  1002		100000			DL.STS=DLBASE	;1ST WORD IS STATUS
  1003		100000				DL.11I=	B15		; BIT 15 - 11 INT(INTERRUPTS IF 11-INT-ENB SET)
  1004		040000				DL.11C=	B14		; BIT 14 - CLEAR 11 INT
  1005		020000				DL.10I=	B13		; BIT 13 - 10 INT
  1006		010000				DL.10C=	B12		; BIT 12 - CLEAR 10 INT
  1007		004000				DL.NXM=	B11		; BIT 11 - NXM(INTERRUPTS IF ERR ENB SET)
  1008		002000				DL.CNX=	B10		; BIT 10 - CLEAR NXM
  1009		001000				DL.PAR=	B9		; BIT 09 - PAR ERR(INTERRUPTS IF ERR ENB SET)
  1010		000400				DL.CPE=	B8		; BIT 08 - CLEAR PAR ERR
  1011		000200				DL.WCO=	B7		; BIT 07 - WCOV(INTERRUPTS IF ERR ENB SET)
  1012		000100				DL.CWC=	B6		; BIT 06 - CLEAR WCOV
  1013		000040				DL.PEN=	B5		; BIT 05 - PORT ENABLE
  1014		000040				DLPENB=	DL.PEN		;
  1015		000020				DL.B04=	B4		; BIT 04 - (GUESS !)
  1016		000010				DL.ERE=	B3		; BIT 03 - ERR ENABLE
  1017		000004				DL.INE=	B2		; BIT 02 - 11 INT ENB
  1018		000002				DL.B01=	B1		; BITS 00 & 01 - PIA
  1019		000001				DL.B00=	B0		;
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-25
C11DMC.MAC    04-JAN-83 11:18			DL11 - ASYNCHRONOUS SERIAL LINE INTERFACE

  1021					.SBTTL		DL11 - ASYNCHRONOUS SERIAL LINE INTERFACE
  1022					;
  1023					;
  1024		175610			DLDADR=175610	; DL11 NUMBER ZERO DEVICE ADDRESS
  1025		000010			DLDSIZ=10	; LENGTH OF DEVICE ADDRESS ASSIGNMENT
  1026					;
  1027					;	CONTROL REGISTERS
  1028					;
  1029					;
  1030		000000			DLRSTS=0		; RECEIVER STATUS AND CONTROL
  1031					;
  1032					;		BIT ASSIGNMENTS
  1033		000001				DL..RE=B0	; PAPER TAPE READER ENABLE (R/W)
  1034		000002				DL.DTR=B1	; DATA TERMINAL READY (R/W)
  1035		000004				DL.RTS=B2	; REQUEST TO SEND (R/W)
  1036		000010				DL.2XM=B3	; SECONDARY XMIT (R/W)
  1037		000040				DL.DIE=B5	; DATASET INTERRUPTS ENABLE (R/W)
  1038		000100				DL.RIE=B6	; RECEIVER INTERRUPTS ENABLE (R/W)
  1039		000200				DL.ROK=B7	; RECEIVER DONE (R)
  1040		002000				DL.2RC=B10	; SECONDARY RECEIVE (R)
  1041		004000				DL.RGO=B11	; RECEIVER ACTIVE (R)
  1042		010000				DL.CAR=B12	; CARRIER PRESENT (R)
  1043		020000				DL.CTS=B13	; CLEAR TO SEND (R)
  1044		040000				DL.RNG=B14	; DATASET RING (R)
  1045		100000				DL.DSC=B15	; DATASET STATUS CHANGE (R)
  1046					;
  1047					;
  1048		000002			DLRBUF=2	; RECEIVED CHARACTER BUFFER
  1049					;
  1050					;		BIT ASSIGNMENTS
  1051		000377				DL..RC=B0!B1!B2!B3!B4!B5!B6!B7	;THE RECEIVED CHARACTER (R)
  1052		010000				DL..PE=B12	; PARITY ERROR (R)
  1053		020000				DL..FE=B13	; FRAMING ERROR (R)
  1054		040000				DL.OVR=B14	; RECEIVER OVER RUN (R)
  1055		100000				DL.ERR=B15	; RECEIVER ERROR DETECTED (R)
  1056					;
  1057					;
  1058					;
  1059		000004			DLXSTS=4	; XMITTER STATUS AND CONTROL REGISTER
  1060					;
  1061					;		BIT ASSIGNMENTS
  1062		000001				DL.BRK=B0	; SEND BREAK (W)
  1063		000004				DL..MM=B2	; MAINTAINANCE MODE (R/W)
  1064		000100				DL.XIE=B6	; XMITTER INTERRUPTS ENABLE (R/W)
  1065		000200				DL.XOK=B7	; XMITTER READY FOR NEXT CHARACTDER (R)
  1066					;
  1067					;
  1068					;
  1069		000006			DLXBUF=6	; XMITTER CHARACTER BUFFER
  1070					;
  1071					;	BIT ASSSIGNMENT
  1072		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  04-JAN-83  16:24  PAGE 1-26
C11DMC.MAC    04-JAN-83 11:18			DM11BB - MODEM CONTROLLER FOR DH11

  1074					.SBTTL		DM11BB - MODEM CONTROLLER FOR DH11
  1075					;
  1076		170500			DMBASE=	170500		;HDW ADR OF FIRST DM11
  1077					;
  1078		000007			DM.LVL=	7		;PROCESSOR LEVEL FOR DM11BB INTERRUPTS
  1079					;
  1080		170500				B.DM11=	170500	;FIRST DM11 ADR
  1081		004000				DM.SCN=	B11	;CLEAR SCANNER
  1082		002000				DM.INI=	B10	;CLEAR MULTIPLEXER
  1083		001000				DM..MM=	B9	;MAINTENANCE MODE
  1084		000400				DM.STP=	B8	;STEP TO NEXT LINE
  1085		000200				DM.DNE=	B7
  1086		000100				DM.IEN=	B6	;INTERRUPT ENABLE
  1087		000040				DM.ENB=	B5	;SCAN ENABLE
  1088		000020				DM.BSY=	B4	;CLEAR SCAN STILL PERCOLATING
  1089		000017				DM.ALI=	B0!B1!B2!B3	;LINE NUMBER FIELD
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-27
C11DMC.MAC    04-JAN-83 11:18			DMC11/KMC11 - MICROPROCESSOR BASED COMM CONTROLLER

  1091					.SBTTL		DMC11/KMC11 - MICROPROCESSOR BASED COMM CONTROLLER
  1092					;
  1093		000005			DMC.LVL	= 5
  1094					;
  1095	000000'					NAMEBT	,0,<MD.RUN,MD.CLR,MD.CWR,MD.SLU,MD.LLU>
  1096	000000'					NAMEBT	,,<MD.RMO,MD.RMI,MD.SMP,B7,B6,B5,B4,B3,B2,B1,B0>
  1097		000000						.REPT	0
  1098							MD.RUN	- RUN THE MICROPROCESSOR
  1099							MD.CLR	- CLEAR THE MICROPROCESSOR
  1100							MD.CWR	- CRAM WRITE
  1101							MD.SLU	- STEP LINE UNIT
  1102							MD.LLU	- LOOP LINE UNIT
  1103							MD.RMO	- ROM OUTPUT
  1104							MD.RMI	- ROM INPUT
  1105							MD.SMP	- STEP MICROPROCESSOR
  1106								.ENDR
  1107						.IRP	X,<0,2,4,6>
  1108						SEL'X	= X
  1109						BSEL'X	= X
  1110						.ENDR ;X
  1111						.IRP	X,<1,3,5,7>
  1112						BSEL'X	= X
  1113						.ENDR ;X
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-28
C11DMC.MAC    04-JAN-83 11:18			DN11 - AUTODIALER

  1115					.SBTTL		DN11 - AUTODIALER
  1116					;
  1117		000007			DN.LVL=	7			;PROCESSOR LEVEL FOR DN INTERRUPTS
  1118		175200			DNBASE=175200
  1119					;
  1120		100000				DN.PWI=	B15		;POWER INDICATE
  1121		040000				DN.ACR=	B14		;ABANDON CALL AND RETRY
  1122		010000				DN.DLO=	B12		;DATA LINE OCCUPIED
  1123		000200				DN.DNE=	B7		;DONE
  1124		000100				DN..IE=	B6		;INTERRUPT ENABLE
  1125		000040				DN.DSS=	B5		;DATA SET STATUS
  1126		000020				DN.PND=	B4		;PRESENT NEXT DIGIT
  1127		000010				DN..MM=	B3		;MAINTENANCE MODE
  1128		000004				DN..ME=	B2		;MASTER ENABLE
  1129		000002				DN..DP=	B1		;DIGIT PRESENT
  1130		000001				DN..CR=	B0		;CALL REQUEST
  1131		007400				DN.DGT=B8+B9+B10+B11	;DIGIT BITS
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-29
C11DMC.MAC    04-JAN-83 11:18			DP11 - SYNCHRONOUS LINE INTERFACE

  1133					.SBTTL		DP11 - SYNCHRONOUS LINE INTERFACE
  1134					;
  1135		000007			DP.LVL=	7	;PROCESSOR LEVEL FOR DP11 INTERRUPTS
  1136					;
  1137					; "A" RECEIVER STATUS REGISTER  (ADR = XXXXX0)
  1138					;
  1139		010000			DP..CP=	B12		;CHARACTER PARITY; 1=ODD, 0=EVEN
  1140		004000			DP..RA=	B11		;RECEIVE ACTIVE
  1141		000200			DP..RD=	B7		;RECEIVE DONE
  1142		000100			DP.RIE=	B6		;RECEIVE DONE INTERRUPT ENABLE
  1143		000010			DP..MR=	B3		;MISCELLANEOUS RECEIVE
  1144		000004			DP..MM=	B2		;MAINTENANCE MODE
  1145		000002			DP..HD=	B1		;HALF DUPLEX
  1146		000001			DP..SS=	B0		;STRIP SYNC
  1147					;
  1148					; "B" TRANSMIT AND CONTROL STATUS REG  (ADR = XXXXX2)
  1149					;
  1150		100000			DP..CF=	B15		;CARRIER FLAG
  1151		040000			DP.ROF=	B14		;RECEIVE OVERRUN FLAG
  1152		020000			DP.RNG=	B13		;RING FLAG
  1153		010000			DP.MRY=	B12		;MODEM READY
  1154		004000			DP.CAR=	B11		;CARRIER
  1155		002000			DP.CTS=	B10		;CLEAR TO SEND
  1156		001000			DP.RTS=	B9		;REQUEST TO SEND
  1157		000200			DP..TD=	B7		;TRANSMIT DONE
  1158		000100			DP.TIE=	B6		;TRANSMIT DONE INTERRUPT ENABLE
  1159		000040			DP.SIE=	B5		;STATUS INTERRUPT ENABLE
  1160		000020			DP.MIS=	B4		;MISCELLANEOUS
  1161		000010			DP..MT=	B3		;MISCELLANEOUS TRANSMIT
  1162		000002			DP..IS=	B1		;IDLE SYNC
  1163		000001			DP.DTR=	B0		;TERMINAL READY
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-30
C11DMC.MAC    04-JAN-83 11:18			DQ11 - DMA SYNCHRONOUS LINE INTERFACE

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

  1221		000020				DQ.MBM=	020	; BYTE EQUIVALENT OF ABOVE
  1222					;		060000	; MEM EXT OR ENTER T/EXIT T
  1223					;		B15	; ERROR INTERRUPT
  1224					;
  1225					; SECONDARY REGISTERS ( ADR = XXXXX6 )
  1226					;
  1227		000000				RG.PRA=	0	; PRIMARY RECEIVE BA
  1228		000001				RG.PRC=	1	; PRIMARY RECEIVE CC
  1229		000002				RG.PTA=	2	; PRIMARY TRANSMIT BA
  1230		000003				RG.PTC=	3	; PRIMARY TRANSMIT CC
  1231		000004				RG.SRA=	4	; SECONDARY RECEIVE BA
  1232		000005				RG.SRC=	5	; SECONDARY RECEIVE CC
  1233		000006				RG.STA=	6	; SECONDARY TRANSMIT BA
  1234		000007				RG.STC=	7	; SECONDARY TRANSMIT CC
  1235					;;;;		10	; CHAR DET REG
  1236		000011				RG.SYN=	11	; SYNC REG
  1237		000012				RG.MSC=	12	; MISC REG
  1238		000040				DQ.MC=	B5	; MASTER CLEAR (SORT OF)
  1239					;;;;		13	; TRANSMIT BUF
  1240					;;;;		14	; SEQUENCE REGISTER
  1241					;;;;		15	; RECEIVE BCC
  1242					;;;;		16	; TRANSMIT BCC
  1243					;;;;		17	; RECEIVE/TRANSMIT POLYNOMIAL
  1244								;
  1245					.MACRO	DQREGS	REG,QQ
  1246					Z=	RG.'REG
  1247					.IIF EQ <Z&10>,Z=	Z+DQ.MBM
  1248						    .IF B,QQ
  1249						MOVB	#Z,5(DQ)	;SET TO ADDRESS SECONDARY REGISTER RG.'REG
  1250						    .IFF ;B <QQ>
  1251						MOVB	#Z,5QQ		;SET TO ADDRESS SECONDARY REGISTER RG.'REG
  1252						    .ENDC ;B <QQ>
  1253					.ENDM	DQREGS
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-32
C11DMC.MAC    04-JAN-83 11:18			DQ11 - DMA SYNCHRONOUS LINE INTERFACE

  1255					;
  1256					;	THE SEVEN SWITCHES (PACKAGES) WILL BE LOCATED
  1257					;		ON BOARD #M7818 WITHIN THE DQ11 LOGIC BLOCK
  1258					;
  1259					;
  1260					;	PACKAGE #	SWITCH #'S	SWITCH SETTINGS ON RESPECTIVE PACKAGES
  1261					;
  1262					;	1		 8 - 1		ALL OFF
  1263					;
  1264					;	2		16 - 9		ALL OFF
  1265					;
  1266					;	3		24 - 17		ALL OFF
  1267					;
  1268					;	4		32 - 25	DAS78	 ON, ON,OFF, ON,OFF,OFF, ON,OFF
  1269					;					CHARACTER = 055 (ENQ)
  1270					;	4		32 - 25 DAS85	 ON, ON, ON, ON, ON,OFF, ON,OFF
  1271					;					CHARACTER = 005 (ENQ)
  1272					;
  1273					;	5		40 - 33	DAS78	 ON, ON,OFF,OFF,OFF, ON, ON, ON
  1274					;				DAS85	 ON,OFF,OFF,OFF,OFF, ON, ON, ON
  1275					;
  1276					;	6		48 - 41	DAS78	 ON, ON, ON, ON, ON, ON,OFF,OFF
  1277					;					CHARACTER = 03 (ETX)
  1278					;				DAS85	OFF, ON, ON,OFF, ON, ON,ON, ON
  1279					;					CHARACTER = 220 (DLE)
  1280					;
  1281					;	7		56 - 49	DAS78	 ON, ON, OFF, ON, ON,OFF,OFF, ON
  1282					;					CHARACTER = 46 (ETB)
  1283					;				DAS85	OFF, ON, ON, ON, ON, ON, ON,OFF
  1284					;					CHARACTER = 201 (SOH)
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-33
C11DMC.MAC    04-JAN-83 11:18			DS11 - SYNCHRONOUS LINE INTERFACE

  1286					.SBTTL		DS11 - SYNCHRONOUS LINE INTERFACE
  1287					;
  1288					;HARDWARE ADDRESSES
  1289					;
  1290		175600			DS.AUX=	175600		;AUXILLARY REGISTER
  1291		175400			DS.DVA=	175400		;BEGINNING OF LINE DEVICE REGISTERS
  1292		000400			DS.VEC=	400		;FIRST DS11 VECTOR
  1293		000007			DS.LVL=	7		;PROCESSOR LEVEL OR DS11 INTERRUPTS
  1294					;
  1295					;BITS IN AUXILLARY REGISTER
  1296					;
  1297		100000			DS.AD3=B15		;ADAPTER 3 IS PRRSENT IF SET
  1298		040000			DS.AD2=B14		;ADAPTER 2 IS PRESENT IF SET
  1299		020000			DS.AD1=B13		;ADAPTER 1 IS PRESENT IF SET
  1300					;	B12		;NOT USED
  1301					;	B11		;NOT USED
  1302					;	B10		;NOT USED
  1303					;	B9		;PROGRAM VECTOR 9
  1304		000400			DS.IVA=B8		;PROGRAM VECTOR 8 - INTERRUPTS START AT 400
  1305					;	B7		;DIAG MODE
  1306					;	B6		;PROGRAM CLOCK ALLOW
  1307					;	B5		;NOT USED
  1308					;	B4		;DIAG BIT CNTR CLEAR
  1309					;	B3		;DIAG BIT COUNTER 4
  1310					;	B2		;DIAG BIT COUNTER 3
  1311					;	B1		;DIAG BIT COUNTER 2
  1312					;	B0		;DIAG BIT COUNTER 1
  1313					;
  1314					;
  1315					;OFFSETS OF REGISTERS FROM LINE BASE ADDRESS
  1316					;
  1317		000006			DS.XDR=6		;TRANSMIT DATA REGISTER
  1318		000004			DS.XST=4		;TRANSMIT STATUS REGISTER
  1319		000002			DS.RDR=2		;RECEIVE DATA REGISTER
  1320		000000			DS.RST=0		;RECEIVE STATUS REGISTER
  1321					;
  1322					;PRIORITY INTERRUPT LEVELS
  1323					;
  1324		000007			I.DSRD=7		;RECEIVE DATA INTERRUPT
  1325		000006			I.DSRS=6		;RECEIVE STATUS INTERRUPT
  1326		000007			I.DSXD=7		;A TRANSMIT DATA INTERRUPT
  1327		000006			I.DSXS=6		;A TRANSMIT STATUS INTERRUPT
  1328					;
  1329					;BITS IN XMIT STATUS REGISTER & RECEIVE REG.
  1330					;
  1331		000440			DS.DTR=000440		;BOTH XMT & RCV REG.
  1332		170000			DS.ZAP=170000		;CLEAR ALL OVERRUN FLAGS
  1333		000455			DS.XGO=DS.DTR+<<I.DSXD/2>*4>+1	;REQUEST TO SEND
  1334		006455			DS.RGO=B11!B10!DS.DTR!<<I.DSRD/2>*4>+1	;RECEIVE
  1335					;
  1336					;BITS IN TRANSMIT STATUS REGISTER
  1337					;
  1338					;	B15		; NOT USED
  1339					;	B14		; XMIT BIT OVERRUN
  1340					;	B13		; XMIT CHAR OVERRUN
  1341					;	B12		; CLEAR TO SEND FLAG
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-34
C11DMC.MAC    04-JAN-83 11:18			DS11 - SYNCHRONOUS LINE INTERFACE

  1342					;	B11		; NOT USED
  1343					;	B10		; NOT USED
  1344					;	B9		; CLEAR TO SEND
  1345					;	B8		; DATA TERM READY
  1346					;	B7		; XMIT 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		; IDLE
  1353					;	B0		; REQUEST TO SEND
  1354					;
  1355					;BITS IN RECEIVE STATUS REGISTER
  1356					;
  1357					;	B15		; RING FLAG
  1358					;	B14		; REC BIT OVERRUN
  1359					;	B13		; REC CHAR OVERRUN
  1360					;	B12		; LINE SIGNAL FLAG
  1361					;	B11		; SYN STATE 2
  1362					;	B10		; SYN STATE 1
  1363					;	B9		; LINE SIGNAL
  1364					;	B8		; DATA TERMINAL READY
  1365					;	B7		; REC CHAR DONE
  1366					;	B6		; DATA SET READY
  1367					;	B5		; CODE SIZE 2
  1368					;	B4		; CODE SIZE 1
  1369					;	B3		; PRIORITY REQUEST 2
  1370					;	B2		; PRIORITY REQUEST 1
  1371					;	B1		; RING ALLOW
  1372					;	B0		; RECEIVE
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-35
C11DMC.MAC    04-JAN-83 11:18			DTE20 - DECSYSTEM 20(10)/PDP-11 INTERPROCESSOR INTERFACE

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

  1421					.SBTTL		DU11 - SYNCHRONOUS LINE CONTROLLER
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-37
C11DMC.MAC    04-JAN-83 11:18			DUP11 - SYNCHRONOUS LINE INTERFACE WITH CRC

  1423					.SBTTL		DUP11 - SYNCHRONOUS LINE INTERFACE WITH CRC
  1424					;
  1425		000006			DUP.LVL	= 6
  1426					;
  1427					;;;;	DUPSTS = FLOATING
  1428					;
  1429		000000			DUPCRS = 0	;RECEIVER STATUS AND CONTROL REGISTER
  1430	000000'					NAMEBT	DUPRCS,0,<DUPDSA,DUPRNG,DUPCTS,DUPCAR,DUPACT,DUP2RC>
  1431	000000'					NAMEBT	,,<DUPDSR,DUPSSY,DUPRDN,DUPRIE,DUPDIE,DUPRCE>
  1432	000000'					NAMEBT	,,<DUP2TX,DUPRTS,DUPDTR,DUPDSB>
  1433									;
  1434		000000						.REPT	0
  1435							DUPDSA	- DATA SET CHANGE A	RO
  1436							DUPRNG	- RING INDICATOR	RO
  1437							DUPCTS	- CLEAR TO SEND		RO
  1438							DUPCAR	- CARRIER		RO
  1439							DUPACT	- ACTIVE		RM
  1440							DUP2RC	- SECONDARY RECEIVE DATA RO
  1441							DUPDSR	- DATA SET READY	RO
  1442							DUPSSY	- STRIP SYNCH		RW
  1443
  1444							DUPRDN	- RECEIVE DONE		RO
  1445							DUPRIE	- RECEIVER INTERRUPT ENABLE RW
  1446							DUPDIE	- DATA SET INTERRUPT ENABLE RW
  1447							DUPRCE	- RECEIVE ENABLE (CLEARS THE READ MOSTLY BITS) RW
  1448							DUP2TX	- SECONDARY TRANSMIT	RW
  1449							DUPRTS	- REQUEST TO SEND	RW
  1450							DUPDTR	- DATA TERMINAL READY	RW
  1451							DUPDSB	- DATA SET CHANGE B	RO
  1452								.ENDR
  1453		000002			DUPRDB = 2		;RECEIVE DATA BUFFER
  1454	000000'					NAMEBT	DUPRDB,0,<DUPRER,DUPROV,,DUPRCR,,DUPRAB,DUPREM,DUPRSM>
  1455		000377				DUPRDT	= 377			;RECEIVED DATA BUFFER
  1456		000000						.REPT	0
  1457							DUPRER	- RECEIVER ERROR	RO
  1458							DUPROV	- RECEIVER OVERRUN	RO
  1459								- RESERVED
  1460							DUPRCR	- RCRC ERROR+ZERO	RO
  1461								- RESERVED
  1462							DUPRAB	- RECEIVED ABORT	RW
  1463							DUPREM	- END OF REC'D MSG	RM
  1464							DUPRSM	- START OF REC'D MSG	RM
  1465								.ENDR
  1466		000002			DUPPSR = DUPRDB		;PARAMETER STATUS REGISTER
  1467	000000'					NAMEBT	DUPPSR,0,<DUPPDM,,,DUPP2M,,,DUPPIC,>
  1468		000377				DUPP2S	= 377		;SECONDARY STATION ADDRESS OR REC SYNCH REG
  1469		000000						.REPT	0
  1470							DUPPDM	- DEC MODE (BYTE MODE)		WO
  1471								- RESERVED
  1472								- RESERVED
  1473							DUPP2M	- SENCONDARY MODE SELECT	WO
  1474								- RESERVED
  1475								- RESERVED
  1476							DUPPIC	- INHIBIT CRC COMPUTATION	WO
  1477								.ENDR
  1478		000004			DUPTCS = 4		;TRANSMITTER STATUS REGISTER
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-38
C11DMC.MAC    04-JAN-83 11:18			DUP11 - SYNCHRONOUS LINE INTERFACE WITH CRC

  1479	000000'					NAMEBT	DUPTCS,0,<DUPTDL,DUPTMT,DUPTMC,DUPTM1,DUPTM0>
  1480	000000'					NAMEBT	,,<DUPTMI,DUPTAC,DUPTRS,DUPTDN,DUPTIE,,DUPTSN,DUPTHD,,,>
  1481		000000						.REPT	0
  1482							DUPTDL	- TRANSMIT DATA LATE	RM
  1483							DUPTMT	- MAINTENANCE TRANSLATE	RO
  1484							DUPTMC	- MAINTENANCE CLOCK	RW
  1485							DUPTM1	- MAINTENANCE MODE SELECT RW
  1486							DUPTM0	- 
  1487							DUPTMI	- MAINTENANCE INPUT	RW
  1488							DUPTAC	- TRANSMITTER ACTIVE	RO
  1489							DUPTRS	- DEVICE RESET		WO
  1490							DUPTDN	- TRANSMIT DONE		RM
  1491							DUPTIE	- TRANSMITTER INTERRUPT ENABLE RW
  1492								- RESERVED
  1493							DUPTSN	- SEND			RW
  1494							DUPTHD	- HALF DUPLEX		RW
  1495								- RESERVED
  1496								- RESERVED
  1497								- RESERVED
  1498								.ENDR
  1499		000006			DUPTDB = 6		;TRANSMITTER DATA BUFFER
  1500	000000'						NAMEBT	DUPTDB,0,<,DUPXCI,,DUPXCO,DUPXMT,DUPXAB,DUPXEM,DUPXSM>
  1501		000377					DUPXDB	= 377		;TRANSMITTER DATA BUFFER BYTE
  1502		000000						.REPT	0
  1503								- RESERVED
  1504							DUPXCI	- MAINTENANCE CRC INPUT	RO
  1505								- RESERVED
  1506							DUPXCO	- MAINTENANCE CRC OUTPUT RO
  1507							DUPXMT	- MAINTENANCE TIMER	RO
  1508							DUPXAB	- TRANSMIT ABORT	RW
  1509							DUPXEM	- TRANSMIT END OF MSG	RW
  1510							DUPXSM	- TRANSMIT STRAT OF MSG	RW
  1511								.ENDR
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-39
C11DMC.MAC    04-JAN-83 11:18			DZ11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER

  1513					.SBTTL		DZ11 - ASYNCHRONOUS SERIAL LINE MULTIPLEXER
  1514					;
  1515					; DZ11 CONTROL STATUS REGISTER (CSR) FLAGS
  1516					;
  1517		000020			DZ.CLR=	000020				;MASTER CLEAR
  1518		000040			DZ.SCN=	000040				;SCAN ENABLE (ENABLE RCV & XMT)
  1519		000100			DZ.RIE=	000100				;RECEIVE INTERUPT ENABLE
  1520		010000			DZ.SAE=	010000				;SILO ALARM ENABLE
  1521		040000			DZ.TIE=	040000				;TRANSMIT INTERUPT ENABLE
  1522		050140			DZ.INI=	DZ.SCN!DZ.RIE!DZ.TIE!DZ.SAE	;INITIAL VALUE FOR CSR
  1523					 
  1524					 
  1525					;
  1526					; DZ11 LINE PARAMETER REGISTER (LPR) FLAGS
  1527					;
  1528		010000			DZ.RCV=	010000				;RCV ON IN LPR
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-40
C11DMC.MAC    04-JAN-83 11:18			EIA PIN DEFINITIONS

  1530					.SBTTL		EIA PIN DEFINITIONS
  1531					;
  1532					;	1	PROTECTIVE GROUND
  1533					;	2	TRANSMITTED DATA
  1534					;	3	RECEIVED DATA
  1535					;	4	REQUEST TO SEND
  1536					;	5	CLEAR TO SEND
  1537					;	6	DATA SET READY
  1538					;	7	SIGNAL GROUND
  1539					;	8	RECEIVED LINE SIGNAL DECTECTOR
  1540					;	9	*
  1541					;	10	*
  1542					;	11	*
  1543					;	12	*
  1544					;	13	*
  1545					;	14	*
  1546					;	15	*
  1547					;	16	*
  1548					;	17	RECEIVED SIGNAL ELEMENT TIMING
  1549					;	18	*
  1550					;	19	*
  1551					;	20	DATA TERMINAL READY
  1552					;	21	SIGNAL QUALITY DETECTOR
  1553					;	22	RING INDICATOR
  1554					;	23	*
  1555					;	24	TRANSMIT SIGNAL ELEMENT TIMING
  1556					;	25	*
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-41
C11DMC.MAC    04-JAN-83 11:18			KG11 - COMMUNICATIONS ARITHMETIC PROCESSOR

  1558					.SBTTL		KG11 - COMMUNICATIONS ARITHMETIC PROCESSOR
  1559					;
  1560		170700			KG.STS = 170700
  1561		000200				KG.DNE=200	;CALCULATION DONE
  1562		000100				KG.SEN=100	;NOT SINGLE CYCLE
  1563		000040				KG.STP=040	;STEP
  1564		000020				KG.CLR=020	;CLEAR
  1565		000010				KG.DDB=010	;WORD MODE
  1566						;	007	;TYPE OF CALCULATION
  1567		000001				KG.CRC=001	; 1 = CRC-16
  1568		000003				KG.LRC=003	; 3 = LRC-16
  1569		000005				KG.CCI=005	; 5 = CRC-CCITT
  1570		000121			KG.INI=	KG.SEN!KG.CLR!KG.CRC
  1571		000002			KGBCC = 2
  1572		000004			KGDATA = 4
  1573					;
  1574					.MACRO	KGLOAD	X,MODE
  1575						Z=101
  1576						    .IF NB MODE
  1577						.IIF IDN <MODE>,<WORD>,Z=Z!KG.DDB	;SET WORD MODE
  1578						.IIF IDN <MODE>,<BYTE>,Z=Z&<^CKG.DDB>
  1579						    .ENDC;.IF NB MODE
  1580						    .IF IDN <#0>,<X>
  1581						Z=Z!KG.CLR
  1582						    .IFF
  1583						MOV	#133,(R4)		;CLEAN OUT KG11
  1584						MOV	X,KGDATA(R4)		;LOAD WITH DATA  ( X )
  1585						    .ENDC ;IDN <#0>,<X>
  1586						MOV	#Z,(R4)		;AND SET CRC MODE
  1587					.ENDM	KGLOAD
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-42
C11DMC.MAC    04-JAN-83 11:18			KT11 - MEMORY MANAGEMENT MODULE

  1589					.SBTTL		KT11 - MEMORY MANAGEMENT MODULE
  1590					;
  1591					.MACRO	MMNAM1	MODE,TYPE,SPACE,NUMB
  1592						MODE'SPACE'S'TYPE'R'NUMB	= $MMADR
  1593						$MMADR	= $MMADR + 2
  1594					.ENDM	MMNAM1
  1595					;
  1596					.MACRO	MMNAM2	MODE,BASE
  1597						$MMADR	= BASE
  1598						.IRPC	TYPE,<DA>
  1599						  .IRPC	SPACE,<ID>
  1600						    $$ = 0
  1601						    .REPT 8.
  1602						      MMNAM1	MODE,TYPE,SPACE,\$$
  1603						      $$ = $$ + 1
  1604						    .ENDR ;8.
  1605						  .ENDR	;SPACE
  1606						.ENDR	;TYPE
  1607					.ENDM	MMNAM2
  1608					;
  1609					;
  1610					;
  1611					; MEMORY MANAGEMENT STATUS REGISTER BLOCK
  1612					;	ASTERISK (*) DENOTES THE 11/34 MEMORY MANAGEMENT SUBSET
  1613					;
  1614		177572				MMGSR0	= 177572	;MEM MGT STATUS REGISTER	*
  1615	000000'					NAMEBT	MMGSR0,0,<MG.ANR,MG.APL,MG.ARO,MG.TMM,,>
  1616	000000'					NAMEBT	,,<MG.EMT,MG.MNT,MG.IDN,MG.MD1,MG.MD0>
  1617	000000'					NAMEBT	,,<MG.DAD,MG.PG2,MG.PG1,MG.PG0,MG.ENB>
  1618		000000					.REPT	0
  1619							MG.ANR - ABORT, NON-RESIDENT		*
  1620							MG.APL - ABORT, PAGE LENGTH		*
  1621							MG.ARO - ABORT, READ ONLY		*
  1622							MG.TMM - ABORT, TRAP ON MEM MGT
  1623							MG.XXX - UNUSED
  1624							MG.XXX - UNUSED
  1625							MG.EMT - ENABLE MEM MGT TRAP
  1626							MG.MNT - MAINTENANCE MODE		*
  1627							MG.IDN - INSTRUCTION DONE
  1628							MG.MD1 - MODE, BIT 1			*
  1629							MG.MD0 - MODE, BIT 0			*
  1630							MG.DAD - D ADDRESS SPACE SELECTED
  1631							MG.PG2 - PAGE SELECTED, BIT 2		*
  1632							MG.PG1 - PAGE SELECTED, BIT 1		*
  1633							MG.PG0 - PAGE SELECTED, BIT 0		*
  1634							MG.ENB - ENABLE MEM MGT			*
  1635							.ENDR ;TEXT
  1636									;
  1637		177574				MMGSR1	= 177574	;GPR MODIFICATION RECORD
  1638									;
  1639		177576				MMGSR2	= 177576	;VIRTUAL ADDRESS REGISTER	*
  1640									;
  1641		172516				MMGSR3	= 172516	;
  1642	000000'					NAMEBT	MMGSR3,4,<MG.KDS,MG.SDS,MG.UDS>
  1643									;
  1644					;
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-43
C11DMC.MAC    04-JAN-83 11:18			KT11 - MEMORY MANAGEMENT MODULE

  1645					; DEFINE NAMES FOR THE PAGE ADDRESS AND DESCRIPTOR REGISTERS
  1646					;
  1647	000000'					MMNAM2	U,177600	;USER MODE MEM MGT		*
  1648					;;;;	MMNAM2	S,172200	;SUPERVISOR MODE MEM MGT (NOT FOR 11/34)
  1649	000000'					MMNAM2	K,172300	;KERNEL MODE MEM MGT		*
  1650					;
  1651					; PAGE DESCRIPTOR REGISTER FIELD DEFINITIONS
  1652					;
  1653	000000'					NAMEBT	PDR,0,<,PD.PL6,PD.PL5,PD.PL4,PD.PL3,PD.PL2,PD.PL1,PD.PL0>
  1654	000000'					NAMEBT	,,<PD.A,PD.W,,,PD.ED,PD.AC2,PD.AC1,PD.AC0>
  1655	000000'					FIELD	PD.PLF,PD.PL6,PD.PL0
  1656	000000'					FIELD	PD.ACF,PD.AC2,PD.AC0
  1657					;
  1658					; VIRTUAL ADDRESS DEFINITIONS
  1659					;
  1660		000100				BSFACT	= 100	;BIAS FACTOR, NUMBER OF BYTES PER BLOCK
  1661						.IRP	X,<0,1,2,3,4,5,6,7>
  1662						PAGE'X	= X*20000	;BASE ADDRESS REACHED THROUGH APR'X
  1663						PAGE'X'B	= X*200	;MAPPING BIAS FOR VIRTUAL=PHYSICAL
  1664						.ENDR	;IRP X
  1665		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  04-JAN-83  16:24  PAGE 1-44
C11DMC.MAC    04-JAN-83 11:18			KW11 - LINE TIME CLOCK

  1667					.SBTTL		KW11 - LINE TIME CLOCK
  1668					;
  1669					;KW11 LINE FREQUENCY CLOCK DEFINITIONS
  1670					;
  1671		   001			.IF DF FT.87S
  1672					CLKLVL=	6		; DN87 USES STANDARD PRIORITY LEVEL
  1673					.IFF
  1674		000004			CLKLVL=	4		; CLOCK INTERRUPT PRIORITY LEVEL
  1675		   000			.ENDC
  1676		000100			CLKVEC=	100		; CLOCK VECTOR
  1677					;
  1678		177546			CLKWRD = 177546		; CLOCK STATUS WORD
  1679					;
  1680		000100				KW.INE=B6	; ENABLE INTERRUPTS
  1681		000100				CLKENB=B6	; ENABLE INTERRUPTS
  1682		000200				KW.TIC=B7	; CLOCK MONITOR TOGGLE (CLEARED BY PROGRAM)
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-45
C11DMC.MAC    04-JAN-83 11:18			LP11 - LINE PRINTER CONTROLLER

  1684					.SBTTL		LP11 - LINE PRINTER CONTROLLER
  1685					;
  1686		000004			LE.LVL=	4		; PROCESSOR LEVEL FOR LP11 INTERRUPTS
  1687		000200			LE.VEC=	200		; VECTOR LOCATION
  1688					;
  1689		177514			LE0STS = 177514	;STATUS REGISTER FOR 1ST LP11
  1690		177514				LE.STS=LE0STS
  1691					;
  1692		100000				LE.ERR=	B15	; ERROR BIT(POWER OFF, NO PAPER, GATE, TEMP, OFFLINE)
  1693		000200				LE.DNE=	B7	; READY FOR NEXT CHARACTER
  1694		000100				LE.INE=	B6	; INTERRUPT ENABLE
  1695					;
  1696		177516			LE0DAT = 177516	;DATA REGISTER
  1697		177516				LE.DAT=LE0DAT
  1698					;
  1699					;
  1700					;FOR THE SECOND LP11
  1701		177520			LE1STS = 177520
  1702		177522			LE1DAT = 177522
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-46
C11DMC.MAC    04-JAN-83 11:18			LP20 - LINEPRINTER CONTROLLER

  1704					.SBTTL		LP20 - LINEPRINTER CONTROLLER
  1705					;
  1706					; LP20 HARDWARE DEVICE REGISTER DEFINITIONS
  1707					;
  1708		000004			LP.LVL	= 4		;BUS REQUEST PRIORITY
  1709		000754			LP.VEC	= 754		;FIRST LP VECTOR
  1710								;
  1711		175400			LP0STS	= 175400	;LP20 UNIT 0 FIRST REGISTER BLOCK
  1712								;
  1713		000000			LPCSRA=0		;CONTROL AND STATUS REGISTER A
  1714	000000'					NAMEBT	LPCSRA,0,<LP.ERR,LP.PGZ,LP.CHI,LP.VFR,LP.ONL,LP.DH>
  1715	000000'					NAMEBT	,,<LP.RSE,LP.LOI,LP.DNE,LP.IE,LP.B17,LP.B16>
  1716	000000'					NAMEBT	,,<LP.MD1,LP.MD0,LP.PEN,LP.GO>
  1717		000000						.REPT	0
  1718							LP.ERR=	ERROR (R)
  1719							LP.PGZ=	PAGE ZERO (R)
  1720							LP.CHI=	UNDEFINED CHAR TRAPPED (R)
  1721							LP.VFR=	VERT FORMAT UNIT READY (R)
  1722							LP.ONL=	ONLINE (R)
  1723							LP.DH=	DELIMITER HOLD (R-W)
  1724							LP.RSE=	RESET ERRORS (W)
  1725							LP.LOI=	LOCAL INITIALIZE (W)
  1726
  1727							LP.DNE=	DONE (R)
  1728							LP.IE=	INTERRUPT ENABLE (R-W)
  1729							LP.B17=	HIGH ORDER BUS ADDRESS BITS (R-W)
  1730							LP.B16=		"
  1731							LP.MD1=	OPERATION MODE BITS (R-W)
  1732							LP.MD0=		"
  1733							LP.PEN=	PARITY CHECK INTERRUPT ENABLE (R-W)
  1734							LP.GO=	START COMMAND (R-W)
  1735								.ENDR
  1736									;
  1737		000004						TSTMOD=	LP.MD0 * 1	;TEST MODE
  1738		000010						VFULOD=	LP.MD0 * 2	;VFU LOAD MODE
  1739		000014						RAMLOD=	LP.MD0 * 3	;LOAD TRANSLATION RAM
  1740		000014						LP.MDS=	LP.MD0 ! LP.MD1	;MODE BIT MASK
  1741		000060						LP.XAD=	LP.B17!LP.B16	;HIGH ORDER BUSADD BITS
  1742		000103						ENBGO=	LP.PEN!LP.IE!LP.GO ;ENABLES AND GO
  1743									;
  1744		000002			LPCSRB=2			;CONTROL AND STATUS REGISTER B
  1745	000000'					NAMEBT	LPCRSA,0,<LP.DV,LP.180,LP.NRD,LP.PAR>
  1746	000000'					NAMEBT	,,<LP.OPT,LP.TS2,LP.TS1,LP.TS0,LP.OFL,LP.VFE>
  1747	000000'					NAMEBT	,,<LP.PER,LP.MPE,LP.RPE,LP.SYN,LP.DEM,LP.GOE>
  1748									;
  1749		000000						.REPT	0
  1750							LP.DV=	VALID DATA (R)
  1751							LP.180=	PRINTER IS AN LA180 (R)
  1752							LP.NRD=	LINE PRINTER NOT READY (R)
  1753							LP.PAR=	LINE PRINTER PARITY (R)
  1754							LP.OPT=	PRINTER HAS OPTICAL VFU (R)
  1755							LP.TS2=	TEST MODE BITS (R-W)
  1756							LP.TS1=		"
  1757							LP.TS0=		"
  1758
  1759							LP.OFL=	DEVICE NOT READY (R)
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-47
C11DMC.MAC    04-JAN-83 11:18			LP20 - LINEPRINTER CONTROLLER

  1760							LP.VFE=	CHANNEL TYPE ERROR (R)
  1761							LP.PER=	VARIOUS PARITY ERRORS (R)
  1762							LP.MPE=		"
  1763							LP.RPE=		"
  1764							LP.SYN=	SYNCH TIMEOUT (DATA LATE) (R)
  1765							LP.DEM=	DEMAND TIMEOUT (PRINTER HANG) (R)
  1766							LP.GOE=	GO ERROR (R-W)
  1767								.ENDR
  1768									;
  1769		000004			LPBSAD=4			;BUS ADDRESS REGISTER (R-W)
  1770									;
  1771		000006			LPBCTR=6			;BYTE COUNT (2'S COMPLEMENT)
  1772							; BITS	15-12	NOT USED
  1773							;	11-0	BYTE COUNT (R-W)
  1774							;
  1775		000010			LPPCTR=10			;PAGE COUNTER
  1776							; BITS	15-12	NOT USED
  1777							;	11-0	PAGE COUNT (R-W)
  1778							;
  1779		000012			LPRAMD=12			;RAM DATA REGISTER
  1780	000000'					NAMEBT	LPRAMD,0,<,,,LP.RP,LP.RIN,LP.RDL,LP.RTR,LP.RPI>
  1781		007777					RAMDAT = LP.RP - 1	;MASK FOR WRITABLE RAM BITS
  1782		000020					SLEW = 20	;"SLEW" FLAG FOR VFU
  1783							; BITS	15-13	NOT USED
  1784							;	12	RAM PARITY (R)
  1785							;	11-0	RAM DATA (R-W)
  1786							;
  1787		000014			LPCBUF=14			;(BYTE) CHARACTER BUFFER REGISTER (R-W)
  1788		000015			LPCCTR=15			;(BYTE) COLUMN COUNT REGISTER (R-W)
  1789									;
  1790		000016			LPTDAT=16			;(BYTE) PRINTER DATA REGISTER (R)
  1791		000017			LPCKSM=17			;(BYTE) CHECKSUM REGISTER (R)
  1792									;
  1793		000020			LPRBSZ=20			;SIZE OF HARDWARE REGISTER BLOCK
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-48
C11DMC.MAC    04-JAN-83 11:18			MM11-LP PARITY MEMORY

  1795					.SBTTL		MM11-LP PARITY MEMORY
  1796					;
  1797		000114				MP.VEC=114
  1798		000007				MP.LVL=7
  1799					;
  1800		172100			MP.REG=172100		;ADR OF PARITY REGISTER
  1801					;
  1802		100000				MP.ERR=100000	;ERROR BIT
  1803								; BITS 11-5 ERROR ADDRESS
  1804		000004				MP.WWP=000004	;WRITE WRONG PARITY
  1805		000001				MP.ENB=000001	;ENABLE
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-49
C11DMC.MAC    04-JAN-83 11:18			PA611 - TYPESET READER/PUNCH

  1807					.SBTTL		PA611 - TYPESET READER/PUNCH
  1808					;
  1809		000007			P6.LVL=	7		; PROCESSOR LEVEL FOR PA611P INTERRUPTS
  1810					;
  1811		000007			R6.LVL=	7		; PROCESSOR LEVEL FOR PA611R INTERRUPTS
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-50
C11DMC.MAC    04-JAN-83 11:18			PC11 - PAPER TAPE READER/PUNCH INTERFACE

  1813					.SBTTL		PC11 - PAPER TAPE READER/PUNCH INTERFACE
  1814					;
  1815		000004			PR.LVL=	4		; PROCESSOR LEVEL FOR PC11 READER INTERRUPTS
  1816		000070			PR.VEC=	70		; VECTOR FOR PC11 READER
  1817		000004			PP.LVL=	4		; PROCESSOR LEVEL FOR PC11 PUNCH INTERRUPTS
  1818		000074			PP.VEC=	74		; VECTOR FOR PC11 PUNCH
  1819					;
  1820		177554			PP0STS = 177554	;STATUS REGISTER FOR 1ST PC11 PUNCH
  1821		177554			PP.STS=	177554		; PUNCH STATUS REGISTER
  1822					;
  1823		100000				PP.ERR=	B15	; ERROR BIT (NO TAPE OR NO POWER)
  1824		000200				PP.RDY=	B7	; SET WHEN RREADY TO PUNCH A CHARACTER
  1825		000100				PP.INE=	B6	; INTERRUPT ENABLE
  1826					;
  1827		177556			PP.DAT=	177556		; PUNCH BUFFER REGISTER
  1828					;
  1829		177550			PR0STS = 177550		;STATUS REGISTER FOR 1ST PC11 READER
  1830		177550			PR.STS=	177550		; READER STATUS REGISTER
  1831					;
  1832		100000				PR.ERR=	B15	; ERROR BIT (NO TAPE, NO POWER, OR OFF-LINE)
  1833		004000				PR.BSY=	B11	; SET WHEN A CHARACTER IS BEING READ
  1834		000200				PR.DNE=	B7	; CHARACTER IS AVAILABLE IN THE READER BUFFER
  1835		000100				PR.INE=	B6	; INTERRUPT ENABLE
  1836		000001				PR..RE=	B0	; READER ENABLE
  1837					;
  1838		177552			PR.DAT=	177552		; READER BUFFER REGISTER
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-51
C11DMC.MAC    04-JAN-83 11:18			TC11 - DECTAPE CONTROLLER

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

  1896		177350			TC.DAT=	177350			; TC11 DATA REGISTER
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-53
C11DMC.MAC    04-JAN-83 11:18			TM11 - MAGNETIC TAPE CONTROLLER

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

  1954					;
  1955		172524			TM.BCR=	172524			; BYTE COUNT REGISTER
  1956					;
  1957		172526			TM.BAR=	172526			; BYTE ADDRESS REGISTER
  1958					;
  1959		172530			TM.DAT=	172530			; DATA BUFFER
  1960					;
  1961		172532			TM.RDL=	172532			; TU 10 READ LINES
S - VARIOUS SYMBOL AND MACRO DEFINITIONS 22 FEB 77	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-55
C11DMC.MAC    04-JAN-83 11:18		END OF DEVICE DEFINITIONS

  1963					.SBTTL	END OF DEVICE DEFINITIONS
  1964					;
  1965					; HERE AGAIN RESIDE THE HIDDEN DEBUGGING AND OTHER SPECIAL MACROS
  1966					;    WHICH ARE HIDDEN IN THE INTEREST OF SAVING ASSEMBLY TIME RESOURCES
  1967					;    AND LARGE AMOUNTS OF PAPER IN LISTING
  3016						.SBTTL MODULE END
  3017						.SBTTL
  3018					;****************************************************************
  3019					;
  3020					;	END OF S - SYMBOL AND MACRO DEFINITION SECTION
  3021					;
  3022					;****************************************************************
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 1-56
C11DMC.MAC    04-JAN-83 11:18

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

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

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

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

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

  3295					;
  3296					; COPYRIGHT (C) 1977,1978 DIGITAL EQUIPMENT CORPORATION, MAYNARD, MA 01754
  3297					;
  3298					;
  3299					;	MODULE:	CHECK11
  3300					;
  3301					;	DATE:	21-NOV-78
  3302					;
  3303					;	AUTHOR:	TOM PORCHER
  3304					;		TOM POWERS
  3305					;		LEE WEBBER
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 2
C11DMC.MAC    04-JAN-83 11:18

  3307
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 3
C11DMC.MAC    04-JAN-83 11:18

  3309
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 4
C11DMC.MAC    04-JAN-83 11:18

  3311
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 5
C11DMC.MAC    04-JAN-83 11:18

  3313
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 6
C11DMC.MAC    04-JAN-83 11:18

  3315
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 7
C11DMC.MAC    04-JAN-83 11:18

  3317
  3318					.TITLE CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC
  3319					.SBTTL CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC
  3320					;  22 SEP 1977 DMCC/EGF/JBS/LAD/EJW/TEP
  3321					;
  3322					;
  3323					;
  3324					; THIS CODE IS EXECUTED ONCE AND THEN OVERLAID
  3325					;
  3326					;
  3327					;
  3328					;
  3329					; THE CALL TO CHK11 IS AS FOLLOWS:
  3330					;	JSR	PC,CHK.11
  3331					;	.WORD	PTR	;POINTER TO ASCIZ NAME STRING AND EDIT POINTERS
  3332					;	RETURNS TO CALLER FOLLOWING POINTER WORD
  3333					;
  3334					;	CHK11 WILL DETERMINE WHAT HARDWARE IS PRESENT
  3335					;	  AND WILL PERFORM A FEW SIMPLE DIAGNOSTIC TESTS OF THE HDW
  3336					;
  3337					;	FOR DEV = < DH11, DM11BB, DP11, DQ11, DS11, DU11>
  3338					;	CHK11 WILL:	JSR PC,CKA'DEV
  3339					;			WITH (R3) = DEVICE VECTOR
  3340					;			AND (R4) = DEVICE ADR
  3341					;			AND (R1) = DEVICE ADR
  3342					;	ONCE FOR EACH DEVICE AND A FINAL:
  3343					;			JSR	PC,CKA'DEV WITH (R4)=0
  3344					;
  3345					; ALL SYMBOLS BEGINING CHK OR CK ARE RESERVED FOR CHK11
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 7-1
C11DMC.MAC    04-JAN-83 11:18		CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC

  3347						.ENABL	AMA
  3348					; VERSION INFORMATION
  3349					;
  3350	000466'	005015	006012	044103	CKNAME:	.ASCIZ	<15><12><12><14>"CHK11 Hardware Test"
	000474'	030513	020061	060510
	000502'	062162	060567	062562
	000510'	052040	071545	000164
  3351						.EVEN
  3352	000516'	000003	000011	000005		.WORD	CKVMAJ,CKVMIN,CKVEDI
  3353	000524'	000530'	000542'			.WORD	CKVWHN,CKVWHO
  3354					;
  3355		000003			CKVMAJ	= 3	;MAJOR VERSION NUMBER
  3356		000011			CKVMIN	= '	;MINOR VERSION LETTER (AS 'A)
  3357		000005			CKVEDI	= 05.	;EDIT NUMBER
  3358		000001				ED.HIS	= 1		;TYPE OUT DETAILS
  3359	000530'	026465	072512	026556	CKVWHN:	.ASCIZ	"5-Jun-82"	;LAST EDIT DATE
	000536'	031070	   000
  3360		000542'				.EVEN
  3361	000542'	062141	000160		CKVWHO:	.ASCIZ	"adp"		;LAST EDITOR
  3362						.EVEN
  3363					;
  3364					;
  3365					;
  3366					;BE SURE ALL THE REGS ARE DEFINED PROPERLY
  3367					;
  3368		000000				R0=%0
  3369		000001				R1=%1
  3370		000002				R2=%2
  3371		000003				R3=%3
  3372		000004				R4=%4
  3373		000005				R5=%5
  3374		000006				R6=%6
  3375		000006				SP=%6
  3376		000007				R7=%7
  3377		000007				PC=%7
  3378					;
  3379					.IIF NDF FTKG11,FTKG11=	1	;0 IF KG11 MUST BE PRESENT
  3380					;
  3381					;OTHER DEFAULTS
  3382						.IIF NDF FLOATV FLOATV=	300	;FIRST FLOATING VECTOR
  3383						.IIF NDF FLOATD FLOATD=	160000	;FLOATING DEVICES BEGIN HERE
  3384					;
  3385					.IIF NDF DL10AD,DL10AD=.
  3386	000546'	000001				.BLKW	1		;PUT DL10 ADR HERE IF NOWHERE ELSE
  3387					;
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 7-2
C11DMC.MAC    04-JAN-83 11:18		CHK11 MACROS

  3389					.SBTTL	CHK11 MACROS
  3390					.SBTTL		CK11SC
  3391					;
  3392					;THIS MACRO IS USED FOR TYPING TEXT AND ERROR REPORTING.
  3393					;
  3394					;	ARG	BITS	;WHAT TO DO ON A TRAP
  3395		000001					CKEFAT=	B0	;FATAL ERROR - HALT
  3396		000002					CKEPC=	B1	;PRINT ADDRESS OF ERROR TRAP
  3397		000004					CKEMSG=	B2	;PRINT THE MESSAGE FOLLOWING CK11SC
  3398		000010					CKEDID=	B3	;PRINT DEVICE ID AND REG
  3399		000020					CKEMSE=	B4	;PRINT THE MESSAGE POINTED TO BY
  3400									; THE ADDRESS FOLLOWING THE TRAP.
  3401		000040					CKENCL=	B5	;PRINT TEXT WITH OUT CR+LF
  3402		000100					CKEGB=	B6	;PRINT ADR/REG=XXXXX GD=XXXXX  BD=XXXXX XOR=XXXXX
  3403					;
  3404					;	ARG	MSG	;TEXT TO BE OUTPUT
  3405					;
  3406					;	ARG	COMENT	;ADD A COMMENT TO THE TRAP INSTRUCTION
  3407					;
  3408					;	ARG	STOPCD	;ON A FATAL ERROR VALUE TO BE PUT IN R0
  3409					;
  3410					.MACRO	CK11SC	BITS,MSG,COMENT,STOPCD
  3411					.IIF NB,STOPCD,	MOV	#STOPCD,CKSPCD	;VALUE TO DISPLAY ON FATAL ERROR
  3412						    .IF B <MSG>
  3413						TRAP	BITS		;COMENT
  3414						    .IFF ;B <MSG.>
  3415						    .IF	EQ,<BITS&CKEMSE>
  3416						TRAP	BITS!CKEMSG		;COMENT
  3417					;;;;	ASCIZ	<MSG>			;MESSAGE TEXT FOLLOWS TRAP
  3418						    .IFF
  3419						TRAP	BITS&<^CCKEMSG>		;COMENT
  3420						.WORD	MSG			;ADR OF MESSAGE FOLLOWS TRAP
  3421						    .ENDC ;EQ <BITS..>
  3422						    .ENDC ;B <MSG.>
  3423					.ENDM	CK11SC
  3424					;
  3425					;
  3426					;THIS MACRO IS USED FOR SAVING GOOD, BAD, AND ADR ON THE STACK
  3427					;PRIOR TO INVOKING CK11SC
  3428					;
  3429					;	ARG	GD		;GOOD DATA
  3430					;	ARG	BD		;BAD DATA
  3431					;	ARG	ADR		;ADDRESS WHERE IT HAPPENED
  3432					;
  3433					.MACRO	CKSERR	GD,BD,ADR
  3434						MOV	GD,-(SP)			;SAVE GOOD (GD) ON STACK
  3435						MOV	BD,-(SP)			;SAVE BAD (BD) ON STACK
  3436						MOV	ADR,-(SP)		;SAVE ADDRESS (ADR) ON STACK
  3437					.ENDM	CKSERR
  3438					;
  3439					.MACRO	ABORT
  3440						CK11SC	CKEFAT
  3441					.ENDM	ABORT
  3442					;
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 7-3
C11DMC.MAC    04-JAN-83 11:18			$CKINT

  3444					.SBTTL		$CKINT
  3445					;
  3446					;THIS MACRO IS USED TO CHECK INTERRUPT CONDITIONS
  3447					;
  3448					;	ARG	ENBADR		;DEVICE ADR TO ENABLE INTERRUPTS
  3449					;
  3450					;	ARG	INTADR		;DEVICE ADR TO GENERATE AN INTERRUPT
  3451					;
  3452					;	ARG	ENLBIT		;BIT TO ENABLE INTERRUPTS
  3453					;
  3454					;	ARG	INTBIT		;BITS TO CHECK INTERRUPT CONDITIONS
  3455					;
  3456					;	ARG	BITCLR		;BITS TO CLEAR INTERRUPT CONDITIONS
  3457					;				;IF CLEARING INTERRUPT BITS WON'T CLEAR
  3458					;				;THEM.  [EXAMPLE - DL10]
  3459					;
  3460					.MACRO	$CKINT	ENBADR,INTADR,ENLBIT,INTBIT,BITCLR
  3461					.IIF	NB,ENBADR,	MOV	ENBADR,R1			;LOAD ENABLE ADR
  3462					.IIF	NB,INTADR,	MOV	INTADR,R2			;LOAD INTERRUPT ADR
  3463						JSR	R5,CKINT	;GO CHECK INTERRUPTS
  3464						    .IIF NDF I.$$$$,I.XXXX = .
  3465						    .IIF NDF I.$$$$,I.ENAB = . - I.XXXX
  3466						.WORD	ENLBIT		;ENABLE BITS -  ENLBIT
  3467						    .IIF NDF I.$$$$,I.INTS = . - I.XXXX
  3468						.WORD	INTBIT		;INTERRUPT BITS -  INTBIT
  3469						    .IIF NDF I.$$$$,I.INTC = . - I.XXXX
  3470						.WORD	BITCLR+0	;BITS TO CLEAR DEVICE - ARG MAY BE BLANK
  3471						    .IIF NDF I.$$$$,I.RTRN = . - I.XXXX
  3472						    .IIF NDF I.$$$$,I.$$$$ = 0
  3473					.ENDM
  3474					;
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 7-4
C11DMC.MAC    04-JAN-83 11:18			DEVICE

  3476					.SBTTL		DEVICE
  3477					;
  3478					;THIS MACRO IS USED TO TO CALL THE ROUTINE TO CHECK A DEVICE
  3479					;AND ASSIGN THE FLOATING ADDRESS AND VECTORS IF THE DEVICE
  3480					;IS THE TYPE THAT REQUIRES IT.
  3481					;
  3482					;	ARG	A	;DEVICE ADDRESS OR 0 IF FLOATING DEVICE
  3483					;	ARG	MAXN	;MAXIMUM NUMBER OF DEVICES
  3484					;	ARG	VI	;VECTOR INCREMENT
  3485					;	ARG	HI	;HARDWARE INCREMENT
  3486					;	ARG	VM	;VECTOR MULTIPLE
  3487					;	ARG	NAM	;DEVICE NAME ABBREVIATION
  3488					;	ARG	FV	;FIRST VECTOR ADR (FIXED DEV ONLY)
  3489					;
  3490					.MACRO	DEVICE	A,MAXN,VI,HI,VM,NAM,FV
  3491						    .IF DF X'NAM'11
  3492						X'NAM'$$=X'NAM'11	;IF A LOCAL DIAGNOSTIC IS DEFINED, USE IT
  3493						    .IFF
  3494						X'NAM'$$=X.....		;ELSE USE NULL DIAGNOSTIC
  3495						    .ENDC ;DF X'NAM'11
  3496									;
  3497									;
  3498						    .IF DF CKA'NAM'11
  3499						CKA'NAM'$$=CKA'NAM'11	;IF PROGRAM ENTRY DEFINED, USE IT
  3500						    .IFF
  3501						CKA'NAM'$$=CKPOPJ	;ELSE USE NULL SUBROUTINE
  3502						    .ENDC ;DF CKA'NAM'11
  3503									;
  3504									;
  3505						    .IF DF CKV'NAM'11
  3506						CV'NAM'$$=CKV'NAM'11	;IF REAL VECTOR DEFINED, USE IT
  3507						    .IFF
  3508						CV'NAM'$$=0		;ELSE IGNORE EVERYTHING
  3509						    .ENDC ;DF CKV'NAM'11
  3510									;
  3511									;
  3512						.IIF NDF,NAM'.LVL,NAM'.LVL=0	;USE LEVEL NAME IF IT EXISTS
  3513										;
  3514						JSR	R5,CHKDEV		;CALL DEVICE ANALYZER
  3515						    .IIF NDF D.$$$$,D.XXXX=.	;FIRST TIME THROUGH (ONLY)
  3516										; THE OFFSETS ARE DEFINED
  3517						    .IIF NDF D.$$$$,D.BADR=.-D.XXXX
  3518						.WORD	A		;1ST NAM'11 ADR IS A
  3519						    .IIF NDF D.$$$$,D.MAXL=.-D.XXXX
  3520						.BYTE	<MAXN>		;MAXIMUM NUMBER OF NAM'11 IS MAXN,
  3521						    .IIF NDF D.$$$$,D.VINC=.-D.XXXX
  3522						.BYTE	<VI>		;VECTOR INCREMENT IS VI
  3523						    .IIF NDF D.$$$$,D.HINC=.-D.XXXX
  3524						.BYTE	<HI>		;HARDWARE INCREMENT IS HI,
  3525						    .IIF NDF D.$$$$,D.VMUL=.-D.XXXX
  3526						.BYTE	<VM>		;1ST VECTOR MULTIPLE IS VM
  3527						    .IIF NDF D.$$$$,D.CNTP=.-D.XXXX
  3528						.WORD	0		;WILL BECOME NUMBER OF DEVICES
  3529						    .IIF NDF D.$$$$,D.NAMP=.-D.XXXX
  3530						.WORD	N.'NAM'11		;ADDRESS OF ASCIZ NAME STRING
  3531						    .IIF NDF D.$$$$,D.DIAG=.-D.XXXX
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 7-5
C11DMC.MAC    04-JAN-83 11:18			DEVICE

  3532						.WORD	X'NAM'$$		;ADDRESS OF ROUTINE TO CHECK DEVICE
  3533						    .IIF NDF D.$$$$,D.MAIN=.-D.XXXX
  3534						.WORD	CKA'NAM'$$		;CALL FOR MAIN PROGRAM (CKA'NAM'11)
  3535						    .IIF NDF D.$$$$,D.MPVC=.-D.XXXX
  3536						.WORD	CV'NAM'$$		;POINTS TO VECTOR SETUP TABLE
  3537						    .IIF NDF D.$$$$,D.CNTF=.-D.XXXX
  3538						.WORD	0		;WILL CONTAIN NUMBER OF NAM'11 FOUND
  3539						    .IIF NDF D.$$$$,D.FRSV=.-D.XXXX
  3540						.WORD	0		;WILL CONTAIN FIRST NAM'11 VECTOR ADR
  3541						    .IIF NDF D.$$$$,D.PRIO=.-D.XXXX
  3542						.WORD	NAM'.LVL*40	;CONTAINS NAM'11 PI LEVEL
  3543						    .IIF NDF D.$$$$,D.FVFD=.-D.XXXX
  3544						.WORD	FV		;DEVICE FIRST VECTOR (FIXED DEV ONLY)
  3545						    .IIF NDF D.$$$$,D.NEXT=.-D.XXXX
  3546						    .IIF NDF D.$$$$,D.$$$$=0	;DEFINE DEFINITION STOPPER
  3547					.ENDM	DEVICE
  3548					;
  3549					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 8
C11DMC.MAC    04-JAN-83 11:18			DEVICE

  3551
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 9
C11DMC.MAC    04-JAN-83 11:18			DEVICE

  3553
  3554					.SBTTL		CHKCHR
  3555					;
  3556					;THIS MACRO IS USED FOR SETTING CHARACTERISTICS TABLE
  3557					;
  3558					;	ARG	DA		;DEVICE ADDRESS TO PUT IN CHARACTERISTICS TABLE
  3559					;
  3560					;	ARG	DV		;DEVICE VECTOR ADDRESS TO PUT IN TABLE
  3561					;
  3562					;	ARG	PI		;DEVICE PI LEVEL TO PUT IN TABLE
  3563					;
  3564					.MACRO	CHKCHR	DA,DV,PI
  3565					.IIF NB,<DA>,	MOV	DA,CHKCHR+CKDA	;PUT DA IN DEVICE ADR SLOT
  3566					.IIF NB,<DV>,	MOV	DV,CHKCHR+CKDV	;PUT DV IN DEVICE VEC SLOT
  3567					.IIF NB,<PI>,	MOV	PI,CHKCHR+CKPI	;PUT PI IN DEVICE INT LVL SLOT
  3568					.ENDM	CHKCHR
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 9-1
C11DMC.MAC    04-JAN-83 11:18			CKVECT, CKVEC1

  3570					.SBTTL		CKVECT, CKVEC1
  3571					;
  3572					;"CKVECT" INVOKES "CKVEC1" TO BUILD A TABLE
  3573					;FOR EACH DEVICE.  THE INFORMATION IN THE TABLE IS OF THE FOLLOWING FORM:
  3574					;
  3575					;	CKV'NAM'11:
  3576					;		.BYTE	NUMBER OF MAIN ROUTINES
  3577					;		.BYTE	NUMBER OF VECTORS PER DEV
  3578					;		.WORD	NAM'VA'NUM
  3579					;
  3580					;	EXAMPLE:
  3581					;
  3582					;	1.	MAIN PROGRAM HAS 1 DQ11
  3583					;		THE MAIN PROGRAM MUST GIVE DQ #0 VECTOR A THE TAG:  DQVA0
  3584					;					   DQ #0 VECTOR B THE TAG:  DQVB0
  3585					;	THE RESULTING TABLE WILL BE:
  3586					;
  3587					;	CKVDQ11:.BYTE	1,2
  3588					;		DQAV0
  3589					;		DQBV0
  3590					;
  3591					;	2.	MAIN PROGRAM HAS 2 DQ11'S
  3592					;		THE MAIN PROGRAM MUST GIVE DQ #0 VECTOR A THE TAG:  DQVA0
  3593					;					   DQ #0 VECTOR B THE TAG:  DQVB0
  3594					;					   DQ #1 VECTOR A THE TAG:  DQVA1
  3595					;					   DQ #1 VECTOR B THE TAG:  DQVB1
  3596					;
  3597					;	THE RESULTING TABLE WILL BE:
  3598					;
  3599					;	CKVDQ11:.BYTE	2,2
  3600					;		DQVA0
  3601					;		DQVB0
  3602					;		DQVA1
  3603					;		DQVB1
  3604					;
  3605					;
  3606					;	ARG	NAM		;NAME (2 CHARACTERS)
  3607					;	ARG	NUMV		;NUMBER OF VECTORS PER DEVICE
  3608					;	ARG	MAXN		;MAXIMUM NUMBER OF DEVICES OF A TYPE
  3609					;
  3610					.MACRO	CKVECT	NAM,NUMV,MAXN
  3611					CKZQZQ=0
  3612					CV'NAM'11:.BYTE	NAM'QQQ,NUMV			;NUM OF VEC FOR EACH NAM'11 IS NUMV
  3613					NAM'QQQ=0				;DEFINE AND SET TO 0
  3614						.REPT	MAXN
  3615						CKVEC1	NAM,NUMV,\CKZQZQ
  3616						CKZQZQ=CKZQZQ+1
  3617						.ENDR
  3618					.ENDM	CKVECT
  3619					;
  3620					;
  3621					;
  3622					;
  3623					.MACRO	CKVEC1	NAM,NUMV,NUM
  3624						    .IF DF,NAM'VA'NUM
  3625						NAM'QQQ=NAM'QQQ+1		;COUNT NUMBER IN MAIN
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 9-2
C11DMC.MAC    04-JAN-83 11:18			CKVECT, CKVEC1

  3626					.IIF GE,<NUMV-1>,	.WORD	NAM'VA'NUM		;VECTOR A FOR DEV NAM'11
  3627					.IIF GE,<NUMV-2>,	.WORD	NAM'VB'NUM		;VECTOR B FOR DEV NAM'11
  3628					.IIF GE,<NUMV-3>,	.WORD	NAM'VC'NUM		;VECTOR C FOR DEV NAM'11
  3629					.IIF GE,<NUMV-4>,	.WORD	NAM'VD'NUM		;VECTOR D FOR DEV NAM'11
  3630						    .ENDC
  3631					.ENDM	CKVEC1
  3632					;
  3633					.MACRO	LDVECT	DEV
  3634						    .IF DF DEV'INT
  3635						MOV	#DEV'INT,DEV'VEC		;SET DEV TO GO TO DEV'VEC
  3636						MOV	#DEV'LVL*40,DEV'VEC+2		; AND SET THE LEVEL.
  3637						    .IFF
  3638						MOV	0,@#0			;LEAVE ROOM FOR ENTRY TO BE PATCHED
  3639						MOV	2,@#2			;
  3640						    .ENDC
  3641					.ENDM	LDVECT
  3642					 
  3643					;
  3644					;  LIMIT FOR INTERRUPT VECTORS WHICH CHECK11 WILL MONITOR
  3645					;
  3646					 
  3647		000400			$$HERE	= <CKNAME-START>&177700	;ABSOLUTE ADDRESS OF TOP OF CHK11
  3648		   001				.IF LT,<1000-$$HERE>
  3649					VCTLIM:	.WORD	$$HERE
  3650						.IFF
  3651	000550'	001000			VCTLIM:	.WORD	1000
  3652		   000				.ENDC
  3653					;
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 9-3
C11DMC.MAC    04-JAN-83 11:18		CHK11 DEVICE NAME TABLE

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

  3709	001152'	000001			CHKFLG:	.BLKW	1		;CHK11 FLAGS
  3710		000001				CKFERR=	B0		;ERROR DETECTED
  3711		100000				CKFIDT=	B15		;ID ALREADY TYPED
  3712	001154'	000001			CKDEVN:	.BLKW	1		;UNIT # CURRENTLY BEING TESTED
  3713	001156'	000001			CKDNAM:	.BLKW	1		;ADR OF DEVICE NAME(.ASCIZ)
  3714					;
  3715	001160'	000001			CK.CAL:	.BLKW	1		;RETURN ADDRESS TO CALLER OF CHK11
  3716	001162'	000001			CK.DMC:	.BLKW	1		;DMC CSR ADDRESS (FOR REMOTE REPORTING)
  3717	001164'	000001			CK.CSP:	.BLKW	1		;CALLER'S SP ON ENTRY
  3718	001166'	000001			CK.OSP:	.BLKW	1		;SAVE AREA FOR CK11'S SP
  3719					;
  3720	001170'	000001			PHYLIM:	.BLKW	1		;LIMIT OF PHYSICAL MEMORY (BLOCKS)
  3721		000060			NLINES	= 48.			;NUMBER OF DMC/KMC LINES, 4 PER DEVICE
  3722	001172'	000000			MDCSRP:	.WORD	0		;POINTER INTO MDCSR TABLE
  3723	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
  3724	001214'	000000	000000	000000			0,0,0,0		;
	001222'	000000
  3725					;
  3726	001224'	000207			CKPOPJ:	RTS	PC		;CKPOPJ IS THE GENERAL NULL SUBROUTINE
  3727	001226'	000000			CKHALT:	HALT			;CKHALT IS THE HARD ERROR ROUTINE
  3728					.IIF NDF CKADLX,CKADLX=CKPOPJ
  3729					.IIF NDF CKAMEM,CKAMEM=CKPOPJ
  3730					.IIF NDF CKAKW1,CKAKW1=CKPOPJ
  3731					.IIF NDF CKAKG1,CKAKG1=CKPOPJ
  3732					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 10
C11DMC.MAC    04-JAN-83 11:18		CHK11 DEVICE NAME TABLE

  3734
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 11
C11DMC.MAC    04-JAN-83 11:18		CHK11 DEVICE NAME TABLE

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

  3782					;NOW CHECK THE CTY (CONSOLE TTY)
  3783					;
  3784	001400'	012737	001452'	000004	CHKCTY:	MOV	#10$,NXMVEC	;WHERE TO TRAP IF NO CTY
  3785	001406'	042737	100000	001152'		BIC	#CKFIDT,CHKFLG	;SO WE PRINT DEV ID
  3786	001414'	012737	100000	013726'		MOV	#100000,CKTRPT	;ASSUME A CTY EXISTS AS THE REPORT DEV
  3787	001422'	005737	177564			TST	CTOSTS		;IF ANY OF THESE FOUR TST'S TRAPS
  3788	001426'	005737	177566			TST	CTOCHR		;  THEN WE DEEM THERE IS NO CTY
  3789	001432'	005737	177560			TST	CTISTS		;
  3790	001436'	005737	177562			TST	CTICHR		;
  3791	001442'	012737	014756'	000004		MOV	#CKBUST,NXMVEC	;CTY EXISTS, RESET BUS ERROR VECTOR
  3792	001450'	000411				BR	14$		;
  3793									;
  3794	001452'	022626				10$:	CMP	(SP)+,(SP)+	;POP TRAP
  3795	001454'	012737	000200	013726'			MOV	#200,CKTRPT ;NO CTY EXISTS, ASSUME REMOTE REPORTING
  3796	001462'	012737	014756'	000004			MOV	#CKBUST,NXMVEC ;RESET BUS ERROR VECTOR
  3797	001470'	000137	002006'				JMP	CHKCKD	;SKIP TO END OF CTY CHECK
  3798									;
  3799	001474'				14$:				; CHECK TO SEE IF CTY OUTPUT SHOULD BE
  3800									;    SUPPRESSED OR DIVERTED OR BOTH
  3801	001474'	012702	100200			MOV	#100200,R2	;PLAN TO DIRECT OUTPUT TO CTY
  3802		000000				.REPT	0	;***OMITTED***;
  3803					30$:	JSR	R0,CKTCRL	;ASK FOR DIRECTION
  3804						.ASCIZ	"IS THIS CTY THE DEFAULT REPORTING DEVICE? (Y OR N) "<377>
  3805						.EVEN			;
  3806						JSR	PC,CKGYES	;WAIT FOR ANSWER
  3807						BCS	30$		;
  3808						BEQ	40$		;"YES"
  3809						CLR	R2		;"NO", DON'T OUTPUT TO CTY
  3810					40$:	JSR	R0,CKTCRL	;CHECK FOR REMOTE REPORTING
  3811						.ASCIZ	"IS OUTPUT TO BE DIRECTED TO A REMOTE RECORDER? (Y OR N) "<377>
  3812						.EVEN			;
  3813						JSR	PC,CKGYES	;WAIT FOR ANSWER
  3814						BCS	40$		;
  3815						BNE	50$		;"NO", DON'T OUTPUT REMOTELY
  3816						.ENDR		;***OMITTED PART***;
  3817	001500'	010237	013726'		50$:	MOV	R2,CKTRPT	;SAVE REQUESTED MODE
  3818									;TEST CTY
  3819	001504'	012704	177564			MOV	#CTOSTS,R4	;CTY OUTPUT STATUS
  3820	001510'	010437	015476'			MOV	R4,CHKCHR+CKDA	;DEV ADR
  3821	001514'	010401				MOV	R4,R1		;CHKBIT NEEDS ADR IN R1
  3822	001516'	012737	000064	015500'		MOV	#CTOVEC,CHKCHR+CKDV;CTY OUTPUT VECTOR
  3823	001524'	012737	000573'	001156'		MOV	#N.CO11,CKDNAM	;NAME ADDRESS
  3824	001532'	005037	001154'			CLR	CKDEVN		;DEVICE 0
  3825	001536'	004537	007570'			JSR	R5,CHKBIT	;CHECK THE FOLLOWING BITS FOR R/W
  3826	001542'	000104				.WORD	CO.INE!CO..MM	;BITS TO CHECK FOR R/W
  3827	001544'	012714	000100			MOV	#CO.INE,(R4)	;ENABLE INTERRUPTS
  3828	001550'	004537	010026'			JSR	R5,CHKINL	;CHECK INTERRUPT AND FIND DEV LEVEL
  3829	001554'	177777				.WORD	ALLBTS		;TIME LOOP CONSTANT
  3830	001556'	005014				CLR	(R4)		;CLR DEV OUT
  3831									;
  3832	001560'					FALLR	CHKCKB		;
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 11-2
C11DMC.MAC    04-JAN-83 11:18		**** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****

  3834					;NOW CHECK THE KBRD SECTION
  3835					;
  3836	001560'	042737	100000	001152'	CHKCKB:	BIC	#CKFIDT,CHKFLG	;PRINT DEV ID
  3837	001566'	012704	177560			MOV	#CTISTS,R4	;KBRD STATUS REG
  3838	001572'	010437	015476'			MOV	R4,CHKCHR+CKDA	;DEV ADR
  3839	001576'	010401				MOV	R4,R1		;CHKBIT NEEDS ADR IN R1
  3840	001600'	012737	000060	015500'		MOV	#CTIVEC,CHKCHR+CKDV ;VECTOR ADR
  3841	001606'	012737	000564'	001156'		MOV	#N.CI11,CKDNAM	;ADR OF DEV NAME
  3842	001614'	004537	007570'			JSR	R5,CHKBIT	;CHECK THE FOLLOWING BITS
  3843	001620'	000100				.WORD	CI.INE		;BITS TO CHECK R/W
  3844									;
  3845	001622'	012700	000466'		15$:	MOV	#CKNAME,R0	;GET ADDR OF .ASCIZ \PROG NAME\
  3846	001626'	004737	013730'			JSR	PC,CKTTXT	;TYPE PROGRAM NAME, ETC.
  3847	001632'	010002				MOV	R0,R2		;GET ADDR OF EDIT DATA (FOLLOWS PROG NAME)
  3848	001634'	004037	013770'			JSR	R0,CKTCRL	;
  3849	001640'	062566	071562	067551		.ASCIZ	"version "	;
	001646'	020156	   000
  3850		001652'				.EVEN			;
  3851	001652'	012200				MOV	(R2)+,R0	;GET MAJOR VERSION NUMBER
  3852	001654'	004737	014016'			JSR	PC,CKTOCT	;TYPE IT
  3853	001660'	012201				MOV	(R2)+,R1	;GET MINOR VERSION LETTER
  3854	001662'	001402				BEQ	20$		;NOT THERE
  3855	001664'	004737	014070'			JSR	PC,CKTCHR	;TYPE IT
  3856	001670'	112701	000050		20$:	MOVB	#'(,R1		;TYPE EDIT NUMBER IN ()
  3857	001674'	004737	014070'			JSR	PC,CKTCHR	;
  3858	001700'	012200				MOV	(R2)+,R0	;GET EDIT NUMBER
  3859	001702'	004737	014016'			JSR	PC,CKTOCT	;TYPE IT
  3860	001706'	112701	000051			MOVB	#'),R1		;
  3861	001712'	004737	014070'			JSR	PC,CKTCHR	;
  3862		   001				    .IF DF ED.HIS	;DO NEXT ONLY IF LAST EDIT HISTORY REQ'D
  3863	001716'	004037	013774'			JSR	R0,CKTSTR	;
  3864	001722'	067440	020146	   000		.ASCIZ	" of "		;
  3865		001730'				.EVEN			;
  3866	001730'	012200				MOV	(R2)+,R0	;DATE STRING ADDRESS
  3867	001732'	004737	013730'			JSR	PC,CKTTXT	;
  3868	001736'	004037	013774'			JSR	R0,CKTSTR	;
  3869	001742'	061040	020171	   000		.ASCIZ	" by "		;
  3870		001750'				.EVEN			;
  3871	001750'	012200				MOV	(R2)+,R0	;
  3872	001752'	004737	013730'			JSR	PC,CKTTXT	;
  3873		   000				    .ENDC ;DF ED.HIS	;
  3874	001756'	004037	013770'			JSR	R0,CKTCRL	;
  3875	001762'	062524	072163	067151		.ASCIZ	"Testing begins..."<15><12>
	001770'	020147	062542	064547
	001776'	071556	027056	006456
	002004'	000012
  3876						.EVEN			;
  3877									;
  3878	002006'				CHKCKD:	FALLR	CKCPU		;
  3879					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 12
C11DMC.MAC    04-JAN-83 11:18		**** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****

  3881
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 13
C11DMC.MAC    04-JAN-83 11:18		**** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****

  3883
  3884					; DETERMINE PROCESSOR MODEL NUMBER
  3885					;
  3886	002006'	004037	013770'		CKCPU:	JSR	R0,CKTCRL	;
  3887	002012'	044124	020105	051120		.ASCIZ	"THE PROCESSOR SEEMS TO BE A "
	002020'	041517	051505	047523
	002026'	020122	042523	046505
	002034'	020123	047524	041040
	002042'	020105	020101	   000
  3888		002050'				.EVEN			;
  3889									;
  3890	002050'	012700	002236'			MOV	#CKWRD,R0	;GET ADDRESS OF TEST WORD
  3891					;;;;	MOV	R0,(R0)+	;STORE AND AUTOINC ON SAME REGISTER
  3892	002054'	010020				.WORD	10020		;	(PRE-ASSEMBLE TO PREVENT Z ERROR)
  3893	002056'	012700	002100'			MOV	#5$,R0		;GET BUMPER TABLE ADDRESS
  3894	002062'	023727	002236'	002236'		CMP	CKWRD,#CKWRD	;BUMP BEFORE STORE?
  3895	002070'	001402				BEQ	3$		;NO, CPU IS NEWER THAN THAT
  3896									;YES, CPU IS OF /20 /40 VINTAGE
  3897	002072'	062700	000004			ADD	#9$-5$,R0	;MODIFY ADDRESS INTO BUMPER TABLE
  3898									;
  3899	002076'				3$: ;;;	JMP	(R0)+		;BUMP BEFORE JUMP?
  3900	002076'	000120				.WORD	120		;	(PRE-ASSEMBLE TO PREVENT Z ERROR)
  3901	002100'	000403			5$:	BR	10$		;NO, CPU IS LIKE /04 /34 /45
  3902	002102'	000562				BR	CK05		;YES, CPU IS /05 /10
  3903									;BUMP BEFORE JUMP?
  3904	002104'	000572			9$:	BR	CK40		;NO, CPU IS /40
  3905	002106'	000563				BR	CK20		;YES, CPU IS /15 OR /20
  3906									;
  3907	002110'				10$:				;CPU IS /04 /34/ OR /40 OR HIGHER
  3908	002110'	013746	000004			MOV	@#4,-(SP)	;SAVE BUS ERROR VECTOR
  3909	002114'	012737	002154'	000004		MOV	#20$,@#4	;SET LOCAL ONE
  3910	002122'	012700	177770			MOV	#177770,R0	;TRY TO FIND NONEXISTENT MEMORY
  3911	002126'	005710			15$:	TST	(R0)		;IS THIS MEMORY HERE?
  3912	002130'	162700	000002			SUB	#2,R0		;YES, THERE WAS NO TRAP
  3913	002134'	001374				BNE	15$		;LOOK AGAIN (UNLESS ALL MEMORY SEEN)
  3914									;THIS IS RIDICULOUS! THERE ARE NO HOLES
  3915									;  IN MEMORY, OR THE BUS ERROR TRAPPER
  3916									;  DOESN'T WORK
  3917	002136'				17$:	CK11SC	CKEPC,<NO NXM??>,<NO NONEXISTENT MEMORY TRAP>
  3918	002140'	047516	047040	046530		.ASCIZ	"NO NXM??"	;
	002146'	037477	   000
  3919		002152'				.EVEN			;
  3920	002152'	000410				BR	26$		;
  3921									;
  3922	002154'	012737	002170'	000004	20$:	MOV	#25$,@#4	;SET UP NEXT BUS ERROR ADDRESS
  3923	002162'	010001				MOV	R0,R1		;COPY ADDRESS WHICH DIDN'T ANSWER
  3924	002164'	010220				MOV	R2,(R0)+	;REPEAT TRAP
  3925	002166'	000763				BR	17$		;YOU CAN'T GET HERE UNLESS TRAP FAILS
  3926	002170'	062706	000010		25$:	ADD	#10,SP		;POP BOTH TRAPS
  3927	002174'	012637	000004		26$:	MOV	(SP)+,@#4	;RESTORE SAVED BUS ERROR VECTOR
  3928	002200'	020001				CMP	R0,R1		;DID R0 POP DURING TRAP?
  3929	002202'	001517				BEQ	CK04		;NO, CPU IS /04
  3930	002204'	013746	000010			MOV	@#10,-(SP)	;YES, SAVE RESERVED INSTRUCTION VECTOR
  3931	002210'	012737	002224'	000010		MOV	#30$,@#10	;SET UP A NEW ONE
  3932	002216'	005000				CLR	R0		;R0 WILL STAY CLEAR IF CPU IS /45
  3933	002220'	106700				.WORD	106700		;11/34 MFPS INSTR (OP NAME=A MACRO NAME)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 13-1
C11DMC.MAC    04-JAN-83 11:18		**** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****

  3934	002222'	005200				INC	R0		;DIDN'T TRAP, CPU IS /34 (OR /03)
  3935	002224'	012637	000010		30$:	MOV	(SP)+,@#10	;RESTORE RES INSTR VECTOR
  3936	002230'	005700				TST	R0		;WAS THERE A TRAP?
  3937	002232'	001114				BNE	CK34		;NO, CPU IS 11/34
  3938	002234'	000521				BR	CK45		;YES, CPU IS 11/45
  3939									;
  3940	002236'	000000			CKWRD:	.WORD	0		;CPU ID TEST WORD
  3941	002240'	000000			CKCPUN:	.WORD	0		;CPU MODEL NUMBER (DECIMAL)
  3942						    .ENABL LSB		;
  3943	002242'	   004			4$:	.BYTE	4.
  3944	002243'	   113	030504	026461		.ASCIZ	"KD11-D (11/04)"
	002250'	020104	030450	027461
	002256'	032060	000051
  3945	002262'	   005			5$:	.BYTE	5.
  3946	002263'	   113	030504	026461		.ASCIZ	"KD11-B (11/05 OR 11/10)"
	002270'	020102	030450	027461
	002276'	032460	047440	020122
	002304'	030461	030457	024460
	002312'	   000
  3947	002313'	   024			20$:	.BYTE	20.
  3948	002314'	040513	030461	024040		.ASCIZ	"KA11 (11/20) OR KC11 (11/15)"
	002322'	030461	031057	024460
	002330'	047440	020122	041513
	002336'	030461	024040	030461
	002344'	030457	024465	   000
  3949	002351'	   042			34$:	.BYTE	34.
  3950	002352'	042113	030461	042455		.ASCIZ	"KD11-E (11/34)"
	002360'	024040	030461	031457
	002366'	024464	   000
  3951	002371'	   050			40$:	.BYTE	40.
  3952	002372'	042113	030461	040455		.ASCIZ	"KD11-A (11/35 OR 11/40)"
	002400'	024040	030461	031457
	002406'	020065	051117	030440
	002414'	027461	030064	000051
  3953	002422'	   055			45$:	.BYTE	45.
  3954	002423'	   113	030502	026461		.ASCIZ	"KB11-A (11/45)"
	002430'	020101	030450	027461
	002436'	032464	000051
  3955						.EVEN			;
  3956									;
  3957	002442'	012700	002242'		CK04:	MOV	#4$,R0		;
  3958	002446'	000417				BR	CKCPUE		;
  3959									;
  3960	002450'	012700	002262'		CK05:	MOV	#5$,R0		;
  3961	002454'	000414				BR	CKCPUE		;
  3962									;
  3963	002456'	012700	002313'		CK20:	MOV	#20$,R0		;
  3964	002462'	000411				BR	CKCPUE		;
  3965									;
  3966	002464'	012700	002351'		CK34:	MOV	#34$,R0		;
  3967	002470'	000406				BR	CKCPUE		;
  3968									;
  3969	002472'	012700	002371'		CK40:	MOV	#40$,R0		;
  3970	002476'	000403				BR	CKCPUE		;
  3971									;
  3972	002500'	012700	002422'		CK45:	MOV	#45$,R0		;
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 13-2
C11DMC.MAC    04-JAN-83 11:18		**** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****

  3973	002504'	000400				BR	CKCPUE		;
  3974						    .DSABL LSB		;
  3975									;
  3976	002506'	112037	002240'		CKCPUE:	MOVB	(R0)+,CKCPUN	;SAVE PROCESSOR MODEL NUMBER AWAY FOR REFERENCE
  3977	002512'	004737	013730'			JSR	PC,CKTTXT	;TYPE OUT THE ID TEXT
  3978		   001				    .IF NE 1
  3979	002516'	004037	013770'			JSR	R0,CKTCRL	;TYPE OUT EXPECTED MODEL NUMBER
  3980	002522'	041411	045510	030461		.ASCIZ	"	CHK11 EXPECTED AN 11/"
	002530'	042440	050130	041505
	002536'	042524	020104	047101
	002544'	030440	027461	   000
  3981		002552'				.EVEN			;
  3982	002552'	012700	000042			MOV	#PDP11,R0	;ADD NUMBER
  3983	002556'	004737	014164'			JSR	PC,CKTDEC
  3984		   000				    .ENDC ;NE 1
  3985									;
  3986	002562'					FALLR	CKDLXB		;FALL INTO DL10 SEEKER
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 13-3
C11DMC.MAC    04-JAN-83 11:18		**** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****

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

  4041					; CHECK TO SEE IF SYSTEM IS MAPPED
  4042					;
  4043	002562'				CHKMAP:
  4044						    .IIF NDF MMGSR0,MMGSR0 = 177572
  4045									;
  4046	002562'	012737	002576'	000004		MOV	#48$,NXMVEC	;SET UP BUS ERROR VECTOR
  4047	002570'	013700	177572			MOV	MMGSR0,R0	;READ MEM MGT STATUS
  4048									;
  4049		   001				    .IF NDF M$$MGE
  4050						CK11SC	<CKEMSG>,<WRONG VERSION>
  4051						.ASCIZ	"A NON-MAPPING CHK11 IS LOADED ON A MAPPED SYSTEM"<15><12><377>
  4052						.EVEN			;
  4053						BR	63$		;
  4054									;
  4055					48$:	CMP	(SP)+,(SP)+	;POP TRAP, IGNORE IT (IT WAS HOPED FOR)
  4056						FALLR	63$		;DROP RIGHT OUT
  4057						    .IFF
  4058	002574'	000433				BR	63$		;NO TRAP, THAT'S WHAT WAS EXPECTED
  4059									;TRAP, REPORT
  4060	002576'				48$:	CK11SC	<CKEMSG>,<WRONG VERSION>
  4061	002600'	020101	040515	050120		.ASCIZ	"A MAPPING CHK11 IS LOADED ON UNMAPPED HARDWARE"<15><12><377>
	002606'	047111	020107	044103
	002614'	030513	020061	051511
	002622'	046040	040517	042504
	002630'	020104	047117	052440
	002636'	046516	050101	042520
	002644'	020104	040510	042122
	002652'	040527	042522	005015
	002660'	000377
  4062	002662'					ABORT			;
  4063						.EVEN			;
  4064		   000				    .ENDC ;NDF M$$MGE
  4065	002664'				63$:	FALLR	CHKMMG		;CHECK MEMORY MGT
  4066					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 14
C11DMC.MAC    04-JAN-83 11:18		**** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****

  4068
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 15
C11DMC.MAC    04-JAN-83 11:18		**** CHK.11 - CHK11 ENTRY, PROGRAM SETUP ****

  4070
  4071					.SBTTL		CHECK KT11 HARDWARE
  4072					;
  4073					;VERIFY MEMORY MANAGEMENT HARDWARE - *** CODED FOR 11/34 SUBSET ***
  4074					;
  4075	002664'				CHKMMG:				;
  4076		   001				    .IF DF M$$MGE
  4077	002664'	004037	013770'			JSR	R0,CKTCRL	;
  4078	002670'	045412	030524	020061		.ASCIZ	<12>"KT11 memory management test"
	002676'	062555	067555	074562
	002704'	066440	067141	063541
	002712'	066545	067145	020164
	002720'	062564	072163	   000
  4079		002726'				.EVEN			;
  4080	002726'	012704	000250			MOV	#MMGVEC,R4	;SAVE ADDRESS OF MEM MGT VECTOR
  4081	002732'	011446				MOV	(R4),-(SP)	;SAVE CURRENT MEM MGT VECTOR
  4082	002734'	012714	003112'			MOV	#25$,(R4)	;SET MEM MGT VECTOR TO "BAD TRAP"
  4083	002740'	012700	077406			MOV	#PD.PLF!<6*PD.AC0>,R0 ;SET UP CONSTANT FOR FULL PAGE, R/W ACCESS
  4084	002744'	032737	000001	177572		BIT	#MG.ENB,MMGSR0	;MEM MGT ALREADY ENABLED?
  4085	002752'	001020				BNE	10$		;YES, DON'T MESS
  4086	002754'	005037	172340			CLR	KISAR0		;NO, SET UP REASONABLY, AS APR0 TO PAGE ZERO
  4087	002760'	010037	172300			MOV	R0,KISDR0	;FULL PAGE ACCESS, R/W, EXPAND UP
  4088	002764'	012737	000200	172342		MOV	#PAGE1B,KISAR1	;MAP THIS PROGRAM TO SELF
  4089	002772'	010037	172302			MOV	R0,KISDR1	;INCLUDE SAME TOTAL ACCESS
  4090	002776'	012737	007600	172356		MOV	#PAGE7B,KISAR7	;SPECIAL MAP TO I/O PAGE
  4091	003004'	010037	172316			MOV	R0,KISDR7	;
  4092	003010'	005237	177572			INC	MMGSR0		;TURN ON MEMORY MANAGEMENT
  4093									;
  4094	003014'				10$:				;RELOCATION CONSISTENCY CHECK
  4095									;
  4096	003014'	013737	172340	172352		MOV	KISAR0,KISAR5	;MAP APR5 TO SAME MEMORY AS APR0
  4097	003022'	013737	172300	172312		MOV	KISDR0,KISDR5	;  AND COPY OVER THE PDR TOO
  4098	003030'	012701	000302			MOV	#PAGE0+302,R1	;GET POINTERS INTO PAGES 0 AND 5
  4099	003034'	012702	120302			MOV	#PAGE5+302,R2	;  THE OFFSET INTO THE PAGE IS MOSTLY ARBITRARY
  4100									;
  4101	003040'	011146				MOV	(R1),-(SP)	;SAVE THE CURRENT CONTENTS OF THE DIDDLE LOC
  4102	003042'	010712			16$:	MOV	PC,(R2)		;ENSURE TEST LOCATION HAS NON-ZERO CONTENTS
  4103	003044'	005011				CLR	(R1)		;CLEAR THE TEST LOCATION THROUGH THE OTHER PTR
  4104	003046'	005712				TST	(R2)		;DID IT REALLY CLEAR?
  4105	003050'	001015				BNE	20$		;NO, WHAT A SHAME
  4106	003052'	010711				MOV	PC,(R1)		;YES, ENSURE IT'S NOT ZERO AGAIN
  4107	003054'	021112				CMP	(R1),(R2)	;STILL MATCH?
  4108	003056'	001012				BNE	20$		;NO, THAT'S FUNNY, IT WORKED BEFORE
  4109									;
  4110	003060'	023737	172340	172352		CMP	KISAR0,KISAR5	;DONE OFFSET TEST YET?
  4111	003066'	001015				BNE	30$		;YES
  4112	003070'	062737	000002	172352		ADD	#2,KISAR5	;NO, CHANGE APR6 UP
  4113	003076'	162702	000200			SUB	#2*BSFACT,R2	;  AND PAGE POINTER DOWN ACCORDINGLY
  4114	003102'	000757				BR	16$		;REPEAT TEST FOR DIFFERENT RELOCATION ADDRESSES
  4115									;
  4116	003104'				20$:	CK11SC	CKEMSE,101$	;
  4117	003110'	000404				BR	30$		;
  4118	003112'				25$:	CK11SC	CKEMSE,104$	;
  4119	003116'	000400				BR	26$		;
  4120	003120'	000002			26$:	RTI			;
  4121									;
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 15-1
C11DMC.MAC    04-JAN-83 11:18			CHECK KT11 HARDWARE

  4122	003122'	012611			30$:	MOV	(SP)+,(R1)	;RESTORE ORIGINAL TEST WORD CONTENTS
  4123									;
  4124									;PAGE LENGTH PROTECTION TEST
  4125									;
  4126	003124'	013737	172340	172352		MOV	KISAR0,KISAR5	;USE VECTOR SPACE AGAIN FOR TEST
  4127	003132'	012737	000406	172312		MOV	#PD.PL0!<6*PD.AC0>,KISDR5 ;SET 2 BLOCK PAGE, R/W, UP
  4128	003140'	012701	000176			MOV	#PAGE0+<2*BSFACT>-2,R1 ;SET PTRS NEAR PAGE BOUNDARY
  4129	003144'	012702	120176			MOV	#PAGE5+<2*BSFACT>-2,R2 ;
  4130	003150'	012146				MOV	(R1)+,-(SP)	;FETCH FROM BELOW BOUNDARY
  4131	003152'	012622				MOV	(SP)+,(R2)+	;WRITE IT BACK, DIFFERENT PTR, SHOULDN'T TRAP
  4132	003154'	012146				MOV	(R1)+,-(SP)	;FETCH FROM ABOVE BOUNDARY, PAGE 0, NO TRAP
  4133	003156'	012714	003172'			MOV	#45$,(R4)	;SET UP TO EXPECT TRAP
  4134	003162'	012622				MOV	(SP)+,(R2)+	;WRITE BACK TO TEST LOCATION, EXPECT TRAP
  4135									;NO TRAP, THAT'S BAD
  4136	003164'				40$:	CK11SC	CKEMSE,107$	;
  4137	003170'	024646				CMP	-(SP),-(SP)	;FAKE TRAP
  4138									;
  4139	003172'	022626			45$:	CMP	(SP)+,(SP)+	;GOOD TRAP, POP IT
  4140	003174'	012714	003112'			MOV	#25$,(R4)	;RESET TO BAD TRAP MSG
  4141	003200'	032737	120000	177572		BIT	#MG.ANR!MG.ARO,MMGSR0 ;TRAP FOR RIGHT REASON?
  4142	003206'	001403				BEQ	47$		;YES, KEEP ON KEEPIN' ON
  4143	003210'					CK11SC	CKEMSE,107$	;NO, GOOD GRIEF!
  4144	003214'	000400				BR	47$		;
  4145	003216'				47$:				;
  4146									;**** CONSIDER ADDING HERE THE SAME TYPE OF
  4147									;     TEST FOR A DOWNWARD EXPANDABLE PAGE ****
  4148									;
  4149									;ACCESS CONTROL MODE TEST
  4150									;
  4151	003216'	013737	172340	172352		MOV	KISAR0,KISAR5	;USE THE VECTOR AREA AGAIN
  4152	003224'	012737	077406	172312		MOV	#PD.PLF+<6*PD.AC0>,KISDR5 ;RESET TO FULL PAGE, FULL ACCESS
  4153	003232'	012702	120052			MOV	#PAGE5+52,R2	;RESET POINTER TO ARBITRARY LOCATION IN PAGE
  4154	003236'	012714	003266'			MOV	#50$,(R4)	;SET UP THE EXPECTED BAD TRAP HANDLER
  4155	003242'	011246				MOV	(R2),-(SP)	;READ (DON'T TRAP)
  4156	003244'	012612				MOV	(SP)+,(R2)	;PUT IT BACK (DON'T TRAP)
  4157	003246'	112737	000002	172312		MOVB	#PD.AC0*2,KISDR5 ;SET PDR FOR READ ONLY ACCESS
  4158	003254'	011246				MOV	(R2),-(SP)	;READ AGAIN (DON'T TRAP)
  4159	003256'	012714	003302'			MOV	#60$,(R4)	;RESET TRAP VECTOR AGAIN
  4160	003262'	012612				MOV	(SP)+,(R2)	;WRITE IT BACK AGAIN, AND FINALLY TRAP!
  4161	003264'	024646				CMP	-(SP),-(SP)	;DIDN'T TRAP, HAVE TO FAKE IT
  4162									;
  4163	003266'					50$:	CK11SC	CKEMSE,110$	;BAD TRAP, OR NON-TRAP, DEPENDING
  4164	003272'	000404					BR	62$		;
  4165										;
  4166	003274'	062716	000002			55$:	ADD	#2,(SP)		;GOOD TRAP, SKIP ERROR BRANCH
  4167	003300'	000002					RTI			;  ON RETURN
  4168									;
  4169	003302'	022626			60$:	CMP	(SP)+,(SP)+	;GOOD TRAP, POP IT
  4170	003304'	012714	003352'		62$:	MOV	#67$,(R4)	;CHANGE TRAP VECTOR STILL AGAIN
  4171	003310'	012737	077404	172312		MOV	#PD.PLF+<PD.AC0*4>,KISDR5 ;SET PDR FOR ILLEGAL ACCESS
  4172	003316'	011201			65$:	MOV	(R2),R1		;TRY TO READ, EXPECT A TRAP
  4173	003320'					CK11SC	<CKEMSE!CKEPC>,110$ ;DIDN'T, ERROR
  4174	003324'	010112				MOV	R1,(R2)		;TRY A WRITE, EXPECT A TRAP
  4175	003326'					CK11SC	<CKEMSE!CKEPC>,110$ ;DIDN'T, ERROR
  4176	003332'	032737	000007	172312		BIT	#PD.ACF,KISDR5	;DONE ALL ACF MODES YET?
  4177	003340'	001511				BEQ	70$		;YES, GO ON
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 15-2
C11DMC.MAC    04-JAN-83 11:18			CHECK KT11 HARDWARE

  4178	003342'	042737	000007	172312		BIC	#PD.ACF,KISDR5	;NO, CLEAR ACF FOR LAST ILLEGAL MODE
  4179	003350'	000762				BR	65$		;REPEAT TEST
  4180									;
  4181	003352'	062716	000004			67$:	ADD	#4,(SP)	;GOOD TRAP, POP IT
  4182	003356'	000002					RTI		;
  4183									;
  4184	003360'	064411	061556	067157	101$:	.ASCIZ	"	inconsistent relocation"<377>
	003366'	064563	072163	067145
	003374'	020164	062562	067554
	003402'	060543	064564	067157
	003410'	000377
  4185	003412'	072411	062556	070170	104$:	.ASCIZ	"	unexpected mem mgt trap"<377>
	003420'	061545	062564	020144
	003426'	062555	020155	063555
	003434'	020164	071164	070141
	003442'	000377
  4186	003444'	066411	066545	066440	107$:	.ASCIZ	"	mem mgt page length protection failure"<377>
	003452'	072147	070040	063541
	003460'	020145	062554	063556
	003466'	064164	070040	067562
	003474'	062564	072143	067551
	003502'	020156	060546	066151
	003510'	071165	177545	   000
  4187	003515'	   011	062555	020155	110$:	.ASCIZ	"	mem mgt access mode control failure"<377>
	003522'	063555	020164	061541
	003530'	062543	071563	066440
	003536'	062157	020145	067543
	003544'	072156	067562	020154
	003552'	060546	066151	071165
	003560'	177545	   000
  4188		003564'				.EVEN			;
  4189									;
  4190	003564'	012614			70$:	MOV	(SP)+,(R4)	;RESTORE PREVIOUS MEMORY MANAGEMENT TRAP VECTOR
  4191						    .IFF
  4192						JSR	R0,CKTCRL	;
  4193						.ASCIZ	"NO MEM MGT TEST"
  4194						.EVEN			;
  4195		   000				    .ENDC ;DF M$$MGE
  4196	003566'					FALLR	CHKCOR		;
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 15-3
C11DMC.MAC    04-JAN-83 11:18			CHECK KT11 HARDWARE

  4198					; SEE HOW MUCH CORE IS PRESENT
  4199					;
  4200	003566'				CHKCOR:				;
  4201		   001				    .IF NDF M$$MGE
  4202									;UNMAPPED SNIFFER
  4203						CLR	R0		;START SMALL
  4204						MOV	#20$,NXMVEC	;SET BUS TRAP VECTOR
  4205					10$:	TST	(R0)+		;CHECK NEXT LOCATION
  4206						CMP	R0,DL10AD	;SEE IF NEXT WORD IS DL10
  4207						BNE	10$		;
  4208						BR	21$		;
  4209									;
  4210					20$:	CMP	(SP)+,(SP)+	;FLUSH STACK
  4211						SUB	#2,R0		;MAKE 2 LESS SO WE HAVE 1ST NXM LOC
  4212					21$:	MOV	R0,PHYLIM	;SAVE ADR OF 1ST NXM LOCATION
  4213						JSR	PC,CKAMEM	;PRINT LAST MEM LOCATION
  4214						    .IFF
  4215									;MAPPED SNIFFER
  4216	003566'	004037	013770'			JSR	R0,CKTCRL	;ADVERTISE RANGES OF MEMORY
  4217	003572'	050012	054510	044523		.ASCIZ	<12>"PHYSICAL MEMORY HAS ABSOLUTE LIMITS OF "
	003600'	040503	020114	042515
	003606'	047515	054522	044040
	003614'	051501	040440	051502
	003622'	046117	052125	020105
	003630'	044514	044515	051524
	003636'	047440	020106	   000
  4218		003644'				.EVEN			;
  4219	003644'	005037	172352			CLR	KISAR5		;START AT ZERO MEMORY
  4220	003650'	012737	077406	172312		MOV	#PD.PLF!<6*PD.AC0>,KISDR5 ;FULL PAGE, R/W ACCESS
  4221	003656'	005000				CLR	R0		;START OF CURRENT BLOCK ADDRESS
  4222	003660'	005001				CLR	R1		;ACCUMULATED PAGE COUNT
  4223	003662'	005003				CLR	R3		;CURRENT BLOCK PAGE COUNT
  4224	003664'	012737	003704'	000004		MOV	#35$,NXMVEC	;SET UP BUS ERROR VECTOR
  4225									;
  4226	003672'	012702	000100		30$:	MOV	#BSFACT,R2	;SET BYTE COUNT OF PAGE
  4227	003676'	105762	117777		31$:	TSTB	PAGE5-1(R2)	;READ A BYTE FROM THE ADDRESSED PAGE
  4228	003702'	000412				BR	43$		;NO TRAP
  4229									;
  4230	003704'	022626				35$:	CMP	(SP)+,(SP)+	;TRAP, POP IT
  4231	003706'	005703					TST	R3		;ANY PAGES FOUND?
  4232	003710'	001402					BEQ	39$		;NO, SKIP REPORT
  4233	003712'	004737	004072'				JSR	PC,65$		;YES, REPORT RANGE
  4234	003716'	005237	172352			39$:	INC	KISAR5		;COMPUTE NEXT BIAS VALUE
  4235	003722'	013700	172352				MOV	KISAR5,R0	;SAVE IT AS START ADDRESS OF NEXT RANGE
  4236	003726'	000404					BR	52$		;RETURN TO TEST LOOP
  4237									;
  4238	003730'	077216			43$:	SOB	R2,31$		;LOOP OVER ALL BYTES ON CURRENT PAGE
  4239	003732'	005203				INC	R3		;NO TRAP, UP BLOCK COUNT
  4240	003734'	005237	172352			INC	KISAR5		;UP PAGE BIAS
  4241									;
  4242	003740'	023727	172352	007600	52$:	CMP	KISAR5,#PAGE7B	;DONE ALL POSSIBLE MEMORY SPACE?
  4243	003746'	103751				BLO	30$		;NOT YET
  4244									;YES
  4245	003750'	005703				TST	R3		;ANY BLOCKS FOUND AT END OF MEMORY?
  4246	003752'	001402				BEQ	54$		;NO
  4247	003754'	004737	004072'			JSR	PC,65$		;YES, REPORT LAST BLOCK
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 15-4
C11DMC.MAC    04-JAN-83 11:18			CHECK KT11 HARDWARE

  4248	003760'	010137	001170'		54$:	MOV	R1,PHYLIM	;SAVE NUMBER OF BLOCKS OF MEMORY
  4249	003764'	004037	013770'			JSR	R0,CKTCRL	;SUMMARIZE MEMORY SIZE DATA
  4250	003770'	043011	051117	040440		.ASCIZ	"	FOR A TOTAL OF "
	003776'	052040	052117	046101
	004004'	047440	020106	   000
  4251		004012'				.EVEN			;
  4252	004012'	010100				MOV	R1,R0		;
  4253	004014'	006200				ASR	R0		;DIVIDE NUMBER OF 32 WORD BLOCKS
  4254	004016'	006200				ASR	R0		;  BY 32 TO GET NUMBER OF KW
  4255	004020'	006200				ASR	R0		;
  4256	004022'	006200				ASR	R0		;
  4257	004024'	006200				ASR	R0		;
  4258	004026'	004737	014164'			JSR	PC,CKTDEC	;OUTPUT MEMORY SIZE IN KW DECIMAL
  4259	004032'	032701	000037			BIT	#37,R1		;REMAINDER OVER EXACT KW AMOUNT?
  4260	004036'	001402				BEQ	62$		;NO
  4261	004040'					CK11SC	<CKENCL>,<+>,<REMAINDER OVER EVEN K AMOUNT>
  4262	004042'	000053				.ASCIZ	"+"		;
  4263						.EVEN			;
  4264	004044'	004037	013774'		62$:	JSR	R0,CKTSTR	;
  4265	004050'	053513	024040	042504		.ASCIZ	"KW (DECIMAL)"<15><12>
	004056'	044503	040515	024514
	004064'	005015	   000
  4266		004070'				.EVEN			;
  4267	004070'	000432				BR	70$		;
  4268									;
  4269	004072'					65$:	CK11SC	0,<CRLFTAB>	;FEED LINE, SPACE OVER
  4270	004074'	000011					.ASCIZ	"	"	;
  4271							.EVEN			;
  4272	004076'	060301					ADD	R3,R1		;ACCUMULATE TOTAL BLOCKS TO DATE
  4273	004100'	005003					CLR	R3		;CLEAR FOR NEXT TIME
  4274	004102'	004737	014016'				JSR	PC,CKTOCT	;TYPE R0 FOR START BIAS
  4275	004106'	005700					TST	R0		;SKIP LEADING ZEROS IF ZERO
  4276	004110'	001404					BEQ	66$		;
  4277	004112'	004037	013774'				JSR	R0,CKTSTR	;ADD ZEROS FOR FULL ADDRESS
  4278	004116'	030060	   000				.ASCIZ	"00"		;
  4279		004122'					.EVEN			;
  4280	004122'	004037	013774'			66$:	JSR	R0,CKTSTR	;
  4281	004126'	026440	000040				.ASCIZ	" - "		;
  4282							.EVEN			;
  4283	004132'	013700	172352				MOV	KISAR5,R0	;GET END OF BLOCK ADDRESS BIAS
  4284	004136'	005300					DEC	R0		;BACK TO LAST GOOD BIAS
  4285	004140'	004737	014016'				JSR	PC,CKTOCT	;
  4286	004144'	004037	013774'				JSR	R0,CKTSTR	;
  4287	004150'	033467	   000				.ASCIZ	"77"		;
  4288		004154'					.EVEN			;
  4289	004154'	000207					RTS	PC		;
  4290										;
  4291	004156'				70$:				;
  4292		   000				    .ENDC ;NDF M$$MGE
  4293	004156'					FALLR	CKCOR		;
  4294					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 16
C11DMC.MAC    04-JAN-83 11:18			CHECK KT11 HARDWARE

  4296
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 17
C11DMC.MAC    04-JAN-83 11:18			CHECK KT11 HARDWARE

  4298
  4299					.SBTTL		CHECK MEMORY - SLIDING BIT PATTERN
  4300					;
  4301					; PERFORM A SIMPLE READ/WRITE MEMORY TEST -
  4302					;THE PATTERN USED IS A SLIDING BIT, WITH THE
  4303					;BIT IN EACH OF THE 16 BIT POSITIONS AND THE
  4304					;LAST PATTERN BEING ALL 0'S.
  4305					;
  4306	004156'				CKCOR:
  4307		   001				    .IF NDF M$$MGE
  4308						CLR	R0		;FIRST ADR TO CHECK
  4309						MOV	#10$,R1		;LIMIT TO CHECK
  4310									;CHECK IN TWO PIECES, SKIPPING
  4311									;  THE AREA OF THE SUBROUTINE,
  4312									;  SO AS NOT TO CLOBBER OURSELVES
  4313						JSR	PC,10$		;CHECK LOW CORE
  4314						MOV	#CKMPAR,R0	;BEGIN CHECKING HERE NOW
  4315						MOV	PHYLIM,R1	;AND STOP HERE
  4316						JSR	PC,10$		;
  4317						JSR	R0,CKTCRL	;PRINT AMOUNT OF CORE
  4318						.ASCIZ	\   \		;
  4319						.EVEN			;
  4320						MOV	PHYLIM,R0	;GET AMOUNT
  4321						JSR	PC,CKTOCT	;PRINT IT
  4322						JSR	R0,CKTSTR	;FOLLOWED BY MSG:
  4323						.ASCIZ	\ BYTES OF UNMAPPED MEMORY\
  4324						.EVEN			;
  4325						BR	CKMPAR		;ALL OK, SKIP TO PARITY CHECKER
  4326						    .IFF
  4327	004156'	004037	013770'			JSR	R0,CKTCRL	;
  4328	004162'	040515	050120	042105		.ASCIZ	"MAPPED PHYSICAL MEMORY TEST..."
	004170'	050040	054510	044523
	004176'	040503	020114	042515
	004204'	047515	054522	052040
	004212'	051505	027124	027056
	004220'	   000
  4329		004222'				.EVEN			;
  4330	004222'	005037	172352			CLR	KISAR5		;START AT LOWEST POSSIBLE ADDRESS
  4331					;;;;	MOV	#PD.PLF!<6*PD.AC0>,KISDR5 ;FULL PAGE, R/W ACCESS (SET ALREADY)
  4332	004226'	012737	004324'	000004		MOV	#80$,NXMVEC	;SET UP BUS ERROR VECTOR
  4333		002000				CKCPSZ	= 1024.		;SET UP SIZE OF PAGE TO CHECK
  4334	004234'	005001				CLR	R1		;
  4335	004236'	010100			8$:	MOV	R1,R0		;SET UP POINTER, CONSIDERING NON-ZERO START
  4336	004240'	005400				NEG	R0		;CHANGE NEGATIVE WORD COUNT
  4337	004242'	006300				ASL	R0		;  TO POSITIVE BYTE ADDRESS OFFSET
  4338	004244'	062700	120000			ADD	#PAGE5,R0	;MAP THROUGH APR5
  4339	004250'	062701	002000			ADD	#CKCPSZ,R1	;SET UP COUNT TO TEST
  4340	004254'	004737	004406'			JSR	PC,10$		;CALL CHECKER FOR DEFINED PAGE
  4341	004260'	062737	000020	172352		ADD	#CKCPSZ/BSFACT.,KISAR5 ;UP MAPPING REG TO NEXT PAGE
  4342	004266'	023737	172352	001170'		CMP	KISAR5,PHYLIM	;PAST ALL OF PHYSICAL MEMORY?
  4343	004274'	101760				BLOS	8$		;NOT YET
  4344	004276'	004037	013770'			JSR	R0,CKTCRL	;ADVERTISE COMPLETION
  4345	004302'	004411	027056	041456		.ASCIZ	"		...COMPLETE"<15><12>
	004310'	046517	046120	052105
	004316'	006505	000012
  4346						.EVEN			;
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 17-1
C11DMC.MAC    04-JAN-83 11:18			CHECK MEMORY - SLIDING BIT PATTERN

  4347	004322'	000512				BR	CKMPAR		;
  4348									;
  4349	004324'				80$:				;THIS TRAP HANDLER IS NEEDED ONLY IF THERE
  4350									;  CAN BE HOLES IN THE PHYSICAL MEMORY
  4351	004324'	021627	004414'			CMP	(SP),#15$	;EXPECTED TRAP FROM CHECKER?
  4352	004330'	001422				BEQ	82$		;OKAY
  4353	004332'					CK11SC	<CKEPC!CKEMSG>,<BAD NXM TRAP IN MEM CHK>
  4354	004334'	040502	020104	054116		.ASCIZ	"BAD NXM TRAP IN MEMORY CHECKER"<377>
	004342'	020115	051124	050101
	004350'	044440	020116	042515
	004356'	047515	054522	041440
	004364'	042510	045503	051105
	004372'	000377
  4355						.EVEN			;
  4356	004374'	000400				BR	82$		;
  4357	004376'	012716	004544'		82$:	MOV	#40$,(SP)	;SET RECOVERY ADDRESS
  4358	004402'	000002				RTI			;RECOVER
  4359		   000				    .ENDC ;NDF M$$MGE
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 17-2
C11DMC.MAC    04-JAN-83 11:18			CHECK MEMORY - SLIDING BIT PATTERN

  4361					; MEMORY CHECKER SUBROUTINE, CALLED FROM ABOVE, AND SKIPPED AROUND INLINE
  4362					;
  4363	004404'	000000			1$:	.WORD	0		;LOCAL LOWER LIMIT WORD
  4364	004406'	012702	100000		10$:	MOV	#100000,R2	;SET UP TEST PATTERN
  4365	004412'	011003				MOV	(R0),R3		;SAVE CONTENTS OF OBJECT LOCATION
  4366	004414'				15$:				;LEGAL TRAP OCCURS HERE
  4367	004414'	012737	177777	004404'		MOV	#-1,1$		;SET LIMIT WORD NON-ZERO
  4368	004422'	005010				CLR	(R0)		;CLEAR OBJECT WORD
  4369	004424'	005737	004404'			TST	1$		;REACHED LOWER LIMIT?
  4370	004430'	001006				BNE	20$		;NO, CONTINUE WITH TEST
  4371									;YES, SET VALUES TO SKIP TESTING THIS CODE AREA
  4372	004432'	062700	000142			ADD	#60$-1$,R0	;POINT PAST THIS CODE
  4373	004436'	162701	000061			SUB	#<60$-1$>/2,R1	;ADJUST COUNT FOR SKIPPING TEST
  4374	004442'	003361				BGT	10$		;NO PAGE BREAK RESULTED, RESUME TEST
  4375	004444'	000207				RTS	PC		;CODE COVERS PAGE BREAK, RETURN R1 LE ZERO
  4376									;
  4377	004446'				20$:				;
  4378	004446'	010210			22$:	MOV	R2,(R0)		;STUFF CURRENT PATTERN
  4379	004450'	005110				COM	(R0)		;INVERT IT
  4380	004452'	005110				COM	(R0)		;AND BRING IT BACK
  4381	004454'	021002				CMP	(R0),R2		;DID IT SURVIVE?
  4382	004456'	001411				BEQ	30$		;YES
  4383	004460'					CKSERR	R2,<(R0)>,R0	;SAVE GD,BD,ADR
  4384	004466'					CK11SC	<CKEMSE!CKEPC!CKEGB>,<CKMG01>,<MEMORY ERROR>,<S..MEM>
  4385	004500'	000400				BR	30$		;
  4386	004502'	006302			30$:	ASL	R2		;ADVANCE PATTERN
  4387	004504'	001360				BNE	22$		;REPEAT UNTIL R2 IS ZERO
  4388	004506'	103757				BCS	22$		;  AND EVEN THEN, DO IT ONCE MORE
  4389	004510'	010310				MOV	R3,(R0)		;RESTORE RIGHTFUL DATA
  4390	004512'	005110				COM	(R0)		;BLAP IT, TOO
  4391	004514'	005110				COM	(R0)		;  BACK AND FORTH
  4392	004516'	022003				CMP	(R0)+,R3	;CHECK FOR SURVIVAL AND ADVANCE POINTER
  4393	004520'	001411				BEQ	40$		;OKAY
  4394	004522'					CKSERR	R3,<-(R0)>,R0	;SAVE GD,BD,ADR
  4395	004530'					CK11SC	<CKEMSE!CKEPC!CKEGB>,<CKMG01>,<MEMORY ERROR>,<S..MEM>
  4396	004542'	000400				BR	40$		;
  4397	004544'	077160			40$:	SOB	R1,10$		;DO OVER THE WHOLE DEFINED LIMIT OF THE PAGE
  4398	004546'	000207			60$:	RTS	PC		;THEN RETURN
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 17-3
C11DMC.MAC    04-JAN-83 11:18			CHECK MEMORY - SLIDING BIT PATTERN

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

  4456		   002			.IF DF MP.ARM
  4457						MOV	#402,MP.ARM		;MP.ARM CONTAINS A MOV #MP.ENB,MP.REG;
  4458										; THIS TURNS IT INTO A BR .+6
  4459		   001			.ENDC
  4460					80$:	MOV	(SP)+,NXMVEC
  4461					;
  4462		   000			.ENDC;.IF EQ <PDP11-40.>
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 17-5
C11DMC.MAC    04-JAN-83 11:18			CHECK MEMORY - SLIDING BIT PATTERN

  4464					; SEE IF ROM = BM873 OR M9301 IS PRESENT
  4465					;
  4466		   001				    .IF DF FT.ROM
  4467		   002				    .IF NE FT.ROM
  4468					CK.ROM:	MOV	NXMVEC,-(SP)		;SAVE BUS TRAP VECTOR
  4469						MOV	#20$,NXMVEC
  4470						TST	ROMADR			;IS ROM REALLY HERE ?
  4471						BR	90$			;YES
  4472					;
  4473					;HERE BECAUSE ROM NOT PRESENT
  4474					20$:	CLR	GO.ROM			;MAKE JMP ROMADR = HALT
  4475						MOV	(SP)+,(SP)+		;CLEAN OFF STACK
  4476					;
  4477					90$:	MOV	(SP)+,NXMVEC
  4478		   001				    .ENDC;NE FT.ROM
  4479		   000				    .ENDC;DF FT.ROM
  4480					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 18
C11DMC.MAC    04-JAN-83 11:18			CHECK MEMORY - SLIDING BIT PATTERN

  4482
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 19
C11DMC.MAC    04-JAN-83 11:18			CHECK MEMORY - SLIDING BIT PATTERN

  4484
  4485					.SBTTL		CHECK KW11-L HDW
  4486					;
  4487					; BE SURE CLOCK IS PRESENT AND TICKS
  4488					;
  4489	004550'	012737	000757'	001156'	CHKCLK:	MOV	#N.KW.L,CKDNAM		;SET UP FOR NAME
  4490	004556'	042737	100000	001152'		BIC	#CKFIDT,CHKFLG		;SO WE PRINT DEV ID
  4491	004564'	012704	177546			MOV	#CLKWRD,R4		;SET UP DEV ADR
  4492	004570'	010437	015476'			MOV	R4,CHKCHR+CKDA		;SET UP DEVICE ADR
  4493	004574'	012737	000100	015500'		MOV	#CLKVEC,CHKCHR+CKDV	;SET UP VECTOR ADR
  4494	004602'	005037	001154'			CLR	CKDEVN			;DEVICE NUMBER
  4495	004606'	012737	004714'	000004		MOV	#20$,NXMVEC		;SET BUS TRAP IN CASE CLOCK IS NOT PRESENT
  4496	004614'	005714				TST	(R4)			;TRAP IF NOT INSTALLED
  4497	004616'	012737	014756'	000004		MOV	#CKBUST,NXMVEC		;WHERE TO GO ON BUS TRAP
  4498	004624'	013746	000100			MOV	CLKVEC,-(SP)		;SAVE WHERE TO GO ON INT
  4499	004630'	012737	004736'	000100		MOV	#80$,CLKVEC		;SETUP INTERRUPT VECTOR
  4500	004636'	012737	000003	004750'		MOV	#3,CHKTIM		;TIME 3 TICKS
  4501	004644'	005037	177776			CLR	PS			;LET INTERRUPTS HAPPEN
  4502	004650'	012714	000100			MOV	#KW.INE,(R4)		;ENABLE THE CLOCK
  4503	004654'	001412				BEQ	15$			;IF COUNTED OUT ALREADY EVIL
  4504	004656'	005000				CLR	R0			;INITIALIZE WATCHDOG COUNTER
  4505	004660'	005737	004750'		10$:	TST	CHKTIM
  4506	004664'	001432				BEQ	CKCLK9			;BRANCH IF TIMED OUT ALREADY
  4507	004666'	077004				SOB	R0,10$
  4508	004670'					CK11SC	<CKEPC!CKEDID>,<Slow>,<NO RESPONSE FROM KW11>
  4509	004672'	066123	073557	000377		.ASCIZ	\Slow\<377>
  4510						.EVEN
  4511	004700'	000424				BR	CKCLK9			;
  4512	004702'				15$:	CK11SC	<CKEPC!CKEDID>,<Fast>,<KW11 TICKING TOO FAST>
  4513	004704'	060506	072163	000377		.ASCIZ	\Fast\<377>
  4514						.EVEN
  4515	004712'	000417				BR	CKCLK9			;
  4516	004714'				20$:	CK11SC	<CKEPC!CKEDID>,<Not Present>,<CAN'T ACCESS KW11>
  4517	004716'	067516	020164	071120		.ASCIZ	\Not Present\<377>
	004724'	071545	067145	177564
	004732'	   000
  4518		004734'				.EVEN
  4519	004734'	000406				BR	CKCLK9			;
  4520					;
  4521					; KW11 INTERRUPT HANDLER
  4522					;
  4523	004736'	005337	004750'		80$:	DEC	CHKTIM		;COUNT OUT TIMER
  4524	004742'	001001				BNE	90$		;
  4525	004744'	005014				CLR	(R4)		;TURN OFF CLOCK
  4526	004746'	000002			90$:	RTI			;DISMISS INTERRUPT
  4527									;
  4528	004750'	000000			CHKTIM:	.WORD	0		;
  4529	004752'				CKCLK9:	SPL	7		;SET TO LEVEL 7
  4530	004760'	012714	000100			MOV	#KW.INE,(R4)	;ENABLE INT
  4531	004764'	012637	000100			MOV	(SP)+,CLKVEC	;RESTORE WHERE TO GO ON INT
  4532	004770'	004537	010026'			JSR	R5,CHKINL	;FIND THE INT LEVEL
  4533	004774'	177777				-1			;DELAY TO WAIT FOR INT
  4534	004776'	042737	000100	177546		BIC	#KW.INE,CLKWRD	;DISABLE CLK INTS
  4535	005004'	004037	013770'			JSR	R0,CKTCRL	;INDICATE CLOCK PRESENT
  4536	005010'	053513	030461	046055		.ASCIZ	\KW11-L checked\
	005016'	061440	062550	065543
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 19-1
C11DMC.MAC    04-JAN-83 11:18			CHECK KW11-L HDW

	005024'	062145	   000
  4537		005030'				.EVEN			;
  4538	005030'	004737	001224'			JSR	PC,CKAKW1	;CALL TO MAIN FOR CLOCK
  4539									;
  4540	005034'					FALLR	.		;FALL INTO WHATEVER COMES NEXT
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 19-2
C11DMC.MAC    04-JAN-83 11:18			CHECK DL10 HDW

  4542					.SBTTL		CHECK DL10 HDW
  4543					;
  4544	005034'				CKDL10:
  4545		   001				    .IF NE FTDL10	;IF DOESN'T HAVE A DL10,DON'T CHECK IT
  4546						MOV	DL10AD,R4	;IF "DL10AD" IS NON 0 A DL10 IS PRESENT
  4547									; AND R4 WILL BE LOADED WITH BASE ADR
  4548						BEQ	10$		;BRANCH IF WE DO NOT
  4549						BIC	#CKFIDT,CHKFLG	;SO WE PRINT DEV ID
  4550						MOV	#CKND10,CKDNAM	;DEVICE NAME
  4551						CLR	CKDEVN		;DEVICE NUMBER
  4552						MOV	R4,R1		;PUT DEVICE ADDR FOR CHKBIT
  4553						MOV	R4,CHKCHR+CKDA	;PUT IN CHARACT TABLE FOR ERROR REPORTING
  4554						JSR	R5,CHKBIT	;CHECK THE FOLLOWING BITS
  4555						DL.B00!DL.B01!DL.INE!DL.ERE
  4556						JSR	R5,CHKDLX	;CHECK SET/CLEAR OF
  4557						DL.WCO			;WORD COUNT OVERFLOW
  4558						JSR	R5,CHKDLX	;CHECK SET/CLEAR OF
  4559						DL.PAR			;PARITY ERROR
  4560						JSR	R5,CHKDLX	;CHECK SET/CLEAR OF
  4561						DL.NXM			;NON EX MEM
  4562						JSR	R5,CHKDLX	;CHECK SET/CLEAR OF
  4563						DL.11I
  4564					8$:	MOV	#DL.B01,(R4)	;SET DL10 FOR LEVEL 5
  4565						MOV	#DL.VEC,CHKCHR+CKDV;PUT DEVICE VECTOR IN TABLE FOR CKINT
  4566						$CKINT	R4,R4,DL.INE,DL.11I,DL.11C
  4567						$CKINT	R4,R4,DL.ERE,<DL.PAR!DL.NXM!DL.WCO>,<DL.CNX!DL.CPE!DL.CWC>
  4568						JSR	R0,CKTCRL	;NOTE PRESENCE OF DL10
  4569						.ASCIZ	\     DL10\
  4570						.EVEN
  4571					10$:
  4572		   000				    .ENDC ;.IF NE FTDL10
  4573					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 20
C11DMC.MAC    04-JAN-83 11:18			CHECK DL10 HDW

  4575
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 21
C11DMC.MAC    04-JAN-83 11:18			CHECK DL10 HDW

  4577
  4578					.SBTTL		DEVICE SCAN AND CHECK
  4579					;
  4580					;THE SAME ROUTINE IS USED FOR FLOATING AND FIXED DEVICES
  4581					;HOWEVER FOR FIXED DEVICES THE VECTOR MULTIPLE MUST BE 0
  4582					;  *** WARNING: ***  CKCDEV IS BOTH CODE AND DATA BASE.
  4583					;DO *NOT* PUT ANYTHING OTHER THAN "DEVICE" MACROS BETWEEN CKCDEV AND CKCEND!
  4584					;
  4585					; INVOCATION:
  4586					;	DEVICE	A,MAXN,VI,HI,VM,NAM,FV
  4587					;
  4588					;	ARG	A	;DEVICE ADDRESS OR 0 IF FLOATING DEVICE
  4589					;	ARG	MAXN	;MAXIMUM NUMBER OF DEVICES
  4590					;	ARG	VI	;VECTOR INCREMENT
  4591					;	ARG	HI	;HARDWARE INCREMENT
  4592					;	ARG	VM	;VECTOR MULTIPLE
  4593					;	ARG	NAM	;DEVICE NAME ABBREVIATION
  4594					;	ARG	FV	;FIRST VECTOR ADR (FIXED DEV ONLY)
  4595					;
  4596	005034'	004037	013770'			JSR	R0,CKTCRL		;
  4597	005040'	062012	073145	061551		.ASCII	<12>"device scan report assumes"
	005046'	020145	061563	067141
	005054'	071040	070145	071157
	005062'	020164	071541	072563
	005070'	062555	   163
  4598					.IIF DF CKSTD .ASCII	<15><12>"standard PDP-11 fixed and floating assignments"
  4599		   001				    .IF DF CKDN2X
  4600		   002				    .IF NE CKDN2X&B0
  4601	005073'	   015	020012	020040		.ASCII	<15><12>"       DN20"
	005100'	020040	020040	047104
	005106'	030062
  4602		   001				    .ENDC
  4603		   002				    .IF NE CKDN2X&B1
  4604	005110'	005015	020040	020040		.ASCII	<15><12>"       DN21"
	005116'	020040	042040	031116
	005124'	   061
  4605		   001				    .ENDC
  4606		   002				    .IF NE CKDN2X&B5
  4607	005125'	   015	020012	020040		.ASCII	<15><12>"       DN25"
	005132'	020040	020040	047104
	005140'	032462
  4608		   001				    .ENDC
  4609	005142'	063040	074151	062145		.ASCII	" fixed assignments (no floating)"
	005150'	060440	071563	063551
	005156'	066556	067145	071564
	005164'	024040	067556	063040
	005172'	067554	072141	067151
	005200'	024547
  4610		   000				    .ENDC ;DF CKDN2X
  4611	005202'	   000				.BYTE	0
  4612		005204'				.EVEN				;
  4613					;
  4614					;
  4615	005204'				CKCDEV:					;FIXED ADDRESS, FIXED VECTOR DEVICES
  4616	005204'				CHKCD:	DEVICE	CD.STS,1,0,0,0,CD,CD.VEC	;CD20(CD11)
  4617		000034						CKCADD=.-CKCDEV			;SIZE OF "DEVICE" BLOCK
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 21-1
C11DMC.MAC    04-JAN-83 11:18			DEVICE SCAN AND CHECK

  4618	005240'				CHKCR:	DEVICE	CR.STS,1,0,0,0,CR,CR.VEC	;CR11
  4619	005274'					DEVICE	KG.STS,8.,0,10,0,KG,0		;KG11
  4620	005330'					DEVICE	LE.STS,2,-10,10,0,LE,LE.VEC	;LP11
  4621	005364'					DEVICE	LP0STS,2,-4,20,0,LP,LP.VEC	;LP20
  4622	005420'					DEVICE	PP.STS,1,0,0,0,PP,PP.VEC	;PP11(PC11)
  4623	005454'					DEVICE	PR.STS,1,0,0,0,PR,PR.VEC	;PR11(PC11)
  4624	005510'					DEVICE	TC.STS,1,0,0,0,TC,TC.VEC	;TC11
  4625	005544'					DEVICE	TM.STS,1,0,0,0,TM,TM.VEC	;TM11
  4626	005600'					DEVICE	177446,1,0,0,0,RC,210		;RC11
  4627	005634'					DEVICE	177460,1,0,0,0,RF,204		;RF11
  4628	005670'					DEVICE	176700,1,0,0,0,RH,254		;RH11
  4629	005724'				CHKRP:	DEVICE	176710,1,0,0,0,RP,254		;RP11-C
  4630	005760'					DEVICE	177500,1,0,0,0,TA,260		;TA11
  4631	006014'					DEVICE	177404,1,0,0,0,RK,220		;RK11
  4632	006050'					DEVICE	177170,1,0,0,0,RX,264		;RX11
  4633	006104'					DEVICE	172540,1,0,0,0,KW.P,104		;KW11-P
  4634					;;;;	DEVICE	DS.DVA,1,20,10,0,DS,DS.VEC	;DS11
  4635	006140'				CHKDTE:	DEVICE	174440,4,-4,40,0,DTE2,774	;DTE20
  4636		   001				    .IF DF CKSTD		;STANDARD FLOATING ASSIGNMENTS
  4637										;FIXED ADDRESS, FLOATING VECTOR DEVICES
  4638						DEVICE	174770,32.,10,-10,10,DP,0	;DP11
  4639						DEVICE	175200,64.,4,10,4,DN,0		;DN11
  4640						DEVICE	170500,16.,4,10,10,DM,0		;DM11BB
  4641						DEVICE	172600,16.,4,10,4,R6,0		;PA611RDR
  4642						DEVICE	172700,16.,4,10,4,P6,0		;PA611PNCH
  4643						DEVICE	175610,16.,10,10,10,DL.E,0	;DL11-E
  4644					.IIF DF SY0880	DEVICE	177776,1,10,0,10,NL,0	;(NULL DEVICE, VECTOR SPACER)
  4645										;FULLY FLOATING DEVICES
  4646						DEVICE	0,16.,10,10,10,DJ,0		;DJ11
  4647						DEVICE	0,16.,10,20,10,DH,0		;DH11
  4648						DEVICE	0,16.,10,10,10,DQ,0		;DQ11
  4649						DEVICE	0,16.,10,10,10,DU,0		;DU11
  4650					.IIF DF SY0880	DEVICE	0,1,10,10,10,NL,0	;(NULL DEVICE, ADDRESS SPACER)
  4651						DEVICE	0,16.,10,10,10,DUP,0		;DUP11
  4652					.IIF DF SY0880	DEVICE	0,1,10,10,10,NL,0	;(NULL DEVICE, ADDRESS SPACER)
  4653					.IIF DF SY0880	DEVICE	0,1,10,10,10,NL,0	;(NULL DEVICE, ADDRESS SPACER)
  4654						DEVICE	0,16.,10,10,4,DMC,0		;DMC11
  4655						DEVICE	0,3.,10,10,4,KMC,0		;KMC11
  4656		   000				    .ENDC ;DF CKSTD
  4657											;
  4658		   001				    .IF DF CKDN2X		;-20 FRONT END CONFIGURATIONS
  4659		   002					.IF NE CKDN2X&B0	;DN20
  4660	006174'					DEVICE	160540,3,10,10,0,KMC,540	;KMC11
  4661	006230'					DEVICE	160300,12.,10,10,0,DUP,570	;DUP11
  4662	006264'					DEVICE	175630,1,10,10,0,DL.E,740	;DL11-E (DN20 #1)
  4663	006320'					DEVICE	175640,1,10,10,0,DL.E,730	;DL11-E (DN20 #2)
  4664	006354'					DEVICE	175650,1,10,10,0,DL.E,720	;DL11-E (DN20 #3)
  4665		   001					.ENDC ;NE CKDN2X&B0
  4666		   002					.IF NE CKDN2X&B1	;DN21
  4667	006410'					DEVICE	160740,4,10,10,0,DMC,670	;DMC11
  4668		   001					.ENDC ;NE CKDN2X&B1
  4669		   002					.IF NE CKDN2X&B5	;DN25
  4670	006444'					DEVICE	160640,3,10,10,0,KMC,300	;KMC11
  4671	006500'					DEVICE	160010,16.,10,10,0,DZ,340	;DZ11
  4672		   001					.ENDC ;NE CKDN2X&B5
  4673		   000				    .ENDC ;DF CKDN2X
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 21-2
C11DMC.MAC    04-JAN-83 11:18			DEVICE SCAN AND CHECK

  4674											;
  4675	006534'				CKCEND:					;END OF DEVICES TO CHECK
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 21-3
C11DMC.MAC    04-JAN-83 11:18			CHK11 COMPLETION

  4677					.SBTTL		CHK11 COMPLETION
  4678					;
  4679	006534'	004037	013770'		CHK.90:	JSR	R0,CKTCRL	;
  4680	006540'	004412	044103	030513		.ASCIZ	<12>"	CHK11 complete"<15><12><12>
	006546'	020061	067543	070155
	006554'	062554	062564	005015
	006562'	000012
  4681						.EVEN			;
  4682	006564'	012700	014631'			MOV	#CK.BUF,R0	;SEND A BLANK
  4683	006570'	004737	014534'			JSR	PC,CKBFSH	;  MESSAGE TO REMOTE
  4684	006574'	005037	000006			CLR	@#6		;SET UP HALT TRAP
  4685	006600'	012737	000006	000004		MOV	#6,@#4		;  FOR NEXT PROGRAM
  4686	006606'	012637	172314			MOV	(SP)+,KISDR6	;RESTORE PAGE 6
  4687	006612'	012637	172354			MOV	(SP)+,KISAR6	;  MAPPING REGISTERS
  4688	006616'	012605				MOV	(SP)+,R5	;RESTORE
  4689	006620'	012604				MOV	(SP)+,R4	;  CALLER'S
  4690	006622'	013701	001162'			MOV	CK.DMC,R1	;  REGISTERS
  4691	006626'	013706	001164'			MOV	CK.CSP,SP	;RESTORE CALLER'S SP
  4692	006632'	000177	172322			JMP	@CK.CAL		;RETURN TO CALLER
  4693					.SBTTL	END OF CHK11 MAINLINE
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 21-4
C11DMC.MAC    04-JAN-83 11:18		GENERAL SUBROUTINES

  4695					.SBTTL	GENERAL SUBROUTINES
  4696					;**** GOT RID OF ALL THE STANDARD CHK11 VECTOR SETUP HERE ****;
  4697					;**** AFTER ALL, THIS IS ONLY THE TERTIARY LOADER...      ****;
  4698					.SBTTL		LOOK FOR AND CHECK SYSTEM DEVICES
  4699					;
  4700					; CALLING SEQUENCE (GENERATED BY MACRO "DEVICE"):
  4701					;	JSR	R5,CHKDEV
  4702					;	(OFFSET
  4703					;	  NAME)
  4704					;	D.BADR	.WORD	ADDRESS OF 1ST DEVICE REGISTER
  4705					;	D.MAXL	.BYTE	MAX # OF DEVICES TO SEEK
  4706					;	D.VINC	.BYTE	VECTOR INC
  4707					;	D.HINC	.BYTE	HDW INC
  4708					;	D.VMUL	.BYTE	1ST VEC MULTIPLE
  4709					;	D.CNTP	.WORD	<ADR OF NUMBER OF DEVICES OR ZERO>
  4710					;	D.NAMP	.WORD	<ADR OF .ASCIZ \NAME\>
  4711					;	D.DIAG	.WORD	<ADR OF ROUTINE TO VERIFY OPERATION>
  4712					;	D.MAIN	.WORD	<ADR OF MAIN PROGRAM ROUTINE FOR DEVICE>
  4713					;	D.MPVC	.WORD	<ADR OF TABLE WHICH CONTAINS MAIN PROG VECTORS OR 0>
  4714					;	D.CNTF	.WORD	<# OF DEVICES FOUND>
  4715					;	D.FRSV	.WORD	<FIRST VECTOR FOUND>
  4716					;	D.PRIO	.WORD	<PI LEVEL>
  4717					;	D.FVFD	.WORD	<FIRST DEV VECTOR FOR FIXED TYPE DEV>
  4718					;	D.NEXT	(RETURN ADDRESS)
  4719					;
  4720	006636'				CHKDEV:			;
  4721								;LOOK FOR AND COUNT PLAUSIBLE DEVICE TYPES
  4722								;
  4723	006636'	016537	000010	001156'		MOV	D.NAMP(R5),CKDNAM ;REMEMBER DEVICE NAME
  4724	006644'	005002				CLR	R2		;INITIALIZE COUNTER FOR DEVICES
  4725									;GET DEVICE VECTOR
  4726	006646'	013703	010702'			MOV	CHKFLV,R3	;ASSUME FLOATING VECTOR
  4727	006652'	105765	000005			TSTB	D.VMUL(R5)	;BUT SEE IF FIXED
  4728	006656'	001002				BNE	4$		;FLOATING VECTOR
  4729	006660'	016503	000026			MOV	D.FVFD(R5),R3	;FIXED, GET PRE-ASSIGNED VECTOR
  4730									;
  4731	006664'	011504			4$:	MOV	(R5),R4		;GET HDW ADR FOR 1ST DEVICE
  4732	006666'	001012				BNE	6$		;ADDRESS IS NOT ZERO, HENCE FIXED DEVICE
  4733									;DEV EXPECTS TO FLOAT, BUMP UP TO NEXT SLOT
  4734	006670'	116501	000004			MOVB	D.HINC(R5),R1	;COMPUTE NEXT ADDRESS AS MULTIPLE OF HDW INC
  4735	006674'	060137	010704'			ADD	R1,CHKFLD	;
  4736	006700'	005301				DEC	R1		;
  4737	006702'	040137	010704'			BIC	R1,CHKFLD	;
  4738	006706'	013704	010704'			MOV	CHKFLD,R4	;COPY FOR USE
  4739	006712'	010415				MOV	R4,(R5)		;STUFF EXPECTED ADDRESS IN DEVICE TABLE
  4740	006714'				6$:				;
  4741	006714'	012737	007026'	000004	7$:	MOV	#20$,NXMVEC	;SET BUS TRAP VECTOR
  4742	006722'	005714				TST	(R4)		;CHECK TO SEE IF DEVICE IS PRESENT
  4743	006724'	012737	014756'	000004		MOV	#CKBUST,NXMVEC	;IT'S THERE, SET BUS ERR VEC BACK
  4744	006732'	005702				TST	R2		;IS THIS THE FIRST OF ITS KIND ?
  4745	006734'	001014				BNE	15$		;NO
  4746	006736'	005065	000020			CLR	D.CNTF(R5)	;YES, CLEAR NUMBER OF DEV FOUND
  4747	006742'	005065	000022			CLR	D.FRSV(R5)	;CLEAR FIRST VECTOR ADR
  4748					;;;;	CLR	D.PRIO(R5)	;CLEAR BR LEVEL
  4749	006746'	116501	000005			MOVB	D.VMUL(R5),R1	;GET ADDRESS MULTIPLE OF VECTOR
  4750	006752'	001405				BEQ	15$		;BRANCH IF FIXED VECTOR DEV
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 21-5
C11DMC.MAC    04-JAN-83 11:18			LOOK FOR AND CHECK SYSTEM DEVICES

  4751	006754'	005301				DEC	R1		;ELSE COUNT UP VECTOR MOD VMUL
  4752	006756'	010365	000026			MOV	R3,D.FVFD(R5)	;SAVE EXPECTED ADDRESS OF FIRST VECTOR
  4753	006762'	060103				ADD	R1,R3		;
  4754	006764'	040103				BIC	R1,R3		;
  4755	006766'	005202			15$:	INC	R2		;COUNT DEVICE
  4756	006770'	005265	000020			INC	D.CNTF(R5)	;COUNT DEVICE AND REMEMBER IT
  4757	006774'	116501	000003			MOVB	D.VINC(R5),R1	;GET VECTOR INCREMENT
  4758	007000'	060103				ADD	R1,R3		;COMPUTE NEW VECTOR
  4759	007002'	116501	000004			MOVB	D.HINC(R5),R1	;GET REG BLOCK INCREMENT
  4760	007006'	060104				ADD	R1,R4		;ADVANCE DEVICE ADR POINTER
  4761	007010'	021537	010704'			CMP	(R5),CHKFLD	;FLOATING DEVICE?
  4762	007014'	101737				BLOS	7$		;YES, KEEP LOOKING UNTIL GAP FOUND
  4763	007016'	120265	000002			CMPB	R2,D.MAXL(R5)	;HAVE WE CHECKED AS MANY AS WE CAN EXPECT?
  4764	007022'	001334				BNE	7$		;NO, LOOP BACK FOR REST
  4765	007024'	024646				CMP	-(SP),-(SP)	;YES, FAKE A TRAP
  4766									;WE HAVE FOUND AS MANY UNITS AS WE SOUGHT,
  4767									;  OR WE HAVE TRAPPED ON FINDING FEWER
  4768									;REPORT THE DEVICE COUNT
  4769	007026'	012737	014756'	000004	20$:	MOV	#CKBUST,NXMVEC	;RESET BUS ERROR VECTOR
  4770	007034'	022626				CMP	(SP)+,(SP)+	;POP OFF TRAP
  4771	007036'	021537	010704'			CMP	(R5),CHKFLD	;FLOATER?
  4772	007042'	101016				BHI	21$		;NO
  4773	007044'	010437	010704'			MOV	R4,CHKFLD	;YES, SAVE CURRENT ADDRESS AS GAP ADDRESS
  4774	007050'	120265	000002			CMPB	R2,D.MAXL(R5)	;TOO MANY?
  4775	007054'	101411				BLOS	21$		;NO
  4776	007056'					CK11SC	<CKEDID>,<Too many device units>
  4777	007060'	067524	020157	060555		.ASCIZ	"Too many units"
	007066'	074556	072440	064556
	007074'	071564	   000
  4778		007100'				.EVEN			;
  4779	007100'	005765	000006		21$:	TST	D.CNTP(R5)	;DO WE HAVE A REMOTE ADDRESS TO REPORT COUNT?
  4780	007104'	001402				BEQ	22$		;IF NOT, DON'T TRY
  4781	007106'	010275	000006			MOV	R2,@D.CNTP(R5)	;YES, PUT NUMBER FOR SOMEONE TO FIND
  4782	007112'	010200			22$:	MOV	R2,R0		;NUMBER OF DEVICES WE FOUND
  4783	007114'	001001				BNE	24$		;THERE ARE SOME
  4784		   001				.IF DF CKNODV
  4785						JSR	PC,CKCRLF	;DO CR/LF
  4786						JSR	R0,CKTSTR	;THERE AREN'T ANY
  4787						.ASCIZ	"no"		;
  4788						.EVEN			;
  4789						BR	25$		;
  4790						.IFF
  4791	007116'	000567				BR	40$		;AREN'T ANY - FORGET IT
  4792		   000				.ENDC
  4793	007120'	004737	013756'		24$:	JSR	PC,CKCRLF	;DO CR/LF
  4794	007124'	004737	014016'			JSR	PC,CKTOCT	;TYPE OUT THE NUMBER
  4795	007130'	012700	007526'		25$:	MOV	#70$,R0		;ASSUME FIXED ADDRESS DEVICE
  4796	007134'	021537	010704'			CMP	(R5),CHKFLD	;  BUT CHECK
  4797	007140'	101002				BHI	26$		;FIXED
  4798	007142'	012700	007536'			MOV	#72$,R0		;RATHER FLOATING
  4799	007146'	004737	013730'		26$:	JSR	PC,CKTTXT	;SAY WHICH
  4800	007152'	013700	001156'			MOV	CKDNAM,R0	;GET ADR OF ASCIZ STRING
  4801	007156'	004737	013730'			JSR	PC,CKTTXT	;TYPE DEVICE NAME
  4802	007162'	020227	000001			CMP	R2,#1		;HOW MANY ?
  4803	007166'	001402				BEQ	27$		;SINGULAR
  4804	007170'					CK11SC	<CKENCL>,<'s>	;PLURAL
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 21-6
C11DMC.MAC    04-JAN-83 11:18			LOOK FOR AND CHECK SYSTEM DEVICES

  4805	007172'	000163				.ASCIZ	\s\		;
  4806						.EVEN			;
  4807	007174'	012700	007562'		27$:	MOV	#74$,R0		;ADD TO DESCRIPTOR STRING
  4808	007200'	020227	000001			CMP	R2,#1		;USE PROPER PREPOSITION
  4809	007204'	101402				BLOS	28$		;
  4810	007206'	012700	007552'			MOV	#73$,R0		;
  4811	007212'	004737	013730'		28$:	JSR	PC,CKTTXT	;TYPE PREPOSITION
  4812	007216'	011500				MOV	(R5),R0		;GET EXPECTED DEVICE ADDRESS
  4813	007220'	004737	014016'			JSR	PC,CKTOCT	;TYPE IT OUT
  4814									;THE CURRENT DEVICE UNITS HAVE BEEN SOUGHT
  4815									;  AND COUNTED - PROCEED TO TEST ANY SO FOUND
  4816	007224'	005702				TST	R2		;WERE THERE ANY?
  4817	007226'	001523				BEQ	40$		;NO
  4818	007230'	010346				MOV	R3,-(SP)	;
  4819	007232'	010446				MOV	R4,-(SP)	;
  4820	007234'	010246				MOV	R2,-(SP)	;R2 MUST STAY ON TOP FOR COUNT
  4821	007236'	005037	001154'			CLR	CKDEVN		;CHECK UNIT 0 FIRST
  4822	007242'	016503	000026			MOV	D.FVFD(R5),R3	;GET FIRST VECTOR FOR POSSIBLE FIXED
  4823	007246'	010346				MOV	R3,-(SP)	;
  4824	007250'	004037	013774'			JSR	R0,CKTSTR	;REPORT VECTOR ADDRESS
  4825	007254'	020054	062566	072143		.ASCIZ	", vector at"	;
	007262'	071157	060440	000164
  4826						.EVEN			;
  4827	007270'	011600				MOV	(SP),R0		;
  4828	007272'	004737	014002'			JSR	PC,CKTBOC	;
  4829	007276'	012603				MOV	(SP)+,R3	;
  4830	007300'	116500	000005			MOVB	D.VMUL(R5),R0	;GET VECTOR MULTIPLE
  4831	007304'	001405				BEQ	30$		;BRANCH IF FIXED
  4832	007306'	013703	010702'			MOV	CHKFLV,R3	;GET VECTOR FOR 1ST UNIT
  4833	007312'	005300				DEC	R0		;
  4834	007314'	060003				ADD	R0,R3		;
  4835	007316'	040003				BIC	R0,R3		;
  4836	007320'	011504			30$:	MOV	(R5),R4		;GET HDW ADR FOR FIRST UNIT
  4837	007322'	001002				BNE	32$		;
  4838	007324'	013704	010704'			MOV	CHKFLD,R4	;FLOATING DEVICE
  4839	007330'	005037	015502'		32$:	CLR	CHKCHR+CKPI	;ROUTINE WILL SET PI LEVEL
  4840	007334'	016500	000012			MOV	D.DIAG(R5),R0	;ADR OF ROUTINE TO VERIFY DEVICE
  4841	007340'	001431				BEQ	34$		;BRANCH IF NO ROUTINE TO VERIFY
  4842	007342'	042737	100000	001152'		BIC	#CKFIDT,CHKFLG	;HAVEN'T TYPED ID YET
  4843	007350'	010437	015476'			MOV	R4,CHKCHR+CKDA	;SAVE DEVICE ADDRESS
  4844	007354'	010337	015500'			MOV	R3,CHKCHR+CKDV	;SAVE VECTOR ADDRESS IN TABLE
  4845	007360'	010401				MOV	R4,R1		;PUT DEV ADR IN R1, MOST WILL USE IT
  4846	007362'	005037	015504'			CLR	CHKCHR+CKFLG	;CLR AND LET DEV ROUTINE SET FLAGS
  4847	007366'					SPL	7		;MAKE SURE WE'RE AT LEVEL 7
  4848	007374'	020437	001162'			CMP	R4,CK.DMC	;IF THIS IS THE LOAD DEVICE,
  4849	007400'	001403				BEQ	33$		;  SKIP OVER DIAGNOSTICS FOR IT
  4850	007402'	010546				MOV	R5,-(SP)	;
  4851	007404'	004710				JSR	PC,(R0)		;CALL TO DEVICE CHECK
  4852	007406'	012605				MOV	(SP)+,R5	;
  4853	007410'	005765	000022		33$:	TST	D.FRSV(R5)	;SEE IF VECTOR ADR SET YET
  4854	007414'	001003				BNE	34$		;BRANCH IF SET
  4855	007416'	013765	015500'	000022		MOV	CHKCHR+CKDV,D.FRSV(R5) ;SET FIRST VECTOR FOUND
  4856					;;;;	MOV	CHKCHR+CKPI,D.PRIO(R5) ;SET FIRST PI LEVEL FOUND
  4857	007424'	021527	175400		34$:	CMP	(R5),#DS.DVA	;DS11 ARE SPECIAL SO DON'T CALL MAIN HERE
  4858	007430'	001404				BEQ	35$		;BRANCH IF DS11
  4859	007432'	012700	015476'			MOV	#CHKCHR,R0	;POINT TO THE CHARACTERISTIC TABLE
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 21-7
C11DMC.MAC    04-JAN-83 11:18			LOOK FOR AND CHECK SYSTEM DEVICES

  4860	007436'	004775	000014			JSR	PC,@D.MAIN(R5)	;CALL TO MAIN PROGRAM
  4861	007442'	116500	000003		35$:	MOVB	D.VINC(R5),R0	;GET VECTOR INCREMENT
  4862	007446'	060003				ADD	R0,R3		;
  4863	007450'	116500	000004			MOVB	D.HINC(R5),R0	;HDW INCREMENT
  4864	007454'	060004				ADD	R0,R4		;POINT TO NEXT REGISTER SET
  4865	007456'	005237	001154'			INC	CKDEVN		;ON TO NEXT DEVICE NUMBER
  4866	007462'	023716	001154'			CMP	CKDEVN,(SP)	;DONE ALL UNITS YET? (SET TO 177776 BY NULL DIAG)
  4867	007466'	103720				BLO	32$		;NO, NOT YET
  4868	007470'	012602				MOV	(SP)+,R2	;
  4869	007472'	012604				MOV	(SP)+,R4	;
  4870	007474'	012603				MOV	(SP)+,R3	;
  4871	007476'				40$:				;
  4872		000000				.REPT	0
  4873							;;;;DISABLED CODE!!!
  4874						SAVE	<R3,R4>
  4875						CLR	R4		;FLAG NO MORE DEVICES
  4876						JSR	PC,@D.MAIN(R5)	;CALL MAIN PROGRAM
  4877						RESTORE	<R4,R3>
  4878						.ENDR
  4879					;
  4880					;DONE CHECKING ALL DEVICE UNITS, UPDATE FLOATING VALUES AS REQ'D
  4881					;
  4882	007476'	105765	000005			TSTB	D.VMUL(R5)	;FIXED VECTOR DEV?
  4883	007502'	001406				BEQ	50$		;YES
  4884	007504'	013746	010702'			MOV	CHKFLV,-(SP)	;NO, RESET FLOATING VECTOR
  4885	007510'	010337	010702'			MOV	R3,CHKFLV	;
  4886	007514'	012603				MOV	(SP)+,R3	;
  4887	007516'	011500				MOV	(R5),R0		;WAS THIS A FLOATING DEVICE ?
  4888	007520'	062705	000030		50$:	ADD	#D.NEXT,R5	;RETURN FOLLOWING TRAILING ARGS
  4889	007524'	000205				RTS	R5		;
  4890									;
  4891	007526'	043040	074151	062145	70$:	.ASCIZ	" Fixed "	;
	007534'	000040
  4892						.EVEN			;
  4893	007536'	043040	067554	072141	72$:	.ASCIZ	" Floating "	;
	007544'	067151	020147	   000
  4894		007552'				.EVEN			;
  4895	007552'	063040	067562	020155	73$:	.ASCIZ	" from "	;
	007560'	   000
  4896		007562'				.EVEN			;
  4897	007562'	060440	020164	   000	74$:	.ASCIZ	" at "		;
  4898		007570'				.EVEN			;
  4899					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 22
C11DMC.MAC    04-JAN-83 11:18			LOOK FOR AND CHECK SYSTEM DEVICES

  4901
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 23
C11DMC.MAC    04-JAN-83 11:18			LOOK FOR AND CHECK SYSTEM DEVICES

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

  4954					.SBTTL		BIT SET/BIT CLEAR TEST FOR DL10
  4955					;
  4956					;ROUTINE TO CHECK DL10 BITS
  4957					;
  4958		   001				    .IF NE FTDL10
  4959					CHKDLX:	MOV	(R5)+,R0	;GET BIT TO CHECK
  4960						BIS	R0,(R1)		;SET THE BIT IN THE DL10
  4961						CMP	(R1),R0		;DID IT SET AND ONLY IT SET?
  4962						BEQ	1$		;BRANCH IF OK
  4963						CKSERR	R0,<(R1)>,R1	;GD, BD, ADR
  4964						CK11SC	<CKEMSE!CKEPC!CKEDID!CKEGB>,<CKMG03>,<SET BIT BUT ITS NOT SET>
  4965					1$:	ASR	R0		;SHIFT RIGHT TO GET IT IN CLEAR POSITION
  4966						BIS	R0,(R1)		;SET BIT TO CLEAR BIT
  4967						TST	(R1)		;ALL BITS SHOULD BE CLEAR NOW
  4968						BEQ	2$		;BRANCH IF THEY ARE
  4969						CLR	-(SP)		;THE GOOD
  4970						MOV	(R1),-(SP)	;THE BAD
  4971						MOV	R1,-(SP)		;THE BAD ADR
  4972						CK11SC	<CKEMSE!CKEPC!CKEDID!CKEGB>,<CKMG02>,<SETTING DIDN'T CLR BIT>
  4973					2$:	RTS	R5		;EXIT
  4974		   000				    .ENDC ;.IF NE FTDL10
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 23-2
C11DMC.MAC    04-JAN-83 11:18			PRINT DEVICE ID ROUTINE

  4976					.SBTTL		PRINT DEVICE ID ROUTINE
  4977					;
  4978	007722'	032737	100000	001152'	CKDIDT:	BIT	#CKFIDT,CHKFLG	;HAVE WE ALREADY TYPE DEVICE ID ?
  4979	007730'	001035				BNE	1$
  4980	007732'					CK11SC	0,<? >
  4981	007734'	004407	020077	   000			.ASCIZ	<7>"	? "
  4982		007742'					.EVEN
  4983	007742'	013700	001156'			MOV	CKDNAM,R0	;GET ASCIZ \DEVICE NAME\
  4984	007746'	004737	013730'			JSR	PC,CKTTXT	;TYPE DEVICE NAME
  4985	007752'					CK11SC	<CKENCL>,< #>
  4986	007754'	021440	   000				.ASCIZ	\ #\
  4987		007760'					.EVEN
  4988	007760'	013700	001154'			MOV	CKDEVN,R0	;GET UNIT NUMBER
  4989	007764'	004737	014016'			JSR	PC,CKTOCT	;TYPE UNIT NUMBER
  4990	007770'					CK11SC	<CKENCL>,<(Adr = >
  4991	007772'	040450	071144	036440			.ASCIZ	\(Adr = \
	010000'	000040
  4992							.EVEN
  4993	010002'	013700	015476'			MOV	CHKCHR+CKDA,R0	;GET DEVICE ADDR
  4994	010006'	004737	014016'			JSR	PC,CKTOCT	;TYPE IT
  4995	010012'					CK11SC	<CKENCL>,<)>
  4996	010014'	000051					.ASCIZ	\)\
  4997							.EVEN
  4998	010016'	052737	100000	001152'		BIS	#CKFIDT,CHKFLG	;REMEMBER WE TYPED DEVICE ID
  4999	010024'	000207			1$:	RTS	PC
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 23-3
C11DMC.MAC    04-JAN-83 11:18			ROUTINE TO FIND DEVICE INTERRUPT LEVEL

  5001					.SBTTL		ROUTINE TO FIND DEVICE INTERRUPT LEVEL
  5002					;
  5003					;CALL	JSR R5,CHKINL		;WITH DEVICE READY TO INT BUT
  5004					;				; WITH THE PS SET TO LEVEL 7.
  5005					;
  5006	010026'	010046			CHKINL:	MOV	R0,-(SP)	;SAVE R0
  5007	010030'	010146				MOV	R1,-(SP)	;SAVE R1
  5008	010032'	010246				MOV	R2,-(SP)	;SAVE R2
  5009	010034'	012702	000300			MOV	#BR6,R2		;START BY CHECKING LEVEL 6
  5010	010040'	011501			1$:	MOV	(R5),R1		;GET TIME TO WAIT
  5011	010042'	005000				CLR	R0		;WILL BE SET BY INT ROUTINE IF INT
  5012	010044'	010237	177776			MOV	R2,PS		;LOWER PS LEVEL
  5013									;MOST REASONABLE INTERRUPTS WHICH OCCUR WILL
  5014									;  DISPATCH THROUGH CKINT, RETURN THE VECTOR
  5015									;  ADDRESS USED IN R0
  5016	010050'	005700			2$:	TST	R0		;SEE IF INT YET
  5017	010052'	001012				BNE	10$		;NON 0 SAYS INTERRUPT HAPPENED
  5018	010054'	077103				SOB	R1,2$		;TIME AND WAIT
  5019	010056'					SPL	7		;TIMED OUT SET LEVEL 7, LOWER AND TRY AGAIN
  5020	010064'	162702	000040			SUB	#40,R2		;MAKE LEVEL LOWER BY 1
  5021	010070'	002363				BGE	1$		;BRANCH IF LEVEL 0 NOT CHECKED YET
  5022	010072'					CK11SC	<CKEMSE!CKEDID!CKEPC>,<CKMG04>,<DEVICE NEVER INTERRUPTED>
  5023	010076'	000415				BR	3$		;EXIT
  5024									;
  5025	010100'	020037	015500'		10$:	CMP	R0,CHKCHR+CKDV	;SEE IF SAME AS WHAT IT SHOULD BE
  5026	010104'	001406				BEQ	11$		;BRANCH IF CORRECT VECTOR
  5027	010106'					CKSERR	<CHKCHR+CKDV>,<R0>,<R4>
  5028	010116'					CK11SC	<CKEMSE!CKEPC!CKEDID!CKEGB>,<CKMG05>,<WENT TO WRONG VECTOR>
  5029									;
  5030	010122'	062702	000040		11$:	ADD	#40,R2		;MAKE THE DEVICE LEVEL
  5031	010126'	010237	015502'			MOV	R2,CHKCHR+CKPI	;SAVE LEVEL DEVICE INTERRUPTED AT
  5032	010132'	012602			3$:	MOV	(SP)+,R2	;RESTORE R2
  5033	010134'	012601				MOV	(SP)+,R1	;RESTORE R1
  5034	010136'	012600				MOV	(SP)+,R0	;RESTORE R0
  5035	010140'	005725				TST	(R5)+		;SKIP OVER TIME DELAY CONSTANT
  5036	010142'	000205				RTS	R5		;RETURN WITH DEVICE LEVEL SAVED IN CHARACTERISTICS TABLE
  5037					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 24
C11DMC.MAC    04-JAN-83 11:18			ROUTINE TO FIND DEVICE INTERRUPT LEVEL

  5039
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 25
C11DMC.MAC    04-JAN-83 11:18			ROUTINE TO FIND DEVICE INTERRUPT LEVEL

  5041
  5042					.SBTTL		CHECK INTERRUPTS AND FIND DEVICE LEVEL
  5043					;
  5044					;ROUTINE TO CHECK INTERRUPTS AND FIND DEVICE LEVEL
  5045					;
  5046					; CALL (GENERATED BY MACRO "$CKINT"):
  5047					;	MOV	ENABLE ADR,R1
  5048					;	MOV	INT ADR,R2
  5049					;	JSR	R5,CKINT
  5050					;	TRAILING ARGS:
  5051					;		(NAME)	(PURPOSE)
  5052					;		I.ENAB	- ENABLE BIT
  5053					;		I.INTS	- INTERRUPT BITS
  5054					;		I.INTC	- SPECIAL CLEAR BITS
  5055					;		I.RTRN	- RETURN ADDRESS
  5056					;
  5057	010144'	010346			CKINT:	MOV	R3,-(SP)
  5058	010146'	010446				MOV	R4,-(SP)
  5059	010150'	005037	015502'			CLR	CHKCHR+CKPI	;START WITH PI OF 0 (NO DEV)
  5060	010154'	005037	010536'			CLR	CKFLAG		;0 = PI LEVEL FOUND MUST BE PUT IN TABLE
  5061									; NON 0 = CHECK PI LEVEL FOUND WITH TABLE
  5062	010160'	012704	000001			MOV	#1,R4		;STARTING POSITION OF SLIDING INT BIT
  5063	010164'	012703	000340		CKINT1:	MOV	#BR7,R3		;START CHECKING AT THIS LEVEL
  5064	010170'	010337	177776		CKINT2:	MOV	R3,PS		;SET PS
  5065	010174'	005000				CLR	R0		;SET TO 0 SO IF INT HAPPENS WE KNOW IT
  5066	010176'	030465	000002		CKINT3:	BIT	R4,I.INTS(R5)	;IS THERE A BIT TO TEST?
  5067	010202'	001002				BNE	5$		;BRANCH IF BIT IN POSITION
  5068	010204'	000137	010514'			JMP	CKINT7		;MAKE NEW BIT POSITION
  5069	010210'	051511			5$:	BIS	(R5),(R1)	;SET INTERRUPT ENABLE
  5070	010212'	050412				BIS	R4,(R2)		;SET INTERRUPT BIT
  5071	010214'	000240				NOP			;ALLOW 1 EXTRA INST TIME FOR INT
  5072	010216'					SPL	7		;LET NO INT HAPPEN
  5073	010224'	041511				BIC	(R5),(R1)	;CLEAR INT ENABLE
  5074	010226'	005765	000004			TST	I.INTC(R5)	;SEE IF SPECIAL CLEAR
  5075	010232'	001403				BEQ	7$		;BRANCH IF NOT
  5076	010234'	056512	000004			BIS	I.INTC(R5),(R2)	;SPECIAL CLEAR
  5077	010240'	000402				BR	9$		;CONTINUE
  5078	010242'	046512	000002		7$:	BIC	I.INTS(R5),(R2)	;CLEAR INT BITS
  5079	010246'	005700			9$:	TST	R0		;IF R0 IS NON 0 IT SHOULD BE THE
  5080									; VECTOR ADR. IF 0 NO INT HAPPENED.
  5081	010250'	001006				BNE	10$		;BRANCH IF INTERRUPT
  5082	010252'	162703	000040			SUB	#40,R3		;MAKE PS VALUE 1 LEVEL LESS
  5083	010256'	002344				BGE	CKINT2		;BRANCH IF NEW LEVEL OK
  5084	010260'					CK11SC	<CKEMSE!CKEPC!CKEDID>,<CKMG04>,<DEVICE NEVER INTERRUPTED>
  5085	010264'	000517				BR	CKINTE		;EXIT
  5086	010266'				10$:				;INTERRUPT OCCURRED, CHECK IT OUT
  5087	010266'	020037	015500'			CMP	R0,CHKCHR+CKDV	;SEE IF WE WENT TO CORRECT ADR
  5088	010272'	001407				BEQ	13$		;BRANCH IF WE DID, R0 = VECTOR ADR
  5089	010274'					CKSERR	<CHKCHR+CKDV>,R0,<R2>;GD,BD,ADR
  5090	010304'					CK11SC	<CKEMSE!CKEPC!CKEDID!CKEGB>,<CKMG05>,<WENT TO WRONG VECTOR>
  5091	010310'	000505				BR	CKINTE		;EXIT
  5092	010312'	005737	010536'		13$:	TST	CKFLAG		;MUST WE LOAD LEVEL OR CHECK IT?
  5093	010316'	001010				BNE	11$		;BRANCH IF JUST CHECK
  5094	010320'	010337	015502'			MOV	R3,CHKCHR+CKPI	;LOAD LEVEL JUST FOUND
  5095	010324'	062737	000040	015502'		ADD	#40,CHKCHR+CKPI	;MAKE LEVEL OF DEVICE
  5096	010332'	012737	177777	010536'		MOV	#-1,CKFLAG	;SET FLAG SO NEXT TIME WE CHECK LEVEL AS WELL
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 25-1
C11DMC.MAC    04-JAN-83 11:18			CHECK INTERRUPTS AND FIND DEVICE LEVEL

  5097	010340'	010300			11$:	MOV	R3,R0		;GET PRESENT LEVEL
  5098	010342'	062700	000040			ADD	#40,R0		;MAKE IT THE DEVICE LEVEL
  5099	010346'	020037	015502'			CMP	R0,CHKCHR+CKPI	;CHECK LEVEL AGAINST LAST TIME
  5100	010352'	001427				BEQ	CKINT6		;BRANCH IF LEVEL CHECKS
  5101	010354'					CKSERR	<CHKCHR+CKPI>,R0,R4
  5102	010364'					CK11SC	<CKEPC!CKEDID!CKEGB>,<Interrupt to Different BR Level>,<INTERRUPT TO DIF
  5103	010366'	067111	062564	071162		.ASCIZ	\Interrupt to Different BR Level\<377>
	010374'	070165	020164	067564
	010402'	042040	063151	062546
	010410'	062562	072156	041040
	010416'	020122	062514	062566
	010424'	177554	   000
  5104		010430'				.EVEN
  5105	010430'	000435				BR	CKINTE		;EXIT
  5106	010432'	005037	177776		CKINT6:	CLR	PS		;CHECK WITH LEVEL 0 AND
  5107	010436'	005000				CLR	R0		; NO INT ENABLE BITS SET
  5108	010440'	050412				BIS	R4,(R2)		;  AND INT BIT SET THAT NO INT OCCURRS
  5109	010442'	000240				NOP			;PAUSE
  5110	010444'	000240				NOP			;PAUSE
  5111	010446'					SPL	7		;DON'T LET AN INT HAPPEN
  5112	010454'	005700				TST	R0		;SEE IF ONE HAPPENED
  5113	010456'	001403				BEQ	19$		;BRANCH IF NO INT
  5114	010460'					CK11SC	<CKEMSE!CKEDID!CKEPC>,CKMG07,<INTERRUPT WHEN NOT ENABLED>
  5115	010464'	000417				BR	CKINTE		;EXIT
  5116	010466'	005765	000004		19$:	TST	I.INTC(R5)	;SEE IF SPECIAL CLEAR
  5117	010472'	001403				BEQ	22$		;BRANCH IF NOT
  5118	010474'	056512	000004			BIS	I.INTC(R5),(R2)	;SPECIAL CLEAR  (DL10 FOR ONE)
  5119	010500'	000401				BR	24$		;CONTINUE
  5120	010502'	040412			22$:	BIC	R4,(R2)		;CLEAR INT BITS
  5121	010504'	006304			24$:	ASL	R4		;MAKE NEW BIT POSITION
  5122	010506'	001406				BEQ	CKINTE		;BRANCH IF DONE
  5123	010510'	000137	010164'			JMP	CKINT1		;TEST NEW BIT
  5124	010514'	006304			CKINT7:	ASL	R4		;MAKE NEW INT BIT POSITION
  5125	010516'	001402				BEQ	CKINTE		;BRANCH IF NO NEW BIT POSITION
  5126	010520'	000137	010176'			JMP	CKINT3		;BRANCH IF NEW BIT POSITION
  5127	010524'	062705	000006		CKINTE:	ADD	#I.RTRN,R5	;FOR CORRECT RETURN
  5128	010530'	012604				MOV	(SP)+,R4	;
  5129	010532'	012603				MOV	(SP)+,R3	;
  5130	010534'	000205				RTS	R5		;RETURN
  5131					;
  5132	010536'	000000			CKFLAG:	0
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 25-2
C11DMC.MAC    04-JAN-83 11:18			GENERAL INTERRUPT FIELDER FOR CHK11

  5134					.SBTTL		GENERAL INTERRUPT FIELDER FOR CHK11
  5135					;
  5136					;WE GET HERE FROM ALMOST ANY INTERRUPT WHILE IN CHK11
  5137					; THIS WILL RETURN THE VECTOR ADDRESS IN R0 -
  5138					; THIS IS DISCERNED FROM THE CONDITION CODE BITS AND THE
  5139					; ADDRESS AT WHICH THE CODE IS ENTERED
  5140					;
  5141	010540'				CHKINT:
  5142									;ENTRY FOR VECTORS 0-74
  5143	010540'	013700	177776			MOV	PS,R0		;GET PROCESSOR STATUS
  5144	010544'	004737	010660'			JSR	PC,1$
  5145	010550'	000000				.WORD	0
  5146		000012					CHKISZ	= .-CHKINT ;CHKINT BLOCK SIZE
  5147									;ENTRY FOR VECTORS 100-174
  5148	010552'	013700	177776			MOV	PS,R0		;GET PROCESSOR STATUS
  5149	010556'	004737	010660'			JSR	PC,1$
  5150	010562'	000100				.WORD	100
  5151									;ENTRY FOR VECTORS 200-274
  5152	010564'	013700	177776			MOV	PS,R0		;GET PROCESSOR STATUS
  5153	010570'	004737	010660'			JSR	PC,1$
  5154	010574'	000200				.WORD	200
  5155									;ENTRY FOR VECTORS 300-374
  5156	010576'	013700	177776			MOV	PS,R0		;GET PROCESSOR STATUS
  5157	010602'	004737	010660'			JSR	PC,1$
  5158	010606'	000300				.WORD	300
  5159									;ENTRY FOR VECTORS 400-474
  5160	010610'	013700	177776			MOV	PS,R0		;GET PROCESSOR STATUS
  5161	010614'	004737	010660'			JSR	PC,1$
  5162	010620'	000400				.WORD	400
  5163									;ENTRY FOR VECTORS 500-574
  5164	010622'	013700	177776			MOV	PS,R0		;GET PROCESSOR STATUS
  5165	010626'	004737	010660'			JSR	PC,1$
  5166	010632'	000500				.WORD	500
  5167									;ENTRY FOR VECTORS 600-674
  5168	010634'	013700	177776			MOV	PS,R0		;GET PROCESSOR STATUS
  5169	010640'	004737	010660'			JSR	PC,1$
  5170	010644'	000600				.WORD	600
  5171									;ENTRY FOR VECTORS 700-774
  5172	010646'	013700	177776			MOV	PS,R0		;GET PROCESSOR STATUS
  5173	010652'	004737	010660'			JSR	PC,1$
  5174	010656'	000700				.WORD	700
  5175						;-----------------------------------------------------------------
  5176	010660'	042700	177760		1$:	BIC	#^C17,R0	;SAVE ONLY CONDITION CODE BITS
  5177	010664'	006300				ASL	R0		;MULTIPLY BY 4 (4 BYTES PER VECTOR)
  5178	010666'	006300				ASL	R0		;
  5179	010670'	063600				ADD	@(SP)+,R0	;MAKES VECTOR ADR (POPS JSR RET ADR)
  5180	010672'	012766	000340	000002		MOV	#BR7,2(SP)	;DON'T TRAP AGAIN ON RETURN
  5181	010700'	000002				RTI			;
  5182									;
  5183	010702'	000001			CHKFLV:	.BLKW	1		;CURRENT FLOATING DEVICE VECTOR
  5184	010704'	000001			CHKFLD:	.BLKW	1		;CURRENT FLOATING DEVICE ADR
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 25-3
C11DMC.MAC    04-JAN-83 11:18		DEVICE DIAGNOSTICS

  5186					.SBTTL	DEVICE DIAGNOSTICS
  5187					;
  5188					; THE FOLLOWING ROUTINES HAVE NAMES OF THE FORM X--11, WHERE -- IS
  5189					;   A DEVICE NAME (E.G. DH, DL, DTE2, KMC, ETC.) - THIS DEVICE NAME IS USED
  5190					;   IN THE MACRO "DEVICE" TO GENERATE A POINTER TO THE APPROPRIATE
  5191					;   DIAGNOSTIC ROUTINE - "DEVICE" CALLS CHKDEV, WHICH ACCESSES THE
  5192					;   TABLE GENERATED BY "DEVICE" CONTAINING THIS POINTER, AND USES
  5193					;   IT TO CALL THE PROPER DIAGNOSTIC
  5194					;
  5195					; DEVELOPERS: TRY TO KEEP THE DEVICE ROUTINE SETS IN
  5196					;   ALPHABETICAL ORDER BY DEVICE NAME (E.G., ...DL11-A, DL11-E,
  5197					;   DM11BB, DN11, ... DU11, DUP11, DZ11...) - ALSO NOTE THAT THE
  5198					;   THE DEVICE NAMES ARE THE ABBREVIATIONS USED IN THE MACRO NAMSTR
  5199					;
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 25-4
C11DMC.MAC    04-JAN-83 11:18			CHECK CD20 HARDWARE

  5201					.SBTTL		CHECK CD20 HARDWARE
  5202					;
  5203						    .IIF NDF FTCD20,FTCD20=0
  5204		   001				    .IF NE FTCD20
  5205	010706'				XCD11:				;
  5206	010706'	012737	011142'	000004		MOV	#30$,NXMVEC	;SET A LOCAL BUS ERROR HANDLER
  5207	010714'	005761	000006			TST	CDST2(R1)	;LOOK FOR SECONDARY STATUS REGISTER
  5208	010720'	012737	014756'	000004		MOV	#CKBUST,NXMVEC	;IT'S THERE, THIS MAY BE A CD20 (NOT A CR11)
  5209	010726'	016146	000004			MOV	CDBA(R1),-(SP)	;TO BE SURE,
  5210	010732'	012700	177777			MOV	#-1,R0		;  FIND OUT IF WE CAN
  5211	010736'	074061	000004			XOR	R0,CDBA(R1)	;  FIDDLE THE "CDBA" BITS
  5212	010742'	022661	000004			CMP	(SP)+,CDBA(R1)	;  IF WE CAN'T,
  5213	010746'	001501				BEQ	40$		;  IT ISN'T A CD11/20
  5214	010750'	074061	000004			XOR	R0,CDBA(R1)	;  IF WE DID, PUT THE BITS BACK
  5215	010754'	052737	000001	005244'		BIS	#1,CHKCR+4	;MAKE CR11 TEST FAIL IF TRIED
  5216	010762'	004537	007570'			JSR	R5,CHKBIT	;R/W CHECK ON CD.STS
  5217	010766'	000162				.WORD	CD.IE!CD.XAD!CD.PAC
  5218	010770'	005721				TST	(R1)+		;UP TO CDCC
  5219	010772'	004537	007570'			JSR	R5,CHKBIT	;
  5220	010776'	177777				.WORD	ALLBTS		;
  5221	011000'	005721				TST	(R1)+		;UP TO CDBA
  5222	011002'	004537	007570'			JSR	R5,CHKBIT	;
  5223	011006'	177777				.WORD	ALLBTS		;
  5224	011010'	010401				MOV	R4,R1		;RESTORE CD.STS POINTER
  5225	011012'	032711	010000			BIT	#CD.OFL,(R1)	;READER AVAILABLE?
  5226	011016'	001012				BNE	10$		;YES
  5227	011020'					CK11SC	0,<not ready>	;
  5228	011022'	041411	031104	020060		.ASCIZ	"	CD20 off line"
	011030'	063157	020146	064554
	011036'	062556	   000
  5229		011042'				.EVEN			;
  5230	011042'	000207				RTS	PC		;
  5231									;
  5232	011044'	012721	000400		10$:	MOV	#CD.PWC,(R1)+	;CLEAR READER
  5233	011050'	012721	177777			MOV	#-1,(R1)+	;SET TO READ ONE COLUMN
  5234	011054'	012721	160000			MOV	#160000,(R1)+	;  INTO A NON-EXISTENT LOCATION
  5235	011060'	012714	000161			MOV	#CD.IE!CD.XAD!CD.GO,(R4) ;START READER
  5236	011064'	005000				CLR	R0		;SET TIMER FOR READ WAIT
  5237	011066'	032714	100200		15$:	BIT	#CD.ERR!CD.RDY,(R4) ;LOOK FOR ERROR OR DONE
  5238	011072'	001017				BNE	20$		;GOT ONE OF THEM
  5239	011074'	077004				SOB	R0,15$		;NOT YET
  5240	011076'					CK11SC	<CKEPC!CKEDID>,<SLOW READ>
  5241	011100'	041411	031104	020060		.ASCIZ	"	CD20 time out on read"
	011106'	064564	062555	067440
	011114'	072165	067440	020156
	011122'	062562	062141	   000
  5242		011130'				.EVEN			;
  5243	011130'	000207				RTS	PC		;
  5244									;
  5245	011132'	004537	010026'		20$:	JSR	R5,CHKINL	;CD20 SHOULD BE READY TO INTERRUPT
  5246	011136'	177777				.WORD	177777		;
  5247	011140'	000207				RTS	PC		;
  5248									;
  5249	011142'	012737	014756'	000004	30$:	MOV	#CKBUST,NXMVEC	;RESTORE BUS ERROR VECTOR
  5250	011150'	022626				CMP	(SP)+,(SP)+	;POP TRAP
  5251	011152'				40$:	CK11SC	0,<NOT CD20>	;
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 25-5
C11DMC.MAC    04-JAN-83 11:18			CHECK CD20 HARDWARE

  5252	011154'	061411	071157	062562		.ASCIZ	"	correction - reader is NOT a CD20"
	011162'	072143	067551	020156
	011170'	020055	062562	062141
	011176'	071145	064440	020163
	011204'	047516	020124	020141
	011212'	042103	030062	   000
  5253		011220'				.EVEN			;
  5254	011220'	000207				RTS	PC		;
  5255		   000				    .ENDC ;NE FTCD20
  5256					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 26
C11DMC.MAC    04-JAN-83 11:18			CHECK CD20 HARDWARE

  5258
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 27
C11DMC.MAC    04-JAN-83 11:18			CHECK CD20 HARDWARE

  5260
  5261					.SBTTL		CHECK CR11 HARDWARE
  5262					;
  5263					;CALL	MOV	#<VECTOR ADR>,R3
  5264					;	MOV	#<HDW ADR>,R4
  5265					;	MOV	#<HDW ADR>,R1
  5266					;	JSR	PC,XCR11
  5267					;
  5268						    .IIF NDF FTCR11,FTCR11=0
  5269		   001				    .IF NE FTCR11
  5270	011222'				XCR11:
  5271	011222'	016146	000004			MOV	CDBA(R1),-(SP)	;CHECK TO SEE
  5272	011226'	012700	177777			MOV	#-1,R0		;  IF WE CAN
  5273	011232'	074061	000004			XOR	R0,CDBA(R1)	;  FIDDLE THE BITS IN
  5274	011236'	022661	000004			CMP	(SP)+,CDBA(R1)	;  THE BUFFER ADDRESS CSR
  5275	011242'	001423				BEQ	10$		;NO - READER IS REAL
  5276	011244'	074061	000004			XOR	R0,CDBA(R1)	;YES - SET THE BITS BACK
  5277	011250'					CK11SC	0,<NOT CR11>	;  AND COMPLAIN
  5278	011252'	067411	070157	020163		.ASCIZ	"	oops - reader is NOT a CR11"
	011260'	020055	062562	062141
	011266'	071145	064440	020163
	011274'	047516	020124	020141
	011302'	051103	030461	   000
  5279		011310'				.EVEN			;
  5280	011310'	000207				RTS	PC		;
  5281									;
  5282	011312'	052737	000001	005210'	10$:	BIS	#1,CHKCD+4	;MAKE CD20 TEST FAIL IF TRIED
  5283	011320'	004537	007570'			JSR	R5,CHKBIT	;CHECK HARDWARE BITS
  5284	011324'	000102				.WORD	CR.EJT!CR.INE	;
  5285	011326'	032714	001000			BIT	#CR.BSY,(R4)	;SEE IF BUSY (MAYBE POWER OFF)
  5286	011332'	001414				BEQ	2$		;BRANCH IF COMMAND CAN BE GIVEV
  5287	011334'					CK11SC	0,< CR11 not Rdy>
  5288	011336'	041440	030522	020061		.ASCIZ	\ CR11 not Rdy\
	011344'	067556	020164	062122
	011352'	000171
  5289						.EVEN
  5290	011354'	012737	000006	015502'		MOV	#CR.LVL,CHKCHR+CKPI ;GIVE DEFAULT LEVEL
  5291	011362'	000207				RTS	PC		;
  5292									;
  5293	011364'	012714	000101		2$:	MOV	#CR.INE!CR.CFD,(R4) ;SET INT ENABLE AND READ
  5294								; TO FORCE ANY KIND OF INT
  5295	011370'	005000				CLR	R0		;FOR TIMING OUT
  5296	011372'	032714	100200		1$:	BIT	#CR.ERR!CR.CDN,(R4) ;SEE IF AN INT CONDITION EXISTS
  5297	011376'	001015				BNE	3$		;IF NOT, THEN WAIT.
  5298	011400'	077004				SOB	R0,1$		;START TIMING OUT
  5299	011402'	042714	000100			BIC	#CR.INE,(R4)	;DISABLE CR11 INT ENABLE
  5300	011406'					CK11SC	<CKEPC!CKEDID>,<CR11 Timed Out>,<CR11 NOT RESPONDING>
  5301	011410'	051103	030461	052040		.ASCIZ	\CR11 Timed Out\
	011416'	066551	062145	047440
	011424'	072165	   000
  5302		011430'				.EVEN			;
  5303	011430'	000207				RTS	PC		;
  5304									;
  5305	011432'	004537	010026'		3$:	JSR	R5,CHKINL	;FIND INT LEVEL
  5306	011436'	177777				-1			;FOR TIME-OUT LOOP
  5307	011440'	042714	000100			BIC	#CR.INE,(R4)	;DISABLE INT FOR CR11
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 27-1
C11DMC.MAC    04-JAN-83 11:18			CHECK CR11 HARDWARE

  5308	011444'	000207				RTS	PC		;
  5309		   000				    .ENDC ;NE FTCR11
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 27-2
C11DMC.MAC    04-JAN-83 11:18			CHECK DH11 HDW

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

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

  5423						JSR	PC,CKDHPL		;REPORT LINE NUMBER
  5424						BR	CKDH1D			;DON'T TEST ANY MORE
  5425					17$:	BIC	#DH..TI,(R4)		;CLEAR XMIT INT
  5426						BR	CKDH1E			;
  5427					4$:	BIT	#DH..SI,(R4)		;SEE IF SILO OVERFLOW
  5428						BEQ	CKDH1C			;BRANCH IF SILO HAD ROOM
  5429						CK11SC	<CKEPC!CKEDID>,<Silo Full>,<SILO OVERFLOW>
  5430						.ASCIZ	\Silo Full\<377>
  5431						.EVEN
  5432						JSR	PC,CKDHPL		;REPORT LINE NUMBER
  5433						BR	CKDH1D			;DON'T TEST ANY MORE
  5434					CKDH1C:	BIC	#DH..RI,(R4)		;CLEAR RCV INT (MUST FOR MAINT MODE)
  5435						MOV	DH.NRC(R4),R0		;GET STUFF FROM SILO
  5436						BIT	#DH.DOV!DH..FE!DH..PE,R0	;SEE IF ANY ERROR BITS WITH DATA
  5437						BEQ	7$			;BRANCH IF NO ERRORS WITH THE DATA
  5438						MOV	DHDATA,-(SP)		;MAKE THE GOOD
  5439						MOV	R3,-(SP)			;PUT LINE # IN
  5440						SWAB	(SP)			;GET IT IN THE (LB)
  5441						BIS	(SP)+,(SP)		;LINE # NOW IN GOOD
  5442						BIS	#DH.VDP,(SP)		;GOOD INCLUDES VALID DATA PRESENT
  5443						MOV	R0,-(SP)			;THE BAD
  5444						MOV	R3,-(SP)			;THE LINE UNDER TEST
  5445						CK11SC	<CKEGB!CKEPC!CKEDID>,<Data Err Bit Set>,<ERROR BITS WITH THE DATA>
  5446						.ASCIZ	\Data Err Bit Set\<377>
  5447						.EVEN
  5448						BR	CKDH1D			;DON'T TEST ANY MORE
  5449					7$:	BIT	#DH.VDP,R0		;SEE IF VALID DATA
  5450						BNE	8$			;BRANCH IF VALID DATA
  5451						CK11SC	<CKEPC!CKEDID>,<Not Valid Data>,<NOT VALID DATA BIT SET>
  5452						.ASCIZ	\Not Valid Data\<377>
  5453						.EVEN
  5454						JSR	PC,CKDHPL		;REPORT LINE NUMBER
  5455						BR	CKDH1D			;DON'T TEST ANY MORE
  5456					8$:	BIC	#B15!B14!B13!B12,R0	;CLEAR DATA ERROR BITS
  5457						SWAB	R0			;FOR CHECKING LINE #
  5458						CMPB	R0,R3			;SEE IF LINE #OK
  5459						BEQ	9$			;BRANCH IF IT IS
  5460						MOV	R3,-(SP)			;LEGAL LINE NUMBER
  5461						CLR	-(SP)			;0 FOR BYTE MOVE
  5462						MOVB	R0,(SP)			;THE ILLEGAL LINE NUMBER
  5463						MOV	R3,-(SP)			;LINE UNDER TEST
  5464						CK11SC	<CKEGB!CKEPC!CKEDID>,<Ill Line Num>,<ILLEGAL LINE NUMBER>
  5465						.ASCIZ	\Ill Line Num\<377>
  5466						.EVEN
  5467						BR	CKDH1D			;DON'T TEST ANY MORE
  5468					9$:	SWAB	R0			;FOR CHECKING THE DATA
  5469						CMPB	R0,DHDATA		;SEE IF CORRECT DATA
  5470						BEQ	10$			;BRANCH IF DATA OK
  5471						MOV	DHDATA,-(SP)		;GOOD DATA
  5472						CLR	-(SP)			;FOR BYTE MOVE
  5473						MOVB	R0,(SP)			;THE BAD DATA
  5474						MOV	R3,-(SP)			;THE LINE #
  5475						CK11SC	<CKEGB!CKEPC!CKEDID>,<Data Err>,<DATA ERROR>
  5476						.ASCIZ	\Data Err\<377>
  5477						.EVEN
  5478						BR	CKDH1D			;DON'T TEST ANY MORE
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 27-5
C11DMC.MAC    04-JAN-83 11:18			CHECK DH11 HDW

  5479					10$:	INCB	DHDATA			;NEW PATTERN EXPECTED
  5480						BEQ	11$			;BRANCH IF LINE DONE
  5481						JMP	CKDH1E			;
  5482					;
  5483					11$:
  5484					CKDH1D:	INC	R3			;NEW LINE NUMBER
  5485						ASL	R2			;NEW BIT FOR NEXT LINE
  5486						BEQ	CKDH1F			;BRANCH IF TEST ALL DONE
  5487						JMP	CKDH1B			;
  5488					;
  5489					CKDHPL:	CK11SC	0,<		Line #>
  5490						.ASCIZ	\		Line #\
  5491						.EVEN
  5492						MOV	R3,R0			;LINE NUMBER TO R0 FOR CALL
  5493						JSR	PC,CKTOCT		;PRINT LINE NUMBER
  5494						RTS	PC			;RETURN
  5495					;
  5496						    .IFF ;NE NDH11
  5497					10$:	JSR	R0,CKTSTR
  5498						.ASCIZ	\	SKIPPING TRANSMISSION CHECK\
  5499						.EVEN
  5500						MOV	#377+<<.+6-10$>/2>,10$	;SHUT OFF SKIPPING COMMENT
  5501		   001				    .ENDC ;NE NDH11
  5502					;
  5503					CKDH1F:	BIS	#DH..MC,(R4)		;MASTER CLEAR
  5504						MOV	(SP)+,R3	;GET R3 BACK
  5505						RTS	PC			;DH CHARACTER TEST DONE
  5506					DHDATA:	0
  5507					DHXMII:	0
  5508		   000				    .ENDC ;NE FTDH11
  5509					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 28
C11DMC.MAC    04-JAN-83 11:18			CHECK DH11 HDW

  5511
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 29
C11DMC.MAC    04-JAN-83 11:18			CHECK DH11 HDW

  5513
  5514					.SBTTL		CHECK DL11-A HDW
  5515					;
  5516						    .IIF NDF FTDL1A,FTDL1A=0
  5517		   001				    .IF NE FTDL1A
  5518					XDL.A11:
  5519						RTS	PC
  5520		   000				    .ENDC ;NE FTDL1A
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 29-1
C11DMC.MAC    04-JAN-83 11:18			CHECK DL11-E HDW

  5522					.SBTTL		CHECK DL11-E HDW
  5523					;
  5524					;CALL	MOV	#<VECTOR ADR>,R3
  5525					;	MOV	#<HDW ADR>,R4
  5526					;	MOV	#<HDW ADR>,R1
  5527					;	JSR	PC,XDL11
  5528					;
  5529						    .IIF NDF FTDL1E,FTDL1E=0
  5530		   001				    .IF NE FTDL1E
  5531	011446'				XDL.E11:
  5532	011446'	010346				MOV	R3,-(SP)	;
  5533	011450'	004537	007570'			JSR	R5,CHKBIT	;CHECK READ/WRITE BITS
  5534	011454'	000156				000156			;
  5535	011456'	005721				TST	(R1)+		;ADVANCE TO RECEIVE DATA REGISTER
  5536	011460'	005721				TST	(R1)+		;ADVANCE TO TRANSMIT STATUS REGISTER
  5537	011462'	004537	007570'			JSR	R5,CHKBIT	;
  5538	011466'	000105				000105			;
  5539	011470'	012603				MOV	(SP)+,R3	;
  5540	011472'	000207				RTS	PC		;
  5541		   000				    .ENDC ;NE FTDL1E
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 29-2
C11DMC.MAC    04-JAN-83 11:18			CHECK DM11BB HDW

  5543					.SBTTL		CHECK DM11BB HDW
  5544					;
  5545					;CALL	MOV	#<VECTOR ADR>,R3
  5546					;	MOV	#<HDW ADR>,R4
  5547					;	MOV	#<HDW ADR>,R1
  5548					;	JSR	PC,XDM11
  5549					;
  5550						    .IIF NDF FTDM11,FTDM11=0
  5551		   001				    .IF NE FTDM11
  5552					XDM11:	JSR	R5,CHKBIT		;CHECK FOLLOWING BITS
  5553						DM.ALI!DM.DNE!DM..MM!DM.ENB!DM.IEN
  5554						$CKINT	,R4,<DM.IEN>,<DM.DNE>
  5555						JSR	PC,CKDMCS		;CLEAR SCAN AND CHECK IT CLEARED
  5556						BIS	#DM.ENB,(R4)		;ENABLE SCAN
  5557						BIT	#DM.BSY,(R4)		;SEE IF BSY SET
  5558						BNE	1$			;BRANCH IF IT DID
  5559						CK11SC	<CKEPC!CKEDID>,<Busy did not Set>,<BUSY DID NOT SET>
  5560						.ASCIZ	\Busy did not Set\<377>
  5561						.EVEN
  5562					1$:	JSR	PC,CKDMCS		;CLEAR SCAN AND CHECKED IT CLEARED
  5563						RTS	PC
  5564					;
  5565					.IIF NDF DM.TIM,DM.TIM=40.		;DM11BB SETTLE TIME IN MEMORY CYCLES
  5566					;
  5567					CKDMCS:	MOV	#DM.DNE!DM..MM!DM.IEN!DM.ENB!DM.ALI,R2
  5568										;BITS WHICH SHOULD GET CLEARED
  5569						MOV	#<DM.TIM/5>,R0		;TIME OUT FOR BUSY
  5570						BIS	#DM.SCN,(R4)		;CLEAR SCAN
  5571					5$:	BIT	#DM.BSY,(R4)		;SEE IF BUSY CLEAR YET
  5572						BEQ	2$			;BRANCH IF IT IS
  5573						SOB	R0,5$			;TIME OUT WAITING FOR BSY TO CLEAR
  5574						CK11SC	<CKEPC!CKEDID>,<Busy did not Clear>,<CLEARING SCAN FAILED TO CLEAR BUSY>
  5575						.ASCIZ	\Busy did not Clear\<377>
  5576						.EVEN
  5577					2$:	BIT	R1,(R4)			;SEE IF THEY ARE ALL CLEAR
  5578						BEQ	3$			;BRANCH IF THEY ARE ALL CLEAR
  5579						MOV	(R4),R0			;GET DM11 STATUS
  5580						COM	R2			;MASK OUT NON INTERESTING BITS
  5581						BIC	R2,R0			;
  5582						CLR	-(SP)			;GOOD
  5583						MOV	R0,-(SP)			;BAD
  5584						MOV	R4,-(SP)			;ADR
  5585						CK11SC	<CKEGB!CKEPC!CKEDID>,<Clear Scan Error>,<CLR SCAN FAILED TO CLEAR A BIT>
  5586						.ASCIZ	\Clear Scan Error\<377>
  5587						.EVEN
  5588					3$:	RTS	PC
  5589		   000				    .ENDC ;NE FTDM11
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 29-3
C11DMC.MAC    04-JAN-83 11:18			CHECK DN11 HDW

  5591					.SBTTL		CHECK DN11 HDW
  5592					;
  5593					;CALL	MOV	#<VECTOR ADR>,R3
  5594					;	MOV	#<HDW ADR>,R4
  5595					;	MOV	#<HDW ADR>,R1
  5596					;	JSR	PC,XDN11
  5597					;
  5598						    .IIF NDF FTDN11,FTDN11=0
  5599		   001				    .IF NE FTDN11
  5600					XDN11:	JSR	R5,CHKBIT		;CHECK BITS
  5601						007714				;READ/WRITE BITS
  5602						$CKINT	,R4,<DN..IE!DN..ME>,<DN.DNE>
  5603						RTS	PC
  5604		   000				    .ENDC ;NE FTDN11
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 29-4
C11DMC.MAC    04-JAN-83 11:18			CHECK DP11 HDW

  5606					.SBTTL		CHECK DP11 HDW
  5607					;
  5608					;CALL	MOV	#<VECTOR ADR>,R3
  5609					;	MOV	#<HDW ADR>,R4
  5610					;	MOV	#<HDW ADR>,R1
  5611					;	JSR	PC,XDP11
  5612					;
  5613						    .IIF NDF FTDP11,FTDP11=0
  5614		   001				    .IF NE FTDP11
  5615					XDP11:	JSR	R5,CHKBIT	;CHECK BITS
  5616						3707			;READ/WRITE BITS
  5617						TST	(R1)+		;ADV TO REC BUF/SYN REG
  5618					;;;;	JSR	R5,CHKBIT	;CHECK BITS
  5619					;;;;	000000			;READ/WRITE BITS
  5620						TST	(R1)+		;ADV TO XMT STATUS REG
  5621						JSR	R5,CHKBIT	;
  5622						000143			;READ/WRITE BITS
  5623					;;;;	TST	(R1)+		;ADV TO XMT BUFFER
  5624					;;;;	JSR	R5,CHKBIT	;
  5625					;;;;	000000			;READ/WRITE BITS
  5626						$CKINT	R4,R4,B6,B7	;
  5627						RTS	PC		;
  5628		   000				    .ENDC ;NE FTDP11
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 29-5
C11DMC.MAC    04-JAN-83 11:18			CHECK DQ11 HDW

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

  5686					2$:	MOV	R2,-(SP)			;SAVE GOOD
  5687						BIS	#B15,(SP)		; ALSO MUST INCLUDE BIT 15.
  5688						JSR	PC,CKDQES		;PUT BAD AND REG # ON STACK
  5689						CK11SC	<CKEDID!CKEPC!CKEGB>,<Bit not Set>,<CAN'T SET BIT>
  5690						.ASCIZ	\Bit not Set\<377>
  5691						.EVEN
  5692					3$:	BIC	R2,4(R4)		;CLEAR BIT JUST SET, SHOULD ALSO CLEAR B15.
  5693						MOV	4(R4),R0		;SAVE RESULTS
  5694						BMI	4$			;BRANCH IF B15 SET (IT SHOULDN'T BE)
  5695						BIT	R2,R0		;SEE IF THE BIT IS CLEAR
  5696						BEQ	5$			;BRANCH IF ITS 0
  5697					4$:	CLR	-(SP)			;WHAT GOOD SHOULD BE
  5698						JSR	PC,CKDQES		;SAVE BD, AND REG # ON STACK
  5699						CK11SC	<CKEDID!CKEPC!CKEGB>,<Bit not Clear>,<COULDN'T CLEAR BIT>
  5700						.ASCIZ	\Bit not Clear\<377>
  5701						.EVEN
  5702					5$:	ASR	R2			;ALL DONE?
  5703						BNE	1$			;BRANCH BACK IF ANOTHER BIT TO TEST
  5704						BR	CHKDQS		;GO CHECK SECONDARY REGS
  5705					;
  5706					CKDQES:	MOV	(SP)+,R1			;SAVE RETURN PC
  5707						MOV	R0,-(SP)			;PUT C(ERR REG) ON STACK
  5708						MOV	R2,-(SP)			;BIT WE TESTED
  5709						BIS	#B15,(SP)		;INCLUDE ERROR BIT
  5710						COM	(SP)			;
  5711						BIC	(SP)+,(SP)		;KEEP ONLY THE INTERESTING BITS
  5712						MOV	R4,-(SP)			;SAVE REG ADR
  5713						ADD	#4,(SP)			;MAKE IT THE ERROR REG
  5714						JMP	(R1)			;RETURN
  5715					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 30
C11DMC.MAC    04-JAN-83 11:18			CHECK DQ11 HDW

  5717
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 31
C11DMC.MAC    04-JAN-83 11:18			CHECK DQ11 HDW

  5719
  5720					; CHECK WE CAN LOAD VARIOUS DQ11 SECONDARY REGISTERS
  5721					;
  5722					CHKDQS:	CLR	R0			;1ST TRY TO CLEAR ALL SECONDARY REGISTERS
  5723						JSR	PC,60$			;GO DO IT
  5724						MOV	#-1,R0			;NOW TRY TO SET ALL SECONDARY REGISTERS
  5725						JSR	PC,60$
  5726						MOV	#1,R0			;BIT TO LOAD
  5727					10$:	JSR	PC,60$			;TRY TO LOAD BIT
  5728						ASL	R0			;SHIFT BIT
  5729						BNE	10$			;BRANCH IF STILL HAVE BITS TO TEST
  5730						MOV	#RG.SYN,R1		;NOW TRY TO LOAD REG WITH REG #
  5731					12$:	MOV	R1,R0			;DATA = REGISTER NUMBER
  5732						JSR	PC,CKDQSL		;TRY TO LOAD REGISTER
  5733						CMP	#RG.SYN,R1
  5734						BNE	14$
  5735						DEC	R1			;SKIP REG 10
  5736					14$:	DEC	R1			;ON TO NEXT REGISTER
  5737						BPL	12$
  5738						MOV	#RG.SYN,R1		;NOW CHECK IT LOADED
  5739					16$:	MOV	R1,R0			;DATA SHOULD BE SAME
  5740						JSR	PC,CKDQSR		;CHECK DATA STILL THERE
  5741						CMP	#RG.SYN,R1		;WAS THIS THE FIRST REG ?
  5742						BNE	18$
  5743						DEC	R1			;YES SO SKIP REG 10
  5744					18$:	DEC	R1			;ON TO NEXT REGISTER
  5745						BPL	16$			;DO REST IF ANY
  5746						MOV	#RG.MSC,R1		;NOW TEST MISC REG
  5747						CLR	R0			;TRY TO CLEAR REGISTER
  5748						JSR	PC,CKDQSL		;TRY TO LOAD IT
  5749						MOV	#2,R0			;TEST STEP-MODE BIT
  5750						JSR	PC,CKDQSL
  5751						MOV	#
  5752					10,R0			;TEST TEST-LOOP BIT
  5753						JSR	PC,CKDQSL
  5754						CLR	R0
  5755						JSR	PC,CKDQSL		;CLEAR MISC REG
  5756						BR	CHKDQL			;DO A LOOP BACK TEST
  5757					;
  5758					60$:	MOV	#RG.SYN,R1		;1ST REGISTER TO LOAD
  5759					62$:	JSR	PC,CKDQSL
  5760						CMP	#RG.SYN,R1		;DID WE JUST CHECK THE SYN REG ?
  5761						BNE	64$
  5762						DEC	R1			;YES SO SKIP A REG
  5763					64$:	DEC	R1			;ON TO THE NEXT REG
  5764						BPL	62$
  5765						RTS	PC			;YES
  5766					;
  5767					; LOAD A DQ11 2NDARY REGISTER
  5768					; CALL	MOV	#DATA,R0
  5769					;	MOV	#REG,R1
  5770					;	JSR	PC,CKDQSL
  5771					CKDQSL:	BIS	#DQ.MBM,R1
  5772						MOVB	R1,5(R4)		;SELECT THE REGISTER
  5773						MOV	R0,6(R4)		;LOAD THE DATA
  5774					CKDQSR:	BIS	#DQ.MBM,R1
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 31-1
C11DMC.MAC    04-JAN-83 11:18			CHECK DQ11 HDW

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

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

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

  5944
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 33
C11DMC.MAC    04-JAN-83 11:18			CHECK DQ11 HDW

  5946
  5947					.SBTTL		CHECK DS11 HDW
  5948					;
  5949					;CALL	MOV	#<VECTOR ADR>,R3
  5950					;	MOV	#<HDW ADR>,R4
  5951					;	MOV	#<HDW ADR>,R1
  5952					;	JSR	PC,CKDS11
  5953					;
  5954						    .IIF NDF FTDS11,FTDS11=0
  5955		   001				    .IF NE FTDS11
  5956					CKDS11:
  5957						MOV	DS.AUX,R1		;GET AUX REG TO SEE HOW MANY GROUPS
  5958						MOV	#DS.AD1,R2		;FOR CHECKING GROUP NUMBER
  5959						MOV	#4,R0			;ALWAYS 1 GROUP IF DS11
  5960					1$:	BIT	R2,R1			;GROUP EXIST?
  5961						BEQ	2$			;BRANCH IF NO GROUP
  5962						ADD	#4,R0			;COUNT 4 LINES FOR EACH GROUP
  5963						ASL	R2			;POSITION TO CHECK NEXT GROUP BIT
  5964						BNE	1$			;BRANCH IF WE CAN CHECK ANOTHER
  5965					2$:	JSR	PC,CKTBOC		;PRINT NUMBER OF LINES
  5966						CK11SC	CKENCL,< Lines>
  5967						.ASCIZ	\ Lines\
  5968						.EVEN
  5969						MOV	#DS.AUX,R1		;CHECK THE AUX REG
  5970						JSR	R5,CHKBIT		;CHECK FOLLOWING BITS
  5971						1700				;BITS TO CHECK
  5972						MOV	#DS.DVA-2,R1		;SET TO CHECK LINES
  5973						MOV	#DS.VEC,CHKCHR+CKDV	;VECTOR TO START AT
  5974						MOV	26(R5),CHKCHR+CKPI	;PI LEVEL FOR ALL DS11
  5975						MOV	R0,R2			;NUMBER OF LINES TO CHECK
  5976						MOV	#CHKCHR,R0		;POINT TO BLOCK FOR MAIN CALL
  5977					3$:	ADD	#2,R1			;LINE ADR TO CHECK
  5978						MOV	R1,CHKCHR+CKDA		;MAIN NEEDS THIS INFO
  5979						JSR	R5,CHKBIT		;CHK RECEIVE STATUS REG
  5980						6477				;BITS TO CHECK
  5981						TST	(R1)+			;ADVANCE TO REC DATA REG
  5982						JSR	R5,CHKBIT		;CHK RECEIVE DATA REG
  5983						7777				;BITS TO CHECK
  5984						TST	(R1)+			;ADVANCE TO XMIT STATUS REG
  5985						JSR	R5,CHKBIT		;CHK XMIT STATUS REG
  5986						476				;BITS TO CHECK
  5987						TST	(R1)+			;ADVNACE TO XMIT DATA REG
  5988						JSR	R5,CHKBIT		;CHK XMIT DATA REG
  5989						7777				;BITS TO CHECK
  5990						JSR	PC,@14(R5)		;CALL THE MAIN PROGRAM
  5991						ADD	#20,CHKCHR+CKDV		;ADVANCE VECTOR ADR FOR NEXT LINE
  5992						ADD	#10,CHKCHR+CKDA		;ADVANCE DEVICE ADR FOR NEXT LINE
  5993						SOB	R2,3$			;ALL LINES CHECKED?
  5994						MOV	#DS.VEC,CHKCHR+CKDV	;SO "CHKDEV" WILL FILL OUT BLOCK
  5995										;
  5996						RTS	PC			;FINI CHECKING DS11
  5997		   000				    .ENDC ;NE FTDS11
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 33-1
C11DMC.MAC    04-JAN-83 11:18			CHECK DTE20 HARDWARE

  5999					.SBTTL		CHECK DTE20 HARDWARE
  6000					;
  6001					;CALL	MOV	#<VECTOR ADR>,R3
  6002					;	MOV	#<HDW ADR>,R4
  6003					;	MOV	#<HDW ADR>,R1
  6004					;	JSR	PC,XDTE211
  6005					;
  6006						    .IIF NDF FTDTE,FTDTE=0
  6007		   001				    .IF NE FTDTE
  6008	011474'				XDTE211:				;
  6009	011474'	010100				MOV	R1,R0		;FROM THE DEVICE ADDRESS
  6010	011476'	006200				ASR	R0		;BITS 5 AND 6 GIVE US WHICH ONE IT IS
  6011	011500'	006200				ASR	R0		;POSITION TO BITS 2 AND 3 WHICH IS
  6012	011502'	006200				ASR	R0		;WHERE THE VECTOR VARIES
  6013	011504'	042700	177763			BIC	#^C14,R0	;ISOLATE THEM
  6014	011510'	160037	015500'			SUB	R0,CHKCHR+CKDV	;CORRECT OUR VECTOR ADDRESS
  6015	011514'	004537	007570'			JSR	R5,CHKBIT	;CHECK DLYCNT IN DTE'S RAM
  6016	011520'	177777				177777			; SINCE WE CAN ACCESS ALL THE BITS
  6017	011522'	062701	000034			ADD	#CSTAT-DLYCNT,R1 ;POINT TO STATUS REGISTER
  6018	011526'	012711	000040			MOV	#INTRON,(R1)	;ENABLE INTERRUPTS
  6019	011532'	032711	000001			BIT	#INTSON,(R1)	;DOES DTE AGREE?
  6020	011536'	001022				BNE	10$		;YEP
  6021	011540'					CK11SC	<CKEPC!CKEDID>,<Setting INTRON didn't set INTSON>
  6022	011542'	062523	072164	067151		.ASCIZ	\Setting INTRON didn't set INTSON\<377>
	011550'	020147	047111	051124
	011556'	047117	062040	062151
	011564'	023556	020164	062563
	011572'	020164	047111	051524
	011600'	047117	000377
  6023						.EVEN
  6024	011604'	012711	004000		10$:	MOV	#INT11S,(R1)	;NOW SEE IF IT WILL INTERRUPT US
  6025	011610'	004537	010026'			JSR	R5,CHKINL
  6026	011614'	177777				-1			;TIME DELAY COUNT
  6027	011616'	012711	000010			MOV	#INTROF,(R1)	;TRY TO MAKE IT GO AWAY
  6028	011622'	032711	000001			BIT	#INTSON,(R1)	;WHICH SHOULD TURN THIS OFF
  6029	011626'	001423				BEQ	20$		;OKAY
  6030	011630'					CK11SC	<CKEPC!CKEDID>,<Setting INTROF didn't clear INTSON>
  6031	011632'	062523	072164	067151		.ASCIZ	\Setting INTROF didn't clear INTSON\<377>
	011640'	020147	047111	051124
	011646'	043117	062040	062151
	011654'	023556	020164	066143
	011662'	060545	020162	047111
	011670'	051524	047117	000377
  6032						.EVEN
  6033	011676'	032711	000010		20$:	BIT	#RM,(R1)		;WE SHOULD BE RESTRICTED
  6034	011702'	001016				BNE	30$		;WE ARE, FINE
  6035	011704'					CK11SC	<CKEPC!CKEDID>,<DTE20 is not restricted>
  6036	011706'	052104	031105	020060		.ASCIZ	\DTE20 is not restricted\<377>
	011714'	071551	067040	072157
	011722'	071040	071545	071164
	011730'	061551	062564	177544
	011736'	   000
  6037		011740'				.EVEN			;
  6038	011740'	012741	000100		30$:	MOV	#DRESET,-(R1)	;REALLY INITIALIZE DTE20
  6039	011744'	000207				RTS	PC
  6040		   000				    .ENDC ;NE FT.DTE
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 33-2
C11DMC.MAC    04-JAN-83 11:18			CHECK DU11 HDW

  6042					.SBTTL		CHECK DU11 HDW
  6043					;
  6044					;CALL	MOV	#<VECTOR ADR>,R3
  6045					;	MOV	#<HDW ADR>,R4
  6046					;	MOV	#<HDW ADR>,R1
  6047					;	JSR	PC,XDU11
  6048						    .IIF NDF FTDU11,FTDU11=0
  6049		   001				    .IF NE FTDU11
  6050					XDU11:				;
  6051						RTS	PC
  6052		   000				    .ENDC ;NE FTDU11
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 33-3
C11DMC.MAC    04-JAN-83 11:18			CHECK DUP11 HDW

  6054					.SBTTL		CHECK DUP11 HDW
  6055					;
  6056					;CALL	MOV	#<VECTOR ADR>,R3
  6057					;	MOV	#<HDW ADR>,R4
  6058					;	MOV	#<HDW ADR>,R1
  6059					;	JSR	PC,XUP11
  6060						    .IIF NDF FTDUP1,FTDUP1=0
  6061		   001				    .IF NE FTDUP1
  6062	011746'				XDUP11:				;
  6063	011746'					FIELD	$$,DUPRIE,DUPDTR ;
  6064	011746'	004537	007570'			JSR	R5,CHKBIT	;TEST THE RECVR CSR
  6065	011752'	000576				.WORD	DUPSSY!$$	;
  6066	011754'	005721				TST	(R1)+		;UP TO RECVR, BUT IT'S READ ONLY
  6067	011756'	005721				TST	(R1)+		;UP TO XMIT CSR
  6068	011760'	004537	007570'			JSR	R5,CHKBIT	;
  6069	011764'	036130				.WORD	DUPTMC!DUPTM1!DUPTM0!DUPTMI!DUPTIE!DUPTSN!DUPTHD
  6070	011766'	005721				TST	(R1)+		;UP TO XMIT DBR
  6071	011770'	004537	007570'			JSR	R5,CHKBIT	;
  6072	011774'	003777				.WORD	DUPXAB!DUPXEM!DUPXSM!DUPXDB
  6073	011776'	010401				MOV	R4,R1		;RESTORE DEVICE ADDRESS
  6074									;(ADD INTERRUPT CHECK)
  6075	012000'	000207				RTS	PC		;
  6076		   000				    .ENDC ;NE FTDUP1
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 33-4
C11DMC.MAC    04-JAN-83 11:18			CHECK DZ11 HDW

  6078					.SBTTL		CHECK DZ11 HDW
  6079					;
  6080					;CALL	MOV	#<VECTOR ADR>,R3
  6081					;	MOV	#<HDW ADR>,R4
  6082					;	MOV	#<HDW ADR>,R1
  6083					;	JSR	PC,XDZ11
  6084						    .IIF NDF FTDZ11,FTDZ11=0
  6085		   001				    .IF NE FTDZ11
  6086	012002'				XDZ11:				;
  6087	012002'	004537	007570'			JSR	R5,CHKBIT	;
  6088	012006'	040140				.WORD	DZ.TIE!DZ.RIE!DZ.SCN
  6089	012010'	005721				TST	(R1)+		;
  6090	012012'	004537	007570'			JSR	R5,CHKBIT	;
  6091	012016'	000000				.WORD	0		;
  6092	012020'	010401				MOV	R4,R1		;
  6093									;ADD INTERRUPT TEST
  6094	012022'	000207				RTS	PC		;
  6095		   000				    .ENDC ;NE FTDZ11
  6096					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 34
C11DMC.MAC    04-JAN-83 11:18			CHECK DZ11 HDW

  6098
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 35
C11DMC.MAC    04-JAN-83 11:18			CHECK DZ11 HDW

  6100
  6101					.SBTTL		CHECK KG11 HARDWARE
  6102					;
  6103	012024'				XKG11:	SAVE	R3		;
  6104	012026'					CHKCHR	R4,<#0>,<#0>	;
  6105	012046'	005000				CLR	R0		;
  6106	012050'				11$:	KGLOAD	R0		;
  6107	012064'	020064	000002			CMP	R0,KGBCC(R4)	;CHECK THAT IT LOADED
  6108	012070'	001422				BEQ	12$		;OK
  6109	012072'					CKSERR	R0,KGBCC(R4),R4	;GD,BD,ADR
  6110	012102'					CK11SC	<CKEPC!CKEDID!CKEGB>,<Can't load BCC Correctly>,<BCC ERROR>
  6111	012104'	060503	023556	020164		.ASCIZ	\Can't load BCC Correctly\<377>
	012112'	067554	062141	041040
	012120'	041503	041440	071157
	012126'	062562	072143	074554
	012134'	000377
  6112						.EVEN			;
  6113	012136'	077034			12$:	SOB	R0,11$		;
  6114									;
  6115									; CHECK CRC PORTION
  6116									;
  6117	012140'	012700	000777			MOV	#777,R0		;FIRST ENTRY FOR CRC
  6118	012144'					KGLOAD	#0		;CLEAR KG11
  6119	012150'	005003				CLR	R3		;CLEAR SOFTWARE COPY
  6120	012152'	004737	012230'		20$:	JSR	PC,70$		;CALCULATE SOFTWARE BCC
  6121	012156'	110064	000004			MOVB	R0,KGDATA(R4)	;INCLUDE CHAR IN HDW BCC
  6122	012162'	020364	000002			CMP	R3,KGBCC(R4)	;
  6123	012166'	001415				BEQ	54$		;
  6124	012170'					CKSERR	R3,KGBCC(R4),R4	;
  6125	012200'					CK11SC	<CKEPC!CKEGB!CKEDID>,<Incorrect CRC>,<INCORRECT CRC>
  6126	012202'	067111	067543	071162		.ASCIZ	\Incorrect CRC\<377>
	012210'	061545	020164	051103
	012216'	177503	   000
  6127		012222'				.EVEN			;
  6128	012222'	077025			54$:	SOB	R0,20$		;
  6129									;
  6130	012224'					RESTORE	R3		;
  6131	012226'	000207				RTS	PC		;
  6132					;
  6133					;SUBROUTINE TO CALCULATE CRC IN R3
  6134					;
  6135	012230'				70$:	SAVE	<R0,R1>		;
  6136	012234'	042700	177400			BIC	#^C377,R0	;STRIP EXTRA BITS
  6137	012240'	012701	000010			MOV	#8.,R1		;COUNTER
  6138	012244'	074003				XOR	R0,R3		;
  6139	012246'	012700	120001			MOV	#120001,R0	;
  6140	012252'	000241			72$:	CLC			;CLEAR CARRY BIT
  6141	012254'	006003				ROR	R3		;
  6142	012256'	103001				BCC	74$		;
  6143	012260'	074003				XOR	R0,R3		;
  6144	012262'	077105			74$:	SOB	R1,72$		;
  6145	012264'					RESTORE	<R1,R0>		;
  6146	012270'	000207				RTS	PC		;
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 35-1
C11DMC.MAC    04-JAN-83 11:18			CHECK KMC/DMC HARDWARE

  6148					.SBTTL		CHECK KMC/DMC HARDWARE
  6149					;
  6150					;CALL	MOV	#<VECTOR ADR OF KMC11>,R3
  6151					;	MOV	#<HDW ADR OF KMC11>,R4
  6152					;	MOV	#<HDW ADR OF KMC11>,R1
  6153					;	JSR	PC,XKMC11
  6154					;
  6155						    .IIF NDF FTKMC,FTKMC=0
  6156						    .IIF NDF FTDMC,FTDMC=0
  6157		   001				    .IF NE FTDMC
  6158	012272'				XDMC11:
  6159	012272'	010546			XKMC11:	MOV	R5,-(SP)	;SAVE R5
  6160	012274'	010446				MOV	R4,-(SP)	; AND R4
  6161	012276'	010346				MOV	R3,-(SP)	; AND R3
  6162	012300'	012714	040000			MOV	#MD.CLR,(R4)	;INITIALIZE THE KMC11
  6163	012304'	013746	001172'			MOV	MDCSRP,-(SP)	;LOG IN THE DEVICE
  6164	012310'	001004				BNE	10$		;NOT THE FIRST
  6165	012312'	012716	001174'			MOV	#MDCSR,(SP)	;THE FIRST, SET POINTER
  6166	012316'	011637	001172'			MOV	(SP),MDCSRP	;
  6167	012322'	010436			10$:	MOV	R4,@(SP)+	;ENTER DEVICE CSR INTO STARTUP TABLE
  6168	012324'	062737	000002	001172'		ADD	#2,MDCSRP	;UPDATE TABLE POINTER
  6169	012332'	005024				CLR	(R4)+		;CLEAR THE CSRS
  6170	012334'	005024				CLR	(R4)+		;
  6171	012336'	005024				CLR	(R4)+		;
  6172	012340'	005024				CLR	(R4)+		;
  6173	012342'	010104				MOV	R1,R4		;
  6174	012344'	004537	007570'			JSR	R5,CHKBIT	;VERIFY THESE BITS WORK
  6175	012350'	000377				.WORD	377		;ALL BITS OF BSEL 0
  6176	012352'	005721				TST	(R1)+		;LOOK AT SEL 2
  6177	012354'	004537	007570'			JSR	R5,CHKBIT	;VERIFY THESE BITS WORK
  6178	012360'	177777				.WORD	ALLBTS		;ALL BITS OF SEL 2
  6179	012362'	005721				TST	(R1)+		;LOOK AT SEL 4
  6180	012364'	004537	007570'			JSR	R5,CHKBIT	;VERIFY THESE BITS WORK
  6181	012370'	177777				.WORD	ALLBTS		;ALL BITS OF SEL 4
  6182	012372'	005721				TST	(R1)+		;LOOK AT SEL 6
  6183	012374'	004537	007570'			JSR	R5,CHKBIT	;VERIFY THESE BITS WORK
  6184	012400'	177777				.WORD	ALLBTS		;ALL BITS OF SEL 6
  6185		   002				    .IF NE FTKMCL
  6186						TST	MDCODB+2	;IF WE ARE RETAINING THE CRAM...
  6187						BEQ	20$		; DON'T CHECK INTERRUPTS (CLOBBERS CRAM 0)
  6188		   001				    .ENDC ;NE FTKMCL
  6189									;CREATE A DMC INTERRUPT BY SETTING
  6190									;  BUS RQ IN MP MISC BY JAMMING MP INSTRS
  6191	012402'	012737	000340	177776		MOV	#BR7,PS		;STOP INTERRUPTS
  6192	012410'	012714	001000			MOV	#MD.RMI,(R4)	;SET ROM I ("JAM INSTRUCTION")
  6193	012414'	012764	000600	000006		MOV	#600,6(R4)	;600 = "MOVE #200,BRG"
  6194	012422'	052714	000400			BIS	#MD.SMP,(R4)	;EXECUTE THE INSTRUCTION
  6195	012426'	005014				CLR	(R4)		;TURN OFF STEP AND ROM I
  6196	012430'	012714	001000			MOV	#MD.RMI,(R4)	;SET ROM I AGAIN
  6197	012434'	012764	061231	000006		MOV	#61231,6(R4)	;61231 = "MOVE BRG,MISC" (SETS BUS RQ)
  6198	012442'	052714	000400			BIS	#MD.SMP,(R4)	;EXECUTE
  6199	012446'	005014				CLR	(R4)		;TURN OFF ROM I
  6200	012450'	004537	010026'			JSR	R5,CHKINL	;CHECK FOR THE RESULTING INTERRUPT
  6201	012454'	177777				.WORD	177777		;
  6202	012456'	012714	040000			MOV	#MD.CLR,(R4)	;CLEAR INTERFACE
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 35-2
C11DMC.MAC    04-JAN-83 11:18			CHECK KMC/DMC HARDWARE

  6204					; IF WE HAVE A VALID COPY OF THE MICROCODE, WE CAN TEST
  6205					;  THE CRAM.  OTHERWISE BYPASS MOST OF THE TESTING.
  6206					;
  6207	012462'				20$:
  6208		   002				    .IF NE FTKMC
  6209	012462'	012701	000012			MOV	#12,R1		;CHECK ARBITRARY LOCATION IN CRAM
  6210	012466'	004737	013330'			JSR	PC,CKMDRD	;READ FROM IT
  6211	012472'	010046				MOV	R0,-(SP)	;SAVE DATA READ
  6212	012474'	005100				COM	R0		;INVERT IT
  6213	012476'	004737	013176'			JSR	PC,CKMDWR	;WRITE BACK INVERTED DATA
  6214	012502'	004737	013330'			JSR	PC,CKMDRD	;READ IT BACK OUT
  6215	012506'	020026				CMP	R0,(SP)+	;CHECK IT AGAINST WHAT WAS WRITTEN
  6216	012510'	001034				BNE	22$		;DATA DIFFERENT, CRAM IS READ/WRITE
  6217									;NOT WRITTEN, CRAM IS A CROM
  6218	012512'	023727	001156'	000744'		CMP	CKDNAM,#N.KMC11	;DID YOU EXPECT A KMC?
  6219	012520'	001026				BNE	21$		;NO, SKIP CRAM CHECK, NO MSG
  6220	012522'	013746	001152'			MOV	CHKFLG,-(SP)	;PREVENT ERROR FROM BEING SET
  6221	012526'					CK11SC	CKEDID,<DEV IS DMC>
  6222	012530'	041411	040522	020115		.ASCIZ	"	CRAM is not R/W, device is a DMC"
	012536'	071551	067040	072157
	012544'	051040	053457	020054
	012552'	062544	064566	062543
	012560'	064440	020163	020141
	012566'	046504	000103
  6223						.EVEN			;
  6224	012572'	012637	001152'			MOV	(SP)+,CHKFLG	;RESTORE PREVIOUS FLAG WORD
  6225	012576'	000137	013132'		21$:	JMP	CKMDXT		;SKIP CRAM CHECK
  6226									;
  6227	012602'	005100			22$:	COM	R0		;INVERT DATA BACK
  6228	012604'	004737	013176'			JSR	PC,CKMDWR	;REWRITE AGAIN
  6229	012610'	023727	001156'	000650'		CMP	CKDNAM,#N.DMC11	;WAS A DMC EXPECTED?
  6230	012616'	001027				BNE	23$		;NO, MUST HAVE BEEN A KMC CALL
  6231	012620'	013746	001152'			MOV	CHKFLG,-(SP)	;PREVENT ERROR FROM BEING SET
  6232	012624'					CK11SC	CKEDID,<dev is a KMC>
  6233	012626'	051011	053457	041440		.ASCIZ	"	R/W CRAM present, device is a KMC"
	012634'	040522	020115	071160
	012642'	071545	067145	026164
	012650'	062040	073145	061551
	012656'	020145	071551	060440
	012664'	045440	041515	   000
  6234		012672'				.EVEN			;
  6235	012672'	012637	001152'			MOV	(SP)+,CHKFLG	;RESTORE PREVIOUS FLAG WORD
  6236	012676'	   003			23$:	    .IF NE FTKMCL
  6237						TST	MDCODB+2	;IS MICROCODE IMAGE INVALID?
  6238						BNE	24$		;NOT OBVIOUSLY
  6239						JSR	PC,CKMDEX	;YES, BE SURE WE CAN CYCLE THE CRAM
  6240						JMP	CKMDXT		; BUT LEAVE ITS CONTENTS ALONE.
  6241					24$:
  6242		   002				    .ENDC ;NE FTKMCL
  6243	012676'	005001				CLR	R1		;START AT CRAM ADDRESS 0
  6244	012700'	005000			30$:	CLR	R0		;DATA IS ZERO
  6245	012702'	004737	013224'			JSR	PC,CKMDCK	;WRITE 0 AND CHECK IT
  6246	012706'	005201				INC	R1		;NEXT CRAM LOCATION
  6247	012710'	022701	002000			CMP	#2000,R1	;REACHED THE END OF THE CRAM?
  6248	012714'	001371				BNE	30$		;NO, DO THE REST.
  6249	012716'	004737	013146'			JSR	PC,CKMDEX	;COMPLEMENT THE CRAM TWICE
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 35-3
C11DMC.MAC    04-JAN-83 11:18			CHECK KMC/DMC HARDWARE

  6250	012722'	005001				CLR	R1		;START AT THE BEGINNING AGAIN
  6251	012724'	004737	013330'		36$:	JSR	PC,CKMDRD	;READ A WORD FROM THE CRAM
  6252	012730'	005700				TST	R0		;IS IT ZERO?
  6253	012732'	001417				BEQ	42$		;YES, THAT IS OK.
  6254	012734'					CKSERR	<#0>,R0,R1	;GOOD, BAD, CRAM ADDRESS
  6255	012744'					CK11SC	<CKEPC!CKEGB!CKEDID>,<CRAM CLEAR FAILED>,<CRAM CLEAR FAILED>
  6256	012746'	041440	040522	020115		.ASCIZ	/ CRAM clear failed /
	012754'	066143	060545	020162
	012762'	060546	066151	062145
	012770'	000040
  6257						.EVEN
  6258	012772'	005201			42$:	INC	R1		;NEXT CRAM ADDRESS
  6259	012774'	022701	002000			CMP	#2000,R1	;REACHED THE END OF THE CRAM?
  6260	013000'	001351				BNE	36$		;NO, DO THE REST
  6261					;
  6262					; NOW SET EACH CRAM LOCATION TO ITS OWN ADDRESS.  THIS CHECKS FOR
  6263					;  ADDRESSING FAILURES.
  6264					;
  6265	013002'	005001				CLR	R1		;START AT LOCATION ZERO
  6266	013004'	010100			50$:	MOV	R1,R0		;GET ADDRESS
  6267	013006'	006300				ASL	R0		; * 2 (WE ARE PUTTING THE 10-BIT
  6268	013010'	006300				ASL	R0		; * 4  CRAM ADDRESS IN THE MIDDLE
  6269	013012'	006300				ASL	R0		; * 8  OF THE 16-BIT WORD.)
  6270	013014'	004737	013224'			JSR	PC,CKMDCK	;WRITE ADDRESS INTO CRAM
  6271	013020'	005201				INC	R1		;NEXT CRAM ADDRESS
  6272	013022'	020127	002000			CMP	R1,#2000	;REACHED END OF CRAM YET?
  6273	013026'	103766				BLO	50$		;NO, GO DO THE REST.
  6274	013030'	004737	013146'			JSR	PC,CKMDEX	;COMPLEMENT THE CRAM TWICE
  6275	013034'	005001				CLR	R1		;START AT BEGINNING OF CRAM AGAIN
  6276	013036'	004737	013330'		55$:	JSR	PC,CKMDRD	;READ WORD FROM CRAM
  6277	013042'	010102				MOV	R1,R2		;GET CRAM ADDRESS
  6278	013044'	006302				ASL	R2		; * 2
  6279	013046'	006302				ASL	R2		; * 4
  6280	013050'	006302				ASL	R2		; * 8
  6281	013052'	020002				CMP	R0,R2		;IS THE CRAM OK?
  6282	013054'	001422				BEQ	60$		;YES
  6283	013056'					CKSERR	R2,R0,R1	;NO, STUFF GOOD, BAD, AND CRAM ADDRESS
  6284	013064'					CK11SC	<CKEPC!CKEGB!CKEDID>,<CRAM ERROR>,<CRAM ERROR>
  6285	013066'	041440	040522	020115		.ASCIZ	/ CRAM data = address error /
	013074'	060544	060564	036440
	013102'	060440	062144	062562
	013110'	071563	062440	071162
	013116'	071157	000040
  6286						.EVEN			;
  6287	013122'	005201			60$:	INC	R1		;NEXT CRAM ADDRESS
  6288	013124'	020127	002000			CMP	R1,#2000	;REACHED THE END OF THE CRAM?
  6289	013130'	103742				BLO	55$		;NO, GO DO THE REST
  6290					;
  6291					; NOW LOAD THE APPLICATION CODE INTO THE CRAM, IF REQUESTED.
  6292					;
  6293		   003				    .IF NE FTKMCL
  6294						CLR	R1		;START AT THE BEGINNING OF THE CRAM
  6295						MOV	#MDCODB,R2	;POINT TO APPLICATION CODE
  6296					70$:	MOV	(R2)+,R0	;GET WORD TO LOAD
  6297						JSR	PC,CKMDCK	;WRITE IT INTO THE CRAM
  6298						INC	R1		;POINT TO NEXT CRAM LOCATION
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 35-4
C11DMC.MAC    04-JAN-83 11:18			CHECK KMC/DMC HARDWARE

  6299						CMP	R2,#MDCODE	;REACHED END OF PROGRAM?
  6300						BNE	70$		;NO, LOAD THE REST
  6301						JSR	PC,CKMDEX	;COMPLEMENT THE CRAM TWICE
  6302						CLR	R1		;START AT BEGINNING OF CRAM AGAIN
  6303						MOV	#MDCODB,R2	;POINT TO APPLICATION CODE AGAIN
  6304					72$:	JSR	PC,CKMDRD	;READ A WORD FROM THE CRAM
  6305						MOV	(R2)+,R3	;GET WORD THAT SHOULD BE THERE
  6306						CMP	R3,R0		;IS IT RIGHT?
  6307						BEQ	78$		;YES
  6308						CKSERR	R3,R0,R1	;GOOD, BAD, CRAM ADDRESS
  6309						CK11SC	<CKEPC!CKEGB!CKEDID>,<CRAM LOAD ERROR>,<CRAM LOAD ERROR>
  6310						.ASCIZ	/ CRAM load error /
  6311						.EVEN			;
  6312					78$:	INC	R1		;NEXT CRAM ADDRESS
  6313						CMP	R2,#MDCODE	;REACHED END OF APPLICATION PROGRAM?
  6314						BLO	72$		;NO, DO THE REST
  6315		   002				    .ENDC ;NE FTKMCL
  6316		   001				    .ENDC ;NE FTKMC
  6317					;
  6318					; DMC (KMC) CHECK COMPLETED
  6319					;
  6320	013132'	012714	040000		CKMDXT:	MOV	#MD.CLR,(R4)	;BE SURE THE KMC11 IS CLEAR
  6321	013136'	012603				MOV	(SP)+,R3	;RESTORE R3
  6322	013140'	012604				MOV	(SP)+,R4	; AND R4
  6323	013142'	012605				MOV	(SP)+,R5	; AND R5
  6324	013144'	000207				RTS	PC		;RETURN.
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 35-5
C11DMC.MAC    04-JAN-83 11:18			CHECK KMC/DMC HARDWARE

  6326		   002				    .IF NE FTKMC	;THESE SUBROUTINES APPLY ONLY TO
  6327									;  WRITEABLE CONTROL STORES, I.E., KMC'S
  6328					;
  6329					; SUBROUTINE TO COMPLEMENT THE DATA IN THE KMC11'S CRAM.
  6330					;  ENTERING AT CKMDEX WILL CAUSE THE ROUTINE TO EXECUTE TWICE -
  6331					;  IF THE KMC11 IS WORKING PROPERLY THIS WILL LEAVE THE CRAM UNCHANGED.
  6332					;
  6333	013146'	004717			CKMDEX:	JSR	PC,(PC)		;CALL REST OF ROUTINE ONCE, RETURN
  6334									;  HERE AND FALL INTO IT FOR SECOND PASS
  6335	013150'	005001				CLR	R1		;START AT BEGINNING OF CRAM
  6336	013152'	004737	013330'		80$:	JSR	PC,CKMDRD	;READ WORD FROM CRAM
  6337	013156'	005100				COM	R0		;COMPLEMENT IT
  6338	013160'	004737	013224'			JSR	PC,CKMDCK	;WRITE IT BACK (AND CHECK IT)
  6339	013164'	005201				INC	R1		;NEXT CRAM LOCATION
  6340	013166'	020127	002000			CMP	R1,#2000	;REACHED END OF CRAM?
  6341	013172'	103767				BLO	80$		;NO, DO THE REST
  6342	013174'	000207				RTS	PC		;YES, ALL DONE
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 35-6
C11DMC.MAC    04-JAN-83 11:18			CHECK KMC/DMC HARDWARE

  6344					; SUBROUTINE TO WRITE A WORD INTO THE KMC11'S CRAM
  6345					;
  6346					; R0 = WORD TO WRITE
  6347					; R1 = CRAM ADDRESS
  6348					; R4 = POINTER TO KMC11 CSR
  6349					;
  6350	013176'	005014			CKMDWR:	CLR	(R4)		;CLEAR BSEL 1
  6351	013200'	010164	000004			MOV	R1,4(R4)	;SET ADDRESS INTO SEL 4
  6352	013204'	010064	000006			MOV	R0,6(R4)	;LOAD DATA INTO SEL 6
  6353	013210'	052714	002000			BIS	#MD.RMO,(R4)	;SET ROM O
  6354	013214'	052714	022000			BIS	#MD.RMO!MD.CWR,(R4) ;SET CRAM WRITE ALSO
  6355	013220'	005014				CLR	(R4)		;CLEAR ROM O AND CRAM WRITE
  6356	013222'	000207				RTS	PC		;RETURN
  6357					;
  6358					; SUBROUTINE TO WRITE AND VERIFY A WORD IN THE CRAM
  6359					;
  6360					; CALLED AS CKMDWR
  6361					;
  6362	013224'	010046			CKMDCK:	MOV	R0,-(SP)	;SAVE DATA TO BE WRITTEN
  6363	013226'	004737	013176'			JSR	PC,CKMDWR	;WRITE THE WORD
  6364	013232'	004737	013330'			JSR	PC,CKMDRD	;READ IT BACK
  6365	013236'	020016				CMP	R0,(SP)		;DATA SAME AS WRITTEN?
  6366	013240'	001431				BEQ	85$		;YES.
  6367	013242'	010246				MOV	R2,-(SP)	;NO, SAVE R2
  6368	013244'	016602	000002			MOV	2(SP),R2	;GET BAD DATA FROM CRAM
  6369	013250'					CKSERR	R2,R0,R1	;GOOD, BAD, CRAM ADDRESS
  6370	013256'					CK11SC	<CKEPC!CKEGB!CKEDID>,<CRAM DATA ERROR>,<CRAM DATA ERROR>
  6371	013260'	041440	040522	020115		.ASCIZ	/ CRAM data error in write check /
	013266'	060544	060564	062440
	013274'	071162	071157	064440
	013302'	020156	071167	072151
	013310'	020145	064143	061545
	013316'	020153	   000
  6372		013322'				.EVEN
  6373	013322'	012602				MOV	(SP)+,R2	;RESTORE R2
  6374	013324'	012600			85$:	MOV	(SP)+,R0	;RESTORE DATA
  6375	013326'	000207				RTS	PC		;RETURN
  6376					;
  6377					; SUBROUTINE TO READ A WORD FROM THE KMC11'S CRAM.
  6378					;
  6379					; R1 = ADDRESS
  6380					; R4 = POINTER TO KMC11 CSR
  6381					;
  6382					; ON RETURN:
  6383					;
  6384					;  R0 = DATA FROM CRAM
  6385					;
  6386	013330'	005014			CKMDRD:	CLR	(R4)		;CLEAR BSEL 1
  6387	013332'	010164	000004			MOV	R1,4(R4)	;SET ADDRESS INTO BSEL 4
  6388	013336'	052714	002000			BIS	#MD.RMO,(R4)	;SET ROM O
  6389	013342'	016400	000006			MOV	6(R4),R0	;FETCH DATA
  6390	013346'	005014				CLR	(R4)		;CLEAR ROM O
  6391	013350'	000207				RTS	PC		;RETURN
  6392		   001				    .ENDC ;NE FTKMC
  6393		   000				    .ENDC ;NE FTDMC
  6394					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 36
C11DMC.MAC    04-JAN-83 11:18			CHECK KMC/DMC HARDWARE

  6396
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 37
C11DMC.MAC    04-JAN-83 11:18			CHECK KMC/DMC HARDWARE

  6398
  6399					.SBTTL		CHECK LP11 HARDWARE
  6400					;
  6401					;CALL	MOV	#<VECTOR ADR>,R3
  6402					;	MOV	#<HDW ADR>,R4
  6403					;	MOV	#<HDW ADR>,R1
  6404					;	JSR	PC,XLE11
  6405					;
  6406						    .IIF NDF FTLE11,FTLE11=0
  6407		   001				    .IF NE FTLE11
  6408	013352'				XLE11:				;
  6409	013352'	032714	100000			BIT	#LE.ERR,(R4)	;SEE IF DEV READY
  6410	013356'	001406				BEQ	1$		;BRANCH IF RDY
  6411	013360'					CK11SC	<CKEDID!CKENCL>,< Not Rdy>
  6412	013362'	047040	072157	051040		.ASCIZ	\ Not Rdy\<377>
	013370'	074544	000377
  6413						.EVEN			;
  6414	013374'	004537	007570'		1$:	JSR	R5,CHKBIT	;CHECK HDW BITS
  6415	013400'	000100				.WORD	LE.INE
  6416	013402'					$CKINT	,R4,<LE.INE>,<LE.DNE>
  6417	013416'	000207				RTS	PC
  6418		   000				    .ENDC ;NE FTLE11
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 37-1
C11DMC.MAC    04-JAN-83 11:18			CHECK LP20 HARDWARE

  6420					.SBTTL		CHECK LP20 HARDWARE
  6421					;
  6422						    .IIF NDF FTLP20,FTLP20=0
  6423		   001				    .IF NE FTLP20
  6424	013420'				XLP11:				;
  6425	013420'	012737	000340	177776		MOV	#BR7,PS		;
  6426	013426'	012714	001400			MOV	#LP.RSE!LP.LOI,(R4) ;CLEAR CONTROLLER
  6427	013432'	062701	000012			ADD	#LPRAMD,R1	;POINT TO RAM DATA BUFFER
  6428	013436'	010102				MOV	R1,R2		;
  6429	013440'	005722				TST	(R2)+		;POINT TO CHAR BUFFER
  6430	013442'	105012				CLRB	(R2)		;SET RAM ADDRESS TO ZERO
  6431	013444'	005011			10$:	CLR	(R1)		;CLEAR RAM LOCATION
  6432	013446'	105212				INCB	(R2)		;UP RAM ADDRESS
  6433	013450'	001375				BNE	10$		;  UNTIL IT OVERFLOWS
  6434	013452'	010401				MOV	R4,R1		;RECOVER BASE CRS ADDRESS
  6435	013454'	005061	000004			CLR	LPBSAD(R1)	;SET UP HARMLESS TRANSFER
  6436	013460'	012761	177777	000006		MOV	#-1,LPBCTR(R1)	;
  6437	013466'	004537	007570'			JSR	R5,CHKBIT	;CHECK R/W ON CSRA
  6438	013472'	002176				.WORD	LP.DH!LP.IE!LP.XAD!LP.MDS!LP.PEN
  6439									;
  6440	013474'	005721				TST	(R1)+		;UP TO CSRB
  6441	013476'	004537	007570'			JSR	R5,CHKBIT	;
  6442	013502'	003400				.WORD	LP.TS2!LP.TS1!LP.TS0
  6443	013504'	012714	001400			MOV	#LP.RSE!LP.LOI,(R4) ;
  6444									;
  6445	013510'	005721				TST	(R1)+		;CHECK R/W ON BUS ADDRESS
  6446	013512'	004537	007570'			JSR	R5,CHKBIT	;
  6447	013516'	177777				.WORD	ALLBTS		;
  6448	013520'	012714	001400			MOV	#LP.RSE!LP.LOI,(R4) ;
  6449									;
  6450	013524'	012702	000003			MOV	#3,R2		;NEXT THREE REGISTERS ARE ALIKE
  6451	013530'	005721			20$:	TST	(R1)+		;BYTE COUNT, PAGE CONT, RAMDATA
  6452	013532'	004537	007570'			JSR	R5,CHKBIT	;
  6453	013536'	007777				.WORD	7777		;
  6454	013540'	012714	001400			MOV	#LP.RSE!LP.LOI,(R4) ;
  6455	013544'	077207				SOB	R2,20$		;
  6456									;
  6457	013546'	005721				TST	(R1)+		;CHECK R/W ON CHAR BUFFER
  6458	013550'	004537	007570'			JSR	R5,CHKBIT	;
  6459	013554'	177777				.WORD	ALLBTS		;
  6460	013556'	012714	001400			MOV	#LP.RSE!LP.LOI,(R4) ;
  6461									;
  6462	013562'	010401				MOV	R4,R1		;RECOVER BASE CSR ADDRESS
  6463	013564'	032711	004000			BIT	#LP.ONL,(R1)	;PRINTER AVAILABLE?
  6464	013570'	001012				BNE	30$		;YES
  6465	013572'					CK11SC	0,<NOT READY>
  6466	013574'	050114	030062	067040		.ASCIZ	"LP20 not ready"
	013602'	072157	071040	060545
	013610'	074544	   000
  6467		013614'				.EVEN			;
  6468	013614'	000207				RTS	PC		;
  6469									;
  6470	013616'	012761	177777	000006	30$:	MOV	#-1,LPBCTR(R1)	;SET CHAR COUNT
  6471	013624'	010161	000004			MOV	R1,LPBSAD(R1)	;SET ADDRESS TO SELF
  6472	013630'	062761	000014	000004		ADD	#LPCBUF,LPBSAD(R1) ;
  6473	013636'	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  04-JAN-83  16:24  PAGE 37-2
C11DMC.MAC    04-JAN-83 11:18			CHECK LP20 HARDWARE

  6474	013642'					$CKINT	,R4,LP.IE,LP.IE	;
  6475	013656'	000207				RTS	PC		;
  6476		   000				    .ENDC ;NE FTLP20
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 37-3
C11DMC.MAC    04-JAN-83 11:18			CHECK MD11 HDW

  6478					.SBTTL		CHECK MD11 HDW
  6479					;
  6480					;CALL	MOV	#<VECTOR ADR>,R3
  6481					;	MOV	#<HDW ADR>,R4
  6482					;	MOV	#<HDW ADR>,R1
  6483					;	JSR	PC,XMD11
  6484						    .IIF NDF FTMD11,FTMD11=0
  6485		   001				    .IF NE FTMD11
  6486					XMD11:				;
  6487						RTS	PC
  6488		   000				    .ENDC ;NE FTMD11
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 37-4
C11DMC.MAC    04-JAN-83 11:18			DUMMY NULL DEVICE CHECKER

  6490					.SBTTL		DUMMY NULL DEVICE CHECKER
  6491					;
  6492					;
  6493					;
  6494	013660'	000207			XNL11:	RTS	PC	;DUMMY
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 37-5
C11DMC.MAC    04-JAN-83 11:18			CHECK PA611P HARDWARE

  6496					.SBTTL		CHECK PA611P HARDWARE
  6497					;
  6498					;CALL	MOV	#<VECTOR ADR>,R3
  6499					;	MOV	#<HDW ADR>,R4
  6500					;	MOV	#<HDW ADR>,R1
  6501					;	JSR	PC,XP611
  6502					;
  6503						    .IIF NDF FTP611,FTP611=0
  6504		   001				    .IF NE FTP611
  6505					XP611:				;
  6506						RTS	PC
  6507		   000				    .ENDC ;NE FTP611
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 37-6
C11DMC.MAC    04-JAN-83 11:18			CHECK PA611R HARDWARE

  6509					.SBTTL		CHECK PA611R HARDWARE
  6510					;
  6511					;CALL	MOV	#<VECTOR ADR>,R3
  6512					;	MOV	#<HDW ADR>,R4
  6513					;	MOV	#<HDW ADR>,R1
  6514					;	JSR	PC,XR611
  6515					;
  6516						    .IIF NDF FTR611,FTR611=0
  6517		   001				    .IF NE FTR611
  6518					XR611:				;
  6519						RTS	PC
  6520		   000				    .ENDC ;NE FTR611
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 37-7
C11DMC.MAC    04-JAN-83 11:18			CHECK PP11 HARDWARE

  6522					.SBTTL		CHECK PP11 HARDWARE
  6523					;
  6524					;CALL	MOV	#<VECTOR ADR>,R3
  6525					;	MOV	#<HDW ADR>,R4
  6526					;	MOV	#<HDW ADR>,R1
  6527					;	JSR	PC,XPP11
  6528					;
  6529						    .IIF NDF FTPP11,FTPP11=0
  6530		   001				    .IF NE FTPP11
  6531					XPP11:
  6532						JSR	R5,CHKBIT
  6533						PP.INE
  6534						$CKINT	,R4,<PP.INE>,<PP.RDY>
  6535						RTS	PC
  6536		   000				    .ENDC ;NE FTPP11
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 37-8
C11DMC.MAC    04-JAN-83 11:18			CHECK PR11 HARDWARE

  6538					.SBTTL		CHECK PR11 HARDWARE
  6539					;
  6540					;CALL	MOV	#<VECTOR ADR>,R3
  6541					;	MOV	#<HDW ADR>,R4
  6542					;	MOV	#<HDW ADR>,R1
  6543					;	JSR	PC,XPR11
  6544					;
  6545						    .IIF NDF FTPR11,FTPR11=0
  6546		   001				    .IF NE FTPR11
  6547					XPR11:					;
  6548						JSR	R5,CHKBIT		;CHECK HARDWARE BITS
  6549						PR.INE
  6550						CLR	R0			;FOR TIME OUT
  6551						BIS	#PR..RE!PR.INE,(R4)	;TELL READER TO DO SOMETHING
  6552										; TO FORCE ANY INTERRUPT COND
  6553					1$:	BIT	#PR.DNE!PR.ERR,(R4)	;SEE IF AN INT CONDITION IS THERE
  6554						BNE	2$			;IF NOT, THEN WAIT FOR ONE.
  6555						SOB	R0,1$			;TIME OUT TO CATCH NO RESPONSE
  6556						CK11SC	<CKEDID!CKEPC>,<Timed Out>,<NO RESPONSE>
  6557						.ASCIZ	\Timed Out\<377>
  6558						.EVEN
  6559						BIC	#PR.INE,(R4)		;DISABLE INT ENABLE
  6560						RTS	PC			;EXIT
  6561					2$:	JSR	R5,CHKINL		;FIND INT LEVEL
  6562						-1				;FOR TIME-OUT
  6563						BIC	#PR.INE,(R4)		;DISABLE INTS
  6564						RTS	PC
  6565		   000				    .ENDC ;NE FTPR11
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 37-9
C11DMC.MAC    04-JAN-83 11:18			CHECK RH11 HARDWARE

  6567					.SBTTL		CHECK RH11 HARDWARE
  6568					;
  6569					;CALL	MOV	#<VECTOR ADR>,R3
  6570					;	MOV	#<HDW ADR>,R4
  6571					;	MOV	#<HDW ADR>,R1
  6572					;	JSR	PC,XRH11
  6573					;
  6574						    .IIF NDF FTRH11,FTRH11=0
  6575		   001				    .IF NE FTRH11
  6576					XRH11:	BIS	#1,CHKRP+4+0	;GROSS KLUDGE TO PREVENT CHKDEV FROM
  6577						RTS	PC		; FINDING WHAT LOOKS LIKE AN RP.
  6578									; (THE DEVICE REGISTERS OVERLAP)
  6579		   000				    .ENDC ;NE FTRH11
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 37-10
C11DMC.MAC    04-JAN-83 11:18			CHECK TC11 HARDWARE

  6581					.SBTTL		CHECK TC11 HARDWARE
  6582					;
  6583					;CALL	MOV	#<VECTOR ADR>,R3
  6584					;	MOV	#<HDW ADR>,R4
  6585					;	MOV	#<HDW ADR>,R1
  6586					;	JSR	PC,XTC11
  6587					;
  6588						    .IIF NDF FTTC11,FTTC11=0
  6589		   001				    .IF NE FTTC11
  6590					XTC11:				;
  6591		   002				    .IF NDF,FT.D75
  6592						JSR	R5,CHKBIT	;TEST FOLLOWING BITS
  6593						TC.D17!TC.D16
  6594						TST	(R1)+		;ADVANCE TO COMMAND REGISTER
  6595						JSR	R5,CHKBIT		;TEST FOLLOWING BITS
  6596						TC..MM!TC..DI!TC.REV!TC.US7!TC.INE!TC.A17!TC.A16
  6597						TST	(R1)+		;ADVANCE TO WORD COUNT REG
  6598						JSR	R5,CHKBIT	;TEST FOLLOWING BITS
  6599						-1
  6600						TST	(R1)+		;ADVANCE TO BUS ADDR REG
  6601						JSR	R5,CHKBIT		;TEST THE FOLLOWING BITS
  6602						-1
  6603						TST	(R1)+		;ADVANCE TO DATA REGISTER
  6604						JSR	R5,CHKBIT	;CHECK FOLLOWING BITS
  6605						-1
  6606						MOV	R4,R1		;SET UP ADR FOR INT CHK
  6607						TST	(R1)+		;ADVANCE TO COMMAND REG
  6608						MOV	R1,R2		;SET UP FOR INT CHK
  6609						$CKINT	,,<TC.INE>,<TC.RDY>
  6610		   001				    .ENDC ;IF NDF FT.D75
  6611						RTS	PC
  6612		   000				    .ENDC ;NE FTTC11
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 37-11
C11DMC.MAC    04-JAN-83 11:18			CHECK TM11 HARDWARE

  6614					.SBTTL		CHECK TM11 HARDWARE
  6615					;
  6616					;CALL	MOV	#<VECTOR ADR>,R3
  6617					;	MOV	#<HDW ADR>,R4
  6618					;	MOV	#<HDW ADR>,R1
  6619					;	JSR	PC,XTM11
  6620					;
  6621						    .IIF NDF FTTM11,FTTM11=0
  6622		   001				    .IF NE FTTM11
  6623					XTM11:				;
  6624						RTS	PC
  6625		   000				    .ENDC ;NE FTTM11
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 37-12
C11DMC.MAC    04-JAN-83 11:18			NULL DIAGNOSTIC

  6627					.SBTTL		NULL DIAGNOSTIC
  6628					;
  6629					;
  6630					;
  6631	013662'				X.....:				;
  6632	013662'	004037	013774'			JSR	R0,CKTSTR	;
  6633	013666'	020073	067151	062564		.ASCIZ	"; integrity not tested"
	013674'	071147	072151	020171
	013702'	067556	020164	062564
	013710'	072163	062145	   000
  6634		013716'				.EVEN			;
  6635	013716'	012737	177776	001154'		MOV	#177776,CKDEVN	;SET COUNT TO PREVENT MORE TYPEOUTS
  6636	013724'	000207				RTS	PC		;
  6637					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 38
C11DMC.MAC    04-JAN-83 11:18			NULL DIAGNOSTIC

  6639
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 39
C11DMC.MAC    04-JAN-83 11:18			NULL DIAGNOSTIC

  6641
  6642					.SBTTL	TTY SUPPORT FOR TYPE OUTS
  6643					;
  6644	013726'	000000			CKTRPT:	.WORD	0		;REPORT DESTINATION DEVICE
  6645									; B15 - CTY
  6646									; B7 - REMOTE DEVICE
  6647					;
  6648					; TYPE THE MESSAGE STRING POINTED TO BY R0
  6649					;
  6650					; CALL	JSR	PC,CKTTXT	;R0 CONTAINS ADDR OF TXT
  6651					; ON EXIT R0 POINTS TO THE EVEN LOCATION FOLLOWING THE TEXT
  6652					;
  6653						    .ENABL LSB
  6654	013730'				CKTTXT:	SAVE	<R1>
  6655	013732'	112001			10$:	MOVB	(R0)+,R1	;GET THE NEXT CHARACTER
  6656	013734'	001403				BEQ	20$		;BRANCH IF END (NULL)
  6657	013736'	004737	014070'			JSR	PC,CKTCHR	;TYPE CHAR
  6658	013742'	000773				BR	10$		;GET NEXT CHAR
  6659									;
  6660	013744'	005200			20$:	INC	R0		;
  6661	013746'	042700	000001			BIC	#B0,R0		;POINT TO EVEN LOC
  6662	013752'				25$:	RESTORE	<R1>
  6663	013754'	000207				RTS	PC		;RETURN TO CALLER
  6664					;
  6665					; TYPE A CARRIAGE RETURN AND LINE FEED
  6666					;
  6667					; CALL	JSR	PC,CKCRLF
  6668					;
  6669	013756'	004037	013774'		CKCRLF:	JSR	R0,CKTSTR
  6670	013762'	005015	   000			.ASCIZ	<15><12>
  6671		013766'				.EVEN
  6672	013766'	000207				RTS	PC
  6673					;
  6674					; TYPE A STRING PRECEEDED BY A CR/LF
  6675					;
  6676					; CALL	JSR	R0,CKTCRL
  6677					;	.ASCIZ	\TEXT\
  6678					;	.EVEN
  6679					;
  6680	013770'	004737	013756'		CKTCRL:	JSR	PC,CKCRLF	;FIRST TYPE A CR/LF
  6681					;
  6682					; TYPE A MESSAGE ON THE CTY
  6683					; CALL	JSR	R0,CKTSTR	;CALL TYPE ROUTINE
  6684					;	.ASCIZ \TEXT\
  6685					;	.EVEN
  6686					;
  6687	013774'	004737	013730'		CKTSTR:	JSR	PC,CKTTXT	;GO TYPE STRING
  6688	014000'	000200				RTS	R0
  6689					;
  6690					;TYPE A BLANK AND THE OCTAL CONTENTS OF R0
  6691					;
  6692					;	SIMILIAR TO CKTOCT
  6693					;
  6694	014002'				CKTBOC:	SAVE	<R1>
  6695	014004'	012701	000040			MOV	#040,R1
  6696	014010'	004737	014070'			JSR	PC,CKTCHR
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 39-1
C11DMC.MAC    04-JAN-83 11:18		TTY SUPPORT FOR TYPE OUTS

  6697	014014'	000401				BR	30$
  6698					;
  6699					; TYPE THE OCTAL CONTENTS OF R0
  6700					;
  6701					; CALL	JSR	PC,CKTOCT	;WITH ARG IN R0
  6702					;
  6703	014016'				CKTOCT:	SAVE	<R1>
  6704	014020'				30$:	SAVE	<R0>
  6705	014022'	004737	014034'			JSR	PC,50$
  6706	014026'				40$:	RESTORE	<R0>
  6707	014030'					RESTORE	<R1>
  6708	014032'	000207				RTS	PC
  6709					;
  6710					;RECURSIVE BINARY TO ASCIC CONVERSION
  6711					;  PUSHES CURRENT VALUE IN R0 ONTO STACK, THEN DIVIDES BY 8 -
  6712					;    IF THE QUOTIENT IS NOT ZERO IT CALLS ITSELF, HENCE INTERLEAVING
  6713					;    INTERMEDIATE VALUES AND RETURN ADDRESSES - WHEN THE QUOTIENT
  6714					;    BECOMES ZERO, INTERMEDIATE VALUES ARE POPPED, AND THE LEAST
  6715					;    SIGNIFICANT VALUES ARE PRINTED IN TURN, WITH RETURN FALLING
  6716					;    BACK INTO THE PRINT ROUTINE - NOTICE THAT LEADING ZEROS ARE
  6717					;    AUTOMATICALLY SUPPRESSED, EXCEPT THE LONE ZERO OF A ZERO WORD
  6718					;
  6719	014034'				50$:	SAVE	<R0>		;STUFF CURRENT VALUE
  6720	014036'	006000				ROR	R0		;DIVIDE BY EIGHT
  6721	014040'	006000				ROR	R0		;
  6722	014042'	006000				ROR	R0		;
  6723	014044'	042700	160000			BIC	#160000,R0	;CLEAR SPURIOUS CARRIES IN
  6724	014050'	001402				BEQ	60$		;SKIP TO PRINT WHEN QUOTIENT ZERO
  6725	014052'	004737	014034'			JSR	PC,50$		;  ELSE CALL SELF
  6726	014056'				60$:	RESTORE	<R1>		;POP INTERMEDIATE VALUE
  6727	014060'	042701	177770			BIC	#^C7,R1		;SAVE LSD
  6728	014064'	052701	000060			BIS	#60,R1		;SET BITS FOR ASCII CHARACTER
  6729									;  AND DROP INTO CHARACTER PRINT
  6730					;
  6731					; TYPE THE SINGLE CHARACTER IN R1
  6732					;
  6733					; CALL	JSR	PC,CKTCHR	;WITH CHAR IN R1
  6734					;
  6735	014070'	120127	000040		CKTCHR:	CMPB	R1,#40		;DOES THIS NEED FILLER ?
  6736	014074'	103015				BHIS	80$		;
  6737	014076'	120127	000011			CMPB	R1,#11		;IS CHAR A TAB (11)
  6738	014102'	001005				BNE	70$		;BRANCH IF NOT A TAB
  6739	014104'	004037	013774'			JSR	R0,CKTSTR	;GIVE SPACES FOR IT
  6740	014110'	   040	   040	   040		.BYTE	40,40,40,0	;SUBSTITUTE SPACES FOR TAB
	014113'	   000
  6741	014114'	000207				RTS	PC		;
  6742									;
  6743	014116'	004737	014122'		70$:	JSR	PC,75$		;TYPE CHAR FIRST THEN PAD IT WITH 4 NULLS
  6744	014122'	004737	014130'		75$:	JSR	PC,80$		;
  6745	014126'	005001				CLR	R1		;
  6746	014130'	005737	013726'		80$:	TST	CKTRPT		;CTY OUTPUT REPORT DEVICE?
  6747	014134'	100005				BPL	83$		;NO
  6748	014136'	105737	177564		81$:	TSTB	CTOSTS		;YES, TEST FOR STILL BUSY
  6749	014142'	100375				BPL	81$		;
  6750	014144'	110137	177566			MOVB	R1,CTOCHR	;TYPE CHAR
  6751	014150'	105737	013726'		83$:	TSTB	CKTRPT		;REMOTE DEVICE RECEIVING REPORT?
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 39-2
C11DMC.MAC    04-JAN-83 11:18		TTY SUPPORT FOR TYPE OUTS

  6752	014154'	100002				BPL	86$		;NO
  6753	014156'	004737	014406'			JSR	PC,CKTREM	;YES, REPORT REMOTELY
  6754	014162'	000207			86$:	RTS	PC		;
  6755					;
  6756					; BINARY TO DECIMAL ASCII CONVERSION AND OUTPUT
  6757					;
  6758	014164'				CKTDEC:	SAVE	<R0,R1,R2>	;
  6759	014172'	012702	014260'			MOV	#125$,R2	;SET DIVISOR POINTER
  6760	014176'	005001			101$:	CLR	R1		;CLEAR QUOTIENT COUNTER
  6761	014200'	005742			103$:	TST	-(R2)		;BACK DOWN INTO ARRAY
  6762	014202'	001414				BEQ	111$		;DONE ALL BUT UNITS
  6763	014204'	005201			107$:	INC	R1		;UP QUOTIENT
  6764	014206'	161200				SUB	(R2),R0		;SUBTRACT CURRENT 10**N
  6765	014210'	002375				BGE	107$		;NOT NEGATIVE YET, LOOP AROUND
  6766	014212'	061200				ADD	(R2),R0		;WENT TOO FAR, GO BACK ONE
  6767	014214'	005301				DEC	R1		;COUNT BACK QUOTIENT
  6768	014216'	001770				BEQ	103$		;IF QUOTIENT IS ZERO, SUPPRESS IT
  6769	014220'	052701	000060			BIS	#'0,R1		;CONVERT QUOTIENT DIGIT TO ASCII
  6770	014224'	004737	014070'			JSR	PC,CKTCHR	;TYPE DIGIT
  6771	014230'	005712				TST	(R2)		;DONE TO LSD?
  6772	014232'	001361				BNE	101$		;NO
  6773	014234'				111$:	RESTORE	<R2,R1,R0>	;RESTORE AND RETURN
  6774	014242'	000207				RTS	PC		;
  6775	014244'	000000	000001	000012	124$:	.WORD	0,1.,10.,100.,1000.,10000. ;DECIMAL ORDERS OF MAGNITUDE
	014252'	000144	001750	023420
  6776	014260'				125$:				;125$ **ENDS** THE ARRAY
  6777					;
  6778					; GET A SINGLE CHAR FROM THE KEYBOARD
  6779					;	R1 WILL HAVE THE SEVEN BIT CHAR INPUT, OR
  6780					;	  WILL HAVE -1 IF THE ROUTINE HAD TO WAIT MORE
  6781					;	  THAN 30 SECONDS FOR A RESPONSE
  6782					;	IF THERE IS NO CTY, THE RETURNED CHAR WILL BE "N" (DEFAULT "NO")
  6783					; CALL	JSR	PC,CKGCHR
  6784					;
  6785	014260'	005737	013726'		CKGCHR:	TST	CKTRPT		;KB EXIST?
  6786	014264'	100030				BPL	96$		;NO, DON'T LOOK FOR A CHARACTER
  6787	014266'					SAVE	<R0,R2>		;YES, ENTER INPUT WAIT
  6788	014272'	012702	000764			MOV	#500.,R2	;SET TIMEOUT COUNTERS
  6789	014276'	005000				CLR	R0		;
  6790	014300'	012701	177777			MOV	#-1,R1		;ASSUME NO CHARACTER WILL BE RECEIVED
  6791	014304'	005737	177562			TST	CTICHR		;CLEAR BUFFER
  6792	014310'	077001			90$:	SOB	R0,90$		;THIS TAKES ABOUT 1/15 SECOND TO FALL THROUGH
  6793	014312'	005302				DEC	R2		;DO IT ENOUGH TIMES TO GET TO 30-60 SECONDS
  6794	014314'	001411				BEQ	95$		;NO INPUT WAS SEEN, RETURN WITH DEFAULT
  6795	014316'	105737	177560			TSTB	CTISTS		;LOOK FOR CHAR
  6796	014322'	100372				BPL	90$		;NOT THERE YET
  6797	014324'	113701	177562			MOVB	CTICHR,R1	;FINALLY GOT ONE, GRAB IT
  6798	014330'	042701	177600			BIC	#^C177,R1	;KEEP ONLY INTERESTING BITS
  6799	014334'	004737	014070'			JSR	PC,CKTCHR	;TYPE IT BACK TO HIM (ECHO)
  6800	014340'				95$:	RESTORE	<R2,R0>		;
  6801	014344'	000207				RTS	PC		;
  6802									;
  6803	014346'	012701	000116		96$:	MOV	#'N,R1		;NO CTY, RETURN "NO" FOR ANSWER
  6804	014352'	000207				RTS	PC		;
  6805					;
  6806					; GET A CHARACTER AND RETURN Z-BIT SET IF IT IS A "Y" (CASE INSENSITIVE) -
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 39-3
C11DMC.MAC    04-JAN-83 11:18		TTY SUPPORT FOR TYPE OUTS

  6807					;    RETURN WITH C-BIT SET IF NO CHARACTER WAS RECEIVED
  6808					;
  6809	014354'	004737	014260'		CKGYES:	JSR	PC,CKGCHR	;GET ANY CHARACTER
  6810	014360'	120127	000040			CMPB	R1,#40		;TEST FOR IGNORED OR UNPRINTABLE
  6811	014364'	002406				BLT	97$		;NO CHARACTER
  6812	014366'	052701	000040			BIS	#40,R1		;FORCE LOWER CASE FOR COMPARISON
  6813	014372'	120127	000171			CMPB	R1,#'Y!40	;IS IT A "Y"?
  6814	014376'	000241				CLC			;RETURN Z-BIT FOR CALLER TO BRANCH ON
  6815	014400'	000207				RTS	PC		;
  6816	014402'	000261			97$:	SEC			;NO REASONABLE CHARACTER TYPED
  6817	014404'	000207				RTS	PC		;
  6818						    .DSABL LSB
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 39-4
C11DMC.MAC    04-JAN-83 11:18		REMOTE OUTPUT HANDLER

  6820					.SBTTL	REMOTE OUTPUT HANDLER
  6821					;
  6822	014406'				CKTREM:				;
  6823						; THIS ROUTINE WILL TAKE THE OUTPUT DIRECTED
  6824						;   TO THE CTY AND SEND IT OVER A BUFFERED
  6825						;   LINK TO BE OUTPUT ON A REMOTE DEVICE
  6826						;
  6827						; IF THE TRANSFER IS BUFFERED, RECEIPT OF A -1 BYTE
  6828						;   SHOULD FORCE THE TRANSMISSION OF THE PARTIALLY FILLED
  6829						;   BUFFER TO ENSURE THE UP TO DATE REPORTING OF VITAL
  6830						;   MESSAGES (DEATH, DISEASE, FAMINE, ETC.)
  6831									;
  6832	014406'	010546				MOV	R5,-(SP)	;
  6833	014410'	142737	000200	013726'		BICB	#200,CKTRPT	;PREVENT ERROR LOOP IN THIS ROUTINE
  6834	014416'	010046				MOV	R0,-(SP)	;
  6835	014420'	013700	014754'			MOV	CK.PTR,R0	;PICK UP BUFFER FILL POINTER
  6836	014424'	120127	177777			CMPB	R1,#-1		;IF CHARACTER IS -1,
  6837	014430'	001003				BNE	5$		;  (NOT)
  6838	014432'	004737	014534'			JSR	PC,CKBFSH	;WRITE OUT BUFFER
  6839	014436'	000426				BR	100$		;AND QUIT (DON'T STORE THE -1)
  6840	014440'	020127	000015		5$:	CMP	R1,#15		;IF CHARACTER IS <CR>,
  6841	014444'	001003				BNE	10$		;  (NOT)
  6842	014446'	005237	014752'			INC	CK.BFG		;SET FLAG
  6843	014452'	000412				BR	30$		;AND STORE IN BUFFER
  6844	014454'	020127	000012		10$:	CMP	R1,#12		;IF CHARACTER IS <LF>,
  6845	014460'	001005				BNE	20$		;  (NOT)
  6846	014462'	005737	014752'			TST	CK.BFG		;AND LAST CHAR WAS <CR>,
  6847	014466'	001402				BEQ	20$		;  (NOT)
  6848	014470'	004737	014534'			JSR	PC,CKBFSH	;WRITE OUT BUFFER
  6849
  6850	014474'	005037	014752'		20$:	CLR	CK.BFG		;CLEAR <CR> FLAG
  6851	014500'	110120			30$:	MOVB	R1,(R0)+	;STORE CHAR IN BUFFER
  6852	014502'	020027	014751'			CMP	R0,#CK.BFN	;IF AT END OF BUFFER,
  6853	014506'	001002				BNE	100$		;  (NOT)
  6854	014510'	004737	014534'			JSR	PC,CKBFSH	;WRITE OUT BUFFER
  6855	014514'	010037	014754'		100$:	MOV	R0,CK.PTR	;REFRESH BUFFER FILL POINTER
  6856	014520'	012600				MOV	(SP)+,R0	;
  6857	014522'	152737	000200	013726'		BISB	#200,CKTRPT	;RESET "REMOTE REPORTING" FLAG
  6858	014530'	012605				MOV	(SP)+,R5	;
  6859	014532'	000207				RTS	PC		;RETURN  TO CALLER
  6860
  6861
  6862					;  ROUTINE TO WRITE OUT A BUFFER
  6863					;
  6864	014534'	000240			CKBFSH:	NOP		;CAN BE PATCHED TO BRANCH AROUND WRITE
  6865	014536'	010146				MOV	R1,-(SP)	;
  6866	014540'	010246				MOV	R2,-(SP)	;
  6867	014542'	010637	001166'			MOV	SP,CK.OSP	;SAVE OUR STACK POINTER
  6868	014546'	013706	001164'			MOV	CK.CSP,SP	;PICK UP CALLER'S STACK
  6869	014552'	010002				MOV	R0,R2		;CALCULATE
  6870	014554'	162702	014631'			SUB	#CK.BUF,R2	;  BUFFER LENGTH
  6871	014560'	005202				INC	R2		;  PLUS ONE FOR OPCODE
  6872	014562'	012746	014630'			MOV	#CK.COD,-(SP)	;ADDRESS MESSAGE START
  6873	014566'	013701	001162'			MOV	CK.DMC,R1	;PICK UP DMC CSR ADDRESS
  6874	014572'	013700	001160'			MOV	CK.CAL,R0	;CALL THE
  6875	014576'	062700	017350'			ADD	#SNDDRV,R0	;  DMC SEND
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 39-5
C11DMC.MAC    04-JAN-83 11:18		REMOTE OUTPUT HANDLER

  6876	014602'	162700	016032'			SUB	#BT3STR,R0	;  ROUTINE
  6877	014606'	004710				JSR	PC,(R0)		;  IN LOADER
  6878	014610'	005726				TST	(SP)+		;GET RID OF BUFFER ADDRESS
  6879	014612'	013706	001166'			MOV	CK.OSP,SP	;RESTORE OUR STACK
  6880	014616'	012602				MOV	(SP)+,R2	;
  6881	014620'	012601				MOV	(SP)+,R1	;
  6882	014622'				10$:				;  *** THIS IS WHERE TO BRANCH TO ***
  6883	014622'	012700	014631'			MOV	#CK.BUF,R0	;RESET FILL POINTER TO START OF BUFFER
  6884	014626'	000207				RTS	PC
  6885
  6886	014630'	   026			CK.COD:	.BYTE	22.		;MOP OP CODE
  6887	014631'	000120			CK.BUF:	.BLKB	80.		;BUFFER
  6888	014751'	   000			CK.BFN:	.BYTE	0		;  END OF BUFFER (1 BYTE SAFETY PAD)
  6889						.EVEN			;
  6890	014752'	000000			CK.BFG:	.WORD	0		;FLAG WORD
  6891	014754'	014631'			CK.PTR:	.WORD	CK.BUF		;BUFFER FILL POINTER
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 39-6
C11DMC.MAC    04-JAN-83 11:18		UNEXPECTED BUS TRAP HANDLER

  6893					.SBTTL	UNEXPECTED BUS TRAP HANDLER
  6894					;
  6895	014756'				CKBUST:	CK11SC	<CKEDID>,<Bus error trap>
  6896	014760'	072502	020163	071105		.ASCIZ	\Bus Error trap from\
	014766'	067562	020162	071164
	014774'	070141	063040	067562
	015002'	000155
  6897						.EVEN			;
  6898	015004'	011600				MOV	(SP),R0		;GET PC OF NEXT INST
  6899	015006'	162700	000002			SUB	#2,R0		;MAKE PC WITHIN BAD INST
  6900	015012'	004737	014002'			JSR	PC,CKTBOC	;PRINT THE PC WHERE WE WERE DONE IN
  6901					;;;;	JMP	?		;FATAL BUS ERROR
  6902	015016'	000000			20$:	HALT			;SOMEDAY WE MAY HAVE A REAL ABORT ROUTINE
  6903	015020'	000776				BR	20$		;  BUT FOR NOW, WE JUST HANG
  6904					;EDIT PAGE BREAK (FF)
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 40
C11DMC.MAC    04-JAN-83 11:18		UNEXPECTED BUS TRAP HANDLER

  6906
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 41
C11DMC.MAC    04-JAN-83 11:18		UNEXPECTED BUS TRAP HANDLER

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

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

  7000	015474'	000000			CKSPCD:	.WORD	0		;CONTAINS STOPCODE ON FATAL ERROR
  7001									;
  7002	015476'				CHKCHR:
  7003									;
  7004		000000			CKDA = .-CHKCHR			;DEVICE ADDRESS OFFSET
  7005	015476'	000001				.BLKW	1
  7006									;
  7007		000002			CKDV = .-CHKCHR			;DEVICE VECTOR OFFSET
  7008	015500'	000001				.BLKW	1
  7009									;
  7010		000004			CKPI = .-CHKCHR			;DEVICE PI LEVEL OFFSET
  7011	015502'	000001				.BLKW	1
  7012									;
  7013		000006			CKFLG = .-CHKCHR		;DEVICE FLAGS OFFSET
  7014									; B0-B5 = # OF DQ11 SPECIAL CHAR
  7015									; B15 = INTERRUPTED ON SYNC
  7016	015504'	000001				.BLKW	1
  7017									;
  7018		000010			CKSPC = .-CHKCHR		;SPECIAL CHAR OFFSET
  7019	015506'	000004				.BLKW	4		;SPECIAL CHARACTERS
  7020					;
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 41-3
C11DMC.MAC    04-JAN-83 11:18		CK11SC/TRAP INSTRUCTION HANDLER

  7022		000000					.REPT	0
  7023						CKVECT	CD,1,1			;CD20 VECTOR SETUP
  7024						CKVECT	CR,1,1			;CR11 VECTOR SETUP
  7025						CKVECT	DH,2,16.		;DH11 VECTOR SETUP
  7026						CKVECT	DJ,2,16.		;DJ11 VECTOR SETUP
  7027						CKVECT	DL.E,2,16.		;DL11 VECTOR SETUP
  7028						CKVECT	DM,1,16.		;DM11BB VECTOR SETUP
  7029						CKVECT	DMC,2,16.		;DMC11 VECTOR SETUP
  7030						CKVECT	DN,1,64.		;DN11 VECTOR SETUP
  7031						CKVECT	DP,2,32.		;DP11 VECTOR SETUP
  7032						CKVECT	DQ,2,16.		;DQ11 VECTOR SETUP
  7033						CKVECT	DS,4,16.		;DS11 VECTOR SETUP
  7034						CKVECT	DU,2,16.		;DU11 VECTOR SETUP
  7035						CKVECT	DUP,2,16.		;DUP11 VECTOR SETUP
  7036						CKVECT	DTE2,1,1		;DTE20 VECTOR SETUP
  7037						CKVECT	KMC,2,3			;KMC11 VECTOR SETUP
  7038						CKVECT	KW.P,1,1		;KW11-P VECTOR SETUP
  7039						CKVECT	LE,1,2			;LP11 VECTOR SETUP
  7040						CKVECT	LP,1,2			;LP20 VECTOR SETUP
  7041						CKVECT	PP,1,1			;PP11 VECTOR SETUP
  7042						CKVECT	PR,1,1			;PR11 VECTOR SETUP
  7043						CKVECT	P6,1,16.		;PA611P VECTOR SETUP
  7044						CKVECT	R6,1,16.		;PA611R VECTOR SETUP
  7045						CKVECT	TC,1,1			;TC11 VECTOR SETUP
  7046						CKVECT	TM,1,1			;TM11 VECTOR SETUP
  7047						CKVECT	RC,1,1			;RC11 VECTOR SETUP
  7048						CKVECT	RF,1,1			;RF11 VECTOR SETUP
  7049						CKVECT	RH,1,1			;RH11 (RJP04) VECTOR SETUP
  7050						CKVECT	RP,1,1			;RP11-C VECTOR SETUP
  7051						CKVECT	TA,1,1			;TA11 VECTOR SETUP
  7052						CKVECT	RK,1,1			;RK11 VECTOR SETUP
  7053						CKVECT	RX,1,1			;RX11 VECOR SETUP
  7054							.ENDR	;END OF SUPPRES VECTORS
  7055					;
  7056	015516'	062515	020155	071105	CKMG01:	.ASCIZ	\Mem Err\<377>
	015524'	177562	   000
  7057	015527'	   102	072151	062040	CKMG02:	.ASCIZ	\Bit did not clear\<377>
	015534'	062151	067040	072157
	015542'	061440	062554	071141
	015550'	000377
  7058	015552'	064502	020164	064544	CKMG03:	.ASCIZ	\Bit did not set\<377>
	015560'	020144	067556	020164
	015566'	062563	177564	   000
  7059	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
  7060	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
  7061	015661'	   156	072157	063040	CKMG06:	.ASCIZ	\not found\<377>
	015666'	072557	062156	000377
  7062	015674'	067151	062564	071162	CKMG07:	.ASCIZ	\interrupted when not enabled\<377>
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 41-4
C11DMC.MAC    04-JAN-83 11:18		CK11SC/TRAP INSTRUCTION HANDLER

	015702'	070165	062564	020144
	015710'	064167	067145	067040
	015716'	072157	062440	060556
	015724'	066142	062145	000377
  7063					;
  7064						.EVEN
  7065		001316'			CKBLK=CKINTS			;REMOVE THIS AREA AS A BUFFER FOR THE DH11 TEST
  7066					;
  7067	015732'	000040				.BLKW	40		;STACK FOR CHECK-11
  7068		016032'			CHKSTK	=.			;END OF STACK
CHK11 -  ONCE ONLY SYSTEM DIAGNOSTIC	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 41-5
C11DMC.MAC    04-JAN-83 11:18		MODULE END

  7070					.SBTTL MODULE END
  7071					.SBTTL PROGRAM END
  7072		016032'				CHKEND=	.	;COMPUTE AND PRINT PROGRAM SIZE
  7073					;
  7074					;	EEEEEEEEEEEEEE	NN          NN	DDDDDDDDDD	!!
  7075					;	EE		NNNN        NN	DD        DD	!!
  7076					;	EE		NN  NN      NN	DD          DD	!!
  7077					;	EE		NN  NN      NN	DD          DD	!!
  7078					;	EEEEEEEEEE	NN    NN    NN	DD          DD	!!
  7079					;	EE		NN    NN    NN	DD          DD	!!
  7080					;	EE		NN      NN  NN	DD          DD	!!
  7081					;	EE		NN        NNNN	DD        DD
  7082					;	EEEEEEEEEEEEEE	NN          NN	DDDDDDDDDD	!!
  7083					;
  7084					;
  7085					;**********************************************************************
  7086					;
  7087					; END OF CHK11 - THE ONLY ONCE ONLY SYSTEM DIAGNOSTIC YOU'LL EVER NEED
  7088					;
  7089					;**********************************************************************
  7090					;
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 41-6
C11DMC.MAC    04-JAN-83 11:18		PROGRAM END

  7092						.TITLE	TERBOT - TERTIARY NETWORK BOOTSTRAP
  7093					;
  7094					; MODULE DESCRIPTION:
  7095					;
  7096					;	TERTIARY BOOT PART II
  7097					;
  7098					;
  7099					;
  7100					; DISTRIBUTED SYSTEMS SOFTWARE ENGINEERING
  7101					;
  7102					; IDENT HISTORY:
  7103					;
  7104					; 1.00	10-FEB-78
  7105					;	VERSION 2.0 RELEASE
  7106					; 2.00	16-OCT-78
  7107					;	MODIFICATION FOR DN20/DN200 USE WITH CHECK11
  7108					;
  7109					  
  7110					;+
  7111					; **-BT3STR-START OF TERTIARY NETWORK LOADER
  7112					;
  7113					; INPUTS:
  7114					;
  7115					;	R1 = CSR ADDRESS OF LOAD DEVICE
  7116					;	SP = HIGHEST MEMORY ADDRESS OF THE MACHINE
  7117					;	ALL THE CODE BETWEEN 'BT3STR' AND 'BT3END' HAS BEEN RELOCATED
  7118					;	TO THE TOP OF MEMORY.
  7119					;	THE FOLLOWING DATA LOCATIONS HAVE BEEN INITIALIZED:
  7120					;		$DEVTP - ASCII NAME OF THE LOAD DEVICE
  7121					;		$UNIT  - UNIT NUMBER OF THE LOAD DEVICE
  7122					;		KT11   - FLAG TO INDICATE EXISTANCE OF MEMORY MANAGEMENT
  7123					;
  7124					;
  7125					;-
  7126					;
  7127						.DSABL	AMA
  7128	016032'	005000			BT3STR:	CLR	R0		;START WITH LOAD 0
  7129	016034'	004767	001136		INIT:	JSR	PC,INIDRV	;INIT DEVICE
  7130	016040'	105767	001126			TSTB	KT11		;MEMORY MANAGEMENT ENABLED ?
  7131	016044'	001403				BEQ	10$		;IF EQ, NO - LEAVE HIGHEST LOAD ADDRESS ALONE
  7132	016046'	042766	160000	000002		BIC	#160000,2(SP)	;OTHERWISE REDUCE IT TO A VIRTUAL ADDRESS THROUGH APR0
  7133	016054'				10$:				;
  7134
  7135					;
  7136					;	SEND REQUEST OPERATING SYSTEM BOOT MESSAGE
  7137					;
  7138					;	MESSAGE SENT IS:
  7139					;	CODE 8-REQUEST PROGRAM
  7140					;	CODE(1),DEVTYPE(1),STADDR(1),PGMTYPE(1)
  7141					;
  7142	016054'	005067	001106		SNDOS:	CLR	LOADED+0	;Nothing loaded so far
  7143	016060'	005067	001104			CLR	LOADED+2
  7144	016064'	011605				MOV	(SP),R5		;MESSAGE BUFFER ADDR
  7145	016066'	012702	000014			MOV	#DEVTYP,R2	;  DEVICE
  7146	016072'	000302				SWAB	R2		;  TYPE AND
  7147	016074'	062702	000010			ADD	#8.,R2		;  CODE
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 41-7
C11DMC.MAC    04-JAN-83 11:18		PROGRAM END

  7148	016100'	010225				MOV	R2,(R5)+	;  INTO MESSAGE
  7149	016102'	012725	001001			MOV	#1001,(R5)+	;STATION ADDR + OPERATING SYSTEM REQUEST
  7150	016106'	012702	000004		SENDIT:	MOV	#4,R2		;MESSAGE LENGTH
  7151	016112'				SNDIT:
  7152					;
  7153					;	Check if update wanted on console
  7154					;
  7155	016112'	004767	000660			JSR	PC,PRGRSS
  7156					;
  7157	016116'	012767	000024	001050		MOV	#20.,TMR	;(time this)
  7158	016124'	004767	001220			JSR	PC,SNDDRV	;TO SEND DRIVER
  7159	016130'	001341				BNE	INIT		;START AGAIN
  7160					;
  7161					;	RECEIVE A MESSAGE FROM THE LINK
  7162					;
  7163					;
  7164	016132'	012702	000406			MOV	#BUFSIZ,R2	;SET BUFFER SIZE
  7165	016136'	012767	000024	001030		MOV	#20.,TMR	;(time this)
  7166	016144'	004767	001172			JSR	PC,RCVDRV	;TO RECEIVE DRIVER
  7167	016150'	001117				BNE	ERR		;ERROR ON RECEIVE
  7168	016152'	011603				MOV	(SP),R3		;BUFFER ADDR
  7169					;
  7170					;	PROGRAM LOAD WITH AND WITHOUT TRANSFER ADDR
  7171					;	R2-MESSAGE BYTE COUNT(WITHOUT CODE)
  7172					;	R3-MESSAGE ADDR(BYTE FOLLOWING CODE)
  7173					;	R4-CODE
  7174					;
  7175					;	MESSAGES RECEIVED ARE:
  7176					;	CODE 0-PGM LOAD WITH TRANSFER ADDR
  7177					;	CODE(1),LDNUM(1),LDADDR(4),IMAGE(N),XADDR(4)
  7178					;
  7179					;	CODE 2-PGM LOAD WITHOUT XFER ADDR
  7180					;	CODE(1),LDNUM(1),LDADDR(4),IMAGE(N)
  7181					;
  7182					;	CODE 20-PARAMETERS WITH TRANSFER ADDRESS
  7183					;	CODE(1),LDNUM(1),PARAMETERS,XADDR(4)
  7184					;	PARAMETERS:  ENTRY,ENDMARK
  7185					;	ENTRIES:
  7186					;	PARTYPE (1):B	PARAMETER TYPE #
  7187					;	PARLENGTH (1):B	# OF BYTES IN PARVALUE
  7188					;	PARVALUE (1):B	PARAMETER VALUE ACCORDING TO PARTYPE AND PARLENGTH
  7189					;	PARAMETER TYPE		LENGTH		VALUE
  7190					;		1		1 TO 6		ASCII NODE NAME
  7191					;		2		  2		BINARY NODE NO.
  7192					;		3		1 TO 6		ASCII HOST NODE NAME
  7193					;		4		  2		binary host node no.
  7194					;	ENDMARK (1):B  = 0
  7195					;
  7196					;
  7197					;	MESSAGE RETURNED IS:
  7198					;	CODE 10-REQUEST PROGRAM LOAD
  7199					;	CODE(1),LDNUM(1),ERROR(1)
  7200					;
  7201					;
  7202	016154'	112304			PGMLD0:	MOVB	(R3)+,R4	;SAVE CODE
  7203	016156'	005302				DEC	R2		;SUBTRACT CODE LENGTH
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 41-8
C11DMC.MAC    04-JAN-83 11:18		PROGRAM END

  7204	016160'	120427	000002			CMPB	R4,#2		;IS IT LOAD WITH XFER ADDR
  7205	016164'	001407				BEQ	PGMLD2		;YES
  7206	016166'	120427	000024			CMPB	R4,#20.		;IS IT A PARAMETERS MESSAGE
  7207	016172'	001402				BEQ	5$		;IF EQ, YES
  7208	016174'	105704				TSTB	R4		;IS IT LOAD WITHOUT XFER ADDR
  7209	016176'	001326				BNE	SNDOS		;NO
  7210	016200'	162702	000004		5$:	SUB	#4.,R2		;SUBTRACT XFER ADDR LENGTH
  7211	016204'	105713			PGMLD2:	TSTB	(R3)		;IS IT LOAD 0
  7212	016206'	001402				BEQ	10$		;YES, RESET LOAD NUMBER
  7213	016210'	121300				CMPB	(R3),R0		;DOES IT MATCH REQUESTED LOAD
  7214	016212'	001076				BNE	ERR		;NO, ASK AGAIN
  7215	016214'	112300			10$:	MOVB	(R3)+,R0	;SET LOAD NUMBER
  7216	016216'	105200				INCB	R0		;SET TO NEXT REQUESTED
  7217	016220'	005302				DEC	R2		;DECREMENT REMAINING COUNT
  7218					;	BLE	NODAT		;IF LE, NO DATA IN THIS LOAD
  7219					;
  7220					;
  7221					; GET LOAD ADDRESS
  7222					;
  7223	016222'	120427	000024			CMPB	R4,#20.		;IS THIS A PARAMETERS MESSAGE ?
  7224	016226'	001473				BEQ	PARM		;IF EQ, YES - EXTRACT PARAMETERS
  7225	016230'	012305				MOV	(R3)+,R5	;LOAD ADDR
  7226	016232'	105767	000734			TSTB	KT11		;MEMORY MANAGEMENT ENABLED ?
  7227	016236'	001414				BEQ	20$		;IF EQ, NO - SKIP EXTENDED MEMORY COMPUTATION
  7228	016240'	010546				MOV	R5,-(SP)	;USE THE HIGH BYTE OF R5 AS THE LOW ORDER
  7229	016242'	000316				SWAB	(SP)		;    BYTE OF THE REAL MEMORY ADDRESS
  7230	016244'	111366	000001			MOVB	(R3),1(SP)	;THE NEXT BYTE IN THE MESSAGE IS THE HIGH ORDER ADDRESS
  7231	016250'	042716	000007			BIC	#7,(SP)		;POSITION FOR MULTIPLES OF 1K WORDS
  7232	016254'	006316				ASL	(SP)		;...
  7233	016256'	006316				ASL	(SP)		;...
  7234	016260'	012637	172340			MOV	(SP)+,@#KISAR0	;SET UP THE MAPPING REGISTER
  7235	016264'	042705	174000			BIC	#^C<3777>,R5	;BUILD A VIRTUAL ADDRESS USING APR0
  7236	016270'	005723			20$:	TST	(R3)+		;SKIP OVER HIGH ORDER WORD OF LOAD ADDRESS
  7237	016272'	162702	000004			SUB	#4.,R2		;SUBTRACT LOAD ADDR LENGTH
  7238	016276'	003421				BLE	NODAT		;IF LE, NO DATA
  7239	016300'	060267	000662			ADD	R2,LOADED+0	;Account for data loaded
  7240	016304'	005567	000660			ADC	LOADED+2
  7241					;
  7242					; MOVE THE DATA BUT DON'T OVERWRITE THE LOADER
  7243					;
  7244	016310'	105767	000656		30$:	TSTB	KT11		;MEMORY MANAGEMENT ENBALED ?
  7245	016314'	001404				BEQ	40$		;IF EQ, NO - SKIP EXTENDED ADDRESS CHECK
  7246	016316'	023737	172340	172354		CMP	@#KISAR0,@#KISAR6 ;IS THE BLOCK RELOCATION BIAS POINTING BEYOND THE LOAD
  7247	016324'	001002				BNE	50$		;IF NE, IT MIGHT BE - DONT NEED VIRTUAL ADDRESS CHECK
  7248	016326'	020566	000002		40$:	CMP	R5,2(SP)	;IS THE VIRTUAL ADDRESS TOO LARGE ?
  7249	016332'	103020			50$:	BHIS	LDERR		;IF HIS, YES - LOAD ERROR
  7250	016334'	112325				MOVB	(R3)+,(R5)+	;MOVE BYTE TO REQUESTED LOCATION
  7251	016336'	005302				DEC	R2		;DECREMENT COUNT
  7252	016340'	003363				BGT	30$		;MORE TO MOVE
  7253
  7254					;
  7255					; CHECK FOR TRANSFER ADDRESS
  7256					;
  7257	016342'	105704			NODAT:	TSTB	R4		;IS IT LOAD WITH XFER ADDR
  7258	016344'	001515				BEQ	XFER		;IF EQ, YES - TRANSFER TO PROGRAM
  7259
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 41-9
C11DMC.MAC    04-JAN-83 11:18		PROGRAM END

  7260					;
  7261					; REQUEST NEXT BLOCK
  7262					;
  7263	016346'	005003			ACKLD:	CLR	R3		;CLEAR ERROR BYTE
  7264	016350'	011605			SNDER:	MOV	(SP),R5		;BUFFER ADDR
  7265	016352'	112725	000012			MOVB	#10.,(R5)+	;REQUEST PGM LOAD CODE
  7266	016356'	110025				MOVB	R0,(R5)+	;REQUESTED LOAD NUMBER
  7267	016360'	012702	000003			MOV	#3,R2		;SET FOR ACK CNT
  7268	016364'	010325				MOV	R3,(R5)+	;SET ERROR STATUS
  7269	016366'	001651				BEQ	SNDIT
  7270	016370'	005202				INC	R2		;ONE MORE IF ERROR
  7271	016372'	000647				BR	SNDIT
  7272
  7273					;
  7274					; LOADER OVERWRITE ERROR
  7275					;
  7276	016374'	012703	000000		LDERR:	MOV	#0,R3		;SET ERROR CODE
  7277	016400'	000763				BR	SNDER		;
  7278
  7279					;
  7280					; TRANSFER ADDRESS ERROR
  7281					;
  7282	016402'	012703	000002		XFERR:	MOV	#2,R3		;SET ERROR CODE
  7283	016406'	000760				BR	SNDER		;
  7284
  7285					;
  7286					;	ERROR ON RECEIVE
  7287					;	SEND EITHER REQUEST PROGRAM OR LOAD
  7288					;
  7289	016410'	105700			ERR:	TSTB	R0		;HAVE WE STARTED XFER YET
  7290	016412'	001620				BEQ	SNDOS		;NOT YET,REQUEST PROGRAM
  7291	016414'	000754				BR	ACKLD		;ALREADY STARTED, REQUEST LOAD
  7292
  7293					;
  7294					; PARAMETERS MESSAGE WITH TRANSFER ADDRESS
  7295					;
  7296	016416'	010304			PARM:	MOV	R3,R4		;SAVE PARAMETER ADDRESS
  7297	016420'	060203				ADD	R2,R3		;SKIP OVER ALL PARAMETERS
  7298	016422'	062766	000506	000002		ADD	#BUFSIZ+64.,2(SP);LAST 32. WORDS		GP013078
  7299	016430'	062766	000000G	000002		ADD	#TOP32,2(SP)	;32 WORD BLOCK AT END
  7300	016436'	162766	016032'	000002		SUB	#BT3STR,2(SP)	;HAD BEEN SAVED
  7301	016444'	022727	000014	000014		CMP	#DEVTYP,#12.	;USING DMC?			GP020678
  7302	016452'	001003				BNE	9$		;NO				GP020678
  7303	016454'	062766	000200	000002		ADD	#128.,2(SP)	;YES, ADJUST ADDRESS MORE	GP020678
  7304	016462'	016602	000002		9$:	MOV	2(SP),R2	;				GP013078
  7305	016466'	105767	000500			TSTB	KT11		;MEMORY MANAGEMENT		GP021278
  7306	016472'	001403				BEQ	12$		;NO				GP021278
  7307	016474'	013737	172354	172340		MOV	@#KISAR6,@#KISAR0;				GP021278
  7308	016502'	005022			12$:	CLR	(R2)+		;CLEAR BINARY AREA
  7309	016504'	012705	000014			MOV	#12.,R5		;PAD OUT REST
  7310	016510'	112722	000040		10$:	MOVB	#40,(R2)+	;WITH SPACES
  7311	016514'	005305				DEC	R5
  7312	016516'	001374				BNE	10$
  7313	016520'	005012				clr	(r2)		;make room for host node number 
  7314	016522'	016602	000002		11$:	MOV	2(SP),R2	;GET BACK ADDRESS		GP013078
  7315	016526'	105714				TSTB	(R4)		;CHK FOR END			GP013078
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 41-10
C11DMC.MAC    04-JAN-83 11:18		PROGRAM END

  7316	016530'	001423				BEQ	XFER		;IF 0, NO MORE DATA		GP013078
  7317	016532'	122714	000002			CMPB	#2,(R4)		;BINARY? (TYPE=2)		GP012578
  7318	016536'	001412				BEQ	15$		;NO				GP012578
  7319	016540'	122714	000004			cmpb	#4,(r4)		;host node number ?
  7320	016544'	001002				bne	13$		;nop
  7321	016546'	062702	000006			add	#6.,r2		;where it goes in top32
  7322	016552'	005722			13$:	TST	(R2)+		;BEYOND BINARY AREA		GP012578
  7323	016554'	105314				DECB	(R4)		;CHK IF HOST NAME (TYPE=3)	GP013178
  7324	016556'	001402				BEQ	15$		;IF EQ, NODE NAME		GP013178
  7325	016560'	062702	000006			ADD	#6,R2		;GET TO PROPER AREA
  7326	016564'	105724			15$:	TSTB	(R4)+		;GET COUNT
  7327	016566'	112405				MOVB	(R4)+,R5
  7328	016570'	112422			20$:	MOVB	(R4)+,(R2)+	;MOVE NAME OR NUMBER
  7329	016572'	005305				DEC	R5
  7330	016574'	001375				BNE	20$
  7331	016576'	000751				BR	11$		;CHK FOR MORE			GP013078
  7332
  7333					;
  7334					;	IF FINAL LOAD THEN TRANSFER
  7335					;
  7336	016600'	016602	000002		XFER:	MOV	2(SP),R2	;GET BACK ADDRESS               ;**NEW**
  7337	016604'	005722				TST	(R2)+		;TO NAME AREA                   ;**NEW**
  7338	016606'	121227	000040			CMPB	(R2),#40	;VALID NAME?                    ;**NEW**
  7339	016612'	001001				BNE	5$		;YES                            ;**NEW**
  7340	016614'	005012				CLR	(R2)		;NO, NULL IT                    ;**NEW**
  7341	016616'	062702	000006		5$:	ADD	#6,R2		;NEXT NAME AREA                 ;**NEW**
  7342	016622'	121227	000040			CMPB	(R2),#40	;SAME TEST                      ;**NEW**
  7343	016626'	001001				BNE	10$                                             ;**NEW**
  7344	016630'	005012				CLR 	(R2)                                            ;**NEW**
  7345	016632'	112346			10$:	MOVB	(R3)+,-(SP)	;LOW BYTE TO STACK
  7346	016634'	112366	000001			MOVB	(R3)+,1(SP)	;HIGH BYTE
  7347	016640'	012603				MOV	(SP)+,R3	;GET THE TRANSFER ADDRESS
  7348	016642'	105767	000324			TSTB	KT11		;IS THERE MEMORY MANAGEMENT?
  7349	016646'	001416				BEQ	70$		;IF EQ NO
  7350	016650'	005037	172340			CLR	@#KISAR0	;SET APR TO LOW 4K
  7351	016654'	020327	140000			CMP	R3,#140000	;IS THE ADDRESS WITHIN BOUNDS?
  7352	016660'	103413				BLO	80$		;IF LO YES
  7353	016662'	013737	172354	172344		MOV	@#KISAR6,@#KISAR2 ;NEED TO "RELOCATE" THIS CODE
  7354	016670'	042707	100000			BIC	#100000,PC	;USE APR2 INSTEAD OF APR6
  7355	016674'	012737	001400	172354		MOV	#1400,@#KISAR6	;SET TO PROPER 4K BOUNDARY
  7356	016702'	000402				BR	80$		;CLEAN UP AND XFER
  7357					;
  7358	016704'	020306			70$:	CMP	R3,SP		;TRANSFER WITHIN BOOT3?
  7359	016706'	103235				BHIS	XFERR		;IF HIS, YES - SEND ERROR
  7360
  7361					;
  7362					; ACKNOWLEDGE THE LAST BLOCK TO FINISH THE LOAD
  7363					;
  7364	016710'	011605			80$:	MOV	(SP),R5		;GET BUFFER ADDRESS
  7365	016712'	112725	000012			MOVB	#10.,(R5)+	;REQUEST PROGRAM LOAD
  7366	016716'	110025				MOVB	R0,(R5)+	;REQUESTED LOAD NUMBER
  7367	016720'	005025				CLR	(R5)+		;NO ERROR
  7368	016722'	010300				MOV	R3,R0		;SAVE TRANSFER ADDRESS
  7369	016724'	012702	000002			MOV	#2,R2		;SET LENGTH
  7370	016730'	004767	000414			JSR	PC,SNDDRV	;SEND THE LAST ACK
  7371	016734'	012702	000012			MOV	#10.,R2		;KILL ENOUGH TIME FOR THE LAST ACK TO GO
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 41-11
C11DMC.MAC    04-JAN-83 11:18		PROGRAM END

  7372	016740'	010005				MOV	R0,R5		;RESTORE TRANSFER ADDRESS
  7373	016742'	005300			1$:	DEC	R0		;DECREMENT INNER LOOP
  7374	016744'	001376				BNE	1$		;KEEP GOING TILL ZERO
  7375	016746'	005302				DEC	R2		;DECREMENT OUTER LOOP
  7376	016750'	001374				BNE	1$		;ONCE MORE
  7377	016752'	005003			25$:	CLR	R3
  7378	016754'	156703	000166			BISB	$UNIT,R3	;SET LOAD UNIT NO.
  7379	016760'	016704	000160			MOV	$DEVTP,R4	;AND DEVICE TYPE
  7380	016764'	012701	177777			MOV	#-1,R1		;TO INDICATE DOWN LINE LOAD
  7381	016770'	012702	177777			MOV	#-1,R2		;SAME
  7382	016774'	010507				MOV	R5,PC		;DO THE TRANSFER
  7383					;
  7384					;	Display our progress on request
  7385					;
  7386	016776'	105737	177560		PRGRSS:	TSTB	@#CTISTS	;If character ready
  7387	017002'	100043				BPL	90$		;then
  7388	017004'	113704	177562			MOVB	@#CTICHR,R4	;pick it up
  7389	017010'	042704	177600			BIC	#^C177,R4	;and clear parity.
  7390	017014'	122704	000024			CMPB	#'T-100,R4	;If ^T
  7391	017020'	001034				BNE	90$		;then display our progress.
  7392	017022'	010703				MOV	PC,R3		;Get address
  7393	017024'	062703	000135			ADD	#BTLNM-.,R3	;of our message
  7394	017030'	016705	000132			MOV	LOADED+0,R5	;and
  7395	017034'	016704	000130			MOV	LOADED+2,R4	;bytes loaded
  7396	017040'	071427	003720			DIV	#2000.,R4	;(in KW)
  7397	017044'	004767	000044			CALL	100$
  7398	017050'	004767	000040			CALL	100$
  7399	017054'	004767	000034			CALL	100$
  7400	017060'	152767	000060	000072		BISB	#'0,BTLNM-1	;Insure not all blanks.
  7401	017066'	010703				MOV	PC,R3		;Get
  7402	017070'	062703	000057			ADD	#BTTXT-.,R3	;text string.
  7403	017074'	105737	177564		80$:	TSTB	@#CTOSTS	;If the console
  7404	017100'	100375				BPL	80$		;is ready,
  7405	017102'	112337	177566			MOVB	(R3)+,@#CTOCHR	;then send a character.
  7406	017106'	105713				TSTB	(R3)		;If more,
  7407	017110'	001371				BNE	80$		;then send it.
  7408	017112'	000207			90$:	RTS	PC
  7409
  7410	017114'	073427	177760		100$:	ASHC	#-16.,R4
  7411	017120'	001406				BEQ	110$
  7412	017122'	071427	000012			DIV	#10.,R4
  7413	017126'	062705	000060			ADD	#'0,R5
  7414	017132'	110543				MOVB	R5,-(R3)
  7415	017134'	000207				RTS	PC
  7416	017136'	112743	000040		110$:	MOVB	#' ,-(R3)
  7417	017142'	000207				RTS	PC
  7418					;
  7419					; LOCAL DATA (RELOCATED WITH THE LOADER)
  7420					;
  7421	017144'	000001			$DEVTP::.BLKW	1		;ASCII NAME OF DEVICE TYPE USED DOWN-LINE
  7422	017146'	000001			$UNIT::	.BLKB	1		;PHYSICAL DEVICE NO. OF LOAD UNIT
  7423	017147'	   114	060557	062544	BTTXT:	.ASCII	/Loaded XXX/
	017154'	020144	054130	   130
  7424	017161'	   113	006527	000012	BTLNM:	.ASCIZ	/KW/<13.><10.>
  7425						.EVEN
  7426	017166'	000000	000000		LOADED:	.WORD	0,0		;Bytes loaded
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 41-12
C11DMC.MAC    04-JAN-83 11:18		PROGRAM END

  7427	017172'	   000			KT11:	.BYTE	0		;KT-11 FLAG
  7428	017173'	   000				.BYTE	0		;RESERVED
  7429		017174'			BT3END	=.			;END OF TERTIARY LOADER
  7430
  7431
  7432
  7433						.sbttl	DMC BOOT DRIVER
  7434					;
  7435					; MODULE DESCRIPTION:
  7436					;
  7437					;	DMC DRIVER FOR BOOT (AND PANIC)
  7438					;
  7439					;
  7440					;
  7441					; DISTRIBUTED SYSTEMS SOFTWARE ENGINEERING
  7442					;
  7443					; IDENT HISTORY:
  7444					;
  7445					; 1.00	10-FEB-78
  7446					;	VERSION 2.0 RELEASE
  7447					;  .01	25-JAN-79  L. WEBBER	LW0001
  7448					;		WHEN CALCULATING PHYSICAL ADDRESSES, DON'T ASSUME
  7449					;		THEY ARE IN PAGE 6
  7450					;
  7451					;
  7452					;
  7453					; DEFINE THE MOP DEVICE CODE
  7454					;
  7455		000014				DEVTYP==12.
  7456
  7457					;
  7458					; LOCAL SYMBOL DEFINITIONS
  7459					;
  7460		172340			KISAR0=172340                                                                   ;LW0001
  7461		173356			REBOOT==173356                                                                  ;**-1
  7462	017174'	000000			TMR::	.WORD	0			;TIMER INDICATOR FOR PANIC
  7463
  7464					;+
  7465					; **-INIDRV-DEVICE INITIALIZATION
  7466					;
  7467					; INPUTS:
  7468					;
  7469					;	R1 = CSR ADDRESS OF DEVICE
  7470					;
  7471					;	0(SP) = RETURN ADDRESS
  7472					;	2(SP) = BUFFER ADDRESS
  7473					;	4(SP) = HIGHEST ADDRESS BEFORE BUFFERS AND DEVICE STORAGE
  7474					;
  7475					; OUTPUTS:
  7476					;
  7477					;	THE DMC USES THE MEMORY PRECEEDING THE DATA BUFFER FOR ITS
  7478					;	BASE TABLE.  THE DEVICE INITIALIZATION ADJUSTS THE ENTRY ON
  7479					;	THE STACK TO REFLECT THIS.
  7480					;-
  7481					;
  7482	017176'	016604	000002		INIDRV::MOV	2(SP),R4	;VIRTUAL BASE ADDR
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 41-13
C11DMC.MAC    04-JAN-83 11:18		DMC BOOT DRIVER

  7483	017202'	162704	000200			SUB	#128.,R4	;LEAVE ENOUGH ROOM FOR THE BASE TABLE
  7484	017206'	010466	000004			MOV	R4,4(SP)	;ADJUST THE HIGHEST LOAD ADDRESS CELL
  7485	017212'	010467	000330			MOV	R4,BASE		;SAVE FOR INTERNAL DEVICE INITIALIZATIONS
  7486	017216'	005067	177752			CLR	TMR
  7487
  7488	017222'	052711	040000		INIT1:	BIS	#40000,(R1)	;MASTER CLEAR DMC
  7489	017226'	012711	100000			MOV	#100000,(R1)	;TURN DMC ON
  7490	017232'	016704	000310			MOV	BASE,R4		;GET BASE ADDRESS
  7491	017236'	004767	000222			JSR	PC,GTMADR	;GET REAL ADDR
  7492	017242'	112711	000043			MOVB	#43,(R1)	;RQI + BASE
  7493	017246'	004767	000022			JSR	PC,DMCIN	;GIVE TO DMC
  7494	017252'	012703	002400			MOV	#2400,R3	;SET MOP & HALF DUPLEX
  7495	017256'	005004				CLR	R4		;FILLER REG
  7496	017260'	112711	000041			MOVB	#41,(R1)	;RQI + CNTLI
  7497	017264'	004767	000004			JSR	PC,DMCIN
  7498	017270'	000244				CLZ			;UNSUCCESSFUL
  7499	017272'	000207				RTS	PC		;RETURN TO CALLER
  7500					;
  7501					;	SET PARAMETERS TO DMC
  7502					;	R4=FIRST PARM
  7503					;	R3=SECOND PARM
  7504					;
  7505	017274'	105711			DMCIN:	TSTB	(R1)		;RDYI SET ?
  7506	017276'	100407				BMI	INOK		;YES
  7507	017300'	105761	000002			TSTB	2(R1)		;RDYO SET ?
  7508	017304'	100373				BPL	DMCIN		;NO
  7509	017306'	004767	000116			JSR	PC,DMCOUT	;CHECK COMPLETION
  7510	017312'	001770				BEQ	DMCIN		;AGAIN
  7511	017314'	000207				RETURN			;ERROR - RETURN TO CALLER
  7512	017316'	010461	000004		INOK:	MOV	R4,4(R1)	;TO FIRST HALF DMC PORT
  7513	017322'	010361	000006			MOV	R3,6(R1)	;TO SECOND HALF DMC PORT
  7514	017326'	042711	000040			BIC	#40,(R1)	;CLEAR RQI-GIVE TO DMC
  7515	017332'	105711			1$:	TSTB	(R1)		;RDYI CLEAR ?
  7516	017334'	100776				BMI	1$		;NOT YET
  7517	017336'	000264				SEZ			;SUCCESSFUL
  7518	017340'	000207			5$:	RETURN			;RETURN TO CALLER
  7519
  7520
  7521
  7522					;+
  7523					; **-RCVDRV-RECEIVE A BLOCK FROM THE DEVICE
  7524					; **-SNDDRV-TRANSMIT A BLOCK ON THE DEVICE
  7525					;
  7526					; INPUTS:
  7527					;
  7528					;	R1 = CSR ADDRESS
  7529					;	R2 = MAXIMUM BLOCK LENGTH TO RECEIVE, OR
  7530					;	     BLOCK LENGTH TO TRANSMIT
  7531					;
  7532					;	0(SP) = RETURN ADDRESS
  7533					;	2(SP) = BUFFER ADDRESS
  7534					;
  7535					; OUTPUTS:
  7536					;
  7537					;	Z-BIT SET:
  7538					;	R2 = ACTUAL LENGTH OF BLOCK RECEIVED
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 41-14
C11DMC.MAC    04-JAN-83 11:18		DMC BOOT DRIVER

  7539					;	(SP) = BUFFER ADDRESS
  7540					;
  7541					;	Z-BIT CLEAR:
  7542					;	AN ERROR WAS DETECTED ON THE DEVICE
  7543					;	THE STACK IS AS DESRIBED ABOVE
  7544					;-
  7545					;
  7546						.ENABL	LSB
  7547
  7548	017342'	112711	000044		RCVDRV::MOVB	#44,(R1)	;RQI + BA/CC + RCV
  7549	017346'	000402				BR	10$		;
  7550
  7551	017350'	112711	000040		SNDDRV::MOVB	#40,(R1)	;RQI + BA/CC + XMT
  7552
  7553	017354'	016604	000002		10$:	MOV	2(SP),R4	;GET ADDRESS OF THE BUFFER
  7554	017360'	004767	000100			JSR	PC,GTMADR	;GET REAL ADDR OF BUFFER
  7555	017364'	050203				BIS	R2,R3		;SET BUFFER SIZE
  7556	017366'	004767	177702			JSR	PC,DMCIN	;GIVE TO DMC
  7557	017372'	005005				CLR	R5
  7558	017374'	105761	000002		20$:	TSTB	2(R1)		;TEST RDYO SET
  7559	017400'	100411				BMI	21$
  7560	017402'	005305				DEC	R5		;COUNT ON IT
  7561	017404'	001373				BNE	20$
  7562	017406'	005767	177562			TST	TMR		;NOT YET, NEED TIMER?
  7563	017412'	001770				BEQ	20$		;NO
  7564	017414'	005367	177554			DEC	TMR
  7565	017420'	003365				BGT	20$		;DONE IT LONG ENOUGH?
  7566	017422'	000677				BR	INIT1		;YES, RE_INITIALIZE AND QUIT
  7567					;
  7568					;	CHECK COMPLETION FROM DMC-11
  7569					;
  7570					;
  7571	017424'	005067	177544		21$:	CLR	TMR		;YES, CLEAR IND.
  7572	017430'	016102	000006		DMCOUT:	MOV	6(R1),R2	;GET LENGTH OR ERROR BITS
  7573	017434'	042702	140000			BIC	#140000,R2	;CLEAR MEMORY ENTENSION BITS
  7574	017440'	132761	000003	000002		BITB	#3,2(R1)	;BA/CC OR CTLO
  7575	017446'	001403				BEQ	30$		;IF EQ, BA/CC COMPLETION
  7576	017450'	032702	001730			BIT	#1730,R2	;IS IT FATAL ERROR ?
  7577	017454'	001262				BNE	INIT1		;IF NE, CLEAR AND REINITIALIZE THE DEVICE
  7578
  7579	017456'	105061	000002		30$:	CLRB	2(R1)		;CLEAR RDYO (SETS Z-BIT)
  7580	017462'	000207				RETURN			;RETURN
  7581
  7582						.DSABL	LSB
  7583
  7584					;
  7585					;	GET REAL ADDR FROM VIRTUAL ADDR
  7586					;	VIRTUAL ADDR IN R4
  7587					;	REAL ADDR IN R4(LOW 16 BITS)
  7588					;	REAL ADDR IN R3(HIGH 2 BITS) BITS 14 AND 15
  7589					;	IF STACK ADDR JUST BELOW 4K BOUNDARY THEN REAL MACHINE
  7590					;	IF STACK ADDR JUST ABOVE 4K BOUNDARY THEN VIRTUAL MACHINE
  7591					;	THIS WORKS FOR PRESENT BOOT ONLY ***BEWARE***
  7592					;
  7593					;
  7594	017464'	010403			GTMADR:	MOV	R4,R3		;CALCULATE THE                                  ;LW0001
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 41-15
C11DMC.MAC    04-JAN-83 11:18		DMC BOOT DRIVER

  7595	017466'	072327	177764			ASH	#-12.,R3	;  PAGE NUMBER                                  ;LW0001
  7596	017472'	042703	177761			BIC	#^C16,R3	;  (TIMES 2 FOR INDEXING)                       ;LW0001
  7597	017476'	016303	172340			MOV	KISAR0(R3),R3	;PICK UP THE PROPER BIAS                        ;LW0001
  7598	017502'	006304				ASL	R4		;SEPARATE BIAS FROM DISP                        ;**-3
  7599	017504'	006304				ASL	R4		;
  7600	017506'	000304				SWAB	R4		;BIAS TO LOW BYTE
  7601	017510'	150403				BISB	R4,R3		;COMPUTE PHYS BLOCK ADDR
  7602	017512'	006003				ROR	R3		;2 BITS OF PHYS ADDR...
  7603	017514'	006004				ROR	R4		;TO DISP BYTE
  7604	017516'	006203				ASR	R3		;
  7605	017520'	006004				ROR	R4		;
  7606	017522'	105004				CLRB	R4		;GET RID OF GARBAGE
  7607	017524'	150304				BISB	R3,R4		;PHYS BLOCK TO ADDR
  7608	017526'	000304				SWAB	R4		;REAL ADDR AGAIN
  7609	017530'	105003				CLRB	R3		;CLEAR LOW OF REMAINDER
  7610	017532'	006203				ASR	R3		;MOVE ADDR BITS 16 & 17
  7611	017534'	006203				ASR	R3		;TO BITS 6 & 7 OF REG
  7612	017536'	000303				SWAB	R3		;TO BITS 14 & 15 OF REG
  7613	017540'	000207				RETURN			;BACK TO CALLER WITH ADDR
  7614	017542'	005003			BMREAL:	CLR	R3		;HIGH ADDR BITS ARE ZERO
  7615	017544'	000207				RETURN			;BACK TO CALLER WITH ADDR
  7616
  7617
  7618					;
  7619					; LOCAL DATA STORAGE
  7620					;
  7621	017546'	000001			BASE:	.BLKW	1		;START OF BASE TABLE
  7622									;RESERVED AREA MOVED TO SEPARATE
  7623
  7624
  7625		000000'				.END	START
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 42
C11DMC.MAC    04-JAN-83 11:18		CROSS REFERENCE TABLE -- USER SYMBOLS

ACKLD   016346R       	 7263#	 7291
ALLBTS= 177777        	  794#	 3829	 5220	 5223	 6178	 6181	 6184	 6447	 6459
BASE    017546R       	 7485*	 7490	 7621#
BMREAL  017542R       	 7614#
BPARER= 000020        	 1410#
BPTLVL= 000007        	  830#
BPTVEC= 000014        	  830#
BR0   = 000000        	  798#
BR1   = 000040        	  799#
BR2   = 000100        	  800#
BR3   = 000140        	  801#
BR4   = 000200        	  802#
BR5   = 000240        	  803#
BR6   = 000300        	  804#	 5009
BR7   = 000340        	  805#	 3739	 3766	 3774	 4529	 4847	 4917	 5019	 5063	 5072	 5111	 5180	 6191
			 6425
BSEL0 = 000000        	 1110#
BSEL1 = 000001        	 1113#
BSEL2 = 000002        	 1110#
BSEL3 = 000003        	 1113#
BSEL4 = 000004        	 1110#
BSEL5 = 000005        	 1113#
BSEL6 = 000006        	 1110#
BSEL7 = 000007        	 1113#
BSFACT= 000100        	 1660#	 4113	 4128	 4129	 4226	 4341
BTLNM   017161R       	 7393	 7400*	 7424#
BTTXT   017147R       	 7402	 7423#
BT3END= 017174R       	 7429#
BT3STR  016032R       	 3276	 3288	 6876	 7128#	 7300
BUFSIZ= 000406        	 3126#	 3283	 7164	 7298
BUSA16= 040000        	 1378#
BUSA17= 100000        	 1377#
B.DM11= 170500        	 1080#
B0    = 000001        	  777#	  794	  927	  987	  989	 1019	 1033	 1051	 1062	 1072	 1089	 1096#	 1130
			 1146	 1163	 1172	 1192	 1211	 1416	 1419	 1836	 1863	 1921	 1953	 3395	 3710
			 4600	 4659	 6661
B1    = 000002        	  778#	  926	  988	  989	 1018	 1034	 1051	 1072	 1089	 1096#	 1129	 1145	 1162
			 1173	 1212	 1414	 1862	 1884	 1886	 1888	 1890	 1920	 1946	 1948	 1950	 1952
			 3396	 4603	 4666
B10   = 002000        	  787#	  921	  958	 1008	 1040	 1082	 1131	 1155	 1183	 1202	 1334	 1404	 1853
			 1875	 1876	 1877	 1878	 1911	 1932	 1937	 1938	 1939	 1940
B11   = 004000        	  788#	  920	  959	 1007	 1041	 1081	 1131	 1140	 1154	 1184	 1203	 1334	 1402
			 1833	 1852	 1870	 1910	 1931
B12   = 010000        	  789#	  919	  960	  978	 1006	 1042	 1052	 1122	 1139	 1153	 1185	 1204	 1220
			 1401	 1851	 1869	 1909	 1930
B13   = 020000        	  790#	  918	  961	  974	  977	 1005	 1043	 1053	 1152	 1205	 1299	 1388	 1400
			 1850	 1868	 1908	 1927	 1929
B14   = 040000        	  791#	  917	  962	  973	  976	  982	 1004	 1044	 1054	 1121	 1151	 1298	 1378
			 1399	 1849	 1907	 1928	 1929
B15   = 100000        	  792#	  794	  916	  963	  975	  981	 1003	 1045	 1055	 1120	 1150	 1187	 1207
			 1297	 1377	 1387	 1398	 1692	 1823	 1832	 1848	 1867	 1906	 1925	 3711
B2    = 000004        	  779#	  948	  985	 1017	 1035	 1051	 1063	 1072	 1089	 1096#	 1128	 1144	 1174
			 1194	 1213	 1413	 1861	 1885	 1886	 1889	 1890	 1919	 1947	 1948	 1951	 1952
			 3397
B3    = 000010        	  780#	 1016	 1036	 1051	 1072	 1089	 1096#	 1127	 1143	 1161	 1175	 1195	 1214
			 1411	 1860	 1887	 1888	 1889	 1890	 1918	 1949	 1950	 1951	 1952	 3398
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 42-1
C11DMC.MAC    04-JAN-83 11:18		CROSS REFERENCE TABLE -- USER SYMBOLS

B4    = 000020        	  781#	  984	 1015	 1051	 1072	 1088	 1096#	 1126	 1160	 1176	 1196	 1215	 1410
			 1859	 1882	 1917	 1944	 3399
B5    = 000040        	  782#	  983	 1013	 1037	 1051	 1072	 1087	 1096#	 1125	 1159	 1177	 1197	 1216
			 1238	 1409	 1858	 1881	 1916	 1943	 3401	 4606	 4669
B6    = 000100        	  783#	  925	  940	  947	  954	 1012	 1038	 1051	 1064	 1072	 1086	 1096#	 1124
			 1142	 1158	 1178	 1198	 1217	 1396	 1408	 1680	 1681	 1694	 1825	 1835	 1857
			 1880	 1915	 1942	 3402
B7    = 000200        	  784#	  924	  955	 1011	 1039	 1051	 1065	 1072	 1085	 1096#	 1123	 1141	 1157
			 1179	 1199	 1218	 1407	 1682	 1693	 1824	 1834	 1856	 1879	 1914	 1941
B8    = 000400        	  785#	  923	  956	 1010	 1084	 1131	 1181	 1200	 1304	 1406	 1855	 1872	 1874
			 1876	 1878	 1913	 1932	 1934	 1936	 1938	 1940
B9    = 001000        	  786#	  922	  957	 1009	 1083	 1131	 1156	 1182	 1201	 1405	 1854	 1873	 1874
			 1877	 1878	 1912	 1932	 1935	 1936	 1939	 1940
CDBA  = 000004        	  873#	 5209	 5211*	 5212	 5214*	 5271	 5273*	 5274	 5276*
CDCC  = 000002        	  870#
CDDB  = 000006        	  875#	  892
CDHRSZ= 000010        	  906#
CDST  = 000000        	  846#
CDST2 = 000006        	  892#	 5207
CD.B16= 000020        	  848#	  850
CD.B17= 000040        	  848#	  850
CD.CER= 100000        	  877#
CD.COL= 000120        	  871#
CD.DER= 004000        	  847#
CD.DLT= 002000        	  847#
CD.EOF= 020000        	  847#
CD.ERR= 100000        	  847#	 5237
CD.GO = 000001        	  849#	 5235
CD.HPE= 000004        	  849#
CD.IE = 000100        	  848#	 5217	 5235
CD.LVL= 000004        	  842#	 4616
CD.NXM= 001000        	  848#
CD.OFL= 010000        	  847#	 5225
CD.ONL= 000010        	  849#
CD.PAC= 000002        	  849#	 5217
CD.PCK= 020000        	  894#
CD.PWC= 000400        	  848#	 5232
CD.RCK= 040000        	  894#
CD.RDC= 040000        	  847#
CD.RDY= 000200        	  848#	 5237
CD.SCK= 010000        	  894#
CD.STS= 177160        	  845#	 4616
CD.VEC= 000230        	  843#	 4616
CD.XAD= 000060        	  850#	 5217	 5235
CHKBIT  007570R       	 3825	 3842	 4914#	 5216	 5219	 5222	 5283	 5533	 5537	 6015	 6064	 6068	 6071
			 6087	 6090	 6174	 6177	 6180	 6183	 6414	 6437	 6441	 6446	 6452	 6458
CHKCD   005204R       	 4616#	 5282*
CHKCHR  015476R       	 3820*	 3822*	 3838*	 3840*	 4492*	 4493*	 4839*	 4843*	 4844*	 4846*	 4855	 4859	 4993
			 5025	 5027	 5031*	 5059*	 5087	 5089	 5094*	 5095*	 5099	 5101	 5290*	 6014*	 6104*
			 7002#	 7004	 7007	 7010	 7013	 7018
CHKCKB  001560R       	 3832	 3836#
CHKCKD  002006R       	 3797	 3878#
CHKCLK  004550R       	 4489#
CHKCOR  003566R       	 4196	 4200#
CHKCR   005240R       	 4618#	 5215*
CHKCTY  001400R       	 3780	 3784#
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 42-2
C11DMC.MAC    04-JAN-83 11:18		CROSS REFERENCE TABLE -- USER SYMBOLS

CHKDEV  006636R       	 4616	 4618	 4619	 4620	 4621	 4622	 4623	 4624	 4625	 4626	 4627	 4628	 4629
			 4630	 4631	 4632	 4633	 4635	 4660	 4661	 4662	 4663	 4664	 4667	 4670	 4671
			 4720#
CHKDTE  006140R       	 4635#
CHKEND= 016032R       	 7072#
CHKERR  015022R       	 3778	 6915#
CHKFLD  010704R       	 3749*	 4735*	 4737*	 4738	 4761	 4771	 4773*	 4796	 4838	 5184#
CHKFLG  001152R       	 3709#	 3750*	 3785*	 3836*	 4490*	 4842*	 4978	 4998*	 6220	 6224*	 6231	 6235*	 6921*
			 6928*	 6978*
CHKFLV  010702R       	 3748*	 4726	 4832	 4884	 4885*	 5183#
CHKINL  010026R       	 3828	 4532	 5006#	 5245	 5305	 6025	 6200
CHKINT  010540R       	 3765	 5141#	 5146
CHKISZ= 000012        	 3773	 5146#
CHKMAP  002562R       	 4039	 4043#
CHKMMG  002664R       	 4065	 4075#
CHKRP   005724R       	 4629#
CHKSTK= 016032R       	 3743	 7068#
CHKTIM  004750R       	 4500*	 4505	 4523*	 4528#
CHK.11  001230R       	 3293	 3739#	 6988
CHK.90  006534R       	 4679#
CI.INE= 000100        	  940#	 3843
CKACD$= 001224R       	 4616#
CKACD1= ****** U      	 4616
CKACR$= 001224R       	 4618#
CKACR1= ****** U      	 4618
CKADLX= 001224R       	 3728
CKADL.= 001224R       	 4662#	 4663#	 4664#
CKADMC= 001224R       	 4667#
CKADTE= 001224R       	 4635#
CKADUP= 001224R       	 4661#
CKADZ$= 001224R       	 4671#
CKADZ1= ****** U      	 4671
CKAKG$= 001224R       	 4619#
CKAKG1= 001224R       	 3731	 4619
CKAKMC= 001224R       	 4660#	 4670#
CKAKW.= 001224R       	 4633#
CKAKW1= 001224R       	 3730	 4538
CKALE$= 001224R       	 4620#
CKALE1= ****** U      	 4620
CKALP$= 001224R       	 4621#
CKALP1= ****** U      	 4621
CKAMEM= 001224R       	 3729
CKAPP$= 001224R       	 4622#
CKAPP1= ****** U      	 4622
CKAPR$= 001224R       	 4623#
CKAPR1= ****** U      	 4623
CKARC$= 001224R       	 4626#
CKARC1= ****** U      	 4626
CKARF$= 001224R       	 4627#
CKARF1= ****** U      	 4627
CKARH$= 001224R       	 4628#
CKARH1= ****** U      	 4628
CKARK$= 001224R       	 4631#
CKARK1= ****** U      	 4631
CKARP$= 001224R       	 4629#
CKARP1= ****** U      	 4629
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 42-3
C11DMC.MAC    04-JAN-83 11:18		CROSS REFERENCE TABLE -- USER SYMBOLS

CKARX$= 001224R       	 4632#
CKARX1= ****** U      	 4632
CKATA$= 001224R       	 4630#
CKATA1= ****** U      	 4630
CKATC$= 001224R       	 4624#
CKATC1= ****** U      	 4624
CKATM$= 001224R       	 4625#
CKATM1= ****** U      	 4625
CKBFSH  014534R       	 4683	 6838	 6848	 6854	 6864#
CKBLK = 001316R       	 7065#
CKBUST  014756R       	 3791	 3796	 4497	 4743	 4769	 5208	 5249	 6895#
CKCADD= 000034        	 4617#
CKCDEV  005204R       	 4615#	 4617
CKCEND  006534R       	 4675#
CKCLK9  004752R       	 4506	 4511	 4515	 4519	 4529#
CKCOR   004156R       	 4293	 4306#
CKCPSZ= 002000        	 4333#	 4339	 4341
CKCPU   002006R       	 3878	 3886#
CKCPUE  002506R       	 3958	 3961	 3964	 3967	 3970	 3973	 3976#
CKCPUN  002240R       	 3941#	 3976*
CKCRLF  013756R       	 4793	 6669#	 6680	 6937
CKDA  = 000000        	 3820*	 3838*	 4492*	 4843*	 4993	 6104*	 7004#
CKDEVN  001154R       	 3712#	 3824*	 4494*	 4821*	 4865*	 4866	 4988	 6635*
CKDIDT  007722R       	 4978#	 6922
CKDLXB  002562R       	 3986	 3993#
CKDL10  005034R       	 4544#
CKDNAM  001156R       	 3713#	 3823*	 3841*	 4489*	 4723*	 4800	 4983	 6218	 6229
CKDN2X= 000043        	  203#	 4599	 4600	 4603	 4606	 4658	 4659	 4666	 4669
CKDV  = 000002        	 3822*	 3840*	 4493*	 4844*	 4855	 5025	 5027	 5087	 5089	 6014*	 6104*	 7007#
CKEDID= 000010        	 3398#	 4508	 4512	 4516	 4776	 4928	 4938	 4945	 5022	 5028	 5084	 5090	 5102
			 5114	 5240	 5300	 6021	 6030	 6035	 6110	 6125	 6221	 6232	 6255	 6284	 6370
			 6411	 6895	 6919	 6938
CKEFAT= 000001        	 3395#	 4062	 6976
CKEGB = 000100        	 3402#	 4384	 4395	 4928	 4938	 4945	 5028	 5090	 5102	 6110	 6125	 6255	 6284
			 6370	 6938	 6952	 6989
CKEMSE= 000020        	 3399#	 3917	 4060	 4116	 4118	 4136	 4143	 4163	 4173	 4175	 4261	 4269	 4353
			 4384	 4395	 4508	 4512	 4516	 4776	 4804	 4928	 4938	 4945	 4980	 4985	 4990
			 4995	 5022	 5028	 5084	 5090	 5102	 5114	 5227	 5240	 5251	 5277	 5287	 5300
			 6021	 6030	 6035	 6110	 6125	 6221	 6232	 6255	 6284	 6370	 6411	 6465	 6895
			 6932	 6944
CKEMSG= 000004        	 3397#	 3917	 4060	 4116	 4118	 4136	 4143	 4163	 4173	 4175	 4261	 4269	 4353
			 4384	 4395	 4508	 4512	 4516	 4776	 4804	 4928	 4938	 4945	 4980	 4985	 4990
			 4995	 5022	 5028	 5084	 5090	 5102	 5114	 5227	 5240	 5251	 5277	 5287	 5300
			 6021	 6030	 6035	 6110	 6125	 6221	 6232	 6255	 6284	 6370	 6411	 6465	 6895
			 6932	 6949
CKENCL= 000040        	 3401#	 4261	 4804	 4985	 4990	 4995	 6411	 6935
CKEPC = 000002        	 3396#	 3917	 4173	 4175	 4353	 4384	 4395	 4508	 4512	 4516	 4928	 4938	 4945
			 5022	 5028	 5084	 5090	 5102	 5114	 5240	 5300	 6021	 6030	 6035	 6110	 6125
			 6255	 6284	 6370	 6923
CKFERR= 000001        	 3710#	 6921	 6928	 6978
CKFIDT= 100000        	 3711#	 3785	 3836	 4490	 4842	 4978	 4998
CKFLAG  010536R       	 5060*	 5092	 5096*	 5132#
CKFLG = 000006        	 4846*	 7013#
CKGCHR  014260R       	 6785#	 6809
CKGYES  014354R       	 6809#
CKHALT  001226R       	 3727#
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 42-4
C11DMC.MAC    04-JAN-83 11:18		CROSS REFERENCE TABLE -- USER SYMBOLS

CKINT   010144R       	 5057#	 6416	 6474
CKINTE  010524R       	 5085	 5091	 5105	 5115	 5122	 5125	 5127#
CKINTS  001316R       	 3763#	 7065
CKINT1  010164R       	 5063#	 5123
CKINT2  010170R       	 5064#	 5083
CKINT3  010176R       	 5066#	 5126
CKINT6  010432R       	 5100	 5106#
CKINT7  010514R       	 5068	 5124#
CKMDCK  013224R       	 6245	 6270	 6338	 6362#
CKMDEX  013146R       	 6249	 6274	 6333#
CKMDRD  013330R       	 6210	 6214	 6251	 6276	 6336	 6364	 6386#
CKMDWR  013176R       	 6213	 6228	 6350#	 6363
CKMDXT  013132R       	 6225	 6320#
CKMG01  015516R       	 4384	 4395	 7056#
CKMG02  015527R       	 4928	 4945	 7057#
CKMG03  015552R       	 4938	 7058#
CKMG04  015573R       	 5022	 5084	 7059#
CKMG05  015624R       	 5028	 5090	 7060#
CKMG06  015661R       	 7061#
CKMG07  015674R       	 5114	 7062#
CKMPAR  004550R       	 4347	 4402#
CKNAME  000466R       	 3350#	 3647	 3845
CKNODV= ****** U      	 4784
CKPI  = 000004        	 4839*	 5031*	 5059*	 5094*	 5095*	 5099	 5101	 5290*	 6104*	 7010#
CKPOPJ  001224R       	 3726#	 4616	 4618	 4620	 4621	 4622	 4623	 4624	 4625	 4626	 4627	 4628	 4629
			 4630	 4631	 4632	 4671
CKSPC = 000010        	 7018#
CKSPCD  015474R       	 3751*	 4384*	 4395*	 6982	 7000#
CKSTD = ****** U      	 4598	 4636
CKTBOC  014002R       	 4828	 6694#	 6900	 6931	 6958	 6963	 6968	 6975
CKTCHR  014070R       	 3855	 3857	 3861	 6657	 6696	 6735#	 6770	 6799
CKTCRL  013770R       	 3848	 3874	 3886	 3979	 4077	 4216	 4249	 4327	 4344	 4535	 4596	 4679	 6680#
			 6925	 6954	 6979
CKTDEC  014164R       	 3983	 4258	 6758#
CKTOCT  014016R       	 3852	 3859	 4274	 4285	 4794	 4813	 4989	 4994	 6703#
CKTREM  014406R       	 6753	 6822#
CKTRPT  013726R       	 3786*	 3795*	 3817*	 6644#	 6746	 6751	 6785	 6833*	 6857*
CKTSTR  013774R       	 3863	 3868	 4264	 4277	 4280	 4286	 4824	 6632	 6669	 6687#	 6739	 6940	 6959
			 6964	 6969
CKTTXT  013730R       	 3846	 3867	 3872	 3977	 4799	 4801	 4811	 4984	 6654#	 6687	 6947
CKVCD1= ****** U      	 4616
CKVCR1= ****** U      	 4618
CKVDL.= ****** U      	 4662	 4663	 4664
CKVDMC= ****** U      	 4667
CKVDTE= ****** U      	 4635
CKVDUP= ****** U      	 4661
CKVDZ1= ****** U      	 4671
CKVEDI= 000005        	 3352	 3357#
CKVKG1= ****** U      	 4619
CKVKMC= ****** U      	 4660	 4670
CKVKW.= ****** U      	 4633
CKVLE1= ****** U      	 4620
CKVLP1= ****** U      	 4621
CKVMAJ= 000003        	 3352	 3355#
CKVMIN= 000011        	 3352	 3356#
CKVPP1= ****** U      	 4622
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 42-5
C11DMC.MAC    04-JAN-83 11:18		CROSS REFERENCE TABLE -- USER SYMBOLS

CKVPR1= ****** U      	 4623
CKVRC1= ****** U      	 4626
CKVRF1= ****** U      	 4627
CKVRH1= ****** U      	 4628
CKVRK1= ****** U      	 4631
CKVRP1= ****** U      	 4629
CKVRX1= ****** U      	 4632
CKVTA1= ****** U      	 4630
CKVTC1= ****** U      	 4624
CKVTM1= ****** U      	 4625
CKVWHN  000530R       	 3353	 3359#
CKVWHO  000542R       	 3353	 3361#
CKWRD   002236R       	 3890	 3894	 3940#
CK.BFG  014752R       	 6842*	 6846	 6850*	 6890#
CK.BFN  014751R       	 6852	 6888#
CK.BUF  014631R       	 4682	 6870	 6883	 6887#	 6891
CK.CAL  001160R       	 3715#	 3740*	 4692	 6874
CK.COD  014630R       	 6872	 6886#
CK.CSP  001164R       	 3717#	 3742*	 4691	 6868
CK.DMC  001162R       	 3716#	 3741*	 4690	 4848	 6873
CK.OSP  001166R       	 3718#	 6867*	 6879
CK.PTR  014754R       	 6835	 6855*	 6891#
CK04    002442R       	 3929	 3957#
CK05    002450R       	 3902	 3960#
CK20    002456R       	 3905	 3963#
CK34    002464R       	 3937	 3966#
CK40    002472R       	 3904	 3969#
CK45    002500R       	 3938	 3972#
CLKENB= 000100        	 1681#
CLKLVL= 000004        	 1674#
CLKVEC= 000100        	 1676#	 4493	 4498	 4499*	 4531*
CLKWRD= 177546        	 1678#	 4491	 4534*
CO.INE= 000100        	  947#	 3826	 3827
CO..MM= 000004        	  948#	 3826
CR.BSY= 001000        	  922#	 5285
CR.CDN= 000200        	  924#	 5296
CR.CFD= 000001        	  927#	 5293
CR.DAT= 177162        	  929#
CR.DNE= 040000        	  917#
CR.EJT= 000002        	  926#	 5284
CR.ERR= 100000        	  916#	 5296
CR.HCK= 020000        	  918#
CR.INE= 000100        	  925#	 5284	 5293	 5299	 5307
CR.LVL= 000006        	  910#	 4618	 5290
CR.MCK= 010000        	  919#
CR.OLN= 002000        	  921#
CR.RDY= 000400        	  923#
CR.STS= 177160        	  914#	 4618
CR.TIM= 004000        	  920#
CR.VEC= 000230        	  911#	 4618
CR0STS= 177160        	  913#
CSRTAB  000164R       	 3139	 3191#
CSTAT = 000034        	 1397#	 6017
CTICHR= 177562        	  936#	 3790	 6791	 6797	 7388
CTILVL= 000004        	  938#
CTISTS= 177560        	  935#	 3789	 3837	 6795	 7386
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 42-6
C11DMC.MAC    04-JAN-83 11:18		CROSS REFERENCE TABLE -- USER SYMBOLS

CTIVEC= 000060        	  937#	 3840
CTOCHR= 177566        	  943#	 3788	 6750*	 7405*
CTOLVL= 000004        	  945#
CTOSTS= 177564        	  942#	 3787	 3819	 6748	 7403
CTOVEC= 000064        	  944#	 3822
CVCD$$= 000000        	 4616#
CVCR$$= 000000        	 4618#
CVDL.E= 000000        	 4662#	 4663#	 4664#
CVDMC$= 000000        	 4667#
CVDTE2= 000000        	 4635#
CVDUP$= 000000        	 4661#
CVDZ$$= 000000        	 4671#
CVKG$$= 000000        	 4619#
CVKMC$= 000000        	 4660#	 4670#
CVKW.P= 000000        	 4633#
CVLE$$= 000000        	 4620#
CVLP$$= 000000        	 4621#
CVPP$$= 000000        	 4622#
CVPR$$= 000000        	 4623#
CVRC$$= 000000        	 4626#
CVRF$$= 000000        	 4627#
CVRH$$= 000000        	 4628#
CVRK$$= 000000        	 4631#
CVRP$$= 000000        	 4629#
CVRX$$= 000000        	 4632#
CVTA$$= 000000        	 4630#
CVTC$$= 000000        	 4624#
CVTM$$= 000000        	 4625#
DEBUG = 000001        	  311
DEVNAM  000120R       	 3136	 3139	 3140	 3167#
DEVTAB  000206R       	 3146	 3203#
DEVTYP= 000014 G      	 3137	 3155	 7145	 7301	 7455#
DEXDON= 000004        	 1413#
DEXWD1= 000006        	 1382#
DEXWD2= 000004        	 1381#
DEXWD3= 000002        	 1380#
DGUTS = 000000        	  299	  301
DHBASE= 160020        	  951#
DHRFER= 020000        	  974#
DHROVR= 040000        	  973#
DH.AEE= 100000        	  981#
DH.BAR= 000012        	  968#
DH.BCR= 000010        	  967#
DH.BRK= 000014        	  969#
DH.CAR= 000006        	  966#
DH.CL5= 000000        	  986#
DH.CL6= 000001        	  987#
DH.CL7= 000002        	  988#
DH.CL8= 000003        	  989#
DH.CNX= 000400        	  956#
DH.DOV= 040000        	  976#
DH.LPR= 000004        	  965#
DH.LVL= 000007        	  952#
DH.NRC= 000002        	  964#
DH.NXM= 002000        	  958#
DH.PEN= 000020        	  984#
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 42-7
C11DMC.MAC    04-JAN-83 11:18		CROSS REFERENCE TABLE -- USER SYMBOLS

DH.RIE= 000100        	  954#
DH.SIE= 010000        	  960#
DH.SSR= 000016        	  970#
DH.TIE= 020000        	  961#
DH.VDP= 100000        	  975#
DH..FE= 020000        	  977#
DH..HD= 040000        	  982#
DH..MC= 004000        	  959#
DH..MM= 001000        	  957#
DH..OP= 000040        	  983#
DH..PE= 010000        	  978#
DH..RI= 000200        	  955#
DH..SI= 040000        	  962#
DH..TI= 100000        	  963#
DH.2SB= 000004        	  985#
DIAG1 = 000030        	 1394#
DIAG2 = 000032        	 1395#
DIAG3 = 000036        	 1418#
DLBASE= 100000        	  998#	 1002
DLDADR= 175610        	 1024#
DLDSIZ= 000010        	 1025#
DLPENB= 000040        	 1014#
DLRBUF= 000002        	 1048#
DLRSTS= 000000        	 1030#
DLXBUF= 000006        	 1069#
DLXSTS= 000004        	 1059#
DLYCNT= 000000        	 1376#	 6017
DLYMSK= 037777        	 1379#
DL.BAS= 100000        	  997#	  998
DL.BRK= 000001        	 1062#
DL.B00= 000001        	 1019#
DL.B01= 000002        	 1018#
DL.B04= 000020        	 1015#
DL.CAR= 010000        	 1042#
DL.CNX= 002000        	 1008#
DL.CPE= 000400        	 1010#
DL.CTS= 020000        	 1043#
DL.CWC= 000100        	 1012#
DL.DIE= 000040        	 1037#
DL.DSC= 100000        	 1045#
DL.DTR= 000002        	 1034#
DL.ERE= 000010        	 1016#
DL.ERR= 100000        	 1055#
DL.E.L= 000000        	 4662	 4663	 4664
DL.INE= 000004        	 1017#
DL.LVL= 000004        	 1000#
DL.NXM= 004000        	 1007#
DL.OVR= 040000        	 1054#
DL.PAR= 001000        	 1009#
DL.PEN= 000040        	 1013#	 1014
DL.RGO= 004000        	 1041#
DL.RIE= 000100        	 1038#
DL.RNG= 040000        	 1044#
DL.ROK= 000200        	 1039#
DL.RTS= 000004        	 1035#
DL.STS= 100000        	 1002#
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 42-8
C11DMC.MAC    04-JAN-83 11:18		CROSS REFERENCE TABLE -- USER SYMBOLS

DL.VEC= 000170        	  999#
DL.WCO= 000200        	 1011#
DL.XIE= 000100        	 1064#
DL.XOK= 000200        	 1065#
DL..FE= 020000        	 1053#
DL..MM= 000004        	 1063#
DL..PE= 010000        	 1052#
DL..RC= 000377        	 1051#
DL..RE= 000001        	 1033#
DL..XC= 000377        	 1072#
DL.10C= 010000        	 1006#
DL.10I= 020000        	 1005#
DL.11C= 040000        	 1004#
DL.11I= 100000        	 1003#
DL.2RC= 002000        	 1040#
DL.2XM= 000010        	 1036#
DL10AD= 000546R       	 3385
DMBASE= 170500        	 1076#
DMCIN   017274R       	 7493	 7497	 7505#	 7508	 7510	 7556
DMCOUT  017430R       	 7509	 7572#
DMC.LV= 000005        	 1093#	 4667
DM.ALI= 000017        	 1089#
DM.BSY= 000020        	 1088#
DM.DNE= 000200        	 1085#
DM.ENB= 000040        	 1087#
DM.IEN= 000100        	 1086#
DM.INI= 002000        	 1082#
DM.LVL= 000007        	 1078#
DM.SCN= 004000        	 1081#
DM.STP= 000400        	 1084#
DM.TIM= 000120        	  224#
DM..MM= 001000        	 1083#
DNBASE= 175200        	 1118#
DN.ACR= 040000        	 1121#
DN.DGT= 007400        	 1131#
DN.DLO= 010000        	 1122#
DN.DNE= 000200        	 1123#
DN.DSS= 000040        	 1125#
DN.LVL= 000007        	 1117#
DN.PND= 000020        	 1126#
DN.PWI= 100000        	 1120#
DN..CR= 000001        	 1130#
DN..DP= 000002        	 1129#
DN..IE= 000100        	 1124#
DN..ME= 000004        	 1128#
DN..MM= 000010        	 1127#
DON10C= 040000        	 1399#
DON11C= 000100        	 1408#
DP.CAR= 004000        	 1154#
DP.CTS= 002000        	 1155#
DP.DTR= 000001        	 1163#
DP.LVL= 000007        	 1135#
DP.MIS= 000020        	 1160#
DP.MRY= 010000        	 1153#
DP.RIE= 000100        	 1142#
DP.RNG= 020000        	 1152#
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 42-9
C11DMC.MAC    04-JAN-83 11:18		CROSS REFERENCE TABLE -- USER SYMBOLS

DP.ROF= 040000        	 1151#
DP.RTS= 001000        	 1156#
DP.SIE= 000040        	 1159#
DP.TIE= 000100        	 1158#
DP..CF= 100000        	 1150#
DP..CP= 010000        	 1139#
DP..HD= 000002        	 1145#
DP..IS= 000002        	 1162#
DP..MM= 000004        	 1144#
DP..MR= 000010        	 1143#
DP..MT= 000010        	 1161#
DP..RA= 004000        	 1140#
DP..RD= 000200        	 1141#
DP..SS= 000001        	 1146#
DP..TD= 000200        	 1157#
DQ.BCC= 000100        	 1217#
DQ.CAR= 010000        	 1204#
DQ.CHR= 007400        	 1180#
DQ.CIE= 000020        	 1176#	 1188
DQ.CTS= 020000        	 1205#
DQ.DIE= 000020        	 1196#
DQ.DSF= 100000        	 1207#
DQ.DSR= 002000        	 1202#
DQ.DTR= 001000        	 1201#
DQ.EIE= 000010        	 1195#
DQ.ENQ= 002000        	 1183#
DQ.ETB= 000400        	 1181#
DQ.ETX= 001000        	 1182#
DQ.HD = 000010        	 1175#
DQ.LVL= 000007        	 1167#
DQ.MBM= 000020        	 1221#
DQ.MC = 000040        	 1238#
DQ.MEM= 010000        	 1220#
DQ.RAC= 010000        	 1185#	 1188
DQ.RCL= 000002        	 1212#
DQ.RDP= 000200        	 1179#
DQ.RDS= 000100        	 1178#
DQ.RGO= 000001        	 1172#	 1188
DQ.RIE= 000040        	 1177#
DQ.RKL= 110021        	 1188#
DQ.RLE= 000010        	 1214#
DQ.RNG= 004000        	 1203#
DQ.RNX= 000040        	 1216#
DQ.RTS= 000400        	 1200#
DQ.SEC= 000004        	 1174#	 1194#
DQ.SSY= 000002        	 1173#
DQ.SYN= 004000        	 1184#
DQ.VCH= 100000        	 1187#	 1188
DQ.VRC= 000200        	 1218#
DQ.XCL= 000001        	 1211#
DQ.XDP= 000200        	 1199#
DQ.XDS= 000100        	 1198#
DQ.XGO= 000001        	 1192#
DQ.XIE= 000040        	 1197#
DQ.XLE= 000004        	 1213#
DQ.XNX= 000020        	 1215#
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 42-10
C11DMC.MAC    04-JAN-83 11:18		CROSS REFERENCE TABLE -- USER SYMBOLS

DRESET= 000100        	 1396#	 6038
DS.AD1= 020000        	 1299#
DS.AD2= 040000        	 1298#
DS.AD3= 100000        	 1297#
DS.AUX= 175600        	 1290#
DS.DTR= 000440        	 1331#	 1333	 1334
DS.DVA= 175400        	 1291#	 4857
DS.IVA= 000400        	 1304#
DS.LVL= 000007        	 1293#
DS.RDR= 000002        	 1319#
DS.RGO= 006455        	 1334#
DS.RST= 000000        	 1320#
DS.VEC= 000400        	 1292#
DS.XDR= 000006        	 1317#
DS.XGO= 000455        	 1333#
DS.XST= 000004        	 1318#
DS.ZAP= 170000        	 1332#
DTE2.L= 000000        	 4635
DUPACT= 004000        	 1430#
DUPCAR= 010000        	 1430#
DUPCRS= 000000        	 1429#
DUPCTS= 020000        	 1430#
DUPDIE= 000040        	 1431#
DUPDSA= 100000        	 1430#
DUPDSB= 000001        	 1432#
DUPDSR= 001000        	 1431#
DUPDTR= 000002        	 1432#	 6063
DUPPDM= 100000        	 1467#
DUPPIC= 001000        	 1467#
DUPPSR= 000002        	 1466#
DUPP2M= 010000        	 1467#
DUPP2S= 000377        	 1468#
DUPRAB= 002000        	 1454#
DUPRCE= 000020        	 1431#
DUPRCR= 010000        	 1454#
DUPRDB= 000002        	 1453#	 1466
DUPRDN= 000200        	 1431#
DUPRDT= 000377        	 1455#
DUPREM= 001000        	 1454#
DUPRER= 100000        	 1454#
DUPRIE= 000100        	 1431#	 6063
DUPRNG= 040000        	 1430#
DUPROV= 040000        	 1454#
DUPRSM= 000400        	 1454#
DUPRTS= 000004        	 1432#
DUPSSY= 000400        	 1431#	 6065
DUPTAC= 001000        	 1480#
DUPTCS= 000004        	 1478#
DUPTDB= 000006        	 1499#
DUPTDL= 100000        	 1479#
DUPTDN= 000200        	 1480#
DUPTHD= 000010        	 1480#	 6069
DUPTIE= 000100        	 1480#	 6069
DUPTMC= 020000        	 1479#	 6069
DUPTMI= 002000        	 1480#	 6069
DUPTMT= 040000        	 1479#
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 42-11
C11DMC.MAC    04-JAN-83 11:18		CROSS REFERENCE TABLE -- USER SYMBOLS

DUPTM0= 004000        	 1479#	 6069
DUPTM1= 010000        	 1479#	 6069
DUPTRS= 000400        	 1480#
DUPTSN= 000020        	 1480#	 6069
DUPXAB= 002000        	 1500#	 6072
DUPXCI= 040000        	 1500#
DUPXCO= 010000        	 1500#
DUPXDB= 000377        	 1501#	 6072
DUPXEM= 001000        	 1500#	 6072
DUPXMT= 004000        	 1500#
DUPXSM= 000400        	 1500#	 6072
DUP.LV= 000006        	 1425#	 4661
DUP2RC= 002000        	 1430#
DUP2TX= 000010        	 1432#
DZ.CLR= 000020        	 1517#
DZ.INI= 050140        	 1522#
DZ.LVL= 000000        	 4671
DZ.RCV= 010000        	 1528#
DZ.RIE= 000100        	 1519#	 1522	 6088
DZ.SAE= 010000        	 1520#	 1522
DZ.SCN= 000040        	 1518#	 1522	 6088
DZ.TIE= 040000        	 1521#	 1522	 6088
D.CNTF= 000020        	 4746*	 4756*
D.CNTP= 000006        	 4779	 4781*
D.DIAG= 000012        	 4840
D.FRSV= 000022        	 4747*	 4853	 4855*
D.FVFD= 000026        	 4729	 4752*	 4822
D.HINC= 000004        	 4734	 4759	 4863
D.MAIN= 000014        	 4860
D.MAXL= 000002        	 4763	 4774
D.NAMP= 000010        	 4723
D.NEXT= 000030        	 4888
D.VINC= 000003        	 4757	 4861
D.VMUL= 000005        	 4727	 4749	 4830	 4882
D.$$$$= 000000        	 4616	 4618	 4619	 4620	 4621	 4622	 4623	 4624	 4625	 4626	 4627	 4628	 4629
			 4630	 4631	 4632	 4633	 4635	 4660	 4661	 4662	 4663	 4664	 4667	 4670	 4671
ED.HIS= 000001        	 3358#	 3862
EMTLVL= 000007        	  833#
EMTVEC= 000030        	  833#
ENBGO = 000103        	 1742#
ENDDRV= ****** GX     	 3274	 3275
ERR     016410R       	 7167	 7214	 7289#
ERR10C= 010000        	 1401#
ERR11C= 000001        	 1416#	 1417
ERR11S= 000002        	 1415#
EXCLUD= 000000        	  207#	  217	  219	  220	  221	  226	  227	  228	  229	  230	  232	  235	  237
			  240	  241	  242	  243	  244	  245	  246	  247	  248
FLOAT   000054R       	 3147#	 3153
FLOATD= 160000        	 3383	 3749
FLOATV= 000300        	 3382	 3748
FLTTAB  000142R       	 3140	 3179#
FTCD20= 177777        	  215#	 5203	 5204
FTCR11= 177777        	  216#	 5268	 5269
FTDH11= 000000        	  217#	  218	  223	 5319	 5320
FTDJ11= 000000        	  219#
FTDL1A= 000000        	  221#	 5516	 5517
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 42-12
C11DMC.MAC    04-JAN-83 11:18		CROSS REFERENCE TABLE -- USER SYMBOLS

FTDL1E= 177777        	  222#	 5529	 5530
FTDL10= 000000        	  220#	 3991	 3994	 4545	 4958
FTDMC = 177777        	  225#	  236	 6156	 6157
FTDM11= 000000        	  223#	 5550	 5551
FTDN11= 000000        	  226#	 5598	 5599
FTDP11= 000000        	  227#	 5613	 5614
FTDQ11= 000000        	  228#	  229	 5637	 5638
FTDS11= 000000        	  230#	 5954	 5955
FTDTE = 177777        	  231#	 6006	 6007
FTDUP1= 177777        	  233#	 6060	 6061
FTDU11= 000000        	  232#	 6048	 6049
FTDZ11= 177777        	  234#	 6084	 6085
FTKG11= 000000        	  235#	 3379
FTKMC = 177777        	  236#	  237	 6155	 6208	 6326
FTKMCL= 000000        	  237#	 6185	 6236	 6293
FTLE11= 177777        	  238#	 6406	 6407
FTLP20= 177777        	  239#	 6422	 6423
FTMD11= 000000        	  240#	 6484	 6485
FTPA61= 000000        	  241#
FTPP11= 000000        	  242#	 6529	 6530
FTPR11= 000000        	  243#	 6545	 6546
FTP611= 000000        	 6503	 6504
FTRH11= 000000        	  244#	 6574	 6575
FTRK11= 000000        	  245#
FTRX11= 000000        	  246#
FTR611= 000000        	 6516	 6517
FTTC11= 000000        	  247#	 6588	 6589
FTTM11= 000000        	  248#	 6621	 6622
FT.CHK= 000001        	  318
FT.HLP= 000001        	  309
FT.ROM= ****** U      	 4466
FT.87S= ****** U      	 1671
GTMADR  017464R       	 7491	 7554	 7594#
IDZ0  = 010000        	  877#
IDZ1  = 020000        	  877#
IDZ2  = 040000        	  877#
ILSLVL= 000007        	  829#
ILSVEC= 000010        	  829#
INCLUD= 177777        	  206#	  215	  216	  222	  223	  225	  231	  233	  234	  236	  238	  239
INIDRV  017176RG      	 3287	 7129	 7482#
INIT    016034R       	 7129#	 7159
INIT1   017222R       	 7488#	 7566	 7577
INOK    017316R       	 7506	 7512#
INTROF= 000010        	 1411#	 1412	 6027
INTRON= 000040        	 1409#	 6018
INTSON= 000001        	 1417#	 6019	 6028
INT11C= 002000        	 1404#
INT11S= 004000        	 1403#	 6024
IOTLVL= 000007        	  831#
IOTVEC= 000020        	  831#
IZ00  = 001000        	  877#
IZ01  = 000400        	  877#
IZ02  = 000200        	  878#
IZ03  = 000100        	  878#
IZ04  = 000040        	  878#
IZ05  = 000020        	  878#
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 42-13
C11DMC.MAC    04-JAN-83 11:18		CROSS REFERENCE TABLE -- USER SYMBOLS

IZ06  = 000010        	  878#
IZ07  = 000004        	  878#
IZ08  = 000002        	  878#
IZ09  = 000001        	  878#
IZ11  = 002000        	  877#
IZ12  = 004000        	  877#
I.DSRD= 000007        	 1324#	 1334
I.DSRS= 000006        	 1325#
I.DSXD= 000007        	 1326#	 1333
I.DSXS= 000006        	 1327#
I.INTC= 000004        	 5074	 5076	 5116	 5118
I.INTS= 000002        	 5066	 5078
I.RTRN= 000006        	 5127
I.$$$$= 000000        	 6416	 6474
KDSAR0= 172360        	 1649#
KDSAR1= 172362        	 1649#
KDSAR2= 172364        	 1649#
KDSAR3= 172366        	 1649#
KDSAR4= 172370        	 1649#
KDSAR5= 172372        	 1649#
KDSAR6= 172374        	 1649#
KDSAR7= 172376        	 1649#
KDSDR0= 172320        	 1649#
KDSDR1= 172322        	 1649#
KDSDR2= 172324        	 1649#
KDSDR3= 172326        	 1649#
KDSDR4= 172330        	 1649#
KDSDR5= 172332        	 1649#
KDSDR6= 172334        	 1649#
KDSDR7= 172336        	 1649#
KGBCC = 000002        	 1571#	 6107	 6109	 6122	 6124
KGDATA= 000004        	 1572#	 6106*	 6121*
KG.CCI= 000005        	 1569#
KG.CLR= 000020        	 1564#	 1570	 6118
KG.CRC= 000001        	 1567#	 1570
KG.DDB= 000010        	 1565#
KG.DNE= 000200        	 1561#
KG.INI= 000121        	 1570#
KG.LRC= 000003        	 1568#
KG.LVL= 000000        	 4619
KG.SEN= 000100        	 1562#	 1570
KG.STP= 000040        	 1563#
KG.STS= 170700        	 1560#	 4619
KISAR0= 172340        	 1649#	 3115#	 3248*	 4086*	 4096	 4110	 4126	 4151	 7234*	 7246	 7307*	 7350*	 7460#
			 7597
KISAR1= 172342        	 1649#	 4088*
KISAR2= 172344        	 1649#	 3117#	 7353*
KISAR3= 172346        	 1649#
KISAR4= 172350        	 1649#
KISAR5= 172352        	 1649#	 3119#	 4096*	 4110	 4112*	 4126*	 4151*	 4219*	 4234*	 4235	 4240*	 4242	 4283
			 4330*	 4341*	 4342
KISAR6= 172354        	 1649#	 3122#	 3265*	 3746	 4687*	 7246	 7307	 7353	 7355*
KISAR7= 172356        	 1649#	 3123#	 3261*	 4090*
KISDR0= 172300        	 1649#	 3116#	 3246	 3248*	 4087*	 4097
KISDR1= 172302        	 1649#	 4089*
KISDR2= 172304        	 1649#	 3118#
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 42-14
C11DMC.MAC    04-JAN-83 11:18		CROSS REFERENCE TABLE -- USER SYMBOLS

KISDR3= 172306        	 1649#
KISDR4= 172310        	 1649#
KISDR5= 172312        	 1649#	 3120#	 4097*	 4127*	 4152*	 4157*	 4171*	 4176	 4178*	 4220*
KISDR6= 172314        	 1649#	 3121#	 3747	 4686*
KISDR7= 172316        	 1649#	 4091*
KMC.LV= 000000        	 4660	 4670
KT11    017172R       	 3260*	 7130	 7226	 7244	 7305	 7348	 7427#
KW.INE= 000100        	 1680#	 4502	 4530	 4534
KW.P.L= 000000        	 4633
KW.TIC= 000200        	 1682#
LDERR   016374R       	 7249	 7276#
LE.DAT= 177516        	 1697#
LE.DNE= 000200        	 1693#	 6416
LE.ERR= 100000        	 1692#	 6409
LE.INE= 000100        	 1694#	 6415	 6416
LE.LVL= 000004        	 1686#	 4620
LE.STS= 177514        	 1690#	 4620
LE.VEC= 000200        	 1687#	 4620
LE0DAT= 177516        	 1696#	 1697
LE0STS= 177514        	 1689#	 1690
LE1DAT= 177522        	 1702#
LE1STS= 177520        	 1701#
LOADED  017166R       	 7142*	 7143*	 7239*	 7240*	 7394	 7395	 7426#
LPBCTR= 000006        	 1771#	 6436*	 6470*
LPBSAD= 000004        	 1769#	 6435*	 6471*	 6472*
LPCBUF= 000014        	 1787#	 6472
LPCCTR= 000015        	 1788#
LPCKSM= 000017        	 1791#
LPCSRA= 000000        	 1713#
LPCSRB= 000002        	 1744#
LPPCTR= 000010        	 1775#
LPRAMD= 000012        	 1779#	 6427
LPRBSZ= 000020        	 1793#
LPTDAT= 000016        	 1790#
LP.B16= 000020        	 1715#	 1741	 6473
LP.B17= 000040        	 1715#	 1741	 6473
LP.CHI= 020000        	 1714#
LP.DEM= 000002        	 1747#
LP.DH = 002000        	 1714#	 6438
LP.DNE= 000200        	 1715#
LP.DV = 100000        	 1745#
LP.ERR= 100000        	 1714#
LP.GO = 000001        	 1716#	 1742	 6473
LP.GOE= 000001        	 1747#
LP.IE = 000100        	 1715#	 1742	 6438	 6474
LP.LOI= 000400        	 1715#	 6426	 6443	 6448	 6454	 6460
LP.LVL= 000004        	 1708#	 4621
LP.MDS= 000014        	 1740#	 6438
LP.MD0= 000004        	 1716#	 1737	 1738	 1739	 1740
LP.MD1= 000010        	 1716#	 1740
LP.MPE= 000020        	 1747#
LP.NRD= 020000        	 1745#
LP.OFL= 000200        	 1746#
LP.ONL= 004000        	 1714#	 6463
LP.OPT= 004000        	 1746#
LP.PAR= 010000        	 1745#
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 42-15
C11DMC.MAC    04-JAN-83 11:18		CROSS REFERENCE TABLE -- USER SYMBOLS

LP.PEN= 000002        	 1716#	 1742	 6438
LP.PER= 000040        	 1747#
LP.PGZ= 040000        	 1714#
LP.RDL= 002000        	 1780#
LP.RIN= 004000        	 1780#
LP.RP = 010000        	 1780#	 1781
LP.RPE= 000010        	 1747#
LP.RPI= 000400        	 1780#
LP.RSE= 001000        	 1715#	 6426	 6443	 6448	 6454	 6460
LP.RTR= 001000        	 1780#
LP.SYN= 000004        	 1747#
LP.TS0= 000400        	 1746#	 6442
LP.TS1= 001000        	 1746#	 6442
LP.TS2= 002000        	 1746#	 6442
LP.VEC= 000754        	 1709#	 4621
LP.VFE= 000100        	 1746#
LP.VFR= 010000        	 1714#
LP.XAD= 000060        	 1741#	 6438
LP.180= 040000        	 1745#
LP0STS= 175400        	 1711#	 4621
MDCSR   001174R       	 3723#	 6165
MDCSRP  001172R       	 3722#	 6163	 6166*	 6168*
MD.CLR= 040000        	 1095#	 6162	 6202	 6320
MD.CWR= 020000        	 1095#	 6354
MD.LLU= 004000        	 1095#
MD.RMI= 001000        	 1096#	 6192	 6196
MD.RMO= 002000        	 1096#	 6353	 6354	 6388
MD.RUN= 100000        	 1095#
MD.SLU= 010000        	 1095#
MD.SMP= 000400        	 1096#	 6194	 6198
MG.ANR= 100000        	 1615#	 4141
MG.APL= 040000        	 1615#
MG.ARO= 020000        	 1615#	 4141
MG.DAD= 000020        	 1617#
MG.EMT= 001000        	 1616#
MG.ENB= 000001        	 1617#	 4084
MG.IDN= 000200        	 1616#
MG.KDS= 000004        	 1642#
MG.MD0= 000040        	 1616#
MG.MD1= 000100        	 1616#
MG.MNT= 000400        	 1616#
MG.PG0= 000002        	 1617#
MG.PG1= 000004        	 1617#
MG.PG2= 000010        	 1617#
MG.SDS= 000002        	 1642#
MG.TMM= 010000        	 1615#
MG.UDS= 000001        	 1642#
MMGLVL= 000007        	  835#
MMGSR0= 177572        	 1614#	 4044	 4047	 4084	 4092*	 4141
MMGSR1= 177574        	 1637#
MMGSR2= 177576        	 1639#
MMGSR3= 172516        	 1641#
MMGVEC= 000250        	  835#	 4080
MPE11 = 001000        	 1405#
MP.ENB= 000001        	 1805#
MP.ERR= 100000        	 1802#
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 42-16
C11DMC.MAC    04-JAN-83 11:18		CROSS REFERENCE TABLE -- USER SYMBOLS

MP.LVL= 000007        	 1798#
MP.REG= 172100        	 1800#
MP.VEC= 000114        	 1797#
MP.WWP= 000004        	 1804#
M$$MGE= 000000        	  211#	 4049	 4076	 4201	 4307
NDH11 = 000000        	  218#	 5312
NLINES= 000060        	 3721#
NODAT   016342R       	 7238	 7257#
NODEV   000220R       	 3144	 3146	 3217#
NXMLVL= 000007        	  828#
NXMVEC= 000004        	  828#	 3784*	 3791*	 3796*	 4046*	 4224*	 4332*	 4495*	 4497*	 4741*	 4743*	 4769*	 5206*
			 5208*	 5249*
N.CD11  000552R       	 3664#	 4616
N.CI11  000564R       	 3666#	 3841
N.CO11  000573R       	 3667#	 3823
N.CR11  000557R       	 3665#	 4618
N.DH11  000603R       	 3668#
N.DJ11  000610R       	 3669#
N.DL.A  000622R       	 3671#
N.DL.E  000631R       	 3672#	 4662	 4663	 4664
N.DL01  000615R       	 3670#
N.DMC1  000650R       	 3674#	 4667	 6229
N.DM11  000640R       	 3673#
N.DN11  000656R       	 3675#
N.DP11  000663R       	 3676#
N.DQ11  000670R       	 3677#
N.DS11  000675R       	 3678#
N.DTE2  000702R       	 3679#	 4635
N.DUP1  000715R       	 3681#	 4661
N.DU11  000710R       	 3680#
N.DV11  000723R       	 3682#
N.DZ11  000730R       	 3683#	 4671
N.KG11  000735R       	 3684#	 4619
N.KMC1  000744R       	 3685#	 4660	 4670	 6218
N.KT11  000752R       	 3686#
N.KW.L  000757R       	 3687#	 4489
N.KW.P  000766R       	 3688#	 4633
N.LE11  001002R       	 3690#	 4620
N.LK11  000775R       	 3689#
N.LP11  001007R       	 3691#	 4621
N.MM11  001014R       	 3692#
N.NL11  001024R       	 3693#
N.PP11  001060R       	 3696#	 4622
N.PR11  001065R       	 3697#	 4623
N.P611  001040R       	 3694#
N.RC11  001072R       	 3698#	 4626
N.RF11  001077R       	 3699#	 4627
N.RH11  001111R       	 3701#	 4628
N.RK11  001104R       	 3700#	 4631
N.RP11  001116R       	 3702#	 4629
N.RX11  001125R       	 3703#	 4632
N.R611  001050R       	 3695#
N.TA11  001132R       	 3704#	 4630
N.TC11  001137R       	 3705#	 4624
N.TM11  001144R       	 3706#	 4625
PAGE0 = 000000        	 1664#	 4098	 4128
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 42-17
C11DMC.MAC    04-JAN-83 11:18		CROSS REFERENCE TABLE -- USER SYMBOLS

PAGE0B= 000000        	 1664#
PAGE1 = 020000        	 1664#
PAGE1B= 000200        	 1664#	 4088
PAGE2 = 040000        	 1664#
PAGE2B= 000400        	 1664#
PAGE3 = 060000        	 1664#
PAGE3B= 000600        	 1664#
PAGE4 = 100000        	 1664#
PAGE4B= 001000        	 1664#
PAGE5 = 120000        	 1664#	 4099	 4129	 4153	 4227	 4338
PAGE5B= 001200        	 1664#
PAGE6 = 140000        	 1664#
PAGE6B= 001400        	 1664#
PAGE7 = 160000        	 1664#
PAGE7B= 007600        	 1664#	 1665#	 4090	 4242
PARM    016416R       	 7224	 7296#
PASS  = 000002        	  320	  321#
PDP11 = 000042        	  200#	  601	  726	 3982	 4403
PDZ0  = 000001        	  886#
PDZ1  = 000002        	  886#
PDZ2  = 000004        	  886#
PD.A  = 000200        	 1654#
PD.ACF= 000007        	 1656#	 4176	 4178
PD.AC0= 000001        	 1654#	 1656	 4083	 4127	 4152	 4157	 4171	 4220
PD.AC1= 000002        	 1654#
PD.AC2= 000004        	 1654#	 1656
PD.ED = 000010        	 1654#
PD.PLF= 077400        	 1655#	 4083	 4152	 4171	 4220
PD.PL0= 000400        	 1653#	 1655	 4127
PD.PL1= 001000        	 1653#
PD.PL2= 002000        	 1653#
PD.PL3= 004000        	 1653#
PD.PL4= 010000        	 1653#
PD.PL5= 020000        	 1653#
PD.PL6= 040000        	 1653#	 1655
PD.W  = 000100        	 1654#
PGMLD0  016154R       	 7202#
PGMLD2  016204R       	 7205	 7211#
PHYLIM  001170R       	 3720#	 4248*	 4342
POSMSK= 000200        	  847#	  848#	  849#	  877#	  878#	  886#	  894#	  895#	 1095#	 1096#	 1430#	 1431#	 1432#
			 1454#	 1467#	 1479#	 1480#	 1500#	 1615#	 1616#	 1617#	 1642#	 1653#	 1654#	 1714#	 1715#
			 1716#	 1745#	 1746#	 1747#	 1780#
PP.DAT= 177556        	 1827#
PP.ERR= 100000        	 1823#
PP.INE= 000100        	 1825#
PP.LVL= 000004        	 1817#	 4622
PP.RDY= 000200        	 1824#
PP.STS= 177554        	 1821#	 4622
PP.VEC= 000074        	 1818#	 4622
PP0STS= 177554        	 1820#
PRGRSS  016776R       	 7155	 7386#
PR.BSY= 004000        	 1833#
PR.DAT= 177552        	 1838#
PR.DNE= 000200        	 1834#
PR.ERR= 100000        	 1832#
PR.INE= 000100        	 1835#
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 42-18
C11DMC.MAC    04-JAN-83 11:18		CROSS REFERENCE TABLE -- USER SYMBOLS

PR.LVL= 000004        	 1815#	 4623
PR.STS= 177550        	 1830#	 4623
PR.VEC= 000070        	 1816#	 4623
PR..RE= 000001        	 1836#
PR0   = 000000        	  807#
PR0STS= 177550        	 1829#
PR1   = 000040        	  808#	  809	  810	  811	  812	  813	  814
PR2   = 000100        	  809#
PR3   = 000140        	  810#
PR4   = 000200        	  811#
PR5   = 000240        	  812#
PR6   = 000300        	  813#
PR7   = 000340        	  814#
PS    = 177776        	  764#	 3739*	 4501*	 4529*	 4847*	 4917*	 5012*	 5019*	 5064*	 5072*	 5106*	 5111*	 5143
			 5148	 5152	 5156	 5160	 5164	 5168	 5172	 6191*	 6425*
PWFLVL= 000007        	  832#
PWFVEC= 000024        	  832#
PZ00  = 000040        	  886#
PZ08  = 000010        	  886#
PZ09  = 000020        	  886#
PZ11  = 000100        	  886#
PZ12  = 000200        	  886#
P6.LVL= 000007        	 1809#
RAMDAT= 007777        	 1781#
RAMLOD= 000014        	 1739#
RCVDRV  017342RG      	 7166	 7548#
RC.LVL= 000000        	 4626
REBOOT= 173356 G      	 7461#
RF.LVL= 000000        	 4627
RG.MSC= 000012        	 1237#
RG.PRA= 000000        	 1227#
RG.PRC= 000001        	 1228#
RG.PTA= 000002        	 1229#
RG.PTC= 000003        	 1230#
RG.SRA= 000004        	 1231#
RG.SRC= 000005        	 1232#
RG.STA= 000006        	 1233#
RG.STC= 000007        	 1234#
RG.SYN= 000011        	 1236#
RH.LVL= 000000        	 4628
RK.LVL= 000000        	 4631
RM    = 000010        	 1412#	 6033
RP.LVL= 000000        	 4629
RX.LVL= 000000        	 4632
R6.LVL= 000007        	 1811#
SEL0  = 000000        	 1110#
SEL2  = 000002        	 1110#
SEL4  = 000004        	 1110#
SEL6  = 000006        	 1110#
SENDIT  016106R       	 7150#
SETREG  000224R       	 3162	 3229#
SETUNT  000072R       	 3141	 3154#
SLEW  = 000020        	 1782#
SNDDRV  017350RG      	 6875	 7158	 7370	 7551#
SNDER   016350R       	 7264#	 7277	 7283
SNDIT   016112R       	 7151#	 7269	 7271
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 42-19
C11DMC.MAC    04-JAN-83 11:18		CROSS REFERENCE TABLE -- USER SYMBOLS

SNDOS   016054R       	 7142#	 7209	 7290
SPCVFY= 000000        	  229#
SR0   = 177572        	 3124#	 3262*
START   000000R       	 3135#	 3647	 7625
STKLEN= 000200        	  316
ST2ENB= 100000        	  894#
SW    = 177570        	  775#
S..AMC= 000000        	  325#
S..BDT= 000011        	  336#
S..CHK= 000012        	  337#
S..CNK= 000003        	  329#
S..CTY= 000005        	  331#
S..DL1= 000002        	  327#	  328
S..DTE= 000002        	  328#
S..ILS= 000004        	  330#
S..KW1= 000007        	  333#
S..MEM= 000006        	  332#	 4384	 4395
S..MMG= 000014        	  339#
S..MPD= 000013        	  338#
S..NCN= 000010        	  334#
S..NXM= 000001        	  326#
TA.LVL= 000000        	 4630
TC.A16= 000020        	 1882#
TC.A17= 000040        	 1881#
TC.BAR= 177346        	 1894#
TC.CLK= 000100        	 1857#
TC.CMD= 177342        	 1865#
TC.DAT= 177350        	 1896#
TC.DT0= 000020        	 1859#
TC.DT1= 000010        	 1860#
TC.DT2= 000004        	 1861#
TC.D16= 000001        	 1863#
TC.D17= 000002        	 1862#
TC.ERR= 100000        	 1867#
TC.ILO= 010000        	 1851#
TC.INE= 000100        	 1880#
TC.LVL= 000006        	 1844#	 4624
TC.MMT= 000040        	 1858#
TC.MTE= 020000        	 1850#
TC.NXM= 000400        	 1855#
TC.PAR= 040000        	 1849#
TC.RDA= 000006        	 1886#
TC.RDY= 000200        	 1879#
TC.REV= 004000        	 1870#
TC.RMT= 000002        	 1884#
TC.SAT= 000000        	 1883#
TC.SST= 000010        	 1887#
TC.STS= 177340        	 1846#	 4624
TC.UPS= 000200        	 1856#
TC.US0= 000000        	 1871#
TC.US1= 000400        	 1872#
TC.US2= 001000        	 1873#
TC.US3= 001400        	 1874#
TC.US4= 002000        	 1875#
TC.US5= 002400        	 1876#
TC.US6= 003000        	 1877#
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 42-20
C11DMC.MAC    04-JAN-83 11:18		CROSS REFERENCE TABLE -- USER SYMBOLS

TC.US7= 003400        	 1878#
TC.VEC= 000214        	 1842#	 4624
TC.WCR= 177344        	 1892#
TC.WRA= 000016        	 1890#
TC.WTM= 000012        	 1888#
TC..BM= 002000        	 1853#
TC..DI= 010000        	 1869#
TC..DM= 001000        	 1854#
TC..EZ= 100000        	 1848#
TC..MM= 020000        	 1868#
TC..RD= 000004        	 1885#
TC..SE= 004000        	 1852#
TC..WR= 000014        	 1889#
TENAD1= 000010        	 1383#
TENAD2= 000012        	 1384#
TMR     017174RG      	 7157*	 7165*	 7462#	 7486*	 7562	 7564*	 7571*
TM.A16= 000020        	 1944#
TM.A17= 000040        	 1943#
TM.BAR= 172526        	 1957#
TM.BCR= 172524        	 1955#
TM.BGL= 004000        	 1910#
TM.BOT= 000040        	 1916#
TM.BTE= 000400        	 1913#
TM.CRE= 020000        	 1908#
TM.CUR= 000200        	 1941#
TM.DAT= 172530        	 1959#
TM.D72= 000000        	 1926#
TM.D75= 020000        	 1927#
TM.D78= 040000        	 1928#
TM.D98= 060000        	 1929#
TM.EOF= 040000        	 1907#
TM.EOT= 002000        	 1911#
TM.ERR= 100000        	 1925#
TM.INE= 000100        	 1942#
TM.LVL= 000005        	 1902#	 4625
TM.MTC= 172522        	 1923#
TM.NXM= 000200        	 1914#
TM.OFL= 000000        	 1945#
TM.PAE= 010000        	 1909#
TM.RDL= 172532        	 1961#
TM.REW= 000016        	 1952#
TM.RLE= 001000        	 1912#
TM.RWS= 000002        	 1920#
TM.SLR= 000100        	 1915#
TM.STS= 172520        	 1904#	 4625
TM.TSD= 000010        	 1918#
TM.TUR= 000001        	 1921#
TM.US0= 000000        	 1933#
TM.US1= 000400        	 1934#
TM.US2= 001000        	 1935#
TM.US3= 001400        	 1936#
TM.US4= 002000        	 1937#
TM.US5= 002400        	 1938#
TM.US6= 003000        	 1939#
TM.US7= 003400        	 1940#
TM.VEC= 000224        	 1900#	 4625
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 42-21
C11DMC.MAC    04-JAN-83 11:18		CROSS REFERENCE TABLE -- USER SYMBOLS

TM.WEF= 000006        	 1948#
TM.WEG= 000014        	 1951#
TM.WRL= 000004        	 1919#
TM..GO= 000001        	 1953#
TM..IC= 100000        	 1906#
TM..LP= 004000        	 1931#
TM..PC= 010000        	 1930#
TM..RD= 000002        	 1946#
TM..SF= 000010        	 1949#
TM..SR= 000012        	 1950#
TM..US= 003400        	 1932#
TM..WR= 000004        	 1947#
TM.7CH= 000020        	 1917#
TOP32 = ****** GX     	 7299
TO10AD= 000020        	 1390#
TO10BC= 000014        	 1385#
TO10BM= 000001        	 1419#
TO10DB= 000400        	 1406#
TO10DN= 100000        	 1398#
TO10DT= 000024        	 1392#
TO10ER= 020000        	 1400#
TO11AD= 000022        	 1391#
TO11BC= 000016        	 1386#
TO11BM= 020000        	 1388#
TO11CM= 007777        	 1389#
TO11DB= 004000        	 1402#	 1403
TO11DN= 000200        	 1407#
TO11DT= 000026        	 1393#
TO11ER= 000002        	 1414#	 1415
TO11IB= 100000        	 1387#
TRPLVL= 000007        	  834#
TRPVEC= 000034        	  834#	 3778*
TSTMOD= 000004        	 1737#
UDSAR0= 177660        	 1647#
UDSAR1= 177662        	 1647#
UDSAR2= 177664        	 1647#
UDSAR3= 177666        	 1647#
UDSAR4= 177670        	 1647#
UDSAR5= 177672        	 1647#
UDSAR6= 177674        	 1647#
UDSAR7= 177676        	 1647#
UDSDR0= 177620        	 1647#
UDSDR1= 177622        	 1647#
UDSDR2= 177624        	 1647#
UDSDR3= 177626        	 1647#
UDSDR4= 177630        	 1647#
UDSDR5= 177632        	 1647#
UDSDR6= 177634        	 1647#
UDSDR7= 177636        	 1647#
UISAR0= 177640        	 1647#
UISAR1= 177642        	 1647#
UISAR2= 177644        	 1647#
UISAR3= 177646        	 1647#
UISAR4= 177650        	 1647#
UISAR5= 177652        	 1647#
UISAR6= 177654        	 1647#
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 42-22
C11DMC.MAC    04-JAN-83 11:18		CROSS REFERENCE TABLE -- USER SYMBOLS

UISAR7= 177656        	 1647#
UISDR0= 177600        	 1647#
UISDR1= 177602        	 1647#
UISDR2= 177604        	 1647#
UISDR3= 177606        	 1647#
UISDR4= 177610        	 1647#
UISDR5= 177612        	 1647#
UISDR6= 177614        	 1647#
UISDR7= 177616        	 1647#
VCTLIM  000550R       	 3651#	 3775
VFULOD= 000010        	 1738#
VRS   = 000002        	  288#
XCD$$ = 010706R       	 4616#
XCD11   010706R       	 4616	 5205#
XCR$$ = 011222R       	 4618#
XCR11   011222R       	 4618	 5270#
XDL.E$= 011446R       	 4662#	 4663#	 4664#
XDL.E1  011446R       	 4662	 4663	 4664	 5531#
XDMC$$= 012272R       	 4667#
XDMC11  012272R       	 4667	 6158#
XDTE2$= 011474R       	 4635#
XDTE21  011474R       	 4635	 6008#
XDUP$$= 011746R       	 4661#
XDUP11  011746R       	 4661	 6062#
XDZ$$ = 012002R       	 4671#
XDZ11   012002R       	 4671	 6086#
XFER    016600R       	 7258	 7316	 7336#
XFERR   016402R       	 7282#	 7359
XKG$$ = 012024R       	 4619#
XKG11   012024R       	 4619	 6103#
XKMC$$= 012272R       	 4660#	 4670#
XKMC11  012272R       	 4660	 4670	 6159#
XKW.P$= 013662R       	 4633#
XKW.P1= ****** U      	 4633
XLE$$ = 013352R       	 4620#
XLE11   013352R       	 4620	 6408#
XLP$$ = 013420R       	 4621#
XLP11   013420R       	 4621	 6424#
XNL11   013660R       	 6494#
XPP$$ = 013662R       	 4622#
XPP11 = ****** U      	 4622
XPR$$ = 013662R       	 4623#
XPR11 = ****** U      	 4623
XRC$$ = 013662R       	 4626#
XRC11 = ****** U      	 4626
XRF$$ = 013662R       	 4627#
XRF11 = ****** U      	 4627
XRH$$ = 013662R       	 4628#
XRH11 = ****** U      	 4628
XRK$$ = 013662R       	 4631#
XRK11 = ****** U      	 4631
XRP$$ = 013662R       	 4629#
XRP11 = ****** U      	 4629
XRX$$ = 013662R       	 4632#
XRX11 = ****** U      	 4632
XTA$$ = 013662R       	 4630#
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 42-23
C11DMC.MAC    04-JAN-83 11:18		CROSS REFERENCE TABLE -- USER SYMBOLS

XTA11 = ****** U      	 4630
XTC$$ = 013662R       	 4624#
XTC11 = ****** U      	 4624
XTM$$ = 013662R       	 4625#
XTM11 = ****** U      	 4625
X.....  013662R       	 4622	 4623	 4624	 4625	 4626	 4627	 4628	 4629	 4630	 4631	 4632	 4633	 6631#
Z     = 000121        	 6106#	 6118#
ZTALL = 007777        	  896#
ZT00  = 001000        	  895#
ZT01  = 000400        	  895#
ZT02  = 000200        	  895#
ZT03  = 000100        	  895#
ZT04  = 000040        	  895#
ZT05  = 000020        	  895#
ZT06  = 000010        	  895#
ZT07  = 000004        	  895#
ZT08  = 000002        	  895#
ZT09  = 000001        	  895#
ZT11  = 002000        	  895#
ZT12  = 004000        	  895#
$DEVTP  017144RG      	 3138*	 7379	 7421#
$MMADR= 172400        	 1647#	 1649#
$UNIT   017146RG      	 3161*	 7378	 7422#
$$    = 000176        	 1647#	 1649#	 6063#	 6065
$$HERE= 000400        	 3647#	 3648
.     = 017550R       	 3136	 3144	 3213#	 3230	 3243	 3273	 3360#	 3386#	 3707#	 3709#	 3712#	 3713#	 3715#
			 3716#	 3717#	 3718#	 3720#	 3780	 3832	 3850#	 3865#	 3870#	 3878	 3888#	 3919#	 3981#
			 3986	 4039	 4065	 4079#	 4188#	 4196	 4218#	 4251#	 4266#	 4279#	 4288#	 4293	 4329#
			 4518#	 4537#	 4540	 4612#	 4617	 4778#	 4894#	 4896#	 4898#	 4982#	 4987#	 5104#	 5146
			 5183#	 5184#	 5229#	 5242#	 5253#	 5279#	 5302#	 6037#	 6127#	 6234#	 6372#	 6467#	 6634#
			 6671#	 6887#	 6942#	 6961#	 6966#	 6981#	 7004	 7005#	 7007	 7008#	 7010	 7011#	 7013
			 7016#	 7018	 7019#	 7067#	 7068	 7072	 7393	 7402	 7421#	 7422#	 7429	 7621#
TERBOT - TERTIARY NETWORK BOOTSTRAP	DNMAC X24.07-563  04-JAN-83  16:24  PAGE 43
C11DMC.MAC    04-JAN-83 11:18		CROSS REFERENCE TABLE -- MACRO NAMES

ABORT	 3439#	 4062
ASCIZ	  748#
CHKCHR	 3564#	 6104
CKSERR	 3433#	 4383	 4394	 5027	 5089	 5101	 6109	 6124	 6254	 6283	 6369
CKVECT	 3610#
CKVEC1	 3623#
CK11SC	 3410#	 3917	 4060	 4062	 4116	 4118	 4136	 4143	 4163	 4173	 4175	 4261	 4269	 4353	 4384
	 4395	 4508	 4512	 4516	 4776	 4804	 4928	 4938	 4945	 4980	 4985	 4990	 4995	 5022	 5028
	 5084	 5090	 5102	 5114	 5227	 5240	 5251	 5277	 5287	 5300	 6021	 6030	 6035	 6110	 6125
	 6221	 6232	 6255	 6284	 6370	 6411	 6465	 6895
COUNT	  360#
DEFVEC	  819#	  828	  829	  830	  831	  832	  833	  834	  835
DEVICE	 3490#	 4616	 4618	 4619	 4620	 4621	 4622	 4623	 4624	 4625	 4626	 4627	 4628	 4629	 4630
	 4631	 4632	 4633	 4635	 4660	 4661	 4662	 4663	 4664	 4667	 4670	 4671
DQREGS	 1245#
EXCH	  740#
FALLR	  383#	 3780	 3832	 3878	 3986	 4039	 4065	 4196	 4293	 4540
FIELD	  458#	  794	 1655	 1656	 6063
GREATR	  403#
KGLOAD	 1574#	 6106	 6118
LDVECT	 3633#
LESSER	  395#
MMNAM1	 1591#	 1647	 1649
MMNAM2	 1596#	 1647	 1649
NAMASC	  430#
NAMEBT	  408#	  847	  848	  849	  877	  878	  886	  894	  895	 1095	 1096	 1430	 1431	 1432	 1454
	 1467	 1479	 1480	 1500	 1615	 1616	 1617	 1642	 1653	 1654	 1714	 1715	 1716	 1745	 1746
	 1747	 1780
NAMSTR	 3657#	 3664	 3665	 3666	 3667	 3668	 3669	 3670	 3671	 3672	 3673	 3674	 3675	 3676	 3677
	 3678	 3679	 3680	 3681	 3682	 3683	 3684	 3685	 3686	 3687	 3688	 3689	 3690	 3691	 3692
	 3693	 3694	 3695	 3696	 3697	 3698	 3699	 3700	 3701	 3702	 3703	 3704	 3705	 3706
RESTOR	  377#	 6130	 6145	 6662	 6706	 6707	 6726	 6773	 6800
SAVE	  369#	 6103	 6135	 6654	 6694	 6703	 6704	 6719	 6758	 6787
SPL	  728#	 3739	 4529	 4847	 5019	 5072	 5111
STOPCD	  345#
$CKINT	 3460#	 6416	 6474
.DEC	  391#
.INC	  387#


. ABS.  000000     000	   CON   RW    ABS   LCL   I  
        017550     001	   CON   RW    REL   GBL   I  


 ERRORS DETECTED:  0
 DEFAULT GLOBALS GENERATED:  2

 C11DMC,TERDMC/CRF=C11DMC
 RUN-TIME: 13 18 2 SECONDS
 RUN-TIME RATIO: 240/34=6.9
 CORE USED:  18K  (35 PAGES)