Google
 

Trailing-Edge - PDP-10 Archives - BB-P363B-SM_1985 - mcb/loaders/dtemps.lst
There are no other files named dtemps.lst in the archive.
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP	DNMAC X24.07-563  25-JAN-83  09:51
DTEMOP.MAC    04-JAN-83 11:15		TABLE OF CONTENTS

    27		TITLE PAGE
    66		MACROS AND DEFINITIONS
   255		MOVE TO TOP OF PHYSICAL MEMORY
   365		MOP PROCESSOR
   604		DTE SUBROUTINES
   726		DATA
   777		END
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP	DNMAC X24.07-563  25-JAN-83  09:51  PAGE 1
DTEMPS.MAC    30-DEC-82 15:39

     1					;                    COPYRIGHT (C) 1980, 1981, 1982
     2					;                    DIGITAL EQUIPMENT CORPORATION
     3					;                        MAYNARD, MASSACHUSETTS
     4					;
     5					;     THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY  BE  USED
     6					;     AND COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE
     7					;     AND WITH THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE.   THIS
     8					;     SOFTWARE  OR ANY OTHER COPIES THEREOF MAY NOT BE PROVIDED OR
     9					;     OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.  NO  TITLE  TO
    10					;     AND OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
    11					;
    12					;     THE INFORMATION  IN  THIS  SOFTWARE  IS  SUBJECT  TO  CHANGE
    13					;     WITHOUT  NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT
    14					;     BY DIGITAL EQUIPMENT CORPORATION.
    15					;
    16					;     DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
    17					;     OF  ITS  SOFTWARE  ON  EQUIPMENT  WHICH  IS  NOT SUPPLIED BY
    18					;     DIGITAL.
    19
    20		000000			S$$CLD=	0		;*** ASSEMBLE SECONDARY LOADER ***
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP	DNMAC X24.07-563  25-JAN-83  09:51  PAGE 2
DTEMOP.MAC    04-JAN-83 11:15

    21
    22					;<SROBINSON>DTEMOP.MAC.5 13-APR-81 11:11:42, EDIT BY SROBINSON
    23					;NET:<SROBINSON>DTEMOP.MAC.3  7-APR-81 11:17:34, EDIT BY SROBINSON
    24						.IIF NDF S$$CLD!T$$RLD .TITLE DTEMOP -- DTE20 MOP MODE BOOTSTRAP
    25						.IIF DF S$$CLD .TITLE DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP
    26						.IIF DF T$$RLD .TITLE DTEMPT -- DTE20 MOP TERTIARY BOOTSTRAP
    27						.SBTTL	TITLE PAGE
    28						.IDENT	"V01.02"
    29					;
    30					;
    31					;                    COPYRIGHT (C) 1980, 1981, 1982
    32					;                    DIGITAL EQUIPMENT CORPORATION
    33					;                        MAYNARD, MASSACHUSETTS
    34					;
    35					;     THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY  BE  USED
    36					;     AND COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE
    37					;     AND WITH THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE.   THIS
    38					;     SOFTWARE  OR ANY OTHER COPIES THEREOF MAY NOT BE PROVIDED OR
    39					;     OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.  NO  TITLE  TO
    40					;     AND OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
    41					;
    42					;     THE INFORMATION  IN  THIS  SOFTWARE  IS  SUBJECT  TO  CHANGE
    43					;     WITHOUT  NOTICE  AND SHOULD NOT BE CONSTRUED AS A COMMITMENT
    44					;     BY DIGITAL EQUIPMENT CORPORATION.
    45					;
    46					;     DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
    47					;     OF  ITS  SOFTWARE  ON  EQUIPMENT  WHICH  IS  NOT SUPPLIED BY
    48					;     DIGITAL.
    49					;
    50					;
    51					;	MODULE:	DTEMOP
    52					;
    53					; IDENT HISTORY:
    54					;
    55					;	1.00	22-JAN-77	TOM PORCHER
    56					;		RELEASE 3A AND 4 BASE
    57					;
    58					;	1.01	13-APR-79	LEE WEBBER
    59					;		MODIFY LOAD PARAMETER HANDLING TO THE STANDARD.
    60					;
    61					;	1.02	13-APR-81	SCOTT ROBINSON
    62					;		CHANGE EDIT 1.01 TO MAKE SECONDARY WORK AGAIN
    63					;
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP	DNMAC X24.07-563  25-JAN-83  09:51  PAGE 3
DTEMOP.MAC    04-JAN-83 11:15		TITLE PAGE

    65
    66						.SBTTL	MACROS AND DEFINITIONS
    67					;
    68					; PARAMETERS (DEFINED IN PARAMETER MODULE)
    69					;
    70					;	S$$CLD=	0		;SECONDARY LOADER (FOR TERTIARY) IF DEFINED
    71					;	T$$RLD=	0		;TERTIARY LOADER IF DEFINED
    72					;
    73					; PARAMETERS
    74					;
    75					;**	D$$BUG=	0		;DEBUG VERSION IF DEFINED
    76		000000				E$$CHK=	0		;ERROR CHECKING IF DEFINED
    77		000000				D$$CHK=	0		;DTE-20 CONSISTENCY CHECKING IF DEFINED
    78		000000				M$$CHK=	0		;MEMORY LIMIT CHECKING IF DEFINED
    79		   001			.IF DF T$$RLD
    80						L$$DPR=	0		;ALLOW LOAD PARAMETERS IF DEFINED
    81						M$$XSZ=	1024.		;MAX SIZE IS 1K BYTES (0.5K WORDS)
    82						M$$MGE=	0		;MEMORY MANAGEMENT IF DEFINED
    83						T$$32K=	0		;ALLOW DTE20 TRANSFERS OVER 32K BOUNDARIES IF DEFINED
    84					.IFF
    85		001000				M$$XSZ=	512.		;MAX SIZE IF PROGRAM IS 512. BYTES (256. WORDS)
    86		   000			.ENDC
    87					;
    88					;
    89					; MISC. MCALLS
    90					;
    91						.MACRO	CALL,A
    92						JSR	PC,A		;CALL A
    93						.ENDM
    94
    95						.MACRO	RETURN
    96						RTS	PC
    97						.ENDM
    98
    99					;
   100					; MACROS
   101					;
   102					.MACRO DEBUG,OP,MSG,ALTOP
   103					.IF DF D$$BUG
   104						 OP			;MSG
   105					.IF NDF PASS2
   106					.PRINT .-MOP ;MSG
   107					.ENDC
   108					.IFF
   109						 ALTOP
   110					.ENDC
   111					.ENDM DEBUG
   112					;
   113					.MACRO ERR,CND,MSG,WHERE,?LABEL
   114					.IF DF D$$BUG
   115						 .IIF IDN <CND>,<R>,
   116						 .IIF IDN <CND>,<NE>,BEQ LABEL
   117						 .IIF IDN <CND>,<EQ>,BNE LABEL
   118						 .IIF IDN <CND>,<PL>,BMI LABEL
   119						 .IIF IDN <CND>,<MI>,BPL LABEL
   120						 .IIF IDN <CND>,<VC>,BVS LABEL
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP	DNMAC X24.07-563  25-JAN-83  09:51  PAGE 3-1
DTEMOP.MAC    04-JAN-83 11:15		MACROS AND DEFINITIONS

   121						 .IIF IDN <CND>,<VS>,BVC LABEL
   122						 .IIF IDN <CND>,<CC>,BCS LABEL
   123						 .IIF IDN <CND>,<CS>,BCC LABEL
   124						 .IIF IDN <CND>,<GE>,BLT LABEL
   125						 .IIF IDN <CND>,<LT>,BGE LABEL
   126						 .IIF IDN <CND>,<GT>,BLE LABEL
   127						 .IIF IDN <CND>,<LE>,BGT LABEL
   128						 .IIF IDN <CND>,<HI>,BLOS LABEL
   129						 .IIF IDN <CND>,<LOS>,BHI LABEL
   130						 .IIF IDN <CND>,<HIS>,BLO LABEL
   131						 .IIF IDN <CND>,<LO>,BHIS LABEL
   132					.IFTF
   133						DEBUG HALT,<ERROR: "MSG">,<B'CND	WHERE'MOPERR>
   134					.IFT
   135					LABEL:
   136					.ENDC
   137					.ENDM ERR
   138					;
   139					.MACRO FIT,BASE,SIZE,STUFF
   140					.IF DF SIZE&PASS2
   141					.IF G <<.-BASE>-SIZE>
   142					 .ERROR <<.-BASE>-SIZE> ; TOO MUCH STUFF
   143					.IFF
   144					 .PRINT <SIZE-<.-BASE>> ; FREE FOR STUFF
   145					.ENDC
   146					.ENDC
   147					.ENDM FIT
   148					;
   149					;
   150					; GENERAL BIT DEFINITIONS
   151					;
   152		000001			BIT0=	000001
   153		000002			BIT1=	000002
   154		000004			BIT2=	000004
   155		000010			BIT3=	000010
   156		000020			BIT4=	000020
   157		000040			BIT5=	000040
   158		000100			BIT6=	000100
   159		000200			BIT7=	000200
   160		000400			BIT8=	000400
   161		001000			BIT9=	001000
   162		002000			BIT10=	002000
   163		004000			BIT11=	004000
   164		010000			BIT12=	010000
   165		020000			BIT13=	020000
   166		040000			BIT14=	040000
   167		100000			BIT15=	100000
   168					;
   169					;
   170					; MOP DEFINITIONS
   171					;
   172		000000			M.PMLT=	0.			;MEMORY LOAD WITH TRANSFER
   173		000002			M.PMLD=	2.			;MEMORY LOAD
   174		000004			M.PRMD=	4.			;REQUEST MEMORY DUMP
   175		000006			M.PEMM=	6.			;ENTER MOP MODE
   176		000010			M.PRPR=	8.			;REQUEST PROGRAM
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP	DNMAC X24.07-563  25-JAN-83  09:51  PAGE 3-2
DTEMOP.MAC    04-JAN-83 11:15		MACROS AND DEFINITIONS

   177		000012			M.PRML=	10.			;REQUEST/ACKNOWLEDGE MEMORY LOAD
   178		000014			M.PMMR=	12.			;MOP MODE RUNNING
   179		000016			M.PMDP=	14.			;MEMORY DUMP
   180		000020			M.PDAP=	16.			;(REMOTE-11) DAP ENVELOPE
   181		000022			M.PEAM=	18.			;(REMOTE-11) ENTER REMOTE-11 ASCII MODE
   182		000024			M.PLDP=	20.			;PROGRAM DATA
   183		000030			M.PLBT=	24.			;LOOPBACK TEST
   184					;
   185					;
   186					; CPU REGISTER DEFINITIONS
   187					;
   188		177570			SWR=	177570			;SWITCH REGISTER
   189		177776			PS=	177776			;PROCESSOR STATUS WORD
   190		000340				PR7=	7*BIT5		;PRIORITY 7
   191					;
   192					; MEMORY MANAGEMENT REGISTER DEFINITIONS
   193					;
   194		177572			SR0=	177572			;STATUS REGISTER 0
   195					;
   196		172300			KISDR0=	172300			;KERNAL PAGE DESRIPTOR 0
   197		172302			KISDR1=	172302			; . . 1
   198		172304			KISDR2=	172304			; . . 2
   199		172306			KISDR3=	172306			; . . 3
   200		172310			KISDR4=	172310			; . . 4
   201		172312			KISDR5=	172312			; . . 5
   202		172314			KISDR6=	172314			; . . 6
   203		172316			KISDR7=	172316			; . . 7
   204					;
   205		172340			KISAR0=	172340			;KERNAL PAGE ADDRESS REGISTER 0
   206		172342			KISAR1=	172342			; . . 1
   207		172344			KISAR2=	172344			; . . 2
   208		172346			KISAR3=	172346			; . . 3
   209		172350			KISAR4=	172350			; . . 4
   210		172352			KISAR5=	172352			; . . 5
   211		172354			KISAR6=	172354			; . . 6
   212		172356			KISAR7=	172356			; . . 7
   213					;
   214					;
   215					; DTE20 REGISTER DEFINITIONS
   216					;
   217		000000			DLYCNT=	0			;DELAY COUNTER
   218		100000				BUSA17=	BIT15		;UNIBUS ADDRESS BIT 17
   219		040000				BUSA16=	BIT14		;UNIBUS ADDRESS BIT 16
   220		037777				DLYMSK=	37777		;DELAY COUNTER
   221		000002			DEXWD3=	2			;DEPOSIT/EXAMINE WORD 3
   222		000004			DEXWD2=	4			; . . 2
   223		000006			DEXWD1=	6			; . . 1
   224		000010			TENAD1=	10			;KL-10 MEMORY ADDRESS 1
   225		000012			TENAD2=	12			; . . 2
   226		000014			TO10BC=	14			;TO -10 BYTE (WORD) COUNT
   227		000016			TO11BC=	16			;TO -11 BYTE (WORD) COUNT
   228		100000				TO11IB=	BIT15		;INTERRUPT BOTH -10 AND -11 WHEN DONE
   229		020000				TO11BM=	BIT13		;TO -11 BYTE MODE
   230		007777				TO11CM=	7777		;BYTE (WORD) COUNT
   231		000020			TO10AD=	20			;TO -10 ADDRESS
   232		000022			TO11AD=	22			;TO -11 ADDRESS
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP	DNMAC X24.07-563  25-JAN-83  09:51  PAGE 3-3
DTEMOP.MAC    04-JAN-83 11:15		MACROS AND DEFINITIONS

   233		000024			TO10DT=	24			;TO -10 DATA WORD
   234		000026			TO11DT=	26			;TO -11 DATA WORD
   235					;
   236		000030			DIAG1=	30			;DIAGNOSTIC/CONTROL REGISTER 1
   237		000032			DIAG2=	32			;DIAGNOSTIC REGISTER 2
   238		000100				DRESET=	BIT6		;(W) DTE20 RESET
   239		000034			CSTAT=	34			;CONTROL/STATUS REGISTER
   240		100000				TO10DN=	BIT15		;(R) TO -10 TRANSFER DONE
   241		040000				DON10C=	BIT14		;(W) CLEAR TO -10 DONE
   242		020000				TO10ER=	BIT13		;(R) TO -10 TRANSFER ERROR
   243		010000				ERR10C=	BIT12		;(W) CLEAR TO -10 TRANSFER ERROR
   244		004000				TO11DB=	BIT11		;(R/W) TO -11 DOORBELL
   245		002000				INT11C=	BIT10		;(W) CLEAR TO -11 DOORBELL
   246		000400				TO10DB=	BIT8		;(R/W) TO -10 DOORBELL
   247		000200				TO11DN=	BIT7		;(R) TO -11 TRANSFER DONE
   248		000100				DON11C=	BIT6		;(W) CLEAR TO -11 DONE
   249		000002				TO11ER=	BIT1		;(R) TO -11 TRANSFER ERROR
   250		000001				ERR11C=	BIT0		;(W) CLEAR TO -11 TRANSFER ERROR
   251		000036			DIAG3=	36			;DIAGNOSTIC/CONTROL REGISTER 3
   252		000001				TO10BM=	BIT0		;(W) TO -10 BYTE MODE
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP	DNMAC X24.07-563  25-JAN-83  09:51  PAGE 4
DTEMOP.MAC    04-JAN-83 11:15		MACROS AND DEFINITIONS

   254
   255						.SBTTL	MOVE TO TOP OF PHYSICAL MEMORY
   256					;
   257					; SEONDARY LOADER:
   258					; THE BM873-YF, -YG, -YH, -YJ ROM LOADS THIS 256. WORD (512. BYTE) PROGRAM
   259					; STARTING AT LOCATION 0, THEN TRANSFERS TO LOCATION 0.
   260					;
   261					; TERTIARY LOADER:
   262					; THE SECONDARY LOADER LOADS THIS 1K WORD (2048. BYTE) PROGRAM
   263					; AND TRANSFERS TO IT AT ITS TRANSFER ADDRESS "DTEMOP"
   264					;
   265					;
   266					; THE FOLLOWING REGISTERS ARE LEFT BY THE ROM:
   267					;	R1 --	ADDRESS OF DTE20 STATUS WORD "CSTAT"
   268					;
   269					;
   270	000000'				DTEMOP:
   271	000000'					DEBUG HALT,<BOOTSTRAP>,NOP ;(0) MARK START OF BOOTSTRAP
   272		   001			.IF DF T$$RLD
   273						MOV	#30$,@#4	;(2,4,6) SET UP TIMEOUT TRAP
   274						MOV	#PR7,@#6	; TO TRAP TO US
   275					.IFF
   276	000002'	000402				BR	10$		;(2) SKIP OVER TIMEOUT CODE
   277					;
   278					; TIMEOUT VECTOR-- USED TO FIND TOP OF MEMORY
   279					;
   280	000004'	000032'	000340			.WORD	30$,PR7		;(4,6) WHERE TO GO ON NXM (FIRST ON KT-11, THEN MEMORY S
   281					;
   282	000010'				10$:
   283					;
   284					; WAIT FOR TO -11 DOORBELL IF NOT CLEARED BY ROM
   285					;
   286	000010'	105711				TSTB	(R1)		;TO -11 DONE?
   287	000012'	100003				BPL	15$		;NO-- DOOBELL HAS BEEN CLEARED
   288	000014'	032711	004000			BIT	#TO11DB,(R1)	;DOORBELL RINGING?
   289	000020'	001773				BEQ	10$		;NO-- WAIT
   290	000022'				15$:
   291		   000			.ENDC
   292					;
   293					; FIND TOP BLOCK OF PHYSICAL MEMORY WHERE WE WILL FIT
   294					;
   295	000022'	012706	000770'			MOV	#STACK-4,SP	;SET STACK
   296	000026'	012700	160000			MOV	#160000,R0	;START AT EXTERNAL PAGE IF NO KT11
   297		   001			.IF DF M$$MGE
   298						MOV	#77406,R2	;SET MAX SIZE FOR AN APR
   299						MOV	R2,@#KISDR0	;SET MAP FOR THIS CODE (THIS WILL TRAP TO 30$ IF NO KT11
   300						MOV	R2,@#KISDR1	;SET MAP FOR FINDING MEMORY
   301						MOV	R2,@#KISDR7	; THEN FOR EXTERNAL PAGE
   302						CLR	@#KISAR0	;SET MAP SEGMENT 0 TO THIS CODE
   303						MOV	#7600,@#KISAR1	;START MEMORY LOOKING AT EXTERNAL PAGE
   304						MOV	#7600,@#KISAR7	;ALSO MAP EXTERNAL PAGE
   305						MOV	#1,@#SR0	;ENABLE SEGMENTATION
   306						MOV	#20000,R0	;POINT TO WHERE MAPPING REGISTER 1 MAPS
   307						MOV	#20$,@#4	;SET TIMEOUT TO KT11 FLAVOR
   308					20$:
   309						CMP	(SP)+,(SP)+	;REMOVE TRAP
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP	DNMAC X24.07-563  25-JAN-83  09:51  PAGE 4-1
DTEMOP.MAC    04-JAN-83 11:15		MOVE TO TOP OF PHYSICAL MEMORY

   310						SUB	#M$$XSZ/100,@#KISAR1 ;COUNT DOWN BY OUR SIZE
   311						TST	(R0)		;TRAP BACK TO 20$ IF NON-EX MEM
   312					;
   313					; FOUND TOP OF PHYSICAL MEMORY-- NOW COMPUTE PHYSICAL ADDRESS
   314					;
   315						MOV	@#KISAR1,R5	;GET PHYSICAL ADDRESS (RIGHT-SHIFTED 6 BITS)
   316						ASL	R5		;SHIFT
   317						ASL	R5		; EXTENSION
   318						ASL	R5		;  BITS TO
   319						ASL	R5		;   BITS 15-14
   320						MOV	R5,R4		;COPY IT
   321						BIC	#^C<BUSA17!BUSA16>,R4 ;TRIM TO RIGHT SIZE
   322						ASL	R5		;MAKE R5
   323						ASL	R5		; PHYSICAL ADDRESS
   324						BR	40$		;GO ON TO MOVE
   325					.IFTF
   326					;
   327					; HERE IF WE MUST FIND TOP OF MEMORY WITHOUT MEMORY MANAGEMENT
   328					;
   329	000032'				30$:
   330	000032'	022626				CMP	(SP)+,(SP)+	;REMOVE TRAP FROM STACK
   331	000034'	162700	001000			SUB	#M$$XSZ,R0	;DOWN BY ANOTHER BLOCK
   332	000040'	005710				TST	(R0)		;TRAP TO 30$ IF STILL NXM
   333					;
   334					; FOUND TOP OF PHYSICAL MEMORY
   335					;
   336	000042'	010005				MOV	R0,R5		;COPY PHYSICAL ADDRESS
   337					.IFT
   338						CLR	R4		;MEMORY EXTENSION= 0
   339						MOV	#240,CLRSR0	;CHANGE "CLR (SP)" (SR0) TO NO-OP
   340					.IFF
   341	000044'	005061	177744			CLR	DLYCNT-CSTAT(R1) ;SET MEMORY EXTENSION BITS FOR DTE20 TO 0
   342		   000			.ENDC
   343					;
   344					; WE NOW HAVE R0 POINTING TO THE TOP BLOCK IN MEMORY.
   345					; SINCE THIS IS POSITION-INDEPENDENT, WE CAN MOVE UP THERE NOW.
   346					;
   347					; REGISTERS:
   348					;	R0 --	VIRTUAL ADDRESS OF WHERE TO MOVE CODE
   349					;	R1 --	VIRTUAL ADDRESS OF DTE20 "CSTAT" REGISTER
   350					;	R4 --	PHYSICAL ADDRESS OF WHERE TO MOVE CODE (BITS 17-16, IN BITS 15-14)
   351					;	R5 --	PHYSICAL ADDRESS OF WHERE TO MOVE CODE (BITS 15-0)
   352					;
   353	000050'				40$:
   354	000050'	010006				MOV	R0,SP		;COPY VIRTUAL ADDRESS
   355	000052'	010067	000530			MOV	R0,PARMAD	;CALCULATE START
   356	000056'	062767	000700	000522		ADD	#M$$XSZ-64.,PARMAD ;  OF PARAMETER AREA
   357	000064'	012702	000102'			MOV	#MOP,R2		;SET SOURCE ADDRESS
   358	000070'				50$:
   359	000070'	012226				MOV	(R2)+,(SP)+	;MOVE A WORD
   360	000072'	020227	000774'			CMP	R2,#STACK	;MOVED ALL THE CODE?
   361	000076'	103774				BLO	50$		;NO-- KEEP ON MOVIN'
   362	000100'	000110				JMP	(R0)		;OFF AND RUNNING
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP	DNMAC X24.07-563  25-JAN-83  09:51  PAGE 5
DTEMOP.MAC    04-JAN-83 11:15		MOVE TO TOP OF PHYSICAL MEMORY

   364
   365						.SBTTL	MOP PROCESSOR
   366					;
   367					; THIS POSITION-INDEPENDENT CODE EXECUTES IN THE TOP BLOCK OF PHYSICAL MEMORY
   368					;
   369					; REGISTERS:
   370					;	R1 --	VIRTUAL ADDRESS OF DTE20 "CSTAT" REGISTER
   371					;	R4 --	PHYSICAL ADDRESS OF MOVED CODE (BITS 17-16, IN BITS 15-14)
   372					;	R5 --	PHYSICAL ADDRESS OF MOVED CODE (BITS 15-0)
   373					;	SP --	STACK POINTER (TOP OF VIRTUAL MEMORY)
   374					;
   375					; PAGE REGISTERS:
   376					;	0 --	MAPS TO PHYSICAL 0
   377					;	1 --	MAPS TO THIS CODE
   378					;	7 --	MAPS TO EXTERNAL PAGE
   379					;
   380	000102'				MOP:
   381	000102'					DEBUG HALT,<MOVED TO TOP OF PHYSICAL>
   382		   001			.IF DF E$$CHK!D$$CHK!M$$CHK
   383	000102'	012761	000100	177776		MOV	#DRESET,DIAG2-CSTAT(R1) ;RESET ALL TRANSFERS IN PROGRESS
   384	000110'	010706				MOV	PC,SP		;SET STACK
   385	000112'	062706	000662			ADD	#STACK-.,SP	; BACK, JACK
   386	000116'	105067	000463			CLRB	LODNUM		;START LOAD AT ZERO
   387		   002			.IF DF L$$DPR
   388						CLRB	PRGDAT		;MARK NO PROGRAM DATA YET
   389		   001			.ENDC
   390		   000			.ENDC
   391					;
   392					; SEND "REQUEST PROGRAM" MESSAGE TO THE -10
   393					;
   394	000122'	012700	000472			MOV	#REQOPS-MOP,R0	;GET ADDRESS OF MOP "REQUEST PROGRAM"
   395	000126'					CALL	DTESND		;SEND IT TO -10
   396					;
   397					; WAIT FOR -10 TO SEND US SOMETHING-- DOORBELL WILL RING
   398					;
   399	000132'				MOPWAT:
   400	000132'	032711	004000			BIT	#TO11DB,(R1)	;DOORBELL RINGING?
   401	000136'	001775				BEQ	MOPWAT		;NO-- WAIT UNTIL -10 RINGS US
   402					;
   403					; THE FIRST TWO BYTES ARE THE BYTE COUNT.
   404					;
   405	000140'	012700	000652			MOV	#RCVMSG-MOP,R0	;GET ADDRESS OF BYTE COUNT WORD
   406	000144'	011703				MOV	(PC),R3		;SET LARGE COUNT
   407	000146'	012702	000002			MOV	#2,R2		;SET BYTE COUNT
   408	000152'					CALL	DTERCV		;RECEIVE BYTE COUNT
   409					;
   410					; THE NEXT BYTE IS THE MOP FUNCTION CODE.
   411					; THE NEXT BYTE IS THE LOAD NUMBER.
   412					;
   413	000156'	016703	000572			MOV	BYTCNT,R3	;GET BYTE COUNT NOW
   414	000162'	012702	000002			MOV	#2,R2		;ONE BYTE MOP FUNCTION, ONE BYTE LOAD NUMBER
   415	000166'					CALL	DTERCA		;RECEIVE MOP CODE, ADDRESS IN R0
   416		   001			.IF DF E$$CHK
   417					;
   418					; VERIFY MOP FUNCTION
   419					;
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP	DNMAC X24.07-563  25-JAN-83  09:51  PAGE 5-1
DTEMOP.MAC    04-JAN-83 11:15		MOP PROCESSOR

   420	000172'	116702	000560			MOVB	MOPFNC,R2	;GET MOP FUNCTION
   421	000176'	001406				BEQ	10$		;(M.PMLT) MEMORY LOAD W/TRANSFER-- OK
   422	000200'	120227	000024			CMPB	R2,#M.PLDP	;PROGRAM DATA?
   423	000204'	001403				BEQ	10$		;YES-- OK
   424	000206'	120227	000002			CMPB	R2,#M.PMLD	;MEMORY LOAD?
   425	000212'					ERR NE,<INVALID MOP FUNCTION CODE RECEIVED>,MOPFER
   426	000214'				10$:
   427					;
   428					; VERIFY LOAD NUMBER
   429					;
   430					.IFTF
   431	000214'	116702	000537			MOVB	RCVLDN,R2	;IS LOAD 0?
   432					.IFT
   433	000220'	001403				BEQ	20$		;YES-- ALWAYS OK
   434	000222'	120267	000357			CMPB	R2,LODNUM	;THIS RIGHT LOAD?
   435	000226'					ERR NE,<WRONG LOAD NUMBER RECIEVED>,MOPFER
   436	000230'				20$:
   437		   000			.ENDC
   438	000230'	105202				INCB	R2		;BUMP LOAD NUMBER
   439	000232'	110267	000347			MOVB	R2,LODNUM	;STORE LOAD NUMBER
   440					;
   441					; RECEIVE DATA INTO MEMORY
   442					;
   443	000236'	012702	000004			MOV	#4,R2		;SET TO GET LOAD ADDRESS
   444	000242'	126727	000510	000024		CMPB	MOPFNC,#M.PLDP	;PROGRAM DATA?
   445	000250'	001005				BNE	40$		;NO-- USE ADDRESS
   446	000252'	062700	177630			ADD	#PRGDAT-LODADR,R0 ;YES-- POINT TO PROGRAM DATA STORAGE AREA
   447	000256'	005402				NEG	R2		;GET -4 FOR TRANSFER ADDRESS
   448	000260'	060302				ADD	R3,R2		;GET SIZE LEFT
   449	000262'	000422				BR	60$		;AND RECEIVE PROGRAM DATA
   450					;
   451	000264'				40$:
   452	000264'					CALL	DTERCA		; INTO LODADR
   453	000270'	003426				BLE	70$		;ONLY TRANSFER -- DO THAT
   454	000272'	126727	000460	000002		CMPB	MOPFNC,#M.PMLD	;MEMORY LOAD ONLY?
   455	000300'	001402				BEQ	42$		;YES-- ALL IS DATA
   456	000302'	162702	000004			SUB	#4,R2		;NO-- SAVE TRANSFER FOR LATER
   457	000306'				42$:
   458	000306'	016700	000446			MOV	LODADR+0,R0	;GET LOW ADDRESS BITS
   459		   001			.IF DF M$$MGE
   460		   002			.IF DF M$$CHK
   461						MOV	R0,-(SP)	;ALSO SAVE AS ADDRESS RANGE
   462					.IFTF
   463						MOV	LODADR+2,-(SP)	;GET HIGH ADDRESS BITS
   464					.IFT
   465						BIT	#^C<BIT1!BIT0>,(SP) ;EXTRA BITS SET?
   466						ERR NE,<LOAD REQUEST ABOVE 128K>,MOPFER
   467					.IFTF
   468						ASR	(SP)		;SHIFT
   469						ROR	(SP)		; TO
   470						ROR	(SP)		;  BITS 15-14
   471						BIC	#^C<BUSA17!BUSA16>,(SP) ;TRIM EXCESS
   472					.IFT
   473						MOV	(SP),DLYCNT-CSTAT(R1) ;SET MEMORY BITS
   474						ADD	R2,2(SP)	;COMPUTE FINAL TRANSFER ADDRESS
   475						BCC	44$		;NO CARRY-- GO ON
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP	DNMAC X24.07-563  25-JAN-83  09:51  PAGE 5-2
DTEMOP.MAC    04-JAN-83 11:15		MOP PROCESSOR

   476						ADD	#BUSA16,(SP)	;CARRY INTO THE HIGH PART
   477						ERR CS,<LOAD REQUEST WRAPS AROUND 128K>,MOPFER
   478					44$:
   479						CMP	(SP)+,R4	;VERIFY HIGH ADDRESS
   480						ERR HI,<LOAD REQUEST ABOVE LOADER>,MOPFER
   481						BLO	46$		;CHECK LOW ADDRESS ONLY IF EQ
   482						CMP	(SP),R5		;VERIFY LOW ADDRESS
   483						ERR HI,<LOAD REQUEST ON OR ABOVE LOADER>,MOPFER
   484					46$:
   485						TST	(SP)+		;REMOVE LOW ADDRESS
   486					.IFF
   487						MOV	(SP)+,DLYCNT-CSTAT(R1) ;SET MEMORY BITS
   488		   001			.ENDC
   489					.IFF
   490		   002			.IF DF M$$CHK
   491	000312'	005767	000444			TST	LODADR+2	;MAKE SURE HIGH ADDRESS IS ZERO
   492	000316'					ERR NE,<LOAD REQUEST ABOVE LOADER>,MOPFER
   493	000320'	010046				MOV	R0,-(SP)	;ALSO SAVE LOW ADDRESS FOR COMPARE
   494	000322'	060216				ADD	R2,(SP)		;COMPUTE FINAL TRANSFER ADDRESS
   495	000324'	022605				CMP	(SP)+,R5	;VERIFY LOW ADDRESS
   496	000326'					ERR HI,<LOAD REQUEST ON OR ABOVE LOADER>,MOPFER
   497		   001			.ENDC
   498		   000			.ENDC
   499	000330'				60$:
   500	000330'					CALL	DTERCA		;RECEIVE THEM BYTES
   501	000334'	003410				BLE	80$		;ALL DONE-- DO ANOTHER REQUEST
   502					;
   503					; READ TRANSFER ADDRESS INTO LODADR
   504					;
   505	000336'	012700	000656			MOV	#LODADR-MOP,R0	;POINT BACK TO VIRTUAL MEMORY
   506	000342'					CALL	DTERCV		;READ THE ADDRESS INTO VIRTUAL MEMORY
   507	000346'				70$:
   508		   001			.IF DF S$$CLD
   509	000346'	126727	000404	000002		CMPB	MOPFNC,#M.PMLD	;MEMORY LOAD ONLY?
   510	000354'	001005				BNE	90$		;NO-- DO THE TRANSFER
   511					.IFTF
   512					;
   513					; SEND REQUEST FOR NEXT MEMORY LOAD SEGMENT TO THE -10
   514					;
   515	000356'				80$:
   516	000356'	012700	000500			MOV	#REQMLD-MOP,R0	;GET ADDRESS OF MOP "REQUEST/ACKNOWLEDGE MEMORY LOAD"
   517	000362'					CALL	DTESND		;SEND IT TO -10
   518					.IFT
   519	000366'	000661				BR	MOPWAT		;AND WAIT FOR ANOTHER REQUEST
   520					;
   521	000370'				90$:
   522					.IFF
   523						CMPB	MOPFNC,#M.PMLD	;MEMORY LOAD ONLY?
   524						BEQ	MOPWAT		;YES-- WAIT FOR NEXT REQUEST
   525		   000			.ENDC
   526					;
   527					; TRANSFER TO ADDRESS NOW IN LODADR.
   528					;
   529		   001			.IF DF M$$CHK
   530	000370'	005767	000366			TST	LODADR+2	;MUST HAVE A VIRTUAL (16-BIT) TRANSFER ADDRESS
   531	000374'					ERR NE,<TRANSFER ADDRESS ABOVE 32K>,,95$
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP	DNMAC X24.07-563  25-JAN-83  09:51  PAGE 5-3
DTEMOP.MAC    04-JAN-83 11:15		MOP PROCESSOR

   532		   000			.ENDC
   533		   001			.IF DF L$$DPR
   534						MOV	PC,R4		;  DATA FROM THE
   535						ADD	#<PRGDAT-.>,R4	;  RECEIVE BUFFER
   536						MOV	PARMAD,R5	;  TO THE STANDARD
   537						CLR	(R5)+		;CLEAR OUT BINARY AREA
   538						MOV	#6,R0		;CLEAR OUT NODE
   539					110$:	MOV	#20040,(R5)+	;  AND HOST
   540						SOB	R0,110$		;  NAME AREAS
   541					112$:	MOV	PARMAD,R5	;ADDRESS BEGINNING OF STANDARD AREA
   542						TSTB	(R4)		;IF THERE ARE NO MORE PARMS,
   543						BEQ	118$		;  GET OUT OF LOOP
   544						CMPB	(R4),#2		;NODE NUMBER -
   545						BEQ	115$		;  WE'RE POSITIONED RIGHT NOW
   546						TST	(R5)+		;PAST BINARY AREA
   547						DECB	(R4)		;IF NOT
   548						BEQ	115$		;  NODE NAME,
   549						ADD	#6,R5		;  BUMP TO HOST AREA
   550					115$:	INCB	(R4)+		;PAST PARM TYPE (MAKE IT NON-ZERO)
   551						MOVB	(R4)+,R0	;PICK UP PARM LENGTH
   552					116$:	MOVB	(R4)+,(R5)+	;MOVE PARM TO
   553						SOB	R0,116$		;  STANDARD AREA
   554						BR	112$		;GO DO NEXT PARM
   555		   000			.ENDC
   556					;
   557
   558	000376'	010106			118$:	MOV	R1,SP		;COPY DTE STATUS ADDRESS
   559	000400'	010100				MOV	R1,R0		;  (ALSO TO HERE)
   560		   001			.IF DF L$$DPR
   561						MOVB	PRGDAT,R1	;IF THERE IS
   562						BEQ	120$		;  PROGRAM DATA,
   563						MOV	#-1,R1		;  FLAG THE FACT
   564						MOV	R1,R2		;  IN R1 AND R2
   565		   000			.ENDC
   566		   001			.IF DF M$$MGE
   567					120$:	ADD	#DEXWD3-CSTAT,SP ;POINT TO DEXWD3, DEXWD2 FOR CODE
   568						MOV	(PC)+,(SP)+	;(DEXWD3)
   569					CLRSR0:	 CLR	(SP)		;TURN OFF SEGMENTATION
   570						MOV	(PC)+,(SP)+	;(DEXWD2)
   571						 JMP	(R3)		;TRANSFER TO LOADED CODE.
   572						MOV	LODADR,R3	;SET TRANSFER ADDRESS
   573						MOV	#SR0,SP		;ALSO WHERE TO DISABLE SEGMENTATION
   574						DEBUG HALT,<TRANSFER ADDRESS READY>
   575						JMP	DEXWD3-CSTAT(R0) ;NOW TURN OFF SEGMENTATION AND TRANSFER.
   576					.IFF
   577	000402'					DEBUG HALT,<TRANSFER ADDRESS READY>
   578	000402'	000177	000352			JMP	@LODADR		;TRANSFER TO IT.
   579		   000			.ENDC
   580		   001			.IF DF E$$CHK!D$$CHK!M$$CHK
   581					;
   582					; MOP FORMAT ERROR-- READ REST OF MOP MESSAGE AND REQUEST PROGRAM AGAIN
   583					;
   584		   002			.IF DF E$$CHK!M$$CHK
   585	000406'				MOPFER:
   586	000406'	012702	000001			MOV	#1,R2		;READ ONE BYTE
   587	000412'	012700	000754'			MOV	#RCVMSG,R0	; INTO RCVMSG
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP	DNMAC X24.07-563  25-JAN-83  09:51  PAGE 5-4
DTEMOP.MAC    04-JAN-83 11:15		MOP PROCESSOR

   588	000416'					CALL	DTERCV		;  FROM -10
   589	000422'	003371				BGT	MOPFER		;NOT DONE-- READ ANOTHER
   590					;	BR	MOPERR		;DONE-- ABORT
   591		   001			.ENDC
   592					;
   593					; ERROR-- BACK TO REQUEST PROGRAM AGAIN
   594					;
   595	000424'				MOPERR:
   596		   002			.IF LT <<.-MOP>-256.>
   597	000424'	000626				BR	MOP		;SEND REQUEST PROGRAM
   598					.IFF
   599						JMP	MOP		;SEND REQUEST PROGRAM
   600		   001			.ENDC
   601		   000			.ENDC
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP	DNMAC X24.07-563  25-JAN-83  09:51  PAGE 6
DTEMOP.MAC    04-JAN-83 11:15		MOP PROCESSOR

   603
   604						.SBTTL	DTE SUBROUTINES
   605					;
   606					; DTESND -- SEND MESSAGE TO DTE20 FROM VIRTUAL
   607					;	R0 --	ADDRESS WITHIN MOVED CODE TO SEND DATA FROM (BYTE COUNT WORD)
   608					;	R1 --	VIRTUAL ADDRESS OF DTE20 "CSTAT" REGISTER
   609					;	R4 --	PHYSICAL ADDRESS OF MOVED CODE (BITS 17-16, IN BITS 15-14)
   610					;	R5 --	PHYSICAL ADDRESS OF MOVED CODE (BITS 15-0)
   611					;
   612	000426'				DTESND:
   613	000426'	012711	050000			MOV	#DON10C!ERR10C,(R1) ;RESET TO10DN AND TO10ER
   614	000432'	012761	000001	000002		MOV	#TO10BM,DIAG3-CSTAT(R1) ;SET TO -10 BYTE MODE
   615		   001			.IF DF M$$MGE
   616						MOV	R4,DLYCNT-CSTAT(R1) ;SET MEMORY EXTENSION BITS
   617		   000			.ENDC
   618		   001			.IF DF D$$CHK
   619	000440'	010046				MOV	R0,-(SP)	;SAVE ADDRESS
   620					.IFTF
   621	000442'	060500				ADD	R5,R0		;CONVERT TO PHYSICAL
   622	000444'	010061	177764			MOV	R0,TO10AD-CSTAT(R1) ;SET ADDRESS OF MOP MESSAGE
   623					.IFT
   624	000450'	062700	000002			ADD	#2,R0		;DON'T FORGET THE BYTE COUNT!
   625	000454'	060716				ADD	PC,(SP)		;CONVERT OFFSET WITHIN "MOP" TO VIRTUAL
   626	000456'	062716	177424			ADD	#MOP-.,(SP)	; . .
   627	000462'	063600				ADD	@(SP)+,R0	;UPDATE ADDRESS BY BYTE COUNT
   628		   000			.ENDC
   629	000464'	012711	002400			MOV	#TO10DB!INT11C,(R1) ;RING -10'S DOORBELL WITH THIS MESSAGE
   630					;
   631					; WAIT FOR TO -10 TRANSFER
   632					;
   633	000470'				10$:
   634		   001			.IF DF E$$CHK
   635	000470'	032711	120000			BIT	#TO10DN!TO10ER,(R1) ;DONE OR ERROR?
   636	000474'	001775				BEQ	10$		;NOT DONE OR ERROR-- WAIT
   637	000476'					ERR PL,<TO -10 TRANSFER ERROR>
   638					.IFF
   639						TST	(R1)		;DONE?
   640						BPL	10$		;NO-- WAIT
   641		   000			.ENDC
   642		   001			.IF DF D$$CHK
   643	000500'	020061	177764			CMP	R0,TO10AD-CSTAT(R1) ;TRANSFER REQUESTED NUMBER OF BYTES?
   644	000504'					ERR NE,<TO -10 TRANSFER WRONG NUMBER OF BYTES>
   645		   000			.ENDC
   646	000506'					RETURN			;RETURN FROM DTESND
   647					;
   648					; DTERCV -- RECEIVE MESSAGE FROM DTE20 VIRTUAL
   649					;	R0 --	ADDRESS WITHIN MOVED CODE TO STORE DATA
   650					;	R1 --	VIRTUAL ADDRESS OF DTE20 "CSTAT" REGISTER
   651					;	R2 --	BYTE COUNT TO BE RECEIVED
   652					;	R3 --	GLOBAL BYTE COUNT
   653					;	R4 --	PHYSICAL ADDRESS OF MOVED CODE (BITS 17-16, IN BITS 15-14)
   654					;	R5 --	PHYSICAL ADDRESS OF MOVED CODE (BITS 15-0)
   655					;
   656	000510'				DTERCV:
   657		   001			.IF DF M$$MGE
   658						MOV	R4,DLYCNT-CSTAT(R1) ;SET EXTENDED MEMORY BITS
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP	DNMAC X24.07-563  25-JAN-83  09:51  PAGE 6-1
DTEMOP.MAC    04-JAN-83 11:15		DTE SUBROUTINES

   659		   000			.ENDC
   660	000510'	060500				ADD	R5,R0		;MAKE PHYSICAL ADDRESS
   661					;
   662					; DTERCA -- RECEIVE FROM DTE20
   663					;	R0 --	PHYSICAL RECEIVE ADDRESS (BITS 15-0)
   664					;	R1 --	VIRTUAL ADDRESS OF DTE20 "CSTAT" REGISTER
   665					;	R2 --	BYTE COUNT TO BE RECEIVED
   666					;	R3 --	GLOBAL BYTE COUNT
   667					;
   668	000512'				DTERCA:
   669	000512'	010061	177766			MOV	R0,TO11AD-CSTAT(R1) ;SET ADDRESS
   670	000516'	060200				ADD	R2,R0		;UPDATE ADDRESS
   671		   001			.IF DF T$$32K
   672						BCC	10$		;NO BOUNDARY-- OK
   673						BEQ	10$		;EXACTLY A BOUNDARY-- OK ALSO
   674					;
   675					; THE REQUESTED TRANSFER CROSSES A 32K BOUNDARY-- WE MUST
   676					;  DO THE TRANSFER IN TWO PIECES
   677					;
   678						MOV	R0,-(SP)	;SAVE RESIDUAL COUNT ABOVE BOUNDARY
   679						SUB	R0,R2		;CHANGE THIS COUNT TO JUST BELOW BOUNDARY
   680						CLR	R0		;SET FINAL ADDRESS= 0
   681						CALL	10$		;DO THE FIRST PART OF THE TRANSFER
   682						MOV	(SP)+,R2	;GET RESIDUAL COUNT
   683						MOV	R2,R0		;THAT'S FINAL ADDRESS, ALSO
   684					10$:
   685		   000			.ENDC
   686	000520'	012711	000101			MOV	#DON11C!ERR11C,(R1) ;RESET TO11DN AND TO11ER
   687	000524'	160203				SUB	R2,R3		;LAST TRANSFER?
   688	000526'	001403				BEQ	20$		;YES-- SET TO11IB TO INDICATE "DONE" TO BOTH PROCESSORS
   689		   001			.IF DF E$$CHK
   690	000530'					ERR LT,<TO -11 MESSAGE TO SHORT>
   691		   000			.ENDC
   692	000532'	052702	100000			BIS	#TO11IB,R2	;CLEAR TO11IB (WHEN WE NEG R2)
   693	000536'				20$:
   694	000536'	005402				NEG	R2		;NEGATE BYTE COUNT
   695	000540'	042702	050000			BIC	#^C<TO11IB!TO11BM!TO11CM>,R2 ;CLEAR UNUSED BITS
   696		   001			.IF DF E$$CHK
   697	000544'					ERR EQ,<TO -11 ZERO BYTE TRANSFER>
   698		   000			.ENDC
   699	000546'	010261	177762			MOV	R2,TO11BC-CSTAT(R1) ;START TRANSFER
   700					;
   701					; WAIT FOR TO -11 TRANSFER
   702					;
   703	000552'				30$:
   704		   001			.IF DF E$$CHK
   705	000552'	132711	000202			BITB	#TO11DN!TO11ER,(R1) ;DONE OR ERROR?
   706	000556'	001775				BEQ	30$		;NOT DONE OR ERROR-- WAIT
   707	000560'					ERR PL,<TO -11 TRANSFER ERROR>
   708					.IFF
   709						TSTB	(R1)		;DONE?
   710						BPL	30$		;NO-- WAIT
   711		   000			.ENDC
   712		   001			.IF DF D$$CHK
   713	000562'	020061	177766			CMP	R0,TO11AD-CSTAT(R1) ;TRANSFER PROPER NUMBER OF BYTES?
   714	000566'					ERR NE,<TO -11 TRANSFER WRONG NUMBER OF BYTES>
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP	DNMAC X24.07-563  25-JAN-83  09:51  PAGE 6-2
DTEMOP.MAC    04-JAN-83 11:15		DTE SUBROUTINES

   715		   000			.ENDC
   716		   001			.IF DF T$$32K
   717						TST	R0		;THIS TRANSFER CROSS A 32K BOUNDARY?
   718						BNE	40$		;NO-- ALL OK
   719						ADD	#BUSA16,DLYCNT-CSTAT(R1) ;YES-- BUMP ADDRESS BITS
   720					40$:
   721		   000			.ENDC
   722	000570'	010302				MOV	R3,R2		;GET REMAINING COUNT, AND TST IT
   723	000572'					RETURN			;RETURN FROM DTERCV/DTERCA
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP	DNMAC X24.07-563  25-JAN-83  09:51  PAGE 7
DTEMOP.MAC    04-JAN-83 11:15		DTE SUBROUTINES

   725
   726						.SBTTL	DATA
   727					;
   728					; MOP MESSAGE "REQUEST PROGRAM"
   729					;
   730	000574'				REQOPS:
   731	000574'	000004				.WORD	REQOPZ		;(2 BYTES) BYTE COUNT
   732	000576'	   010				.BYTE	M.PRPR		;(0) FUNCTION = REQUEST PROGRAM
   733	000577'	   024				.BYTE	20.		;(1) DEVICE TYPE = DTE20/11
   734	000600'	   001				.BYTE	1		;(2) STATION ADDRESS = 1
   735		   001			.IF DF S$$CLD
   736	000601'	   001				.BYTE	1		;(3) PROGRAM TYPE = TERTIARY LOADER
   737					.IFF
   738						.BYTE	2		;(3) PROGRAM TYPE = OPERATING SYSTEM
   739		   000			.ENDC
   740		000004			REQOPZ=	.-REQOPS-2
   741						.EVEN
   742					;
   743					; MOP MESSAGE "REQUEST/ACKNOWLEDGE MEMORY LOAD"
   744					;
   745	000602'				REQMLD:
   746	000602'	000002				.WORD	REQMLZ		;(2 BYTES) BYTE COUNT
   747	000604'	   012				.BYTE	M.PRML		;(0) FUNCTION = REQUEST/ACKNOWLEDGE MEMORY LOAD
   748	000605'	   000			LODNUM:	.BYTE	0		;(1) LOAD NUMBER (START AT 0)
   749		000002			REQMLZ=	.-REQMLD-2
   750					;
   751					; LOAD PARAMETER BLOCK FOR PROGRAM
   752					;
   753	000606'	000000			PARMAD:	.WORD	0		;VIRTUAL ADDRESS OF STANDARD PROGRAM DATA AREA
   754	000610'				PRGDAT:
   755	000610'	   000				.BYTE	0		;FIRST BYTE INDICATES EXISTENCE
   756	000611'					FIT DTEMOP,M$$XSZ,<CODE>
   (1)	000611'	000167			 .PRINT <M$$XSZ-<.-DTEMOP>> ; FREE FOR CODE
   757	000611'	000143				.BLKB	100.-1		;LOAD PARAMETERS FOR PROGRAM
   758					;
   759					; RECEIVED MOP MESSAGE
   760					;
   761						.EVEN
   762	000754'				RCVMSG:
   763	000754'	000001			BYTCNT:	.BLKW	1		;BYTE COUNT
   764	000756'	000001			MOPFNC:	.BLKB	1		;MOP FUNCTION
   765	000757'	000001			RCVLDN:	.BLKB	1		;LOAD NUMBER RECEIVED
   766	000760'	000004			LODADR:	.BLKB	4		;LOAD ADDRESS/TRANSFER ADDRESS
   767					;
   768					; STACK
   769					;
   770						.EVEN
   771	000764'	000004				.BLKW	4
   772	000774'				STACK:
   773					;
   774	000774'					FIT MOP,M$$XSZ,<MOVED CODE>
   (1)	000774'	000106			 .PRINT <M$$XSZ-<.-MOP>> ; FREE FOR MOVED CODE
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP	DNMAC X24.07-563  25-JAN-83  09:51  PAGE 8
DTEMOP.MAC    04-JAN-83 11:15		DATA

   776
   777						.SBTTL	END
   778	000774'				PASS2:
   779		000000'				.END	DTEMOP
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP	DNMAC X24.07-563  25-JAN-83  09:51  PAGE 9
DTEMOP.MAC    04-JAN-83 11:15		CROSS REFERENCE TABLE -- USER SYMBOLS

BIT0  = 000001        	  152#	  250	  252
BIT1  = 000002        	  153#	  249
BIT10 = 002000        	  162#	  245
BIT11 = 004000        	  163#	  244
BIT12 = 010000        	  164#	  243
BIT13 = 020000        	  165#	  229	  242
BIT14 = 040000        	  166#	  219	  241
BIT15 = 100000        	  167#	  218	  228	  240
BIT2  = 000004        	  154#
BIT3  = 000010        	  155#
BIT4  = 000020        	  156#
BIT5  = 000040        	  157#	  190
BIT6  = 000100        	  158#	  238	  248
BIT7  = 000200        	  159#	  247
BIT8  = 000400        	  160#	  246
BIT9  = 001000        	  161#
BUSA16= 040000        	  219#
BUSA17= 100000        	  218#
BYTCNT  000754R       	  413	  763#
CSTAT = 000034        	  239#	  341*	  383*	  614*	  622*	  643	  669*	  699*	  713
DEXWD1= 000006        	  223#
DEXWD2= 000004        	  222#
DEXWD3= 000002        	  221#
DIAG1 = 000030        	  236#
DIAG2 = 000032        	  237#	  383*
DIAG3 = 000036        	  251#	  614*
DLYCNT= 000000        	  217#	  341*
DLYMSK= 037777        	  220#
DON10C= 040000        	  241#	  613
DON11C= 000100        	  248#	  686
DRESET= 000100        	  238#	  383
DTEMOP  000000R       	  270#	  756	  779
DTERCA  000512R       	  415	  452	  500	  668#
DTERCV  000510R       	  408	  506	  588	  656#
DTESND  000426R       	  395	  517	  612#
D$$BUG= ****** U      	  271	  381	  425	  435	  492	  496	  531	  577	  637	  644	  690	  697	  707
			  714
D$$CHK= 000000        	   77#	  382	  580	  618	  642	  712
ERR10C= 010000        	  243#	  613
ERR11C= 000001        	  250#	  686
E$$CHK= 000000        	   76#	  382	  416	  580	  584	  634	  689	  696	  704
INT11C= 002000        	  245#	  629
KISAR0= 172340        	  205#
KISAR1= 172342        	  206#
KISAR2= 172344        	  207#
KISAR3= 172346        	  208#
KISAR4= 172350        	  209#
KISAR5= 172352        	  210#
KISAR6= 172354        	  211#
KISAR7= 172356        	  212#
KISDR0= 172300        	  196#
KISDR1= 172302        	  197#
KISDR2= 172304        	  198#
KISDR3= 172306        	  199#
KISDR4= 172310        	  200#
KISDR5= 172312        	  201#
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP	DNMAC X24.07-563  25-JAN-83  09:51  PAGE 9-1
DTEMOP.MAC    04-JAN-83 11:15		CROSS REFERENCE TABLE -- USER SYMBOLS

KISDR6= 172314        	  202#
KISDR7= 172316        	  203#
LODADR  000760R       	  446	  458	  491	  505	  530	  578	  766#
LODNUM  000605R       	  386*	  434	  439*	  748#
L$$DPR= ****** U      	  387	  533	  560
MOP     000102R       	  357	  380#	  394	  405	  505	  516	  596	  597	  626	  774
MOPERR  000424R       	  531	  595#	  637	  644	  690	  697	  707	  714
MOPFER  000406R       	  425	  435	  492	  496	  585#	  589
MOPFNC  000756R       	  420	  444	  454	  509	  764#
MOPWAT  000132R       	  399#	  401	  519
M$$CHK= 000000        	   78#	  382	  490	  529	  580	  584
M$$MGE= ****** U      	  297	  459	  566	  615	  657
M$$XSZ= 001000        	   85#	  331	  356	  756	  774
M.PDAP= 000020        	  180#
M.PEAM= 000022        	  181#
M.PEMM= 000006        	  175#
M.PLBT= 000030        	  183#
M.PLDP= 000024        	  182#	  422	  444
M.PMDP= 000016        	  179#
M.PMLD= 000002        	  173#	  424	  454	  509
M.PMLT= 000000        	  172#
M.PMMR= 000014        	  178#
M.PRMD= 000004        	  174#
M.PRML= 000012        	  177#	  747
M.PRPR= 000010        	  176#	  732
PARMAD  000606R       	  355*	  356*	  753#
PASS2   000774R       	  756	  774	  778#
PRGDAT  000610R       	  446	  754#
PR7   = 000340        	  190#	  280
PS    = 177776        	  189#
RCVLDN  000757R       	  431	  765#
RCVMSG  000754R       	  405	  587	  762#
REQMLD  000602R       	  516	  745#	  749
REQMLZ= 000002        	  746	  749#
REQOPS  000574R       	  394	  730#	  740
REQOPZ= 000004        	  731	  740#
SR0   = 177572        	  194#
STACK   000774R       	  295	  360	  385	  772#
SWR   = 177570        	  188#
S$$CLD= 000000        	   20#	   24	   25	  508	  735
TENAD1= 000010        	  224#
TENAD2= 000012        	  225#
TO10AD= 000020        	  231#	  622*	  643
TO10BC= 000014        	  226#
TO10BM= 000001        	  252#	  614
TO10DB= 000400        	  246#	  629
TO10DN= 100000        	  240#	  635
TO10DT= 000024        	  233#
TO10ER= 020000        	  242#	  635
TO11AD= 000022        	  232#	  669*	  713
TO11BC= 000016        	  227#	  699*
TO11BM= 020000        	  229#	  695
TO11CM= 007777        	  230#	  695
TO11DB= 004000        	  244#	  288	  400
TO11DN= 000200        	  247#	  705
TO11DT= 000026        	  234#
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP	DNMAC X24.07-563  25-JAN-83  09:51  PAGE 9-2
DTEMOP.MAC    04-JAN-83 11:15		CROSS REFERENCE TABLE -- USER SYMBOLS

TO11ER= 000002        	  249#	  705
TO11IB= 100000        	  228#	  692	  695
T$$RLD= ****** U      	   24	   26	   79	  272
T$$32K= ****** U      	  671	  716
.     = 000774R       	  385	  596	  626	  740	  749	  756	  757#	  763#	  764#	  765#	  766#	  771#	  774
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP	DNMAC X24.07-563  25-JAN-83  09:51  PAGE 10
DTEMOP.MAC    04-JAN-83 11:15		CROSS REFERENCE TABLE -- MACRO NAMES

CALL	   91#	  395	  408	  415	  452	  500	  506	  517	  588
DEBUG	  102#	  271	  381	  425	  435	  492	  496	  531	  577	  637	  644	  690	  697	  707	  714
ERR	  113#	  425	  435	  492	  496	  531	  637	  644	  690	  697	  707	  714
FIT	  139#	  756	  774
RETURN	   95#	  646	  723


. ABS.  000000     000	   CON   RW    ABS   LCL   I  
        000774     001	   OVR   RO    REL   GBL   D  


 ERRORS DETECTED:  0
 DEFAULT GLOBALS GENERATED:  0

 DTEMPS,DTEMPS/CRF=DTEMPS,DTEMOP
 RUN-TIME: 1 1 .2 SECONDS
 RUN-TIME RATIO: 7/3=2.2
 CORE USED:  6K  (11 PAGES)