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