File: RES50D.LS of Disk: V50/Source/Source-Listing-MAC-1
(Source file text) 

/RESOVD - OVERLAY DRIVER FOR RES  MACREL-V2C  WED 10-JUN-87  PAGE 1
                                                 FILE # 1

   1			/RESOVD - OVERLAY DRIVER FOR RES
   2			/
   3			/
   4			/
   5			/
   6			/
   7			/
   8			/
   9			/
  10			/
  11			/COPYRIGHT  (C)  1977,1978 BY DIGITAL EQUIPMENT CORPORATION
  12			/		 AND 1979  BY DATAPLAN GMBH
  13			/
  14			/
  15			/
  16			/
  17			/
  18			/
  19			/
  20			/
  21			/
  22			/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE
  23			/AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
  24			/CORPORATION.  DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY
  25			/FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT.
  26			/
  27			/THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER
  28			/UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED
  29			/(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH
  30			/SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL.
  31			/
  32			/DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE
  33			/OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY
  34			/DIGITAL.
  35			/
  36			/
  37			/
  38			/
  39			/
  40			/
  41			/
  42			/
  43			/
  44			/
/RESOVD - OVERLAY DRIVER FOR RES  MACREL-V2C  WED 10-JUN-87  PAGE 2
                                                 FILE # 1

  45			
  46			/OVERLAY DRIVER
  47			/FOR LINKER PROGRAM MODULES
  48			/VERSION=V4A
  49			
  50			
  51			/THIS SECT IS TWO LOCATIONS AND CONTAINS THE TRANSFER VECTOR TO SWAPER
  52			/AND A FLAG THAT INDICATES WHETHER A JMP (1) OR JMS (0) WAS PERFORMED
  53			/TO THE TRANSFER VECTOR
  54			
  55			/	.SECT	XFERV,Z
  56			/	0			/FLAG, 1=JMP, 0=JMS
  57			/	SWAPER			/TRANSFER VECTOR TO SWAP ROUTINE
  58			
  59			/THIS IS THE MAIN DRIVER SECTION
  60			
  61		0000  		.RSECT	SWAPER
  62				.GLOBAL	SWPTAB,TRANVC
  63			
  64				.ZTERNAL XFERV
  65		0001  		FIELD	1
  66			
  67	 10000	6401  	SWAP,	6401			/VERSION NUMBER
  68	 10001	3365  		DCA	AC		/SAVE CALLING AC
  69	 10002	7004  		RAL
  70	 10003	3366  		DCA	LINK		/AND LINK
  71	 10004	6214  		RDF			/GET CALLING DF
  72	 10005	1377  		TAD	(CDF		/FORM CDF
  73	 10006	5346  	SWAP0,	JMP	ONCE		/DO ONCE ONLY CODE - REPLACED BY DCA EXIT
  74	 10007	6201 *		CDF	.		/CHANGE TO THIS DATA FIELD
  75	 10010	1600  		TAD I	SWAP		/GET OVERLAY,LEVEL,FIELD
  76	 10011	3360  		DCA	BINDAT		/SAVE
  77	 10012	2200  		ISZ	SWAP		/BUMP POINTER
  78	 10013	1600  	S1600,	TAD I	SWAP		/GET SUBROUTINE ADDRESS
  79	 10014	3361  		DCA	XITLOC		/SAVE
  80	 10015	1360  		TAD	BINDAT		/FORM CDF TO CALLED SUBROUTINE
  81	 10016	0376  		AND	(7
  82	 10017	7104  		RAL CLL
  83	 10020	7006  		RTL
  84	 10021	1377  		TAD	(CDF
  85	 10022	3331  		DCA	SWAP1A		/SAVE
  86	 10023	1331  		TAD	SWAP1A		/FORM CIF TO CALLED SUBROUTINE
  87	 10024	7001  		IAC
  88	 10025	3344  		DCA	EXIT+1		/SAVE FOR EXIT
/RESOVD - OVERLAY DRIVER FOR RES  MACREL-V2C  WED 10-JUN-87  PAGE 3
                                                 FILE # 1

  89			/LOAD OVERLAY OF CALLED SUBROUTINE
  90			
  91	 10026	1360  	LOAD,	TAD	BINDAT
  92	 10027	0213  		AND	S1600		/EXTRACT LEVEL OF CALLED SUBROUTINE
  93	 10030	7002  		BSW
  94	 10031	7104  		CLL RAL			/5 RIGHT
  95	 10032	3362  		DCA	PNTR		/SAVE
  96	 10033	1362  		TAD	PNTR
  97	 10034	1375  		TAD	(SWPTAB		/COMPUTE ENTRY INTO SWAP TABLE
  98	 10035	3357  		DCA	PFLD		/POINTS TO FIELD OF OVERLAY
  99	 10036	1362  		TAD	PNTR		/COMPUTE ENTRY INTO CURRENT OVERLAY TABLE
 100	 10037	7112  		RTR CLL
 101	 10040	1374  		TAD	(CURTAB
 102	 10041	3362  		DCA	PNTR
 103	 10042	1360  		TAD	BINDAT		/EXTRACT DESIRED OVERLAY NUMBER
 104	 10043	0373  		AND	(171		/REALLY 170 BUT 171=-7607
 105	 10044	7110  		RAR CLL			/THROW AWAY LEAST SIGNIFICANT
 106	 10045	7112  		RTR CLL			/RIGHT 3
 107	 10046	7041  		CIA			/NEGATE
 108	 10047	3363  		DCA	TEMP
 109	 10050	1363  		TAD	TEMP
 110	 10051	1762  		TAD I	PNTR		/COMPARE WITH CURRENT OVERLAY NUMBER FOR LEVEL
 111	 10052	7650  		SNA CLA			/SAME?
 112	 10053	5322  		JMP	SWAP1		/YES, NO READING NEEDED
 113	 10054	1363  	LOAD1,	TAD	TEMP		/NO, SET TO NEW
 114	 10055	7041  		CIA
 115	 10056	3762  		DCA I	PNTR		/OVERLAY NUMBER
 116	 10057	1757  		TAD I	PFLD
 117	 10060	3360  		DCA	BINDAT		/SAVE FIELD OF OVERLAY
 118	 10061	2357  		ISZ	PFLD		/POINT AT ADDRESS
 119	 10062	1757  		TAD I	PFLD
 120	 10063	3317  		DCA	REDADD		/SAVE IN CALL LOCATION
 121	 10064	2357  		ISZ	PFLD		/POINT AT RELATIVE BLOCK #
 122	 10065	1757  		TAD I	PFLD
 123	 10066	3320  		DCA	REDBLK		/SAVE TEMPORARILY
 124	 10067	2357  		ISZ	PFLD		/POINT AT OVERLAY LENGTH
 125	 10070	1363  		TAD	TEMP		/TEST OVERLAY NUMBER
 126	 10071	7650  		SNA CLA			/0?
 127	 10072	5302  		JMP	LOAD2		/YES, NO MULTIPLICATION NEEDED
 128	 10073	1757  		TAD I	PFLD		/BLOCK NUMBER = (LENGTH OF OVERLAY)
 129	 10074	7001  		IAC			/TIMES (THE NUMBER OF THE OVERLAY)
 130	 10075	7110  		CLL RAR			/CONVERT PAGES TO BLOCKS
 131	 10076	3316  		DCA	REDCNT		/SAVE FOR MULTIPLY
 132	 10077	1316  		TAD	REDCNT		/MULTIPLY BLOCK LENGTH
 133	 10100	2363  		ISZ	TEMP		/BY OVERLAY NUMBER
 134	 10101	5277  		JMP	.-2
/RESOVD - OVERLAY DRIVER FOR RES  MACREL-V2C  WED 10-JUN-87  PAGE 4
                                                 FILE # 1

 135	 10102	1320  	LOAD2,	TAD 	REDBLK		/PLUS (RELATIVE BLOCK OF LEVEL)
 136	 10103	1346  		TAD	STRBLK		/PLUS (STARTING BLOCK OF PROGRAM)
 137	 10104	3320  		DCA	REDBLK		/SAVE IN CALL LOCATION
 138	 10105	1360  		TAD	BINDAT		/GET FIELD
 139	 10106	0376  		AND	(7		/MASK
 140	 10107	7112  		CLL RTR
 141	 10110	7012  		RTR			/POSITION
 142	 10111	1757  		TAD I	PFLD		/GET LENGTH AGAIN
 143	 10112	7002  		BSW
 144	 10113	3316  		DCA	REDCNT		/FORM CONTROL WORD
 145	 10114	6202  		CIF	0
 146	 10115	4764  		JMS I	RESHAN		/CALL RESIDENT HANDLER TO READ IN OVERLAY
 147	 10116	7756  	REDCNT,	7756		/FUNCTION CONTROL WORD (POINTS TO MREAD-1 FOR "ONCE"
 148	 10117	7747  	REDADD,	7747		/BUFFER ADDRESS (POINTS TO SOFSET FOR "ONCE"
 149	 10120	0000  	REDBLK,	0		/STARTING BLOCK NUMBER
 150	 10121	7402  		HLT		/ERROR RETURN ADDRESS
 151			
 152	 10122	1000 *	SWAP1,	TAD	XFERV		/GET JMP-JMS FLAG
 153	 10123	7640  		SZA CLA			/SET?
 154	 10124	5337  		JMP	SWAP2		/YES, EXECUTE A JMP
 155	 10125	7346  		CLA CLL CMA RTL		/-3
 156	 10126	1200  		TAD	SWAP		/BACK UP TO CALLER'S PC
 157	 10127	3200  		DCA	SWAP
 158	 10130	1600  		TAD I	SWAP
 159	 10131	0000  	SWAP1A,	0			/CDF TO CALLED SUBROUTINE
 160	 10132	3761  		DCA I	XITLOC		/SAVE IN CALLED SUBROUTINE
 161	 10133	2361  		ISZ	XITLOC		/BUMP TRANSFER ADDRESS
 162	 10134	6201 *		CDF	.
 163	 10135	1372  		TAD	(ISZ XFERV
 164	 10136	3600  		DCA I	SWAP		/SET BACK UP ENTRY IN XFER VECTOR TABLE
 165	 10137	3000 *	SWAP2,	DCA	XFERV		/CLEAR FLAG
 166	 10140	1366  		TAD	LINK		/RESTORE LINK AND AC
 167	 10141	7110  		RAR CLL
 168	 10142	1365  		TAD	AC
 169	 10143	0000  	EXIT,	0			/SET DF TO CALLING FIELD
 170	 10144	0000  		0			/SET IF TO CALLED FIELD
 171	 10145	5761  		JMP I	XITLOC		/GO TO CALLED SUBROUTINE
 172			
/RESOVD - OVERLAY DRIVER FOR RES  MACREL-V2C  WED 10-JUN-87  PAGE 5
                                                 FILE # 1

 173			/VARIABLE LOCATIONS
 174			/SOME OF THE FOLLOWING LOCATIONS CONTAIN
 175			/ONCE ONLY CODE TO SET UP STARTING BLOCK
 176			/AND CHECK THAT FILE CAME FROM SYS:
 177		0146 *	CURTAB=.		/CURRENT OVERLAY IN LEVEL TABLE (8 ENTRIES)
 178		0146 *	STRBLK=.		/ENTRY 0 IS USED TO HOLD STARTING BLOCK OF FILE
 179	 10146	3343  	ONCE,	DCA	EXIT		/SAVE CALLING FIELD
 180							/ALSO ENTRY 0
 181	 10147	1346  		TAD	.-1		/SET UP SO WON'T BE EXECUTED AGAIN
 182							/ALSO ENTRY 1
 183	 10150	3206  		DCA	SWAP0
 184							/ALSO ENTRY 2
 185	 10151	6201  		CDF	0
 186							/ALSO ENTRY 3
 187	 10152	1717  		TAD I	REDADD		/GET STARTING BLOCK FROM "SOFSET"
 188							/ALSO ENTRY 4
 189	 10153	3346  		DCA	STRBLK		/SAVE
 190							/ALSO ENTRY 5
 191	 10154	1716  		TAD I	REDCNT		/GET RESIDENT? ENTRY POINT
 192							/ALSO ENTRY 6
 193	 10155	3364  		DCA	RESHAN		/SAVE
 194							/ALSO ENTRY 7
 195	 10156	1364  		TAD	RESHAN		/CHECK ENTRY IS RESIDENT
 196			PFLD,				/POINTS TO SWPTAB
 197	 10157	1373  		TAD	(-7607
 198			BINDAT,				/CONTAINS OVERLAY,LEVEL,FIELD OF DESIRED SUBROUTINE
 199	 10160	7630  		SZL CLA			/RESIDENT ?
 200			XITLOC,				/CONTAINS LOCATION TO GO TO IN DESIRED SUBROUTINE
 201	 10161	5207  		JMP	SWAP0+1		/YES, OK
 202			PNTR,				/POINTS INTO CURTAB
 203	 10162	7402  		HLT			/NO, ERROR
 204			TEMP,				/TEMP STORAGE
 205	 10163	5362  		JMP	.-1		/DON'T ALLOW CONTINUE
 206			
 207	 10164	7607  	RESHAN,	7607			/OR SOME OTHER RESIDENT ENTRY POINT
 208	 10165	0000  	AC,	0			/SAVED AC
 209	 10166	0000  	LINK,	0			/SAVED LINK
 210			
	------
	 10172	2000 *
	 10173	0171  
	 10174	0146 +
	 10175	0200 +
	 10176	0007  
	 10177	6201  
 211		0200  		PAGE
/RESOVD - OVERLAY DRIVER FOR RES  MACREL-V2C  WED 10-JUN-87  PAGE 6
                                                 FILE # 1

 212			
 213			/THIS AREA CONTAINS OVERLAY DATA FOR MAIN AND THE 7 LEVELS
 214			/THE FORMAT OF EACH ENTRY IS:
 215			/WORD1:	FIELD OF LEVEL
 216			/WORD2:	ADDRESS OF LEVEL
 217			/WORD3:	RELATIVE BLOCK OF 1ST OVERLAY IN LEVEL
 218			/WORD4:	LENGTH OF THE LEVEL (ANY AND ALL OVERLAYS-EACH)
 219			/	(ALL OVERLAYS IN A LEVEL ARE THE SAME LENGTH)
 220			
 221			SWPTAB,
 222			
 223		0240  		*.+40
 224			
 225			/THIS AREA CONTAINS THE TRANSFER VECTORS FOR EACH ENTRY POINT
 226			/IN ALL THE OVERLAYS IN ALL THE LEVELS
 227			/ITS SIZE SHOULD BE MODIFIED BY THE USER
 228			/TO FIT THE MAXIMUM NUMBER OF TRANSFER VECTORS NEEDED
 229			/EACH TRANSFER VECTOR OCCUPIES 4 LOCATIONS
 230			/THE TABLE IS INITIALLY SET UP FOR 24(DEC) (30(OCT)) VECTORS
 231			/THE MAXIMUM SIZE THIS TABLE CAN BE IS 3774 (OCT) LOCATIONS FOR
 232			/511 (DEC) (777 (OCT)) VECTORS
 233			/THE FORMAT OF EACH VECTOR ENTRY IS:
 234			/WORD1:	ISZ	XFERV
 235			/WORD2:	JMS I	XFERV+1
 236			/WORD3:	LEVEL/OVERLAY/FIELD
 237			/WORD4:	ADDRESS
 238			
 239			TRANVC,
 240			
 241		0030  		SIZE=24.	/MODIFY THIS LINE TO CHANGE THE SIZE OF THE TABLE
 242						/SET FOR 24(DEC)
 243			
 244		0400  		*SIZE^4+.
 245			
 246			
/RESOVD - OVERLAY DRIVER FOR RES  MACREL-V2C  WED 10-JUN-87  PAGE 7
SYMBOL TABLE

AC	  0165+ SWAPER		
BINDAT	  0160+ SWAPER		
CURTAB	  0146+ SWAPER		
EXIT	  0143+ SWAPER		
FLD: 0	  0200  ASECT		
LINK	  0166+ SWAPER		
LOAD	  0026+ SWAPER		
LOAD1	  0054+ SWAPER		
LOAD2	  0102+ SWAPER		
ONCE	  0146+ SWAPER		
PFLD	  0157+ SWAPER		
PNTR	  0162+ SWAPER		
REDADD	  0117+ SWAPER		
REDBLK	  0120+ SWAPER		
REDCNT	  0116+ SWAPER		
RESHAN	  0164+ SWAPER		
SIZE	  0030			
STRBLK	  0146+ SWAPER		
SWAP	  0000+ SWAPER		
SWAPER	  0400  RSECT		
SWAP0	  0006+ SWAPER		
SWAP1	  0122+ SWAPER		
SWAP1A	  0131+ SWAPER		
SWAP2	  0137+ SWAPER		
SWPTAB	G 0200+ SWAPER		
S1600	  0013+ SWAPER		
TEMP	  0163+ SWAPER		
TRANVC	G 0240+ SWAPER		
XFERV	Z 0***			
XITLOC	  0161+ SWAPER