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

/OVRDRV - OVERLAY DRIVER FOR CCL  MACREL-V2C  TUE 02-JUN-92  PAGE 1
                                                 FILE # 1

   1			/OVRDRV - OVERLAY DRIVER FOR CCL V50
   2			/
   3			/
   4			/
   5			/
   6			/
   7			/
   8			/
   9			/
  10			/
  11			/COPYRIGHT  (C)  1977,1978 BY DIGITAL EQUIPMENT CORPORATION
  12			/		 
  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			/
/OVRDRV - OVERLAY DRIVER FOR CCL  MACREL-V2C  TUE 02-JUN-92  PAGE 2
                                                 FILE # 1

  45			
  46			
  47			
  48			/OVERLAY DRIVER
  49			/FOR LINKER PROGRAM MODULES
  50			/VERSION=V5A
  51			
  52			
  53			/THIS SECT IS TWO LOCATIONS AND CONTAINS THE TRANSFER VECTOR TO SWAPER
  54			/AND A FLAG THAT INDICATES WHETHER A JMP (1) OR JMS (0) WAS PERFORMED
  55			/TO THE TRANSFER VECTOR
  56			
  57			/	.SECT	XFERV,Z
  58			/	0			/FLAG, 1=JMP, 0=JMS
  59			/	SWAPER			/TRANSFER VECTOR TO SWAP ROUTINE
  60			
 163			
 164			/THIS IS THE MAIN DRIVER SECTION
 165			
 166		0000  		.SECT	SWAPER,R
 167				.GLOBAL	SWPTAB,TRANVC
 168			
 169			/	.ZTERNAL XFERV
 170		0001  		FIELD	1
 171			
 172	 10000	6401  	SWAP,	6401			/VERSION NUMBER
 173	 10001	3365  		DCA	AC		/SAVE CALLING AC
 174	 10002	7004  		RAL
 175	 10003	3366  		DCA	LINK		/AND LINK
 176	 10004	6214  		RDF			/GET CALLING DF
 177	 10005	1377  		TAD	(CDF		/FORM CDF
 178	 10006	5346  	SWAP0,	JMP	ONCE		/DO ONCE ONLY CODE - REPLACED BY DCA EXIT
 179	 10007	6201 *		CDF	.		/CHANGE TO THIS DATA FIELD
 180	 10010	1600  		TAD I	SWAP		/GET OVERLAY,LEVEL,FIELD
 181	 10011	3360  		DCA	BINDAT		/SAVE
 182	 10012	2200  		ISZ	SWAP		/BUMP POINTER
 183	 10013	1600  	S1600,	TAD I	SWAP		/GET SUBROUTINE ADDRESS
 184	 10014	3361  		DCA	XITLOC		/SAVE
 185	 10015	1360  		TAD	BINDAT		/FORM CDF TO CALLED SUBROUTINE
 186	 10016	0376  		AND	(7
 187	 10017	7104  		RAL CLL
 188	 10020	7006  		RTL
 189	 10021	1377  		TAD	(CDF
 190	 10022	3331  		DCA	SWAP1A		/SAVE
 191	 10023	1331  		TAD	SWAP1A		/FORM CIF TO CALLED SUBROUTINE
 192	 10024	7001  		IAC
 193	 10025	3344  		DCA	EXIT+1		/SAVE FOR EXIT
/OVRDRV - OVERLAY DRIVER FOR CCL  MACREL-V2C  TUE 02-JUN-92  PAGE 4
                                                 FILE # 1

 194			
 195			
 196			/LOAD OVERLAY OF CALLED SUBROUTINE
 197			
 198	 10026	1360  	LOAD,	TAD	BINDAT
 199	 10027	0213  		AND	S1600		/EXTRACT LEVEL OF CALLED SUBROUTINE
 200	 10030	7002  		BSW
 201	 10031	7104  		CLL RAL			/5 RIGHT
 202	 10032	3362  		DCA	PNTR		/SAVE
 203	 10033	1362  		TAD	PNTR
 204	 10034	1375  		TAD	(SWPTAB		/COMPUTE ENTRY INTO SWAP TABLE
 205	 10035	3357  		DCA	PFLD		/POINTS TO FIELD OF OVERLAY
 206	 10036	1362  		TAD	PNTR		/COMPUTE ENTRY INTO CURRENT OVERLAY TABLE
 207	 10037	7112  		RTR CLL
 208	 10040	1374  		TAD	(CURTAB
 209	 10041	3362  		DCA	PNTR
 210	 10042	1360  		TAD	BINDAT		/EXTRACT DESIRED OVERLAY NUMBER
 211	 10043	0373  		AND	(171		/REALLY 170 BUT 171=-7607
 212	 10044	7110  		RAR CLL			/THROW AWAY LEAST SIGNIFICANT
 213	 10045	7112  		RTR CLL			/RIGHT 3
 214	 10046	7041  		CIA			/NEGATE
 215	 10047	3363  		DCA	TEMP
 216	 10050	1363  		TAD	TEMP
 217	 10051	1762  		TAD I	PNTR		/COMPARE WITH CURRENT OVERLAY NUMBER FOR LEVEL
 218	 10052	7650  		SNA CLA			/SAME?
 219	 10053	5322  		JMP	SWAP1		/YES, NO READING NEEDED
 220	 10054	1363  	LOAD1,	TAD	TEMP		/NO, SET TO NEW
 221	 10055	7041  		CIA
 222	 10056	3762  		DCA I	PNTR		/OVERLAY NUMBER
 223	 10057	1757  		TAD I	PFLD
 224	 10060	3360  		DCA	BINDAT		/SAVE FIELD OF OVERLAY
 225	 10061	2357  		ISZ	PFLD		/POINT AT ADDRESS
 226	 10062	1757  		TAD I	PFLD
 227	 10063	3317  		DCA	REDADD		/SAVE IN CALL LOCATION
 228	 10064	2357  		ISZ	PFLD		/POINT AT RELATIVE BLOCK #
 229	 10065	1757  		TAD I	PFLD
 230	 10066	3320  		DCA	REDBLK		/SAVE TEMPORARILY
 231	 10067	2357  		ISZ	PFLD		/POINT AT OVERLAY LENGTH
 232	 10070	1363  		TAD	TEMP		/TEST OVERLAY NUMBER
 233	 10071	7650  		SNA CLA			/0?
 234	 10072	5302  		JMP	LOAD2		/YES, NO MULTIPLICATION NEEDED
 235	 10073	1757  		TAD I	PFLD		/BLOCK NUMBER = (LENGTH OF OVERLAY)
 236	 10074	7001  		IAC			/TIMES (THE NUMBER OF THE OVERLAY)
 237	 10075	7110  		CLL RAR			/CONVERT PAGES TO BLOCKS
 238	 10076	3316  		DCA	REDCNT		/SAVE FOR MULTIPLY
 239	 10077	1316  		TAD	REDCNT		/MULTIPLY BLOCK LENGTH
 240	 10100	2363  		ISZ	TEMP		/BY OVERLAY NUMBER
 241	 10101	5277  		JMP	.-2
/OVRDRV - OVERLAY DRIVER FOR CCL  MACREL-V2C  TUE 02-JUN-92  PAGE 5
                                                 FILE # 1

 242			
 243			
 244	 10102	1320  	LOAD2,	TAD 	REDBLK		/PLUS (RELATIVE BLOCK OF LEVEL)
 245	 10103	1346  		TAD	STRBLK		/PLUS (STARTING BLOCK OF PROGRAM)
 246	 10104	3320  		DCA	REDBLK		/SAVE IN CALL LOCATION
 247	 10105	1360  		TAD	BINDAT		/GET FIELD
 248	 10106	0376  		AND	(7		/MASK
 249	 10107	7112  		CLL RTR
 250	 10110	7012  		RTR			/POSITION
 251	 10111	1757  		TAD I	PFLD		/GET LENGTH AGAIN
 252	 10112	7002  		BSW
 253	 10113	3316  		DCA	REDCNT		/FORM CONTROL WORD
 254	 10114	6202  		CIF	0
 255	 10115	4764  		JMS I	RESHAN		/CALL RESIDENT HANDLER TO READ IN OVERLAY
 256	 10116	7756  	REDCNT,	7756		/FUNCTION CONTROL WORD (POINTS TO MREAD-1 FOR "ONCE"
 257	 10117	7747  	REDADD,	7747		/BUFFER ADDRESS (POINTS TO SOFSET FOR "ONCE"
 258	 10120	0000  	REDBLK,	0		/STARTING BLOCK NUMBER
 259	 10121	7402  		HLT		/ERROR RETURN ADDRESS
 260			
 261	 10122	1070  	SWAP1,	TAD	XFERV		/GET JMP-JMS FLAG
 262	 10123	7640  		SZA CLA			/SET?
 263	 10124	5337  		JMP	SWAP2		/YES, EXECUTE A JMP
 264	 10125	7346  		CLA CLL CMA RTL		/-3
 265	 10126	1200  		TAD	SWAP		/BACK UP TO CALLER'S PC
 266	 10127	3200  		DCA	SWAP
 267	 10130	1600  		TAD I	SWAP
 268	 10131	0000  	SWAP1A,	0			/CDF TO CALLED SUBROUTINE
 269	 10132	3761  		DCA I	XITLOC		/SAVE IN CALLED SUBROUTINE
 270	 10133	2361  		ISZ	XITLOC		/BUMP TRANSFER ADDRESS
 271	 10134	6201 *		CDF	.
 272	 10135	1372  		TAD	(ISZ XFERV
 273	 10136	3600  		DCA I	SWAP		/SET BACK UP ENTRY IN XFER VECTOR TABLE
 274	 10137	3070  	SWAP2,	DCA	XFERV		/CLEAR FLAG
 275	 10140	1366  		TAD	LINK		/RESTORE LINK AND AC
 276	 10141	7110  		RAR CLL
 277	 10142	1365  		TAD	AC
 278	 10143	0000  	EXIT,	0			/SET DF TO CALLING FIELD
 279	 10144	0000  		0			/SET IF TO CALLED FIELD
 280	 10145	5761  		JMP I	XITLOC		/GO TO CALLED SUBROUTINE
 281			
/OVRDRV - OVERLAY DRIVER FOR CCL  MACREL-V2C  TUE 02-JUN-92  PAGE 6
                                                 FILE # 1

 282			
 283			
 284			/VARIABLE LOCATIONS
 285			/SOME OF THE FOLLOWING LOCATIONS CONTAIN
 286			/ONCE ONLY CODE TO SET UP STARTING BLOCK
 287			/AND CHECK THAT FILE CAME FROM SYS:
 288		0146 *	CURTAB=.		/CURRENT OVERLAY IN LEVEL TABLE (8 ENTRIES)
 289		0146 *	STRBLK=.		/ENTRY 0 IS USED TO HOLD STARTING BLOCK OF FILE
 290	 10146	3343  	ONCE,	DCA	EXIT		/SAVE CALLING FIELD
 291							/ALSO ENTRY 0
 292	 10147	1346  		TAD	.-1		/SET UP SO WON'T BE EXECUTED AGAIN
 293							/ALSO ENTRY 1
 294	 10150	3206  		DCA	SWAP0
 295							/ALSO ENTRY 2
 296	 10151	6201  		CDF	0
 297							/ALSO ENTRY 3
 298	 10152	1717  		TAD I	REDADD		/GET STARTING BLOCK FROM "SOFSET"
 299							/ALSO ENTRY 4
 300	 10153	3346  		DCA	STRBLK		/SAVE
 301							/ALSO ENTRY 5
 302	 10154	1716  		TAD I	REDCNT		/GET RESIDENT? ENTRY POINT
 303							/ALSO ENTRY 6
 304	 10155	3364  		DCA	RESHAN		/SAVE
 305							/ALSO ENTRY 7
 306	 10156	1364  		TAD	RESHAN		/CHECK ENTRY IS RESIDENT
 307			PFLD,				/POINTS TO SWPTAB
 308	 10157	1373  		TAD	(-7607
 309			BINDAT,				/CONTAINS OVERLAY,LEVEL,FIELD OF DESIRED SUBROUTINE
 310	 10160	7630  		SZL CLA			/RESIDENT ?
 311			XITLOC,				/CONTAINS LOCATION TO GO TO IN DESIRED SUBROUTINE
 312	 10161	5207  		JMP	SWAP0+1		/YES, OK
 313			PNTR,				/POINTS INTO CURTAB
 314	 10162	7402  		HLT			/NO, ERROR
 315			TEMP,				/TEMP STORAGE
 316	 10163	5362  		JMP	.-1		/DON'T ALLOW CONTINUE
 317			
 318	 10164	7607  	RESHAN,	7607			/OR SOME OTHER RESIDENT ENTRY POINT
 319	 10165	0000  	AC,	0			/SAVED AC
 320	 10166	0000  	LINK,	0			/SAVED LINK
 321			
	------
	 10172	2070  
	 10173	0171  
	 10174	0146 +
	 10175	0200 +
	 10176	0007  
	 10177	6201  
 322		0200  		PAGE
/OVRDRV - OVERLAY DRIVER FOR CCL  MACREL-V2C  TUE 02-JUN-92  PAGE 7
                                                 FILE # 1

 323			
 324			
 325			
 326			/THIS AREA CONTAINS OVERLAY DATA FOR MAIN AND THE 7 LEVELS
 327			/THE FORMAT OF EACH ENTRY IS:
 328			/WORD1:	FIELD OF LEVEL
 329			/WORD2:	ADDRESS OF LEVEL
 330			/WORD3:	RELATIVE BLOCK OF 1ST OVERLAY IN LEVEL
 331			/WORD4:	LENGTH OF THE LEVEL (ANY AND ALL OVERLAYS-EACH)
 332			/	(ALL OVERLAYS IN A LEVEL ARE THE SAME LENGTH)
 333			
 334			SWPTAB,
 335			
 336		0240  		*.+40
 337			
 338			/THIS AREA CONTAINS THE TRANSFER VECTORS FOR EACH ENTRY POINT
 339			/IN ALL THE OVERLAYS IN ALL THE LEVELS
 340			/ITS SIZE SHOULD BE MODIFIED BY THE USER
 341			/TO FIT THE MAXIMUM NUMBER OF TRANSFER VECTORS NEEDED
 342			/EACH TRANSFER VECTOR OCCUPIES 4 LOCATIONS
 343			/THE TABLE IS INITIALLY SET UP FOR 24(DEC) (30(OCT)) VECTORS
 344			/THE MAXIMUM SIZE THIS TABLE CAN BE IS 3774 (OCT) LOCATIONS FOR
 345			/511 (DEC) (777 (OCT)) VECTORS
 346			/THE FORMAT OF EACH VECTOR ENTRY IS:
 347			/WORD1:	ISZ	XFERV
 348			/WORD2:	JMS I	XFERV+1
 349			/WORD3:	LEVEL/OVERLAY/FIELD
 350			/WORD4:	ADDRESS
 351			
 352			TRANVC,
 353			
 354		0070  		SIZE=56.	/MODIFY THIS LINE TO CHANGE THE SIZE OF THE TABLE
 355						/SET FOR 24(DEC)
 356			
 357		0600  		*SIZE^4+.
 358			
 359			
/OVRDRV - OVERLAY DRIVER FOR CCL  MACREL-V2C  TUE 02-JUN-92  PAGE 8
                                                 FILE # 1

 360			
 361			
/OVRDRV - OVERLAY DRIVER FOR CCL  MACREL-V2C  TUE 02-JUN-92  PAGE 9
SYMBOL TABLE

AC	  0165+ SWAPER		MMISC	  7777			USR	  0200			
AMFLAG	  0017			MOFILE	  7600			XFERV	G 0070			
BATBUF	  4400			MONLOD	  7605			XITLOC	  0161+ SWAPER		
BATCCL	  7777			MONSAV	  7600			XR	  0016			
BATERR	  7000			MPARAM	  7643			XR2	  0015			
BATIN	  5400			MREAD	  7757			
BATOUT	  7400			MSOVL2	  0055			
BATSPL	  7200			NAME1	  0023			
BATTBL	  6600			NAME2	  0024			
BATVFY	  5600			NAME3	  0025			
BEGLN	  1000			NAME4	  0026			
BFR	  3000			NAME5	  0027			
BINDAT	  0160+ SWAPER		NMBASE	  0037			
CCLBLK	  0067			ONCE	  0146+ SWAPER		
CCLDEV	  0001			OS78BI	  7771			
CCLHND	  0000			OV	  1375			
CCLINC	  0054			PFLD	  0157+ SWAPER		
CCLNUM	  0265			PNTR	  0162+ SWAPER		
CCLSW	  0435			PRMES	  0330			
CCLTAB	  0265			PRQMRK	  1357			
CCLVER	  0301			PTR	  0036			
CLXR	  0035			REDADD	  0117+ SWAPER		
CTRLCK	  1241			REDBLK	  0120+ SWAPER		
CURTAB	  0146+ SWAPER		REDCNT	  0116+ SWAPER		
DEASAD	  0427			REMBLO	  0065			
DEF	  0022			REMSPA	  4000			
DEFALT	  0033			RESHAN	  0164+ SWAPER		
DELIM	  0032			REST	  5000			
DEV1	  0030			SBLOCK	  7776			
DEV2	  0031			SCOPE	  7726			
DOLFLG	  7776			SHNDLR	  7607			
DVHNDL	  7647			SIZE	  0070			
ERRET	  0033			SM8	  6254			
EXIT	  0143+ SWAPER		SOFSET	  7747			
EXTTBL	  6600			SPLNUM	  7777			
FILDMY	  0002			STRBLK	  0146+ SWAPER		
FILETB	  7000			SWAP	  0000+ SWAPER		
FLD: 0	  0200  ASECT		SWAPER	  0600  RSECT		
F0STUF	  7200			SWAP0	  0006+ SWAPER		
GETCCL	  1362			SWAP1	  0122+ SWAPER		
GIOT	  6770			SWAP1A	  0131+ SWAPER		
GLINE	  1200			SWAP2	  0137+ SWAPER		
HNDLR	  4400			SWPTAB	G 0200+ SWAPER		
JSBITS	  7746			SWSTBL	  7360			
KEYMON	  0403			SYBLKN	  7774			
KMNTRY	  0400			SYCNT	  7775			
LINK	  0166+ SWAPER		SYSTEM	  0022			
LOAD	  0026+ SWAPER		S1600	  0013+ SWAPER		
LOAD1	  0054+ SWAPER		T	  0020			
LOAD2	  0102+ SWAPER		TBLTBL	  6100			
LONGTB	  5000			TEMP	  0163+ SWAPER		
LXR	  0034			TESBUF	  2000			
MDATE	  7666			TRANVC	G 0240+ SWAPER		
MIFILE	  7617			TT	  0021