FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 1 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (1) ; 0001 0 MODULE fake_vm (IDENT = 'X01-005', ; 0002 0 ADDRESSING_MODE (EXTERNAL = GENERAL, ; 0003 0 NONEXTERNAL = LONG_RELATIVE)) = ; 0004 1 BEGIN ; 0005 1 ; 0006 1 !++ ; 0007 1 ! FAKE_VM - Special VM and EFN handling. ; 0008 1 ! ; 0009 1 ! FAKE_VM intercepts the following routines in LIBRTL: ; 0010 1 ! ; 0011 1 ! LIB$GET_VM The general get VM routine. ; 0012 1 ! [FAKE_VM does *not* handle zones!] ; 0013 1 ! ; 0014 1 ! LIB$FREE_VM The general free VM routine. ; 0015 1 ! [FAKE_VM does *not* handle zones!] ; 0016 1 ! ; 0017 1 ! LIB$SGET1_DD The get dynamic string routine. ; 0018 1 ! ; 0019 1 ! LIB$SFREE1_DD The free one dynamic string routine. ; 0020 1 ! ; 0021 1 ! LIB$SFREEN_DD The free n dynamic strings routine. ; 0022 1 ! ; 0023 1 ! LIB$GET_EF The general get EFN routine. ; 0024 1 ! ; 0025 1 ! LIB$FREE_EF The general free EFN routine. ; 0026 1 ! ; 0027 1 ! And, as of VMS V5.2, the following: ; 0028 1 ! ; 0029 1 ! LIB$VM_MALLOC The memory allocate routine. ; 0030 1 ! ; 0031 1 ! LIB$VM_CALLOC The cleared memory allocate routine. ; 0032 1 ! ; 0033 1 ! LIB$VM_REALLOC The memory reallocate routine. ; 0034 1 ! ; 0035 1 ! LIB$VM_FREE The memory free routine. ; 0036 1 ! ; 0037 1 ! FAKE_VM intercepts the following routines in VAXCRTL[G] ; 0038 1 ! provided that the VAXCRTL[G] shareable image was included ; 0039 1 ! when the image containing FAKE_VM was linked: ; 0040 1 ! ; 0041 1 ! MALLOC The memory allocate routine. ; 0042 1 ! ; 0043 1 ! CALLOC The cleared memory allocate routine. ; 0044 1 ! ; 0045 1 ! REALLOC The memory reallocate routine. ; 0046 1 ! ; 0047 1 ! FREE The memory free routine. ; 0048 1 ! ; 0049 1 ! CFREE The memory free routine. ; 0050 1 ! ; 0051 1 ! VAXC$MALLOC_OPT The optimized memory allocate routine. ; 0052 1 ! ; 0053 1 ! VAXC$CALLOC_OPT The optimized cleared memory allocate routine. ; 0054 1 ! ; 0055 1 ! VAXC$REALLOC_OPT The optimized memory reallocate routine. ; 0056 1 ! ; 0057 1 ! VAXC$FREE_OPT The optimized memory free routine. FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 2 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (1) ; 0058 1 ! ; 0059 1 ! VAXC$CFREE_OPT The optimized memory free routine. ; 0060 1 ! ; 0061 1 ! FAKE_VM intercepts the following routines in DECW$XLIBSHR ; 0062 1 ! provided that the DECW$XLIBSHR shareable image was included ; 0063 1 ! when the image containing FAKE_VM was linked: ; 0064 1 ! ; 0065 1 ! XMEMORY_MALLOC The memory allocate routine. ; 0066 1 ! ; 0067 1 ! XMEMORY_CALLOC The cleared memory allocate routine. ; 0068 1 ! ; 0069 1 ! XMEMORY_REALLOC The memory reallocate routine. ; 0070 1 ! ; 0071 1 ! XMEMORY_FREE The memory free routine. ; 0072 1 ! ; 0073 1 ! After you link FAKE_VM into your image, you must enable the interception ; 0074 1 ! of the about routines by calling one of two special routines. This ; 0075 1 ! enabling of interception must be done before the image starts, so the ; 0076 1 ! call to the appropriate special routine must either be done by your ; 0077 1 ! image itself as its first step or by using the debugger to call the ; 0078 1 ! correct special routine. ; 0079 1 ! ; 0080 1 ! To intercept all calls made by any part of your combined image (including ; 0081 1 ! all used shareable images, etc.) use the following: ; 0082 1 ! DBG> DEPOSIT FAKE_VM_STRING_OFF = 1 ; 0083 1 ! DBG> CALL FAKE_VM_INTERCEPT_XFER_VECTOR ; 0084 1 ! The string routines should be disabled because FAKE_VM does not intercept ; 0085 1 ! the full set of string oriented routines. ; 0086 1 ! ; 0087 1 ! To intercept all calls made by your image (not including any used shareable ; 0088 1 ! images, etc.) use the following: ; 0089 1 ! DBG> CALL FAKE_VM_INTERCEPT_EXIT_VECTOR ; 0090 1 ! ; 0091 1 ! All errors are announced by writing a message to SYS$OUTPUT starting with ; 0092 1 ! %FAKE_VM. After any message the debugger is usually (see below) invoked ; 0093 1 ! by signaling SS$_DEBUG. While in the debugger, you can call some special ; 0094 1 ! reporting routines (see below). When FAKE_VM signals the debugger with ; 0095 1 ! SS$_DEBUG, it includes a debugger command to (re-)display the message it ; 0096 1 ! generated. While in the debugger you can redisplay the message by using: ; 0097 1 ! DBG> EXAMINE/ASCIC FAKE_VM_MESSAGE ; 0098 1 ! ; 0099 1 ! FAKE_VM has various processing parameters you can manage from the debugger, ; 0100 1 ! or in some cases, via global literal definitions at link time. ; 0101 1 ! ; 0102 1 ! Enabling logging of all intercepted calls: ; 0103 1 ! DBG> DEPOSIT FAKE_VM_LOG = 1 ; 0104 1 ! or define the global literal FAKE_VM_LOG_ENABLE as 1. ; 0105 1 ! ; 0106 1 ! Disabling all special processing (must be done before image starts): ; 0107 1 ! DBG> DEPOSIT FAKE_VM_OFF = 1 ; 0108 1 ! or define the global literal FAKE_VM_DISABLE as 1. ; 0109 1 ! ; 0110 1 ! Disabling dynamic string processing (must be done before image starts): ; 0111 1 ! DBG> DEPOSIT FAKE_VM_STRING_OFF = 1 ; 0112 1 ! or define the global literal FAKE_VM_STRING_DISABLE as 1. ; 0113 1 ! ; 0114 1 ! Disabling EFN processing (must be done before image starts): FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 3 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (1) ; 0115 1 ! DBG> DEPOSIT FAKE_VM_EFN_OFF = 1 ; 0116 1 ! or define the global literal FAKE_VM_EFN_DISABLE as 1. ; 0117 1 ! ; 0118 1 ! Force the loading of VAXCRTL (not G!) routines (must be done before ; 0119 1 ! image starts): ; 0120 1 ! DBG> DEPOSIT FAKE_VM_VAXCRTL_LOAD = 1 ; 0121 1 ! or define the global literal FAKE_VM_VAXCRTL_REQUEST as 1. ; 0122 1 ! ; 0123 1 ! Force the loading of DECW$XLIBSHR routines (must be done before ; 0124 1 ! image starts): ; 0125 1 ! DBG> DEPOSIT FAKE_VM_XLIBSHR_LOAD = 1 ; 0126 1 ! or define the global literal FAKE_VM_XLIBSHR_REQUEST as 1. ; 0127 1 ! ; 0128 1 ! Disabling interception of VAXCRTL[G] routines (must be done before ; 0129 1 ! image starts): ; 0130 1 ! DBG> DEPOSIT FAKE_VM_VAXCRTL_OFF = 1 ; 0131 1 ! or define the global literal FAKE_VM_VAXCRTL_DISABLE as 1. ; 0132 1 ! ; 0133 1 ! Disabling interception of DECW$XLIBSHR routines (must be done before ; 0134 1 ! image starts): ; 0135 1 ! DBG> DEPOSIT FAKE_VM_XLIBSHR_OFF = 1 ; 0136 1 ! or define the global literal FAKE_VM_XLIBSHR_DISABLE as 1. ; 0137 1 ! ; 0138 1 ! Disabling the actual freeing of memory (freed memory is zapped to a ; 0139 1 ! special pattern, but is not actually freed) (must be done before image ; 0140 1 ! starts): ; 0141 1 ! DBG> DEPOSIT FAKE_VM_REAL_FREE_OFF = 1 ; 0142 1 ! or define the global literal FAKE_VM_REAL_FREE_DISABLE as 1. ; 0143 1 ! ; 0144 1 ! Changing the actual memory get/free algorithms so unique pages of ; 0145 1 ! memory are gotten and are freed by removing them from the address ; 0146 1 ! space (must be done before the image starts): ; 0147 1 ! DBG> DEPOSIT FAKE_VM_REAL_FREE_OFF = 3 ; 0148 1 ! or define the global literal FAKE_VM_REAL_FREE_DISABLE as 3. ; 0149 1 ! ; 0150 1 ! Disabling the zapping of freed memory to a special pattern and disabling ; 0151 1 ! the actual freeing of memory (must be done before image starts): ; 0152 1 ! DBG> DEPOSIT FAKE_VM_REAL_FREE_OFF = 5 ; 0153 1 ! or define the global literal FAKE_VM_REAL_FREE_DISABLE as 5. ; 0154 1 ! ; 0155 1 ! Changing the memory histogram bucket size (the default is 4; must be ; 0156 1 ! done before image starts): ; 0157 1 ! DBG> DEPOSIT FAKE_VM_MEMORY_BUCKET_SIZE = n ; 0158 1 ! or define the global literal FAKE_VM_MEMORY_BUCKET_DEFAULT as n. ; 0159 1 ! ; 0160 1 ! Changing the string histogram bucket size (the default is 1; must be ; 0161 1 ! done before image starts): ; 0162 1 ! DBG> DEPOSIT FAKE_VM_STRING_BUCKET_SIZE = n ; 0163 1 ! or define the global literal FAKE_VM_STRING_BUCKET_DEFAULT as n. ; 0164 1 ! ; 0165 1 ! Enabling activating debugger on messages (the default): ; 0166 1 ! DBG> DEPOSIT FAKE_VM_STOP = 1 ; 0167 1 ! Disabling activating debugger on messages: ; 0168 1 ! DBG> DEPOSIT FAKE_VM_STOP = 0 ; 0169 1 ! ; 0170 1 ! Enabling checking of the active list each call: ; 0171 1 ! DBG> DEPOSIT FAKE_VM_CHECK_ACTIVE_LIST = 1 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 4 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (1) ; 0172 1 ! Disabling checking of the active list each call (the default): ; 0173 1 ! DBG> DEPOSIT FAKE_VM_CHECK_ACTIVE_LIST = 0 ; 0174 1 ! ; 0175 1 ! Changing the memory/string histogram report width (the default is 80): ; 0176 1 ! DBG> DEPOSIT FAKE_VM_HISTOGRAM_WIDTH = n ; 0177 1 ! ; 0178 1 ! FAKE_VM has various reporting routines that can be called from the debugger. ; 0179 1 ! The reports normally go to SYS$OUTPUT, but can be directed to somewhere ; 0180 1 ! else by using the debugging to set the desired file specification using: ; 0181 1 ! DBG> DEPOSIT/ASCIC FAKE_VM_OUTPUT = 'dev:[dir]file.type' ; 0182 1 ! Any deposited file specification remains in effect until explicitly ; 0183 1 ! cleared, e.g., by using: ; 0184 1 ! DBG> DEPOSIT/BYTE FAKE_VM_OUTPUT = 0 ; 0185 1 ! ; 0186 1 ! Dumping the allocated memory/string list with only headers: ; 0187 1 ! DBG> CALL FAKE_VM ; 0188 1 ! ; 0189 1 ! Dumping the allocated memory/string list with headers and the first 4 ; 0190 1 ! longwords of data: ; 0191 1 ! DBG> CALL FAKE_VM (0) ; 0192 1 ! ; 0193 1 ! Dumping the allocated memory/string list with the works: ; 0194 1 ! DBG> CALL FAKE_VM (1) ; 0195 1 ! ; 0196 1 ! Dumping erring packets with only headers: ; 0197 1 ! DBG> CALL FAKE_VM (-1) ; 0198 1 ! ; 0199 1 ! Dumping erring packets with headers and the first 4 longwords of data: ; 0200 1 ! DBG> CALL FAKE_VM (-1, 0) ; 0201 1 ! ; 0202 1 ! Dumping erring packets with the works: ; 0203 1 ! DBG> CALL FAKE_VM (-1, 1) ; 0204 1 ! ; 0205 1 ! Dumping a selected entry on the allocated memory/string list with only ; 0206 1 ! the header: ; 0207 1 ! DBG> CALL FAKE_VM (address) ; 0208 1 ! ; 0209 1 ! Dumping a selected entry on the allocated memory/string list with the ; 0210 1 ! header and the first 4 longwords of data: ; 0211 1 ! DBG> CALL FAKE_VM (address, 0) ; 0212 1 ! ; 0213 1 ! Dumping a selected entry on the allocated memory/string list with the ; 0214 1 ! works: ; 0215 1 ! DBG> CALL FAKE_VM (address, 1) ; 0216 1 ! ; 0217 1 ! Dumping the memory/string histograms: ; 0218 1 ! DBG> CALL FAKE_VM_HISTOGRAM ; 0219 1 ! ; 0220 1 ! Dumping the allocated EFN list: ; 0221 1 ! DBG> CALL FAKE_VM_EFN ; 0222 1 !-- FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 5 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (2) ; 0224 1 LIBRARY ; 0225 1 'SYS$LIBRARY:STARLET'; ; 0226 1 ; 0227 1 PSECT ; 0228 1 OWN = _FAKE_VM_DATA ; 0229 1 (READ, WRITE, EXECUTE, NOSHARE, PIC, ALIGN (3)), ; 0230 1 GLOBAL = _FAKE_VM_DATA ; 0231 1 (READ, WRITE, EXECUTE, NOSHARE, PIC, ALIGN (3)), ; 0232 1 CODE = _FAKE_VM_CODE ; 0233 1 (READ, NOWRITE, EXECUTE, SHARE, PIC, ALIGN (2)), ; 0234 1 PLIT = _FAKE_VM_CODE ; 0235 1 (READ, NOWRITE, EXECUTE, SHARE, PIC, ALIGN (2)); ; 0236 1 ; 0237 1 FORWARD ROUTINE ; 0238 1 ast_reenable, ; 0239 1 load_image : NOVALUE, ; 0240 1 set_intercept : NOVALUE, ; 0241 1 fake_vm_intercept_exit_vector, ; 0242 1 fake_vm_intercept_xfer_vector, ; 0243 1 check_active_list, ; 0244 1 find_in_active_list, ; 0245 1 load_fab_rab : NOVALUE, ; 0246 1 fake_vm, ; 0247 1 fake_vm_report, ; 0248 1 fake_vm_histogram, ; 0249 1 fake_vm_efn, ; 0250 1 do_log : NOVALUE, ; 0251 1 call_debug : NOVALUE, ; 0252 1 add_to_histogram : NOVALUE, ; 0253 1 fake_vm_get_vm, ; 0254 1 fake_vm_free_vm, ; 0255 1 fake_vm_sget1_dd, ; 0256 1 fake_vm_sfree1_dd, ; 0257 1 fake_vm_sfreen_dd, ; 0258 1 fake_vm_get_ef, ; 0259 1 fake_vm_free_ef, ; 0260 1 fake_vm_malloc, ; 0261 1 fake_vm_calloc, ; 0262 1 fake_vm_realloc, ; 0263 1 fake_vm_free, ; 0264 1 fake_vm_dummy_free, ; 0265 1 fake_vm_malloc_opt, ; 0266 1 fake_vm_calloc_opt, ; 0267 1 fake_vm_realloc_opt, ; 0268 1 fake_vm_free_opt, ; 0269 1 fake_vm_dummy_free_opt, ; 0270 1 fake_vm_xmemory_malloc, ; 0271 1 fake_vm_xmemory_calloc, ; 0272 1 fake_vm_xmemory_realloc, ; 0273 1 fake_vm_xmemory_free, ; 0274 1 fake_vm_xmemory_dummy_free, ; 0275 1 fake_vm_lib_malloc, ; 0276 1 fake_vm_lib_calloc, ; 0277 1 fake_vm_lib_realloc, ; 0278 1 fake_vm_lib_free, ; 0279 1 fake_vm_lib_dummy_free; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 6 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (3) ; 0281 1 EXTERNAL ROUTINE ; 0282 1 lib$find_image_symbol, ; 0283 1 lib$free_ef, ; 0284 1 lib$free_vm, ; 0285 1 lib$get_ef, ; 0286 1 lib$get_input, ; 0287 1 lib$get_vm, ; 0288 1 lib$put_output, ; 0289 1 lib$sfree1_dd, ; 0290 1 lib$sfreen_dd, ; 0291 1 lib$sget1_dd, ; 0292 1 lib$sig_to_ret, ; 0293 1 lib$signal, ; 0294 1 lib$stop; ; 0295 1 ; 0296 1 EXTERNAL ROUTINE ; 0297 1 c$$translate : WEAK, ; 0298 1 malloc : WEAK, ; 0299 1 calloc : WEAK, ; 0300 1 realloc : WEAK, ; 0301 1 free : WEAK, ; 0302 1 cfree : WEAK, ; 0303 1 vaxc$malloc_opt : WEAK, ; 0304 1 vaxc$calloc_opt : WEAK, ; 0305 1 vaxc$realloc_opt : WEAK, ; 0306 1 vaxc$free_opt : WEAK, ; 0307 1 vaxc$cfree_opt : WEAK, ; 0308 1 xmemory_malloc : WEAK, ; 0309 1 xmemory_calloc : WEAK, ; 0310 1 xmemory_realloc : WEAK, ; 0311 1 xmemory_free : WEAK, ; 0312 1 lib$vm_malloc : WEAK, ; 0313 1 lib$vm_calloc : WEAK, ; 0314 1 lib$vm_realloc : WEAK, ; 0315 1 lib$vm_free : WEAK; ; 0316 1 ; 0317 1 EXTERNAL LITERAL ; 0318 1 fake_vm_log_enable : WEAK, ; 0319 1 fake_vm_disable : WEAK, ; 0320 1 fake_vm_string_disable : WEAK, ; 0321 1 fake_vm_efn_disable : WEAK, ; 0322 1 fake_vm_vaxcrtl_request : WEAK, ; 0323 1 fake_vm_xlibshr_request : WEAK, ; 0324 1 fake_vm_vaxcrtl_disable : WEAK, ; 0325 1 fake_vm_xlibshr_disable : WEAK, ; 0326 1 fake_vm_real_free_disable : WEAK, ; 0327 1 fake_vm_memory_bucket_default : WEAK, ; 0328 1 fake_vm_string_bucket_default : WEAK, ; 0329 1 lib$_intlogerr; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 7 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (4) ; 0331 1 KEYWORDMACRO ; M 0332 1 $ast_disable (use_sig_to_ret) = ; M 0333 1 LOCAL ; M 0334 1 ast_status : VOLATILE, ; M 0335 1 sig_to_ret : VOLATILE; ; M 0336 1 ; M 0337 1 ENABLE ; M 0338 1 ast_reenable (ast_status, sig_to_ret); ; M 0339 1 ; M 0340 1 %IF NOT %NULL (use_sig_to_ret) ; M 0341 1 %THEN ; M 0342 1 sig_to_ret = 1; ; M 0343 1 %FI ; M 0344 1 ; M 0345 1 IF $SETAST (ENBFLG = 0) EQLU SS$_WASSET ; M 0346 1 THEN ; 0347 1 ast_status = 1; %; ; 0348 1 ; 0349 1 MACRO ; M 0350 1 $ast_enable = ; M 0351 1 (BEGIN ; M 0352 1 IF .ast_status ; M 0353 1 THEN ; M 0354 1 $SETAST (ENBFLG = 1); ; 0355 1 END) %; ; 0356 1 ; 0357 1 MACRO ; M 0358 1 $do_log (string) = ; M 0359 1 (BEGIN ; M 0360 1 do_log (UPLIT BYTE (10 + %CHARCOUNT (string), '%FAKE_VM, ', string), ; M 0361 1 %REMAINING); ; 0362 1 END) %; ; 0363 1 ; 0364 1 MACRO ; M 0365 1 $call_debug (string) = ; M 0366 1 (BEGIN ; M 0367 1 errors = .errors + 1; ; M 0368 1 call_debug (UPLIT BYTE (10 + %CHARCOUNT (string), '%FAKE_VM, ', string), ; M 0369 1 %REMAINING); ; 0370 1 END) %; ; 0371 1 ; 0372 1 MACRO ; M 0373 1 $call_debug_histo (string) = ; M 0374 1 (BEGIN ; M 0375 1 root [histo_errors] = .root [histo_errors] + 1; ; M 0376 1 call_debug (UPLIT BYTE (10 + %CHARCOUNT (string), '%FAKE_VM, ', string), ; M 0377 1 %REMAINING); ; 0378 1 END) %; ; 0379 1 ; 0380 1 MACRO ; M 0381 1 $call_debug_efn (string) = ; M 0382 1 (BEGIN ; M 0383 1 call_debug (UPLIT BYTE (10 + %CHARCOUNT (string), '%FAKE_VM, ', string), ; M 0384 1 %REMAINING); ; 0385 1 END) %; ; 0386 1 ; 0387 1 MACRO FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 8 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (4) ; M 0388 1 $call_same_args [] = ; M 0389 1 (BEGIN ; M 0390 1 BUILTIN ; M 0391 1 AP, ; M 0392 1 CALLG; ; M 0393 1 CALLG (.AP, %REMAINING) ; 0394 1 END) %; ; 0395 1 ; 0396 1 MACRO ; M 0397 1 $load_desc (desc) = ; M 0398 1 (BEGIN ; M 0399 1 desc [0] = %CHARCOUNT (%REMAINING); ; M 0400 1 desc [1] = UPLIT BYTE (%REMAINING); ; 0401 1 END) %; ; 0402 1 ; 0403 1 MACRO ; M 0404 1 $stop_if [] = ; M 0405 1 (BEGIN ; M 0406 1 LOCAL ; M 0407 1 status; ; M 0408 1 status = %REMAINING; ; M 0409 1 IF NOT .status ; M 0410 1 THEN ; M 0411 1 RETURN lib$stop (.status); ; 0412 1 END) %; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 9 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (5) ; 0414 1 LITERAL ; 0415 1 mem_flk = 0, ; 0416 1 mem_blk = 1, ; 0417 1 mem_alc = 2, ; 0418 1 mem_siz = 3, ; 0419 1 mem_typ = 4, ; 0420 1 mem_pc1 = 5, ; 0421 1 mem_pc2 = 6, ; 0422 1 mem_pc3 = 7, ; 0423 1 mem_pc4 = 8, ; 0424 1 mem_pc5 = 9, ; 0425 1 mem_pc6 = 10, ; 0426 1 mem_pc7 = 11, ; 0427 1 mem_pc8 = 12, ; 0428 1 mem_pc9 = 13, ; 0429 1 mem_lg1 = 14, ; 0430 1 mem_lg2 = 15, ; 0431 1 mem_dat = 16; ; 0432 1 ; 0433 1 LITERAL ; 0434 1 err_min = 0, ; 0435 1 err_not_in_list = 0, ; 0436 1 err_not_same_size = 1, ; 0437 1 err_not_same_addr = 2, ; 0438 1 err_bad_leading = 3, ; 0439 1 err_bad_trailing = 4, ; 0440 1 err_ok = 5, ; 0441 1 err_max = 5; ; 0442 1 ; 0443 1 LITERAL ; 0444 1 memory_bucket_default = 4, ; 0445 1 string_bucket_default = 1, ; 0446 1 histogram_width_default = 80; ; 0447 1 ; 0448 1 LITERAL ; 0449 1 histo_gram = 0, ; 0450 1 histo_size = 1, ; 0451 1 histo_bucket = 2, ; 0452 1 histo_biggest = 3, ; 0453 1 histo_errors = 4, ; 0454 1 histo_vector = 5; ; 0455 1 ; 0456 1 LITERAL ; 0457 1 efn_vector = 64; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 10 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (6) ; 0459 1 GLOBAL ; 0460 1 fake_vm_log : INITIAL (fake_vm_log_enable), ; 0461 1 fake_vm_off : INITIAL (fake_vm_disable), ; 0462 1 fake_vm_string_off : INITIAL (fake_vm_string_disable), ; 0463 1 fake_vm_efn_off : INITIAL (fake_vm_efn_disable), ; 0464 1 fake_vm_vaxcrtl_load : INITIAL (fake_vm_vaxcrtl_request), ; 0465 1 fake_vm_xlibshr_load : INITIAL (fake_vm_xlibshr_request), ; 0466 1 fake_vm_vaxcrtl_off : INITIAL (fake_vm_vaxcrtl_disable), ; 0467 1 fake_vm_xlibshr_off : INITIAL (fake_vm_xlibshr_disable), ; 0468 1 fake_vm_real_free_off : INITIAL (fake_vm_real_free_disable), ; 0469 1 fake_vm_memory_bucket_size : INITIAL (fake_vm_memory_bucket_default), ; 0470 1 fake_vm_string_bucket_size : INITIAL (fake_vm_string_bucket_default), ; 0471 1 fake_vm_stop : INITIAL (1), ; 0472 1 fake_vm_check_active_list : INITIAL (0), ; 0473 1 fake_vm_histogram_width : INITIAL (histogram_width_default), ; 0474 1 fake_vm_output : VECTOR [1 + 132, BYTE], ; 0475 1 fake_vm_message : VECTOR [1 + 132, BYTE]; ; 0476 1 ; 0477 1 OWN ; 0478 1 image_loaded : INITIAL (0), ; 0479 1 disabled, ; 0480 1 string_disabled, ; 0481 1 efn_disabled, ; 0482 1 vaxcrtl_disabled, ; 0483 1 xlibshr_disabled, ; 0484 1 real_free_disabled, ; 0485 1 log_fab : $fab_decl, ; 0486 1 log_rab : $rab_decl, ; 0487 1 active_list : VECTOR [2], ; 0488 1 errors, ; 0489 1 memory_histo : VECTOR [histo_vector], ; 0490 1 string_histo : VECTOR [histo_vector], ; 0491 1 efn_list : VECTOR [efn_vector]; ; 0492 1 ; 0493 1 OWN ; 0494 1 get_vm_exit, get_vm_xfer, get_vm_addr, ; 0495 1 free_vm_exit, free_vm_xfer, free_vm_addr, ; 0496 1 sget1_dd_exit, sget1_dd_xfer, sget1_dd_addr, ; 0497 1 sfree1_dd_exit, sfree1_dd_xfer, sfree1_dd_addr, ; 0498 1 sfreen_dd_exit, sfreen_dd_xfer, sfreen_dd_addr, ; 0499 1 get_ef_exit, get_ef_xfer, get_ef_addr, ; 0500 1 free_ef_exit, free_ef_xfer, free_ef_addr; ; 0501 1 ; 0502 1 OWN ; 0503 1 c$$translate_exit, c$$translate_xfer, c$$translate_addr; ; 0504 1 ; 0505 1 OWN ; 0506 1 malloc_exit, malloc_xfer, malloc_addr, ; 0507 1 calloc_exit, calloc_xfer, calloc_addr, ; 0508 1 realloc_exit, realloc_xfer, realloc_addr, ; 0509 1 free_exit, free_xfer, free_addr, ; 0510 1 cfree_exit, cfree_xfer, cfree_addr; ; 0511 1 ; 0512 1 OWN ; 0513 1 malloc_opt_exit, malloc_opt_xfer, malloc_opt_addr, ; 0514 1 calloc_opt_exit, calloc_opt_xfer, calloc_opt_addr, ; 0515 1 realloc_opt_exit, realloc_opt_xfer, realloc_opt_addr, FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 11 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (6) ; 0516 1 free_opt_exit, free_opt_xfer, free_opt_addr, ; 0517 1 cfree_opt_exit, cfree_opt_xfer, cfree_opt_addr; ; 0518 1 ; 0519 1 OWN ; 0520 1 xmemory_malloc_exit, xmemory_malloc_xfer, xmemory_malloc_addr, ; 0521 1 xmemory_calloc_exit, xmemory_calloc_xfer, xmemory_calloc_addr, ; 0522 1 xmemory_realloc_exit, xmemory_realloc_xfer, xmemory_realloc_addr, ; 0523 1 xmemory_free_exit, xmemory_free_xfer, xmemory_free_addr; ; 0524 1 ; 0525 1 OWN ; 0526 1 lib_malloc_exit, lib_malloc_xfer, lib_malloc_addr, ; 0527 1 lib_calloc_exit, lib_calloc_xfer, lib_calloc_addr, ; 0528 1 lib_realloc_exit, lib_realloc_xfer, lib_realloc_addr, ; 0529 1 lib_free_exit, lib_free_xfer, lib_free_addr; ; 0530 1 ; 0531 1 LITERAL ; 0532 1 call_name_size = 1 + 13; ; 0533 1 ; 0534 1 BIND ; 0535 1 get_call_name = UPLIT BYTE (10, 'LIB$GET_VM ', ; 0536 1 12, 'LIB$SGET1_DD ', ; 0537 1 5, 'ALLOC ', ; 0538 1 9, 'ALLOC_OPT ', ; 0539 1 13, 'XMEMORY_ALLOC', ; 0540 1 12, 'LIB$VM_ALLOC ', ; 0541 1 3, '??? ', ; 0542 1 13, 'already freed') ; 0543 1 : VECTOR [8 * call_name_size, BYTE]; ; 0544 1 ; 0545 1 BIND ; 0546 1 free_call_name = UPLIT BYTE (11, 'LIB$FREE_VM ', ; 0547 1 13, 'LIB$SFREE1_DD', ; 0548 1 4, 'FREE ', ; 0549 1 8, 'FREE_OPT ', ; 0550 1 12, 'XMEMORY_FREE ', ; 0551 1 11, 'LIB$VM_FREE ', ; 0552 1 3, '??? ', ; 0553 1 13, 'already freed') ; 0554 1 : VECTOR [8 * call_name_size, BYTE]; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 12 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (7) ; 0556 1 ROUTINE ast_reenable (sig_vec : REF BLOCK [, BYTE], ; 0557 1 mch_vec : REF BLOCK [, BYTE], ; 0558 1 usr_vec : REF VECTOR) = ; 0559 2 BEGIN ; 0560 2 ; 0561 2 IF .sig_vec [CHF$L_SIG_NAME] NEQU SS$_DEBUG ; 0562 2 THEN ; 0563 2 IF .sig_vec [CHF$L_SIG_NAME] EQLU SS$_UNWIND ; 0564 2 THEN ; 0565 3 BEGIN ; 0566 3 IF ..usr_vec [1] ; 0567 3 THEN ; 0568 3 $SETAST (ENBFLG = 1); ; 0569 3 END ; 0570 2 ELSE ; 0571 2 IF ..usr_vec [2] ; 0572 2 THEN ; 0573 2 RETURN $call_same_args (lib$sig_to_ret); ; 0574 2 ; 0575 2 RETURN SS$_RESIGNAL; ; 0576 2 ; 0577 1 END; .TITLE FAKE_VM .IDENT \X01-005\ .PSECT _FAKE_VM_DATA, PIC,3 00000000G 00000 FAKE_VM_LOG:: .LONG FAKE_VM_LOG_ENABLE ; 00000000G 00004 FAKE_VM_OFF:: .LONG FAKE_VM_DISABLE ; 00000000G 00008 FAKE_VM_STRING_OFF:: .LONG FAKE_VM_STRING_DISABLE ; 00000000G 0000C FAKE_VM_EFN_OFF:: .LONG FAKE_VM_EFN_DISABLE ; 00000000G 00010 FAKE_VM_VAXCRTL_LOAD:: .LONG FAKE_VM_VAXCRTL_REQUEST ; 00000000G 00014 FAKE_VM_XLIBSHR_LOAD:: .LONG FAKE_VM_XLIBSHR_REQUEST ; 00000000G 00018 FAKE_VM_VAXCRTL_OFF:: .LONG FAKE_VM_VAXCRTL_DISABLE ; 00000000G 0001C FAKE_VM_XLIBSHR_OFF:: .LONG FAKE_VM_XLIBSHR_DISABLE ; 00000000G 00020 FAKE_VM_REAL_FREE_OFF:: .LONG FAKE_VM_REAL_FREE_DISABLE ; 00000000G 00024 FAKE_VM_MEMORY_BUCKET_SIZE:: .LONG FAKE_VM_MEMORY_BUCKET_DEFAULT ; 00000000G 00028 FAKE_VM_STRING_BUCKET_SIZE:: .LONG FAKE_VM_STRING_BUCKET_DEFAULT ; 00000001 0002C FAKE_VM_STOP:: .LONG 1 ; 00000000 00030 FAKE_VM_CHECK_ACTIVE_LIST:: .LONG 0 ; 00000050 00034 FAKE_VM_HISTOGRAM_WIDTH:: .LONG 80 ; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 13 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (7) 00038 FAKE_VM_OUTPUT:: .BLKB 133 000BD .BLKB 3 000C0 FAKE_VM_MESSAGE:: .BLKB 133 00145 .BLKB 3 00000000 00148 IMAGE_LOADED: .LONG 0 ; 0014C DISABLED: .BLKB 4 00150 STRING_DISABLED: .BLKB 4 00154 EFN_DISABLED: .BLKB 4 00158 VAXCRTL_DISABLED: .BLKB 4 0015C XLIBSHR_DISABLED: .BLKB 4 00160 REAL_FREE_DISABLED: .BLKB 4 00164 LOG_FAB:.BLKB 80 001B4 LOG_RAB:.BLKB 68 001F8 ACTIVE_LIST: .BLKB 8 00200 ERRORS: .BLKB 4 00204 MEMORY_HISTO: .BLKB 20 00218 STRING_HISTO: .BLKB 20 0022C EFN_LIST: .BLKB 256 0032C GET_VM_EXIT: .BLKB 4 00330 GET_VM_XFER: .BLKB 4 00334 GET_VM_ADDR: .BLKB 4 00338 FREE_VM_EXIT: .BLKB 4 0033C FREE_VM_XFER: .BLKB 4 00340 FREE_VM_ADDR: .BLKB 4 00344 SGET1_DD_EXIT: .BLKB 4 00348 SGET1_DD_XFER: .BLKB 4 0034C SGET1_DD_ADDR: .BLKB 4 00350 SFREE1_DD_EXIT: .BLKB 4 00354 SFREE1_DD_XFER: .BLKB 4 00358 SFREE1_DD_ADDR: .BLKB 4 0035C SFREEN_DD_EXIT: .BLKB 4 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 14 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (7) 00360 SFREEN_DD_XFER: .BLKB 4 00364 SFREEN_DD_ADDR: .BLKB 4 00368 GET_EF_EXIT: .BLKB 4 0036C GET_EF_XFER: .BLKB 4 00370 GET_EF_ADDR: .BLKB 4 00374 FREE_EF_EXIT: .BLKB 4 00378 FREE_EF_XFER: .BLKB 4 0037C FREE_EF_ADDR: .BLKB 4 00380 C$$TRANSLATE_EXIT: .BLKB 4 00384 C$$TRANSLATE_XFER: .BLKB 4 00388 C$$TRANSLATE_ADDR: .BLKB 4 0038C MALLOC_EXIT: .BLKB 4 00390 MALLOC_XFER: .BLKB 4 00394 MALLOC_ADDR: .BLKB 4 00398 CALLOC_EXIT: .BLKB 4 0039C CALLOC_XFER: .BLKB 4 003A0 CALLOC_ADDR: .BLKB 4 003A4 REALLOC_EXIT: .BLKB 4 003A8 REALLOC_XFER: .BLKB 4 003AC REALLOC_ADDR: .BLKB 4 003B0 FREE_EXIT: .BLKB 4 003B4 FREE_XFER: .BLKB 4 003B8 FREE_ADDR: .BLKB 4 003BC CFREE_EXIT: .BLKB 4 003C0 CFREE_XFER: .BLKB 4 003C4 CFREE_ADDR: .BLKB 4 003C8 MALLOC_OPT_EXIT: .BLKB 4 003CC MALLOC_OPT_XFER: .BLKB 4 003D0 MALLOC_OPT_ADDR: FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 15 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (7) .BLKB 4 003D4 CALLOC_OPT_EXIT: .BLKB 4 003D8 CALLOC_OPT_XFER: .BLKB 4 003DC CALLOC_OPT_ADDR: .BLKB 4 003E0 REALLOC_OPT_EXIT: .BLKB 4 003E4 REALLOC_OPT_XFER: .BLKB 4 003E8 REALLOC_OPT_ADDR: .BLKB 4 003EC FREE_OPT_EXIT: .BLKB 4 003F0 FREE_OPT_XFER: .BLKB 4 003F4 FREE_OPT_ADDR: .BLKB 4 003F8 CFREE_OPT_EXIT: .BLKB 4 003FC CFREE_OPT_XFER: .BLKB 4 00400 CFREE_OPT_ADDR: .BLKB 4 00404 XMEMORY_MALLOC_EXIT: .BLKB 4 00408 XMEMORY_MALLOC_XFER: .BLKB 4 0040C XMEMORY_MALLOC_ADDR: .BLKB 4 00410 XMEMORY_CALLOC_EXIT: .BLKB 4 00414 XMEMORY_CALLOC_XFER: .BLKB 4 00418 XMEMORY_CALLOC_ADDR: .BLKB 4 0041C XMEMORY_REALLOC_EXIT: .BLKB 4 00420 XMEMORY_REALLOC_XFER: .BLKB 4 00424 XMEMORY_REALLOC_ADDR: .BLKB 4 00428 XMEMORY_FREE_EXIT: .BLKB 4 0042C XMEMORY_FREE_XFER: .BLKB 4 00430 XMEMORY_FREE_ADDR: .BLKB 4 00434 LIB_MALLOC_EXIT: .BLKB 4 00438 LIB_MALLOC_XFER: .BLKB 4 0043C LIB_MALLOC_ADDR: .BLKB 4 00440 LIB_CALLOC_EXIT: .BLKB 4 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 16 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (7) 00444 LIB_CALLOC_XFER: .BLKB 4 00448 LIB_CALLOC_ADDR: .BLKB 4 0044C LIB_REALLOC_EXIT: .BLKB 4 00450 LIB_REALLOC_XFER: .BLKB 4 00454 LIB_REALLOC_ADDR: .BLKB 4 00458 LIB_FREE_EXIT: .BLKB 4 0045C LIB_FREE_XFER: .BLKB 4 00460 LIB_FREE_ADDR: .BLKB 4 .PSECT _FAKE_VM_CODE,NOWRT, SHR, PIC,2 0A 00000 P.AAA: .BYTE 10 ; 20 20 20 4D 56 5F 54 45 47 24 42 49 4C 00001 .ASCII \LIB$GET_VM \ ; 0C 0000E .BYTE 12 ; 20 44 44 5F 31 54 45 47 53 24 42 49 4C 0000F .ASCII \LIB$SGET1_DD \ ; 05 0001C .BYTE 5 ; 20 20 20 20 20 20 20 20 43 4F 4C 4C 41 0001D .ASCII \ALLOC \ ; 09 0002A .BYTE 9 ; 20 20 20 20 54 50 4F 5F 43 4F 4C 4C 41 0002B .ASCII \ALLOC_OPT \ ; 0D 00038 .BYTE 13 ; 43 4F 4C 4C 41 5F 59 52 4F 4D 45 4D 58 00039 .ASCII \XMEMORY_ALLOC\ ; 0C 00046 .BYTE 12 ; 20 43 4F 4C 4C 41 5F 4D 56 24 42 49 4C 00047 .ASCII \LIB$VM_ALLOC \ ; 03 00054 .BYTE 3 ; 20 20 20 20 20 20 20 20 20 20 3F 3F 3F 00055 .ASCII \??? \ ; 0D 00062 .BYTE 13 ; 64 65 65 72 66 20 79 64 61 65 72 6C 61 00063 .ASCII \already freed\ ; 0B 00070 P.AAB: .BYTE 11 ; 20 20 4D 56 5F 45 45 52 46 24 42 49 4C 00071 .ASCII \LIB$FREE_VM \ ; 0D 0007E .BYTE 13 ; 44 44 5F 31 45 45 52 46 53 24 42 49 4C 0007F .ASCII \LIB$SFREE1_DD\ ; 04 0008C .BYTE 4 ; 20 20 20 20 20 20 20 20 20 45 45 52 46 0008D .ASCII \FREE \ ; 08 0009A .BYTE 8 ; 20 20 20 20 20 54 50 4F 5F 45 45 52 46 0009B .ASCII \FREE_OPT \ ; 0C 000A8 .BYTE 12 ; 20 45 45 52 46 5F 59 52 4F 4D 45 4D 58 000A9 .ASCII \XMEMORY_FREE \ ; 0B 000B6 .BYTE 11 ; 20 20 45 45 52 46 5F 4D 56 24 42 49 4C 000B7 .ASCII \LIB$VM_FREE \ ; 03 000C4 .BYTE 3 ; 20 20 20 20 20 20 20 20 20 20 3F 3F 3F 000C5 .ASCII \??? \ ; 0D 000D2 .BYTE 13 ; 64 65 65 72 66 20 79 64 61 65 72 6C 61 000D3 .ASCII \already freed\ ; GET_CALL_NAME= P.AAA FREE_CALL_NAME= P.AAB .EXTRN LIB$FIND_IMAGE_SYMBOL .EXTRN LIB$FREE_EF, LIB$FREE_VM .EXTRN LIB$GET_EF, LIB$GET_INPUT FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 17 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (7) .EXTRN LIB$GET_VM, LIB$PUT_OUTPUT .EXTRN LIB$SFREE1_DD, LIB$SFREEN_DD .EXTRN LIB$SGET1_DD, LIB$SIG_TO_RET .EXTRN LIB$SIGNAL, LIB$STOP .EXTRN LIB$_INTLOGERR, SYS$SETAST .WEAK C$$TRANSLATE, MALLOC .WEAK CALLOC, REALLOC .WEAK FREE, CFREE, VAXC$MALLOC_OPT .WEAK VAXC$CALLOC_OPT .WEAK VAXC$REALLOC_OPT .WEAK VAXC$FREE_OPT, VAXC$CFREE_OPT .WEAK XMEMORY_MALLOC, XMEMORY_CALLOC .WEAK XMEMORY_REALLOC .WEAK XMEMORY_FREE, LIB$VM_MALLOC .WEAK LIB$VM_CALLOC, LIB$VM_REALLOC .WEAK LIB$VM_FREE, FAKE_VM_LOG_ENABLE .WEAK FAKE_VM_DISABLE .WEAK FAKE_VM_STRING_DISABLE .WEAK FAKE_VM_EFN_DISABLE .WEAK FAKE_VM_VAXCRTL_REQUEST .WEAK FAKE_VM_XLIBSHR_REQUEST .WEAK FAKE_VM_VAXCRTL_DISABLE .WEAK FAKE_VM_XLIBSHR_DISABLE .WEAK FAKE_VM_REAL_FREE_DISABLE .WEAK FAKE_VM_MEMORY_BUCKET_DEFAULT .WEAK FAKE_VM_STRING_BUCKET_DEFAULT 0000 00000 AST_REENABLE: .WORD Save nothing ; 0556 51 04 AC D0 00002 MOVL SIG_VEC, R1 ; 0561 0000046C 8F 04 A1 D1 00006 CMPL 4(R1), #1132 ; 29 13 0000E BEQL 2$ ; 50 0C AC D0 00010 MOVL USR_VEC, R0 ; 0566 00000920 8F 04 A1 D1 00014 CMPL 4(R1), #2336 ; 0563 0F 12 0001C BNEQ 1$ ; 17 04 B0 E9 0001E BLBC @4(R0), 2$ ; 0566 01 DD 00022 PUSHL #1 ; 0568 00000000G 00 01 FB 00024 CALLS #1, SYS$SETAST ; 0C 11 0002B BRB 2$ ; 08 08 B0 E9 0002D 1$: BLBC @8(R0), 2$ ; 0571 00000000G 00 6C FA 00031 CALLG (AP), LIB$SIG_TO_RET ; 0573 04 00038 RET ; 50 0918 8F 3C 00039 2$: MOVZWL #2328, R0 ; 0575 04 0003E RET ; ; Routine Size: 63 bytes, Routine Base: _FAKE_VM_CODE + 00E0 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 18 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (8) ; 0579 1 ROUTINE load_image : NOVALUE = ; 0580 2 BEGIN ; 0581 2 ; 0582 2 ROUTINE exit_vec_get_vm = RETURN lib$get_vm; 0000 00000 EXIT_VEC_GET_VM: .WORD Save nothing ; 0582 50 00000000G 00 9E 00002 MOVAB LIB$GET_VM, R0 ; 04 00009 RET ; ; Routine Size: 10 bytes, Routine Base: _FAKE_VM_CODE + 011F ; 0583 2 ROUTINE exit_vec_free_vm = RETURN lib$free_vm; 0000 00000 EXIT_VEC_FREE_VM: .WORD Save nothing ; 0583 50 00000000G 00 9E 00002 MOVAB LIB$FREE_VM, R0 ; 04 00009 RET ; ; Routine Size: 10 bytes, Routine Base: _FAKE_VM_CODE + 0129 ; 0584 2 ROUTINE exit_vec_sget1_dd = RETURN lib$sget1_dd; 0000 00000 EXIT_VEC_SGET1_DD: .WORD Save nothing ; 0584 50 00000000G 00 9E 00002 MOVAB LIB$SGET1_DD, R0 ; 04 00009 RET ; ; Routine Size: 10 bytes, Routine Base: _FAKE_VM_CODE + 0133 ; 0585 2 ROUTINE exit_vec_sfree1_dd = RETURN lib$sfree1_dd; 0000 00000 EXIT_VEC_SFREE1_DD: .WORD Save nothing ; 0585 50 00000000G 00 9E 00002 MOVAB LIB$SFREE1_DD, R0 ; 04 00009 RET ; ; Routine Size: 10 bytes, Routine Base: _FAKE_VM_CODE + 013D FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 19 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (8) ; 0586 2 ROUTINE exit_vec_sfreen_dd = RETURN lib$sfreen_dd; 0000 00000 EXIT_VEC_SFREEN_DD: .WORD Save nothing ; 0586 50 00000000G 00 9E 00002 MOVAB LIB$SFREEN_DD, R0 ; 04 00009 RET ; ; Routine Size: 10 bytes, Routine Base: _FAKE_VM_CODE + 0147 ; 0587 2 ROUTINE exit_vec_get_ef = RETURN lib$get_ef; 0000 00000 EXIT_VEC_GET_EF: .WORD Save nothing ; 0587 50 00000000G 00 9E 00002 MOVAB LIB$GET_EF, R0 ; 04 00009 RET ; ; Routine Size: 10 bytes, Routine Base: _FAKE_VM_CODE + 0151 ; 0588 2 ROUTINE exit_vec_free_ef = RETURN lib$free_ef; 0000 00000 EXIT_VEC_FREE_EF: .WORD Save nothing ; 0588 50 00000000G 00 9E 00002 MOVAB LIB$FREE_EF, R0 ; 04 00009 RET ; ; Routine Size: 10 bytes, Routine Base: _FAKE_VM_CODE + 015B ; 0589 2 ; 0590 2 ROUTINE exit_vec_c$$translate = RETURN c$$translate; 0000 00000 EXIT_VEC_C$$TRANSLATE: .WORD Save nothing ; 0590 50 00000000G 00 9E 00002 MOVAB C$$TRANSLATE, R0 ; 04 00009 RET ; ; Routine Size: 10 bytes, Routine Base: _FAKE_VM_CODE + 0165 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 20 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (8) ; 0591 2 ; 0592 2 ROUTINE exit_vec_malloc = RETURN malloc; 0000 00000 EXIT_VEC_MALLOC: .WORD Save nothing ; 0592 50 00000000G 00 9E 00002 MOVAB MALLOC, R0 ; 04 00009 RET ; ; Routine Size: 10 bytes, Routine Base: _FAKE_VM_CODE + 016F ; 0593 2 ROUTINE exit_vec_calloc = RETURN calloc; 0000 00000 EXIT_VEC_CALLOC: .WORD Save nothing ; 0593 50 00000000G 00 9E 00002 MOVAB CALLOC, R0 ; 04 00009 RET ; ; Routine Size: 10 bytes, Routine Base: _FAKE_VM_CODE + 0179 ; 0594 2 ROUTINE exit_vec_realloc = RETURN realloc; 0000 00000 EXIT_VEC_REALLOC: .WORD Save nothing ; 0594 50 00000000G 00 9E 00002 MOVAB REALLOC, R0 ; 04 00009 RET ; ; Routine Size: 10 bytes, Routine Base: _FAKE_VM_CODE + 0183 ; 0595 2 ROUTINE exit_vec_free = RETURN free; 0000 00000 EXIT_VEC_FREE: .WORD Save nothing ; 0595 50 00000000G 00 9E 00002 MOVAB FREE, R0 ; 04 00009 RET ; ; Routine Size: 10 bytes, Routine Base: _FAKE_VM_CODE + 018D FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 21 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (8) ; 0596 2 ROUTINE exit_vec_cfree = RETURN cfree; 0000 00000 EXIT_VEC_CFREE: .WORD Save nothing ; 0596 50 00000000G 00 9E 00002 MOVAB CFREE, R0 ; 04 00009 RET ; ; Routine Size: 10 bytes, Routine Base: _FAKE_VM_CODE + 0197 ; 0597 2 ; 0598 2 ROUTINE exit_vec_malloc_opt = RETURN vaxc$malloc_opt; 0000 00000 EXIT_VEC_MALLOC_OPT: .WORD Save nothing ; 0598 50 00000000G 00 9E 00002 MOVAB VAXC$MALLOC_OPT, R0 ; 04 00009 RET ; ; Routine Size: 10 bytes, Routine Base: _FAKE_VM_CODE + 01A1 ; 0599 2 ROUTINE exit_vec_calloc_opt = RETURN vaxc$calloc_opt; 0000 00000 EXIT_VEC_CALLOC_OPT: .WORD Save nothing ; 0599 50 00000000G 00 9E 00002 MOVAB VAXC$CALLOC_OPT, R0 ; 04 00009 RET ; ; Routine Size: 10 bytes, Routine Base: _FAKE_VM_CODE + 01AB ; 0600 2 ROUTINE exit_vec_realloc_opt = RETURN vaxc$realloc_opt; 0000 00000 EXIT_VEC_REALLOC_OPT: .WORD Save nothing ; 0600 50 00000000G 00 9E 00002 MOVAB VAXC$REALLOC_OPT, R0 ; 04 00009 RET ; ; Routine Size: 10 bytes, Routine Base: _FAKE_VM_CODE + 01B5 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 22 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (8) ; 0601 2 ROUTINE exit_vec_free_opt = RETURN vaxc$free_opt; 0000 00000 EXIT_VEC_FREE_OPT: .WORD Save nothing ; 0601 50 00000000G 00 9E 00002 MOVAB VAXC$FREE_OPT, R0 ; 04 00009 RET ; ; Routine Size: 10 bytes, Routine Base: _FAKE_VM_CODE + 01BF ; 0602 2 ROUTINE exit_vec_cfree_opt = RETURN vaxc$cfree_opt; 0000 00000 EXIT_VEC_CFREE_OPT: .WORD Save nothing ; 0602 50 00000000G 00 9E 00002 MOVAB VAXC$CFREE_OPT, R0 ; 04 00009 RET ; ; Routine Size: 10 bytes, Routine Base: _FAKE_VM_CODE + 01C9 ; 0603 2 ; 0604 2 ROUTINE exit_vec_xmemory_malloc = RETURN xmemory_malloc; 0000 00000 EXIT_VEC_XMEMORY_MALLOC: .WORD Save nothing ; 0604 50 00000000G 00 9E 00002 MOVAB XMEMORY_MALLOC, R0 ; 04 00009 RET ; ; Routine Size: 10 bytes, Routine Base: _FAKE_VM_CODE + 01D3 ; 0605 2 ROUTINE exit_vec_xmemory_calloc = RETURN xmemory_calloc; 0000 00000 EXIT_VEC_XMEMORY_CALLOC: .WORD Save nothing ; 0605 50 00000000G 00 9E 00002 MOVAB XMEMORY_CALLOC, R0 ; 04 00009 RET ; ; Routine Size: 10 bytes, Routine Base: _FAKE_VM_CODE + 01DD FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 23 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (8) ; 0606 2 ROUTINE exit_vec_xmemory_realloc = RETURN xmemory_realloc; 0000 00000 EXIT_VEC_XMEMORY_REALLOC: .WORD Save nothing ; 0606 50 00000000G 00 9E 00002 MOVAB XMEMORY_REALLOC, R0 ; 04 00009 RET ; ; Routine Size: 10 bytes, Routine Base: _FAKE_VM_CODE + 01E7 ; 0607 2 ROUTINE exit_vec_xmemory_free = RETURN xmemory_free; 0000 00000 EXIT_VEC_XMEMORY_FREE: .WORD Save nothing ; 0607 50 00000000G 00 9E 00002 MOVAB XMEMORY_FREE, R0 ; 04 00009 RET ; ; Routine Size: 10 bytes, Routine Base: _FAKE_VM_CODE + 01F1 ; 0608 2 ; 0609 2 ROUTINE exit_vec_lib_malloc = RETURN lib$vm_malloc; 0000 00000 EXIT_VEC_LIB_MALLOC: .WORD Save nothing ; 0609 50 00000000G 00 9E 00002 MOVAB LIB$VM_MALLOC, R0 ; 04 00009 RET ; ; Routine Size: 10 bytes, Routine Base: _FAKE_VM_CODE + 01FB ; 0610 2 ROUTINE exit_vec_lib_calloc = RETURN lib$vm_calloc; 0000 00000 EXIT_VEC_LIB_CALLOC: .WORD Save nothing ; 0610 50 00000000G 00 9E 00002 MOVAB LIB$VM_CALLOC, R0 ; 04 00009 RET ; ; Routine Size: 10 bytes, Routine Base: _FAKE_VM_CODE + 0205 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 24 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (8) ; 0611 2 ROUTINE exit_vec_lib_realloc = RETURN lib$vm_realloc; 0000 00000 EXIT_VEC_LIB_REALLOC: .WORD Save nothing ; 0611 50 00000000G 00 9E 00002 MOVAB LIB$VM_REALLOC, R0 ; 04 00009 RET ; ; Routine Size: 10 bytes, Routine Base: _FAKE_VM_CODE + 020F ; 0612 2 ROUTINE exit_vec_lib_free = RETURN lib$vm_free; 0000 00000 EXIT_VEC_LIB_FREE: .WORD Save nothing ; 0612 50 00000000G 00 9E 00002 MOVAB LIB$VM_FREE, R0 ; 04 00009 RET ; ; Routine Size: 10 bytes, Routine Base: _FAKE_VM_CODE + 0219 ; 0613 2 ; 0614 2 ROUTINE real_addr (exit_vec_rout : REF BLOCK [, BYTE], ; 0615 2 exit_addr : REF VECTOR [1], ; 0616 2 xfer_addr : REF VECTOR [1], ; 0617 2 rout_addr : REF VECTOR [1], ; 0618 2 image_to_load : REF VECTOR [, BYTE], ; 0619 2 name : REF VECTOR [, BYTE]) : NOVALUE = ; 0620 3 BEGIN ; 0621 3 ; 0622 3 ROUTINE find_addr (image_to_load : REF VECTOR [, BYTE], ; 0623 3 name : REF VECTOR [, BYTE], ; 0624 3 xfer_addr : REF VECTOR [1], ; 0625 3 rout_addr : REF VECTOR [1]) : NOVALUE = ; 0626 4 BEGIN ; 0627 4 ; 0628 4 ROUTINE find_image_symbol = ; 0629 5 BEGIN ; 0630 5 ENABLE ; 0631 5 lib$sig_to_ret; ; 0632 5 RETURN $call_same_args (lib$find_image_symbol); ; 0633 4 END; 0000 00000 FIND_IMAGE_SYMBOL: FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 25 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (8) .WORD Save nothing ; 0628 6D 0009 CF DE 00002 MOVAL 1$, (FP) ; 0631 00000000G 00 6C FA 00007 CALLG (AP), LIB$FIND_IMAGE_SYMBOL ; 0632 04 0000E RET ; 0000 0000F 1$: .WORD Save nothing ; 7E D4 00011 CLRL -(SP) ; 5E DD 00013 PUSHL SP ; 7E 04 AC 7D 00015 MOVQ 4(AP), -(SP) ; 00000000G 00 03 FB 00019 CALLS #3, LIB$SIG_TO_RET ; 04 00020 RET ; ; Routine Size: 33 bytes, Routine Base: _FAKE_VM_CODE + 0223 ; 0634 4 ; 0635 4 LOCAL ; 0636 4 image : VECTOR [2], ; 0637 4 symbol : VECTOR [2], ; 0638 4 xfer : REF BLOCK [, BYTE], ; 0639 4 rout : REF BLOCK [, BYTE]; ; 0640 4 ; 0641 4 image [0] = .image_to_load [0]; ; 0642 4 image [1] = image_to_load [1]; ; 0643 4 ; 0644 4 symbol [0] = .name [0]; ; 0645 4 symbol [1] = name [1]; ; 0646 4 ; 0647 4 IF NOT find_image_symbol (image [0], symbol [0], xfer_addr [0]) ; 0648 4 THEN ; 0649 5 BEGIN ; 0650 5 xfer_addr [0] = 0; ; 0651 5 RETURN; ; 0652 4 END; ; 0653 4 ; 0654 4 xfer = .xfer_addr [0]; ; 0655 4 ; 0656 4 ! L^ JMP ; 0657 5 IF .xfer [2, 0, 16, 0] NEQU ((%X'0EF' * 256) + %X'017') ; 0658 4 THEN ; 0659 4 RETURN lib$stop (lib$_intlogerr); ; 0660 4 ; 0661 4 rout = xfer [8, 0, 0, 0] + .xfer [4, 0, 32, 0] - 2; ; 0662 4 rout_addr [0] = rout [0, 0, 0, 0]; ; 0663 4 ; 0664 4 IF .rout [0, 0, 16, 0] NEQU .xfer [0, 0, 16, 0] ; 0665 4 THEN ; 0666 4 RETURN lib$stop (lib$_intlogerr); ; 0667 4 ; 0668 3 END; 0004 00000 FIND_ADDR: .WORD Save R2 ; 0622 5E 0C C2 00002 SUBL2 #12, SP ; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 26 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (8) 04 AE 04 BC 9A 00005 MOVZBL @IMAGE_TO_LOAD, IMAGE ; 0641 08 AE 04 AC 01 C1 0000A ADDL3 #1, IMAGE_TO_LOAD, IMAGE+4 ; 0642 7E 08 BC 9A 00010 MOVZBL @NAME, SYMBOL ; 0644 04 AE 08 AC 01 C1 00014 ADDL3 #1, NAME, SYMBOL+4 ; 0645 0C AC DD 0001A PUSHL XFER_ADDR ; 0647 04 AE 9F 0001D PUSHAB SYMBOL ; 10 AE 9F 00020 PUSHAB IMAGE ; B8 AF 03 FB 00023 CALLS #3, FIND_IMAGE_SYMBOL ; 04 50 E8 00027 BLBS R0, 1$ ; 0C BC D4 0002A CLRL @XFER_ADDR ; 0650 04 0002D RET ; 0651 52 0C BC D0 0002E 1$: MOVL @XFER_ADDR, XFER ; 0654 EF17 8F 02 A2 B1 00032 CMPW 2(XFER), #61207 ; 0657 11 12 00038 BNEQ 2$ ; 50 52 04 A2 C1 0003A ADDL3 4(XFER), XFER, R0 ; 0661 50 06 C0 0003F ADDL2 #6, ROUT ; 10 BC 50 D0 00042 MOVL ROUT, @ROUT_ADDR ; 0662 62 60 B1 00046 CMPW (ROUT), (XFER) ; 0664 0D 13 00049 BEQL 3$ ; 00000000G 8F DD 0004B 2$: PUSHL #LIB$_INTLOGERR ; 0666 00000000G 00 01 FB 00051 CALLS #1, LIB$STOP ; 04 00058 3$: RET ; 0668 ; Routine Size: 89 bytes, Routine Base: _FAKE_VM_CODE + 0244 ; 0669 3 ; 0670 3 LOCAL ; 0671 3 rout : REF BLOCK [, BYTE], ; 0672 3 xfer : REF BLOCK [, BYTE]; ; 0673 3 ; 0674 3 exit_addr [0] = 0; ; 0675 3 xfer_addr [0] = 0; ; 0676 3 rout_addr [0] = 0; ; 0677 3 ; 0678 3 IF .exit_vec_rout [0, 0, 16, 0] NEQU 0 ; 0679 3 THEN ; 0680 3 RETURN lib$stop (lib$_intlogerr); ; 0681 3 ; 0682 3 ! RET R0 ; 0683 4 IF .exit_vec_rout [8, 0, 16, 0] NEQU ((%X'004' * 256) + %X'050') ; 0684 3 THEN ; 0685 3 RETURN lib$stop (lib$_intlogerr); ; 0686 3 ; 0687 3 ! @L^ MOVAB ; 0688 4 IF .exit_vec_rout [2, 0, 16, 0] NEQU ((%X'0FF' * 256) + %X'09E') ; 0689 3 THEN ; 0690 4 BEGIN ; 0691 4 ; 0692 4 ! @# MOVAB ; 0693 5 IF (.exit_vec_rout [2, 0, 16, 0] EQLU ((%X'09F' * 256) + %X'09E')) ; 0694 5 AND (.exit_vec_rout [4, 0, 32, 0] EQLA 0) ; 0695 4 THEN ; 0696 5 BEGIN ; 0697 5 ; 0698 5 IF image_to_load [0] NEQA 0 ; 0699 5 THEN FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 27 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (8) ; 0700 5 find_addr (image_to_load [0], ; 0701 5 name [0], ; 0702 5 xfer_addr [0], ; 0703 5 rout_addr [0]); ; 0704 5 ; 0705 5 RETURN; ; 0706 5 ; 0707 4 END; ; 0708 4 ; 0709 4 ! L^ MOVAB ; 0710 5 IF .exit_vec_rout [2, 0, 16, 0] NEQU ((%X'0EF' * 256) + %X'09E') ; 0711 4 THEN ; 0712 4 RETURN lib$stop (lib$_intlogerr); ; 0713 4 ; 0714 4 rout = exit_vec_rout [8, 0, 0, 0] + .exit_vec_rout [4, 0, 32, 0]; ; 0715 4 rout_addr [0] = rout [0, 0, 0, 0]; ; 0716 4 ; 0717 4 RETURN; ; 0718 4 ; 0719 3 END; ; 0720 3 ; 0721 3 xfer = exit_vec_rout [8, 0, 0, 0] + .exit_vec_rout [4, 0, 32, 0]; ; 0722 3 exit_addr [0] = xfer [0, 0, 0, 0]; ; 0723 3 ; 0724 3 xfer = .xfer [0, 0, 32, 0]; ; 0725 3 xfer_addr [0] = xfer [0, 0, 0, 0]; ; 0726 3 ; 0727 3 ! L^ JMP ; 0728 4 IF .xfer [2, 0, 16, 0] NEQU ((%X'0EF' * 256) + %X'017') ; 0729 3 THEN ; 0730 3 RETURN lib$stop (lib$_intlogerr); ; 0731 3 ; 0732 3 rout = xfer [8, 0, 0, 0] + .xfer [4, 0, 32, 0] - 2; ; 0733 3 rout_addr [0] = rout [0, 0, 0, 0]; ; 0734 3 ; 0735 3 IF .rout [0, 0, 16, 0] NEQU .xfer [0, 0, 16, 0] ; 0736 3 THEN ; 0737 3 RETURN lib$stop (lib$_intlogerr); ; 0738 3 ; 0739 2 END; 000C 00000 REAL_ADDR: .WORD Save R2,R3 ; 0614 08 BC D4 00002 CLRL @EXIT_ADDR ; 0674 0C BC D4 00005 CLRL @XFER_ADDR ; 0675 10 BC D4 00008 CLRL @ROUT_ADDR ; 0676 52 04 AC D0 0000B MOVL EXIT_VEC_ROUT, R2 ; 0678 62 B5 0000F TSTW (R2) ; 72 12 00011 BNEQ 3$ ; 0450 8F 08 A2 B1 00013 CMPW 8(R2), #1104 ; 0683 6A 12 00019 BNEQ 3$ ; FF9E 8F 02 A2 B1 0001B CMPW 2(R2), #65438 ; 0688 36 13 00021 BEQL 2$ ; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 28 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (8) 9F9E 8F 02 A2 B1 00023 CMPW 2(R2), #40862 ; 0693 18 12 00029 BNEQ 1$ ; 04 A2 D5 0002B TSTL 4(R2) ; 0694 13 12 0002E BNEQ 1$ ; 14 AC D5 00030 TSTL IMAGE_TO_LOAD ; 0698 5D 13 00033 BEQL 4$ ; 7E 0C AC 7D 00035 MOVQ XFER_ADDR, -(SP) ; 0700 7E 14 AC 7D 00039 MOVQ IMAGE_TO_LOAD, -(SP) ; 0701 FF65 CF 04 FB 0003D CALLS #4, FIND_ADDR ; 04 00042 RET ; 0705 EF9E 8F 02 A2 B1 00043 1$: CMPW 2(R2), #61342 ; 0710 3A 12 00049 BNEQ 3$ ; 50 52 04 A2 C1 0004B ADDL3 4(R2), R2, R0 ; 0714 53 08 A0 9E 00050 MOVAB 8(R0), ROUT ; 10 BC 53 D0 00054 MOVL ROUT, @ROUT_ADDR ; 0715 04 00058 RET ; 0717 52 04 A2 C0 00059 2$: ADDL2 4(R2), R2 ; 0721 52 08 C0 0005D ADDL2 #8, XFER ; 08 BC 52 D0 00060 MOVL XFER, @EXIT_ADDR ; 0722 52 62 D0 00064 MOVL (XFER), XFER ; 0724 0C BC 52 D0 00067 MOVL XFER, @XFER_ADDR ; 0725 EF17 8F 02 A2 B1 0006B CMPW 2(XFER), #61207 ; 0728 12 12 00071 BNEQ 3$ ; 50 52 04 A2 C1 00073 ADDL3 4(XFER), XFER, R0 ; 0732 53 06 A0 9E 00078 MOVAB 6(R0), ROUT ; 10 BC 53 D0 0007C MOVL ROUT, @ROUT_ADDR ; 0733 62 63 B1 00080 CMPW (ROUT), (XFER) ; 0735 0D 13 00083 BEQL 4$ ; 00000000G 8F DD 00085 3$: PUSHL #LIB$_INTLOGERR ; 0737 00000000G 00 01 FB 0008B CALLS #1, LIB$STOP ; 04 00092 4$: RET ; 0739 ; Routine Size: 147 bytes, Routine Base: _FAKE_VM_CODE + 029D ; 0740 2 ; 0741 2 LOCAL ; 0742 2 image_to_load : REF VECTOR [, BYTE]; ; 0743 2 ; 0744 2 disabled = .fake_vm_off; ; 0745 2 string_disabled = .fake_vm_string_off OR .disabled; ; 0746 2 efn_disabled = .fake_vm_efn_off OR .disabled; ; 0747 2 vaxcrtl_disabled = .fake_vm_vaxcrtl_off OR .disabled; ; 0748 2 xlibshr_disabled = .fake_vm_xlibshr_off OR .disabled; ; 0749 2 real_free_disabled = .fake_vm_real_free_off; ; 0750 2 ; 0751 2 active_list [0] = active_list [0]; ; 0752 2 active_list [1] = active_list [0]; ; 0753 2 ; 0754 2 errors = 0; ; 0755 2 ; 0756 2 memory_histo [histo_gram] = 0; ; 0757 2 memory_histo [histo_size] = 0; ; 0758 2 memory_histo [histo_bucket] = .fake_vm_memory_bucket_size; ; 0759 2 IF .memory_histo [histo_bucket] EQLU 0 ; 0760 2 THEN ; 0761 2 memory_histo [histo_bucket] = memory_bucket_default; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 29 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (8) ; 0762 2 memory_histo [histo_biggest] = 0; ; 0763 2 memory_histo [histo_errors] = 0; ; 0764 2 ; 0765 2 string_histo [histo_gram] = 0; ; 0766 2 string_histo [histo_size] = 0; ; 0767 2 string_histo [histo_bucket] = .fake_vm_string_bucket_size; ; 0768 2 IF .string_histo [histo_bucket] EQLU 0 ; 0769 2 THEN ; 0770 2 string_histo [histo_bucket] = string_bucket_default; ; 0771 2 string_histo [histo_biggest] = 0; ; 0772 2 string_histo [histo_errors] = 0; ; 0773 2 ; 0774 2 CH$FILL (0, %ALLOCATION (efn_list), efn_list [0]); ; 0775 2 ; 0776 2 real_addr (exit_vec_get_vm, ; 0777 2 get_vm_exit, ; 0778 2 get_vm_xfer, ; 0779 2 get_vm_addr, ; 0780 2 0, ; 0781 2 0); ; 0782 2 real_addr (exit_vec_free_vm, ; 0783 2 free_vm_exit, ; 0784 2 free_vm_xfer, ; 0785 2 free_vm_addr, ; 0786 2 0, ; 0787 2 0); ; 0788 2 real_addr (exit_vec_sget1_dd, ; 0789 2 sget1_dd_exit, ; 0790 2 sget1_dd_xfer, ; 0791 2 sget1_dd_addr, ; 0792 2 0, ; 0793 2 0); ; 0794 2 real_addr (exit_vec_sfree1_dd, ; 0795 2 sfree1_dd_exit, ; 0796 2 sfree1_dd_xfer, ; 0797 2 sfree1_dd_addr, ; 0798 2 0, ; 0799 2 0); ; 0800 2 real_addr (exit_vec_sfreen_dd, ; 0801 2 sfreen_dd_exit, ; 0802 2 sfreen_dd_xfer, ; 0803 2 sfreen_dd_addr, ; 0804 2 0, ; 0805 2 0); ; 0806 2 real_addr (exit_vec_get_ef, ; 0807 2 get_ef_exit, ; 0808 2 get_ef_xfer, ; 0809 2 get_ef_addr, ; 0810 2 0, ; 0811 2 0); ; 0812 2 real_addr (exit_vec_free_ef, ; 0813 2 free_ef_exit, ; 0814 2 free_ef_xfer, ; 0815 2 free_ef_addr, ; 0816 2 0, ; 0817 2 0); ; 0818 2 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 30 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (8) ; 0819 2 image_to_load = 0; ; 0820 2 IF NOT .vaxcrtl_disabled ; 0821 2 THEN ; 0822 2 IF .fake_vm_vaxcrtl_load ; 0823 2 THEN ; 0824 2 image_to_load = UPLIT BYTE (%ASCIC 'VAXCRTL'); ; 0825 2 ; 0826 2 real_addr (exit_vec_c$$translate, ; 0827 2 c$$translate_exit, ; 0828 2 c$$translate_xfer, ; 0829 2 c$$translate_addr, ; 0830 2 image_to_load [0], ; 0831 2 UPLIT BYTE (%ASCIC 'C$$TRANSLATE')); ; 0832 2 ; 0833 2 real_addr (exit_vec_malloc, ; 0834 2 malloc_exit, ; 0835 2 malloc_xfer, ; 0836 2 malloc_addr, ; 0837 2 image_to_load [0], ; 0838 2 UPLIT BYTE (%ASCIC 'MALLOC')); ; 0839 2 real_addr (exit_vec_calloc, ; 0840 2 calloc_exit, ; 0841 2 calloc_xfer, ; 0842 2 calloc_addr, ; 0843 2 image_to_load [0], ; 0844 2 UPLIT BYTE (%ASCIC 'CALLOC')); ; 0845 2 real_addr (exit_vec_realloc, ; 0846 2 realloc_exit, ; 0847 2 realloc_xfer, ; 0848 2 realloc_addr, ; 0849 2 image_to_load [0], ; 0850 2 UPLIT BYTE (%ASCIC 'REALLOC')); ; 0851 2 real_addr (exit_vec_free, ; 0852 2 free_exit, ; 0853 2 free_xfer, ; 0854 2 free_addr, ; 0855 2 image_to_load [0], ; 0856 2 UPLIT BYTE (%ASCIC 'FREE')); ; 0857 2 real_addr (exit_vec_cfree, ; 0858 2 cfree_exit, ; 0859 2 cfree_xfer, ; 0860 2 cfree_addr, ; 0861 2 image_to_load [0], ; 0862 2 UPLIT BYTE (%ASCIC 'CFREE')); ; 0863 2 ; 0864 2 real_addr (exit_vec_malloc_opt, ; 0865 2 malloc_opt_exit, ; 0866 2 malloc_opt_xfer, ; 0867 2 malloc_opt_addr, ; 0868 2 image_to_load [0], ; 0869 2 UPLIT BYTE (%ASCIC 'VAXC$MALLOC_OPT')); ; 0870 2 real_addr (exit_vec_calloc_opt, ; 0871 2 calloc_opt_exit, ; 0872 2 calloc_opt_xfer, ; 0873 2 calloc_opt_addr, ; 0874 2 image_to_load [0], ; 0875 2 UPLIT BYTE (%ASCIC 'VAXC$CALLOC_OPT')); FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 31 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (8) ; 0876 2 real_addr (exit_vec_realloc_opt, ; 0877 2 realloc_opt_exit, ; 0878 2 realloc_opt_xfer, ; 0879 2 realloc_opt_addr, ; 0880 2 image_to_load [0], ; 0881 2 UPLIT BYTE (%ASCIC 'VAXC$REALLOC_OPT')); ; 0882 2 real_addr (exit_vec_free_opt, ; 0883 2 free_opt_exit, ; 0884 2 free_opt_xfer, ; 0885 2 free_opt_addr, ; 0886 2 image_to_load [0], ; 0887 2 UPLIT BYTE (%ASCIC 'VAXC$FREE_OPT')); ; 0888 2 real_addr (exit_vec_cfree_opt, ; 0889 2 cfree_opt_exit, ; 0890 2 cfree_opt_xfer, ; 0891 2 cfree_opt_addr, ; 0892 2 image_to_load [0], ; 0893 2 UPLIT BYTE (%ASCIC 'VAXC$CFREE_OPT')); ; 0894 2 ; 0895 2 image_to_load = 0; ; 0896 2 IF NOT .xlibshr_disabled ; 0897 2 THEN ; 0898 2 IF .fake_vm_xlibshr_load ; 0899 2 THEN ; 0900 2 image_to_load = UPLIT BYTE (%ASCIC 'DECW$XLIBSHR'); ; 0901 2 ; 0902 2 real_addr (exit_vec_xmemory_malloc, ; 0903 2 xmemory_malloc_exit, ; 0904 2 xmemory_malloc_xfer, ; 0905 2 xmemory_malloc_addr, ; 0906 2 image_to_load [0], ; 0907 2 UPLIT BYTE (%ASCIC 'XMEMORY_MALLOC')); ; 0908 2 real_addr (exit_vec_xmemory_calloc, ; 0909 2 xmemory_calloc_exit, ; 0910 2 xmemory_calloc_xfer, ; 0911 2 xmemory_calloc_addr, ; 0912 2 image_to_load [0], ; 0913 2 UPLIT BYTE (%ASCIC 'XMEMORY_CALLOC')); ; 0914 2 real_addr (exit_vec_xmemory_realloc, ; 0915 2 xmemory_realloc_exit, ; 0916 2 xmemory_realloc_xfer, ; 0917 2 xmemory_realloc_addr, ; 0918 2 image_to_load [0], ; 0919 2 UPLIT BYTE (%ASCIC 'XMEMORY_REALLOC')); ; 0920 2 real_addr (exit_vec_xmemory_free, ; 0921 2 xmemory_free_exit, ; 0922 2 xmemory_free_xfer, ; 0923 2 xmemory_free_addr, ; 0924 2 image_to_load [0], ; 0925 2 UPLIT BYTE (%ASCIC 'XMEMORY_FREE')); ; 0926 2 ; 0927 2 real_addr (exit_vec_lib_malloc, ; 0928 2 lib_malloc_exit, ; 0929 2 lib_malloc_xfer, ; 0930 2 lib_malloc_addr, ; 0931 2 0, ; 0932 2 0); FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 32 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (8) ; 0933 2 real_addr (exit_vec_lib_calloc, ; 0934 2 lib_calloc_exit, ; 0935 2 lib_calloc_xfer, ; 0936 2 lib_calloc_addr, ; 0937 2 0, ; 0938 2 0); ; 0939 2 real_addr (exit_vec_lib_realloc, ; 0940 2 lib_realloc_exit, ; 0941 2 lib_realloc_xfer, ; 0942 2 lib_realloc_addr, ; 0943 2 0, ; 0944 2 0); ; 0945 2 real_addr (exit_vec_lib_free, ; 0946 2 lib_free_exit, ; 0947 2 lib_free_xfer, ; 0948 2 lib_free_addr, ; 0949 2 0, ; 0950 2 0); ; 0951 2 ; 0952 2 image_loaded = 1; ; 0953 2 ; 0954 1 END; 4C 54 52 43 58 41 56 07 00330 P.AAC: .ASCII <7>\VAXCRTL\ ; 45 54 41 4C 53 4E 41 52 54 24 24 43 0C 00338 P.AAD: .ASCII <12>\C$$TRANSLATE\ ; 43 4F 4C 4C 41 4D 06 00345 P.AAE: .ASCII <6>\MALLOC\ ; 43 4F 4C 4C 41 43 06 0034C P.AAF: .ASCII <6>\CALLOC\ ; 43 4F 4C 4C 41 45 52 07 00353 P.AAG: .ASCII <7>\REALLOC\ ; 45 45 52 46 04 0035B P.AAH: .ASCII <4>\FREE\ ; 45 45 52 46 43 05 00360 P.AAI: .ASCII <5>\CFREE\ ; 50 4F 5F 43 4F 4C 4C 41 4D 24 43 58 41 56 0F 00366 P.AAJ: .ASCII <15>\VAXC$MALLOC_OPT\ ; 54 00375 ; 50 4F 5F 43 4F 4C 4C 41 43 24 43 58 41 56 0F 00376 P.AAK: .ASCII <15>\VAXC$CALLOC_OPT\ ; 54 00385 ; 4F 5F 43 4F 4C 4C 41 45 52 24 43 58 41 56 10 00386 P.AAL: .ASCII <16>\VAXC$REALLOC_OPT\ ; 54 50 00395 ; 54 50 4F 5F 45 45 52 46 24 43 58 41 56 0D 00397 P.AAM: .ASCII <13>\VAXC$FREE_OPT\ ; 54 50 4F 5F 45 45 52 46 43 24 43 58 41 56 0E 003A5 P.AAN: .ASCII <14>\VAXC$CFREE_OPT\ ; 52 48 53 42 49 4C 58 24 57 43 45 44 0C 003B4 P.AAO: .ASCII <12>\DECW$XLIBSHR\ ; 43 4F 4C 4C 41 4D 5F 59 52 4F 4D 45 4D 58 0E 003C1 P.AAP: .ASCII <14>\XMEMORY_MALLOC\ ; 43 4F 4C 4C 41 43 5F 59 52 4F 4D 45 4D 58 0E 003D0 P.AAQ: .ASCII <14>\XMEMORY_CALLOC\ ; 4F 4C 4C 41 45 52 5F 59 52 4F 4D 45 4D 58 0F 003DF P.AAR: .ASCII <15>\XMEMORY_REALLOC\ ; 43 003EE ; 45 45 52 46 5F 59 52 4F 4D 45 4D 58 0C 003EF P.AAS: .ASCII <12>\XMEMORY_FREE\ ; 00FC 00000 LOAD_IMAGE: .WORD Save R2,R3,R4,R5,R6,R7 ; 0579 57 FE9B CF 9E 00002 MOVAB REAL_ADDR, R7 ; 56 00000000' EF 9E 00007 MOVAB DISABLED, R6 ; 66 FEB8 C6 D0 0000E MOVL FAKE_VM_OFF, DISABLED ; 0744 04 A6 FEBC C6 66 C9 00013 BISL3 DISABLED, FAKE_VM_STRING_OFF, - ; 0745 STRING_DISABLED ; 08 A6 FEC0 C6 66 C9 0001A BISL3 DISABLED, FAKE_VM_EFN_OFF, EFN_DISABLED ; 0746 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 33 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (8) 0C A6 FECC C6 66 C9 00021 BISL3 DISABLED, FAKE_VM_VAXCRTL_OFF, - ; 0747 VAXCRTL_DISABLED ; 10 A6 FED0 C6 66 C9 00028 BISL3 DISABLED, FAKE_VM_XLIBSHR_OFF, - ; 0748 XLIBSHR_DISABLED ; 14 A6 FED4 C6 D0 0002F MOVL FAKE_VM_REAL_FREE_OFF, REAL_FREE_DISABLED ; 0749 00AC C6 00AC C6 9E 00035 MOVAB ACTIVE_LIST, ACTIVE_LIST ; 0751 00B0 C6 00AC C6 9E 0003C MOVAB ACTIVE_LIST, ACTIVE_LIST+4 ; 0752 00B4 C6 7C 00043 CLRQ ERRORS ; 0756 00BC C6 D4 00047 CLRL MEMORY_HISTO+4 ; 0757 00C0 C6 FED8 C6 D0 0004B MOVL FAKE_VM_MEMORY_BUCKET_SIZE, MEMORY_HISTO+8 ; 0758 05 12 00052 BNEQ 1$ ; 0759 00C0 C6 04 D0 00054 MOVL #4, MEMORY_HISTO+8 ; 0761 00C4 C6 7C 00059 1$: CLRQ MEMORY_HISTO+12 ; 0763 00CC C6 7C 0005D CLRQ STRING_HISTO ; 0766 00D4 C6 FEDC C6 D0 00061 MOVL FAKE_VM_STRING_BUCKET_SIZE, STRING_HISTO+8 ; 0767 05 12 00068 BNEQ 2$ ; 0768 00D4 C6 01 D0 0006A MOVL #1, STRING_HISTO+8 ; 0770 00D8 C6 7C 0006F 2$: CLRQ STRING_HISTO+12 ; 0772 0100 8F 00 6E 00 2C 00073 MOVC5 #0, (SP), #0, #256, EFN_LIST ; 0774 00E0 C6 0007A ; 7E 7C 0007D CLRQ -(SP) ; 0780 01E8 C6 9F 0007F PUSHAB GET_VM_ADDR ; 0779 01E4 C6 9F 00083 PUSHAB GET_VM_XFER ; 0778 01E0 C6 9F 00087 PUSHAB GET_VM_EXIT ; 0777 FE82 C7 9F 0008B PUSHAB EXIT_VEC_GET_VM ; 0776 67 06 FB 0008F CALLS #6, REAL_ADDR ; 7E 7C 00092 CLRQ -(SP) ; 0786 01F4 C6 9F 00094 PUSHAB FREE_VM_ADDR ; 0785 01F0 C6 9F 00098 PUSHAB FREE_VM_XFER ; 0784 01EC C6 9F 0009C PUSHAB FREE_VM_EXIT ; 0783 FE8C C7 9F 000A0 PUSHAB EXIT_VEC_FREE_VM ; 0782 67 06 FB 000A4 CALLS #6, REAL_ADDR ; 7E 7C 000A7 CLRQ -(SP) ; 0792 0200 C6 9F 000A9 PUSHAB SGET1_DD_ADDR ; 0791 01FC C6 9F 000AD PUSHAB SGET1_DD_XFER ; 0790 01F8 C6 9F 000B1 PUSHAB SGET1_DD_EXIT ; 0789 FE96 C7 9F 000B5 PUSHAB EXIT_VEC_SGET1_DD ; 0788 67 06 FB 000B9 CALLS #6, REAL_ADDR ; 7E 7C 000BC CLRQ -(SP) ; 0798 020C C6 9F 000BE PUSHAB SFREE1_DD_ADDR ; 0797 0208 C6 9F 000C2 PUSHAB SFREE1_DD_XFER ; 0796 0204 C6 9F 000C6 PUSHAB SFREE1_DD_EXIT ; 0795 FEA0 C7 9F 000CA PUSHAB EXIT_VEC_SFREE1_DD ; 0794 67 06 FB 000CE CALLS #6, REAL_ADDR ; 7E 7C 000D1 CLRQ -(SP) ; 0804 0218 C6 9F 000D3 PUSHAB SFREEN_DD_ADDR ; 0803 0214 C6 9F 000D7 PUSHAB SFREEN_DD_XFER ; 0802 0210 C6 9F 000DB PUSHAB SFREEN_DD_EXIT ; 0801 FEAA C7 9F 000DF PUSHAB EXIT_VEC_SFREEN_DD ; 0800 67 06 FB 000E3 CALLS #6, REAL_ADDR ; 7E 7C 000E6 CLRQ -(SP) ; 0810 0224 C6 9F 000E8 PUSHAB GET_EF_ADDR ; 0809 0220 C6 9F 000EC PUSHAB GET_EF_XFER ; 0808 021C C6 9F 000F0 PUSHAB GET_EF_EXIT ; 0807 FEB4 C7 9F 000F4 PUSHAB EXIT_VEC_GET_EF ; 0806 67 06 FB 000F8 CALLS #6, REAL_ADDR ; 7E 7C 000FB CLRQ -(SP) ; 0816 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 34 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (8) 0230 C6 9F 000FD PUSHAB FREE_EF_ADDR ; 0815 022C C6 9F 00101 PUSHAB FREE_EF_XFER ; 0814 0228 C6 9F 00105 PUSHAB FREE_EF_EXIT ; 0813 FEBE C7 9F 00109 PUSHAB EXIT_VEC_FREE_EF ; 0812 67 06 FB 0010D CALLS #6, REAL_ADDR ; 52 D4 00110 CLRL IMAGE_TO_LOAD ; 0819 0A 0C A6 E8 00112 BLBS VAXCRTL_DISABLED, 3$ ; 0820 05 FEC4 C6 E9 00116 BLBC FAKE_VM_VAXCRTL_LOAD, 3$ ; 0822 52 FE15 CF 9E 0011B MOVAB P.AAC, IMAGE_TO_LOAD ; 0824 FE18 CF 9F 00120 3$: PUSHAB P.AAD ; 0831 52 DD 00124 PUSHL IMAGE_TO_LOAD ; 0830 023C C6 9F 00126 PUSHAB C$$TRANSLATE_ADDR ; 0829 0238 C6 9F 0012A PUSHAB C$$TRANSLATE_XFER ; 0828 0234 C6 9F 0012E PUSHAB C$$TRANSLATE_EXIT ; 0827 FEC8 C7 9F 00132 PUSHAB EXIT_VEC_C$$TRANSLATE ; 0826 67 06 FB 00136 CALLS #6, REAL_ADDR ; FE0C CF 9F 00139 PUSHAB P.AAE ; 0838 52 DD 0013D PUSHL IMAGE_TO_LOAD ; 0248 C6 9F 0013F PUSHAB MALLOC_ADDR ; 0836 0244 C6 9F 00143 PUSHAB MALLOC_XFER ; 0835 0240 C6 9F 00147 PUSHAB MALLOC_EXIT ; 0834 FED2 C7 9F 0014B PUSHAB EXIT_VEC_MALLOC ; 0833 67 06 FB 0014F CALLS #6, REAL_ADDR ; FDFA CF 9F 00152 PUSHAB P.AAF ; 0844 52 DD 00156 PUSHL IMAGE_TO_LOAD ; 0254 C6 9F 00158 PUSHAB CALLOC_ADDR ; 0842 0250 C6 9F 0015C PUSHAB CALLOC_XFER ; 0841 024C C6 9F 00160 PUSHAB CALLOC_EXIT ; 0840 FEDC C7 9F 00164 PUSHAB EXIT_VEC_CALLOC ; 0839 67 06 FB 00168 CALLS #6, REAL_ADDR ; FDE8 CF 9F 0016B PUSHAB P.AAG ; 0850 52 DD 0016F PUSHL IMAGE_TO_LOAD ; 0260 C6 9F 00171 PUSHAB REALLOC_ADDR ; 0848 025C C6 9F 00175 PUSHAB REALLOC_XFER ; 0847 0258 C6 9F 00179 PUSHAB REALLOC_EXIT ; 0846 FEE6 C7 9F 0017D PUSHAB EXIT_VEC_REALLOC ; 0845 67 06 FB 00181 CALLS #6, REAL_ADDR ; FDD7 CF 9F 00184 PUSHAB P.AAH ; 0856 52 DD 00188 PUSHL IMAGE_TO_LOAD ; 026C C6 9F 0018A PUSHAB FREE_ADDR ; 0854 0268 C6 9F 0018E PUSHAB FREE_XFER ; 0853 0264 C6 9F 00192 PUSHAB FREE_EXIT ; 0852 FEF0 C7 9F 00196 PUSHAB EXIT_VEC_FREE ; 0851 67 06 FB 0019A CALLS #6, REAL_ADDR ; FDC3 CF 9F 0019D PUSHAB P.AAI ; 0862 52 DD 001A1 PUSHL IMAGE_TO_LOAD ; 0278 C6 9F 001A3 PUSHAB CFREE_ADDR ; 0860 0274 C6 9F 001A7 PUSHAB CFREE_XFER ; 0859 0270 C6 9F 001AB PUSHAB CFREE_EXIT ; 0858 FEFA C7 9F 001AF PUSHAB EXIT_VEC_CFREE ; 0857 67 06 FB 001B3 CALLS #6, REAL_ADDR ; FDB0 CF 9F 001B6 PUSHAB P.AAJ ; 0869 52 DD 001BA PUSHL IMAGE_TO_LOAD ; 0284 C6 9F 001BC PUSHAB MALLOC_OPT_ADDR ; 0867 0280 C6 9F 001C0 PUSHAB MALLOC_OPT_XFER ; 0866 027C C6 9F 001C4 PUSHAB MALLOC_OPT_EXIT ; 0865 FF04 C7 9F 001C8 PUSHAB EXIT_VEC_MALLOC_OPT ; 0864 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 35 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (8) 67 06 FB 001CC CALLS #6, REAL_ADDR ; FDA7 CF 9F 001CF PUSHAB P.AAK ; 0875 52 DD 001D3 PUSHL IMAGE_TO_LOAD ; 0290 C6 9F 001D5 PUSHAB CALLOC_OPT_ADDR ; 0873 028C C6 9F 001D9 PUSHAB CALLOC_OPT_XFER ; 0872 0288 C6 9F 001DD PUSHAB CALLOC_OPT_EXIT ; 0871 FF0E C7 9F 001E1 PUSHAB EXIT_VEC_CALLOC_OPT ; 0870 67 06 FB 001E5 CALLS #6, REAL_ADDR ; FD9E CF 9F 001E8 PUSHAB P.AAL ; 0881 52 DD 001EC PUSHL IMAGE_TO_LOAD ; 029C C6 9F 001EE PUSHAB REALLOC_OPT_ADDR ; 0879 0298 C6 9F 001F2 PUSHAB REALLOC_OPT_XFER ; 0878 0294 C6 9F 001F6 PUSHAB REALLOC_OPT_EXIT ; 0877 FF18 C7 9F 001FA PUSHAB EXIT_VEC_REALLOC_OPT ; 0876 67 06 FB 001FE CALLS #6, REAL_ADDR ; FD96 CF 9F 00201 PUSHAB P.AAM ; 0887 52 DD 00205 PUSHL IMAGE_TO_LOAD ; 02A8 C6 9F 00207 PUSHAB FREE_OPT_ADDR ; 0885 02A4 C6 9F 0020B PUSHAB FREE_OPT_XFER ; 0884 02A0 C6 9F 0020F PUSHAB FREE_OPT_EXIT ; 0883 FF22 C7 9F 00213 PUSHAB EXIT_VEC_FREE_OPT ; 0882 67 06 FB 00217 CALLS #6, REAL_ADDR ; FD8B CF 9F 0021A PUSHAB P.AAN ; 0893 52 DD 0021E PUSHL IMAGE_TO_LOAD ; 02B4 C6 9F 00220 PUSHAB CFREE_OPT_ADDR ; 0891 02B0 C6 9F 00224 PUSHAB CFREE_OPT_XFER ; 0890 02AC C6 9F 00228 PUSHAB CFREE_OPT_EXIT ; 0889 FF2C C7 9F 0022C PUSHAB EXIT_VEC_CFREE_OPT ; 0888 67 06 FB 00230 CALLS #6, REAL_ADDR ; 52 D4 00233 CLRL IMAGE_TO_LOAD ; 0895 0A 10 A6 E8 00235 BLBS XLIBSHR_DISABLED, 4$ ; 0896 05 FEC8 C6 E9 00239 BLBC FAKE_VM_XLIBSHR_LOAD, 4$ ; 0898 52 FD76 CF 9E 0023E MOVAB P.AAO, IMAGE_TO_LOAD ; 0900 FD7E CF 9F 00243 4$: PUSHAB P.AAP ; 0907 52 DD 00247 PUSHL IMAGE_TO_LOAD ; 0906 02C0 C6 9F 00249 PUSHAB XMEMORY_MALLOC_ADDR ; 0905 02BC C6 9F 0024D PUSHAB XMEMORY_MALLOC_XFER ; 0904 02B8 C6 9F 00251 PUSHAB XMEMORY_MALLOC_EXIT ; 0903 FF36 C7 9F 00255 PUSHAB EXIT_VEC_XMEMORY_MALLOC ; 0902 67 06 FB 00259 CALLS #6, REAL_ADDR ; FD74 CF 9F 0025C PUSHAB P.AAQ ; 0913 52 DD 00260 PUSHL IMAGE_TO_LOAD ; 02CC C6 9F 00262 PUSHAB XMEMORY_CALLOC_ADDR ; 0911 02C8 C6 9F 00266 PUSHAB XMEMORY_CALLOC_XFER ; 0910 02C4 C6 9F 0026A PUSHAB XMEMORY_CALLOC_EXIT ; 0909 FF40 C7 9F 0026E PUSHAB EXIT_VEC_XMEMORY_CALLOC ; 0908 67 06 FB 00272 CALLS #6, REAL_ADDR ; FD6A CF 9F 00275 PUSHAB P.AAR ; 0919 52 DD 00279 PUSHL IMAGE_TO_LOAD ; 02D8 C6 9F 0027B PUSHAB XMEMORY_REALLOC_ADDR ; 0917 02D4 C6 9F 0027F PUSHAB XMEMORY_REALLOC_XFER ; 0916 02D0 C6 9F 00283 PUSHAB XMEMORY_REALLOC_EXIT ; 0915 FF4A C7 9F 00287 PUSHAB EXIT_VEC_XMEMORY_REALLOC ; 0914 67 06 FB 0028B CALLS #6, REAL_ADDR ; FD61 CF 9F 0028E PUSHAB P.AAS ; 0925 52 DD 00292 PUSHL IMAGE_TO_LOAD ; 02E4 C6 9F 00294 PUSHAB XMEMORY_FREE_ADDR ; 0923 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 36 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (8) 02E0 C6 9F 00298 PUSHAB XMEMORY_FREE_XFER ; 0922 02DC C6 9F 0029C PUSHAB XMEMORY_FREE_EXIT ; 0921 FF54 C7 9F 002A0 PUSHAB EXIT_VEC_XMEMORY_FREE ; 0920 67 06 FB 002A4 CALLS #6, REAL_ADDR ; 7E 7C 002A7 CLRQ -(SP) ; 0931 02F0 C6 9F 002A9 PUSHAB LIB_MALLOC_ADDR ; 0930 02EC C6 9F 002AD PUSHAB LIB_MALLOC_XFER ; 0929 02E8 C6 9F 002B1 PUSHAB LIB_MALLOC_EXIT ; 0928 FF5E C7 9F 002B5 PUSHAB EXIT_VEC_LIB_MALLOC ; 0927 67 06 FB 002B9 CALLS #6, REAL_ADDR ; 7E 7C 002BC CLRQ -(SP) ; 0937 02FC C6 9F 002BE PUSHAB LIB_CALLOC_ADDR ; 0936 02F8 C6 9F 002C2 PUSHAB LIB_CALLOC_XFER ; 0935 02F4 C6 9F 002C6 PUSHAB LIB_CALLOC_EXIT ; 0934 FF68 C7 9F 002CA PUSHAB EXIT_VEC_LIB_CALLOC ; 0933 67 06 FB 002CE CALLS #6, REAL_ADDR ; 7E 7C 002D1 CLRQ -(SP) ; 0943 0308 C6 9F 002D3 PUSHAB LIB_REALLOC_ADDR ; 0942 0304 C6 9F 002D7 PUSHAB LIB_REALLOC_XFER ; 0941 0300 C6 9F 002DB PUSHAB LIB_REALLOC_EXIT ; 0940 FF72 C7 9F 002DF PUSHAB EXIT_VEC_LIB_REALLOC ; 0939 67 06 FB 002E3 CALLS #6, REAL_ADDR ; 7E 7C 002E6 CLRQ -(SP) ; 0949 0314 C6 9F 002E8 PUSHAB LIB_FREE_ADDR ; 0948 0310 C6 9F 002EC PUSHAB LIB_FREE_XFER ; 0947 030C C6 9F 002F0 PUSHAB LIB_FREE_EXIT ; 0946 FF7C C7 9F 002F4 PUSHAB EXIT_VEC_LIB_FREE ; 0945 67 06 FB 002F8 CALLS #6, REAL_ADDR ; FC A6 01 D0 002FB MOVL #1, IMAGE_LOADED ; 0952 04 002FF RET ; 0954 ; Routine Size: 768 bytes, Routine Base: _FAKE_VM_CODE + 03FC FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 37 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (9) ; 0956 1 ROUTINE set_intercept (intercept_rout) : NOVALUE = ; 0957 2 BEGIN ; 0958 2 ; 0959 2 IF NOT .disabled ; 0960 2 THEN ; 0961 3 BEGIN ; 0962 3 ; 0963 3 (.intercept_rout) (0, ; 0964 3 .get_vm_exit, ; 0965 3 .get_vm_xfer, ; 0966 3 .get_vm_addr, ; 0967 3 fake_vm_get_vm); ; 0968 3 (.intercept_rout) (0, ; 0969 3 .free_vm_exit, ; 0970 3 .free_vm_xfer, ; 0971 3 .free_vm_addr, ; 0972 3 fake_vm_free_vm); ; 0973 3 ; 0974 3 IF NOT .string_disabled ; 0975 3 THEN ; 0976 4 BEGIN ; 0977 4 (.intercept_rout) (0, ; 0978 4 .sget1_dd_exit, ; 0979 4 .sget1_dd_xfer, ; 0980 4 .sget1_dd_addr, ; 0981 4 fake_vm_sget1_dd); ; 0982 4 (.intercept_rout) (0, ; 0983 4 .sfree1_dd_exit, ; 0984 4 .sfree1_dd_xfer, ; 0985 4 .sfree1_dd_addr, ; 0986 4 fake_vm_sfree1_dd); ; 0987 4 (.intercept_rout) (0, ; 0988 4 .sfreen_dd_exit, ; 0989 4 .sfreen_dd_xfer, ; 0990 4 .sfreen_dd_addr, ; 0991 4 fake_vm_sfreen_dd); ; 0992 3 END; ; 0993 3 ; 0994 3 IF NOT .efn_disabled ; 0995 3 THEN ; 0996 4 BEGIN ; 0997 4 (.intercept_rout) (0, ; 0998 4 .get_ef_exit, ; 0999 4 .get_ef_xfer, ; 1000 4 .get_ef_addr, ; 1001 4 fake_vm_get_ef); ; 1002 4 (.intercept_rout) (0, ; 1003 4 .free_ef_exit, ; 1004 4 .free_ef_xfer, ; 1005 4 .free_ef_addr, ; 1006 4 fake_vm_free_ef); ; 1007 3 END; ; 1008 3 ; 1009 3 IF NOT .vaxcrtl_disabled ; 1010 3 THEN ; 1011 4 BEGIN ; 1012 4 (.intercept_rout) (1, FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 38 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (9) ; 1013 4 .malloc_exit, ; 1014 4 .malloc_xfer, ; 1015 4 .malloc_addr, ; 1016 4 fake_vm_malloc); ; 1017 4 (.intercept_rout) (1, ; 1018 4 .calloc_exit, ; 1019 4 .calloc_xfer, ; 1020 4 .calloc_addr, ; 1021 4 fake_vm_calloc); ; 1022 4 (.intercept_rout) (1, ; 1023 4 .realloc_exit, ; 1024 4 .realloc_xfer, ; 1025 4 .realloc_addr, ; 1026 4 fake_vm_realloc); ; 1027 4 (.intercept_rout) (1, ; 1028 4 .free_exit, ; 1029 4 .free_xfer, ; 1030 4 .free_addr, ; 1031 4 fake_vm_free); ; 1032 4 (.intercept_rout) (1, ; 1033 4 .cfree_exit, ; 1034 4 .cfree_xfer, ; 1035 4 .cfree_addr, ; 1036 4 fake_vm_free); ; 1037 4 (.intercept_rout) (1, ; 1038 4 .malloc_opt_exit, ; 1039 4 .malloc_opt_xfer, ; 1040 4 .malloc_opt_addr, ; 1041 4 fake_vm_malloc_opt); ; 1042 4 (.intercept_rout) (1, ; 1043 4 .calloc_opt_exit, ; 1044 4 .calloc_opt_xfer, ; 1045 4 .calloc_opt_addr, ; 1046 4 fake_vm_calloc_opt); ; 1047 4 (.intercept_rout) (1, ; 1048 4 .realloc_opt_exit, ; 1049 4 .realloc_opt_xfer, ; 1050 4 .realloc_opt_addr, ; 1051 4 fake_vm_realloc_opt); ; 1052 4 (.intercept_rout) (1, ; 1053 4 .free_opt_exit, ; 1054 4 .free_opt_xfer, ; 1055 4 .free_opt_addr, ; 1056 4 fake_vm_free_opt); ; 1057 4 (.intercept_rout) (1, ; 1058 4 .cfree_opt_exit, ; 1059 4 .cfree_opt_xfer, ; 1060 4 .cfree_opt_addr, ; 1061 4 fake_vm_free_opt); ; 1062 3 END; ; 1063 3 ; 1064 3 IF NOT .xlibshr_disabled ; 1065 3 THEN ; 1066 4 BEGIN ; 1067 4 (.intercept_rout) (1, ; 1068 4 .xmemory_malloc_exit, ; 1069 4 .xmemory_malloc_xfer, FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 39 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (9) ; 1070 4 .xmemory_malloc_addr, ; 1071 4 fake_vm_xmemory_malloc); ; 1072 4 (.intercept_rout) (1, ; 1073 4 .xmemory_calloc_exit, ; 1074 4 .xmemory_calloc_xfer, ; 1075 4 .xmemory_calloc_addr, ; 1076 4 fake_vm_xmemory_calloc); ; 1077 4 (.intercept_rout) (1, ; 1078 4 .xmemory_realloc_exit, ; 1079 4 .xmemory_realloc_xfer, ; 1080 4 .xmemory_realloc_addr, ; 1081 4 fake_vm_xmemory_realloc); ; 1082 4 (.intercept_rout) (1, ; 1083 4 .xmemory_free_exit, ; 1084 4 .xmemory_free_xfer, ; 1085 4 .xmemory_free_addr, ; 1086 4 fake_vm_xmemory_free); ; 1087 3 END; ; 1088 3 ; 1089 3 (.intercept_rout) (1, ; 1090 3 .lib_malloc_exit, ; 1091 3 .lib_malloc_xfer, ; 1092 3 .lib_malloc_addr, ; 1093 3 fake_vm_lib_malloc); ; 1094 3 (.intercept_rout) (1, ; 1095 3 .lib_calloc_exit, ; 1096 3 .lib_calloc_xfer, ; 1097 3 .lib_calloc_addr, ; 1098 3 fake_vm_lib_calloc); ; 1099 3 (.intercept_rout) (1, ; 1100 3 .lib_realloc_exit, ; 1101 3 .lib_realloc_xfer, ; 1102 3 .lib_realloc_addr, ; 1103 3 fake_vm_lib_realloc); ; 1104 3 (.intercept_rout) (1, ; 1105 3 .lib_free_exit, ; 1106 3 .lib_free_xfer, ; 1107 3 .lib_free_addr, ; 1108 3 fake_vm_lib_free); ; 1109 3 ; 1110 2 END; ; 1111 2 ; 1112 1 END; 003C 00000 SET_INTERCEPT: .WORD Save R2,R3,R4,R5 ; 0956 55 00000000V EF 9E 00002 MOVAB FAKE_VM_FREE_OPT, R5 ; 54 00000000V EF 9E 00009 MOVAB FAKE_VM_FREE, R4 ; 53 00000000' EF 9E 00010 MOVAB DISABLED, R3 ; 01 63 E9 00017 BLBC DISABLED, 1$ ; 0959 04 0001A RET ; 52 04 AC D0 0001B 1$: MOVL INTERCEPT_ROUT, R2 ; 0963 00000000V EF 9F 0001F PUSHAB FAKE_VM_GET_VM ; 0967 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 40 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (9) 7E 01E4 C3 7D 00025 MOVQ GET_VM_XFER, -(SP) ; 0965 01E0 C3 DD 0002A PUSHL GET_VM_EXIT ; 0964 7E D4 0002E CLRL -(SP) ; 0963 62 05 FB 00030 CALLS #5, (R2) ; 00000000V EF 9F 00033 PUSHAB FAKE_VM_FREE_VM ; 0972 7E 01F0 C3 7D 00039 MOVQ FREE_VM_XFER, -(SP) ; 0970 01EC C3 DD 0003E PUSHL FREE_VM_EXIT ; 0969 7E D4 00042 CLRL -(SP) ; 0968 62 05 FB 00044 CALLS #5, (R2) ; 3C 04 A3 E8 00047 BLBS STRING_DISABLED, 2$ ; 0974 00000000V EF 9F 0004B PUSHAB FAKE_VM_SGET1_DD ; 0981 7E 01FC C3 7D 00051 MOVQ SGET1_DD_XFER, -(SP) ; 0979 01F8 C3 DD 00056 PUSHL SGET1_DD_EXIT ; 0978 7E D4 0005A CLRL -(SP) ; 0977 62 05 FB 0005C CALLS #5, (R2) ; 00000000V EF 9F 0005F PUSHAB FAKE_VM_SFREE1_DD ; 0986 7E 0208 C3 7D 00065 MOVQ SFREE1_DD_XFER, -(SP) ; 0984 0204 C3 DD 0006A PUSHL SFREE1_DD_EXIT ; 0983 7E D4 0006E CLRL -(SP) ; 0982 62 05 FB 00070 CALLS #5, (R2) ; 00000000V EF 9F 00073 PUSHAB FAKE_VM_SFREEN_DD ; 0991 7E 0214 C3 7D 00079 MOVQ SFREEN_DD_XFER, -(SP) ; 0989 0210 C3 DD 0007E PUSHL SFREEN_DD_EXIT ; 0988 7E D4 00082 CLRL -(SP) ; 0987 62 05 FB 00084 CALLS #5, (R2) ; 28 08 A3 E8 00087 2$: BLBS EFN_DISABLED, 3$ ; 0994 00000000V EF 9F 0008B PUSHAB FAKE_VM_GET_EF ; 1001 7E 0220 C3 7D 00091 MOVQ GET_EF_XFER, -(SP) ; 0999 021C C3 DD 00096 PUSHL GET_EF_EXIT ; 0998 7E D4 0009A CLRL -(SP) ; 0997 62 05 FB 0009C CALLS #5, (R2) ; 00000000V EF 9F 0009F PUSHAB FAKE_VM_FREE_EF ; 1006 7E 022C C3 7D 000A5 MOVQ FREE_EF_XFER, -(SP) ; 1004 0228 C3 DD 000AA PUSHL FREE_EF_EXIT ; 1003 7E D4 000AE CLRL -(SP) ; 1002 62 05 FB 000B0 CALLS #5, (R2) ; 03 0C A3 E9 000B3 3$: BLBC VAXCRTL_DISABLED, 4$ ; 1009 00B8 31 000B7 BRW 5$ ; 00000000V EF 9F 000BA 4$: PUSHAB FAKE_VM_MALLOC ; 1016 7E 0244 C3 7D 000C0 MOVQ MALLOC_XFER, -(SP) ; 1014 0240 C3 DD 000C5 PUSHL MALLOC_EXIT ; 1013 01 DD 000C9 PUSHL #1 ; 1012 62 05 FB 000CB CALLS #5, (R2) ; 00000000V EF 9F 000CE PUSHAB FAKE_VM_CALLOC ; 1021 7E 0250 C3 7D 000D4 MOVQ CALLOC_XFER, -(SP) ; 1019 024C C3 DD 000D9 PUSHL CALLOC_EXIT ; 1018 01 DD 000DD PUSHL #1 ; 1017 62 05 FB 000DF CALLS #5, (R2) ; 00000000V EF 9F 000E2 PUSHAB FAKE_VM_REALLOC ; 1026 7E 025C C3 7D 000E8 MOVQ REALLOC_XFER, -(SP) ; 1024 0258 C3 DD 000ED PUSHL REALLOC_EXIT ; 1023 01 DD 000F1 PUSHL #1 ; 1022 62 05 FB 000F3 CALLS #5, (R2) ; 54 DD 000F6 PUSHL R4 ; 1031 7E 0268 C3 7D 000F8 MOVQ FREE_XFER, -(SP) ; 1029 0264 C3 DD 000FD PUSHL FREE_EXIT ; 1028 01 DD 00101 PUSHL #1 ; 1027 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 41 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (9) 62 05 FB 00103 CALLS #5, (R2) ; 54 DD 00106 PUSHL R4 ; 1036 7E 0274 C3 7D 00108 MOVQ CFREE_XFER, -(SP) ; 1034 0270 C3 DD 0010D PUSHL CFREE_EXIT ; 1033 01 DD 00111 PUSHL #1 ; 1032 62 05 FB 00113 CALLS #5, (R2) ; 00000000V EF 9F 00116 PUSHAB FAKE_VM_MALLOC_OPT ; 1041 7E 0280 C3 7D 0011C MOVQ MALLOC_OPT_XFER, -(SP) ; 1039 027C C3 DD 00121 PUSHL MALLOC_OPT_EXIT ; 1038 01 DD 00125 PUSHL #1 ; 1037 62 05 FB 00127 CALLS #5, (R2) ; 00000000V EF 9F 0012A PUSHAB FAKE_VM_CALLOC_OPT ; 1046 7E 028C C3 7D 00130 MOVQ CALLOC_OPT_XFER, -(SP) ; 1044 0288 C3 DD 00135 PUSHL CALLOC_OPT_EXIT ; 1043 01 DD 00139 PUSHL #1 ; 1042 62 05 FB 0013B CALLS #5, (R2) ; 00000000V EF 9F 0013E PUSHAB FAKE_VM_REALLOC_OPT ; 1051 7E 0298 C3 7D 00144 MOVQ REALLOC_OPT_XFER, -(SP) ; 1049 0294 C3 DD 00149 PUSHL REALLOC_OPT_EXIT ; 1048 01 DD 0014D PUSHL #1 ; 1047 62 05 FB 0014F CALLS #5, (R2) ; 55 DD 00152 PUSHL R5 ; 1056 7E 02A4 C3 7D 00154 MOVQ FREE_OPT_XFER, -(SP) ; 1054 02A0 C3 DD 00159 PUSHL FREE_OPT_EXIT ; 1053 01 DD 0015D PUSHL #1 ; 1052 62 05 FB 0015F CALLS #5, (R2) ; 55 DD 00162 PUSHL R5 ; 1061 7E 02B0 C3 7D 00164 MOVQ CFREE_OPT_XFER, -(SP) ; 1059 02AC C3 DD 00169 PUSHL CFREE_OPT_EXIT ; 1058 01 DD 0016D PUSHL #1 ; 1057 62 05 FB 0016F CALLS #5, (R2) ; 50 10 A3 E8 00172 5$: BLBS XLIBSHR_DISABLED, 6$ ; 1064 00000000V EF 9F 00176 PUSHAB FAKE_VM_XMEMORY_MALLOC ; 1071 7E 02BC C3 7D 0017C MOVQ XMEMORY_MALLOC_XFER, -(SP) ; 1069 02B8 C3 DD 00181 PUSHL XMEMORY_MALLOC_EXIT ; 1068 01 DD 00185 PUSHL #1 ; 1067 62 05 FB 00187 CALLS #5, (R2) ; 00000000V EF 9F 0018A PUSHAB FAKE_VM_XMEMORY_CALLOC ; 1076 7E 02C8 C3 7D 00190 MOVQ XMEMORY_CALLOC_XFER, -(SP) ; 1074 02C4 C3 DD 00195 PUSHL XMEMORY_CALLOC_EXIT ; 1073 01 DD 00199 PUSHL #1 ; 1072 62 05 FB 0019B CALLS #5, (R2) ; 00000000V EF 9F 0019E PUSHAB FAKE_VM_XMEMORY_REALLOC ; 1081 7E 02D4 C3 7D 001A4 MOVQ XMEMORY_REALLOC_XFER, -(SP) ; 1079 02D0 C3 DD 001A9 PUSHL XMEMORY_REALLOC_EXIT ; 1078 01 DD 001AD PUSHL #1 ; 1077 62 05 FB 001AF CALLS #5, (R2) ; 00000000V EF 9F 001B2 PUSHAB FAKE_VM_XMEMORY_FREE ; 1086 7E 02E0 C3 7D 001B8 MOVQ XMEMORY_FREE_XFER, -(SP) ; 1084 02DC C3 DD 001BD PUSHL XMEMORY_FREE_EXIT ; 1083 01 DD 001C1 PUSHL #1 ; 1082 62 05 FB 001C3 CALLS #5, (R2) ; 00000000V EF 9F 001C6 6$: PUSHAB FAKE_VM_LIB_MALLOC ; 1093 7E 02EC C3 7D 001CC MOVQ LIB_MALLOC_XFER, -(SP) ; 1091 02E8 C3 DD 001D1 PUSHL LIB_MALLOC_EXIT ; 1090 01 DD 001D5 PUSHL #1 ; 1089 62 05 FB 001D7 CALLS #5, (R2) ; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 42 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (9) 00000000V EF 9F 001DA PUSHAB FAKE_VM_LIB_CALLOC ; 1098 7E 02F8 C3 7D 001E0 MOVQ LIB_CALLOC_XFER, -(SP) ; 1096 02F4 C3 DD 001E5 PUSHL LIB_CALLOC_EXIT ; 1095 01 DD 001E9 PUSHL #1 ; 1094 62 05 FB 001EB CALLS #5, (R2) ; 00000000V EF 9F 001EE PUSHAB FAKE_VM_LIB_REALLOC ; 1103 7E 0304 C3 7D 001F4 MOVQ LIB_REALLOC_XFER, -(SP) ; 1101 0300 C3 DD 001F9 PUSHL LIB_REALLOC_EXIT ; 1100 01 DD 001FD PUSHL #1 ; 1099 62 05 FB 001FF CALLS #5, (R2) ; 00000000V EF 9F 00202 PUSHAB FAKE_VM_LIB_FREE ; 1108 7E 0310 C3 7D 00208 MOVQ LIB_FREE_XFER, -(SP) ; 1106 030C C3 DD 0020D PUSHL LIB_FREE_EXIT ; 1105 01 DD 00211 PUSHL #1 ; 1104 62 05 FB 00213 CALLS #5, (R2) ; 04 00216 RET ; 1112 ; Routine Size: 535 bytes, Routine Base: _FAKE_VM_CODE + 06FC FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 43 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (10) ; 1114 1 GLOBAL ROUTINE fake_vm_intercept_exit_vector = ; 1115 2 BEGIN ; 1116 2 ; 1117 2 ROUTINE exit_intercept (replace, ; 1118 2 exit_addr : REF VECTOR [1], ; 1119 2 xfer_addr : REF BLOCK [, BYTE], ; 1120 2 real_addr : REF BLOCK [, BYTE], ; 1121 2 new_addr : REF BLOCK [, BYTE]) : NOVALUE = ; 1122 3 BEGIN ; 1123 3 ; 1124 3 LOCAL ; 1125 3 do_replace, ; 1126 3 old_base : REF VECTOR [, BYTE], ; 1127 3 save_pages : VECTOR [512 * 2, BYTE], ; 1128 3 inadr : VECTOR [2]; ; 1129 3 ; 1130 3 IF real_addr [0, 0, 0, 0] EQLA 0 ; 1131 3 THEN ; 1132 3 RETURN; ; 1133 3 ; 1134 3 do_replace = 0; ; 1135 3 old_base = exit_addr [0] AND (NOT (512 - 1)); ; 1136 3 IF old_base [0] EQLA 0 ; 1137 3 THEN ; 1138 4 BEGIN ; 1139 4 IF NOT .replace ; 1140 4 THEN ; 1141 4 RETURN; ; 1142 4 do_replace = 1; ; 1143 4 old_base = real_addr [0, 0, 0, 0] AND (NOT (512 - 1)); ; 1144 3 END; ; 1145 3 ; 1146 3 CH$MOVE (%ALLOCATION (save_pages), old_base [0], save_pages [0]); ; 1147 3 ; 1148 3 inadr [0] = old_base [0]; ; 1149 3 inadr [1] = old_base [0] + %ALLOCATION (save_pages) - 1; ; 1150 3 $stop_if ($CRETVA (INADR = inadr)); ; 1151 3 ; 1152 3 CH$MOVE (%ALLOCATION (save_pages), save_pages [0], old_base [0]); ; 1153 3 ; 1154 3 IF .do_replace ; 1155 3 THEN ; 1156 4 BEGIN ; 1157 4 real_addr [2, 0, 8, 0] = %X'0FA'; ! CALLG ; 1158 4 real_addr [3, 0, 8, 0] = %X'06C'; ! (AP) ; 1159 4 real_addr [4, 0, 8, 0] = %X'09F'; ! @# ; 1160 4 real_addr [5, 0, 32, 0] = new_addr [0, 0, 0, 0]; ; 1161 4 real_addr [9, 0, 8, 0] = %X'004'; ! RET ; 1162 4 END ; 1163 3 ELSE ; 1164 3 exit_addr [0] = new_addr [0, 0, 0, 0]; ; 1165 3 ; 1166 3 $stop_if ($SETPRT (INADR = inadr, PROT = PRT$C_UR)); ; 1167 3 ; 1168 2 END; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 44 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (10) .EXTRN SYS$CRETVA, SYS$SETPRT 01FC 00000 EXIT_INTERCEPT: .WORD Save R2,R3,R4,R5,R6,R7,R8 ; 1117 5E FBF8 CE 9E 00002 MOVAB -1032(SP), SP ; 56 10 AC D0 00007 MOVL REAL_ADDR, R6 ; 1130 7B 13 0000B BEQL 5$ ; 58 D4 0000D CLRL DO_REPLACE ; 1134 57 08 AC 000001FF 8F CB 0000F BICL3 #511, EXIT_ADDR, OLD_BASE ; 1135 0F 12 00018 BNEQ 1$ ; 1136 6A 04 AC E9 0001A BLBC REPLACE, 5$ ; 1139 58 01 D0 0001E MOVL #1, DO_REPLACE ; 1142 57 56 000001FF 8F CB 00021 BICL3 #511, R6, OLD_BASE ; 1143 08 AE 67 0400 8F 28 00029 1$: MOVC3 #1024, (OLD_BASE), SAVE_PAGES ; 1146 6E 57 D0 00030 MOVL OLD_BASE, INADR ; 1148 04 AE 03FF C7 9E 00033 MOVAB 1023(R7), INADR+4 ; 1149 7E 7C 00039 CLRQ -(SP) ; 1150 08 AE 9F 0003B PUSHAB INADR ; 00000000G 00 03 FB 0003E CALLS #3, SYS$CRETVA ; 37 50 E9 00045 BLBC STATUS, 4$ ; 67 08 AE 0400 8F 28 00048 MOVC3 #1024, SAVE_PAGES, (OLD_BASE) ; 1152 16 58 E9 0004F BLBC DO_REPLACE, 2$ ; 1154 02 A6 6CFA 8F B0 00052 MOVW #27898, 2(R6) ; 1158 04 A6 9F 8F 90 00058 MOVB #-97, 4(R6) ; 1159 05 A6 14 AC D0 0005D MOVL NEW_ADDR, 5(R6) ; 1160 09 A6 04 90 00062 MOVB #4, 9(R6) ; 1161 05 11 00066 BRB 3$ ; 08 BC 14 AC D0 00068 2$: MOVL NEW_ADDR, @EXIT_ADDR ; 1164 7E 0F 7D 0006D 3$: MOVQ #15, -(SP) ; 1166 7E 7C 00070 CLRQ -(SP) ; 10 AE 9F 00072 PUSHAB INADR ; 00000000G 00 05 FB 00075 CALLS #5, SYS$SETPRT ; 09 50 E8 0007C BLBS STATUS, 5$ ; 50 DD 0007F 4$: PUSHL STATUS ; 00000000G 00 01 FB 00081 CALLS #1, LIB$STOP ; 04 00088 5$: RET ; 1168 ; Routine Size: 137 bytes, Routine Base: _FAKE_VM_CODE + 0913 ; 1169 2 ; 1170 2 $ast_disable (); ; 1171 2 ; 1172 2 IF .image_loaded ; 1173 2 THEN ; 1174 3 BEGIN ; 1175 3 $ast_enable; ; 1176 3 RETURN lib$_intlogerr; ; 1177 2 END; ; 1178 2 ; 1179 2 load_image (); ; 1180 2 ; 1181 2 set_intercept (exit_intercept); ; 1182 2 ; 1183 2 $ast_enable; ; 1184 2 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 45 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (10) ; 1185 2 RETURN 1; ; 1186 2 ; 1187 1 END; 000C 00000 .ENTRY FAKE_VM_INTERCEPT_EXIT_VECTOR, Save R2,R3 ; 1114 53 00000000G 00 9E 00002 MOVAB SYS$SETAST, R3 ; 52 FA53 CF 9E 00009 MOVAB LOAD_IMAGE, R2 ; 5E 04 C2 0000E SUBL2 #4, SP ; 7E D4 00011 CLRL SIG_TO_RET ; 1170 04 AE D4 00013 CLRL AST_STATUS ; 6D 0040 CF DE 00016 MOVAL 5$, (FP) ; 7E D4 0001B CLRL -(SP) ; 63 01 FB 0001D CALLS #1, SYS$SETAST ; 09 50 D1 00020 CMPL R0, #9 ; 04 12 00023 BNEQ 1$ ; 04 AE 01 D0 00025 MOVL #1, AST_STATUS ; 11 00000000' EF E9 00029 1$: BLBC IMAGE_LOADED, 3$ ; 1172 05 04 AE E9 00030 BLBC AST_STATUS, 2$ ; 1174 01 DD 00034 PUSHL #1 ; 63 01 FB 00036 CALLS #1, SYS$SETAST ; 50 00000000G 8F D0 00039 2$: MOVL #LIB$_INTLOGERR, R0 ; 1176 04 00040 RET ; 62 00 FB 00041 3$: CALLS #0, LOAD_IMAGE ; 1179 0517 C2 9F 00044 PUSHAB EXIT_INTERCEPT ; 1181 0300 C2 01 FB 00048 CALLS #1, SET_INTERCEPT ; 05 04 AE E9 0004D BLBC AST_STATUS, 4$ ; 01 DD 00051 PUSHL #1 ; 63 01 FB 00053 CALLS #1, SYS$SETAST ; 50 01 D0 00056 4$: MOVL #1, R0 ; 1185 04 00059 RET ; 0000 0005A 5$: .WORD Save nothing ; 50 08 AC D0 0005C MOVL 8(AP), R0 ; 50 04 A0 D0 00060 MOVL 4(R0), R0 ; F8 A0 9F 00064 PUSHAB SIG_TO_RET ; FC A0 9F 00067 PUSHAB AST_STATUS ; 02 DD 0006A PUSHL #2 ; 5E DD 0006C PUSHL SP ; 7E 04 AC 7D 0006E MOVQ 4(AP), -(SP) ; F6CD CF 03 FB 00072 CALLS #3, AST_REENABLE ; 04 00077 RET ; ; Routine Size: 120 bytes, Routine Base: _FAKE_VM_CODE + 099C FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 46 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (11) ; 1189 1 GLOBAL ROUTINE fake_vm_intercept_xfer_vector = ; 1190 2 BEGIN ; 1191 2 ; 1192 2 ROUTINE xfer_intercept (replace, ; 1193 2 exit_addr : REF VECTOR [1], ; 1194 2 xfer_addr : REF BLOCK [, BYTE], ; 1195 2 real_addr : REF BLOCK [, BYTE], ; 1196 2 new_addr : REF BLOCK [, BYTE]) : NOVALUE = ; 1197 3 BEGIN ; 1198 3 ; 1199 3 LOCAL ; 1200 3 old_base : REF VECTOR [, BYTE], ; 1201 3 save_pages : VECTOR [512 * 2, BYTE], ; 1202 3 inadr : VECTOR [2]; ; 1203 3 ; 1204 3 IF real_addr [0, 0, 0, 0] EQLA 0 ; 1205 3 THEN ; 1206 3 RETURN; ; 1207 3 ; 1208 3 old_base = xfer_addr [0, 0, 0, 0] AND (NOT (512 - 1)); ; 1209 3 IF .replace ; 1210 3 THEN ; 1211 3 old_base = real_addr [0, 0, 0, 0] AND (NOT (512 - 1)); ; 1212 3 IF old_base [0] EQLA 0 ; 1213 3 THEN ; 1214 3 RETURN; ; 1215 3 ; 1216 3 CH$MOVE (%ALLOCATION (save_pages), old_base [0], save_pages [0]); ; 1217 3 ; 1218 3 inadr [0] = old_base [0]; ; 1219 3 inadr [1] = old_base [0] + %ALLOCATION (save_pages) - 1; ; 1220 3 $stop_if ($CRETVA (INADR = inadr)); ; 1221 3 ; 1222 3 CH$MOVE (%ALLOCATION (save_pages), save_pages [0], old_base [0]); ; 1223 3 ; 1224 3 IF .replace ; 1225 3 THEN ; 1226 4 BEGIN ; 1227 4 real_addr [2, 0, 8, 0] = %X'0FA'; ! CALLG ; 1228 4 real_addr [3, 0, 8, 0] = %X'06C'; ! (AP) ; 1229 4 real_addr [4, 0, 8, 0] = %X'09F'; ! @# ; 1230 4 real_addr [5, 0, 32, 0] = new_addr [0, 0, 0, 0]; ; 1231 4 real_addr [9, 0, 8, 0] = %X'004'; ! RET ; 1232 4 END ; 1233 3 ELSE ; 1234 4 BEGIN ; 1235 4 xfer_addr [0, 0, 16, 0] = .new_addr [0, 0, 16, 0]; ; 1236 4 xfer_addr [4, 0, 32, 0] = new_addr [2, 0, 0, 0] ; 1237 4 - xfer_addr [8, 0, 0, 0]; ; 1238 3 END; ; 1239 3 ; 1240 3 $stop_if ($SETPRT (INADR = inadr, PROT = PRT$C_UR)); ; 1241 3 ; 1242 2 END; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 47 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (11) 01FC 00000 XFER_INTERCEPT: .WORD Save R2,R3,R4,R5,R6,R7,R8 ; 1192 5E FBF8 CE 9E 00002 MOVAB -1032(SP), SP ; 56 10 AC D0 00007 MOVL REAL_ADDR, R6 ; 1204 18 13 0000B BEQL 1$ ; 57 0C AC D0 0000D MOVL XFER_ADDR, R7 ; 1208 58 57 000001FF 8F CB 00011 BICL3 #511, R7, OLD_BASE ; 08 04 AC E9 00019 BLBC REPLACE, 1$ ; 1209 58 56 000001FF 8F CB 0001D BICL3 #511, R6, OLD_BASE ; 1211 69 13 00025 1$: BEQL 5$ ; 1212 08 AE 68 0400 8F 28 00027 MOVC3 #1024, (OLD_BASE), SAVE_PAGES ; 1216 6E 58 D0 0002E MOVL OLD_BASE, INADR ; 1218 04 AE 03FF C8 9E 00031 MOVAB 1023(R8), INADR+4 ; 1219 7E 7C 00037 CLRQ -(SP) ; 1220 08 AE 9F 00039 PUSHAB INADR ; 00000000G 00 03 FB 0003C CALLS #3, SYS$CRETVA ; 41 50 E9 00043 BLBC STATUS, 4$ ; 68 08 AE 0400 8F 28 00046 MOVC3 #1024, SAVE_PAGES, (OLD_BASE) ; 1222 16 04 AC E9 0004D BLBC REPLACE, 2$ ; 1224 02 A6 6CFA 8F B0 00051 MOVW #27898, 2(R6) ; 1228 04 A6 9F 8F 90 00057 MOVB #-97, 4(R6) ; 1229 05 A6 14 AC D0 0005C MOVL NEW_ADDR, 5(R6) ; 1230 09 A6 04 90 00061 MOVB #4, 9(R6) ; 1231 0E 11 00065 BRB 3$ ; 67 14 BC B0 00067 2$: MOVW @NEW_ADDR, (R7) ; 1235 50 14 AC 57 C3 0006B SUBL3 R7, NEW_ADDR, R0 ; 1237 04 A7 FA A0 9E 00070 MOVAB -6(R0), 4(R7) ; 7E 0F 7D 00075 3$: MOVQ #15, -(SP) ; 1240 7E 7C 00078 CLRQ -(SP) ; 10 AE 9F 0007A PUSHAB INADR ; 00000000G 00 05 FB 0007D CALLS #5, SYS$SETPRT ; 09 50 E8 00084 BLBS STATUS, 5$ ; 50 DD 00087 4$: PUSHL STATUS ; 00000000G 00 01 FB 00089 CALLS #1, LIB$STOP ; 04 00090 5$: RET ; 1242 ; Routine Size: 145 bytes, Routine Base: _FAKE_VM_CODE + 0A14 ; 1243 2 ; 1244 2 $ast_disable (); ; 1245 2 ; 1246 2 IF .image_loaded ; 1247 2 THEN ; 1248 3 BEGIN ; 1249 3 $ast_enable; ; 1250 3 RETURN lib$_intlogerr; ; 1251 2 END; ; 1252 2 ; 1253 2 load_image (); ; 1254 2 ; 1255 2 set_intercept (xfer_intercept); ; 1256 2 ; 1257 2 $ast_enable; ; 1258 2 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 48 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (11) ; 1259 2 RETURN 1; ; 1260 2 ; 1261 1 END; 000C 00000 .ENTRY FAKE_VM_INTERCEPT_XFER_VECTOR, Save R2,R3 ; 1189 53 00000000G 00 9E 00002 MOVAB SYS$SETAST, R3 ; 52 F94A CF 9E 00009 MOVAB LOAD_IMAGE, R2 ; 5E 04 C2 0000E SUBL2 #4, SP ; 7E D4 00011 CLRL SIG_TO_RET ; 1244 04 AE D4 00013 CLRL AST_STATUS ; 6D 0040 CF DE 00016 MOVAL 5$, (FP) ; 7E D4 0001B CLRL -(SP) ; 63 01 FB 0001D CALLS #1, SYS$SETAST ; 09 50 D1 00020 CMPL R0, #9 ; 04 12 00023 BNEQ 1$ ; 04 AE 01 D0 00025 MOVL #1, AST_STATUS ; 11 00000000' EF E9 00029 1$: BLBC IMAGE_LOADED, 3$ ; 1246 05 04 AE E9 00030 BLBC AST_STATUS, 2$ ; 1248 01 DD 00034 PUSHL #1 ; 63 01 FB 00036 CALLS #1, SYS$SETAST ; 50 00000000G 8F D0 00039 2$: MOVL #LIB$_INTLOGERR, R0 ; 1250 04 00040 RET ; 62 00 FB 00041 3$: CALLS #0, LOAD_IMAGE ; 1253 0618 C2 9F 00044 PUSHAB XFER_INTERCEPT ; 1255 0300 C2 01 FB 00048 CALLS #1, SET_INTERCEPT ; 05 04 AE E9 0004D BLBC AST_STATUS, 4$ ; 01 DD 00051 PUSHL #1 ; 63 01 FB 00053 CALLS #1, SYS$SETAST ; 50 01 D0 00056 4$: MOVL #1, R0 ; 1259 04 00059 RET ; 0000 0005A 5$: .WORD Save nothing ; 50 08 AC D0 0005C MOVL 8(AP), R0 ; 50 04 A0 D0 00060 MOVL 4(R0), R0 ; F8 A0 9F 00064 PUSHAB SIG_TO_RET ; FC A0 9F 00067 PUSHAB AST_STATUS ; 02 DD 0006A PUSHL #2 ; 5E DD 0006C PUSHL SP ; 7E 04 AC 7D 0006E MOVQ 4(AP), -(SP) ; F5C4 CF 03 FB 00072 CALLS #3, AST_REENABLE ; 04 00077 RET ; ; Routine Size: 120 bytes, Routine Base: _FAKE_VM_CODE + 0AA5 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 49 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (12) ; 1263 1 ROUTINE check_active_list (found : REF VECTOR [1]) = ; 1264 2 BEGIN ; 1265 2 ; 1266 2 LOCAL ; 1267 2 status, ; 1268 2 root : REF VECTOR, ; 1269 2 curr : REF VECTOR; ; 1270 2 ; 1271 2 ENABLE ; 1272 2 lib$sig_to_ret; ; 1273 2 ; 1274 2 IF found [0] NEQA 0 ; 1275 2 THEN ; 1276 2 found [0] = 0; ; 1277 2 ; 1278 2 status = err_ok; ; 1279 2 ; 1280 2 root = active_list; ; 1281 2 curr = root [0]; ; 1282 2 ; 1283 2 WHILE 1 ; 1284 2 DO ; 1285 3 BEGIN ; 1286 3 ; 1287 3 curr = .curr [mem_flk]; ; 1288 3 IF curr [0] EQLA root [0] ; 1289 3 THEN ; 1290 3 EXITLOOP; ; 1291 3 ; 1292 3 IF found [0] NEQA 0 ; 1293 3 THEN ; 1294 3 found [0] = curr [0]; ; 1295 3 ; 1296 3 IF NOT CH$EQL (2 * 4, curr [mem_lg1], ; 1297 3 0, curr [0], ; 1298 3 -1) ; 1299 3 THEN ; 1300 4 BEGIN ; 1301 4 status = err_bad_leading; ; 1302 4 (curr [mem_typ]) <16, 16, 0> = .(curr [mem_typ]) <16, 16, 0> + 1; ; 1303 4 IF found [0] NEQA 0 ; 1304 4 THEN ; 1305 4 RETURN .status; ; 1306 3 END; ; 1307 3 ; 1308 3 IF NOT CH$EQL (4 * 4, curr [mem_dat] + .curr [mem_siz], ; 1309 3 0, curr [0], ; 1310 3 -1) ; 1311 3 THEN ; 1312 4 BEGIN ; 1313 4 status = err_bad_trailing; ; 1314 4 (curr [mem_typ]) <16, 16, 0> = .(curr [mem_typ]) <16, 16, 0> + 1; ; 1315 4 IF found [0] NEQA 0 ; 1316 4 THEN ; 1317 4 RETURN .status; ; 1318 3 END; ; 1319 3 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 50 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (12) ; 1320 2 END; ; 1321 2 ; 1322 2 IF found [0] NEQA 0 ; 1323 2 THEN ; 1324 2 found [0] = 0; ; 1325 2 ; 1326 2 RETURN .status; ; 1327 2 ; 1328 1 END; 01FC 00000 CHECK_ACTIVE_LIST: .WORD Save R2,R3,R4,R5,R6,R7,R8 ; 1263 6D 0060 CF DE 00002 MOVAL 7$, (FP) ; 1272 57 04 AC D0 00007 MOVL FOUND, R7 ; 1274 58 D4 0000B CLRL R8 ; 57 D5 0000D TSTL R7 ; 04 13 0000F BEQL 1$ ; 58 D6 00011 INCL R8 ; 67 D4 00013 CLRL (R7) ; 1276 56 05 D0 00015 1$: MOVL #5, STATUS ; 1278 55 00000000' EF 9E 00018 MOVAB ACTIVE_LIST, ROOT ; 1280 54 55 D0 0001F MOVL ROOT, CURR ; 1281 54 64 D0 00022 2$: MOVL (CURR), CURR ; 1287 55 54 D1 00025 CMPL CURR, ROOT ; 1288 33 13 00028 BEQL 5$ ; 03 58 E9 0002A BLBC R8, 3$ ; 1292 67 54 D0 0002D MOVL CURR, (R7) ; 1294 00 FF 8F 38 A4 08 2D 00030 3$: CMPC5 #8, 56(CURR), #-1, #0, (CURR) ; 1298 64 00037 ; 09 13 00038 BEQL 4$ ; 56 03 D0 0003A MOVL #3, STATUS ; 1301 12 A4 B6 0003D INCW 18(CURR) ; 1302 1F 58 E8 00040 BLBS R8, 6$ ; 1303 50 54 0C A4 C1 00043 4$: ADDL3 12(CURR), CURR, R0 ; 1308 00 FF 8F 40 A0 10 2D 00048 CMPC5 #16, 64(R0), #-1, #0, (CURR) ; 1310 64 0004F ; D0 13 00050 BEQL 2$ ; 56 04 D0 00052 MOVL #4, STATUS ; 1313 12 A4 B6 00055 INCW 18(CURR) ; 1314 C7 58 E9 00058 BLBC R8, 2$ ; 1315 05 11 0005B BRB 6$ ; 1317 02 58 E9 0005D 5$: BLBC R8, 6$ ; 1322 67 D4 00060 CLRL (R7) ; 1324 50 56 D0 00062 6$: MOVL STATUS, R0 ; 1326 04 00065 RET ; 0000 00066 7$: .WORD Save nothing ; 7E D4 00068 CLRL -(SP) ; 5E DD 0006A PUSHL SP ; 7E 04 AC 7D 0006C MOVQ 4(AP), -(SP) ; 00000000G 00 03 FB 00070 CALLS #3, LIB$SIG_TO_RET ; 04 00077 RET ; ; Routine Size: 120 bytes, Routine Base: _FAKE_VM_CODE + 0B1D FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 51 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (12) FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 52 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (13) ; 1330 1 ROUTINE find_in_active_list (size, addr : REF VECTOR, found : REF VECTOR [1]) = ; 1331 2 BEGIN ; 1332 2 ; 1333 2 LOCAL ; 1334 2 root : REF VECTOR, ; 1335 2 curr : REF VECTOR; ; 1336 2 ; 1337 2 ENABLE ; 1338 2 lib$sig_to_ret; ; 1339 2 ; 1340 2 found [0] = 0; ; 1341 2 ; 1342 2 root = active_list; ; 1343 2 curr = root [0]; ; 1344 2 ; 1345 2 WHILE 1 ; 1346 2 DO ; 1347 3 BEGIN ; 1348 3 ; 1349 3 curr = .curr [mem_flk]; ; 1350 3 IF curr [0] EQLA root [0] ; 1351 3 THEN ; 1352 3 RETURN err_not_in_list; ; 1353 3 ; 1354 3 IF addr [0] GEQA curr [0] ; 1355 3 THEN ; 1356 4 IF addr [0] LSSA (curr [0] + .curr [mem_alc]) ; 1357 3 THEN ; 1358 4 BEGIN ; 1359 4 ; 1360 4 found [0] = curr [0]; ; 1361 4 ; 1362 4 IF addr [0] EQLA curr [mem_dat] ; 1363 4 THEN ; 1364 5 BEGIN ; 1365 5 ; 1366 5 IF .size EQLU .curr [mem_siz] ; 1367 5 THEN ; 1368 5 EXITLOOP; ; 1369 5 ; 1370 5 (curr [mem_typ]) <16, 16, 0> = ; 1371 5 .(curr [mem_typ]) <16, 16, 0> + 1; ; 1372 5 RETURN err_not_same_size; ; 1373 5 ; 1374 4 END; ; 1375 4 ; 1376 4 (curr [mem_typ]) <16, 16, 0> = ; 1377 4 .(curr [mem_typ]) <16, 16, 0> + 1; ; 1378 4 RETURN err_not_same_addr; ; 1379 4 ; 1380 3 END; ; 1381 3 ; 1382 2 END; ; 1383 2 ; 1384 2 IF NOT CH$EQL (2 * 4, curr [mem_lg1], ; 1385 2 0, curr [0], ; 1386 2 -1) FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 53 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (13) ; 1387 2 THEN ; 1388 3 BEGIN ; 1389 3 (curr [mem_typ]) <16, 16, 0> = .(curr [mem_typ]) <16, 16, 0> + 1; ; 1390 3 RETURN err_bad_leading; ; 1391 2 END; ; 1392 2 ; 1393 2 IF NOT CH$EQL (4 * 4, curr [mem_dat] + .curr [mem_siz], ; 1394 2 0, curr [0], ; 1395 2 -1) ; 1396 2 THEN ; 1397 3 BEGIN ; 1398 3 (curr [mem_typ]) <16, 16, 0> = .(curr [mem_typ]) <16, 16, 0> + 1; ; 1399 3 RETURN err_bad_trailing; ; 1400 2 END; ; 1401 2 ; 1402 2 RETURN err_ok; ; 1403 2 ; 1404 1 END; 001C 00000 FIND_IN_ACTIVE_LIST: .WORD Save R2,R3,R4 ; 1330 6D 0078 CF DE 00002 MOVAL 7$, (FP) ; 1338 0C BC D4 00007 CLRL @FOUND ; 1340 51 00000000' EF 9E 0000A MOVAB ACTIVE_LIST, ROOT ; 1342 54 51 D0 00011 MOVL ROOT, CURR ; 1343 54 64 D0 00014 1$: MOVL (CURR), CURR ; 1349 51 54 D1 00017 CMPL CURR, ROOT ; 1350 5F 13 0001A BEQL 6$ ; 54 08 AC D1 0001C CMPL ADDR, CURR ; 1354 F2 1F 00020 BLSSU 1$ ; 50 54 08 A4 C1 00022 ADDL3 8(CURR), CURR, R0 ; 1356 50 08 AC D1 00027 CMPL ADDR, R0 ; E7 1E 0002B BGEQU 1$ ; 0C BC 54 D0 0002D MOVL CURR, @FOUND ; 1360 50 40 A4 9E 00031 MOVAB 64(R4), R0 ; 1362 50 08 AC D1 00035 CMPL ADDR, R0 ; 0E 12 00039 BNEQ 2$ ; 0C A4 04 AC D1 0003B CMPL SIZE, 12(CURR) ; 1366 0E 13 00040 BEQL 3$ ; 12 A4 B6 00042 INCW 18(CURR) ; 1371 50 01 D0 00045 MOVL #1, R0 ; 1372 04 00048 RET ; 12 A4 B6 00049 2$: INCW 18(CURR) ; 1377 50 02 D0 0004C MOVL #2, R0 ; 1378 04 0004F RET ; 00 FF 8F 38 A4 08 2D 00050 3$: CMPC5 #8, 56(CURR), #-1, #0, (CURR) ; 1386 64 00057 ; 07 13 00058 BEQL 4$ ; 12 A4 B6 0005A INCW 18(CURR) ; 1389 50 03 D0 0005D MOVL #3, R0 ; 1390 04 00060 RET ; 50 54 0C A4 C1 00061 4$: ADDL3 12(CURR), CURR, R0 ; 1393 00 FF 8F 40 A0 10 2D 00066 CMPC5 #16, 64(R0), #-1, #0, (CURR) ; 1395 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 54 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (13) 64 0006D ; 07 13 0006E BEQL 5$ ; 12 A4 B6 00070 INCW 18(CURR) ; 1398 50 04 D0 00073 MOVL #4, R0 ; 1399 04 00076 RET ; 50 05 D0 00077 5$: MOVL #5, R0 ; 1402 04 0007A RET ; 50 D4 0007B 6$: CLRL R0 ; 04 0007D RET ; 0000 0007E 7$: .WORD Save nothing ; 7E D4 00080 CLRL -(SP) ; 5E DD 00082 PUSHL SP ; 7E 04 AC 7D 00084 MOVQ 4(AP), -(SP) ; 00000000G 00 03 FB 00088 CALLS #3, LIB$SIG_TO_RET ; 04 0008F RET ; ; Routine Size: 144 bytes, Routine Base: _FAKE_VM_CODE + 0B95 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 55 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (14) ; 1406 1 ROUTINE load_fab_rab (fab : REF $fab_decl, ; 1407 1 rab : REF $rab_decl, ; 1408 1 dnm : REF VECTOR [, BYTE]) : NOVALUE = ; 1409 2 BEGIN ; 1410 2 ; 1411 2 LOCAL ; 1412 2 fnm : REF VECTOR [, BYTE]; ; 1413 2 ; 1414 2 fnm = fake_vm_output [0]; ; 1415 2 IF .fnm [0] EQLU 0 ; 1416 2 THEN ; 1417 2 fnm = UPLIT BYTE (%ASCIC 'SYS$OUTPUT:'); ; 1418 2 ; P 1419 2 $fab_init (fab = .fab, ; P 1420 2 org = seq, ; P 1421 2 rfm = var, ; P 1422 2 rat = cr, ; P 1423 2 fop = sqo, ; P 1424 2 fns = .fnm [0], ; P 1425 2 fna = fnm [1], ; P 1426 2 dns = .dnm [0], ; 1427 2 dna = dnm [1]); ; 1428 2 ; P 1429 2 $rab_init (rab = .rab, ; 1430 2 fab = .fab); ; 1431 2 ; 1432 1 END; 3A 54 55 50 54 55 4F 24 53 59 53 0B 00C25 P.AAT: .ASCII <11>\SYS$OUTPUT:\ ; 00FC 00000 LOAD_FAB_RAB: .WORD Save R2,R3,R4,R5,R6,R7 ; 1406 57 00000000' EF 9E 00002 MOVAB FAKE_VM_OUTPUT, FNM ; 1414 67 95 00009 TSTB (FNM) ; 1415 04 12 0000B BNEQ 1$ ; 57 E4 AF 9E 0000D MOVAB P.AAT, FNM ; 1417 56 04 AC D0 00011 1$: MOVL FAB, R6 ; 1427 0050 8F 00 6E 00 2C 00015 MOVC5 #0, (SP), #0, #80, (R6) ; 66 0001C ; 66 5003 8F B0 0001D MOVW #20483, (R6) ; 04 A6 40 8F 9A 00022 MOVZBL #64, 4(R6) ; 16 A6 02 90 00027 MOVB #2, 22(R6) ; 1D A6 0200 8F B0 0002B MOVW #512, 29(R6) ; 1F A6 02 90 00031 MOVB #2, 31(R6) ; 2C A6 01 A7 9E 00035 MOVAB 1(R7), 44(R6) ; 30 A6 0C AC 01 C1 0003A ADDL3 #1, DNM, 48(R6) ; 34 A6 67 90 00040 MOVB (FNM), 52(R6) ; 35 A6 0C BC 90 00044 MOVB @DNM, 53(R6) ; 57 08 AC D0 00049 MOVL RAB, R7 ; 1430 0044 8F 00 6E 00 2C 0004D MOVC5 #0, (SP), #0, #68, (R7) ; 67 00054 ; 67 4401 8F B0 00055 MOVW #17409, (R7) ; 3C A7 56 D0 0005A MOVL R6, 60(R7) ; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 56 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (14) 04 0005E RET ; 1432 ; Routine Size: 95 bytes, Routine Base: _FAKE_VM_CODE + 0C31 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 57 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (15) ; 1434 1 GLOBAL ROUTINE fake_vm (flag_or_addr, more_flag) = ; 1435 2 BEGIN ; 1436 2 ; 1437 2 BUILTIN ; 1438 2 ACTUALCOUNT; ; 1439 2 ; 1440 2 BIND ; 1441 2 mem_types = UPLIT BYTE (%ASCIC 'Memory', ; 1442 2 %ASCIC 'String', ; 1443 2 %ASCIC 'Malloc', ; 1444 2 %ASCIC 'MalOpt', ; 1445 2 %ASCIC 'Xalloc', ; 1446 2 %ASCIC 'LibMal', ; 1447 2 %ASCIC '??????', ; 1448 2 %ASCIC '') : VECTOR [(1 + 6) * 4, BYTE]; ; 1449 2 ; 1450 2 LOCAL ; 1451 2 fab : $fab_decl, ; 1452 2 rab : $rab_decl, ; 1453 2 flag, ; 1454 2 addr : REF VECTOR, ; 1455 2 desc : VECTOR [2], ; 1456 2 buff : VECTOR [132, BYTE], ; 1457 2 head, ; 1458 2 root : REF VECTOR, ; 1459 2 curr : REF VECTOR, ; 1460 2 faod : VECTOR [2], ; 1461 2 errs; ; 1462 2 ; 1463 2 $ast_disable (use_sig_to_ret = yes); ; 1464 2 ; 1465 2 IF NOT .image_loaded ; 1466 2 THEN ; 1467 2 load_image (); ; 1468 2 ; 1469 2 check_active_list (0); ; 1470 2 ; 1471 2 load_fab_rab (fab, rab, UPLIT BYTE (%ASCIC 'FAKE_VM.LIS')); ; 1472 2 ; 1473 2 $stop_if ($create (fab = fab)); ; 1474 2 $stop_if ($connect (rab = rab)); ; 1475 2 ; 1476 2 flag = 0; ; 1477 2 addr = 0; ; 1478 2 IF ACTUALCOUNT () NEQU 0 ; 1479 2 THEN ; 1480 2 IF .flag_or_addr EQLU 1 ; 1481 2 THEN ; 1482 2 flag = -1 ; 1483 2 ELSE ; 1484 2 IF .flag_or_addr LSSU 1 ; 1485 2 THEN ; 1486 2 flag = 1 ; 1487 2 ELSE ; 1488 3 BEGIN ; 1489 3 addr = .flag_or_addr; ; 1490 3 IF ACTUALCOUNT () GEQU 2 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 58 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (15) ; 1491 3 THEN ; 1492 4 BEGIN ; 1493 4 flag = 1; ; 1494 4 IF .more_flag ; 1495 4 THEN ; 1496 4 flag = -1; ; 1497 3 END; ; 1498 2 END; ; 1499 2 ; 1500 2 desc [1] = buff [0]; ; 1501 2 ; 1502 2 head = 0; ; 1503 2 ; 1504 2 root = active_list; ; 1505 2 curr = root [0]; ; 1506 2 ; 1507 2 WHILE 1 ; 1508 2 DO ; 1509 3 BEGIN ; 1510 3 ; 1511 3 curr = .curr [mem_flk]; ; 1512 3 IF curr [0] EQLA root [0] ; 1513 3 THEN ; 1514 3 EXITLOOP; ; 1515 3 ; 1516 4 IF (IF addr [0] EQLA 0 ; 1517 4 THEN ; 1518 4 1 ; 1519 4 ELSE ; 1520 5 IF (addr [0] EQL -1) ; 1521 5 AND (.(curr [mem_typ]) <16, 16, 0> NEQU 0) ; 1522 4 THEN ; 1523 4 1 ; 1524 4 ELSE ; 1525 5 IF (addr [0] GEQA curr [0]) ; 1526 5 AND (addr [0] LSSA (curr [0] + .curr [mem_alc])) ; 1527 4 THEN ; 1528 4 1 ; 1529 4 ELSE ; 1530 4 0) ; 1531 3 THEN ; 1532 4 BEGIN ; 1533 4 ; 1534 4 IF NOT .head ; 1535 4 THEN ; 1536 5 BEGIN ; 1537 5 ; 1538 5 $load_desc (faod, 'Still active memory list:'); ; 1539 5 rab [rab$w_rsz] = .faod [0]; ; 1540 5 rab [rab$l_rbf] = .faod [1]; ; 1541 5 $stop_if ($put (rab = rab)); ; 1542 5 ; 1543 5 head = 1; ; 1544 5 ; 1545 4 END; ; 1546 4 ; P 1547 4 $load_desc (faod, FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 59 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (15) ; 1548 4 '!6AC: Size: !XL Addr: !XL No errors!+ From PC: !XL'); ; 1549 4 errs = .(curr [mem_typ]) <16, 16, 0>; ; 1550 4 IF .errs NEQU 0 ; 1551 4 THEN ; P 1552 4 $load_desc (faod, ; 1553 4 '!6AC: Size: !XL Addr: !XL Errors: !XL From PC: !XL'); ; 1554 4 desc [0] = %ALLOCATION (buff); ; P 1555 4 $stop_if ($FAO (faod, desc, desc, ; P 1556 4 mem_types [(1 + 6) * (.curr [mem_typ] AND (8 - 1))], ; P 1557 4 .curr [mem_siz], ; P 1558 4 curr [mem_dat], ; P 1559 4 .errs, ; 1560 4 .curr [mem_pc1])); ; 1561 4 rab [rab$w_rsz] = .desc [0]; ; 1562 4 rab [rab$l_rbf] = .desc [1]; ; 1563 4 $stop_if ($put (rab = rab)); ; 1564 4 ; P 1565 4 $load_desc (faod, ; 1566 4 ' From PC: !XL From PC: !XL From PC: !XL From PC: !XL'); ; 1567 4 desc [0] = %ALLOCATION (buff); ; P 1568 4 $stop_if ($FAO (faod, desc, desc, ; P 1569 4 .curr [mem_pc2], ; P 1570 4 .curr [mem_pc3], ; P 1571 4 .curr [mem_pc4], ; 1572 4 .curr [mem_pc5])); ; 1573 4 rab [rab$w_rsz] = .desc [0]; ; 1574 4 rab [rab$l_rbf] = .desc [1]; ; 1575 4 $stop_if ($put (rab = rab)); ; 1576 4 ; P 1577 4 $load_desc (faod, ; 1578 4 ' From PC: !XL From PC: !XL From PC: !XL From PC: !XL'); ; 1579 4 desc [0] = %ALLOCATION (buff); ; P 1580 4 $stop_if ($FAO (faod, desc, desc, ; P 1581 4 .curr [mem_pc6], ; P 1582 4 .curr [mem_pc7], ; P 1583 4 .curr [mem_pc8], ; 1584 4 .curr [mem_pc9])); ; 1585 4 rab [rab$w_rsz] = .desc [0]; ; 1586 4 rab [rab$l_rbf] = .desc [1]; ; 1587 4 $stop_if ($put (rab = rab)); ; 1588 4 ; 1589 4 IF .flag ; 1590 4 THEN ; 1591 5 BEGIN ; 1592 5 ; 1593 5 LOCAL ; 1594 5 data : REF VECTOR, ; 1595 5 size, ; 1596 5 nmbr; ; 1597 5 ; 1598 5 data = curr [mem_dat]; ; 1599 5 size = .curr [mem_siz]; ; 1600 5 ; 1601 5 WHILE 1 ; 1602 5 DO ; 1603 6 BEGIN ; 1604 6 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 60 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (15) ; 1605 6 nmbr = 4 * 4; ; 1606 7 IF .size LSSU (4 * 4) ; 1607 6 THEN ; 1608 6 nmbr = .size; ; 1609 6 ; 1610 6 $load_desc (faod, ' !XL !XL !XL !XL !16AF !6XL'); ; 1611 6 desc [0] = %ALLOCATION (buff); ; P 1612 6 $stop_if ($FAO (faod, desc, desc, ; P 1613 6 .data [3], .data [2], .data [1], .data [0], ; P 1614 6 .nmbr, data [0], ; 1615 6 data [0] - curr [mem_dat])); ; 1616 6 ; 1617 7 IF .nmbr LSSU (4 * 4) ; 1618 6 THEN ; 1619 7 BEGIN ; 1620 7 ; 1621 7 LOCAL ; 1622 7 blnk; ; 1623 7 ; 1624 7 blnk = ((4 * 4) - .nmbr) * 2; ; 1625 7 blnk = .blnk + 1 + (.blnk / (4 * 2)); ; 1626 7 CH$FILL (' ', .blnk, .desc [1]); ; 1627 7 ; 1628 6 END; ; 1629 6 ; 1630 6 rab [rab$w_rsz] = .desc [0]; ; 1631 6 rab [rab$l_rbf] = .desc [1]; ; 1632 6 $stop_if ($put (rab = rab)); ; 1633 6 ; 1634 6 IF .flag GEQ 0 ; 1635 6 THEN ; 1636 6 EXITLOOP; ; 1637 6 ; 1638 6 data = data [4]; ; 1639 6 size = .size - .nmbr; ; 1640 6 IF .size EQLU 0 ; 1641 6 THEN ; 1642 6 EXITLOOP; ; 1643 6 ; 1644 5 END; ; 1645 5 ; 1646 4 END; ; 1647 4 ; 1648 3 END; ; 1649 3 ; 1650 2 END; ; 1651 2 ; 1652 2 IF .disabled ; 1653 2 THEN ; 1654 3 BEGIN ; 1655 3 ; 1656 3 $load_desc (faod, 'FAKE_VM processing has been *disabled*'); ; 1657 3 rab [rab$w_rsz] = .faod [0]; ; 1658 3 rab [rab$l_rbf] = .faod [1]; ; 1659 3 $stop_if ($put (rab = rab)); ; 1660 3 ; 1661 3 END FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 61 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (15) ; 1662 2 ELSE ; 1663 3 BEGIN ; 1664 3 ; 1665 3 IF NOT .head ; 1666 3 THEN ; 1667 4 BEGIN ; 1668 4 ; 1669 4 $load_desc (faod, 'All memory has been returned'); ; 1670 4 IF addr [0] NEQA 0 ; 1671 4 THEN ; 1672 5 BEGIN ; 1673 5 $load_desc (faod, 'Specified address not in active list'); ; 1674 5 IF addr [0] EQL -1 ; 1675 5 THEN ; 1676 5 $load_desc (faod, 'No erring packets found'); ; 1677 4 END; ; 1678 4 rab [rab$w_rsz] = .faod [0]; ; 1679 4 rab [rab$l_rbf] = .faod [1]; ; 1680 4 $stop_if ($put (rab = rab)); ; 1681 4 ; 1682 3 END; ; 1683 3 ; 1684 3 IF .string_disabled ; 1685 3 THEN ; 1686 4 BEGIN ; 1687 4 ; 1688 4 $load_desc (faod, 'FAKE_VM string processing has been *disabled*'); ; 1689 4 rab [rab$w_rsz] = .faod [0]; ; 1690 4 rab [rab$l_rbf] = .faod [1]; ; 1691 4 $stop_if ($put (rab = rab)); ; 1692 4 ; 1693 3 END; ; 1694 3 ; 1695 2 END; ; 1696 2 ; 1697 2 $load_desc (faod, 'FAKE_VM has announced !UL error!%S'); ; 1698 2 desc [0] = %ALLOCATION (buff); ; 1699 2 $stop_if ($FAO (faod, desc, desc, .errors)); ; 1700 2 rab [rab$w_rsz] = .desc [0]; ; 1701 2 rab [rab$l_rbf] = .desc [1]; ; 1702 2 $stop_if ($put (rab = rab)); ; 1703 2 ; 1704 2 $stop_if ($disconnect (rab = rab)); ; 1705 2 $stop_if ($close (fab = fab)); ; 1706 2 ; 1707 2 $ast_enable; ; 1708 2 ; 1709 2 RETURN 1; ; 1710 2 ; 1711 1 END; 79 72 6F 6D 65 4D 06 00C90 P.AAU: .ASCII <6>\Memory\ ; 67 6E 69 72 74 53 06 00C97 .ASCII <6>\String\ ; 63 6F 6C 6C 61 4D 06 00C9E .ASCII <6>\Malloc\ ; 74 70 4F 6C 61 4D 06 00CA5 .ASCII <6>\MalOpt\ ; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 62 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (15) 63 6F 6C 6C 61 58 06 00CAC .ASCII <6>\Xalloc\ ; 6C 61 4D 62 69 4C 06 00CB3 .ASCII <6>\LibMal\ ; 3F 3F 3F 3F 3F 3F 06 00CBA .ASCII <6>\??????\ ; 3E 65 65 72 66 3C 06 00CC1 .ASCII <6>\\ ; 53 49 4C 2E 4D 56 5F 45 4B 41 46 0B 00CC8 P.AAV: .ASCII <11>\FAKE_VM.LIS\ ; 65 6D 20 65 76 69 74 63 61 20 6C 6C 69 74 53 00CD4 P.AAW: .ASCII \Still active memory list:\ ; 3A 74 73 69 6C 20 79 72 6F 6D 00CE3 ; 20 3A 65 7A 69 53 20 20 20 20 3A 43 41 36 21 00CED P.AAX: .ASCII \!6AC: Size: !XL Addr: !XL No e\ ; 58 21 20 3A 72 64 64 41 20 20 20 20 4C 58 21 00CFC ; 65 20 6F 4E 20 20 20 20 20 4C 00D0B ; 6F 72 46 20 20 20 20 20 2B 21 73 72 6F 72 72 00D15 .ASCII \rrors!+ From PC: !XL\ ; 4C 58 21 20 3A 43 50 20 6D 00D24 ; 20 3A 65 7A 69 53 20 20 20 20 3A 43 41 36 21 00D2D P.AAY: .ASCII \!6AC: Size: !XL Addr: !XL Errors:\ ; 58 21 20 3A 72 64 64 41 20 20 20 20 4C 58 21 00D3C ; 3A 73 72 6F 72 72 45 20 20 4C 00D4B ; 21 20 3A 43 50 20 6D 6F 72 46 20 4C 58 21 20 00D55 .ASCII \ !XL From PC: !XL\ ; 4C 58 00D64 ; 43 50 20 6D 6F 72 46 20 20 20 20 20 20 20 20 00D66 P.AAZ: .ASCII \ From PC: !XL From PC: !XL From P\ ; 20 3A 43 50 20 6D 6F 72 46 20 4C 58 21 20 3A 00D75 ; 50 20 6D 6F 72 46 20 4C 58 21 00D84 ; 3A 43 50 20 6D 6F 72 46 20 4C 58 21 20 3A 43 00D8E .ASCII \C: !XL From PC: !XL\ ; 4C 58 21 20 00D9D ; 43 50 20 6D 6F 72 46 20 20 20 20 20 20 20 20 00DA1 P.ABA: .ASCII \ From PC: !XL From PC: !XL From P\ ; 20 3A 43 50 20 6D 6F 72 46 20 4C 58 21 20 3A 00DB0 ; 50 20 6D 6F 72 46 20 4C 58 21 00DBF ; 3A 43 50 20 6D 6F 72 46 20 4C 58 21 20 3A 43 00DC9 .ASCII \C: !XL From PC: !XL\ ; 4C 58 21 20 00DD8 ; 58 21 20 4C 58 21 20 4C 58 21 20 4C 58 21 20 00DDC P.ABB: .ASCII \ !XL !XL !XL !XL !16AF !6XL\ ; 4C 58 36 21 20 46 41 36 31 21 20 4C 00DEB ; 73 73 65 63 6F 72 70 20 4D 56 5F 45 4B 41 46 00DF7 P.ABC: .ASCII \FAKE_VM processing has been *disabled*\ ; 64 2A 20 6E 65 65 62 20 73 61 68 20 67 6E 69 00E06 ; 2A 64 65 6C 62 61 73 69 00E15 ; 20 73 61 68 20 79 72 6F 6D 65 6D 20 6C 6C 41 00E1D P.ABD: .ASCII \All memory has been returned\ ; 64 65 6E 72 75 74 65 72 20 6E 65 65 62 00E2C ; 65 72 64 64 61 20 64 65 69 66 69 63 65 70 53 00E39 P.ABE: .ASCII \Specified address not in active list\ ; 76 69 74 63 61 20 6E 69 20 74 6F 6E 20 73 73 00E48 ; 74 73 69 6C 20 65 00E57 ; 65 6B 63 61 70 20 67 6E 69 72 72 65 20 6F 4E 00E5D P.ABF: .ASCII \No erring packets found\ ; 64 6E 75 6F 66 20 73 74 00E6C ; 20 67 6E 69 72 74 73 20 4D 56 5F 45 4B 41 46 00E74 P.ABG: .ASCII \FAKE_VM string processing has been *disa\ ; 20 73 61 68 20 67 6E 69 73 73 65 63 6F 72 70 00E83 ; 61 73 69 64 2A 20 6E 65 65 62 00E92 ; 2A 64 65 6C 62 00E9C .ASCII \bled*\ ; 6E 6E 61 20 73 61 68 20 4D 56 5F 45 4B 41 46 00EA1 P.ABH: .ASCII \FAKE_VM has announced !UL error!%S\ ; 6F 72 72 65 20 4C 55 21 20 64 65 63 6E 75 6F 00EB0 ; 53 25 21 72 00EBF ; MEM_TYPES= P.AAU .EXTRN SYS$CREATE, SYS$CONNECT .EXTRN SYS$PUT, SYS$FAO .EXTRN SYS$DISCONNECT, SYS$CLOSE 0FFC 00000 .ENTRY FAKE_VM, Save R2,R3,R4,R5,R6,R7,R8,R9,R10,- ; 1434 R11 ; 5E FEC4 CE 9E 00002 MOVAB -316(SP), SP ; 0C AE 7C 00007 CLRQ SIG_TO_RET ; 1463 6D 0383 CF DE 0000A MOVAL 35$, (FP) ; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 63 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (15) 0C AE 01 D0 0000F MOVL #1, SIG_TO_RET ; 7E D4 00013 CLRL -(SP) ; 00000000G 00 01 FB 00015 CALLS #1, SYS$SETAST ; 09 50 D1 0001C CMPL R0, #9 ; 04 12 0001F BNEQ 1$ ; 10 AE 01 D0 00021 MOVL #1, AST_STATUS ; 05 00000000' EF E8 00025 1$: BLBS IMAGE_LOADED, 2$ ; 1465 F508 CF 00 FB 0002C CALLS #0, LOAD_IMAGE ; 1467 7E D4 00031 2$: CLRL -(SP) ; 1469 FC22 CF 01 FB 00033 CALLS #1, CHECK_ACTIVE_LIST ; FDC9 CF 9F 00038 PUSHAB P.AAV ; 1471 FF6C CD 9F 0003C PUSHAB RAB ; B0 AD 9F 00040 PUSHAB FAB ; FD26 CF 03 FB 00043 CALLS #3, LOAD_FAB_RAB ; B0 AD 9F 00048 PUSHAB FAB ; 1473 00000000G 00 01 FB 0004B CALLS #1, SYS$CREATE ; 0B 50 E9 00052 BLBC STATUS, 3$ ; FF6C CD 9F 00055 PUSHAB RAB ; 1474 00000000G 00 01 FB 00059 CALLS #1, SYS$CONNECT ; 03 50 E8 00060 3$: BLBS STATUS, 4$ ; 0310 31 00063 BRW 32$ ; 5A 7C 00066 4$: CLRQ ADDR ; 1477 6C 95 00068 TSTB (AP) ; 1478 23 13 0006A BEQL 7$ ; 01 04 AC D1 0006C CMPL FLAG_OR_ADDR, #1 ; 1480 1A 13 00070 BEQL 6$ ; 04 AC D5 00072 TSTL FLAG_OR_ADDR ; 1484 05 12 00075 BNEQ 5$ ; 5B 01 D0 00077 MOVL #1, FLAG ; 1486 13 11 0007A BRB 7$ ; 5A 04 AC D0 0007C 5$: MOVL FLAG_OR_ADDR, ADDR ; 1489 02 6C 91 00080 CMPB (AP), #2 ; 1490 0A 1F 00083 BLSSU 7$ ; 5B 01 D0 00085 MOVL #1, FLAG ; 1493 03 08 AC E9 00088 BLBC MORE_FLAG, 7$ ; 1494 5B 01 CE 0008C 6$: MNEGL #1, FLAG ; 1496 FF68 CD 1C AE 9E 0008F 7$: MOVAB BUFF, DESC+4 ; 1500 6E D4 00095 CLRL HEAD ; 1502 08 AE 00000000' EF 9E 00097 MOVAB ACTIVE_LIST, ROOT ; 1504 56 08 AE D0 0009F MOVL ROOT, CURR ; 1505 56 66 D0 000A3 8$: MOVL (CURR), CURR ; 1511 08 AE 56 D1 000A6 CMPL CURR, ROOT ; 1512 03 12 000AA BNEQ 9$ ; 01E2 31 000AC BRW 25$ ; 5A D5 000AF 9$: TSTL ADDR ; 1516 1D 13 000B1 BEQL 11$ ; FFFFFFFF 8F 5A D1 000B3 CMPL ADDR, #-1 ; 1520 05 12 000BA BNEQ 10$ ; 12 A6 B5 000BC TSTW 18(CURR) ; 1521 0F 12 000BF BNEQ 11$ ; 56 5A D1 000C1 10$: CMPL ADDR, CURR ; 1525 DD 1F 000C4 BLSSU 8$ ; 50 56 08 A6 C1 000C6 ADDL3 8(CURR), CURR, R0 ; 1526 50 5A D1 000CB CMPL ADDR, R0 ; D3 1E 000CE BGEQU 8$ ; 25 6E E8 000D0 11$: BLBS HEAD, 12$ ; 1534 14 AE 19 D0 000D3 MOVL #25, FAOD ; 1538 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 64 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (15) 18 AE FD36 CF 9E 000D7 MOVAB P.AAW, FAOD+4 ; 8E AD 14 AE B0 000DD MOVW FAOD, RAB+34 ; 1539 94 AD 18 AE D0 000E2 MOVL FAOD+4, RAB+40 ; 1540 FF6C CD 9F 000E7 PUSHAB RAB ; 1541 00000000G 00 01 FB 000EB CALLS #1, SYS$PUT ; 6B 50 E9 000F2 BLBC STATUS, 14$ ; 6E 01 D0 000F5 MOVL #1, HEAD ; 1543 14 AE 40 8F 9A 000F8 12$: MOVZBL #64, FAOD ; 1548 18 AE FD29 CF 9E 000FD MOVAB P.AAX, FAOD+4 ; 04 AE 12 A6 3C 00103 MOVZWL 18(CURR), ERRS ; 1549 0A 13 00108 BEQL 13$ ; 1550 14 AE 39 D0 0010A MOVL #57, FAOD ; 1553 18 AE FD58 CF 9E 0010E MOVAB P.AAY, FAOD+4 ; FF64 CD 84 8F 9A 00114 13$: MOVZBL #132, DESC ; 1554 14 A6 DD 0011A PUSHL 20(CURR) ; 1560 08 AE DD 0011D PUSHL ERRS ; 40 A6 9F 00120 PUSHAB 64(CURR) ; 0C A6 DD 00123 PUSHL 12(CURR) ; 50 10 A6 03 00 EF 00126 EXTZV #0, #3, 16(CURR), R0 ; 50 07 C4 0012C MULL2 #7, R0 ; FC99 CF40 9F 0012F PUSHAB MEM_TYPES[R0] ; FF64 CD 9F 00134 PUSHAB DESC ; FF64 CD 9F 00138 PUSHAB DESC ; 30 AE 9F 0013C PUSHAB FAOD ; 00000000G 00 08 FB 0013F CALLS #8, SYS$FAO ; 5E 50 E9 00146 BLBC STATUS, 15$ ; 8E AD FF64 CD B0 00149 MOVW DESC, RAB+34 ; 1561 94 AD FF68 CD D0 0014F MOVL DESC+4, RAB+40 ; 1562 FF6C CD 9F 00155 PUSHAB RAB ; 1563 00000000G 00 01 FB 00159 CALLS #1, SYS$PUT ; 71 50 E9 00160 14$: BLBC STATUS, 16$ ; 14 AE 3B D0 00163 MOVL #59, FAOD ; 1566 18 AE FD38 CF 9E 00167 MOVAB P.AAZ, FAOD+4 ; FF64 CD 84 8F 9A 0016D MOVZBL #132, DESC ; 1567 7E 20 A6 7D 00173 MOVQ 32(CURR), -(SP) ; 1572 7E 18 A6 7D 00177 MOVQ 24(CURR), -(SP) ; FF64 CD 9F 0017B PUSHAB DESC ; FF64 CD 9F 0017F PUSHAB DESC ; 2C AE 9F 00183 PUSHAB FAOD ; 00000000G 00 07 FB 00186 CALLS #7, SYS$FAO ; 5E 50 E9 0018D BLBC STATUS, 17$ ; 8E AD FF64 CD B0 00190 MOVW DESC, RAB+34 ; 1573 94 AD FF68 CD D0 00196 MOVL DESC+4, RAB+40 ; 1574 FF6C CD 9F 0019C PUSHAB RAB ; 1575 00000000G 00 01 FB 001A0 CALLS #1, SYS$PUT ; 44 50 E9 001A7 15$: BLBC STATUS, 17$ ; 14 AE 3B D0 001AA MOVL #59, FAOD ; 1578 18 AE FD2C CF 9E 001AE MOVAB P.ABA, FAOD+4 ; FF64 CD 84 8F 9A 001B4 MOVZBL #132, DESC ; 1579 7E 30 A6 7D 001BA MOVQ 48(CURR), -(SP) ; 1584 7E 28 A6 7D 001BE MOVQ 40(CURR), -(SP) ; FF64 CD 9F 001C2 PUSHAB DESC ; FF64 CD 9F 001C6 PUSHAB DESC ; 2C AE 9F 001CA PUSHAB FAOD ; 00000000G 00 07 FB 001CD CALLS #7, SYS$FAO ; 6B 50 E9 001D4 16$: BLBC STATUS, 21$ ; 8E AD FF64 CD B0 001D7 MOVW DESC, RAB+34 ; 1585 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 65 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (15) 94 AD FF68 CD D0 001DD MOVL DESC+4, RAB+40 ; 1586 FF6C CD 9F 001E3 PUSHAB RAB ; 1587 00000000G 00 01 FB 001E7 CALLS #1, SYS$PUT ; 51 50 E9 001EE 17$: BLBC STATUS, 21$ ; 03 5B E8 001F1 BLBS FLAG, 18$ ; 1589 FEAC 31 001F4 BRW 8$ ; 58 40 A6 9E 001F7 18$: MOVAB 64(CURR), DATA ; 1598 59 0C A6 D0 001FB MOVL 12(CURR), SIZE ; 1599 57 10 D0 001FF 19$: MOVL #16, NMBR ; 1605 10 59 D1 00202 CMPL SIZE, #16 ; 1606 03 1E 00205 BGEQU 20$ ; 57 59 D0 00207 MOVL SIZE, NMBR ; 1608 14 AE 1B D0 0020A 20$: MOVL #27, FAOD ; 1610 18 AE FD07 CF 9E 0020E MOVAB P.ABB, FAOD+4 ; FF64 CD 84 8F 9A 00214 MOVZBL #132, DESC ; 1611 50 40 A6 9E 0021A MOVAB 64(CURR), R0 ; 1615 7E 58 50 C3 0021E SUBL3 R0, DATA, -(SP) ; 7E 57 7D 00222 MOVQ NMBR, -(SP) ; 68 DD 00225 PUSHL (DATA) ; 04 A8 DD 00227 PUSHL 4(DATA) ; 08 A8 DD 0022A PUSHL 8(DATA) ; 0C A8 DD 0022D PUSHL 12(DATA) ; FF64 CD 9F 00230 PUSHAB DESC ; FF64 CD 9F 00234 PUSHAB DESC ; 38 AE 9F 00238 PUSHAB FAOD ; 00000000G 00 0A FB 0023B CALLS #10, SYS$FAO ; 75 50 E9 00242 21$: BLBC STATUS, 27$ ; 10 57 D1 00245 CMPL NMBR, #16 ; 1617 1B 1E 00248 BGEQU 22$ ; 51 F0 A7 9E 0024A MOVAB -16(R7), R1 ; 1624 51 02 C4 0024E MULL2 #2, R1 ; 50 51 CE 00251 MNEGL R1, BLNK ; 51 50 08 C7 00254 DIVL3 #8, BLNK, R1 ; 1625 50 01 A140 9E 00258 MOVAB 1(R1)[BLNK], BLNK ; 50 20 6E 00 2C 0025D MOVC5 #0, (SP), #32, BLNK, @DESC+4 ; 1626 FF68 DD 00262 ; 8E AD FF64 CD B0 00265 22$: MOVW DESC, RAB+34 ; 1630 94 AD FF68 CD D0 0026B MOVL DESC+4, RAB+40 ; 1631 FF6C CD 9F 00271 PUSHAB RAB ; 1632 00000000G 00 01 FB 00275 CALLS #1, SYS$PUT ; 3B 50 E9 0027C BLBC STATUS, 27$ ; 5B D5 0027F TSTL FLAG ; 1634 03 19 00281 BLSS 24$ ; FE1D 31 00283 23$: BRW 8$ ; 58 10 C0 00286 24$: ADDL2 #16, DATA ; 1638 59 57 C2 00289 SUBL2 NMBR, SIZE ; 1639 F5 13 0028C BEQL 23$ ; 1640 FF6E 31 0028E BRW 19$ ; 25 00000000' EF E9 00291 25$: BLBC DISABLED, 28$ ; 1652 14 AE 26 D0 00298 MOVL #38, FAOD ; 1656 18 AE FC94 CF 9E 0029C MOVAB P.ABC, FAOD+4 ; 8E AD 14 AE B0 002A2 26$: MOVW FAOD, RAB+34 ; 1657 94 AD 18 AE D0 002A7 MOVL FAOD+4, RAB+40 ; 1658 FF6C CD 9F 002AC PUSHAB RAB ; 1659 00000000G 00 01 FB 002B0 CALLS #1, SYS$PUT ; 5C 50 E8 002B7 BLBS STATUS, 31$ ; 00B9 31 002BA 27$: BRW 32$ ; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 66 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (15) 43 6E E8 002BD 28$: BLBS HEAD, 30$ ; 1665 14 AE 1C D0 002C0 MOVL #28, FAOD ; 1669 18 AE FC92 CF 9E 002C4 MOVAB P.ABD, FAOD+4 ; 5A D5 002CA TSTL ADDR ; 1670 1D 13 002CC BEQL 29$ ; 14 AE 24 D0 002CE MOVL #36, FAOD ; 1673 18 AE FCA0 CF 9E 002D2 MOVAB P.ABE, FAOD+4 ; FFFFFFFF 8F 5A D1 002D8 CMPL ADDR, #-1 ; 1674 0A 12 002DF BNEQ 29$ ; 14 AE 17 D0 002E1 MOVL #23, FAOD ; 1676 18 AE FCB1 CF 9E 002E5 MOVAB P.ABF, FAOD+4 ; 8E AD 14 AE B0 002EB 29$: MOVW FAOD, RAB+34 ; 1678 94 AD 18 AE D0 002F0 MOVL FAOD+4, RAB+40 ; 1679 FF6C CD 9F 002F5 PUSHAB RAB ; 1680 00000000G 00 01 FB 002F9 CALLS #1, SYS$PUT ; 73 50 E9 00300 BLBC STATUS, 32$ ; 0C 00000000' EF E9 00303 30$: BLBC STRING_DISABLED, 31$ ; 1684 14 AE 2D D0 0030A MOVL #45, FAOD ; 1688 18 AE FC9F CF 9E 0030E MOVAB P.ABG, FAOD+4 ; 8C 11 00314 BRB 26$ ; 1689 14 AE 22 D0 00316 31$: MOVL #34, FAOD ; 1697 18 AE FCC0 CF 9E 0031A MOVAB P.ABH, FAOD+4 ; FF64 CD 84 8F 9A 00320 MOVZBL #132, DESC ; 1698 00000000' EF DD 00326 PUSHL ERRORS ; 1699 FF64 CD 9F 0032C PUSHAB DESC ; FF64 CD 9F 00330 PUSHAB DESC ; 20 AE 9F 00334 PUSHAB FAOD ; 00000000G 00 04 FB 00337 CALLS #4, SYS$FAO ; 35 50 E9 0033E BLBC STATUS, 32$ ; 8E AD FF64 CD B0 00341 MOVW DESC, RAB+34 ; 1700 94 AD FF68 CD D0 00347 MOVL DESC+4, RAB+40 ; 1701 FF6C CD 9F 0034D PUSHAB RAB ; 1702 00000000G 00 01 FB 00351 CALLS #1, SYS$PUT ; 1B 50 E9 00358 BLBC STATUS, 32$ ; FF6C CD 9F 0035B PUSHAB RAB ; 1704 00000000G 00 01 FB 0035F CALLS #1, SYS$DISCONNECT ; 0D 50 E9 00366 BLBC STATUS, 32$ ; B0 AD 9F 00369 PUSHAB FAB ; 1705 00000000G 00 01 FB 0036C CALLS #1, SYS$CLOSE ; 0A 50 E8 00373 BLBS STATUS, 33$ ; 50 DD 00376 32$: PUSHL STATUS ; 00000000G 00 01 FB 00378 CALLS #1, LIB$STOP ; 04 0037F RET ; 09 10 AE E9 00380 33$: BLBC AST_STATUS, 34$ ; 01 DD 00384 PUSHL #1 ; 00000000G 00 01 FB 00386 CALLS #1, SYS$SETAST ; 50 01 D0 0038D 34$: MOVL #1, R0 ; 1709 04 00390 RET ; 0000 00391 35$: .WORD Save nothing ; 50 08 AC D0 00393 MOVL 8(AP), R0 ; 50 04 A0 D0 00397 MOVL 4(R0), R0 ; FED0 C0 9F 0039B PUSHAB SIG_TO_RET ; FED4 C0 9F 0039F PUSHAB AST_STATUS ; 02 DD 003A3 PUSHL #2 ; 5E DD 003A5 PUSHL SP ; 7E 04 AC 7D 003A7 MOVQ 4(AP), -(SP) ; EE6D CF 03 FB 003AB CALLS #3, AST_REENABLE ; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 67 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (15) 04 003B0 RET ; ; Routine Size: 945 bytes, Routine Base: _FAKE_VM_CODE + 0EC3 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 68 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (16) ; 1713 1 GLOBAL ROUTINE fake_vm_report = ; 1714 2 BEGIN ; 1715 2 ; 1716 2 $ast_disable (use_sig_to_ret = yes); ; 1717 2 ; 1718 2 IF NOT .image_loaded ; 1719 2 THEN ; 1720 2 load_image (); ; 1721 2 ; 1722 3 IF (IF check_active_list (0) NEQ err_ok ; 1723 3 THEN ; 1724 3 1 ; 1725 3 ELSE ; 1726 3 IF .errors NEQU 0 ; 1727 3 THEN ; 1728 3 1 ; 1729 3 ELSE ; 1730 4 BEGIN ; 1731 4 LOCAL ; 1732 4 curr : REF VECTOR; ; 1733 4 curr = .active_list [0]; ; 1734 4 IF curr [0] EQLA active_list [0] ; 1735 4 THEN ; 1736 4 0 ; 1737 4 ELSE ; 1738 5 IF (curr [0] NEQA .active_list [1]) ; 1739 5 OR (.curr [mem_pc1] LSSA %X'40000000') ; 1740 4 THEN ; 1741 4 1 ; 1742 4 ELSE ; 1743 4 0 ; 1744 3 END) ; 1745 2 THEN ; 1746 3 BEGIN ; 1747 3 ; 1748 3 LOCAL ; 1749 3 prompt : VECTOR [2]; ; 1750 3 ; 1751 3 prompt [0] = %CHARCOUNT (7, '%%%%% Memory leaks! %%%%%', 7); ; 1752 3 prompt [1] = UPLIT BYTE (7, '%%%%% Memory leaks! %%%%%', 7); ; 1753 3 ; 1754 3 $stop_if (lib$put_output (prompt)); ; 1755 3 ; 1756 3 WHILE 1 ; 1757 3 DO ; 1758 4 BEGIN ; 1759 4 ; 1760 4 MACRO ; M 1761 4 $prompt = ; 1762 4 'Debugger (D), List (L), or file name? ' %; ; 1763 4 ; 1764 4 LOCAL ; 1765 4 buffer : VECTOR [132, BYTE], ; 1766 4 answer : VECTOR [2], ; 1767 4 sts; ; 1768 4 ; 1769 4 answer [0] = %ALLOCATION (buffer); FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 69 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (16) ; 1770 4 answer [1] = buffer [0]; ; 1771 4 ; 1772 4 prompt [0] = %CHARCOUNT ($prompt); ; 1773 4 prompt [1] = UPLIT BYTE ($prompt); ; 1774 4 ; 1775 4 sts = lib$get_input (answer, prompt, answer [0]); ; 1776 4 IF .sts EQLU rms$_eof ; 1777 4 THEN ; 1778 4 EXITLOOP; ; 1779 4 IF NOT .sts ; 1780 4 THEN ; 1781 5 BEGIN ; 1782 5 $ast_enable; ; 1783 5 RETURN .sts; ; 1784 4 END; ; 1785 4 ; 1786 4 IF .answer [0] NEQU 0 ; 1787 4 THEN ; 1788 5 IF (.answer [0] EQLU 1) ; 1789 6 AND ((.buffer [0] EQLU 'd') ; 1790 5 OR (.buffer [0] EQLU 'D')) ; 1791 4 THEN ; 1792 4 lib$signal (SS$_DEBUG) ; 1793 4 ELSE ; 1794 5 BEGIN ; 1795 5 ; 1796 5 fake_vm_output [0] = 0; ; 1797 6 IF (.answer [0] NEQU 1) ; 1798 7 OR ((.buffer [0] NEQU 'l') ; 1799 6 AND (.buffer [0] NEQU 'L')) ; 1800 5 THEN ; 1801 6 BEGIN ; 1802 6 fake_vm_output [0] = .answer [0]; ; 1803 6 CH$MOVE (.answer [0], ; 1804 6 buffer [0], ; 1805 6 fake_vm_output [1]); ; 1806 5 END; ; 1807 5 ; 1808 5 sts = fake_vm (); ; 1809 5 fake_vm_output [0] = 0; ; 1810 5 IF NOT .sts ; 1811 5 THEN ; 1812 6 BEGIN ; 1813 6 $ast_enable; ; 1814 6 RETURN .sts; ; 1815 5 END; ; 1816 5 ; 1817 4 END; ; 1818 4 ; 1819 3 END; ; 1820 3 ; 1821 2 END; ; 1822 2 ; 1823 2 $ast_enable; ; 1824 2 ; 1825 2 RETURN 1; ; 1826 2 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 70 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (16) ; 1827 1 END; 07 01274 P.ABI: .BYTE 7 ; 65 6C 20 79 72 6F 6D 65 4D 20 25 25 25 25 25 01275 .ASCII \%%%%% Memory leaks! %%%%%\ ; 25 25 25 25 25 20 21 73 6B 61 01284 ; 07 0128E .BYTE 7 ; 4C 20 2C 29 44 28 20 72 65 67 67 75 62 65 44 0128F P.ABJ: .ASCII \Debugger (D), List (L), or file name? \ ; 6C 69 66 20 72 6F 20 2C 29 4C 28 20 74 73 69 0129E ; 20 3F 65 6D 61 6E 20 65 012AD ; 03FC 00000 .ENTRY FAKE_VM_REPORT, Save R2,R3,R4,R5,R6,R7,R8,- ; 1713 R9 ; 59 00000000G 00 9E 00002 MOVAB SYS$SETAST, R9 ; 58 F13A CF 9E 00009 MOVAB LOAD_IMAGE, R8 ; 57 00000000' EF 9E 0000E MOVAB FAKE_VM_OUTPUT, R7 ; 5E FF64 CE 9E 00015 MOVAB -156(SP), SP ; F8 AD 7C 0001A CLRQ SIG_TO_RET ; 1716 6D 0113 CF DE 0001D MOVAL 16$, (FP) ; F8 AD 01 D0 00022 MOVL #1, SIG_TO_RET ; 7E D4 00026 CLRL -(SP) ; 69 01 FB 00028 CALLS #1, SYS$SETAST ; 09 50 D1 0002B CMPL R0, #9 ; 04 12 0002E BNEQ 1$ ; FC AD 01 D0 00030 MOVL #1, AST_STATUS ; 03 0110 C7 E8 00034 1$: BLBS IMAGE_LOADED, 2$ ; 1718 68 00 FB 00039 CALLS #0, LOAD_IMAGE ; 1720 7E D4 0003C 2$: CLRL -(SP) ; 1722 0721 C8 01 FB 0003E CALLS #1, CHECK_ACTIVE_LIST ; 05 50 D1 00043 CMPL R0, #5 ; 29 12 00046 BNEQ 4$ ; 01C8 C7 D5 00048 TSTL ERRORS ; 1726 23 12 0004C BNEQ 4$ ; 50 01C0 C7 D0 0004E MOVL ACTIVE_LIST, CURR ; 1733 51 01C0 C7 9E 00053 MOVAB ACTIVE_LIST, R1 ; 1734 51 50 D1 00058 CMPL CURR, R1 ; 11 13 0005B BEQL 3$ ; 01C4 C7 50 D1 0005D CMPL CURR, ACTIVE_LIST+4 ; 1738 0D 12 00062 BNEQ 4$ ; 40000000 8F 14 A0 D1 00064 CMPL 20(CURR), #1073741824 ; 1739 03 1F 0006C BLSSU 4$ ; 00B6 31 0006E 3$: BRW 14$ ; F0 AD 1B D0 00071 4$: MOVL #27, PROMPT ; 1751 F4 AD FF46 CF 9E 00075 MOVAB P.ABI, PROMPT+4 ; 1752 F0 AD 9F 0007B PUSHAB PROMPT ; 1754 00000000G 00 01 FB 0007E CALLS #1, LIB$PUT_OUTPUT ; 0A 50 E8 00085 BLBS STATUS, 5$ ; 50 DD 00088 PUSHL STATUS ; 00000000G 00 01 FB 0008A CALLS #1, LIB$STOP ; 04 00091 RET ; 6E 84 8F 9A 00092 5$: MOVZBL #132, ANSWER ; 1769 04 AE 08 AE 9E 00096 MOVAB BUFFER, ANSWER+4 ; 1770 F0 AD 26 D0 0009B MOVL #38, PROMPT ; 1772 F4 AD FF37 CF 9E 0009F MOVAB P.ABJ, PROMPT+4 ; 1773 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 71 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (16) 5E DD 000A5 PUSHL SP ; 1775 F0 AD 9F 000A7 PUSHAB PROMPT ; 08 AE 9F 000AA PUSHAB ANSWER ; 00000000G 00 03 FB 000AD CALLS #3, LIB$GET_INPUT ; 56 50 D0 000B4 MOVL R0, STS ; 0001827A 8F 56 D1 000B7 CMPL STS, #98938 ; 1776 67 13 000BE BEQL 14$ ; 06 56 E8 000C0 BLBS STS, 6$ ; 1779 57 FC AD E8 000C3 BLBS AST_STATUS, 12$ ; 1781 5A 11 000C7 BRB 13$ ; 1783 52 6E D0 000C9 6$: MOVL ANSWER, R2 ; 1786 C4 13 000CC BEQL 5$ ; 01 52 D1 000CE CMPL R2, #1 ; 1788 1C 12 000D1 BNEQ 9$ ; 64 8F 08 AE 91 000D3 CMPB BUFFER, #100 ; 1789 07 13 000D8 BEQL 7$ ; 44 8F 08 AE 91 000DA CMPB BUFFER, #68 ; 1790 0E 12 000DF BNEQ 9$ ; 7E 046C 8F 3C 000E1 7$: MOVZWL #1132, -(SP) ; 1792 00000000G 00 01 FB 000E6 CALLS #1, LIB$SIGNAL ; A3 11 000ED 8$: BRB 5$ ; 67 94 000EF 9$: CLRB FAKE_VM_OUTPUT ; 1796 01 52 D1 000F1 CMPL R2, #1 ; 1797 0E 12 000F4 BNEQ 10$ ; 6C 8F 08 AE 91 000F6 CMPB BUFFER, #108 ; 1798 10 13 000FB BEQL 11$ ; 4C 8F 08 AE 91 000FD CMPB BUFFER, #76 ; 1799 09 13 00102 BEQL 11$ ; 67 52 90 00104 10$: MOVB R2, FAKE_VM_OUTPUT ; 1802 01 A7 08 AE 52 28 00107 MOVC3 R2, BUFFER, FAKE_VM_OUTPUT+1 ; 1805 0AC7 C8 00 FB 0010D 11$: CALLS #0, FAKE_VM ; 1808 56 50 D0 00112 MOVL R0, STS ; 67 94 00115 CLRB FAKE_VM_OUTPUT ; 1809 D3 56 E8 00117 BLBS STS, 8$ ; 1810 05 FC AD E9 0011A BLBC AST_STATUS, 13$ ; 1812 01 DD 0011E 12$: PUSHL #1 ; 69 01 FB 00120 CALLS #1, SYS$SETAST ; 50 56 D0 00123 13$: MOVL STS, R0 ; 1814 04 00126 RET ; 05 FC AD E9 00127 14$: BLBC AST_STATUS, 15$ ; 1821 01 DD 0012B PUSHL #1 ; 69 01 FB 0012D CALLS #1, SYS$SETAST ; 50 01 D0 00130 15$: MOVL #1, R0 ; 1825 04 00133 RET ; 0000 00134 16$: .WORD Save nothing ; 50 08 AC D0 00136 MOVL 8(AP), R0 ; 50 04 A0 D0 0013A MOVL 4(R0), R0 ; F8 A0 9F 0013E PUSHAB SIG_TO_RET ; FC A0 9F 00141 PUSHAB AST_STATUS ; 02 DD 00144 PUSHL #2 ; 5E DD 00146 PUSHL SP ; 7E 04 AC 7D 00148 MOVQ 4(AP), -(SP) ; ECDA CF 03 FB 0014C CALLS #3, AST_REENABLE ; 04 00151 RET ; ; Routine Size: 338 bytes, Routine Base: _FAKE_VM_CODE + 12B5 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 72 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (16) FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 73 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (17) ; 1829 1 GLOBAL ROUTINE fake_vm_histogram = ; 1830 2 BEGIN ; 1831 2 ; 1832 2 ROUTINE do_histogram (rab : REF $rab_decl, ; 1833 2 head : REF VECTOR, ; 1834 2 root : REF VECTOR) : NOVALUE = ; 1835 3 BEGIN ; 1836 3 ; 1837 3 LITERAL ; 1838 3 overhead = 20, ; 1839 3 fudge = 100; ; 1840 3 ; 1841 3 LOCAL ; 1842 3 desc : VECTOR [2], ; 1843 3 buff : VECTOR [1000, BYTE], ; 1844 3 faod : VECTOR [2], ; 1845 3 usable, ; 1846 3 divisor, ; 1847 3 divisor2, ; 1848 3 histo : REF VECTOR, ; 1849 3 bucket; ; 1850 3 ; 1851 3 desc [1] = buff [0]; ; 1852 3 ; 1853 3 rab [rab$w_rsz] = .head [0]; ; 1854 3 rab [rab$l_rbf] = .head [1]; ; 1855 3 $stop_if ($put (rab = .rab)); ; 1856 3 ; 1857 3 $load_desc (faod, '!UL bucket!%S of !UL byte!%S, !UL error!%S'); ; 1858 3 desc [0] = %ALLOCATION (buff); ; P 1859 3 $stop_if ($FAO (faod, desc, desc, .root [histo_size], ; P 1860 3 .root [histo_bucket], ; 1861 3 .root [histo_errors])); ; 1862 3 rab [rab$w_rsz] = .desc [0]; ; 1863 3 rab [rab$l_rbf] = .desc [1]; ; 1864 3 $stop_if ($put (rab = .rab)); ; 1865 3 ; 1866 3 usable = .fake_vm_histogram_width - overhead - 1; ; 1867 4 IF (.usable LSS 20) ; 1868 4 OR (.usable GTR (%ALLOCATION (buff) - overhead - 1)) ; 1869 3 THEN ; 1870 3 usable = histogram_width_default - overhead - 1; ; 1871 3 divisor = ((.root [histo_biggest] * fudge) / .usable) + 1; ; 1872 3 divisor2 = .divisor / 2; ; 1873 3 ; 1874 3 histo = .root [histo_gram]; ; 1875 3 bucket = 0; ; 1876 3 WHILE 1 ; 1877 3 DO ; 1878 4 BEGIN ; 1879 4 ; 1880 4 LOCAL ; 1881 4 remainder, ; 1882 4 whole, ; 1883 4 half, ; 1884 4 small; ; 1885 4 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 74 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (17) ; 1886 4 IF .bucket GEQU .root [histo_size] ; 1887 4 THEN ; 1888 4 EXITLOOP; ; 1889 4 ; 1890 4 IF .histo [.bucket] EQLU 0 ; 1891 4 THEN ; 1892 5 BEGIN ; 1893 5 ; 1894 5 LOCAL ; 1895 5 new_bucket, ; 1896 5 skipped; ; 1897 5 ; 1898 5 new_bucket = .bucket; ; 1899 5 WHILE 1 ; 1900 5 DO ; 1901 6 BEGIN ; 1902 6 new_bucket = .new_bucket + 1; ; 1903 6 IF .histo [.new_bucket] NEQU 0 ; 1904 6 THEN ; 1905 6 EXITLOOP; ; 1906 5 END; ; 1907 5 ; 1908 5 skipped = .new_bucket - .bucket; ; 1909 5 IF .skipped GEQU 10 ; 1910 5 THEN ; 1911 6 BEGIN ; 1912 6 ; 1913 6 bucket = .new_bucket; ; 1914 6 ; 1915 6 $load_desc (faod, ' !9UL skipped |'); ; 1916 6 desc [0] = %ALLOCATION (buff); ; 1917 6 $stop_if ($FAO (faod, desc, desc, .skipped)); ; 1918 6 rab [rab$w_rsz] = .desc [0]; ; 1919 6 rab [rab$l_rbf] = .desc [1]; ; 1920 6 $stop_if ($put (rab = .rab)); ; 1921 6 ; 1922 5 END; ; 1923 5 ; 1924 4 END; ; 1925 4 ; 1926 4 remainder = .histo [.bucket] * fudge; ; 1927 4 whole = .remainder / .divisor; ; 1928 4 remainder = .remainder - (.whole * .divisor); ; 1929 4 half = 0; ; 1930 4 small = 0; ; 1931 4 IF .remainder GTRU .divisor2 ; 1932 4 THEN ; 1933 4 half = 1 ; 1934 4 ELSE ; 1935 4 IF .whole EQLU 0 ; 1936 4 THEN ; 1937 4 IF .remainder NEQU 0 ; 1938 4 THEN ; 1939 4 small = 1; ; 1940 4 ; 1941 4 $load_desc (faod, '!XL !9UL |!#*X!#**!#*>'); ; 1942 4 desc [0] = %ALLOCATION (buff); FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 75 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (17) ; P 1943 4 $stop_if ($FAO (faod, desc, desc, .bucket * .root [2], ; P 1944 4 .histo [.bucket], ; P 1945 4 .whole, ; P 1946 4 .half, ; 1947 4 .small)); ; 1948 4 rab [rab$w_rsz] = .desc [0]; ; 1949 4 rab [rab$l_rbf] = .desc [1]; ; 1950 4 $stop_if ($put (rab = .rab)); ; 1951 4 ; 1952 4 bucket = .bucket + 1; ; 1953 4 ; 1954 3 END; ; 1955 3 ; 1956 2 END; 6F 20 53 25 21 74 65 6B 63 75 62 20 4C 55 21 01407 P.ABK: .ASCII \!UL bucket!%S of !UL byte!%S, !UL error!\ ; 20 2C 53 25 21 65 74 79 62 20 4C 55 21 20 66 01416 ; 21 72 6F 72 72 65 20 4C 55 21 01425 ; 53 25 0142F .ASCII \%S\ ; 7C 20 64 65 70 70 69 6B 73 20 4C 55 39 21 20 01431 P.ABL: .ASCII \ !9UL skipped |\ ; 21 58 2A 23 21 7C 20 4C 55 39 21 20 4C 58 21 01440 P.ABM: .ASCII \!XL !9UL |!#*X!#**!#*>\ ; 3E 2A 23 21 2A 2A 23 0144F ; 0FFC 00000 DO_HISTOGRAM: .WORD Save R2,R3,R4,R5,R6,R7,R8,R9,R10,R11 ; 1832 5B AC AF 9E 00002 MOVAB P.ABK, R11 ; 5A 00000000G 00 9E 00006 MOVAB SYS$PUT, R10 ; 5E FC08 CE 9E 0000D MOVAB -1016(SP), SP ; FC AD 08 AE 9E 00012 MOVAB BUFF, DESC+4 ; 1851 53 04 AC D0 00017 MOVL RAB, R3 ; 1853 50 08 AC D0 0001B MOVL HEAD, R0 ; 22 A3 60 B0 0001F MOVW (R0), 34(R3) ; 28 A3 04 A0 D0 00023 MOVL 4(R0), 40(R3) ; 1854 53 DD 00028 PUSHL R3 ; 1855 6A 01 FB 0002A CALLS #1, SYS$PUT ; 3A 50 E9 0002D BLBC STATUS, 1$ ; 6E 2A D0 00030 MOVL #42, FAOD ; 1857 04 AE 6B 9E 00033 MOVAB P.ABK, FAOD+4 ; F8 AD 03E8 8F 3C 00037 MOVZWL #1000, DESC ; 1858 54 0C AC D0 0003D MOVL ROOT, R4 ; 1861 10 A4 DD 00041 PUSHL 16(R4) ; 7E 04 A4 7D 00044 MOVQ 4(R4), -(SP) ; F8 AD 9F 00048 PUSHAB DESC ; F8 AD 9F 0004B PUSHAB DESC ; 14 AE 9F 0004E PUSHAB FAOD ; 00000000G 00 06 FB 00051 CALLS #6, SYS$FAO ; 0F 50 E9 00058 BLBC STATUS, 1$ ; 22 A3 F8 AD B0 0005B MOVW DESC, 34(R3) ; 1862 28 A3 FC AD D0 00060 MOVL DESC+4, 40(R3) ; 1863 53 DD 00065 PUSHL R3 ; 1864 6A 01 FB 00067 CALLS #1, SYS$PUT ; 72 50 E9 0006A 1$: BLBC STATUS, 7$ ; 50 00000000' EF 15 C3 0006D SUBL3 #21, FAKE_VM_HISTOGRAM_WIDTH, USABLE ; 1866 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 76 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (17) 14 50 D1 00075 CMPL USABLE, #20 ; 1867 09 19 00078 BLSS 2$ ; 000003D3 8F 50 D1 0007A CMPL USABLE, #979 ; 1868 03 15 00081 BLEQ 3$ ; 50 3B D0 00083 2$: MOVL #59, USABLE ; 1870 52 0C A4 00000064 8F C5 00086 3$: MULL3 #100, 12(R4), R2 ; 1871 52 50 C6 0008F DIVL2 USABLE, R2 ; 52 D6 00092 INCL DIVISOR ; 59 52 02 C7 00094 DIVL3 #2, DIVISOR, DIVISOR2 ; 1872 58 64 D0 00098 MOVL (R4), HISTO ; 1874 55 D4 0009B CLRL BUCKET ; 1875 04 A4 55 D1 0009D 4$: CMPL BUCKET, 4(R4) ; 1886 01 1F 000A1 BLSSU 5$ ; 04 000A3 RET ; 6845 D5 000A4 5$: TSTL (HISTO)[BUCKET] ; 1890 4B 12 000A7 BNEQ 8$ ; 50 55 D0 000A9 MOVL BUCKET, NEW_BUCKET ; 1898 50 D6 000AC 6$: INCL NEW_BUCKET ; 1902 6840 D5 000AE TSTL (HISTO)[NEW_BUCKET] ; 1903 F9 13 000B1 BEQL 6$ ; 51 50 55 C3 000B3 SUBL3 BUCKET, NEW_BUCKET, SKIPPED ; 1908 0A 51 D1 000B7 CMPL SKIPPED, #10 ; 1909 38 1F 000BA BLSSU 8$ ; 55 50 D0 000BC MOVL NEW_BUCKET, BUCKET ; 1913 6E 0F D0 000BF MOVL #15, FAOD ; 1915 04 AE 2A AB 9E 000C2 MOVAB P.ABL, FAOD+4 ; F8 AD 03E8 8F 3C 000C7 MOVZWL #1000, DESC ; 1916 51 DD 000CD PUSHL SKIPPED ; 1917 F8 AD 9F 000CF PUSHAB DESC ; F8 AD 9F 000D2 PUSHAB DESC ; 0C AE 9F 000D5 PUSHAB FAOD ; 00000000G 00 04 FB 000D8 CALLS #4, SYS$FAO ; 6B 50 E9 000DF 7$: BLBC STATUS, 11$ ; 22 A3 F8 AD B0 000E2 MOVW DESC, 34(R3) ; 1918 28 A3 FC AD D0 000E7 MOVL DESC+4, 40(R3) ; 1919 53 DD 000EC PUSHL R3 ; 1920 6A 01 FB 000EE CALLS #1, SYS$PUT ; 6E 50 E9 000F1 BLBC STATUS, 12$ ; 56 6845 00000064 8F C5 000F4 8$: MULL3 #100, (HISTO)[BUCKET], REMAINDER ; 1926 50 56 52 C7 000FD DIVL3 DIVISOR, REMAINDER, WHOLE ; 1927 51 50 52 C5 00101 MULL3 DIVISOR, WHOLE, R1 ; 1928 56 51 C2 00105 SUBL2 R1, REMAINDER ; 57 D4 00108 CLRL HALF ; 1929 51 D4 0010A CLRL SMALL ; 1930 59 56 D1 0010C CMPL REMAINDER, DIVISOR2 ; 1931 05 1B 0010F BLEQU 9$ ; 57 01 D0 00111 MOVL #1, HALF ; 1933 0B 11 00114 BRB 10$ ; 50 D5 00116 9$: TSTL WHOLE ; 1935 07 12 00118 BNEQ 10$ ; 56 D5 0011A TSTL REMAINDER ; 1937 03 13 0011C BEQL 10$ ; 51 01 D0 0011E MOVL #1, SMALL ; 1939 6E 16 D0 00121 10$: MOVL #22, FAOD ; 1941 04 AE 39 AB 9E 00124 MOVAB P.ABM, FAOD+4 ; F8 AD 03E8 8F 3C 00129 MOVZWL #1000, DESC ; 1942 51 DD 0012F PUSHL SMALL ; 1947 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 77 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (17) 0081 8F BB 00131 PUSHR #^M ; 6845 DD 00135 PUSHL (HISTO)[BUCKET] ; 7E 55 08 A4 C5 00138 MULL3 8(R4), BUCKET, -(SP) ; F8 AD 9F 0013D PUSHAB DESC ; F8 AD 9F 00140 PUSHAB DESC ; 1C AE 9F 00143 PUSHAB FAOD ; 00000000G 00 08 FB 00146 CALLS #8, SYS$FAO ; 12 50 E9 0014D 11$: BLBC STATUS, 12$ ; 22 A3 F8 AD B0 00150 MOVW DESC, 34(R3) ; 1948 28 A3 FC AD D0 00155 MOVL DESC+4, 40(R3) ; 1949 53 DD 0015A PUSHL R3 ; 1950 6A 01 FB 0015C CALLS #1, SYS$PUT ; 0A 50 E8 0015F BLBS STATUS, 13$ ; 50 DD 00162 12$: PUSHL STATUS ; 00000000G 00 01 FB 00164 CALLS #1, LIB$STOP ; 04 0016B RET ; 55 D6 0016C 13$: INCL BUCKET ; 1952 FF2C 31 0016E BRW 4$ ; 04 00171 RET ; 1956 ; Routine Size: 370 bytes, Routine Base: _FAKE_VM_CODE + 1456 ; 1957 2 ; 1958 2 LOCAL ; 1959 2 fab : $fab_decl, ; 1960 2 rab : $rab_decl, ; 1961 2 head : VECTOR [2]; ; 1962 2 ; 1963 2 $ast_disable (use_sig_to_ret = yes); ; 1964 2 ; 1965 2 IF NOT .image_loaded ; 1966 2 THEN ; 1967 2 load_image (); ; 1968 2 ; 1969 2 load_fab_rab (fab, rab, UPLIT BYTE (%ASCIC 'FAKE_VM.LIS')); ; 1970 2 ; 1971 2 $stop_if ($create (fab = fab)); ; 1972 2 $stop_if ($connect (rab = rab)); ; 1973 2 ; 1974 2 IF .disabled ; 1975 2 THEN ; 1976 3 BEGIN ; 1977 3 ; 1978 3 $load_desc (head, 'FAKE_VM processing has been *disabled*'); ; 1979 3 rab [rab$w_rsz] = .head [0]; ; 1980 3 rab [rab$l_rbf] = .head [1]; ; 1981 3 $stop_if ($put (rab = rab)); ; 1982 3 ; 1983 3 END ; 1984 2 ELSE ; 1985 3 BEGIN ; 1986 3 ; 1987 3 $load_desc (head, 'Memory size histogram:'); ; 1988 3 do_histogram (rab, head, memory_histo [0]); ; 1989 3 ; 1990 3 IF .string_disabled FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 78 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (17) ; 1991 3 THEN ; 1992 4 BEGIN ; 1993 4 ; 1994 4 $load_desc (head, 'FAKE_VM string processing has been *disabled*'); ; 1995 4 rab [rab$w_rsz] = .head [0]; ; 1996 4 rab [rab$l_rbf] = .head [1]; ; 1997 4 $stop_if ($put (rab = rab)); ; 1998 4 ; 1999 4 END ; 2000 3 ELSE ; 2001 4 BEGIN ; 2002 4 ; 2003 4 $load_desc (head, 'String size histogram:'); ; 2004 4 do_histogram (rab, head, string_histo [0]); ; 2005 4 ; 2006 3 END; ; 2007 3 ; 2008 2 END; ; 2009 2 ; 2010 2 $stop_if ($disconnect (rab = rab)); ; 2011 2 $stop_if ($close (fab = fab)); ; 2012 2 ; 2013 2 $ast_enable; ; 2014 2 ; 2015 2 RETURN 1; ; 2016 2 ; 2017 1 END; 53 49 4C 2E 4D 56 5F 45 4B 41 46 0B 015C8 P.ABN: .ASCII <11>\FAKE_VM.LIS\ ; 73 73 65 63 6F 72 70 20 4D 56 5F 45 4B 41 46 015D4 P.ABO: .ASCII \FAKE_VM processing has been *disabled*\ ; 64 2A 20 6E 65 65 62 20 73 61 68 20 67 6E 69 015E3 ; 2A 64 65 6C 62 61 73 69 015F2 ; 73 69 68 20 65 7A 69 73 20 79 72 6F 6D 65 4D 015FA P.ABP: .ASCII \Memory size histogram:\ ; 3A 6D 61 72 67 6F 74 01609 ; 20 67 6E 69 72 74 73 20 4D 56 5F 45 4B 41 46 01610 P.ABQ: .ASCII \FAKE_VM string processing has been *disa\ ; 20 73 61 68 20 67 6E 69 73 73 65 63 6F 72 70 0161F ; 61 73 69 64 2A 20 6E 65 65 62 0162E ; 2A 64 65 6C 62 01638 .ASCII \bled*\ ; 73 69 68 20 65 7A 69 73 20 67 6E 69 72 74 53 0163D P.ABR: .ASCII \String size histogram:\ ; 3A 6D 61 72 67 6F 74 0164C ; 001C 00000 .ENTRY FAKE_VM_HISTOGRAM, Save R2,R3,R4 ; 1829 54 00000000G 00 9E 00002 MOVAB SYS$SETAST, R4 ; 53 00000000' EF 9E 00009 MOVAB IMAGE_LOADED, R3 ; 52 FDEF CF 9E 00010 MOVAB DO_HISTOGRAM, R2 ; 5E FF60 CE 9E 00015 MOVAB -160(SP), SP ; 7E D4 0001A CLRL SIG_TO_RET ; 1963 04 AE D4 0001C CLRL AST_STATUS ; 6D 00D9 CF DE 0001F MOVAL 12$, (FP) ; 6E 01 D0 00024 MOVL #1, SIG_TO_RET ; 7E D4 00027 CLRL -(SP) ; 64 01 FB 00029 CALLS #1, SYS$SETAST ; 09 50 D1 0002C CMPL R0, #9 ; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 79 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (17) 04 12 0002F BNEQ 1$ ; 04 AE 01 D0 00031 MOVL #1, AST_STATUS ; 05 63 E8 00035 1$: BLBS IMAGE_LOADED, 2$ ; 1965 EFA6 C2 00 FB 00038 CALLS #0, LOAD_IMAGE ; 1967 FF34 CF 9F 0003D 2$: PUSHAB P.ABN ; 1969 14 AE 9F 00041 PUSHAB RAB ; 5C AE 9F 00044 PUSHAB FAB ; F7DB C2 03 FB 00047 CALLS #3, LOAD_FAB_RAB ; 54 AE 9F 0004C PUSHAB FAB ; 1971 00000000G 00 01 FB 0004F CALLS #1, SYS$CREATE ; 59 50 E9 00056 BLBC STATUS, 5$ ; 10 AE 9F 00059 PUSHAB RAB ; 1972 00000000G 00 01 FB 0005C CALLS #1, SYS$CONNECT ; 6F 50 E9 00063 BLBC STATUS, 8$ ; 0C 04 A3 E9 00066 BLBC DISABLED, 3$ ; 1974 08 AE 26 D0 0006A MOVL #38, HEAD ; 1978 0C AE FF0F CF 9E 0006E MOVAB P.ABO, HEAD+4 ; 25 11 00074 BRB 4$ ; 1979 08 AE 16 D0 00076 3$: MOVL #22, HEAD ; 1987 0C AE FF29 CF 9E 0007A MOVAB P.ABP, HEAD+4 ; 00BC C3 9F 00080 PUSHAB MEMORY_HISTO ; 1988 0C AE 9F 00084 PUSHAB HEAD ; 18 AE 9F 00087 PUSHAB RAB ; 62 03 FB 0008A CALLS #3, DO_HISTOGRAM ; 23 08 A3 E9 0008D BLBC STRING_DISABLED, 6$ ; 1990 08 AE 2D D0 00091 MOVL #45, HEAD ; 1994 0C AE FF24 CF 9E 00095 MOVAB P.ABQ, HEAD+4 ; 32 AE 08 AE B0 0009B 4$: MOVW HEAD, RAB+34 ; 1995 38 AE 0C AE D0 000A0 MOVL HEAD+4, RAB+40 ; 1996 10 AE 9F 000A5 PUSHAB RAB ; 1997 00000000G 00 01 FB 000A8 CALLS #1, SYS$PUT ; 19 50 E8 000AF BLBS STATUS, 7$ ; 31 11 000B2 5$: BRB 9$ ; 08 AE 16 D0 000B4 6$: MOVL #22, HEAD ; 2003 0C AE FF2E CF 9E 000B8 MOVAB P.ABR, HEAD+4 ; 00D0 C3 9F 000BE PUSHAB STRING_HISTO ; 2004 0C AE 9F 000C2 PUSHAB HEAD ; 18 AE 9F 000C5 PUSHAB RAB ; 62 03 FB 000C8 CALLS #3, DO_HISTOGRAM ; 10 AE 9F 000CB 7$: PUSHAB RAB ; 2010 00000000G 00 01 FB 000CE CALLS #1, SYS$DISCONNECT ; 0D 50 E9 000D5 8$: BLBC STATUS, 9$ ; 54 AE 9F 000D8 PUSHAB FAB ; 2011 00000000G 00 01 FB 000DB CALLS #1, SYS$CLOSE ; 0A 50 E8 000E2 BLBS STATUS, 10$ ; 50 DD 000E5 9$: PUSHL STATUS ; 00000000G 00 01 FB 000E7 CALLS #1, LIB$STOP ; 04 000EE RET ; 05 04 AE E9 000EF 10$: BLBC AST_STATUS, 11$ ; 01 DD 000F3 PUSHL #1 ; 64 01 FB 000F5 CALLS #1, SYS$SETAST ; 50 01 D0 000F8 11$: MOVL #1, R0 ; 2015 04 000FB RET ; 0000 000FC 12$: .WORD Save nothing ; 50 08 AC D0 000FE MOVL 8(AP), R0 ; 50 04 A0 D0 00102 MOVL 4(R0), R0 ; FF5C C0 9F 00106 PUSHAB SIG_TO_RET ; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 80 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (17) FF60 C0 9F 0010A PUSHAB AST_STATUS ; 02 DD 0010E PUSHL #2 ; 5E DD 00110 PUSHL SP ; 7E 04 AC 7D 00112 MOVQ 4(AP), -(SP) ; E972 CF 03 FB 00116 CALLS #3, AST_REENABLE ; 04 0011B RET ; ; Routine Size: 284 bytes, Routine Base: _FAKE_VM_CODE + 1653 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 81 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (18) ; 2019 1 GLOBAL ROUTINE fake_vm_efn = ; 2020 2 BEGIN ; 2021 2 ; 2022 2 LOCAL ; 2023 2 fab : $fab_decl, ; 2024 2 rab : $rab_decl, ; 2025 2 faod : VECTOR [2], ; 2026 2 efns : VECTOR [2], ; 2027 2 some_efn, ; 2028 2 desc : VECTOR [2], ; 2029 2 buff : VECTOR [80, BYTE]; ; 2030 2 ; 2031 2 $ast_disable (use_sig_to_ret = yes); ; 2032 2 ; 2033 2 IF NOT .image_loaded ; 2034 2 THEN ; 2035 2 load_image (); ; 2036 2 ; 2037 2 load_fab_rab (fab, rab, UPLIT BYTE (%ASCIC 'FAKE_VM.LIS')); ; 2038 2 ; 2039 2 $stop_if ($create (fab = fab)); ; 2040 2 $stop_if ($connect (rab = rab)); ; 2041 2 ; 2042 2 IF .efn_disabled ; 2043 2 THEN ; 2044 3 BEGIN ; 2045 3 ; 2046 3 $load_desc (faod, 'FAKE_VM processing has been *disabled*'); ; 2047 3 rab [rab$w_rsz] = .faod [0]; ; 2048 3 rab [rab$l_rbf] = .faod [1]; ; 2049 3 $stop_if ($put (rab = rab)); ; 2050 3 ; 2051 3 END ; 2052 2 ELSE ; 2053 3 BEGIN ; 2054 3 ; 2055 3 efns [0] = -1; ; 2056 3 efns [1] = -1; ; 2057 3 $ASSUME (efn_vector, EQLU, 64) ; 2058 3 ; 2059 3 WHILE (.get_ef_addr) (some_efn) ; 2060 3 DO ; 2061 3 IF .some_efn GEQU efn_vector ; 2062 3 THEN ; 2063 4 BEGIN ; 2064 4 (.free_ef_addr) (some_efn); ; 2065 4 EXITLOOP; ; 2066 4 END ; 2067 3 ELSE ; 2068 4 BEGIN ; 2069 4 MAP ; 2070 4 efns : BITVECTOR; ; 2071 4 efns [.some_efn] = 0; ; 2072 3 END; ; 2073 3 ; 2074 4 INCR i FROM 0 TO (efn_vector - 1) ; 2075 3 DO FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 82 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (18) ; 2076 4 BEGIN ; 2077 4 MAP ; 2078 4 efns : BITVECTOR; ; 2079 4 IF NOT .efns [.i] ; 2080 4 THEN ; 2081 4 (.free_ef_addr) (i); ; 2082 3 END; ; 2083 3 ; 2084 3 desc [1] = buff [0]; ; 2085 3 ; 2086 3 $load_desc (faod, 'Current inuse EFNs: !XL !XL'); ; 2087 3 desc [0] = %ALLOCATION (buff); ; 2088 3 $stop_if ($FAO (faod, desc, desc, .efns [1], .efns [0])); ; 2089 3 rab [rab$w_rsz] = .desc [0]; ; 2090 3 rab [rab$l_rbf] = .desc [1]; ; 2091 3 $stop_if ($put (rab = rab)); ; 2092 3 ; 2093 4 INCR i FROM 0 TO (efn_vector - 1) ; 2094 3 DO ; 2095 3 IF .efn_list [.i] NEQA 0 ; 2096 3 THEN ; 2097 4 BEGIN ; 2098 4 $load_desc (faod, ' EFN !UL allocated from PC !XL'); ; 2099 4 desc [0] = %ALLOCATION (buff); ; 2100 4 $stop_if ($FAO (faod, desc, desc, .i, .efn_list [.i])); ; 2101 4 rab [rab$w_rsz] = .desc [0]; ; 2102 4 rab [rab$l_rbf] = .desc [1]; ; 2103 4 $stop_if ($put (rab = rab)); ; 2104 3 END; ; 2105 3 ; 2106 2 END; ; 2107 2 ; 2108 2 $stop_if ($disconnect (rab = rab)); ; 2109 2 $stop_if ($close (fab = fab)); ; 2110 2 ; 2111 2 $ast_enable; ; 2112 2 ; 2113 2 RETURN 1; ; 2114 2 ; 2115 1 END; 53 49 4C 2E 4D 56 5F 45 4B 41 46 0B 0176F P.ABS: .ASCII <11>\FAKE_VM.LIS\ ; 73 73 65 63 6F 72 70 20 4D 56 5F 45 4B 41 46 0177B P.ABT: .ASCII \FAKE_VM processing has been *disabled*\ ; 64 2A 20 6E 65 65 62 20 73 61 68 20 67 6E 69 0178A ; 2A 64 65 6C 62 61 73 69 01799 ; 45 20 65 73 75 6E 69 20 74 6E 65 72 72 75 43 017A1 P.ABU: .ASCII \Current inuse EFNs: !XL !XL\ ; 4C 58 21 20 4C 58 21 20 3A 73 4E 46 017B0 ; 61 63 6F 6C 6C 61 20 4C 55 21 20 4E 46 45 20 017BC P.ABV: .ASCII \ EFN !UL allocated from PC !XL\ ; 4C 58 21 20 43 50 20 6D 6F 72 66 20 64 65 74 017CB ; 00FC 00000 .ENTRY FAKE_VM_EFN, Save R2,R3,R4,R5,R6,R7 ; 2019 57 00000000G 00 9E 00002 MOVAB SYS$SETAST, R7 ; 56 00000000G 00 9E 00009 MOVAB SYS$FAO, R6 ; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 83 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (18) 55 00000000G 00 9E 00010 MOVAB SYS$PUT, R5 ; 54 EC07 CF 9E 00017 MOVAB LOAD_IMAGE, R4 ; 53 00000000' EF 9E 0001C MOVAB FREE_EF_ADDR, R3 ; 5E FEF4 CE 9E 00023 MOVAB -268(SP), SP ; 08 AE 7C 00028 CLRQ SIG_TO_RET ; 2031 6D 0155 CF DE 0002B MOVAL 17$, (FP) ; 08 AE 01 D0 00030 MOVL #1, SIG_TO_RET ; 7E D4 00034 CLRL -(SP) ; 67 01 FB 00036 CALLS #1, SYS$SETAST ; 09 50 D1 00039 CMPL R0, #9 ; 04 12 0003C BNEQ 1$ ; 0C AE 01 D0 0003E MOVL #1, AST_STATUS ; 03 FDCC C3 E8 00042 1$: BLBS IMAGE_LOADED, 2$ ; 2033 64 00 FB 00047 CALLS #0, LOAD_IMAGE ; 2035 FF47 CF 9F 0004A 2$: PUSHAB P.ABS ; 2037 7C AE 9F 0004E PUSHAB RAB ; B0 AD 9F 00051 PUSHAB FAB ; 0835 C4 03 FB 00054 CALLS #3, LOAD_FAB_RAB ; B0 AD 9F 00059 PUSHAB FAB ; 2039 00000000G 00 01 FB 0005C CALLS #1, SYS$CREATE ; 2C 50 E9 00063 BLBC STATUS, 3$ ; 78 AE 9F 00066 PUSHAB RAB ; 2040 00000000G 00 01 FB 00069 CALLS #1, SYS$CONNECT ; 1F 50 E9 00070 BLBC STATUS, 3$ ; 20 FDD8 C3 E9 00073 BLBC EFN_DISABLED, 4$ ; 2042 70 AE 26 D0 00078 MOVL #38, FAOD ; 2046 74 AE FF21 CF 9E 0007C MOVAB P.ABT, FAOD+4 ; 8E AD 70 AE B0 00082 MOVW FAOD, RAB+34 ; 2047 94 AD 74 AE D0 00087 MOVL FAOD+4, RAB+40 ; 2048 78 AE 9F 0008C PUSHAB RAB ; 2049 65 01 FB 0008F CALLS #1, SYS$PUT ; 77 50 E9 00092 3$: BLBC STATUS, 10$ ; 00BB 31 00095 BRW 13$ ; 68 AE 01 CE 00098 4$: MNEGL #1, EFNS ; 2055 6C AE 01 CE 0009C MNEGL #1, EFNS+4 ; 2056 5E DD 000A0 5$: PUSHL SP ; 2059 F4 B3 01 FB 000A2 CALLS #1, @GET_EF_ADDR ; 14 50 E9 000A6 BLBC R0, 7$ ; 3F 6E D1 000A9 CMPL SOME_EFN, #63 ; 2061 08 1B 000AC BLEQU 6$ ; 5E DD 000AE PUSHL SP ; 2064 00 B3 01 FB 000B0 CALLS #1, @FREE_EF_ADDR ; 07 11 000B4 BRB 7$ ; 2065 E5 68 AE 6E E5 000B6 6$: BBCC SOME_EFN, EFNS, 5$ ; 2071 E3 11 000BB BRB 5$ ; 2059 04 AE D4 000BD 7$: CLRL I ; 2074 07 68 AE 04 AE E0 000C0 8$: BBS I, EFNS, 9$ ; 2079 04 AE 9F 000C6 PUSHAB I ; 2081 00 B3 01 FB 000C9 CALLS #1, @FREE_EF_ADDR ; EE 04 AE 3F F3 000CD 9$: AOBLEQ #63, I, 8$ ; 2074 64 AE 10 AE 9E 000D2 MOVAB BUFF, DESC+4 ; 2084 70 AE 1B D0 000D7 MOVL #27, FAOD ; 2086 74 AE FEE8 CF 9E 000DB MOVAB P.ABU, FAOD+4 ; 60 AE 50 8F 9A 000E1 MOVZBL #80, DESC ; 2087 68 AE DD 000E6 PUSHL EFNS ; 2088 70 AE DD 000E9 PUSHL EFNS+4 ; 68 AE 9F 000EC PUSHAB DESC ; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 84 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (18) 6C AE 9F 000EF PUSHAB DESC ; 0080 CE 9F 000F2 PUSHAB FAOD ; 66 05 FB 000F6 CALLS #5, SYS$FAO ; 71 50 E9 000F9 BLBC STATUS, 14$ ; 8E AD 60 AE B0 000FC MOVW DESC, RAB+34 ; 2089 94 AD 64 AE D0 00101 MOVL DESC+4, RAB+40 ; 2090 78 AE 9F 00106 PUSHAB RAB ; 2091 65 01 FB 00109 CALLS #1, SYS$PUT ; 5E 50 E9 0010C 10$: BLBC STATUS, 14$ ; 52 D4 0010F CLRL I ; 2093 50 FEB0 C342 D0 00111 11$: MOVL EFN_LIST[I], R0 ; 2095 36 13 00117 BEQL 12$ ; 70 AE 1E D0 00119 MOVL #30, FAOD ; 2098 74 AE FEC1 CF 9E 0011D MOVAB P.ABV, FAOD+4 ; 60 AE 50 8F 9A 00123 MOVZBL #80, DESC ; 2099 50 DD 00128 PUSHL R0 ; 2100 52 DD 0012A PUSHL I ; 68 AE 9F 0012C PUSHAB DESC ; 6C AE 9F 0012F PUSHAB DESC ; 0080 CE 9F 00132 PUSHAB FAOD ; 66 05 FB 00136 CALLS #5, SYS$FAO ; 31 50 E9 00139 BLBC STATUS, 14$ ; 8E AD 60 AE B0 0013C MOVW DESC, RAB+34 ; 2101 94 AD 64 AE D0 00141 MOVL DESC+4, RAB+40 ; 2102 78 AE 9F 00146 PUSHAB RAB ; 2103 65 01 FB 00149 CALLS #1, SYS$PUT ; 1E 50 E9 0014C BLBC STATUS, 14$ ; BE 52 3F F3 0014F 12$: AOBLEQ #63, I, 11$ ; 2093 78 AE 9F 00153 13$: PUSHAB RAB ; 2108 00000000G 00 01 FB 00156 CALLS #1, SYS$DISCONNECT ; 0D 50 E9 0015D BLBC STATUS, 14$ ; B0 AD 9F 00160 PUSHAB FAB ; 2109 00000000G 00 01 FB 00163 CALLS #1, SYS$CLOSE ; 0A 50 E8 0016A BLBS STATUS, 15$ ; 50 DD 0016D 14$: PUSHL STATUS ; 00000000G 00 01 FB 0016F CALLS #1, LIB$STOP ; 04 00176 RET ; 05 0C AE E9 00177 15$: BLBC AST_STATUS, 16$ ; 01 DD 0017B PUSHL #1 ; 67 01 FB 0017D CALLS #1, SYS$SETAST ; 50 01 D0 00180 16$: MOVL #1, R0 ; 2113 04 00183 RET ; 0000 00184 17$: .WORD Save nothing ; 50 08 AC D0 00186 MOVL 8(AP), R0 ; 50 04 A0 D0 0018A MOVL 4(R0), R0 ; FEFC C0 9F 0018E PUSHAB SIG_TO_RET ; FF00 C0 9F 00192 PUSHAB AST_STATUS ; 02 DD 00196 PUSHL #2 ; 5E DD 00198 PUSHL SP ; 7E 04 AC 7D 0019A MOVQ 4(AP), -(SP) ; E763 CF 03 FB 0019E CALLS #3, AST_REENABLE ; 04 001A3 RET ; ; Routine Size: 420 bytes, Routine Base: _FAKE_VM_CODE + 17DA FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 85 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (19) ; 2117 1 ROUTINE do_log (string : REF VECTOR [, BYTE], params) : NOVALUE = ; 2118 2 BEGIN ; 2119 2 ; 2120 2 LOCAL ; 2121 2 buff : VECTOR [132, BYTE], ; 2122 2 desc : VECTOR [2], ; 2123 2 faod : VECTOR [2]; ; 2124 2 ; 2125 2 IF .log_fab [fab$w_ifi] EQLU 0 ; 2126 2 THEN ; 2127 3 BEGIN ; 2128 3 ; 2129 3 load_fab_rab (log_fab, log_rab, UPLIT BYTE (%ASCIC 'FAKE_VM_LOG.LOG')); ; 2130 3 ; 2131 3 $stop_if ($create (fab = log_fab)); ; 2132 3 $stop_if ($connect (rab = log_rab)); ; 2133 3 ; 2134 2 END; ; 2135 2 ; 2136 2 desc [0] = %ALLOCATION (buff); ; 2137 2 desc [1] = buff [0]; ; 2138 2 ; 2139 2 faod [0] = .string [0]; ; 2140 2 faod [1] = string [1]; ; 2141 2 ; P 2142 2 $stop_if ($FAOL (CTRSTR = faod, ; P 2143 2 OUTBUF = desc, ; P 2144 2 OUTLEN = desc, ; 2145 2 PRMLST = params)); ; 2146 2 ; 2147 2 log_rab [rab$w_rsz] = .desc [0]; ; 2148 2 log_rab [rab$l_rbf] = .desc [1]; ; 2149 2 $stop_if ($put (rab = log_rab)); ; 2150 2 $stop_if ($flush (rab = log_rab)); ; 2151 2 ; 2152 1 END; 4F 4C 2E 47 4F 4C 5F 4D 56 5F 45 4B 41 46 0F 0197E P.ABW: .ASCII <15>\FAKE_VM_LOG.LOG\ ; 47 0198D ; .EXTRN SYS$FAOL, SYS$FLUSH 000C 00000 DO_LOG: .WORD Save R2,R3 ; 2117 53 EB AF 9E 00002 MOVAB P.ABW, R3 ; 52 00000000' EF 9E 00006 MOVAB LOG_RAB, R2 ; 5E FF6C CE 9E 0000D MOVAB -148(SP), SP ; B2 A2 B5 00012 TSTW LOG_FAB+2 ; 2125 23 12 00015 BNEQ 1$ ; 0C BB 00017 PUSHR #^M ; 2129 B0 A2 9F 00019 PUSHAB LOG_FAB ; F282 CF 03 FB 0001C CALLS #3, LOAD_FAB_RAB ; B0 A2 9F 00021 PUSHAB LOG_FAB ; 2131 00000000G 00 01 FB 00024 CALLS #1, SYS$CREATE ; 58 50 E9 0002B BLBC STATUS, 2$ ; 52 DD 0002E PUSHL R2 ; 2132 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 86 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (19) 00000000G 00 01 FB 00030 CALLS #1, SYS$CONNECT ; 4C 50 E9 00037 BLBC STATUS, 2$ ; 08 AE 84 8F 9A 0003A 1$: MOVZBL #132, DESC ; 2136 0C AE 10 AE 9E 0003F MOVAB BUFF, DESC+4 ; 2137 6E 04 BC 9A 00044 MOVZBL @STRING, FAOD ; 2139 04 AE 04 AC 01 C1 00048 ADDL3 #1, STRING, FAOD+4 ; 2140 08 AC 9F 0004E PUSHAB PARAMS ; 2145 0C AE 9F 00051 PUSHAB DESC ; 10 AE 9F 00054 PUSHAB DESC ; 0C AE 9F 00057 PUSHAB FAOD ; 00000000G 00 04 FB 0005A CALLS #4, SYS$FAOL ; 22 50 E9 00061 BLBC STATUS, 2$ ; 22 A2 08 AE B0 00064 MOVW DESC, LOG_RAB+34 ; 2147 28 A2 0C AE D0 00069 MOVL DESC+4, LOG_RAB+40 ; 2148 52 DD 0006E PUSHL R2 ; 2149 00000000G 00 01 FB 00070 CALLS #1, SYS$PUT ; 0C 50 E9 00077 BLBC STATUS, 2$ ; 52 DD 0007A PUSHL R2 ; 2150 00000000G 00 01 FB 0007C CALLS #1, SYS$FLUSH ; 09 50 E8 00083 BLBS STATUS, 3$ ; 50 DD 00086 2$: PUSHL STATUS ; 00000000G 00 01 FB 00088 CALLS #1, LIB$STOP ; 04 0008F 3$: RET ; 2152 ; Routine Size: 144 bytes, Routine Base: _FAKE_VM_CODE + 198E FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 87 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (20) ; 2154 1 ROUTINE call_debug (string : REF VECTOR [, BYTE], params) : NOVALUE = ; 2155 2 BEGIN ; 2156 2 ; 2157 2 LOCAL ; 2158 2 desc : VECTOR [2], ; 2159 2 faod : VECTOR [2]; ; 2160 2 ; 2161 2 desc [0] = %ALLOCATION (fake_vm_message) - 1; ; 2162 2 desc [1] = fake_vm_message [1]; ; 2163 2 ; 2164 2 faod [0] = .string [0]; ; 2165 2 faod [1] = string [1]; ; 2166 2 ; P 2167 2 $stop_if ($FAOL (CTRSTR = faod, ; P 2168 2 OUTBUF = desc, ; P 2169 2 OUTLEN = desc, ; 2170 2 PRMLST = params)); ; 2171 2 fake_vm_message [0] = .desc [0]; ; 2172 2 ; 2173 2 $stop_if (lib$put_output (desc)); ; 2174 2 ; 2175 2 IF .fake_vm_stop ; 2176 2 THEN ; P 2177 2 $stop_if (lib$signal (SS$_DEBUG, 1, ; 2178 2 UPLIT BYTE (%ASCIC 'EXAMINE/ASCIC FAKE_VM_MESSAGE'))); ; 2179 2 ; 2180 1 END; 20 43 49 43 53 41 2F 45 4E 49 4D 41 58 45 1D 01A1E P.ABX: .ASCII <29>\EXAMINE/ASCIC FAKE_VM_MESSAGE\ ; 45 47 41 53 53 45 4D 5F 4D 56 5F 45 4B 41 46 01A2D ; 0004 00000 CALL_DEBUG: .WORD Save R2 ; 2154 52 00000000' EF 9E 00002 MOVAB FAKE_VM_MESSAGE+1, R2 ; 5E 0C C2 00009 SUBL2 #12, SP ; 04 AE 84 8F 9A 0000C MOVZBL #132, DESC ; 2161 08 AE 62 9E 00011 MOVAB FAKE_VM_MESSAGE+1, DESC+4 ; 2162 7E 04 BC 9A 00015 MOVZBL @STRING, FAOD ; 2164 04 AE 04 AC 01 C1 00019 ADDL3 #1, STRING, FAOD+4 ; 2165 08 AC 9F 0001F PUSHAB PARAMS ; 2170 0C AE 9F 00022 PUSHAB DESC ; 10 AE 9F 00025 PUSHAB DESC ; 0C AE 9F 00028 PUSHAB FAOD ; 00000000G 00 04 FB 0002B CALLS #4, SYS$FAOL ; 2B 50 E9 00032 BLBC STATUS, 1$ ; FF A2 08 AE 90 00035 MOVB DESC, FAKE_VM_MESSAGE ; 2171 08 AE 9F 0003A PUSHAB DESC ; 2173 00000000G 00 01 FB 0003D CALLS #1, LIB$PUT_OUTPUT ; 19 50 E9 00044 BLBC STATUS, 1$ ; 1D FF6B C2 E9 00047 BLBC FAKE_VM_STOP, 2$ ; 2175 93 AF 9F 0004C PUSHAB P.ABX ; 2178 01 DD 0004F PUSHL #1 ; 7E 046C 8F 3C 00051 MOVZWL #1132, -(SP) ; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 88 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (20) 00000000G 00 03 FB 00056 CALLS #3, LIB$SIGNAL ; 09 50 E8 0005D BLBS STATUS, 2$ ; 50 DD 00060 1$: PUSHL STATUS ; 00000000G 00 01 FB 00062 CALLS #1, LIB$STOP ; 04 00069 2$: RET ; 2180 ; Routine Size: 106 bytes, Routine Base: _FAKE_VM_CODE + 1A3C FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 89 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (21) ; 2182 1 ROUTINE add_to_histogram (root : REF VECTOR, size) : NOVALUE = ; 2183 2 BEGIN ; 2184 2 ; 2185 2 LOCAL ; 2186 2 index, ; 2187 2 histo : REF VECTOR; ; 2188 2 ; 2189 2 index = .size / .root [histo_bucket]; ; 2190 2 ; 2191 2 IF .index GEQU .root [histo_size] ; 2192 2 THEN ; 2193 3 BEGIN ; 2194 3 ; 2195 3 LOCAL ; 2196 3 new_len, ; 2197 3 new_mem : REF VECTOR, ; 2198 3 status, ; 2199 3 copy_len, ; 2200 3 zero_len, ; 2201 3 old_ptr : REF VECTOR, ; 2202 3 new_ptr : REF VECTOR; ; 2203 3 ; 2204 3 new_len = (.index + 1) * 4; ; 2205 3 status = (.get_vm_addr) (new_len, new_mem); ; 2206 3 IF NOT .status ; 2207 3 THEN ; 2208 4 BEGIN ; P 2209 4 $call_debug_histo ('histogram LIB$GET_VM failed: Status = !XL', ; 2210 4 .status); ; 2211 4 RETURN; ; 2212 3 END; ; 2213 3 ; 2214 3 copy_len = .root [histo_size] * 4; ; 2215 3 zero_len = .new_len - .copy_len; ; 2216 3 ; 2217 3 old_ptr = .root [histo_gram]; ; 2218 3 new_ptr = new_mem [0]; ; 2219 3 ; 2220 3 WHILE 1 ; 2221 3 DO ; 2222 4 BEGIN ; 2223 4 LOCAL ; 2224 4 len; ; 2225 4 len = .copy_len; ; 2226 4 IF .len GTRU 65535 ; 2227 4 THEN ; 2228 4 len = 65535; ; 2229 4 new_ptr = CH$MOVE (.len, old_ptr [0], new_ptr [0]); ; 2230 4 old_ptr = old_ptr [0] + .len; ; 2231 4 copy_len = .copy_len - .len; ; 2232 4 IF .copy_len EQLU 0 ; 2233 4 THEN ; 2234 4 EXITLOOP; ; 2235 3 END; ; 2236 3 ; 2237 3 WHILE 1 ; 2238 3 DO FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 90 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (21) ; 2239 4 BEGIN ; 2240 4 LOCAL ; 2241 4 len; ; 2242 4 len = .zero_len; ; 2243 4 IF .len GTRU 65535 ; 2244 4 THEN ; 2245 4 len = 65535; ; 2246 4 new_ptr = CH$FILL (0, .len, new_ptr [0]); ; 2247 4 zero_len = .zero_len - .len; ; 2248 4 IF .zero_len EQLU 0 ; 2249 4 THEN ; 2250 4 EXITLOOP; ; 2251 3 END; ; 2252 3 ; 2253 3 IF .root [histo_gram] NEQA 0 ; 2254 3 THEN ; 2255 4 BEGIN ; 2256 4 new_len = .root [histo_size] * 4; ; 2257 4 status = (.free_vm_addr) (new_len, root [histo_gram]); ; 2258 4 IF NOT .status ; 2259 4 THEN ; P 2260 4 $call_debug_histo ('histogram LIB$FREE_VM failed: Status = !XL', ; 2261 4 .status); ; 2262 3 END; ; 2263 3 ; 2264 3 root [histo_gram] = new_mem [0]; ; 2265 3 root [histo_size] = .index + 1; ; 2266 3 ; 2267 2 END; ; 2268 2 ; 2269 2 histo = .root [histo_gram]; ; 2270 2 histo [.index] = .histo [.index] + 1; ; 2271 2 ; 2272 2 IF .histo [.index] GTRU .root [histo_biggest] ; 2273 2 THEN ; 2274 2 root [histo_biggest] = .histo [.index]; ; 2275 2 ; 2276 1 END; 33 01AA6 P.ABY: .BYTE 51 ; 20 2C 4D 56 5F 45 4B 41 46 25 01AA7 .ASCII \%FAKE_VM, \ ; 47 24 42 49 4C 20 6D 61 72 67 6F 74 73 69 68 01AB1 .ASCII \histogram LIB$GET_VM failed: Status = !X\ ; 53 20 3A 64 65 6C 69 61 66 20 4D 56 5F 54 45 01AC0 ; 58 21 20 3D 20 73 75 74 61 74 01ACF ; 4C 01AD9 .ASCII \L\ ; 34 01ADA P.ABZ: .BYTE 52 ; 20 2C 4D 56 5F 45 4B 41 46 25 01ADB .ASCII \%FAKE_VM, \ ; 46 24 42 49 4C 20 6D 61 72 67 6F 74 73 69 68 01AE5 .ASCII \histogram LIB$FREE_VM failed: Status = !\ ; 20 3A 64 65 6C 69 61 66 20 4D 56 5F 45 45 52 01AF4 ; 21 20 3D 20 73 75 74 61 74 53 01B03 ; 4C 58 01B0D .ASCII \XL\ ; 0FFC 00000 ADD_TO_HISTOGRAM: FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 91 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (21) .WORD Save R2,R3,R4,R5,R6,R7,R8,R9,R10,R11 ; 2182 5E 10 C2 00002 SUBL2 #16, SP ; 56 04 AC D0 00005 MOVL ROOT, R6 ; 2189 57 08 AC 08 A6 C7 00009 DIVL3 8(R6), SIZE, INDEX ; 04 A6 57 D1 0000F CMPL INDEX, 4(R6) ; 2191 03 1E 00013 BGEQU 1$ ; 00AC 31 00015 BRW 8$ ; 0C AE 57 02 78 00018 1$: ASHL #2, INDEX, NEW_LEN ; 2204 0C AE 04 C0 0001D ADDL2 #4, NEW_LEN ; 08 AE 9F 00021 PUSHAB NEW_MEM ; 2205 10 AE 9F 00024 PUSHAB NEW_LEN ; 00000000' FF 02 FB 00027 CALLS #2, @GET_VM_ADDR ; 6E 50 D0 0002E MOVL R0, STATUS ; 0F 6E E8 00031 BLBS STATUS, 2$ ; 2206 10 A6 D6 00034 INCL 16(R6) ; 2210 6E DD 00037 PUSHL STATUS ; FF5A CF 9F 00039 PUSHAB P.ABY ; FEEB CF 02 FB 0003D CALLS #2, CALL_DEBUG ; 04 00042 RET ; 2211 04 AE 04 A6 02 78 00043 2$: ASHL #2, 4(R6), 4(SP) ; 2214 59 04 AE D0 00049 MOVL 4(SP), COPY_LEN ; 5B 0C AE 59 C3 0004D SUBL3 COPY_LEN, NEW_LEN, ZERO_LEN ; 2215 5A 66 D0 00052 MOVL (R6), OLD_PTR ; 2217 53 08 AE D0 00055 MOVL NEW_MEM, NEW_PTR ; 2218 58 59 D0 00059 3$: MOVL COPY_LEN, LEN ; 2225 0000FFFF 8F 58 D1 0005C CMPL LEN, #65535 ; 2226 05 1B 00063 BLEQU 4$ ; 58 FFFF 8F 3C 00065 MOVZWL #65535, LEN ; 2228 63 6A 58 28 0006A 4$: MOVC3 LEN, (OLD_PTR), (NEW_PTR) ; 2229 5A 58 C0 0006E ADDL2 LEN, OLD_PTR ; 2230 59 58 C2 00071 SUBL2 LEN, COPY_LEN ; 2231 E3 12 00074 BNEQ 3$ ; 2232 58 5B D0 00076 5$: MOVL ZERO_LEN, LEN ; 2242 0000FFFF 8F 58 D1 00079 CMPL LEN, #65535 ; 2243 05 1B 00080 BLEQU 6$ ; 58 FFFF 8F 3C 00082 MOVZWL #65535, LEN ; 2245 58 00 6E 00 2C 00087 6$: MOVC5 #0, (SP), #0, LEN, (NEW_PTR) ; 2246 63 0008C ; 5B 58 C2 0008D SUBL2 LEN, ZERO_LEN ; 2247 E4 12 00090 BNEQ 5$ ; 2248 66 D5 00092 TSTL (R6) ; 2253 25 13 00094 BEQL 7$ ; 0C AE 04 AE D0 00096 MOVL 4(SP), NEW_LEN ; 2256 56 DD 0009B PUSHL R6 ; 2257 10 AE 9F 0009D PUSHAB NEW_LEN ; 00000000' FF 02 FB 000A0 CALLS #2, @FREE_VM_ADDR ; 6E 50 D0 000A7 MOVL R0, STATUS ; 0E 6E E8 000AA BLBS STATUS, 7$ ; 2258 10 A6 D6 000AD INCL 16(R6) ; 2261 6E DD 000B0 PUSHL STATUS ; FF15 CF 9F 000B2 PUSHAB P.ABZ ; FE72 CF 02 FB 000B6 CALLS #2, CALL_DEBUG ; 66 08 AE D0 000BB 7$: MOVL NEW_MEM, (R6) ; 2264 04 A6 01 A7 9E 000BF MOVAB 1(R7), 4(R6) ; 2265 50 66 D0 000C4 8$: MOVL (R6), HISTO ; 2269 6047 D6 000C7 INCL (HISTO)[INDEX] ; 2270 0C A6 6047 D1 000CA CMPL (HISTO)[INDEX], 12(R6) ; 2272 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 92 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (21) 05 1B 000CF BLEQU 9$ ; 0C A6 6047 D0 000D1 MOVL (HISTO)[INDEX], 12(R6) ; 2274 04 000D6 9$: RET ; 2276 ; Routine Size: 215 bytes, Routine Base: _FAKE_VM_CODE + 1B0F FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 93 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (22) ; 2278 1 ROUTINE fake_vm_get_vm (size : REF VECTOR [1], ; 2279 1 addr : REF VECTOR [1], ; 2280 1 zone : REF VECTOR [1]) = ; 2281 2 BEGIN ; 2282 2 ; 2283 2 BUILTIN ; 2284 2 ACTUALCOUNT, ; 2285 2 FP, ; 2286 2 INSQUE; ; 2287 2 ; 2288 2 MAP ; 2289 2 FP : REF BLOCK [, BYTE]; ; 2290 2 ; 2291 2 MACRO ; M 2292 2 $load [] = ; M 2293 2 (BEGIN ; M 2294 2 my_ptr [0] = %REMAINING; ; M 2295 2 my_ptr = my_ptr [1]; ; 2296 2 END) %; ; 2297 2 ; 2298 2 LOCAL ; 2299 2 my_root : REF VECTOR, ; 2300 2 my_type, ; 2301 2 my_frame : REF BLOCK [, BYTE], ; 2302 2 my_status, ; 2303 2 my_addr : REF VECTOR, ; 2304 2 my_size, ; 2305 2 my_asize, ; 2306 2 my_ptr : REF VECTOR; ; 2307 2 ; 2308 2 $ast_disable (); ; 2309 2 ; 2310 2 IF NOT .image_loaded ; 2311 2 THEN ; 2312 2 load_image (); ; 2313 2 ; 2314 3 IF (IF ACTUALCOUNT () LSSU 2 ; 2315 3 THEN ; 2316 3 1 ; 2317 3 ELSE ; 2318 3 IF ACTUALCOUNT () EQLU 2 ; 2319 3 THEN ; 2320 3 0 ; 2321 3 ELSE ; 2322 3 IF ACTUALCOUNT () GTRU 3 ; 2323 3 THEN ; 2324 3 1 ; 2325 3 ELSE ; 2326 3 IF zone [0] EQLA 0 ; 2327 3 THEN ; 2328 3 0 ; 2329 3 ELSE ; 2330 3 IF .zone [0] EQLU 0 ; 2331 3 THEN ; 2332 3 0 ; 2333 3 ELSE ; 2334 4 BEGIN FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 94 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (22) ; 2335 4 $ast_enable; ; 2336 4 RETURN $call_same_args (.get_vm_addr); ; 2337 3 END) ; 2338 2 THEN ; P 2339 2 $call_debug ('LIB$GET_VM incorrect argument count: !UL', ; 2340 2 ACTUALCOUNT ()); ; 2341 2 ; 2342 2 my_root = memory_histo [0]; ; 2343 2 my_type = 0; ; 2344 2 my_frame = FP [0, 0, 0, 0]; ; 2345 3 IF (.my_frame [SF$L_SAVE_PC] GEQA fake_vm_sget1_dd) ; 2346 3 AND (.my_frame [SF$L_SAVE_PC] LSSA fake_vm_sfree1_dd) ; 2347 2 THEN ; 2348 3 BEGIN ; 2349 3 my_root = string_histo [0]; ; 2350 3 my_type = .my_type + 1; ; 2351 3 my_frame = .my_frame [SF$L_SAVE_FP]; ; 2352 3 END ; 2353 2 ELSE ; 2354 3 IF (.my_frame [SF$L_SAVE_PC] GEQA fake_vm_malloc) ; 2355 3 AND (.my_frame [SF$L_SAVE_PC] LSSA fake_vm_dummy_free) ; 2356 2 THEN ; 2357 3 BEGIN ; 2358 3 my_type = 2; ; 2359 3 my_frame = .my_frame [SF$L_SAVE_FP]; ; 2360 4 IF (.my_frame [SF$L_SAVE_PC] GEQA fake_vm_malloc_opt) ; 2361 4 AND (.my_frame [SF$L_SAVE_PC] LSSA fake_vm_dummy_free_opt) ; 2362 3 THEN ; 2363 4 BEGIN ; 2364 4 my_type = .my_type + 1; ; 2365 4 my_frame = .my_frame [SF$L_SAVE_FP]; ; 2366 4 END ; 2367 3 ELSE ; 2368 4 IF (.my_frame [SF$L_SAVE_PC] GEQA fake_vm_xmemory_malloc) ; 2369 4 AND (.my_frame [SF$L_SAVE_PC] LSSA fake_vm_xmemory_dummy_free) ; 2370 3 THEN ; 2371 4 BEGIN ; 2372 4 my_type = .my_type + 1; ; 2373 4 my_type = .my_type + 1; ; 2374 4 my_frame = .my_frame [SF$L_SAVE_FP]; ; 2375 4 END ; 2376 3 ELSE ; 2377 4 IF (.my_frame [SF$L_SAVE_PC] GEQA fake_vm_lib_malloc) ; 2378 4 AND (.my_frame [SF$L_SAVE_PC] LSSA fake_vm_lib_dummy_free) ; 2379 3 THEN ; 2380 4 BEGIN ; 2381 4 my_type = .my_type + 1; ; 2382 4 my_type = .my_type + 1; ; 2383 4 my_type = .my_type + 1; ; 2384 4 my_frame = .my_frame [SF$L_SAVE_FP]; ; 2385 3 END; ; 2386 2 END; ; 2387 2 ; 2388 2 IF .fake_vm_check_active_list ; 2389 2 THEN ; 2390 3 BEGIN ; 2391 3 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 95 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (22) ; 2392 3 my_status = check_active_list (my_addr); ; 2393 3 CASE .my_status FROM err_min TO err_max OF ; 2394 3 SET ; 2395 3 ; 2396 3 [err_bad_leading] : ; P 2397 3 $call_debug ('Bad leading guards: Size = !XL, Addr = !XL', ; P 2398 3 .my_addr [mem_siz], ; 2399 3 my_addr [mem_dat]); ; 2400 3 ; 2401 3 [err_bad_trailing] : ; P 2402 3 $call_debug ('Bad trailing guards: Size = !XL, Addr = !XL', ; P 2403 3 .my_addr [mem_siz], ; 2404 3 my_addr [mem_dat]); ; 2405 3 ; 2406 3 [err_ok] : ; 2407 3 ; ; 2408 3 ; 2409 3 [INRANGE, OUTRANGE] : ; P 2410 3 $call_debug ('Bad active list: Status = !XL, Last entry = !XL', ; P 2411 3 .my_status, ; 2412 3 my_addr [0]); ; 2413 3 ; 2414 3 TES; ; 2415 3 ; 2416 2 END; ; 2417 2 ; 2418 2 my_size = .size [0]; ; 2419 2 my_asize = (mem_dat * 4) + .my_size + (4 * 4); ; 2420 2 my_addr = 0; ; 2421 2 ; 2422 2 IF .real_free_disabled ; 2423 2 AND .real_free_disabled <1, 1, 0> ; 2424 2 THEN ; 2425 3 BEGIN ; 2426 3 ; 2427 3 LOCAL ; 2428 3 retadr : VECTOR [2]; ; 2429 3 ; 2430 3 $stop_if ($EXPREG (PAGCNT = (.my_asize + 511) / 512, RETADR = retadr)); ; 2431 3 ; 2432 3 my_addr = .retadr [0]; ; 2433 3 ; 2434 3 my_status = 1; ; 2435 3 ; 2436 3 END ; 2437 2 ELSE ; 2438 2 my_status = (.get_vm_addr) (my_asize, my_addr); ; 2439 2 ; 2440 2 IF NOT .my_status ; 2441 2 THEN ; 2442 3 BEGIN ; 2443 3 ; P 2444 3 $call_debug ('!AC failed: Status = !XL, Size = !XL', ; P 2445 3 get_call_name [.my_type * call_name_size], ; P 2446 3 .my_status, ; 2447 3 .my_asize); ; 2448 3 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 96 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (22) ; 2449 3 addr [0] = 0; ; 2450 3 ; 2451 3 $ast_enable; ; 2452 3 ; 2453 3 RETURN .my_status; ; 2454 3 ; 2455 2 END; ; 2456 2 ; 2457 2 my_ptr = my_addr [mem_alc]; ; 2458 2 ; 2459 2 $load (.my_asize); ; 2460 2 $load (.my_size); ; 2461 2 ; 2462 2 $load (.my_type); ; 2463 2 ; 2464 3 INCR i FROM 0 TO (mem_pc9 - mem_pc1) ; 2465 2 DO ; 2466 3 BEGIN ; 2467 3 LOCAL ; 2468 3 prev_pc; ; 2469 3 prev_pc = 0; ; 2470 3 IF my_frame [0, 0, 0, 0] NEQA 0 ; 2471 3 THEN ; 2472 4 BEGIN ; 2473 4 prev_pc = .my_frame [SF$L_SAVE_PC]; ; 2474 4 my_frame = .my_frame [SF$L_SAVE_FP]; ; 2475 3 END; ; 2476 3 $load (.prev_pc); ; 2477 2 END; ; 2478 2 ; 2479 2 $load (-1); ; 2480 2 $load (-1); ; 2481 2 ; 2482 2 add_to_histogram (my_root [0], .my_size); ; 2483 2 ; 2484 2 addr [0] = my_ptr [0]; ; 2485 2 ; 2486 2 WHILE 1 ; 2487 2 DO ; 2488 3 BEGIN ; 2489 3 ; 2490 3 LOCAL ; 2491 3 fill_cnt; ; 2492 3 ; 2493 3 fill_cnt = .my_size; ; 2494 3 IF .fill_cnt GTRU 65535 ; 2495 3 THEN ; 2496 3 fill_cnt = 65535; ; 2497 3 ; 2498 3 my_ptr = CH$FILL (%B'10101010', .fill_cnt, my_ptr [0]); ; 2499 3 ; 2500 3 my_size = .my_size - .fill_cnt; ; 2501 3 IF .my_size EQLU 0 ; 2502 3 THEN ; 2503 3 EXITLOOP; ; 2504 3 ; 2505 2 END; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 97 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (22) ; 2506 2 ; 2507 2 $load (-1); ; 2508 2 $load (-1); ; 2509 2 $load (-1); ; 2510 2 $load (-1); ; 2511 2 ; 2512 2 INSQUE (my_addr [0], active_list); ; 2513 2 ; 2514 2 IF .fake_vm_log ; 2515 2 THEN ; P 2516 2 $do_log ( ; P 2517 2 '!AC: Size: !XL, Addr: !XL, From PCs: !XL !XL !XL !XL !XL !XL !XL !XL !XL', ; P 2518 2 get_call_name [.my_type * call_name_size], ; P 2519 2 .my_addr [mem_siz], ; P 2520 2 my_addr [mem_dat], ; P 2521 2 .my_addr [mem_pc1], ; P 2522 2 .my_addr [mem_pc2], ; P 2523 2 .my_addr [mem_pc3], ; P 2524 2 .my_addr [mem_pc4], ; P 2525 2 .my_addr [mem_pc5], ; P 2526 2 .my_addr [mem_pc6], ; P 2527 2 .my_addr [mem_pc7], ; P 2528 2 .my_addr [mem_pc8], ; 2529 2 .my_addr [mem_pc9]); ; 2530 2 ; 2531 2 $ast_enable; ; 2532 2 ; 2533 2 RETURN .my_status; ; 2534 2 ; 2535 1 END; 32 01BE6 P.ACA: .BYTE 50 ; 20 2C 4D 56 5F 45 4B 41 46 25 01BE7 .ASCII \%FAKE_VM, \ ; 6F 63 6E 69 20 4D 56 5F 54 45 47 24 42 49 4C 01BF1 .ASCII \LIB$GET_VM incorrect argument count: !UL\ ; 20 74 6E 65 6D 75 67 72 61 20 74 63 65 72 72 01C00 ; 4C 55 21 20 3A 74 6E 75 6F 63 01C0F ; 34 01C19 P.ACB: .BYTE 52 ; 20 2C 4D 56 5F 45 4B 41 46 25 01C1A .ASCII \%FAKE_VM, \ ; 61 75 67 20 67 6E 69 64 61 65 6C 20 64 61 42 01C24 .ASCII \Bad leading guards: Size = !XL, Addr = !\ ; 4C 58 21 20 3D 20 65 7A 69 53 20 3A 73 64 72 01C33 ; 21 20 3D 20 72 64 64 41 20 2C 01C42 ; 4C 58 01C4C .ASCII \XL\ ; 35 01C4E P.ACC: .BYTE 53 ; 20 2C 4D 56 5F 45 4B 41 46 25 01C4F .ASCII \%FAKE_VM, \ ; 75 67 20 67 6E 69 6C 69 61 72 74 20 64 61 42 01C59 .ASCII \Bad trailing guards: Size = !XL, Addr = \ ; 58 21 20 3D 20 65 7A 69 53 20 3A 73 64 72 61 01C68 ; 20 3D 20 72 64 64 41 20 2C 4C 01C77 ; 4C 58 21 01C81 .ASCII \!XL\ ; 39 01C84 P.ACD: .BYTE 57 ; 20 2C 4D 56 5F 45 4B 41 46 25 01C85 .ASCII \%FAKE_VM, \ ; 74 73 69 6C 20 65 76 69 74 63 61 20 64 61 42 01C8F .ASCII \Bad active list: Status = !XL, Last entr\ ; 2C 4C 58 21 20 3D 20 73 75 74 61 74 53 20 3A 01C9E ; 72 74 6E 65 20 74 73 61 4C 20 01CAD ; 4C 58 21 20 3D 20 79 01CB7 .ASCII \y = !XL\ ; 2E 01CBE P.ACE: .BYTE 46 ; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 98 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (22) 20 2C 4D 56 5F 45 4B 41 46 25 01CBF .ASCII \%FAKE_VM, \ ; 61 74 53 20 3A 64 65 6C 69 61 66 20 43 41 21 01CC9 .ASCII \!AC failed: Status = !XL, Size = !XL\ ; 65 7A 69 53 20 2C 4C 58 21 20 3D 20 73 75 74 01CD8 ; 4C 58 21 20 3D 20 01CE7 ; 52 01CED P.ACF: .BYTE 82 ; 20 2C 4D 56 5F 45 4B 41 46 25 01CEE .ASCII \%FAKE_VM, \ ; 2C 4C 58 21 20 3A 65 7A 69 53 20 3A 43 41 21 01CF8 .ASCII \!AC: Size: !XL, Addr: !XL, From PCs: !XL\ ; 6F 72 46 20 2C 4C 58 21 20 3A 72 64 64 41 20 01D07 ; 4C 58 21 20 3A 73 43 50 20 6D 01D16 ; 58 21 20 4C 58 21 20 4C 58 21 20 4C 58 21 20 01D20 .ASCII \ !XL !XL !XL !XL !XL !XL !XL !XL\ ; 21 20 4C 58 21 20 4C 58 21 20 4C 58 21 20 4C 01D2F ; 4C 58 01D3E ; .EXTRN SYS$EXPREG 0FFC 00000 FAKE_VM_GET_VM: .WORD Save R2,R3,R4,R5,R6,R7,R8,R9,R10,R11 ; 2278 5B FCF6 CF 9E 00002 MOVAB CALL_DEBUG, R11 ; 5A 00000000' EF 9E 00007 MOVAB ERRORS, R10 ; 5E 18 C2 0000E SUBL2 #24, SP ; 10 AE 7C 00011 CLRQ SIG_TO_RET ; 2308 6D 0266 CF DE 00014 MOVAL 30$, (FP) ; 7E D4 00019 CLRL -(SP) ; 00000000G 00 01 FB 0001B CALLS #1, SYS$SETAST ; 09 50 D1 00022 CMPL R0, #9 ; 04 12 00025 BNEQ 1$ ; 14 AE 01 D0 00027 MOVL #1, AST_STATUS ; 05 FF48 CA E8 0002B 1$: BLBS IMAGE_LOADED, 2$ ; 2310 E9C0 CB 00 FB 00030 CALLS #0, LOAD_IMAGE ; 2312 02 6C 91 00035 2$: CMPB (AP), #2 ; 2314 24 1F 00038 BLSSU 4$ ; 2E 13 0003A BEQL 5$ ; 2318 03 6C 91 0003C CMPB (AP), #3 ; 2322 1D 1A 0003F BGTRU 4$ ; 0C AC D5 00041 TSTL ZONE ; 2326 24 13 00044 BEQL 5$ ; 0C BC D5 00046 TSTL @ZONE ; 2330 1F 13 00049 BEQL 5$ ; 09 14 AE E9 0004B BLBC AST_STATUS, 3$ ; 2334 01 DD 0004F PUSHL #1 ; 00000000G 00 01 FB 00051 CALLS #1, SYS$SETAST ; 0134 DA 6C FA 00058 3$: CALLG (AP), @GET_VM_ADDR ; 2336 04 0005D RET ; 6A D6 0005E 4$: INCL ERRORS ; 2340 7E 6C 9A 00060 MOVZBL (AP), -(SP) ; FE3F CF 9F 00063 PUSHAB P.ACA ; 6B 02 FB 00067 CALLS #2, CALL_DEBUG ; 54 04 AA 9E 0006A 5$: MOVAB MEMORY_HISTO, MY_ROOT ; 2342 56 D4 0006E CLRL MY_TYPE ; 2343 52 5D D0 00070 MOVL FP, MY_FRAME ; 2344 50 00000000V EF 9E 00073 MOVAB FAKE_VM_SGET1_DD, R0 ; 2345 50 10 A2 D1 0007A CMPL 16(MY_FRAME), R0 ; 13 1F 0007E BLSSU 6$ ; 50 00000000V EF 9E 00080 MOVAB FAKE_VM_SFREE1_DD, R0 ; 2346 50 10 A2 D1 00087 CMPL 16(MY_FRAME), R0 ; 06 1E 0008B BGEQU 6$ ; 54 18 AA 9E 0008D MOVAB STRING_HISTO, MY_ROOT ; 2349 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 99 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (22) 71 11 00091 BRB 10$ ; 2350 50 00000000V EF 9E 00093 6$: MOVAB FAKE_VM_MALLOC, R0 ; 2354 50 10 A2 D1 0009A CMPL 16(MY_FRAME), R0 ; 6A 1F 0009E BLSSU 11$ ; 50 00000000V EF 9E 000A0 MOVAB FAKE_VM_DUMMY_FREE, R0 ; 2355 50 10 A2 D1 000A7 CMPL 16(MY_FRAME), R0 ; 5D 1E 000AB BGEQU 11$ ; 56 02 D0 000AD MOVL #2, MY_TYPE ; 2358 52 0C A2 D0 000B0 MOVL 12(MY_FRAME), MY_FRAME ; 2359 50 10 A2 D0 000B4 MOVL 16(MY_FRAME), R0 ; 2360 51 00000000V EF 9E 000B8 MOVAB FAKE_VM_MALLOC_OPT, R1 ; 51 50 D1 000BF CMPL R0, R1 ; 0C 1F 000C2 BLSSU 7$ ; 51 00000000V EF 9E 000C4 MOVAB FAKE_VM_DUMMY_FREE_OPT, R1 ; 2361 51 50 D1 000CB CMPL R0, R1 ; 34 1F 000CE BLSSU 10$ ; 51 00000000V EF 9E 000D0 7$: MOVAB FAKE_VM_XMEMORY_MALLOC, R1 ; 2368 51 50 D1 000D7 CMPL R0, R1 ; 0C 1F 000DA BLSSU 8$ ; 51 00000000V EF 9E 000DC MOVAB FAKE_VM_XMEMORY_DUMMY_FREE, R1 ; 2369 51 50 D1 000E3 CMPL R0, R1 ; 1A 1F 000E6 BLSSU 9$ ; 51 00000000V EF 9E 000E8 8$: MOVAB FAKE_VM_LIB_MALLOC, R1 ; 2377 51 50 D1 000EF CMPL R0, R1 ; 16 1F 000F2 BLSSU 11$ ; 51 00000000V EF 9E 000F4 MOVAB FAKE_VM_LIB_DUMMY_FREE, R1 ; 2378 51 50 D1 000FB CMPL R0, R1 ; 0A 1E 000FE BGEQU 11$ ; 56 D6 00100 INCL MY_TYPE ; 2381 56 D6 00102 9$: INCL MY_TYPE ; 2382 56 D6 00104 10$: INCL MY_TYPE ; 2383 52 0C A2 D0 00106 MOVL 12(MY_FRAME), MY_FRAME ; 2384 49 FE30 CA E9 0010A 11$: BLBC FAKE_VM_CHECK_ACTIVE_LIST, 17$ ; 2388 5E DD 0010F PUSHL SP ; 2392 F0E1 CB 01 FB 00111 CALLS #1, CHECK_ACTIVE_LIST ; 59 50 D0 00116 MOVL R0, MY_STATUS ; 05 00 59 CF 00119 CASEL MY_STATUS, #0, #5 ; 2393 0018 000C 000C 000C 0011D 12$: .WORD 13$-12$,- ; 003B 0029 00125 13$-12$,- ; 13$-12$,- ; 14$-12$,- ; 15$-12$,- ; 17$-12$ ; 6A D6 00129 13$: INCL ERRORS ; 2412 6E DD 0012B PUSHL MY_ADDR ; 59 DD 0012D PUSHL MY_STATUS ; FE11 CF 9F 0012F PUSHAB P.ACD ; 20 11 00133 BRB 16$ ; 6A D6 00135 14$: INCL ERRORS ; 2399 50 6E D0 00137 MOVL MY_ADDR, R0 ; 40 A0 9F 0013A PUSHAB 64(R0) ; 0C A0 DD 0013D PUSHL 12(R0) ; FD95 CF 9F 00140 PUSHAB P.ACB ; 0F 11 00144 BRB 16$ ; 6A D6 00146 15$: INCL ERRORS ; 2404 50 6E D0 00148 MOVL MY_ADDR, R0 ; 40 A0 9F 0014B PUSHAB 64(R0) ; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 100 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (22) 0C A0 DD 0014E PUSHL 12(R0) ; FDB9 CF 9F 00151 PUSHAB P.ACC ; 6B 03 FB 00155 16$: CALLS #3, CALL_DEBUG ; 58 04 BC D0 00158 17$: MOVL @SIZE, MY_SIZE ; 2418 04 AE 50 A8 9E 0015C MOVAB 80(R8), MY_ASIZE ; 2419 6E D4 00161 CLRL MY_ADDR ; 2420 39 FF60 CA E9 00163 BLBC REAL_FREE_DISABLED, 19$ ; 2422 33 FF60 CA 01 E1 00168 BBC #1, REAL_FREE_DISABLED, 19$ ; 2423 7E 7C 0016E CLRQ -(SP) ; 2430 10 AE 9F 00170 PUSHAB RETADR ; 50 10 AE 000001FF 8F C1 00173 ADDL3 #511, MY_ASIZE, R0 ; 7E 50 00000200 8F C7 0017C DIVL3 #512, R0, -(SP) ; 00000000G 00 04 FB 00184 CALLS #4, SYS$EXPREG ; 0A 50 E8 0018B BLBS STATUS, 18$ ; 50 DD 0018E PUSHL STATUS ; 00000000G 00 01 FB 00190 CALLS #1, LIB$STOP ; 04 00197 RET ; 6E 08 AE D0 00198 18$: MOVL RETADR, MY_ADDR ; 2432 59 01 D0 0019C MOVL #1, MY_STATUS ; 2434 0D 11 0019F BRB 20$ ; 5E DD 001A1 19$: PUSHL SP ; 2438 08 AE 9F 001A3 PUSHAB MY_ASIZE ; 0134 DA 02 FB 001A6 CALLS #2, @GET_VM_ADDR ; 59 50 D0 001AB MOVL R0, MY_STATUS ; 24 59 E8 001AE 20$: BLBS MY_STATUS, 22$ ; 2440 6A D6 001B1 INCL ERRORS ; 2447 04 AE DD 001B3 PUSHL MY_ASIZE ; 59 DD 001B6 PUSHL MY_STATUS ; 50 56 0E C5 001B8 MULL3 #14, MY_TYPE, R0 ; E0FF CF40 9F 001BC PUSHAB GET_CALL_NAME[R0] ; FDB9 CF 9F 001C1 PUSHAB P.ACE ; 6B 04 FB 001C5 CALLS #4, CALL_DEBUG ; 08 BC D4 001C8 CLRL @ADDR ; 2449 03 14 AE E8 001CB BLBS AST_STATUS, 21$ ; 00A8 31 001CF BRW 29$ ; 009C 31 001D2 21$: BRW 28$ ; 53 6E 08 C1 001D5 22$: ADDL3 #8, MY_ADDR, MY_PTR ; 2457 83 04 AE D0 001D9 MOVL MY_ASIZE, (MY_PTR)+ ; 2459 83 58 D0 001DD MOVL MY_SIZE, (MY_PTR)+ ; 2460 83 56 D0 001E0 MOVL MY_TYPE, (MY_PTR)+ ; 2462 51 D4 001E3 CLRL I ; 2464 50 D4 001E5 23$: CLRL PREV_PC ; 2469 52 D5 001E7 TSTL MY_FRAME ; 2470 08 13 001E9 BEQL 24$ ; 50 10 A2 D0 001EB MOVL 16(MY_FRAME), PREV_PC ; 2473 52 0C A2 D0 001EF MOVL 12(MY_FRAME), MY_FRAME ; 2474 83 50 D0 001F3 24$: MOVL PREV_PC, (MY_PTR)+ ; 2476 EB 51 08 F3 001F6 AOBLEQ #8, I, 23$ ; 83 01 CE 001FA MNEGL #1, (MY_PTR)+ ; 2479 83 01 CE 001FD MNEGL #1, (MY_PTR)+ ; 2480 0110 8F BB 00200 PUSHR #^M ; 2482 00D3 CB 02 FB 00204 CALLS #2, ADD_TO_HISTOGRAM ; 08 BC 53 D0 00209 MOVL MY_PTR, @ADDR ; 2484 57 58 D0 0020D 25$: MOVL MY_SIZE, FILL_CNT ; 2493 0000FFFF 8F 57 D1 00210 CMPL FILL_CNT, #65535 ; 2494 05 1B 00217 BLEQU 26$ ; 57 FFFF 8F 3C 00219 MOVZWL #65535, FILL_CNT ; 2496 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 101 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (22) 57 AA 8F 6E 00 2C 0021E 26$: MOVC5 #0, (SP), #170, FILL_CNT, (MY_PTR) ; 2498 63 00224 ; 58 57 C2 00225 SUBL2 FILL_CNT, MY_SIZE ; 2500 E3 12 00228 BNEQ 25$ ; 2501 83 01 CE 0022A MNEGL #1, (MY_PTR)+ ; 2507 83 01 CE 0022D MNEGL #1, (MY_PTR)+ ; 2508 83 01 CE 00230 MNEGL #1, (MY_PTR)+ ; 2509 83 01 CE 00233 MNEGL #1, (MY_PTR)+ ; 2510 F8 AA 00 BE 0E 00236 INSQUE @MY_ADDR, ACTIVE_LIST ; 2512 2D FE00 CA E9 0023B BLBC FAKE_VM_LOG, 27$ ; 2514 50 6E D0 00240 MOVL MY_ADDR, R0 ; 2529 7E 30 A0 7D 00243 MOVQ 48(R0), -(SP) ; 7E 28 A0 7D 00247 MOVQ 40(R0), -(SP) ; 7E 20 A0 7D 0024B MOVQ 32(R0), -(SP) ; 7E 18 A0 7D 0024F MOVQ 24(R0), -(SP) ; 14 A0 DD 00253 PUSHL 20(R0) ; 40 A0 9F 00256 PUSHAB 64(R0) ; 0C A0 DD 00259 PUSHL 12(R0) ; 56 0E C4 0025C MULL2 #14, R6 ; E05C CF46 9F 0025F PUSHAB GET_CALL_NAME[R6] ; FD45 CF 9F 00264 PUSHAB P.ACF ; FF52 CB 0D FB 00268 CALLS #13, DO_LOG ; 09 14 AE E9 0026D 27$: BLBC AST_STATUS, 29$ ; 01 DD 00271 28$: PUSHL #1 ; 00000000G 00 01 FB 00273 CALLS #1, SYS$SETAST ; 50 59 D0 0027A 29$: MOVL MY_STATUS, R0 ; 2533 04 0027D RET ; 0000 0027E 30$: .WORD Save nothing ; 50 08 AC D0 00280 MOVL 8(AP), R0 ; 50 04 A0 D0 00284 MOVL 4(R0), R0 ; F8 A0 9F 00288 PUSHAB SIG_TO_RET ; FC A0 9F 0028B PUSHAB AST_STATUS ; 02 DD 0028E PUSHL #2 ; 5E DD 00290 PUSHL SP ; 7E 04 AC 7D 00292 MOVQ 4(AP), -(SP) ; E105 CF 03 FB 00296 CALLS #3, AST_REENABLE ; 04 0029B RET ; ; Routine Size: 668 bytes, Routine Base: _FAKE_VM_CODE + 1D40 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 102 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (23) ; 2537 1 ROUTINE fake_vm_free_vm (size : REF VECTOR [1], ; 2538 1 addr : REF VECTOR [1], ; 2539 1 zone : REF VECTOR [1]) = ; 2540 2 BEGIN ; 2541 2 ; 2542 2 LABEL ; 2543 2 continue; ; 2544 2 ; 2545 2 BUILTIN ; 2546 2 ACTUALCOUNT, ; 2547 2 FP, ; 2548 2 REMQUE; ; 2549 2 ; 2550 2 MAP ; 2551 2 FP : REF BLOCK [, BYTE]; ; 2552 2 ; 2553 2 LOCAL ; 2554 2 my_type, ; 2555 2 my_frame : REF BLOCK [, BYTE], ; 2556 2 my_status, ; 2557 2 my_addr : REF VECTOR, ; 2558 2 my_ptr : REF VECTOR, ; 2559 2 my_size; ; 2560 2 ; 2561 2 $ast_disable (); ; 2562 2 ; 2563 2 IF NOT .image_loaded ; 2564 2 THEN ; 2565 2 load_image (); ; 2566 2 ; 2567 3 IF (IF ACTUALCOUNT () LSSU 2 ; 2568 3 THEN ; 2569 3 1 ; 2570 3 ELSE ; 2571 3 IF ACTUALCOUNT () EQLU 2 ; 2572 3 THEN ; 2573 3 0 ; 2574 3 ELSE ; 2575 3 IF ACTUALCOUNT () GTRU 3 ; 2576 3 THEN ; 2577 3 1 ; 2578 3 ELSE ; 2579 3 IF zone [0] EQLA 0 ; 2580 3 THEN ; 2581 3 0 ; 2582 3 ELSE ; 2583 3 IF .zone [0] EQLU 0 ; 2584 3 THEN ; 2585 3 0 ; 2586 3 ELSE ; 2587 4 BEGIN ; 2588 4 $ast_enable; ; 2589 4 RETURN $call_same_args (.free_vm_addr); ; 2590 3 END) ; 2591 2 THEN ; P 2592 2 $call_debug ('LIB$FREE_VM incorrect argument count: !UL', ; 2593 2 ACTUALCOUNT ()); FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 103 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (23) ; 2594 2 ; 2595 2 my_type = 0; ; 2596 2 my_frame = FP [0, 0, 0, 0]; ; 2597 3 IF (.my_frame [SF$L_SAVE_PC] GEQA fake_vm_sfree1_dd) ; 2598 3 AND (.my_frame [SF$L_SAVE_PC] LSSA fake_vm_sfreen_dd) ; 2599 2 THEN ; 2600 3 BEGIN ; 2601 3 my_type = .my_type + 1; ; 2602 3 my_frame = .my_frame [SF$L_SAVE_FP]; ; 2603 3 END ; 2604 2 ELSE ; 2605 3 IF (.my_frame [SF$L_SAVE_PC] GEQA fake_vm_malloc) ; 2606 3 AND (.my_frame [SF$L_SAVE_PC] LSSA fake_vm_dummy_free) ; 2607 2 THEN ; 2608 3 BEGIN ; 2609 3 my_type = 2; ; 2610 3 my_frame = .my_frame [SF$L_SAVE_FP]; ; 2611 4 IF (.my_frame [SF$L_SAVE_PC] GEQA fake_vm_malloc_opt) ; 2612 4 AND (.my_frame [SF$L_SAVE_PC] LSSA fake_vm_dummy_free_opt) ; 2613 3 THEN ; 2614 4 BEGIN ; 2615 4 my_type = .my_type + 1; ; 2616 4 my_frame = .my_frame [SF$L_SAVE_FP]; ; 2617 4 END ; 2618 3 ELSE ; 2619 4 IF (.my_frame [SF$L_SAVE_PC] GEQA fake_vm_xmemory_malloc) ; 2620 4 AND (.my_frame [SF$L_SAVE_PC] LSSA fake_vm_xmemory_dummy_free) ; 2621 3 THEN ; 2622 4 BEGIN ; 2623 4 my_type = .my_type + 1; ; 2624 4 my_type = .my_type + 1; ; 2625 4 my_frame = .my_frame [SF$L_SAVE_FP]; ; 2626 4 END ; 2627 3 ELSE ; 2628 4 IF (.my_frame [SF$L_SAVE_PC] GEQA fake_vm_lib_malloc) ; 2629 4 AND (.my_frame [SF$L_SAVE_PC] LSSA fake_vm_lib_dummy_free) ; 2630 3 THEN ; 2631 4 BEGIN ; 2632 4 my_type = .my_type + 1; ; 2633 4 my_type = .my_type + 1; ; 2634 4 my_type = .my_type + 1; ; 2635 4 my_frame = .my_frame [SF$L_SAVE_FP]; ; 2636 3 END; ; 2637 2 END; ; 2638 2 ; 2639 2 IF .fake_vm_check_active_list ; 2640 2 THEN ; 2641 3 BEGIN ; 2642 3 ; 2643 3 my_status = check_active_list (my_addr); ; 2644 3 CASE .my_status FROM err_min TO err_max OF ; 2645 3 SET ; 2646 3 ; 2647 3 [err_bad_leading] : ; P 2648 3 $call_debug ('Bad leading guards: Size = !XL, Addr = !XL', ; P 2649 3 .my_addr [mem_siz], ; 2650 3 my_addr [mem_dat]); FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 104 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (23) ; 2651 3 ; 2652 3 [err_bad_trailing] : ; P 2653 3 $call_debug ('Bad trailing guards: Size = !XL, Addr = !XL', ; P 2654 3 .my_addr [mem_siz], ; 2655 3 my_addr [mem_dat]); ; 2656 3 ; 2657 3 [err_ok] : ; 2658 3 ; ; 2659 3 ; 2660 3 [INRANGE, OUTRANGE] : ; P 2661 3 $call_debug ('Bad active list: Status = !XL, Last entry = !XL', ; P 2662 3 .my_status, ; 2663 3 my_addr [0]); ; 2664 3 ; 2665 3 TES; ; 2666 3 ; 2667 2 END; ; 2668 2 ; 2669 3 continue : BEGIN ; 2670 3 ; 2671 3 my_status = find_in_active_list (.size [0], .addr [0], my_addr); ; 2672 3 CASE .my_status FROM err_min TO err_max OF ; 2673 3 SET ; 2674 3 ; 2675 3 [err_not_in_list] : ; 2676 4 BEGIN ; P 2677 4 $call_debug ('!AC not in active list: Size = !XL, Addr = !XL', ; P 2678 4 free_call_name [.my_type * call_name_size], ; P 2679 4 .size [0], ; 2680 4 .addr [0]); ; 2681 4 my_addr = 0; ; 2682 3 END; ; 2683 3 ; 2684 3 [err_not_same_size] : ; P 2685 3 $call_debug ('!AC not same size: Old = !XL, New = !XL, Addr = !XL', ; P 2686 3 free_call_name [.my_type * call_name_size], ; P 2687 3 .my_addr [mem_siz], ; P 2688 3 .size [0], ; 2689 3 .addr [0]); ; 2690 3 ; 2691 3 [err_not_same_addr] : ; P 2692 3 $call_debug ('!AC not same addr: Old = !XL, New = !XL', ; P 2693 3 free_call_name [.my_type * call_name_size], ; P 2694 3 my_addr [mem_dat], ; 2695 3 .addr [0]); ; 2696 3 ; 2697 3 [err_bad_leading] : ; P 2698 3 $call_debug ('!AC bad leading guards: Size = !XL, Addr = !XL', ; P 2699 3 free_call_name [.my_type * call_name_size], ; P 2700 3 .size [0], ; 2701 3 .addr [0]); ; 2702 3 ; 2703 3 [err_bad_trailing] : ; P 2704 3 $call_debug ('!AC bad trailing guards: Size = !XL, Addr = !XL', ; P 2705 3 free_call_name [.my_type * call_name_size], ; P 2706 3 .size [0], ; 2707 3 .addr [0]); FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 105 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (23) ; 2708 3 ; 2709 3 [err_ok] : ; 2710 4 BEGIN ; 2711 4 IF .my_type <0, 16, 0> NEQU .(my_addr [mem_typ]) <0, 16, 0> ; 2712 4 THEN ; 2713 5 BEGIN ; 2714 5 (my_addr [mem_typ]) <16, 16, 0> = ; 2715 5 .(my_addr [mem_typ]) <16, 16, 0> + 1; ; P 2716 5 $call_debug ( ; P 2717 5 '!AC freeing !AC allocation: Size = !XL, Addr = !XL', ; P 2718 5 free_call_name [.my_type * call_name_size], ; P 2719 5 get_call_name [(.my_addr [mem_typ] AND (8 - 1)) ; P 2720 5 * call_name_size], ; P 2721 5 .size [0], ; 2722 5 .addr [0]); ; 2723 4 END; ; 2724 4 IF .(my_addr [mem_typ]) <16, 16, 0> EQLU 0 ; 2725 4 THEN ; 2726 4 LEAVE continue; ; 2727 4 my_type = 0; ; 2728 3 END; ; 2729 3 ; 2730 3 [INRANGE, OUTRANGE] : ; 2731 4 BEGIN ; P 2732 4 $call_debug ('!AC found bad active list: Status = !XL', ; P 2733 4 free_call_name [.my_type * call_name_size], ; 2734 4 .my_status); ; 2735 4 my_addr = 0; ; 2736 3 END; ; 2737 3 ; 2738 3 TES; ; 2739 3 ; 2740 3 IF my_addr [0] NEQA 0 ; 2741 3 THEN ; 2742 3 (my_addr [mem_typ]) <0, 16, 0> = 7; ; 2743 3 ; 2744 3 $ast_enable; ; 2745 3 ; 2746 3 IF .my_type NEQU 0 ; 2747 3 THEN ; 2748 3 RETURN lib$_intlogerr; ; 2749 3 ; 2750 3 RETURN 1; ; 2751 3 ; 2752 2 END; ! of "continue" ; 2753 2 ; 2754 2 REMQUE (my_addr [0], my_ptr); ; 2755 2 ; 2756 2 IF .fake_vm_log ; 2757 2 THEN ; 2758 3 BEGIN ; 2759 4 INCR i FROM 0 TO (mem_pc9 - mem_pc1) ; 2760 3 DO ; 2761 4 BEGIN ; 2762 4 LOCAL ; 2763 4 prev_pc; ; 2764 4 prev_pc = 0; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 106 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (23) ; 2765 4 IF my_frame [0, 0, 0, 0] NEQA 0 ; 2766 4 THEN ; 2767 5 BEGIN ; 2768 5 prev_pc = .my_frame [SF$L_SAVE_PC]; ; 2769 5 my_frame = .my_frame [SF$L_SAVE_FP]; ; 2770 4 END; ; 2771 4 my_ptr [mem_pc1 + .i] = .prev_pc; ; 2772 3 END; ; P 2773 3 $do_log ( ; P 2774 3 '!AC: Size: !XL, Addr: !XL, From PCs: !XL !XL !XL !XL !XL !XL !XL !XL !XL', ; P 2775 3 free_call_name [.my_type * call_name_size], ; P 2776 3 .size [0], ; P 2777 3 .addr [0], ; P 2778 3 .my_ptr [mem_pc1], ; P 2779 3 .my_ptr [mem_pc2], ; P 2780 3 .my_ptr [mem_pc3], ; P 2781 3 .my_ptr [mem_pc4], ; P 2782 3 .my_ptr [mem_pc5], ; P 2783 3 .my_ptr [mem_pc6], ; P 2784 3 .my_ptr [mem_pc7], ; P 2785 3 .my_ptr [mem_pc8], ; 2786 3 .my_ptr [mem_pc9]); ; 2787 2 END; ; 2788 2 ; 2789 2 my_size = .my_ptr [mem_alc]; ; 2790 2 ; 2791 2 IF NOT .real_free_disabled <2, 1, 0> ; 2792 2 THEN ; 2793 3 BEGIN ; 2794 3 ; 2795 3 LOCAL ; 2796 3 fill_len, ; 2797 3 fill_cnt; ; 2798 3 ; 2799 3 fill_len = .my_size; ; 2800 3 ; 2801 3 WHILE 1 ; 2802 3 DO ; 2803 4 BEGIN ; 2804 4 ; 2805 4 fill_cnt = .fill_len; ; 2806 4 IF .fill_cnt GTRU 65535 ; 2807 4 THEN ; 2808 4 fill_cnt = 65535; ; 2809 4 ; 2810 4 my_ptr = CH$FILL (%B'01010101', .fill_cnt, my_ptr [0]); ; 2811 4 ; 2812 4 fill_len = .fill_len - .fill_cnt; ; 2813 4 IF .fill_len EQLU 0 ; 2814 4 THEN ; 2815 4 EXITLOOP; ; 2816 4 ; 2817 3 END; ; 2818 3 ; 2819 2 END; ; 2820 2 ; 2821 2 IF .real_free_disabled FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 107 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (23) ; 2822 2 THEN ; 2823 3 BEGIN ; 2824 3 ; 2825 3 IF .real_free_disabled <1, 1, 0> ; 2826 3 THEN ; 2827 4 BEGIN ; 2828 4 ; 2829 4 LOCAL ; 2830 4 inadr : VECTOR [2]; ; 2831 4 ; 2832 4 inadr [0] = my_addr [0]; ; 2833 4 inadr [1] = .inadr [0] + .my_size - 1; ; 2834 4 ; 2835 4 $stop_if ($DELTVA (INADR = inadr)); ; 2836 4 ; 2837 3 END; ; 2838 3 ; 2839 3 $ast_enable; ; 2840 3 ; 2841 3 RETURN 1; ; 2842 3 ; 2843 2 END; ; 2844 2 ; 2845 2 my_status = (.free_vm_addr) (my_size, my_addr); ; 2846 2 ; 2847 2 IF NOT .my_status ; 2848 2 THEN ; P 2849 2 $call_debug ('!AC failed: Status = !XL, Size = !XL, Addr = !XL', ; P 2850 2 free_call_name [.my_type * call_name_size], ; P 2851 2 .my_status, ; P 2852 2 .my_size, ; 2853 2 my_addr [0]); ; 2854 2 ; 2855 2 $ast_enable; ; 2856 2 ; 2857 2 RETURN .my_status; ; 2858 2 ; 2859 1 END; 33 01FDC P.ACG: .BYTE 51 ; 20 2C 4D 56 5F 45 4B 41 46 25 01FDD .ASCII \%FAKE_VM, \ ; 63 6E 69 20 4D 56 5F 45 45 52 46 24 42 49 4C 01FE7 .ASCII \LIB$FREE_VM incorrect argument count: !U\ ; 74 6E 65 6D 75 67 72 61 20 74 63 65 72 72 6F 01FF6 ; 55 21 20 3A 74 6E 75 6F 63 20 02005 ; 4C 0200F .ASCII \L\ ; 34 02010 P.ACH: .BYTE 52 ; 20 2C 4D 56 5F 45 4B 41 46 25 02011 .ASCII \%FAKE_VM, \ ; 61 75 67 20 67 6E 69 64 61 65 6C 20 64 61 42 0201B .ASCII \Bad leading guards: Size = !XL, Addr = !\ ; 4C 58 21 20 3D 20 65 7A 69 53 20 3A 73 64 72 0202A ; 21 20 3D 20 72 64 64 41 20 2C 02039 ; 4C 58 02043 .ASCII \XL\ ; 35 02045 P.ACI: .BYTE 53 ; 20 2C 4D 56 5F 45 4B 41 46 25 02046 .ASCII \%FAKE_VM, \ ; 75 67 20 67 6E 69 6C 69 61 72 74 20 64 61 42 02050 .ASCII \Bad trailing guards: Size = !XL, Addr = \ ; 58 21 20 3D 20 65 7A 69 53 20 3A 73 64 72 61 0205F ; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 108 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (23) 20 3D 20 72 64 64 41 20 2C 4C 0206E ; 4C 58 21 02078 .ASCII \!XL\ ; 39 0207B P.ACJ: .BYTE 57 ; 20 2C 4D 56 5F 45 4B 41 46 25 0207C .ASCII \%FAKE_VM, \ ; 74 73 69 6C 20 65 76 69 74 63 61 20 64 61 42 02086 .ASCII \Bad active list: Status = !XL, Last entr\ ; 2C 4C 58 21 20 3D 20 73 75 74 61 74 53 20 3A 02095 ; 72 74 6E 65 20 74 73 61 4C 20 020A4 ; 4C 58 21 20 3D 20 79 020AE .ASCII \y = !XL\ ; 38 020B5 P.ACK: .BYTE 56 ; 20 2C 4D 56 5F 45 4B 41 46 25 020B6 .ASCII \%FAKE_VM, \ ; 69 74 63 61 20 6E 69 20 74 6F 6E 20 43 41 21 020C0 .ASCII \!AC not in active list: Size = !XL, Addr\ ; 3D 20 65 7A 69 53 20 3A 74 73 69 6C 20 65 76 020CF ; 72 64 64 41 20 2C 4C 58 21 20 020DE ; 4C 58 21 20 3D 20 020E8 .ASCII \ = !XL\ ; 3D 020EE P.ACL: .BYTE 61 ; 20 2C 4D 56 5F 45 4B 41 46 25 020EF .ASCII \%FAKE_VM, \ ; 69 73 20 65 6D 61 73 20 74 6F 6E 20 43 41 21 020F9 .ASCII \!AC not same size: Old = !XL, New = !XL,\ ; 20 2C 4C 58 21 20 3D 20 64 6C 4F 20 3A 65 7A 02108 ; 2C 4C 58 21 20 3D 20 77 65 4E 02117 ; 4C 58 21 20 3D 20 72 64 64 41 20 02121 .ASCII \ Addr = !XL\ ; 31 0212C P.ACM: .BYTE 49 ; 20 2C 4D 56 5F 45 4B 41 46 25 0212D .ASCII \%FAKE_VM, \ ; 64 61 20 65 6D 61 73 20 74 6F 6E 20 43 41 21 02137 .ASCII \!AC not same addr: Old = !XL, New = !XL\ ; 20 2C 4C 58 21 20 3D 20 64 6C 4F 20 3A 72 64 02146 ; 4C 58 21 20 3D 20 77 65 4E 02155 ; 38 0215E P.ACN: .BYTE 56 ; 20 2C 4D 56 5F 45 4B 41 46 25 0215F .ASCII \%FAKE_VM, \ ; 67 6E 69 64 61 65 6C 20 64 61 62 20 43 41 21 02169 .ASCII \!AC bad leading guards: Size = !XL, Addr\ ; 3D 20 65 7A 69 53 20 3A 73 64 72 61 75 67 20 02178 ; 72 64 64 41 20 2C 4C 58 21 20 02187 ; 4C 58 21 20 3D 20 02191 .ASCII \ = !XL\ ; 39 02197 P.ACO: .BYTE 57 ; 20 2C 4D 56 5F 45 4B 41 46 25 02198 .ASCII \%FAKE_VM, \ ; 6E 69 6C 69 61 72 74 20 64 61 62 20 43 41 21 021A2 .ASCII \!AC bad trailing guards: Size = !XL, Add\ ; 20 65 7A 69 53 20 3A 73 64 72 61 75 67 20 67 021B1 ; 64 64 41 20 2C 4C 58 21 20 3D 021C0 ; 4C 58 21 20 3D 20 72 021CA .ASCII \r = !XL\ ; 3C 021D1 P.ACP: .BYTE 60 ; 20 2C 4D 56 5F 45 4B 41 46 25 021D2 .ASCII \%FAKE_VM, \ ; 43 41 21 20 67 6E 69 65 65 72 66 20 43 41 21 021DC .ASCII \!AC freeing !AC allocation: Size = !XL, \ ; 69 53 20 3A 6E 6F 69 74 61 63 6F 6C 6C 61 20 021EB ; 20 2C 4C 58 21 20 3D 20 65 7A 021FA ; 4C 58 21 20 3D 20 72 64 64 41 02204 .ASCII \Addr = !XL\ ; 31 0220E P.ACQ: .BYTE 49 ; 20 2C 4D 56 5F 45 4B 41 46 25 0220F .ASCII \%FAKE_VM, \ ; 61 20 64 61 62 20 64 6E 75 6F 66 20 43 41 21 02219 .ASCII \!AC found bad active list: Status = !XL\ ; 61 74 53 20 3A 74 73 69 6C 20 65 76 69 74 63 02228 ; 4C 58 21 20 3D 20 73 75 74 02237 ; 52 02240 P.ACR: .BYTE 82 ; 20 2C 4D 56 5F 45 4B 41 46 25 02241 .ASCII \%FAKE_VM, \ ; 2C 4C 58 21 20 3A 65 7A 69 53 20 3A 43 41 21 0224B .ASCII \!AC: Size: !XL, Addr: !XL, From PCs: !XL\ ; 6F 72 46 20 2C 4C 58 21 20 3A 72 64 64 41 20 0225A ; 4C 58 21 20 3A 73 43 50 20 6D 02269 ; 58 21 20 4C 58 21 20 4C 58 21 20 4C 58 21 20 02273 .ASCII \ !XL !XL !XL !XL !XL !XL !XL !XL\ ; 21 20 4C 58 21 20 4C 58 21 20 4C 58 21 20 4C 02282 ; 4C 58 02291 ; 3A 02293 P.ACS: .BYTE 58 ; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 109 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (23) 20 2C 4D 56 5F 45 4B 41 46 25 02294 .ASCII \%FAKE_VM, \ ; 61 74 53 20 3A 64 65 6C 69 61 66 20 43 41 21 0229E .ASCII \!AC failed: Status = !XL, Size = !XL, Ad\ ; 65 7A 69 53 20 2C 4C 58 21 20 3D 20 73 75 74 022AD ; 64 41 20 2C 4C 58 21 20 3D 20 022BC ; 4C 58 21 20 3D 20 72 64 022C6 .ASCII \dr = !XL\ ; .EXTRN SYS$DELTVA 0FFC 00000 FAKE_VM_FREE_VM: .WORD Save R2,R3,R4,R5,R6,R7,R8,R9,R10,R11 ; 2537 5B 00000000' EF 9E 00002 MOVAB ERRORS, R11 ; 5A DD95 CF 9E 00009 MOVAB FREE_CALL_NAME, R10 ; 5E 18 C2 0000E SUBL2 #24, SP ; 10 AE 7C 00011 CLRQ SIG_TO_RET ; 2561 6D 0343 CF DE 00014 MOVAL 45$, (FP) ; 7E D4 00019 CLRL -(SP) ; 00000000G 00 01 FB 0001B CALLS #1, SYS$SETAST ; 09 50 D1 00022 CMPL R0, #9 ; 04 12 00025 BNEQ 1$ ; 14 AE 01 D0 00027 MOVL #1, AST_STATUS ; 05 FF48 CB E8 0002B 1$: BLBS IMAGE_LOADED, 2$ ; 2563 E0F9 CF 00 FB 00030 CALLS #0, LOAD_IMAGE ; 2565 02 6C 91 00035 2$: CMPB (AP), #2 ; 2567 24 1F 00038 BLSSU 4$ ; 30 13 0003A BEQL 5$ ; 2571 03 6C 91 0003C CMPB (AP), #3 ; 2575 1D 1A 0003F BGTRU 4$ ; 0C AC D5 00041 TSTL ZONE ; 2579 26 13 00044 BEQL 5$ ; 0C BC D5 00046 TSTL @ZONE ; 2583 21 13 00049 BEQL 5$ ; 09 14 AE E9 0004B BLBC AST_STATUS, 3$ ; 2587 01 DD 0004F PUSHL #1 ; 00000000G 00 01 FB 00051 CALLS #1, SYS$SETAST ; 0140 DB 6C FA 00058 3$: CALLG (AP), @FREE_VM_ADDR ; 2589 04 0005D RET ; 6B D6 0005E 4$: INCL ERRORS ; 2593 7E 6C 9A 00060 MOVZBL (AP), -(SP) ; 1F6C CA 9F 00063 PUSHAB P.ACG ; F702 CF 02 FB 00067 CALLS #2, CALL_DEBUG ; 56 D4 0006C 5$: CLRL MY_TYPE ; 2595 54 5D D0 0006E MOVL FP, MY_FRAME ; 2596 50 00000000V EF 9E 00071 MOVAB FAKE_VM_SFREE1_DD, R0 ; 2597 50 10 A4 D1 00078 CMPL 16(MY_FRAME), R0 ; 0D 1F 0007C BLSSU 6$ ; 50 00000000V EF 9E 0007E MOVAB FAKE_VM_SFREEN_DD, R0 ; 2598 50 10 A4 D1 00085 CMPL 16(MY_FRAME), R0 ; 71 1F 00089 BLSSU 10$ ; 50 00000000V EF 9E 0008B 6$: MOVAB FAKE_VM_MALLOC, R0 ; 2605 50 10 A4 D1 00092 CMPL 16(MY_FRAME), R0 ; 6A 1F 00096 BLSSU 11$ ; 50 00000000V EF 9E 00098 MOVAB FAKE_VM_DUMMY_FREE, R0 ; 2606 50 10 A4 D1 0009F CMPL 16(MY_FRAME), R0 ; 5D 1E 000A3 BGEQU 11$ ; 56 02 D0 000A5 MOVL #2, MY_TYPE ; 2609 54 0C A4 D0 000A8 MOVL 12(MY_FRAME), MY_FRAME ; 2610 50 10 A4 D0 000AC MOVL 16(MY_FRAME), R0 ; 2611 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 110 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (23) 51 00000000V EF 9E 000B0 MOVAB FAKE_VM_MALLOC_OPT, R1 ; 51 50 D1 000B7 CMPL R0, R1 ; 0C 1F 000BA BLSSU 7$ ; 51 00000000V EF 9E 000BC MOVAB FAKE_VM_DUMMY_FREE_OPT, R1 ; 2612 51 50 D1 000C3 CMPL R0, R1 ; 34 1F 000C6 BLSSU 10$ ; 51 00000000V EF 9E 000C8 7$: MOVAB FAKE_VM_XMEMORY_MALLOC, R1 ; 2619 51 50 D1 000CF CMPL R0, R1 ; 0C 1F 000D2 BLSSU 8$ ; 51 00000000V EF 9E 000D4 MOVAB FAKE_VM_XMEMORY_DUMMY_FREE, R1 ; 2620 51 50 D1 000DB CMPL R0, R1 ; 1A 1F 000DE BLSSU 9$ ; 51 00000000V EF 9E 000E0 8$: MOVAB FAKE_VM_LIB_MALLOC, R1 ; 2628 51 50 D1 000E7 CMPL R0, R1 ; 16 1F 000EA BLSSU 11$ ; 51 00000000V EF 9E 000EC MOVAB FAKE_VM_LIB_DUMMY_FREE, R1 ; 2629 51 50 D1 000F3 CMPL R0, R1 ; 0A 1E 000F6 BGEQU 11$ ; 56 D6 000F8 INCL MY_TYPE ; 2632 56 D6 000FA 9$: INCL MY_TYPE ; 2633 56 D6 000FC 10$: INCL MY_TYPE ; 2634 54 0C A4 D0 000FE MOVL 12(MY_FRAME), MY_FRAME ; 2635 4B FE30 CB E9 00102 11$: BLBC FAKE_VM_CHECK_ACTIVE_LIST, 17$ ; 2639 5E DD 00107 PUSHL SP ; 2643 E741 CF 01 FB 00109 CALLS #1, CHECK_ACTIVE_LIST ; 59 50 D0 0010E MOVL R0, MY_STATUS ; 05 00 59 CF 00111 CASEL MY_STATUS, #0, #5 ; 2644 0018 000C 000C 000C 00115 12$: .WORD 13$-12$,- ; 003D 0029 0011D 13$-12$,- ; 13$-12$,- ; 14$-12$,- ; 15$-12$,- ; 17$-12$ ; 6B D6 00121 13$: INCL ERRORS ; 2663 6E DD 00123 PUSHL MY_ADDR ; 59 DD 00125 PUSHL MY_STATUS ; 200B CA 9F 00127 PUSHAB P.ACJ ; 20 11 0012B BRB 16$ ; 6B D6 0012D 14$: INCL ERRORS ; 2650 50 6E D0 0012F MOVL MY_ADDR, R0 ; 40 A0 9F 00132 PUSHAB 64(R0) ; 0C A0 DD 00135 PUSHL 12(R0) ; 1FA0 CA 9F 00138 PUSHAB P.ACH ; 0F 11 0013C BRB 16$ ; 6B D6 0013E 15$: INCL ERRORS ; 2655 50 6E D0 00140 MOVL MY_ADDR, R0 ; 40 A0 9F 00143 PUSHAB 64(R0) ; 0C A0 DD 00146 PUSHL 12(R0) ; 1FD5 CA 9F 00149 PUSHAB P.ACI ; F61C CF 03 FB 0014D 16$: CALLS #3, CALL_DEBUG ; 5E DD 00152 17$: PUSHL SP ; 2671 53 08 BC D0 00154 MOVL @ADDR, R3 ; 53 DD 00158 PUSHL R3 ; 55 04 BC D0 0015A MOVL @SIZE, R5 ; 55 DD 0015E PUSHL R5 ; E762 CF 03 FB 00160 CALLS #3, FIND_IN_ACTIVE_LIST ; 59 50 D0 00165 MOVL R0, MY_STATUS ; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 111 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (23) 05 00 59 CF 00168 CASEL MY_STATUS, #0, #5 ; 2672 0075 005B 003C 0022 0016C 18$: .WORD 19$-18$,- ; 00A0 0088 00174 21$-18$,- ; 22$-18$,- ; 23$-18$,- ; 24$-18$,- ; 27$-18$ ; 6B D6 00178 INCL ERRORS ; 2734 59 DD 0017A PUSHL MY_STATUS ; 50 56 0E C5 0017C MULL3 #14, MY_TYPE, R0 ; 6A40 9F 00180 PUSHAB FREE_CALL_NAME[R0] ; 219E CA 9F 00183 PUSHAB P.ACQ ; F5E2 CF 03 FB 00187 CALLS #3, CALL_DEBUG ; 16 11 0018C BRB 20$ ; 2735 6B D6 0018E 19$: INCL ERRORS ; 2680 53 DD 00190 PUSHL R3 ; 55 DD 00192 PUSHL R5 ; 50 56 0E C5 00194 MULL3 #14, MY_TYPE, R0 ; 6A40 9F 00198 PUSHAB FREE_CALL_NAME[R0] ; 2045 CA 9F 0019B PUSHAB P.ACK ; F5CA CF 04 FB 0019F CALLS #4, CALL_DEBUG ; 6E D4 001A4 20$: CLRL MY_ADDR ; 2681 62 11 001A6 BRB 26$ ; 6B D6 001A8 21$: INCL ERRORS ; 2689 53 DD 001AA PUSHL R3 ; 55 DD 001AC PUSHL R5 ; 50 08 AE D0 001AE MOVL MY_ADDR, R0 ; 0C A0 DD 001B2 PUSHL 12(R0) ; 50 56 0E C5 001B5 MULL3 #14, MY_TYPE, R0 ; 6A40 9F 001B9 PUSHAB FREE_CALL_NAME[R0] ; 207E CA 9F 001BC PUSHAB P.ACL ; F5A9 CF 05 FB 001C0 CALLS #5, CALL_DEBUG ; 7B 11 001C5 BRB 29$ ; 6B D6 001C7 22$: INCL ERRORS ; 2695 53 DD 001C9 PUSHL R3 ; 7E 04 AE 00000040 8F C1 001CB ADDL3 #64, MY_ADDR, -(SP) ; 50 56 0E C5 001D4 MULL3 #14, MY_TYPE, R0 ; 6A40 9F 001D8 PUSHAB FREE_CALL_NAME[R0] ; 20BC CA 9F 001DB PUSHAB P.ACM ; 24 11 001DF BRB 25$ ; 6B D6 001E1 23$: INCL ERRORS ; 2701 53 DD 001E3 PUSHL R3 ; 55 DD 001E5 PUSHL R5 ; 50 56 0E C5 001E7 MULL3 #14, MY_TYPE, R0 ; 6A40 9F 001EB PUSHAB FREE_CALL_NAME[R0] ; 20EE CA 9F 001EE PUSHAB P.ACN ; 11 11 001F2 BRB 25$ ; 6B D6 001F4 24$: INCL ERRORS ; 2707 53 DD 001F6 PUSHL R3 ; 55 DD 001F8 PUSHL R5 ; 50 56 0E C5 001FA MULL3 #14, MY_TYPE, R0 ; 6A40 9F 001FE PUSHAB FREE_CALL_NAME[R0] ; 2127 CA 9F 00201 PUSHAB P.ACO ; F564 CF 04 FB 00205 25$: CALLS #4, CALL_DEBUG ; 36 11 0020A 26$: BRB 29$ ; 52 6E D0 0020C 27$: MOVL MY_ADDR, R2 ; 2711 10 A2 56 B1 0020F CMPW MY_TYPE, 16(R2) ; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 112 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (23) 26 13 00213 BEQL 28$ ; 12 A2 B6 00215 INCW 18(R2) ; 2715 6B D6 00218 INCL ERRORS ; 2722 53 DD 0021A PUSHL R3 ; 55 DD 0021C PUSHL R5 ; 50 10 A2 03 00 EF 0021E EXTZV #0, #3, 16(R2), R0 ; 50 0E C4 00224 MULL2 #14, R0 ; 90 AA40 9F 00227 PUSHAB GET_CALL_NAME[R0] ; 50 56 0E C5 0022B MULL3 #14, MY_TYPE, R0 ; 6A40 9F 0022F PUSHAB FREE_CALL_NAME[R0] ; 2161 CA 9F 00232 PUSHAB P.ACP ; F533 CF 05 FB 00236 CALLS #5, CALL_DEBUG ; 12 A2 B5 0023B 28$: TSTW 18(R2) ; 2724 27 13 0023E BEQL 33$ ; 56 D4 00240 CLRL MY_TYPE ; 2727 50 6E D0 00242 29$: MOVL MY_ADDR, R0 ; 2740 04 13 00245 BEQL 30$ ; 10 A0 07 B0 00247 MOVW #7, 16(R0) ; 2742 09 14 AE E9 0024B 30$: BLBC AST_STATUS, 31$ ; 01 DD 0024F PUSHL #1 ; 00000000G 00 01 FB 00251 CALLS #1, SYS$SETAST ; 56 D5 00258 31$: TSTL MY_TYPE ; 2746 03 12 0025A BNEQ 32$ ; 00BF 31 0025C BRW 41$ ; 50 00000000G 8F D0 0025F 32$: MOVL #LIB$_INTLOGERR, R0 ; 2748 04 00266 RET ; 53 00 BE 0F 00267 33$: REMQUE @MY_ADDR, MY_PTR ; 2754 42 FE00 CB E9 0026B BLBC FAKE_VM_LOG, 36$ ; 2756 50 D4 00270 CLRL I ; 2759 51 D4 00272 34$: CLRL PREV_PC ; 2764 54 D5 00274 TSTL MY_FRAME ; 2765 08 13 00276 BEQL 35$ ; 51 10 A4 D0 00278 MOVL 16(MY_FRAME), PREV_PC ; 2768 54 0C A4 D0 0027C MOVL 12(MY_FRAME), MY_FRAME ; 2769 14 A340 51 D0 00280 35$: MOVL PREV_PC, 20(MY_PTR)[I] ; 2771 E9 50 08 F3 00285 AOBLEQ #8, I, 34$ ; 7E 30 A3 7D 00289 MOVQ 48(MY_PTR), -(SP) ; 2786 7E 28 A3 7D 0028D MOVQ 40(MY_PTR), -(SP) ; 7E 20 A3 7D 00291 MOVQ 32(MY_PTR), -(SP) ; 7E 18 A3 7D 00295 MOVQ 24(MY_PTR), -(SP) ; 14 A3 DD 00299 PUSHL 20(MY_PTR) ; 08 BC DD 0029C PUSHL @ADDR ; 04 BC DD 0029F PUSHL @SIZE ; 50 56 0E C5 002A2 MULL3 #14, MY_TYPE, R0 ; 6A40 9F 002A6 PUSHAB FREE_CALL_NAME[R0] ; 21D0 CA 9F 002A9 PUSHAB P.ACR ; F40E CF 0D FB 002AD CALLS #13, DO_LOG ; 04 AE 08 A3 D0 002B2 36$: MOVL 8(MY_PTR), MY_SIZE ; 2789 21 FF60 CB 02 E0 002B7 BBS #2, REAL_FREE_DISABLED, 39$ ; 2791 58 04 AE D0 002BD MOVL MY_SIZE, FILL_LEN ; 2799 57 58 D0 002C1 37$: MOVL FILL_LEN, FILL_CNT ; 2805 0000FFFF 8F 57 D1 002C4 CMPL FILL_CNT, #65535 ; 2806 05 1B 002CB BLEQU 38$ ; 57 FFFF 8F 3C 002CD MOVZWL #65535, FILL_CNT ; 2808 57 55 8F 6E 00 2C 002D2 38$: MOVC5 #0, (SP), #85, FILL_CNT, (MY_PTR) ; 2810 63 002D8 ; 58 57 C2 002D9 SUBL2 FILL_CNT, FILL_LEN ; 2812 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 113 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (23) E3 12 002DC BNEQ 37$ ; 2813 3F FF60 CB E9 002DE 39$: BLBC REAL_FREE_DISABLED, 42$ ; 2821 28 FF60 CB 01 E1 002E3 BBC #1, REAL_FREE_DISABLED, 40$ ; 2825 08 AE 6E D0 002E9 MOVL MY_ADDR, INADR ; 2832 50 08 AE 04 AE C1 002ED ADDL3 MY_SIZE, INADR, R0 ; 2833 0C AE FF A0 9E 002F3 MOVAB -1(R0), INADR+4 ; 7E 7C 002F8 CLRQ -(SP) ; 2835 10 AE 9F 002FA PUSHAB INADR ; 00000000G 00 03 FB 002FD CALLS #3, SYS$DELTVA ; 0A 50 E8 00304 BLBS STATUS, 40$ ; 50 DD 00307 PUSHL STATUS ; 00000000G 00 01 FB 00309 CALLS #1, LIB$STOP ; 04 00310 RET ; 09 14 AE E9 00311 40$: BLBC AST_STATUS, 41$ ; 2837 01 DD 00315 PUSHL #1 ; 00000000G 00 01 FB 00317 CALLS #1, SYS$SETAST ; 50 01 D0 0031E 41$: MOVL #1, R0 ; 2841 04 00321 RET ; 5E DD 00322 42$: PUSHL SP ; 2845 08 AE 9F 00324 PUSHAB MY_SIZE ; 0140 DB 02 FB 00327 CALLS #2, @FREE_VM_ADDR ; 59 50 D0 0032C MOVL R0, MY_STATUS ; 18 59 E8 0032F BLBS MY_STATUS, 43$ ; 2847 6B D6 00332 INCL ERRORS ; 2853 6E DD 00334 PUSHL MY_ADDR ; 08 AE DD 00336 PUSHL MY_SIZE ; 59 DD 00339 PUSHL MY_STATUS ; 56 0E C4 0033B MULL2 #14, R6 ; 6A46 9F 0033E PUSHAB FREE_CALL_NAME[R6] ; 2223 CA 9F 00341 PUSHAB P.ACS ; F424 CF 05 FB 00345 CALLS #5, CALL_DEBUG ; 09 14 AE E9 0034A 43$: BLBC AST_STATUS, 44$ ; 01 DD 0034E PUSHL #1 ; 00000000G 00 01 FB 00350 CALLS #1, SYS$SETAST ; 50 59 D0 00357 44$: MOVL MY_STATUS, R0 ; 2857 04 0035A RET ; 0000 0035B 45$: .WORD Save nothing ; 50 08 AC D0 0035D MOVL 8(AP), R0 ; 50 04 A0 D0 00361 MOVL 4(R0), R0 ; F8 A0 9F 00365 PUSHAB SIG_TO_RET ; FC A0 9F 00368 PUSHAB AST_STATUS ; 02 DD 0036B PUSHL #2 ; 5E DD 0036D PUSHL SP ; 7E 04 AC 7D 0036F MOVQ 4(AP), -(SP) ; DA9A CF 03 FB 00373 CALLS #3, AST_REENABLE ; 04 00378 RET ; ; Routine Size: 889 bytes, Routine Base: _FAKE_VM_CODE + 22CE FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 114 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (24) ; 2861 1 ROUTINE fake_vm_sget1_dd (size : REF VECTOR [1], ; 2862 1 addr : REF BLOCK [, BYTE]) = ; 2863 2 BEGIN ; 2864 2 ; 2865 2 BUILTIN ; 2866 2 ACTUALCOUNT; ; 2867 2 ; 2868 2 LOCAL ; 2869 2 my_status; ; 2870 2 ; 2871 2 $ast_disable (); ; 2872 2 ; 2873 2 IF NOT .image_loaded ; 2874 2 THEN ; 2875 2 load_image (); ; 2876 2 ; 2877 2 IF ACTUALCOUNT () NEQU 2 ; 2878 2 THEN ; P 2879 2 $call_debug ('LIB$SGET1_DD incorrect argument count: !UL', ; 2880 2 ACTUALCOUNT ()); ; 2881 2 ; 2882 2 my_status = 1; ; 2883 2 ; 2884 2 IF .size [0] GTRU 65535 ; 2885 2 THEN ; 2886 3 BEGIN ; 2887 3 ; P 2888 3 $call_debug ('LIB$SGET1_DD failed: Size = !XL, Addr = !XL', ; 2889 3 .size [0], addr [0, 0, 0, 0]); ; 2890 3 ; 2891 3 $ast_enable; ; 2892 3 ; 2893 3 RETURN lib$_intlogerr; ; 2894 3 ; 2895 2 END; ; 2896 2 ; 2897 2 IF .addr [dsc$b_class] NEQU dsc$k_class_d ; 2898 2 THEN ; P 2899 2 $call_debug ('LIB$SGET1_DD warning: Class not dynamic, Addr = !XL', ; 2900 2 addr [0, 0, 0, 0]); ; 2901 2 ; 2902 2 IF .addr [dsc$a_pointer] NEQA 0 ; 2903 2 THEN ; 2904 3 BEGIN ; 2905 3 ; P 2906 3 $call_debug ('LIB$SGET1_DD warning: LIB$SFREE1_DD needed, Addr = !XL', ; 2907 3 addr [0, 0, 0, 0]); ; 2908 3 ; 2909 3 my_status = fake_vm_sfree1_dd (addr [0, 0, 0, 0]); ; 2910 3 ; 2911 3 IF NOT .my_status ; 2912 3 THEN ; 2913 4 BEGIN ; 2914 4 $ast_enable; ; 2915 4 RETURN .my_status; ; 2916 3 END; ; 2917 3 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 115 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (24) ; 2918 2 END; ; 2919 2 ; 2920 2 addr [dsc$w_length] = .size [0]; ; 2921 2 addr [dsc$b_class] = dsc$k_class_d; ; 2922 2 ; 2923 2 my_status = fake_vm_get_vm (size [0], addr [dsc$a_pointer]); ; 2924 2 ; 2925 2 IF NOT .my_status ; 2926 2 THEN ; 2927 3 BEGIN ; 2928 3 ; 2929 3 addr [dsc$w_length] = 0; ; 2930 3 addr [dsc$a_pointer] = 0; ; 2931 3 ; 2932 2 END; ; 2933 2 ; 2934 2 $ast_enable; ; 2935 2 ; 2936 2 RETURN .my_status; ; 2937 2 ; 2938 1 END; 34 02647 P.ACT: .BYTE 52 ; 20 2C 4D 56 5F 45 4B 41 46 25 02648 .ASCII \%FAKE_VM, \ ; 6E 69 20 44 44 5F 31 54 45 47 53 24 42 49 4C 02652 .ASCII \LIB$SGET1_DD incorrect argument count: !\ ; 6E 65 6D 75 67 72 61 20 74 63 65 72 72 6F 63 02661 ; 21 20 3A 74 6E 75 6F 63 20 74 02670 ; 4C 55 0267A .ASCII \UL\ ; 35 0267C P.ACU: .BYTE 53 ; 20 2C 4D 56 5F 45 4B 41 46 25 0267D .ASCII \%FAKE_VM, \ ; 61 66 20 44 44 5F 31 54 45 47 53 24 42 49 4C 02687 .ASCII \LIB$SGET1_DD failed: Size = !XL, Addr = \ ; 58 21 20 3D 20 65 7A 69 53 20 3A 64 65 6C 69 02696 ; 20 3D 20 72 64 64 41 20 2C 4C 026A5 ; 4C 58 21 026AF .ASCII \!XL\ ; 3D 026B2 P.ACV: .BYTE 61 ; 20 2C 4D 56 5F 45 4B 41 46 25 026B3 .ASCII \%FAKE_VM, \ ; 61 77 20 44 44 5F 31 54 45 47 53 24 42 49 4C 026BD .ASCII \LIB$SGET1_DD warning: Class not dynamic,\ ; 6F 6E 20 73 73 61 6C 43 20 3A 67 6E 69 6E 72 026CC ; 2C 63 69 6D 61 6E 79 64 20 74 026DB ; 4C 58 21 20 3D 20 72 64 64 41 20 026E5 .ASCII \ Addr = !XL\ ; 40 026F0 P.ACW: .BYTE 64 ; 20 2C 4D 56 5F 45 4B 41 46 25 026F1 .ASCII \%FAKE_VM, \ ; 61 77 20 44 44 5F 31 54 45 47 53 24 42 49 4C 026FB .ASCII \LIB$SGET1_DD warning: LIB$SFREE1_DD need\ ; 45 52 46 53 24 42 49 4C 20 3A 67 6E 69 6E 72 0270A ; 64 65 65 6E 20 44 44 5F 31 45 02719 ; 4C 58 21 20 3D 20 72 64 64 41 20 2C 64 65 02723 .ASCII \ed, Addr = !XL\ ; 007C 00000 FAKE_VM_SGET1_DD: .WORD Save R2,R3,R4,R5,R6 ; 2861 56 00000000G 00 9E 00002 MOVAB SYS$SETAST, R6 ; 55 00000000' EF 9E 00009 MOVAB ERRORS, R5 ; 54 F2F7 CF 9E 00010 MOVAB CALL_DEBUG, R4 ; 5E 04 C2 00015 SUBL2 #4, SP ; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 116 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (24) 7E D4 00018 CLRL SIG_TO_RET ; 2871 04 AE D4 0001A CLRL AST_STATUS ; 6D 00BC CF DE 0001D MOVAL 11$, (FP) ; 7E D4 00022 CLRL -(SP) ; 66 01 FB 00024 CALLS #1, SYS$SETAST ; 09 50 D1 00027 CMPL R0, #9 ; 04 12 0002A BNEQ 1$ ; 04 AE 01 D0 0002C MOVL #1, AST_STATUS ; 05 FF48 C5 E8 00030 1$: BLBS IMAGE_LOADED, 2$ ; 2873 E9C0 C4 00 FB 00035 CALLS #0, LOAD_IMAGE ; 2875 02 6C 91 0003A 2$: CMPB (AP), #2 ; 2877 0C 13 0003D BEQL 3$ ; 65 D6 0003F INCL ERRORS ; 2880 7E 6C 9A 00041 MOVZBL (AP), -(SP) ; FECE CF 9F 00044 PUSHAB P.ACT ; 64 02 FB 00048 CALLS #2, CALL_DEBUG ; 53 01 D0 0004B 3$: MOVL #1, MY_STATUS ; 2882 0000FFFF 8F 04 BC D1 0004E CMPL @SIZE, #65535 ; 2884 20 1B 00056 BLEQU 5$ ; 65 D6 00058 INCL ERRORS ; 2889 08 AC DD 0005A PUSHL ADDR ; 04 BC DD 0005D PUSHL @SIZE ; FEE7 CF 9F 00060 PUSHAB P.ACU ; 64 03 FB 00064 CALLS #3, CALL_DEBUG ; 05 04 AE E9 00067 BLBC AST_STATUS, 4$ ; 01 DD 0006B PUSHL #1 ; 66 01 FB 0006D CALLS #1, SYS$SETAST ; 50 00000000G 8F D0 00070 4$: MOVL #LIB$_INTLOGERR, R0 ; 2893 04 00077 RET ; 52 08 AC D0 00078 5$: MOVL ADDR, R2 ; 2897 02 03 A2 91 0007C CMPB 3(R2), #2 ; 0B 13 00080 BEQL 6$ ; 65 D6 00082 INCL ERRORS ; 2900 52 DD 00084 PUSHL R2 ; FEF7 CF 9F 00086 PUSHAB P.ACV ; 64 02 FB 0008A CALLS #2, CALL_DEBUG ; 04 A2 D5 0008D 6$: TSTL 4(R2) ; 2902 20 13 00090 BEQL 7$ ; 65 D6 00092 INCL ERRORS ; 2907 52 DD 00094 PUSHL R2 ; FF25 CF 9F 00096 PUSHAB P.ACW ; 64 02 FB 0009A CALLS #2, CALL_DEBUG ; 52 DD 0009D PUSHL R2 ; 2909 00000000V EF 01 FB 0009F CALLS #1, FAKE_VM_SFREE1_DD ; 53 50 D0 000A6 MOVL R0, MY_STATUS ; 06 53 E8 000A9 BLBS MY_STATUS, 7$ ; 2911 24 04 AE E8 000AC BLBS AST_STATUS, 9$ ; 2913 27 11 000B0 BRB 10$ ; 2915 62 04 BC B0 000B2 7$: MOVW @SIZE, (R2) ; 2920 03 A2 02 90 000B6 MOVB #2, 3(R2) ; 2921 04 A2 9F 000BA PUSHAB 4(R2) ; 2923 04 AC DD 000BD PUSHL SIZE ; 0304 C4 02 FB 000C0 CALLS #2, FAKE_VM_GET_VM ; 53 50 D0 000C5 MOVL R0, MY_STATUS ; 05 53 E8 000C8 BLBS MY_STATUS, 8$ ; 2925 62 B4 000CB CLRW (R2) ; 2929 04 A2 D4 000CD CLRL 4(R2) ; 2930 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 117 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (24) 05 04 AE E9 000D0 8$: BLBC AST_STATUS, 10$ ; 2932 01 DD 000D4 9$: PUSHL #1 ; 66 01 FB 000D6 CALLS #1, SYS$SETAST ; 50 53 D0 000D9 10$: MOVL MY_STATUS, R0 ; 2936 04 000DC RET ; 0000 000DD 11$: .WORD Save nothing ; 50 08 AC D0 000DF MOVL 8(AP), R0 ; 50 04 A0 D0 000E3 MOVL 4(R0), R0 ; F8 A0 9F 000E7 PUSHAB SIG_TO_RET ; FC A0 9F 000EA PUSHAB AST_STATUS ; 02 DD 000ED PUSHL #2 ; 5E DD 000EF PUSHL SP ; 7E 04 AC 7D 000F1 MOVQ 4(AP), -(SP) ; D8B5 CF 03 FB 000F5 CALLS #3, AST_REENABLE ; 04 000FA RET ; ; Routine Size: 251 bytes, Routine Base: _FAKE_VM_CODE + 2731 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 118 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (25) ; 2940 1 ROUTINE fake_vm_sfree1_dd (addr : REF BLOCK [, BYTE]) = ; 2941 2 BEGIN ; 2942 2 ; 2943 2 BUILTIN ; 2944 2 ACTUALCOUNT; ; 2945 2 ; 2946 2 LOCAL ; 2947 2 my_status; ; 2948 2 ; 2949 2 $ast_disable (); ; 2950 2 ; 2951 2 IF NOT .image_loaded ; 2952 2 THEN ; 2953 2 load_image (); ; 2954 2 ; 2955 2 IF ACTUALCOUNT () NEQU 1 ; 2956 2 THEN ; P 2957 2 $call_debug ('LIB$SFREE1_DD incorrect argument count: !UL', ; 2958 2 ACTUALCOUNT ()); ; 2959 2 ; 2960 2 my_status = 1; ; 2961 2 ; 2962 2 IF .addr [dsc$b_class] NEQU dsc$k_class_d ; 2963 2 THEN ; 2964 3 BEGIN ; 2965 3 ; P 2966 3 $call_debug ('LIB$SFREE1_DD warning: Class not dynamic, Addr = !XL', ; 2967 3 addr [0, 0, 0, 0]); ; 2968 3 ; 2969 3 $ast_enable; ; 2970 3 ; 2971 3 RETURN lib$_intlogerr; ; 2972 3 ; 2973 2 END; ; 2974 2 ; 2975 2 IF .addr [dsc$a_pointer] NEQA 0 ; 2976 2 THEN ; 2977 3 BEGIN ; 2978 3 ; 2979 3 LOCAL ; 2980 3 my_size; ; 2981 3 ; 2982 3 my_size = .addr [dsc$w_length]; ; 2983 3 ; 2984 3 my_status = fake_vm_free_vm (my_size, addr [dsc$a_pointer]); ; 2985 3 ; 2986 3 IF .my_status EQLU lib$_intlogerr ; 2987 3 THEN ; 2988 3 my_status = 1; ; 2989 3 ; 2990 2 END; ; 2991 2 ; 2992 2 addr [dsc$w_length] = 0; ; 2993 2 addr [dsc$a_pointer] = 0; ; 2994 2 ; 2995 2 $ast_enable; ; 2996 2 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 119 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (25) ; 2997 2 RETURN .my_status; ; 2998 2 ; 2999 1 END; 35 0282C P.ACX: .BYTE 53 ; 20 2C 4D 56 5F 45 4B 41 46 25 0282D .ASCII \%FAKE_VM, \ ; 69 20 44 44 5F 31 45 45 52 46 53 24 42 49 4C 02837 .ASCII \LIB$SFREE1_DD incorrect argument count: \ ; 65 6D 75 67 72 61 20 74 63 65 72 72 6F 63 6E 02846 ; 20 3A 74 6E 75 6F 63 20 74 6E 02855 ; 4C 55 21 0285F .ASCII \!UL\ ; 3E 02862 P.ACY: .BYTE 62 ; 20 2C 4D 56 5F 45 4B 41 46 25 02863 .ASCII \%FAKE_VM, \ ; 77 20 44 44 5F 31 45 45 52 46 53 24 42 49 4C 0286D .ASCII \LIB$SFREE1_DD warning: Class not dynamic\ ; 6E 20 73 73 61 6C 43 20 3A 67 6E 69 6E 72 61 0287C ; 63 69 6D 61 6E 79 64 20 74 6F 0288B ; 4C 58 21 20 3D 20 72 64 64 41 20 2C 02895 .ASCII \, Addr = !XL\ ; 00FC 00000 FAKE_VM_SFREE1_DD: .WORD Save R2,R3,R4,R5,R6,R7 ; 2940 57 00000000G 8F D0 00002 MOVL #LIB$_INTLOGERR, R7 ; 56 00000000G 00 9E 00009 MOVAB SYS$SETAST, R6 ; 55 00000000' EF 9E 00010 MOVAB ERRORS, R5 ; 54 F180 CF 9E 00017 MOVAB CALL_DEBUG, R4 ; 5E 0C C2 0001C SUBL2 #12, SP ; 04 AE 7C 0001F CLRQ SIG_TO_RET ; 2949 6D 007F CF DE 00022 MOVAL 8$, (FP) ; 7E D4 00027 CLRL -(SP) ; 66 01 FB 00029 CALLS #1, SYS$SETAST ; 09 50 D1 0002C CMPL R0, #9 ; 04 12 0002F BNEQ 1$ ; 08 AE 01 D0 00031 MOVL #1, AST_STATUS ; 05 FF48 C5 E8 00035 1$: BLBS IMAGE_LOADED, 2$ ; 2951 E9C0 C4 00 FB 0003A CALLS #0, LOAD_IMAGE ; 2953 01 6C 91 0003F 2$: CMPB (AP), #1 ; 2955 0C 13 00042 BEQL 3$ ; 65 D6 00044 INCL ERRORS ; 2958 7E 6C 9A 00046 MOVZBL (AP), -(SP) ; FF3E CF 9F 00049 PUSHAB P.ACX ; 64 02 FB 0004D CALLS #2, CALL_DEBUG ; 53 01 D0 00050 3$: MOVL #1, MY_STATUS ; 2960 52 04 AC D0 00053 MOVL ADDR, R2 ; 2962 02 03 A2 91 00057 CMPB 3(R2), #2 ; 18 13 0005B BEQL 5$ ; 65 D6 0005D INCL ERRORS ; 2967 52 DD 0005F PUSHL R2 ; FF5C CF 9F 00061 PUSHAB P.ACY ; 64 02 FB 00065 CALLS #2, CALL_DEBUG ; 05 08 AE E9 00068 BLBC AST_STATUS, 4$ ; 01 DD 0006C PUSHL #1 ; 66 01 FB 0006E CALLS #1, SYS$SETAST ; 50 57 D0 00071 4$: MOVL R7, R0 ; 2971 04 00074 RET ; 04 A2 D5 00075 5$: TSTL 4(R2) ; 2975 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 120 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (25) 19 13 00078 BEQL 6$ ; 6E 62 3C 0007A MOVZWL (R2), MY_SIZE ; 2982 04 A2 9F 0007D PUSHAB 4(R2) ; 2984 04 AE 9F 00080 PUSHAB MY_SIZE ; 0892 C4 02 FB 00083 CALLS #2, FAKE_VM_FREE_VM ; 53 50 D0 00088 MOVL R0, MY_STATUS ; 57 53 D1 0008B CMPL MY_STATUS, R7 ; 2986 03 12 0008E BNEQ 6$ ; 53 01 D0 00090 MOVL #1, MY_STATUS ; 2988 62 B4 00093 6$: CLRW (R2) ; 2992 04 A2 D4 00095 CLRL 4(R2) ; 2993 05 08 AE E9 00098 BLBC AST_STATUS, 7$ ; 01 DD 0009C PUSHL #1 ; 66 01 FB 0009E CALLS #1, SYS$SETAST ; 50 53 D0 000A1 7$: MOVL MY_STATUS, R0 ; 2997 04 000A4 RET ; 0000 000A5 8$: .WORD Save nothing ; 50 08 AC D0 000A7 MOVL 8(AP), R0 ; 50 04 A0 D0 000AB MOVL 4(R0), R0 ; F8 A0 9F 000AF PUSHAB SIG_TO_RET ; FC A0 9F 000B2 PUSHAB AST_STATUS ; 02 DD 000B5 PUSHL #2 ; 5E DD 000B7 PUSHL SP ; 7E 04 AC 7D 000B9 MOVQ 4(AP), -(SP) ; D77D CF 03 FB 000BD CALLS #3, AST_REENABLE ; 04 000C2 RET ; ; Routine Size: 195 bytes, Routine Base: _FAKE_VM_CODE + 28A1 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 121 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (26) ; 3001 1 ROUTINE fake_vm_sfreen_dd (cnt : REF VECTOR [1], ; 3002 1 addr : REF BLOCK [, BYTE]) = ; 3003 2 BEGIN ; 3004 2 ; 3005 2 BUILTIN ; 3006 2 ACTUALCOUNT; ; 3007 2 ; 3008 2 LOCAL ; 3009 2 my_status; ; 3010 2 ; 3011 2 $ast_disable (); ; 3012 2 ; 3013 2 IF NOT .image_loaded ; 3014 2 THEN ; 3015 2 load_image (); ; 3016 2 ; 3017 2 IF ACTUALCOUNT () NEQU 2 ; 3018 2 THEN ; P 3019 2 $call_debug ('LIB$SFREEN_DD incorrect argument count: !UL', ; 3020 2 ACTUALCOUNT ()); ; 3021 2 ; 3022 2 my_status = 1; ; 3023 2 ; 3024 2 INCR i FROM 1 to .cnt [0] ; 3025 2 DO ; 3026 3 BEGIN ; 3027 3 ; 3028 3 my_status = fake_vm_sfree1_dd (addr [(.i - 1) * 8, 0, 0, 0]); ; 3029 3 ; 3030 3 IF NOT .my_status ; 3031 3 THEN ; 3032 3 EXITLOOP; ; 3033 3 ; 3034 2 END; ; 3035 2 ; 3036 2 $ast_enable; ; 3037 2 ; 3038 2 RETURN .my_status; ; 3039 2 ; 3040 1 END; 35 02964 P.ACZ: .BYTE 53 ; 20 2C 4D 56 5F 45 4B 41 46 25 02965 .ASCII \%FAKE_VM, \ ; 69 20 44 44 5F 4E 45 45 52 46 53 24 42 49 4C 0296F .ASCII \LIB$SFREEN_DD incorrect argument count: \ ; 65 6D 75 67 72 61 20 74 63 65 72 72 6F 63 6E 0297E ; 20 3A 74 6E 75 6F 63 20 74 6E 0298D ; 4C 55 21 02997 .ASCII \!UL\ ; 003C 00000 FAKE_VM_SFREEN_DD: .WORD Save R2,R3,R4,R5 ; 3001 55 00000000G 00 9E 00002 MOVAB SYS$SETAST, R5 ; 54 DA55 CF 9E 00009 MOVAB LOAD_IMAGE, R4 ; 5E 04 C2 0000E SUBL2 #4, SP ; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 122 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (26) 7E D4 00011 CLRL SIG_TO_RET ; 3011 04 AE D4 00013 CLRL AST_STATUS ; 6D 005A CF DE 00016 MOVAL 8$, (FP) ; 7E D4 0001B CLRL -(SP) ; 65 01 FB 0001D CALLS #1, SYS$SETAST ; 09 50 D1 00020 CMPL R0, #9 ; 04 12 00023 BNEQ 1$ ; 04 AE 01 D0 00025 MOVL #1, AST_STATUS ; 03 00000000' EF E8 00029 1$: BLBS IMAGE_LOADED, 2$ ; 3013 64 00 FB 00030 CALLS #0, LOAD_IMAGE ; 3015 02 6C 91 00033 2$: CMPB (AP), #2 ; 3017 11 13 00036 BEQL 3$ ; 00000000' EF D6 00038 INCL ERRORS ; 3020 7E 6C 9A 0003E MOVZBL (AP), -(SP) ; 86 AF 9F 00041 PUSHAB P.ACZ ; 1640 C4 02 FB 00044 CALLS #2, CALL_DEBUG ; 53 01 D0 00049 3$: MOVL #1, MY_STATUS ; 3022 52 D4 0004C CLRL I ; 3024 12 11 0004E BRB 5$ ; 08 BC42 7F 00050 4$: PUSHAQ @ADDR[I] ; 3028 6E 08 C2 00054 SUBL2 #8, (SP) ; 24A5 C4 01 FB 00057 CALLS #1, FAKE_VM_SFREE1_DD ; 53 50 D0 0005C MOVL R0, MY_STATUS ; 05 53 E9 0005F BLBC MY_STATUS, 6$ ; 3030 E9 52 04 BC F3 00062 5$: AOBLEQ @CNT, I, 4$ ; 3024 05 04 AE E9 00067 6$: BLBC AST_STATUS, 7$ ; 3034 01 DD 0006B PUSHL #1 ; 65 01 FB 0006D CALLS #1, SYS$SETAST ; 50 53 D0 00070 7$: MOVL MY_STATUS, R0 ; 3038 04 00073 RET ; 0000 00074 8$: .WORD Save nothing ; 50 08 AC D0 00076 MOVL 8(AP), R0 ; 50 04 A0 D0 0007A MOVL 4(R0), R0 ; F8 A0 9F 0007E PUSHAB SIG_TO_RET ; FC A0 9F 00081 PUSHAB AST_STATUS ; 02 DD 00084 PUSHL #2 ; 5E DD 00086 PUSHL SP ; 7E 04 AC 7D 00088 MOVQ 4(AP), -(SP) ; D6B5 CF 03 FB 0008C CALLS #3, AST_REENABLE ; 04 00091 RET ; ; Routine Size: 146 bytes, Routine Base: _FAKE_VM_CODE + 299A FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 123 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (27) ; 3042 1 ROUTINE fake_vm_get_ef (addr : REF VECTOR [1]) = ; 3043 2 BEGIN ; 3044 2 ; 3045 2 BUILTIN ; 3046 2 ACTUALCOUNT, ; 3047 2 FP; ; 3048 2 ; 3049 2 MAP ; 3050 2 FP : REF BLOCK [, BYTE]; ; 3051 2 ; 3052 2 LOCAL ; 3053 2 my_status, ; 3054 2 my_efn; ; 3055 2 ; 3056 2 $ast_disable (); ; 3057 2 ; 3058 2 IF NOT .image_loaded ; 3059 2 THEN ; 3060 2 load_image (); ; 3061 2 ; 3062 2 IF ACTUALCOUNT () NEQU 1 ; 3063 2 THEN ; P 3064 2 $call_debug_efn ('LIB$GET_EF incorrect argument count: !UL', ; 3065 2 ACTUALCOUNT ()); ; 3066 2 ; 3067 2 my_status = (.get_ef_addr) (addr [0]); ; 3068 2 ; 3069 2 IF NOT .my_status ; 3070 2 THEN ; 3071 3 $call_debug_efn ('LIB$GET_EF failed: Status = !XL', .my_status) ; 3072 2 ELSE ; 3073 3 BEGIN ; 3074 3 my_efn = .addr [0]; ; 3075 3 IF .my_efn GEQU efn_vector ; 3076 3 THEN ; 3077 4 $call_debug_efn ('EFN too big: !UL', .my_efn) ; 3078 3 ELSE ; 3079 4 BEGIN ; 3080 4 IF .efn_list [.my_efn] NEQA 0 ; 3081 4 THEN ; P 3082 4 $call_debug_efn ('EFN !UL already allocated by !XL', ; 3083 4 .my_efn, .efn_list [.my_efn]); ; 3084 4 efn_list [.my_efn] = .FP [SF$L_SAVE_PC]; ; 3085 3 END; ; 3086 2 END; ; 3087 2 ; 3088 2 $ast_enable; ; 3089 2 ; 3090 2 RETURN .my_status; ; 3091 2 ; 3092 1 END; 32 02A2C P.ADA: .BYTE 50 ; 20 2C 4D 56 5F 45 4B 41 46 25 02A2D .ASCII \%FAKE_VM, \ ; 6F 63 6E 69 20 46 45 5F 54 45 47 24 42 49 4C 02A37 .ASCII \LIB$GET_EF incorrect argument count: !UL\ ; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 124 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (27) 20 74 6E 65 6D 75 67 72 61 20 74 63 65 72 72 02A46 ; 4C 55 21 20 3A 74 6E 75 6F 63 02A55 ; 29 02A5F P.ADB: .BYTE 41 ; 20 2C 4D 56 5F 45 4B 41 46 25 02A60 .ASCII \%FAKE_VM, \ ; 6C 69 61 66 20 46 45 5F 54 45 47 24 42 49 4C 02A6A .ASCII \LIB$GET_EF failed: Status = !XL\ ; 58 21 20 3D 20 73 75 74 61 74 53 20 3A 64 65 02A79 ; 4C 02A88 ; 1A 02A89 P.ADC: .BYTE 26 ; 20 2C 4D 56 5F 45 4B 41 46 25 02A8A .ASCII \%FAKE_VM, \ ; 55 21 20 3A 67 69 62 20 6F 6F 74 20 4E 46 45 02A94 .ASCII \EFN too big: !UL\ ; 4C 02AA3 ; 2A 02AA4 P.ADD: .BYTE 42 ; 20 2C 4D 56 5F 45 4B 41 46 25 02AA5 .ASCII \%FAKE_VM, \ ; 79 64 61 65 72 6C 61 20 4C 55 21 20 4E 46 45 02AAF .ASCII \EFN !UL already allocated by !XL\ ; 21 20 79 62 20 64 65 74 61 63 6F 6C 6C 61 20 02ABE ; 4C 58 02ACD ; 007C 00000 FAKE_VM_GET_EF: .WORD Save R2,R3,R4,R5,R6 ; 3042 56 00000000G 00 9E 00002 MOVAB SYS$SETAST, R6 ; 55 00000000' EF 9E 00009 MOVAB EFN_LIST, R5 ; 54 EF59 CF 9E 00010 MOVAB CALL_DEBUG, R4 ; 5E 04 C2 00015 SUBL2 #4, SP ; 7E D4 00018 CLRL SIG_TO_RET ; 3056 04 AE D4 0001A CLRL AST_STATUS ; 6D 0075 CF DE 0001D MOVAL 10$, (FP) ; 7E D4 00022 CLRL -(SP) ; 66 01 FB 00024 CALLS #1, SYS$SETAST ; 09 50 D1 00027 CMPL R0, #9 ; 04 12 0002A BNEQ 1$ ; 04 AE 01 D0 0002C MOVL #1, AST_STATUS ; 05 FF1C C5 E8 00030 1$: BLBS IMAGE_LOADED, 2$ ; 3058 E9C0 C4 00 FB 00035 CALLS #0, LOAD_IMAGE ; 3060 01 6C 91 0003A 2$: CMPB (AP), #1 ; 3062 0A 13 0003D BEQL 3$ ; 7E 6C 9A 0003F MOVZBL (AP), -(SP) ; 3065 FF17 CF 9F 00042 PUSHAB P.ADA ; 64 02 FB 00046 CALLS #2, CALL_DEBUG ; 04 AC DD 00049 3$: PUSHL ADDR ; 3067 0144 D5 01 FB 0004C CALLS #1, @GET_EF_ADDR ; 53 50 D0 00051 MOVL R0, MY_STATUS ; 08 53 E8 00054 BLBS MY_STATUS, 4$ ; 3069 53 DD 00057 PUSHL MY_STATUS ; 3071 FF33 CF 9F 00059 PUSHAB P.ADB ; 0F 11 0005D BRB 5$ ; 52 04 BC D0 0005F 4$: MOVL @ADDR, MY_EFN ; 3074 3F 52 D1 00063 CMPL MY_EFN, #63 ; 3075 0B 1B 00066 BLEQU 6$ ; 52 DD 00068 PUSHL MY_EFN ; 3077 FF4C CF 9F 0006A PUSHAB P.ADC ; 64 02 FB 0006E 5$: CALLS #2, CALL_DEBUG ; 16 11 00071 BRB 8$ ; 50 6542 D0 00073 6$: MOVL EFN_LIST[MY_EFN], R0 ; 3080 0B 13 00077 BEQL 7$ ; 50 DD 00079 PUSHL R0 ; 3083 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 125 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (27) 52 DD 0007B PUSHL MY_EFN ; FF54 CF 9F 0007D PUSHAB P.ADD ; 64 03 FB 00081 CALLS #3, CALL_DEBUG ; 6542 18 AE D0 00084 7$: MOVL 16(FP), EFN_LIST[MY_EFN] ; 3084 05 04 AE E9 00089 8$: BLBC AST_STATUS, 9$ ; 3086 01 DD 0008D PUSHL #1 ; 66 01 FB 0008F CALLS #1, SYS$SETAST ; 50 53 D0 00092 9$: MOVL MY_STATUS, R0 ; 3090 04 00095 RET ; 0000 00096 10$: .WORD Save nothing ; 50 08 AC D0 00098 MOVL 8(AP), R0 ; 50 04 A0 D0 0009C MOVL 4(R0), R0 ; F8 A0 9F 000A0 PUSHAB SIG_TO_RET ; FC A0 9F 000A3 PUSHAB AST_STATUS ; 02 DD 000A6 PUSHL #2 ; 5E DD 000A8 PUSHL SP ; 7E 04 AC 7D 000AA MOVQ 4(AP), -(SP) ; D55E CF 03 FB 000AE CALLS #3, AST_REENABLE ; 04 000B3 RET ; ; Routine Size: 180 bytes, Routine Base: _FAKE_VM_CODE + 2ACF FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 126 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (28) ; 3094 1 ROUTINE fake_vm_free_ef (addr : REF VECTOR [1]) = ; 3095 2 BEGIN ; 3096 2 ; 3097 2 BUILTIN ; 3098 2 ACTUALCOUNT; ; 3099 2 ; 3100 2 LOCAL ; 3101 2 my_status, ; 3102 2 my_efn; ; 3103 2 ; 3104 2 $ast_disable (); ; 3105 2 ; 3106 2 IF NOT .image_loaded ; 3107 2 THEN ; 3108 2 load_image (); ; 3109 2 ; 3110 2 IF ACTUALCOUNT () NEQU 1 ; 3111 2 THEN ; P 3112 2 $call_debug_efn ('LIB$FREE_EF incorrect argument count: !UL', ; 3113 2 ACTUALCOUNT ()); ; 3114 2 ; 3115 2 my_efn = .addr [0]; ; 3116 2 ; 3117 2 my_status = (.free_ef_addr) (addr [0]); ; 3118 2 ; 3119 2 IF NOT .my_status ; 3120 2 THEN ; 3121 3 $call_debug_efn ('LIB$FREE_EF failed: Status = !XL', .my_status) ; 3122 2 ELSE ; 3123 2 IF .my_efn GEQU efn_vector ; 3124 2 THEN ; 3125 3 $call_debug_efn ('EFN too big: !UL', .my_efn) ; 3126 2 ELSE ; 3127 3 BEGIN ; 3128 3 IF .efn_list [.my_efn] EQLA 0 ; 3129 3 THEN ; 3130 3 $call_debug_efn ('EFN !UL not allocated', .my_efn); ; 3131 3 efn_list [.my_efn] = 0; ; 3132 2 END; ; 3133 2 ; 3134 2 $ast_enable; ; 3135 2 ; 3136 2 RETURN .my_status; ; 3137 2 ; 3138 1 END; 33 02B83 P.ADE: .BYTE 51 ; 20 2C 4D 56 5F 45 4B 41 46 25 02B84 .ASCII \%FAKE_VM, \ ; 63 6E 69 20 46 45 5F 45 45 52 46 24 42 49 4C 02B8E .ASCII \LIB$FREE_EF incorrect argument count: !U\ ; 74 6E 65 6D 75 67 72 61 20 74 63 65 72 72 6F 02B9D ; 55 21 20 3A 74 6E 75 6F 63 20 02BAC ; 4C 02BB6 .ASCII \L\ ; 2A 02BB7 P.ADF: .BYTE 42 ; 20 2C 4D 56 5F 45 4B 41 46 25 02BB8 .ASCII \%FAKE_VM, \ ; 69 61 66 20 46 45 5F 45 45 52 46 24 42 49 4C 02BC2 .ASCII \LIB$FREE_EF failed: Status = !XL\ ; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 127 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (28) 21 20 3D 20 73 75 74 61 74 53 20 3A 64 65 6C 02BD1 ; 4C 58 02BE0 ; 1A 02BE2 P.ADG: .BYTE 26 ; 20 2C 4D 56 5F 45 4B 41 46 25 02BE3 .ASCII \%FAKE_VM, \ ; 55 21 20 3A 67 69 62 20 6F 6F 74 20 4E 46 45 02BED .ASCII \EFN too big: !UL\ ; 4C 02BFC ; 1F 02BFD P.ADH: .BYTE 31 ; 20 2C 4D 56 5F 45 4B 41 46 25 02BFE .ASCII \%FAKE_VM, \ ; 6C 6C 61 20 74 6F 6E 20 4C 55 21 20 4E 46 45 02C08 .ASCII \EFN !UL not allocated\ ; 64 65 74 61 63 6F 02C17 ; 007C 00000 FAKE_VM_FREE_EF: .WORD Save R2,R3,R4,R5,R6 ; 3094 56 00000000G 00 9E 00002 MOVAB SYS$SETAST, R6 ; 55 00000000' EF 9E 00009 MOVAB EFN_LIST, R5 ; 54 EE0B CF 9E 00010 MOVAB CALL_DEBUG, R4 ; 5E 04 C2 00015 SUBL2 #4, SP ; 7E D4 00018 CLRL SIG_TO_RET ; 3104 04 AE D4 0001A CLRL AST_STATUS ; 6D 0070 CF DE 0001D MOVAL 10$, (FP) ; 7E D4 00022 CLRL -(SP) ; 66 01 FB 00024 CALLS #1, SYS$SETAST ; 09 50 D1 00027 CMPL R0, #9 ; 04 12 0002A BNEQ 1$ ; 04 AE 01 D0 0002C MOVL #1, AST_STATUS ; 05 FF1C C5 E8 00030 1$: BLBS IMAGE_LOADED, 2$ ; 3106 E9C0 C4 00 FB 00035 CALLS #0, LOAD_IMAGE ; 3108 01 6C 91 0003A 2$: CMPB (AP), #1 ; 3110 0A 13 0003D BEQL 3$ ; 7E 6C 9A 0003F MOVZBL (AP), -(SP) ; 3113 FF20 CF 9F 00042 PUSHAB P.ADE ; 64 02 FB 00046 CALLS #2, CALL_DEBUG ; 52 04 BC D0 00049 3$: MOVL @ADDR, MY_EFN ; 3115 04 AC DD 0004D PUSHL ADDR ; 3117 0150 D5 01 FB 00050 CALLS #1, @FREE_EF_ADDR ; 53 50 D0 00055 MOVL R0, MY_STATUS ; 08 53 E8 00058 BLBS MY_STATUS, 4$ ; 3119 53 DD 0005B PUSHL MY_STATUS ; 3121 FF39 CF 9F 0005D PUSHAB P.ADF ; 0B 11 00061 BRB 5$ ; 3F 52 D1 00063 4$: CMPL MY_EFN, #63 ; 3123 0B 1B 00066 BLEQU 6$ ; 52 DD 00068 PUSHL MY_EFN ; 3125 FF57 CF 9F 0006A PUSHAB P.ADG ; 64 02 FB 0006E 5$: CALLS #2, CALL_DEBUG ; 11 11 00071 BRB 8$ ; 6542 D5 00073 6$: TSTL EFN_LIST[MY_EFN] ; 3128 09 12 00076 BNEQ 7$ ; 52 DD 00078 PUSHL MY_EFN ; 3130 FF62 CF 9F 0007A PUSHAB P.ADH ; 64 02 FB 0007E CALLS #2, CALL_DEBUG ; 6542 D4 00081 7$: CLRL EFN_LIST[MY_EFN] ; 3131 05 04 AE E9 00084 8$: BLBC AST_STATUS, 9$ ; 3132 01 DD 00088 PUSHL #1 ; 66 01 FB 0008A CALLS #1, SYS$SETAST ; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 128 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (28) 50 53 D0 0008D 9$: MOVL MY_STATUS, R0 ; 3136 04 00090 RET ; 0000 00091 10$: .WORD Save nothing ; 50 08 AC D0 00093 MOVL 8(AP), R0 ; 50 04 A0 D0 00097 MOVL 4(R0), R0 ; F8 A0 9F 0009B PUSHAB SIG_TO_RET ; FC A0 9F 0009E PUSHAB AST_STATUS ; 02 DD 000A1 PUSHL #2 ; 5E DD 000A3 PUSHL SP ; 7E 04 AC 7D 000A5 MOVQ 4(AP), -(SP) ; D415 CF 03 FB 000A9 CALLS #3, AST_REENABLE ; 04 000AE RET ; ; Routine Size: 175 bytes, Routine Base: _FAKE_VM_CODE + 2C1D FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 129 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (29) ; 3140 1 ROUTINE fake_vm_malloc (size) = ; 3141 2 BEGIN ; 3142 2 ; 3143 2 BUILTIN ; 3144 2 ACTUALCOUNT; ; 3145 2 ; 3146 2 LOCAL ; 3147 2 my_size, ; 3148 2 my_addr : REF VECTOR [, BYTE], ; 3149 2 my_status; ; 3150 2 ; 3151 2 $ast_disable (); ; 3152 2 ; 3153 2 IF NOT .image_loaded ; 3154 2 THEN ; 3155 2 load_image (); ; 3156 2 ; 3157 2 IF ACTUALCOUNT () NEQU 1 ; 3158 2 THEN ; P 3159 2 $call_debug ('MALLOC incorrect argument count: !UL', ; 3160 2 ACTUALCOUNT ()); ; 3161 2 ; 3162 2 my_size = .size; ; 3163 2 ; 3164 2 my_status = fake_vm_get_vm (my_size, my_addr); ; 3165 2 ; 3166 2 IF NOT .my_status ; 3167 2 THEN ; 3168 3 BEGIN ; 3169 3 ; 3170 3 IF .c$$translate_addr NEQA 0 ; 3171 3 THEN ; 3172 3 (.c$$translate_addr) (.my_status); ; 3173 3 ; 3174 3 my_addr = 0; ; 3175 3 ; 3176 2 END; ; 3177 2 ; 3178 2 $ast_enable; ; 3179 2 ; 3180 2 RETURN my_addr [0]; ; 3181 2 ; 3182 1 END; 2E 02CCC P.ADI: .BYTE 46 ; 20 2C 4D 56 5F 45 4B 41 46 25 02CCD .ASCII \%FAKE_VM, \ ; 63 65 72 72 6F 63 6E 69 20 43 4F 4C 4C 41 4D 02CD7 .ASCII \MALLOC incorrect argument count: !UL\ ; 6E 75 6F 63 20 74 6E 65 6D 75 67 72 61 20 74 02CE6 ; 4C 55 21 20 3A 74 02CF5 ; 001C 00000 FAKE_VM_MALLOC: .WORD Save R2,R3,R4 ; 3140 54 00000000G 00 9E 00002 MOVAB SYS$SETAST, R4 ; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 130 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (29) 53 00000000' EF 9E 00009 MOVAB IMAGE_LOADED, R3 ; 52 D6ED CF 9E 00010 MOVAB LOAD_IMAGE, R2 ; 5E 10 C2 00015 SUBL2 #16, SP ; 08 AE 7C 00018 CLRQ SIG_TO_RET ; 3151 6D 0056 CF DE 0001B MOVAL 7$, (FP) ; 7E D4 00020 CLRL -(SP) ; 64 01 FB 00022 CALLS #1, SYS$SETAST ; 09 50 D1 00025 CMPL R0, #9 ; 04 12 00028 BNEQ 1$ ; 0C AE 01 D0 0002A MOVL #1, AST_STATUS ; 03 63 E8 0002E 1$: BLBS IMAGE_LOADED, 2$ ; 3153 62 00 FB 00031 CALLS #0, LOAD_IMAGE ; 3155 01 6C 91 00034 2$: CMPB (AP), #1 ; 3157 0F 13 00037 BEQL 3$ ; 00B8 C3 D6 00039 INCL ERRORS ; 3160 7E 6C 9A 0003D MOVZBL (AP), -(SP) ; 8E AF 9F 00040 PUSHAB P.ADI ; 1640 C2 02 FB 00043 CALLS #2, CALL_DEBUG ; 04 AE 04 AC D0 00048 3$: MOVL SIZE, MY_SIZE ; 3162 5E DD 0004D PUSHL SP ; 3164 08 AE 9F 0004F PUSHAB MY_SIZE ; 1944 C2 02 FB 00052 CALLS #2, FAKE_VM_GET_VM ; 0E 50 E8 00057 BLBS MY_STATUS, 5$ ; 3166 51 0240 C3 D0 0005A MOVL C$$TRANSLATE_ADDR, R1 ; 3170 05 13 0005F BEQL 4$ ; 50 DD 00061 PUSHL MY_STATUS ; 3172 61 01 FB 00063 CALLS #1, (R1) ; 6E D4 00066 4$: CLRL MY_ADDR ; 3174 05 0C AE E9 00068 5$: BLBC AST_STATUS, 6$ ; 3176 01 DD 0006C PUSHL #1 ; 64 01 FB 0006E CALLS #1, SYS$SETAST ; 50 6E D0 00071 6$: MOVL MY_ADDR, R0 ; 3180 04 00074 RET ; 0000 00075 7$: .WORD Save nothing ; 50 08 AC D0 00077 MOVL 8(AP), R0 ; 50 04 A0 D0 0007B MOVL 4(R0), R0 ; F8 A0 9F 0007F PUSHAB SIG_TO_RET ; FC A0 9F 00082 PUSHAB AST_STATUS ; 02 DD 00085 PUSHL #2 ; 5E DD 00087 PUSHL SP ; 7E 04 AC 7D 00089 MOVQ 4(AP), -(SP) ; D353 CF 03 FB 0008D CALLS #3, AST_REENABLE ; 04 00092 RET ; ; Routine Size: 147 bytes, Routine Base: _FAKE_VM_CODE + 2CFB FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 131 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (30) ; 3184 1 ROUTINE fake_vm_calloc (num1, num2) = ; 3185 2 BEGIN ; 3186 2 ; 3187 2 BUILTIN ; 3188 2 ACTUALCOUNT; ; 3189 2 ; 3190 2 LOCAL ; 3191 2 my_size, ; 3192 2 my_addr : REF VECTOR [, BYTE], ; 3193 2 my_status, ; 3194 2 my_ptr : REF VECTOR [, BYTE], ; 3195 2 fill_cnt; ; 3196 2 ; 3197 2 $ast_disable (); ; 3198 2 ; 3199 2 IF NOT .image_loaded ; 3200 2 THEN ; 3201 2 load_image (); ; 3202 2 ; 3203 2 IF ACTUALCOUNT () NEQU 2 ; 3204 2 THEN ; P 3205 2 $call_debug ('CALLOC incorrect argument count: !UL', ; 3206 2 ACTUALCOUNT ()); ; 3207 2 ; 3208 2 my_size = .num1 * .num2; ; 3209 2 ; 3210 2 my_status = fake_vm_get_vm (my_size, my_addr); ; 3211 2 ; 3212 2 IF .my_status ; 3213 2 THEN ; 3214 3 BEGIN ; 3215 3 ; 3216 3 my_ptr = my_addr [0]; ; 3217 3 ; 3218 3 WHILE 1 ; 3219 3 DO ; 3220 4 BEGIN ; 3221 4 ; 3222 4 fill_cnt = .my_size; ; 3223 4 IF .fill_cnt GTRU 65535 ; 3224 4 THEN ; 3225 4 fill_cnt = 65535; ; 3226 4 ; 3227 4 my_ptr = CH$FILL (0, .fill_cnt, my_ptr [0]); ; 3228 4 ; 3229 4 my_size = .my_size - .fill_cnt; ; 3230 4 IF .my_size EQLU 0 ; 3231 4 THEN ; 3232 4 EXITLOOP; ; 3233 4 ; 3234 3 END; ; 3235 3 ; 3236 3 END ; 3237 2 ELSE ; 3238 3 BEGIN ; 3239 3 ; 3240 3 IF .c$$translate_addr NEQA 0 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 132 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (30) ; 3241 3 THEN ; 3242 3 (.c$$translate_addr) (.my_status); ; 3243 3 ; 3244 3 my_addr = 0; ; 3245 3 ; 3246 2 END; ; 3247 2 ; 3248 2 $ast_enable; ; 3249 2 ; 3250 2 RETURN my_addr [0]; ; 3251 2 ; 3252 1 END; 2E 02D8E P.ADJ: .BYTE 46 ; 20 2C 4D 56 5F 45 4B 41 46 25 02D8F .ASCII \%FAKE_VM, \ ; 63 65 72 72 6F 63 6E 69 20 43 4F 4C 4C 41 43 02D99 .ASCII \CALLOC incorrect argument count: !UL\ ; 6E 75 6F 63 20 74 6E 65 6D 75 67 72 61 20 74 02DA8 ; 4C 55 21 20 3A 74 02DB7 ; 07FC 00000 FAKE_VM_CALLOC: .WORD Save R2,R3,R4,R5,R6,R7,R8,R9,R10 ; 3184 5A 00000000G 00 9E 00002 MOVAB SYS$SETAST, R10 ; 59 00000000' EF 9E 00009 MOVAB IMAGE_LOADED, R9 ; 58 D62B CF 9E 00010 MOVAB LOAD_IMAGE, R8 ; 5E 10 C2 00015 SUBL2 #16, SP ; 08 AE 7C 00018 CLRQ SIG_TO_RET ; 3197 6D 0082 CF DE 0001B MOVAL 10$, (FP) ; 7E D4 00020 CLRL -(SP) ; 6A 01 FB 00022 CALLS #1, SYS$SETAST ; 09 50 D1 00025 CMPL R0, #9 ; 04 12 00028 BNEQ 1$ ; 0C AE 01 D0 0002A MOVL #1, AST_STATUS ; 03 69 E8 0002E 1$: BLBS IMAGE_LOADED, 2$ ; 3199 68 00 FB 00031 CALLS #0, LOAD_IMAGE ; 3201 02 6C 91 00034 2$: CMPB (AP), #2 ; 3203 0F 13 00037 BEQL 3$ ; 00B8 C9 D6 00039 INCL ERRORS ; 3206 7E 6C 9A 0003D MOVZBL (AP), -(SP) ; 8E AF 9F 00040 PUSHAB P.ADJ ; 1640 C8 02 FB 00043 CALLS #2, CALL_DEBUG ; 04 AE 04 AC 08 AC C5 00048 3$: MULL3 NUM2, NUM1, MY_SIZE ; 3208 5E DD 0004F PUSHL SP ; 3210 08 AE 9F 00051 PUSHAB MY_SIZE ; 1944 C8 02 FB 00054 CALLS #2, FAKE_VM_GET_VM ; 2A 50 E9 00059 BLBC MY_STATUS, 6$ ; 3212 53 6E D0 0005C MOVL MY_ADDR, MY_PTR ; 3216 57 04 AE D0 0005F MOVL MY_SIZE, R7 ; 3222 56 57 D0 00063 4$: MOVL R7, FILL_CNT ; 0000FFFF 8F 56 D1 00066 CMPL FILL_CNT, #65535 ; 3223 05 1B 0006D BLEQU 5$ ; 56 FFFF 8F 3C 0006F MOVZWL #65535, FILL_CNT ; 3225 56 00 6E 00 2C 00074 5$: MOVC5 #0, (SP), #0, FILL_CNT, (MY_PTR) ; 3227 63 00079 ; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 133 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (30) 04 AE 56 C2 0007A SUBL2 FILL_CNT, MY_SIZE ; 3229 57 04 AE D0 0007E MOVL MY_SIZE, R7 ; 3230 DF 12 00082 BNEQ 4$ ; 0E 11 00084 BRB 8$ ; 3232 51 0240 C9 D0 00086 6$: MOVL C$$TRANSLATE_ADDR, R1 ; 3240 05 13 0008B BEQL 7$ ; 50 DD 0008D PUSHL MY_STATUS ; 3242 61 01 FB 0008F CALLS #1, (R1) ; 6E D4 00092 7$: CLRL MY_ADDR ; 3244 05 0C AE E9 00094 8$: BLBC AST_STATUS, 9$ ; 3246 01 DD 00098 PUSHL #1 ; 6A 01 FB 0009A CALLS #1, SYS$SETAST ; 50 6E D0 0009D 9$: MOVL MY_ADDR, R0 ; 3250 04 000A0 RET ; 0000 000A1 10$: .WORD Save nothing ; 50 08 AC D0 000A3 MOVL 8(AP), R0 ; 50 04 A0 D0 000A7 MOVL 4(R0), R0 ; F8 A0 9F 000AB PUSHAB SIG_TO_RET ; FC A0 9F 000AE PUSHAB AST_STATUS ; 02 DD 000B1 PUSHL #2 ; 5E DD 000B3 PUSHL SP ; 7E 04 AC 7D 000B5 MOVQ 4(AP), -(SP) ; D265 CF 03 FB 000B9 CALLS #3, AST_REENABLE ; 04 000BE RET ; ; Routine Size: 191 bytes, Routine Base: _FAKE_VM_CODE + 2DBD FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 134 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (31) ; 3254 1 ROUTINE fake_vm_realloc (addr : REF VECTOR [, BYTE], size) = ; 3255 2 BEGIN ; 3256 2 ; 3257 2 BUILTIN ; 3258 2 ACTUALCOUNT, ; 3259 2 FP; ; 3260 2 ; 3261 2 MAP ; 3262 2 FP : REF BLOCK [, BYTE]; ; 3263 2 ; 3264 2 LOCAL ; 3265 2 my_addr : REF VECTOR, ; 3266 2 my_size, ; 3267 2 my_status, ; 3268 2 my_alloc : REF VECTOR, ; 3269 2 delta, ; 3270 2 my_frame : REF BLOCK [, BYTE]; ; 3271 2 ; 3272 2 $ast_disable (); ; 3273 2 ; 3274 2 IF NOT .image_loaded ; 3275 2 THEN ; 3276 2 load_image (); ; 3277 2 ; 3278 2 IF ACTUALCOUNT () NEQU 2 ; 3279 2 THEN ; P 3280 2 $call_debug ('REALLOC incorrect argument count: !UL', ; 3281 2 ACTUALCOUNT ()); ; 3282 2 ; 3283 2 my_addr = addr [0]; ; 3284 2 IF my_addr [0] EQLA 0 ; 3285 2 THEN ; P 3286 2 $call_debug ('REALLOC with zero old address: Size = !XL', ; 3287 3 .size) ; 3288 2 ELSE ; 3289 3 BEGIN ; 3290 3 ; 3291 3 my_size = .my_addr [mem_siz - mem_dat]; ; 3292 3 ; 3293 3 my_status = find_in_active_list (.my_size, my_addr [0], my_alloc); ; 3294 3 CASE .my_status FROM err_min TO err_max OF ; 3295 3 SET ; 3296 3 ; 3297 3 [err_not_in_list] : ; 3298 4 BEGIN ; P 3299 4 $call_debug ( ; P 3300 4 'REALLOC not in active list: Size = !XL, Addr = !XL', ; P 3301 4 .my_size, ; 3302 4 my_addr [0]); ; 3303 4 my_addr = 0; ; 3304 3 END; ; 3305 3 ; 3306 3 [err_not_same_size] : ; 3307 4 BEGIN ; P 3308 4 $call_debug ( ; P 3309 4 'REALLOC not same size: Old = !XL, New = !XL, Addr = !XL', ; P 3310 4 .my_alloc [mem_siz], FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 135 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (31) ; P 3311 4 .my_size, ; 3312 4 my_addr [0]); ; 3313 4 my_addr = 0; ; 3314 3 END; ; 3315 3 ; 3316 3 [err_not_same_addr] : ; 3317 4 BEGIN ; P 3318 4 $call_debug ('REALLOC not same addr: Old = !XL, New = !XL', ; P 3319 4 my_alloc [mem_dat], ; 3320 4 my_addr [0]); ; 3321 4 my_addr = 0; ; 3322 3 END; ; 3323 3 ; 3324 3 [err_bad_leading] : ; P 3325 3 $call_debug ( ; P 3326 3 'REALLOC bad leading guards: Size = !XL, Addr = !XL', ; P 3327 3 .my_size, ; 3328 3 my_addr [0]); ; 3329 3 ; 3330 3 [err_bad_trailing] : ; P 3331 3 $call_debug ( ; P 3332 3 'REALLOC bad trailing guards: Size = !XL, Addr = !XL', ; P 3333 3 .my_size, ; 3334 3 my_addr [0]); ; 3335 3 ; 3336 3 [err_ok] : ; 3337 3 ; ; 3338 3 ; 3339 3 [INRANGE, OUTRANGE] : ; 3340 4 BEGIN ; P 3341 4 $call_debug ('REALLOC found bad active list: Status = !XL', ; 3342 4 .my_status); ; 3343 4 my_addr = 0; ; 3344 3 END; ; 3345 3 ; 3346 3 TES; ; 3347 3 ; 3348 3 IF my_addr [0] NEQA 0 ; 3349 3 THEN ; 3350 4 BEGIN ; 3351 4 ; 3352 4 delta = .my_size - .size; ; 3353 4 IF .delta GEQ 0 ; 3354 4 THEN ; 3355 5 BEGIN ; 3356 5 ; 3357 5 my_addr [mem_siz - mem_dat] = .size; ; 3358 5 ; 3359 5 my_frame = FP [0, 0, 0, 0]; ; 3360 6 IF (.my_frame [SF$L_SAVE_PC] GEQA fake_vm_malloc_opt) ; 3361 6 AND (.my_frame [SF$L_SAVE_PC] LSSA fake_vm_xmemory_dummy_free) ; 3362 5 THEN ; 3363 5 my_frame = .my_frame [SF$L_SAVE_FP]; ; 3364 5 ; 3365 6 INCR i FROM 0 TO (mem_pc9 - mem_pc1) ; 3366 5 DO ; 3367 6 BEGIN FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 136 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (31) ; 3368 6 LOCAL ; 3369 6 prev_pc; ; 3370 6 prev_pc = 0; ; 3371 6 IF my_frame [0, 0, 0, 0] NEQA 0 ; 3372 6 THEN ; 3373 7 BEGIN ; 3374 7 prev_pc = .my_frame [SF$L_SAVE_PC]; ; 3375 7 my_frame = .my_frame [SF$L_SAVE_FP]; ; 3376 6 END; ; 3377 6 my_addr [mem_pc1 + .i - mem_dat] = .prev_pc; ; 3378 5 END; ; 3379 5 ; 3380 5 IF .delta GTRU 65535 ; 3381 5 THEN ; 3382 5 delta = 65535; ; 3383 5 CH$FILL (-1, .delta, my_addr [0] + .size); ; 3384 5 ; 3385 5 $ast_enable; ; 3386 5 ; 3387 5 RETURN my_addr [0]; ; 3388 5 ; 3389 4 END; ; 3390 4 ; 3391 3 END; ; 3392 3 ; 3393 2 END; ; 3394 2 ; 3395 2 my_size = .size; ; 3396 2 ; 3397 2 my_status = fake_vm_get_vm (my_size, my_alloc); ; 3398 2 ; 3399 2 IF .my_status ; 3400 2 THEN ; 3401 3 BEGIN ; 3402 3 ; 3403 3 IF my_addr [0] NEQA 0 ; 3404 3 THEN ; 3405 4 BEGIN ; 3406 4 ; 3407 4 LOCAL ; 3408 4 move_src : REF VECTOR [, BYTE], ; 3409 4 move_dst : REF VECTOR [, BYTE], ; 3410 4 move_amt; ; 3411 4 ; 3412 4 move_src = my_addr [0]; ; 3413 4 move_dst = my_alloc [0]; ; 3414 4 move_amt = .my_addr [mem_siz - mem_dat]; ; 3415 4 ; 3416 4 WHILE 1 ; 3417 4 DO ; 3418 5 BEGIN ; 3419 5 ; 3420 5 LOCAL ; 3421 5 move_cnt; ; 3422 5 ; 3423 5 move_cnt = .move_amt; ; 3424 5 IF .move_cnt GTRU 65535 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 137 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (31) ; 3425 5 THEN ; 3426 5 move_cnt = 65535; ; 3427 5 ; 3428 5 move_dst = CH$MOVE (.move_cnt, move_src [0], move_dst [0]); ; 3429 5 move_src = move_src [.move_cnt]; ; 3430 5 ; 3431 5 move_amt = .move_amt - .move_cnt; ; 3432 5 IF .move_amt EQLU 0 ; 3433 5 THEN ; 3434 5 EXITLOOP; ; 3435 5 ; 3436 4 END; ; 3437 4 ; 3438 4 my_status = fake_vm_free_vm (my_addr [mem_siz - mem_dat], my_addr); ; 3439 4 ; 3440 4 IF NOT .my_status ; 3441 4 THEN ; P 3442 4 $call_debug ('REALLOC free of old failed: Status = !XL', ; 3443 4 .my_status); ; 3444 4 ; 3445 3 END; ; 3446 3 ; 3447 3 END ; 3448 2 ELSE ; 3449 3 BEGIN ; 3450 3 ; 3451 3 IF .c$$translate_addr NEQA 0 ; 3452 3 THEN ; 3453 3 (.c$$translate_addr) (.my_status); ; 3454 3 ; 3455 3 my_alloc = 0; ; 3456 3 ; 3457 2 END; ; 3458 2 ; 3459 2 $ast_enable; ; 3460 2 ; 3461 2 RETURN my_alloc [0]; ; 3462 2 ; 3463 1 END; 2F 02E7C P.ADK: .BYTE 47 ; 20 2C 4D 56 5F 45 4B 41 46 25 02E7D .ASCII \%FAKE_VM, \ ; 65 72 72 6F 63 6E 69 20 43 4F 4C 4C 41 45 52 02E87 .ASCII \REALLOC incorrect argument count: !UL\ ; 75 6F 63 20 74 6E 65 6D 75 67 72 61 20 74 63 02E96 ; 4C 55 21 20 3A 74 6E 02EA5 ; 33 02EAC P.ADL: .BYTE 51 ; 20 2C 4D 56 5F 45 4B 41 46 25 02EAD .ASCII \%FAKE_VM, \ ; 65 7A 20 68 74 69 77 20 43 4F 4C 4C 41 45 52 02EB7 .ASCII \REALLOC with zero old address: Size = !X\ ; 3A 73 73 65 72 64 64 61 20 64 6C 6F 20 6F 72 02EC6 ; 58 21 20 3D 20 65 7A 69 53 20 02ED5 ; 4C 02EDF .ASCII \L\ ; 3C 02EE0 P.ADM: .BYTE 60 ; 20 2C 4D 56 5F 45 4B 41 46 25 02EE1 .ASCII \%FAKE_VM, \ ; 20 6E 69 20 74 6F 6E 20 43 4F 4C 4C 41 45 52 02EEB .ASCII \REALLOC not in active list: Size = !XL, \ ; 69 53 20 3A 74 73 69 6C 20 65 76 69 74 63 61 02EFA ; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 138 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (31) 20 2C 4C 58 21 20 3D 20 65 7A 02F09 ; 4C 58 21 20 3D 20 72 64 64 41 02F13 .ASCII \Addr = !XL\ ; 41 02F1D P.ADN: .BYTE 65 ; 20 2C 4D 56 5F 45 4B 41 46 25 02F1E .ASCII \%FAKE_VM, \ ; 6D 61 73 20 74 6F 6E 20 43 4F 4C 4C 41 45 52 02F28 .ASCII \REALLOC not same size: Old = !XL, New = \ ; 21 20 3D 20 64 6C 4F 20 3A 65 7A 69 73 20 65 02F37 ; 20 3D 20 77 65 4E 20 2C 4C 58 02F46 ; 4C 58 21 20 3D 20 72 64 64 41 20 2C 4C 58 21 02F50 .ASCII \!XL, Addr = !XL\ ; 35 02F5F P.ADO: .BYTE 53 ; 20 2C 4D 56 5F 45 4B 41 46 25 02F60 .ASCII \%FAKE_VM, \ ; 6D 61 73 20 74 6F 6E 20 43 4F 4C 4C 41 45 52 02F6A .ASCII \REALLOC not same addr: Old = !XL, New = \ ; 21 20 3D 20 64 6C 4F 20 3A 72 64 64 61 20 65 02F79 ; 20 3D 20 77 65 4E 20 2C 4C 58 02F88 ; 4C 58 21 02F92 .ASCII \!XL\ ; 3C 02F95 P.ADP: .BYTE 60 ; 20 2C 4D 56 5F 45 4B 41 46 25 02F96 .ASCII \%FAKE_VM, \ ; 61 65 6C 20 64 61 62 20 43 4F 4C 4C 41 45 52 02FA0 .ASCII \REALLOC bad leading guards: Size = !XL, \ ; 69 53 20 3A 73 64 72 61 75 67 20 67 6E 69 64 02FAF ; 20 2C 4C 58 21 20 3D 20 65 7A 02FBE ; 4C 58 21 20 3D 20 72 64 64 41 02FC8 .ASCII \Addr = !XL\ ; 3D 02FD2 P.ADQ: .BYTE 61 ; 20 2C 4D 56 5F 45 4B 41 46 25 02FD3 .ASCII \%FAKE_VM, \ ; 61 72 74 20 64 61 62 20 43 4F 4C 4C 41 45 52 02FDD .ASCII \REALLOC bad trailing guards: Size = !XL,\ ; 53 20 3A 73 64 72 61 75 67 20 67 6E 69 6C 69 02FEC ; 2C 4C 58 21 20 3D 20 65 7A 69 02FFB ; 4C 58 21 20 3D 20 72 64 64 41 20 03005 .ASCII \ Addr = !XL\ ; 35 03010 P.ADR: .BYTE 53 ; 20 2C 4D 56 5F 45 4B 41 46 25 03011 .ASCII \%FAKE_VM, \ ; 62 20 64 6E 75 6F 66 20 43 4F 4C 4C 41 45 52 0301B .ASCII \REALLOC found bad active list: Status = \ ; 3A 74 73 69 6C 20 65 76 69 74 63 61 20 64 61 0302A ; 20 3D 20 73 75 74 61 74 53 20 03039 ; 4C 58 21 03043 .ASCII \!XL\ ; 32 03046 P.ADS: .BYTE 50 ; 20 2C 4D 56 5F 45 4B 41 46 25 03047 .ASCII \%FAKE_VM, \ ; 66 6F 20 65 65 72 66 20 43 4F 4C 4C 41 45 52 03051 .ASCII \REALLOC free of old failed: Status = !XL\ ; 74 53 20 3A 64 65 6C 69 61 66 20 64 6C 6F 20 03060 ; 4C 58 21 20 3D 20 73 75 74 61 0306F ; 0FFC 00000 FAKE_VM_REALLOC: .WORD Save R2,R3,R4,R5,R6,R7,R8,R9,R10,R11 ; 3254 5B E9BD CF 9E 00002 MOVAB CALL_DEBUG, R11 ; 5E 14 C2 00007 SUBL2 #20, SP ; 0C AE 7C 0000A CLRQ SIG_TO_RET ; 3272 6D 01EB CF DE 0000D MOVAL 27$, (FP) ; 7E D4 00012 CLRL -(SP) ; 00000000G 00 01 FB 00014 CALLS #1, SYS$SETAST ; 09 50 D1 0001B CMPL R0, #9 ; 04 12 0001E BNEQ 1$ ; 10 AE 01 D0 00020 MOVL #1, AST_STATUS ; 05 00000000' EF E8 00024 1$: BLBS IMAGE_LOADED, 2$ ; 3274 E9C0 CB 00 FB 0002B CALLS #0, LOAD_IMAGE ; 3276 02 6C 91 00030 2$: CMPB (AP), #2 ; 3278 10 13 00033 BEQL 3$ ; 00000000' EF D6 00035 INCL ERRORS ; 3281 7E 6C 9A 0003B MOVZBL (AP), -(SP) ; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 139 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (31) FDC1 CF 9F 0003E PUSHAB P.ADK ; 6B 02 FB 00042 CALLS #2, CALL_DEBUG ; 08 AE 04 AC D0 00045 3$: MOVL ADDR, MY_ADDR ; 3283 52 08 AE D0 0004A MOVL MY_ADDR, R2 ; 3284 13 12 0004E BNEQ 4$ ; 00000000' EF D6 00050 INCL ERRORS ; 3287 08 AC DD 00056 PUSHL SIZE ; FDD6 CF 9F 00059 PUSHAB P.ADL ; 6B 02 FB 0005D CALLS #2, CALL_DEBUG ; 0114 31 00060 BRW 20$ ; 04 AE CC A2 D0 00063 4$: MOVL -52(R2), MY_SIZE ; 3291 4004 8F BB 00068 PUSHR #^M ; 3293 53 0C AE D0 0006C MOVL MY_SIZE, R3 ; 53 DD 00070 PUSHL R3 ; F159 CB 03 FB 00072 CALLS #3, FIND_IN_ACTIVE_LIST ; 5A 50 D0 00077 MOVL R0, MY_STATUS ; 05 00 5A CF 0007A CASEL MY_STATUS, #0, #5 ; 3294 0064 0047 002D 001D 0007E 5$: .WORD 6$-5$,- ; 0085 0074 00086 7$-5$,- ; 8$-5$,- ; 11$-5$,- ; 12$-5$,- ; 14$-5$ ; 00000000' EF D6 0008A INCL ERRORS ; 3342 5A DD 00090 PUSHL MY_STATUS ; FF01 CF 9F 00092 PUSHAB P.ADR ; 6B 02 FB 00096 CALLS #2, CALL_DEBUG ; 42 11 00099 BRB 10$ ; 3343 00000000' EF D6 0009B 6$: INCL ERRORS ; 3302 52 DD 000A1 PUSHL R2 ; 53 DD 000A3 PUSHL R3 ; FDBE CF 9F 000A5 PUSHAB P.ADM ; 2F 11 000A9 BRB 9$ ; 00000000' EF D6 000AB 7$: INCL ERRORS ; 3312 52 DD 000B1 PUSHL R2 ; 53 DD 000B3 PUSHL R3 ; 50 08 AE D0 000B5 MOVL MY_ALLOC, R0 ; 0C A0 DD 000B9 PUSHL 12(R0) ; FDE4 CF 9F 000BC PUSHAB P.ADN ; 6B 04 FB 000C0 CALLS #4, CALL_DEBUG ; 18 11 000C3 BRB 10$ ; 3313 00000000' EF D6 000C5 8$: INCL ERRORS ; 3320 52 DD 000CB PUSHL R2 ; 7E 04 AE 00000040 8F C1 000CD ADDL3 #64, MY_ALLOC, -(SP) ; FE0C CF 9F 000D6 PUSHAB P.ADO ; 6B 03 FB 000DA 9$: CALLS #3, CALL_DEBUG ; 08 AE D4 000DD 10$: CLRL MY_ADDR ; 3321 21 11 000E0 BRB 14$ ; 00000000' EF D6 000E2 11$: INCL ERRORS ; 3328 52 DD 000E8 PUSHL R2 ; 53 DD 000EA PUSHL R3 ; FE2C CF 9F 000EC PUSHAB P.ADP ; 0E 11 000F0 BRB 13$ ; 00000000' EF D6 000F2 12$: INCL ERRORS ; 3334 52 DD 000F8 PUSHL R2 ; 53 DD 000FA PUSHL R3 ; FE59 CF 9F 000FC PUSHAB P.ADQ ; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 140 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (31) 6B 03 FB 00100 13$: CALLS #3, CALL_DEBUG ; 56 08 AE D0 00103 14$: MOVL MY_ADDR, R6 ; 3348 6E 13 00107 BEQL 20$ ; 52 53 08 AC C3 00109 SUBL3 SIZE, R3, DELTA ; 3352 67 19 0010E BLSS 20$ ; 3353 CC A6 08 AC D0 00110 MOVL SIZE, -52(R6) ; 3357 50 5D D0 00115 MOVL FP, MY_FRAME ; 3359 51 00000000V EF 9E 00118 MOVAB FAKE_VM_MALLOC_OPT, R1 ; 3360 51 10 A0 D1 0011F CMPL 16(MY_FRAME), R1 ; 11 1F 00123 BLSSU 15$ ; 51 00000000V EF 9E 00125 MOVAB FAKE_VM_XMEMORY_DUMMY_FREE, R1 ; 3361 51 10 A0 D1 0012C CMPL 16(MY_FRAME), R1 ; 04 1E 00130 BGEQU 15$ ; 50 0C A0 D0 00132 MOVL 12(MY_FRAME), MY_FRAME ; 3363 51 D4 00136 15$: CLRL I ; 3365 53 D4 00138 16$: CLRL PREV_PC ; 3370 50 D5 0013A TSTL MY_FRAME ; 3371 08 13 0013C BEQL 17$ ; 53 10 A0 D0 0013E MOVL 16(MY_FRAME), PREV_PC ; 3374 50 0C A0 D0 00142 MOVL 12(MY_FRAME), MY_FRAME ; 3375 D4 A641 53 D0 00146 17$: MOVL PREV_PC, -44(R6)[I] ; 3377 E9 51 08 F3 0014B AOBLEQ #8, I, 16$ ; 0000FFFF 8F 52 D1 0014F CMPL DELTA, #65535 ; 3380 05 1B 00156 BLEQU 18$ ; 52 FFFF 8F 3C 00158 MOVZWL #65535, DELTA ; 3382 52 FF 8F 6E 00 2C 0015D 18$: MOVC5 #0, (SP), #-1, DELTA, @SIZE[R6] ; 3383 08 BC46 00163 ; 09 10 AE E9 00166 BLBC AST_STATUS, 19$ ; 01 DD 0016A PUSHL #1 ; 00000000G 00 01 FB 0016C CALLS #1, SYS$SETAST ; 50 56 D0 00173 19$: MOVL R6, R0 ; 3387 04 00176 RET ; 04 AE 08 AC D0 00177 20$: MOVL SIZE, MY_SIZE ; 3395 5E DD 0017C PUSHL SP ; 3397 08 AE 9F 0017E PUSHAB MY_SIZE ; 0304 CB 02 FB 00181 CALLS #2, FAKE_VM_GET_VM ; 5A 50 D0 00186 MOVL R0, MY_STATUS ; 4F 5A E9 00189 BLBC MY_STATUS, 23$ ; 3399 56 08 AE D0 0018C MOVL MY_ADDR, R6 ; 3403 59 13 00190 BEQL 25$ ; 59 56 D0 00192 MOVL R6, MOVE_SRC ; 3412 53 6E D0 00195 MOVL MY_ALLOC, MOVE_DST ; 3413 58 CC A6 D0 00198 MOVL -52(R6), MOVE_AMT ; 3414 57 58 D0 0019C 21$: MOVL MOVE_AMT, MOVE_CNT ; 3423 0000FFFF 8F 57 D1 0019F CMPL MOVE_CNT, #65535 ; 3424 05 1B 001A6 BLEQU 22$ ; 57 FFFF 8F 3C 001A8 MOVZWL #65535, MOVE_CNT ; 3426 63 69 57 28 001AD 22$: MOVC3 MOVE_CNT, (MOVE_SRC), (MOVE_DST) ; 3428 59 57 C0 001B1 ADDL2 MOVE_CNT, MOVE_SRC ; 3429 58 57 C2 001B4 SUBL2 MOVE_CNT, MOVE_AMT ; 3431 E3 12 001B7 BNEQ 21$ ; 3432 08 AE 9F 001B9 PUSHAB MY_ADDR ; 3438 CC A6 9F 001BC PUSHAB -52(R6) ; 0892 CB 02 FB 001BF CALLS #2, FAKE_VM_FREE_VM ; 5A 50 D0 001C4 MOVL R0, MY_STATUS ; 21 5A E8 001C7 BLBS MY_STATUS, 25$ ; 3440 00000000' EF D6 001CA INCL ERRORS ; 3443 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 141 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (31) 5A DD 001D0 PUSHL MY_STATUS ; FDF7 CF 9F 001D2 PUSHAB P.ADS ; 6B 02 FB 001D6 CALLS #2, CALL_DEBUG ; 10 11 001D9 BRB 25$ ; 50 00000000' EF D0 001DB 23$: MOVL C$$TRANSLATE_ADDR, R0 ; 3451 05 13 001E2 BEQL 24$ ; 5A DD 001E4 PUSHL MY_STATUS ; 3453 60 01 FB 001E6 CALLS #1, (R0) ; 6E D4 001E9 24$: CLRL MY_ALLOC ; 3455 09 10 AE E9 001EB 25$: BLBC AST_STATUS, 26$ ; 3457 01 DD 001EF PUSHL #1 ; 00000000G 00 01 FB 001F1 CALLS #1, SYS$SETAST ; 50 6E D0 001F8 26$: MOVL MY_ALLOC, R0 ; 3461 04 001FB RET ; 0000 001FC 27$: .WORD Save nothing ; 50 08 AC D0 001FE MOVL 8(AP), R0 ; 50 04 A0 D0 00202 MOVL 4(R0), R0 ; F8 A0 9F 00206 PUSHAB SIG_TO_RET ; FC A0 9F 00209 PUSHAB AST_STATUS ; 02 DD 0020C PUSHL #2 ; 5E DD 0020E PUSHL SP ; 7E 04 AC 7D 00210 MOVQ 4(AP), -(SP) ; CE4E CF 03 FB 00214 CALLS #3, AST_REENABLE ; 04 00219 RET ; ; Routine Size: 538 bytes, Routine Base: _FAKE_VM_CODE + 3079 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 142 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (32) ; 3465 1 ROUTINE fake_vm_free (addr : REF VECTOR [, BYTE]) = ; 3466 2 BEGIN ; 3467 2 ; 3468 2 BUILTIN ; 3469 2 ACTUALCOUNT; ; 3470 2 ; 3471 2 LOCAL ; 3472 2 my_return, ; 3473 2 my_addr : REF VECTOR, ; 3474 2 my_size, ; 3475 2 my_status; ; 3476 2 ; 3477 2 $ast_disable (); ; 3478 2 ; 3479 2 IF NOT .image_loaded ; 3480 2 THEN ; 3481 2 load_image (); ; 3482 2 ; 3483 2 IF ACTUALCOUNT () NEQU 1 ; 3484 2 THEN ; P 3485 2 $call_debug ('FREE incorrect argument count: !UL', ; 3486 2 ACTUALCOUNT ()); ; 3487 2 ; 3488 2 my_return = 0; ; 3489 2 ; 3490 2 my_addr = addr [0]; ; 3491 2 IF my_addr [0] NEQA 0 ; 3492 2 THEN ; 3493 3 BEGIN ; 3494 3 ; 3495 3 my_size = .my_addr [mem_siz - mem_dat]; ; 3496 3 ; 3497 3 my_status = fake_vm_free_vm (my_size, my_addr); ; 3498 3 ; 3499 3 IF NOT .my_status ; 3500 3 THEN ; 3501 3 IF .my_status NEQU lib$_intlogerr ; 3502 3 THEN ; 3503 4 BEGIN ; 3504 4 ; 3505 4 IF .c$$translate_addr NEQA 0 ; 3506 4 THEN ; 3507 4 (.c$$translate_addr) (.my_status); ; 3508 4 ; 3509 4 my_return = -1; ; 3510 4 ; 3511 3 END; ; 3512 3 ; 3513 2 END; ; 3514 2 ; 3515 2 $ast_enable; ; 3516 2 ; 3517 2 RETURN .my_return; ; 3518 2 ; 3519 1 END; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 143 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (32) 2C 03293 P.ADT: .BYTE 44 ; 20 2C 4D 56 5F 45 4B 41 46 25 03294 .ASCII \%FAKE_VM, \ ; 20 74 63 65 72 72 6F 63 6E 69 20 45 45 52 46 0329E .ASCII \FREE incorrect argument count: !UL\ ; 3A 74 6E 75 6F 63 20 74 6E 65 6D 75 67 72 61 032AD ; 4C 55 21 20 032BC ; 003C 00000 FAKE_VM_FREE: .WORD Save R2,R3,R4,R5 ; 3465 55 00000000G 00 9E 00002 MOVAB SYS$SETAST, R5 ; 54 00000000' EF 9E 00009 MOVAB IMAGE_LOADED, R4 ; 53 D128 CF 9E 00010 MOVAB LOAD_IMAGE, R3 ; 5E 10 C2 00015 SUBL2 #16, SP ; 08 AE 7C 00018 CLRQ SIG_TO_RET ; 3477 6D 006B CF DE 0001B MOVAL 7$, (FP) ; 7E D4 00020 CLRL -(SP) ; 65 01 FB 00022 CALLS #1, SYS$SETAST ; 09 50 D1 00025 CMPL R0, #9 ; 04 12 00028 BNEQ 1$ ; 0C AE 01 D0 0002A MOVL #1, AST_STATUS ; 03 64 E8 0002E 1$: BLBS IMAGE_LOADED, 2$ ; 3479 63 00 FB 00031 CALLS #0, LOAD_IMAGE ; 3481 01 6C 91 00034 2$: CMPB (AP), #1 ; 3483 0F 13 00037 BEQL 3$ ; 00B8 C4 D6 00039 INCL ERRORS ; 3486 7E 6C 9A 0003D MOVZBL (AP), -(SP) ; 90 AF 9F 00040 PUSHAB P.ADT ; 1640 C3 02 FB 00043 CALLS #2, CALL_DEBUG ; 52 D4 00048 3$: CLRL MY_RETURN ; 3488 6E 04 AC D0 0004A MOVL ADDR, MY_ADDR ; 3490 50 6E D0 0004E MOVL MY_ADDR, R0 ; 3491 2A 13 00051 BEQL 5$ ; 04 AE CC A0 D0 00053 MOVL -52(R0), MY_SIZE ; 3495 5E DD 00058 PUSHL SP ; 3497 08 AE 9F 0005A PUSHAB MY_SIZE ; 1ED2 C3 02 FB 0005D CALLS #2, FAKE_VM_FREE_VM ; 18 50 E8 00062 BLBS MY_STATUS, 5$ ; 3499 00000000G 8F 50 D1 00065 CMPL MY_STATUS, #LIB$_INTLOGERR ; 3501 0F 13 0006C BEQL 5$ ; 51 0240 C4 D0 0006E MOVL C$$TRANSLATE_ADDR, R1 ; 3505 05 13 00073 BEQL 4$ ; 50 DD 00075 PUSHL MY_STATUS ; 3507 61 01 FB 00077 CALLS #1, (R1) ; 52 01 CE 0007A 4$: MNEGL #1, MY_RETURN ; 3509 05 0C AE E9 0007D 5$: BLBC AST_STATUS, 6$ ; 3513 01 DD 00081 PUSHL #1 ; 65 01 FB 00083 CALLS #1, SYS$SETAST ; 50 52 D0 00086 6$: MOVL MY_RETURN, R0 ; 3517 04 00089 RET ; 0000 0008A 7$: .WORD Save nothing ; 50 08 AC D0 0008C MOVL 8(AP), R0 ; 50 04 A0 D0 00090 MOVL 4(R0), R0 ; F8 A0 9F 00094 PUSHAB SIG_TO_RET ; FC A0 9F 00097 PUSHAB AST_STATUS ; 02 DD 0009A PUSHL #2 ; FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 144 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (32) 5E DD 0009C PUSHL SP ; 7E 04 AC 7D 0009E MOVQ 4(AP), -(SP) ; CD79 CF 03 FB 000A2 CALLS #3, AST_REENABLE ; 04 000A7 RET ; ; Routine Size: 168 bytes, Routine Base: _FAKE_VM_CODE + 32C0 ; 3520 1 ; 3521 1 ROUTINE fake_vm_dummy_free = RETURN 0; 0000 00000 FAKE_VM_DUMMY_FREE: .WORD Save nothing ; 3521 50 D4 00002 CLRL R0 ; 04 00004 RET ; ; Routine Size: 5 bytes, Routine Base: _FAKE_VM_CODE + 3368 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 145 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (33) ; 3523 1 ROUTINE fake_vm_malloc_opt = RETURN $call_same_args (fake_vm_malloc); 0000 00000 FAKE_VM_MALLOC_OPT: .WORD Save nothing ; 3523 F987 CF 6C FA 00002 CALLG (AP), FAKE_VM_MALLOC ; 04 00007 RET ; ; Routine Size: 8 bytes, Routine Base: _FAKE_VM_CODE + 336D ; 3524 1 ; 3525 1 ROUTINE fake_vm_calloc_opt = RETURN $call_same_args (fake_vm_calloc); 0000 00000 FAKE_VM_CALLOC_OPT: .WORD Save nothing ; 3525 FA41 CF 6C FA 00002 CALLG (AP), FAKE_VM_CALLOC ; 04 00007 RET ; ; Routine Size: 8 bytes, Routine Base: _FAKE_VM_CODE + 3375 ; 3526 1 ; 3527 1 ROUTINE fake_vm_realloc_opt = RETURN $call_same_args (fake_vm_realloc); 0000 00000 FAKE_VM_REALLOC_OPT: .WORD Save nothing ; 3527 FCF5 CF 6C FA 00002 CALLG (AP), FAKE_VM_REALLOC ; 04 00007 RET ; ; Routine Size: 8 bytes, Routine Base: _FAKE_VM_CODE + 337D ; 3528 1 ; 3529 1 ROUTINE fake_vm_free_opt = RETURN $call_same_args (fake_vm_free); 0000 00000 FAKE_VM_FREE_OPT: .WORD Save nothing ; 3529 FF34 CF 6C FA 00002 CALLG (AP), FAKE_VM_FREE ; 04 00007 RET ; ; Routine Size: 8 bytes, Routine Base: _FAKE_VM_CODE + 3385 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 146 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (33) ; 3530 1 ; 3531 1 ROUTINE fake_vm_dummy_free_opt = RETURN 0; 0000 00000 FAKE_VM_DUMMY_FREE_OPT: .WORD Save nothing ; 3531 50 D4 00002 CLRL R0 ; 04 00004 RET ; ; Routine Size: 5 bytes, Routine Base: _FAKE_VM_CODE + 338D FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 147 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (34) ; 3533 1 ROUTINE fake_vm_xmemory_malloc = RETURN $call_same_args (fake_vm_malloc); 0000 00000 FAKE_VM_XMEMORY_MALLOC: .WORD Save nothing ; 3533 F962 CF 6C FA 00002 CALLG (AP), FAKE_VM_MALLOC ; 04 00007 RET ; ; Routine Size: 8 bytes, Routine Base: _FAKE_VM_CODE + 3392 ; 3534 1 ; 3535 1 ROUTINE fake_vm_xmemory_calloc = RETURN $call_same_args (fake_vm_calloc); 0000 00000 FAKE_VM_XMEMORY_CALLOC: .WORD Save nothing ; 3535 FA1C CF 6C FA 00002 CALLG (AP), FAKE_VM_CALLOC ; 04 00007 RET ; ; Routine Size: 8 bytes, Routine Base: _FAKE_VM_CODE + 339A ; 3536 1 ; 3537 1 ROUTINE fake_vm_xmemory_realloc = RETURN $call_same_args (fake_vm_realloc); 0000 00000 FAKE_VM_XMEMORY_REALLOC: .WORD Save nothing ; 3537 FCD0 CF 6C FA 00002 CALLG (AP), FAKE_VM_REALLOC ; 04 00007 RET ; ; Routine Size: 8 bytes, Routine Base: _FAKE_VM_CODE + 33A2 ; 3538 1 ; 3539 1 ROUTINE fake_vm_xmemory_free = RETURN $call_same_args (fake_vm_free); 0000 00000 FAKE_VM_XMEMORY_FREE: .WORD Save nothing ; 3539 FF0F CF 6C FA 00002 CALLG (AP), FAKE_VM_FREE ; 04 00007 RET ; ; Routine Size: 8 bytes, Routine Base: _FAKE_VM_CODE + 33AA FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 148 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (34) ; 3540 1 ; 3541 1 ROUTINE fake_vm_xmemory_dummy_free = RETURN 0; 0000 00000 FAKE_VM_XMEMORY_DUMMY_FREE: .WORD Save nothing ; 3541 50 D4 00002 CLRL R0 ; 04 00004 RET ; ; Routine Size: 5 bytes, Routine Base: _FAKE_VM_CODE + 33B2 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 149 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (35) ; 3543 1 ROUTINE fake_vm_lib_malloc = RETURN $call_same_args (fake_vm_malloc); 0000 00000 FAKE_VM_LIB_MALLOC: .WORD Save nothing ; 3543 F93D CF 6C FA 00002 CALLG (AP), FAKE_VM_MALLOC ; 04 00007 RET ; ; Routine Size: 8 bytes, Routine Base: _FAKE_VM_CODE + 33B7 ; 3544 1 ; 3545 1 ROUTINE fake_vm_lib_calloc = RETURN $call_same_args (fake_vm_calloc); 0000 00000 FAKE_VM_LIB_CALLOC: .WORD Save nothing ; 3545 F9F7 CF 6C FA 00002 CALLG (AP), FAKE_VM_CALLOC ; 04 00007 RET ; ; Routine Size: 8 bytes, Routine Base: _FAKE_VM_CODE + 33BF ; 3546 1 ; 3547 1 ROUTINE fake_vm_lib_realloc = RETURN $call_same_args (fake_vm_realloc); 0000 00000 FAKE_VM_LIB_REALLOC: .WORD Save nothing ; 3547 FCAB CF 6C FA 00002 CALLG (AP), FAKE_VM_REALLOC ; 04 00007 RET ; ; Routine Size: 8 bytes, Routine Base: _FAKE_VM_CODE + 33C7 ; 3548 1 ; 3549 1 ROUTINE fake_vm_lib_free = RETURN $call_same_args (fake_vm_free); 0000 00000 FAKE_VM_LIB_FREE: .WORD Save nothing ; 3549 FEEA CF 6C FA 00002 CALLG (AP), FAKE_VM_FREE ; 04 00007 RET ; ; Routine Size: 8 bytes, Routine Base: _FAKE_VM_CODE + 33CF FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 150 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (35) ; 3550 1 ; 3551 1 ROUTINE fake_vm_lib_dummy_free = RETURN 0; 0000 00000 FAKE_VM_LIB_DUMMY_FREE: .WORD Save nothing ; 3551 50 D4 00002 CLRL R0 ; 04 00004 RET ; ; Routine Size: 5 bytes, Routine Base: _FAKE_VM_CODE + 33D7 ; 3552 1 ; 3553 1 END ; 3554 0 ELUDOM ; PSECT SUMMARY ; ; Name Bytes Attributes ; ; _FAKE_VM_DATA 1124 NOVEC, WRT, RD , EXE,NOSHR, LCL, REL, CON, PIC,ALIGN(3) ; _FAKE_VM_CODE 13276 NOVEC,NOWRT, RD , EXE, SHR, LCL, REL, CON, PIC,ALIGN(2) FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 151 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (35) Symbol Type Defined Referenced ... ----------------------------- -------- ----- ---------------- $ASSUME Macro Lib01 2057 $AST_DISABLE KeyWMacr 332 1170 1244 1463 1716 1963 2031 2308 2561 2871 2949 3011 3056 3104 3151 3197 3272 3477 $AST_ENABLE Macro 350 1175 1183 1249 1257 1707 1782 1813 1823 2013 2111 2335 2451 2531 2588 2744 2839 2855 2891 2914 2934 2969 2995 3036 3088 3134 3178 3248 3385 3459 3515 $CALL_DEBUG Macro 365 2339 2397 2402 2410 2444 2592 2648 2653 2661 2677 2685 2692 2698 2704 2716 2732 2849 2879 2888 2899 2906 2957 2966 3019 3159 3205 3280 3286 3299 3308 3318 3325 3331 3341 3442 3485 $CALL_DEBUG_EFN Macro 381 3064 3071 3077 3082 3112 3121 3125 3130 $CALL_DEBUG_HISTO Macro 373 2209 2260 $CALL_SAME_ARGS Macro 388 573 632 2336 2589 3523 3525 3527 3529 3533 3535 3537 3539 3543 3545 3547 3549 $CLOSE KeyWMacr Lib01 1705 2011 2109 $CONNECT KeyWMacr Lib01 1474 1972 2040 2132 $CREATE KeyWMacr Lib01 1473 1971 2039 2131 $CRETVA KeyWMacr Lib01 1150 1220 $DELTVA KeyWMacr Lib01 2835 $DISCONNECT KeyWMacr Lib01 1704 2010 2108 $DO_LOG Macro 358 2516 2773 $EXPREG KeyWMacr Lib01 2430 $FAB_DECL Macro Lib01 485 1406 1451 1959 2023 $FAB_INIT KeyWMacr Lib01 1419 $FAO Macro Lib01 1555 1568 1580 1612 1699 1859 1917 1943 2088 2100 $FAOL KeyWMacr Lib01 2142 2167 $FLUSH KeyWMacr Lib01 2150 $LOAD Macro 2292 2459 2460 2462 2476 2479 2480 2507 2508 2509 2510 $LOAD_DESC Macro 397 1538 1547 1552 1565 1577 1610 1656 1669 1673 1676 1688 1697 1857 1915 1941 1978 1987 1994 2003 2046 2086 2098 $PROMPT Macro 1761 1772 1773 $PUT KeyWMacr Lib01 1541 1563 1575 1587 1632 1659 1680 1691 1702 1855 1864 1920 1950 1981 1997 2049 2091 2103 2149 $RAB_DECL Macro Lib01 486 1407 1452 1832 1960 2024 $RAB_INIT KeyWMacr Lib01 1429 $RMS_BITFLD_INI Macro Lib01 1427 1427 1427 1427 1427 1430 $RMS_BITS Macro Lib01 1427 1427 1427 1427 1427 1427 $RMS_CODFLD_INI Macro Lib01 1427 1427 1430 $RMS_OR Macro Lib01 1427 1427 1427 $RMS_PTR Unbound 1430 1430 Bind 1427 1427= 1427= 1427a 1427a 1427a 1427a 1427a 1427a 1427a 1427a 1427a 1427a Bind 1430 1430= 1430= 1430a 1430a $RMS_VALFLD_INI Unbound 1430 1430 Macro Lib01 1427 1427 1427 1427 1427 1427 1427 1427 1427 1427 1427 1427 1427 1427 1427 1427 1427 1427 1427 1427 1427 1427 1430 1430 1430 1430 1430 1430 1430 1430 1430 1430 1430 1430 1430 1430 1430 $SETAST Unbound 345 354 KeyWMacr Lib01 568 1170 1175 1183 1244 1249 1257 1463 1707 1716 1782 1813 1823 1963 2013 2031 2111 2308 2335 2451 2531 2561 2588 2744 2839 2855 2871 2891 2914 2934 2949 2969 2995 3011 3036 3056 3088 3104 3134 3151 3178 3197 3248 3272 3385 3459 3477 3515 $SETPRT KeyWMacr Lib01 1166 1240 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 152 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (35) Symbol Type Defined Referenced ... ----------------------------- -------- ----- ---------------- $STOP_IF Macro 404 1150 1166 1220 1240 1473 1474 1541 1555 1563 1568 1575 1580 1587 1612 1632 1659 1680 1691 1699 1702 1704 1705 1754 1855 1859 1864 1917 1920 1943 1950 1971 1972 1981 1997 2010 2011 2039 2040 2049 2088 2091 2100 2103 2108 2109 2131 2132 2142 2149 2150 2167 2173 2177 2430 2835 ACTIVE_LIST Own 487 751= 751a 752= 752a 1280a 1342a 1504a 1733. 1734 1738. 2512a ACTUALCOUNT Builtin 1438 1478 1490 Builtin 2284 2314 2318 2322 2340 Builtin 2546 2567 2571 2575 2593 Builtin 2866 2877 2880 Builtin 2944 2955 2958 Builtin 3006 3017 3020 Builtin 3046 3062 3065 Builtin 3098 3110 3113 Builtin 3144 3157 3160 Builtin 3188 3203 3206 Builtin 3258 3278 3281 Builtin 3469 3483 3486 ADDR RoutForm 1330 1354. 1356. 1362. Local 1454 1477= 1489= 1516. 1520. 1525. 1526. 1670. 1674. RoutForm 2279 2449@= 2484@= RoutForm 2538 2671@. 2680@. 2689@. 2695@. 2701@. 2707@. 2722@. 2786@. RoutForm 2862 2889. 2897@. 2900. 2902@. 2907. 2909. 2920@= 2921@= 2923@a 2929@= 2930@= RoutForm 2940 2962@. 2967. 2975@. 2982@. 2984@a 2992@= 2993@= RoutForm 3002 3028@a RoutForm 3042 3067. 3074@. RoutForm 3094 3115@. 3117. RoutForm 3254 3283. RoutForm 3465 3490. ADD_TO_HISTOGRAM Routine 2182 252f 2482c ANSWER Local 1766 1769= 1770= 1775a 1775a 1786. 1788. 1797. 1802. 1803. AP Unbound 391 393 Builtin 573 573. Builtin 632 632. Builtin 1478 1478@. Builtin 1490 1490@. Builtin 2314 2314@. Builtin 2318 2318@. Builtin 2322 2322@. Builtin 2336 2336. Builtin 2340 2340@. Builtin 2567 2567@. Builtin 2571 2571@. Builtin 2575 2575@. Builtin 2589 2589. Builtin 2593 2593@. Builtin 2877 2877@. Builtin 2880 2880@. Builtin 2955 2955@. Builtin 2958 2958@. Builtin 3017 3017@. Builtin 3020 3020@. Builtin 3062 3062@. Builtin 3065 3065@. Builtin 3110 3110@. FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 153 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (35) Symbol Type Defined Referenced ... ----------------------------- -------- ----- ---------------- Builtin 3113 3113@. Builtin 3157 3157@. Builtin 3160 3160@. Builtin 3203 3203@. Builtin 3206 3206@. Builtin 3278 3278@. Builtin 3281 3281@. Builtin 3483 3483@. Builtin 3486 3486@. Builtin 3523 3523. Builtin 3525 3525. Builtin 3527 3527. Builtin 3529 3529. Builtin 3533 3533. Builtin 3535 3535. Builtin 3537 3537. Builtin 3539 3539. Builtin 3543 3543. Builtin 3545 3545. Builtin 3547 3547. Builtin 3549 3549. AST_REENABLE Unbound 338 Routine 556 238f 1170h 1244h 1463h 1716h 1963h 2031h 2308h 2561h 2871h 2949h 3011h 3056h 3104h 3151h 3197h 3272h 3477h AST_STATUS Unbound 334 338 347 352 Local 1170 1170a 1170= 1175. 1183. Local 1244 1244a 1244= 1249. 1257. Local 1463 1463a 1463= 1707. Local 1716 1716a 1716= 1782. 1813. 1823. Local 1963 1963a 1963= 2013. Local 2031 2031a 2031= 2111. Local 2308 2308a 2308= 2335. 2451. 2531. Local 2561 2561a 2561= 2588. 2744. 2839. 2855. Local 2871 2871a 2871= 2891. 2914. 2934. Local 2949 2949a 2949= 2969. 2995. Local 3011 3011a 3011= 3036. Local 3056 3056a 3056= 3088. Local 3104 3104a 3104= 3134. Local 3151 3151a 3151= 3178. Local 3197 3197a 3197= 3248. Local 3272 3272a 3272= 3385. 3459. Local 3477 3477a 3477= 3515. BLNK Local 1622 1624= 1625= 1625. 1625. 1626. BUCKET Local 1849 1875= 1886. 1890. 1898. 1908. 1913= 1926. 1947. 1947. 1952= 1952. BUFF Local 1456 1500a 1554 1567 1579 1611 1698 Local 1843 1851a 1858 1868 1916 1942 Local 2029 2084a 2087 2099 Local 2121 2136 2137a BUFFER Local 1765 1769 1770a 1789. 1790. 1798. 1799. 1804. C$$TRANSLATE ExtRout 297 590 C$$TRANSLATE_ADDR Own 503 829a 3170. 3172@c 3240. 3242@c 3451. 3453@c 3505. 3507@c C$$TRANSLATE_EXIT Own 503 827a C$$TRANSLATE_XFER Own 503 828a CALLG Unbound 392 393 Builtin 573 573 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 154 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (35) Symbol Type Defined Referenced ... ----------------------------- -------- ----- ---------------- Builtin 632 632 Builtin 2336 2336 Builtin 2589 2589 Builtin 3523 3523 Builtin 3525 3525 Builtin 3527 3527 Builtin 3529 3529 Builtin 3533 3533 Builtin 3535 3535 Builtin 3537 3537 Builtin 3539 3539 Builtin 3543 3543 Builtin 3545 3545 Builtin 3547 3547 Builtin 3549 3549 CALLOC ExtRout 299 593 CALLOC_ADDR Own 507 842a 1020. CALLOC_EXIT Own 507 840a 1018. CALLOC_OPT_ADDR Own 514 873a 1045. CALLOC_OPT_EXIT Own 514 871a 1043. CALLOC_OPT_XFER Own 514 872a 1044. CALLOC_XFER Own 507 841a 1019. CALL_DEBUG Unbound 368 376 383 Routine 2154 251f 2210c 2261c 2340c 2399c 2404c 2412c 2447c 2593c 2650c 2655c 2663c 2680c 2689c 2695c 2701c 2707c 2722c 2734c 2853c 2880c 2889c 2900c 2907c 2958c 2967c 3020c 3065c 3071c 3077c 3083c 3113c 3121c 3125c 3130c 3160c 3206c 3281c 3287c 3302c 3312c 3320c 3328c 3334c 3342c 3443c 3486c CALL_NAME_SIZE Literal 532 543 554 2447 2529 2680 2689 2695 2701 2707 2722 2722 2734 2786 2853 CFREE ExtRout 302 596 CFREE_ADDR Own 510 860a 1035. CFREE_EXIT Own 510 858a 1033. CFREE_OPT_ADDR Own 517 891a 1060. CFREE_OPT_EXIT Own 517 889a 1058. CFREE_OPT_XFER Own 517 890a 1059. CFREE_XFER Own 510 859a 1034. CHECK_ACTIVE_LIST Routine 1263 243f 1469c 1722c 2392c 2643c CHF$L_SIG_NAME Macro Lib01 561 563 CNT RoutForm 3001 3024@. CONTINUE Label 2543 2669 2726 COPY_LEN Local 2199 2214= 2215. 2225. 2231= 2231. 2232. CURR Local 1269 1281= 1287= 1287@. 1288. 1294. 1296@. 1297@. 1302@= 1302@. 1308. 1308@. 1309@. 1314@= 1314@. Local 1335 1343= 1349= 1349@. 1350. 1354. 1356. 1356@. 1360. 1362. 1366@. 1370@= 1371@. 1376@= 1377@. 1384@. 1385@. 1389@= 1389@. 1393. 1393@. 1394@. 1398@= 1398@. Local 1459 1505= 1511= 1511@. 1512. 1521@. 1525. 1526. 1526@. 1549@. 1560@. 1560@. 1560@a 1560@. 1572@. 1572@. 1572@. 1572@. 1584@. 1584@. 1584@. 1584@. 1598@a 1599@. 1615@a Local 1732 1733= 1734. 1738. 1739@. DATA Local 1594 1598= 1615@. 1615@. 1615@. 1615@. 1615. 1615. 1638= 1638@a DELTA Local 3269 3352= 3353. 3380. 3382= 3383. DESC MacrForm 397 399 400 Local 1455 1500= 1554= 1560a 1560a 1561. 1562. 1567= 1572a 1572a 1573. 1574. FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 155 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (35) Symbol Type Defined Referenced ... ----------------------------- -------- ----- ---------------- 1579= 1584a 1584a 1585. 1586. 1611= 1615a 1615a 1626@= 1630. 1631. 1698= 1699a 1699a 1700. 1701. Local 1842 1851= 1858= 1861a 1861a 1862. 1863. 1916= 1917a 1917a 1918. 1919. 1942= 1947a 1947a 1948. 1949. Local 2028 2084= 2087= 2088a 2088a 2089. 2090. 2099= 2100a 2100a 2101. 2102. Local 2122 2136= 2137= 2145a 2145a 2147. 2148. Local 2158 2161= 2162= 2170a 2170a 2171. 2173a DISABLED Own 479 744= 745. 746. 747. 748. 959. 1652. 1974. DIVISOR Local 1846 1871= 1872. 1927. 1928. DIVISOR2 Local 1847 1872= 1931. DNM RoutForm 1408 1427@a 1427@. DO_HISTOGRAM Routine 1832 1988c 2004c DO_LOG Unbound 360 Routine 2117 250f 2529c 2786c DO_REPLACE Local 1125 1134= 1142= 1154. DSC$A_POINTER Macro Lib01 2902 2923 2930 2975 2984 2993 DSC$B_CLASS Macro Lib01 2897 2921 2962 DSC$K_CLASS_D Literal Lib01 2897 2921 2962 DSC$W_LENGTH Macro Lib01 2920 2929 2982 2992 EFNS Local 2026 2055= 2056= 2070m 2071= 2078m 2079. 2088. 2088. EFN_DISABLED Own 481 746= 994. 2042. EFN_LIST Own 491 774 774= 2095. 2100. 3080. 3083. 3084= 3128. 3131= EFN_VECTOR Literal 457 491 2057 2061 2074 2093 3075 3123 ENBFLG Unbound 345 354 ERRORS Unbound 367 367 Own 488 754= 1699. 1726. 2340= 2340. 2399= 2399. 2404= 2404. 2412= 2412. 2447= 2447. 2593= 2593. 2650= 2650. 2655= 2655. 2663= 2663. 2680= 2680. 2689= 2689. 2695= 2695. 2701= 2701. 2707= 2707. 2722= 2722. 2734= 2734. 2853= 2853. 2880= 2880. 2889= 2889. 2900= 2900. 2907= 2907. 2958= 2958. 2967= 2967. 3020= 3020. 3160= 3160. 3206= 3206. 3281= 3281. 3287= 3287. 3302= 3302. 3312= 3312. 3320= 3320. 3328= 3328. 3334= 3334. 3342= 3342. 3443= 3443. 3486= 3486. ERRS Local 1461 1549= 1550. 1560. ERR_BAD_LEADING Literal 438 1301 1390 2396 2647 2697 3324 ERR_BAD_TRAILING Literal 439 1313 1399 2401 2652 2703 3330 ERR_MAX Literal 441 2393 2644 2672 3294 ERR_MIN Literal 434 2393 2644 2672 3294 ERR_NOT_IN_LIST Literal 435 1352 2675 3297 ERR_NOT_SAME_ADDR Literal 437 1378 2691 3316 ERR_NOT_SAME_SIZE Literal 436 1372 2684 3306 ERR_OK Literal 440 1278 1402 1722 2406 2657 2709 3336 EXIT_ADDR RoutForm 615 674@= 722@= RoutForm 1118 1135. 1164@= RoutForm 1193 EXIT_INTERCEPT Routine 1117 1181a EXIT_VEC_C$$TRANSLATE Routine 590 826a EXIT_VEC_CALLOC Routine 593 839a EXIT_VEC_CALLOC_OPT Routine 599 870a EXIT_VEC_CFREE Routine 596 857a EXIT_VEC_CFREE_OPT Routine 602 888a EXIT_VEC_FREE Routine 595 851a EXIT_VEC_FREE_EF Routine 588 812a EXIT_VEC_FREE_OPT Routine 601 882a EXIT_VEC_FREE_VM Routine 583 782a EXIT_VEC_GET_EF Routine 587 806a FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 156 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (35) Symbol Type Defined Referenced ... ----------------------------- -------- ----- ---------------- EXIT_VEC_GET_VM Routine 582 776a EXIT_VEC_LIB_CALLOC Routine 610 933a EXIT_VEC_LIB_FREE Routine 612 945a EXIT_VEC_LIB_MALLOC Routine 609 927a EXIT_VEC_LIB_REALLOC Routine 611 939a EXIT_VEC_MALLOC Routine 592 833a EXIT_VEC_MALLOC_OPT Routine 598 864a EXIT_VEC_REALLOC Routine 594 845a EXIT_VEC_REALLOC_OPT Routine 600 876a EXIT_VEC_ROUT RoutForm 614 678@. 683@. 688@. 693@. 694@. 710@. 714. 714@. 721. 721@. EXIT_VEC_SFREE1_DD Routine 585 794a EXIT_VEC_SFREEN_DD Routine 586 800a EXIT_VEC_SGET1_DD Routine 584 788a EXIT_VEC_XMEMORY_CALLOC Routine 605 908a EXIT_VEC_XMEMORY_FREE Routine 607 920a EXIT_VEC_XMEMORY_MALLOC Routine 604 902a EXIT_VEC_XMEMORY_REALLOC Routine 606 914a FAB RoutForm 1406 1427. 1430. Local 1451 1471a 1473a 1705a Local 1959 1969a 1971a 2011a Local 2023 2037a 2039a 2109a FAB$B_BID Macro Lib01 1427 FAB$B_BKS Macro Lib01 1427 FAB$B_BLN Macro Lib01 1427 FAB$B_DNS Macro Lib01 1427 FAB$B_FAC Macro Lib01 1427 FAB$B_FNS Macro Lib01 1427 FAB$B_FSZ Macro Lib01 1427 FAB$B_JOURNAL Macro Lib01 1427 FAB$B_ORG Macro Lib01 1427 FAB$B_RAT Macro Lib01 1427 FAB$B_RFM Macro Lib01 1427 FAB$B_RTV Macro Lib01 1427 FAB$B_RU_FACILITY Macro Lib01 1427 FAB$B_SHR Macro Lib01 1427 FAB$C_BID Literal Lib01 1427 FAB$C_BLN Literal Lib01 485 1406 1427 1427 1451 1959 2023 FAB$C_SEQ Literal Lib01 1427 FAB$C_VAR Literal Lib01 1427 FAB$L_ALQ Macro Lib01 1427 FAB$L_CTX Macro Lib01 1427 FAB$L_DNA Macro Lib01 1427 FAB$L_FNA Macro Lib01 1427 FAB$L_FOP Macro Lib01 1427 FAB$L_MRN Macro Lib01 1427 FAB$L_NAM Macro Lib01 1427 FAB$L_XAB Macro Lib01 1427 FAB$M_CR Literal Lib01 1427 FAB$M_GET Literal Lib01 1427 FAB$M_SQO Literal Lib01 1427 FAB$V_CHAN_MODE Macro Lib01 1427 FAB$V_FILE_MODE Macro Lib01 1427 FAB$V_LNM_MODE Macro Lib01 1427 FAB$W_BLS Macro Lib01 1427 FAB$W_DEQ Macro Lib01 1427 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 157 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (35) Symbol Type Defined Referenced ... ----------------------------- -------- ----- ---------------- FAB$W_GBC Macro Lib01 1427 FAB$W_IFI Macro Lib01 2125 FAB$W_MRS Macro Lib01 1427 FAKE_VM GlobRout 1434 246f 1808c FAKE_VM_CALLOC Routine 3184 261f 1021a 3525a 3535a 3545a FAKE_VM_CALLOC_OPT Routine 3525 266f 1046a FAKE_VM_CHECK_ACTIVE_LIST Global 472 472= 2388. 2639. FAKE_VM_DISABLE ExtLit 319 461a FAKE_VM_DUMMY_FREE Routine 3521 264f 2355 2606 FAKE_VM_DUMMY_FREE_OPT Routine 3531 269f 2361 2612 FAKE_VM_EFN GlobRout 2019 249f FAKE_VM_EFN_DISABLE ExtLit 321 463a FAKE_VM_EFN_OFF Global 463 463= 746. FAKE_VM_FREE Routine 3465 263f 1031a 1036a 3529a 3539a 3549a FAKE_VM_FREE_EF Routine 3094 259f 1006a FAKE_VM_FREE_OPT Routine 3529 268f 1056a 1061a FAKE_VM_FREE_VM Routine 2537 254f 972a 2984c 3438c 3497c FAKE_VM_GET_EF Routine 3042 258f 1001a FAKE_VM_GET_VM Routine 2278 253f 967a 2923c 3164c 3210c 3397c FAKE_VM_HISTOGRAM GlobRout 1829 248f FAKE_VM_HISTOGRAM_WIDTH Global 473 473= 1866. FAKE_VM_INTERCEPT_EXIT_VECTOR GlobRout 1114 241f FAKE_VM_INTERCEPT_XFER_VECTOR GlobRout 1189 242f FAKE_VM_LIB_CALLOC Routine 3545 276f 1098a FAKE_VM_LIB_DUMMY_FREE Routine 3551 279f 2378 2629 FAKE_VM_LIB_FREE Routine 3549 278f 1108a FAKE_VM_LIB_MALLOC Routine 3543 275f 1093a 2377 2628 FAKE_VM_LIB_REALLOC Routine 3547 277f 1103a FAKE_VM_LOG Global 460 460= 2514. 2756. FAKE_VM_LOG_ENABLE ExtLit 318 460a FAKE_VM_MALLOC Routine 3140 260f 1016a 2354 2605 3523a 3533a 3543a FAKE_VM_MALLOC_OPT Routine 3523 265f 1041a 2360 2611 3360 FAKE_VM_MEMORY_BUCKET_DEFAULT ExtLit 327 469a FAKE_VM_MEMORY_BUCKET_SIZE Global 469 469= 758. FAKE_VM_MESSAGE Global 475 2161 2162a 2171= FAKE_VM_OFF Global 461 461= 744. FAKE_VM_OUTPUT Global 474 1414a 1796= 1802= 1805= 1809= FAKE_VM_REALLOC Routine 3254 262f 1026a 3527a 3537a 3547a FAKE_VM_REALLOC_OPT Routine 3527 267f 1051a FAKE_VM_REAL_FREE_DISABLE ExtLit 326 468a FAKE_VM_REAL_FREE_OFF Global 468 468= 749. FAKE_VM_REPORT GlobRout 1713 247f FAKE_VM_SFREE1_DD Routine 2940 256f 986a 2346 2597 2909c 3028c FAKE_VM_SFREEN_DD Routine 3001 257f 991a 2598 FAKE_VM_SGET1_DD Routine 2861 255f 981a 2345 FAKE_VM_STOP Global 471 471= 2175. FAKE_VM_STRING_BUCKET_DEFAULT ExtLit 328 470a FAKE_VM_STRING_BUCKET_SIZE Global 470 470= 767. FAKE_VM_STRING_DISABLE ExtLit 320 462a FAKE_VM_STRING_OFF Global 462 462= 745. FAKE_VM_VAXCRTL_DISABLE ExtLit 324 466a FAKE_VM_VAXCRTL_LOAD Global 464 464= 822. FAKE_VM_VAXCRTL_OFF Global 466 466= 747. FAKE_VM_VAXCRTL_REQUEST ExtLit 322 464a FAKE_VM_XLIBSHR_DISABLE ExtLit 325 467a FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 158 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (35) Symbol Type Defined Referenced ... ----------------------------- -------- ----- ---------------- FAKE_VM_XLIBSHR_LOAD Global 465 465= 898. FAKE_VM_XLIBSHR_OFF Global 467 467= 748. FAKE_VM_XLIBSHR_REQUEST ExtLit 323 465a FAKE_VM_XMEMORY_CALLOC Routine 3535 271f 1076a FAKE_VM_XMEMORY_DUMMY_FREE Routine 3541 274f 2369 2620 3361 FAKE_VM_XMEMORY_FREE Routine 3539 273f 1086a FAKE_VM_XMEMORY_MALLOC Routine 3533 270f 1071a 2368 2619 FAKE_VM_XMEMORY_REALLOC Routine 3537 272f 1081a FAOD Local 1460 1538= 1538= 1539. 1540. 1548= 1548= 1553= 1553= 1560a 1566= 1566= 1572a 1578= 1578= 1584a 1610= 1610= 1615a 1656= 1656= 1657. 1658. 1669= 1669= 1673= 1673= 1676= 1676= 1678. 1679. 1688= 1688= 1689. 1690. 1697= 1697= 1699a Local 1844 1857= 1857= 1861a 1915= 1915= 1917a 1941= 1941= 1947a Local 2025 2046= 2046= 2047. 2048. 2086= 2086= 2088a 2098= 2098= 2100a Local 2123 2139= 2140= 2145a Local 2159 2164= 2165= 2170a FILL_CNT Local 2491 2493= 2494. 2496= 2498. 2500. Local 2797 2805= 2806. 2808= 2810. 2812. Local 3195 3222= 3223. 3225= 3227. 3229. FILL_LEN Local 2796 2799= 2805. 2812= 2812. 2813. FIND_ADDR Routine 622 700c FIND_IMAGE_SYMBOL Routine 628 647c FIND_IN_ACTIVE_LIST Routine 1330 244f 2671c 3293c FLAG Local 1453 1476= 1482= 1486= 1493= 1496= 1589. 1634. FLAG_OR_ADDR RoutForm 1434 1480. 1484. 1489. FNM Local 1412 1414= 1415@. 1417= 1427@a 1427@. FOUND RoutForm 1263 1274. 1276@= 1292. 1294@= 1303. 1315. 1322. 1324@= RoutForm 1330 1340@= 1360@= FP Builtin 2285 Map 2289 2344. Builtin 2547 Map 2551 2596. Builtin 3047 Map 3050 3084@. Builtin 3259 Map 3262 3359. FREE ExtRout 301 595 FREE_ADDR Own 509 854a 1030. FREE_CALL_NAME Bind 546 2680a 2689a 2695a 2701a 2707a 2722a 2734a 2786a 2853a FREE_EF_ADDR Own 500 815a 1005. 2064@c 2081@c 3117@c FREE_EF_EXIT Own 500 813a 1003. FREE_EF_XFER Own 500 814a 1004. FREE_EXIT Own 509 852a 1028. FREE_OPT_ADDR Own 516 885a 1055. FREE_OPT_EXIT Own 516 883a 1053. FREE_OPT_XFER Own 516 884a 1054. FREE_VM_ADDR Own 495 785a 971. 2257@c 2589. 2845@c FREE_VM_EXIT Own 495 783a 969. FREE_VM_XFER Own 495 784a 970. FREE_XFER Own 509 853a 1029. FUDGE Literal 1839 1871 1926 GET_CALL_NAME Bind 535 2447a 2529a 2722a GET_EF_ADDR Own 499 809a 1000. 2059@c 3067@c GET_EF_EXIT Own 499 807a 998. GET_EF_XFER Own 499 808a 999. FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 159 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (35) Symbol Type Defined Referenced ... ----------------------------- -------- ----- ---------------- GET_VM_ADDR Own 494 779a 966. 2205@c 2336. 2438@c GET_VM_EXIT Own 494 777a 964. GET_VM_XFER Own 494 778a 965. HALF Local 1883 1929= 1933= 1947. HEAD Local 1457 1502= 1534. 1543= 1665. RoutForm 1833 1853@. 1854@. Local 1961 1978= 1978= 1979. 1980. 1987= 1987= 1988a 1994= 1994= 1995. 1996. 2003= 2003= 2004a HISTO Local 1848 1874= 1890@. 1903@. 1926@. 1947@. Local 2187 2269= 2270@= 2270@. 2272@. 2274@. HISTOGRAM_WIDTH_DEFAULT Literal 446 473 1870 HISTO_BIGGEST Literal 452 762 771 1871 2272 2274 HISTO_BUCKET Literal 451 758 759 761 767 768 770 1861 2189 HISTO_ERRORS Unbound 375 375 Literal 453 763 772 1861 2210 2210 2261 2261 HISTO_GRAM Literal 449 756 765 1874 2217 2253 2257 2264 2269 HISTO_SIZE Literal 450 757 766 1861 1886 2191 2214 2256 2265 HISTO_VECTOR Literal 454 489 490 I Local 2075 2079. 2081a Local 2094 2095. 2100. 2100. Local 2465 Local 2760 2771. Local 3025 3028. Local 3366 3377. IMAGE Local 636 641= 642= 647a IMAGE_LOADED Own 478 478= 952= 1172. 1246. 1465. 1718. 1965. 2033. 2310. 2563. 2873. 2951. 3013. 3058. 3106. 3153. 3199. 3274. 3479. IMAGE_TO_LOAD RoutForm 618 698. 700. RoutForm 622 641@. 642@a Local 742 819= 824= 830. 837. 843. 849. 855. 861. 868. 874. 880. 886. 892. 895= 900= 906. 912. 918. 924. INADR Local 1128 1148= 1149= 1150a 1166a Local 1202 1218= 1219= 1220a 1240a Local 2830 2832= 2833= 2833. 2835a INDEX Local 2186 2189= 2191. 2204. 2265. 2270. 2270. 2272. 2274. INSQUE Builtin 2286 2512 INTERCEPT_ROUT RoutForm 956 963@c 968@c 977@c 982@c 987@c 997@c 1002@c 1012@c 1017@c 1022@c 1027@c 1032@c 1037@c 1042@c 1047@c 1052@c 1057@c 1067@c 1072@c 1077@c 1082@c 1089@c 1094@c 1099@c 1104@c LEN Local 2224 2225= 2226. 2228= 2229. 2230. 2231. Local 2241 2242= 2243. 2245= 2246. 2247. LIB$FIND_IMAGE_SYMBOL ExtRout 282 632a LIB$FREE_EF ExtRout 283 588 LIB$FREE_VM ExtRout 284 583 LIB$GET_EF ExtRout 285 587 LIB$GET_INPUT ExtRout 286 1775c LIB$GET_VM ExtRout 287 582 LIB$PUT_OUTPUT ExtRout 288 1754c 2173c LIB$SFREE1_DD ExtRout 289 585 LIB$SFREEN_DD ExtRout 290 586 LIB$SGET1_DD ExtRout 291 584 LIB$SIGNAL ExtRout 293 1792c 2178c LIB$SIG_TO_RET ExtRout 292 573a 631h 1272h 1338h LIB$STOP Unbound 411 ExtRout 294 659c 666c 680c 685c 712c 730c 737c 1150c 1166c 1220c 1240c FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 160 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (35) Symbol Type Defined Referenced ... ----------------------------- -------- ----- ---------------- 1473c 1474c 1541c 1560c 1563c 1572c 1575c 1584c 1587c 1615c 1632c 1659c 1680c 1691c 1699c 1702c 1704c 1705c 1754c 1855c 1861c 1864c 1917c 1920c 1947c 1950c 1971c 1972c 1981c 1997c 2010c 2011c 2039c 2040c 2049c 2088c 2091c 2100c 2103c 2108c 2109c 2131c 2132c 2145c 2149c 2150c 2170c 2173c 2178c 2430c 2835c LIB$VM_CALLOC ExtRout 313 610 LIB$VM_FREE ExtRout 315 612 LIB$VM_MALLOC ExtRout 312 609 LIB$VM_REALLOC ExtRout 314 611 LIB$_INTLOGERR ExtLit 329 659a 666a 680a 685a 712a 730a 737a 1176 1250 2748 2893 2971 2986 3501 LIB_CALLOC_ADDR Own 527 936a 1097. LIB_CALLOC_EXIT Own 527 934a 1095. LIB_CALLOC_XFER Own 527 935a 1096. LIB_FREE_ADDR Own 529 948a 1107. LIB_FREE_EXIT Own 529 946a 1105. LIB_FREE_XFER Own 529 947a 1106. LIB_MALLOC_ADDR Own 526 930a 1092. LIB_MALLOC_EXIT Own 526 928a 1090. LIB_MALLOC_XFER Own 526 929a 1091. LIB_REALLOC_ADDR Own 528 942a 1102. LIB_REALLOC_EXIT Own 528 940a 1100. LIB_REALLOC_XFER Own 528 941a 1101. LOAD_FAB_RAB Routine 1406 245f 1471c 1969c 2037c 2129c LOAD_IMAGE Routine 579 239f 1179c 1253c 1467c 1720c 1967c 2035c 2312c 2565c 2875c 2953c 3015c 3060c 3108c 3155c 3201c 3276c 3481c LOG_FAB Own 485 2125. 2129a 2131a LOG_RAB Own 486 2129a 2132a 2147= 2148= 2149a 2150a MALLOC ExtRout 298 592 MALLOC_ADDR Own 506 836a 1015. MALLOC_EXIT Own 506 834a 1013. MALLOC_OPT_ADDR Own 513 867a 1040. MALLOC_OPT_EXIT Own 513 865a 1038. MALLOC_OPT_XFER Own 513 866a 1039. MALLOC_XFER Own 506 835a 1014. MCH_VEC RoutForm 557 MEMORY_BUCKET_DEFAULT Literal 444 761 MEMORY_HISTO Own 489 756= 757= 758= 759. 761= 762= 763= 1988a 2342a MEM_ALC Literal 417 1356 1526 2457 2789 MEM_BLK Literal 416 MEM_DAT Literal 431 1308 1362 1393 1560 1598 1615 2399 2404 2419 2529 2650 2655 2695 3291 3320 3357 3377 3414 3438 3495 MEM_FLK Literal 415 1287 1349 1511 MEM_LG1 Literal 429 1296 1384 MEM_LG2 Literal 430 MEM_PC1 Literal 420 1560 1739 2464 2529 2759 2771 2786 3365 3377 MEM_PC2 Literal 421 1572 2529 2786 MEM_PC3 Literal 422 1572 2529 2786 MEM_PC4 Literal 423 1572 2529 2786 MEM_PC5 Literal 424 1572 2529 2786 MEM_PC6 Literal 425 1584 2529 2786 MEM_PC7 Literal 426 1584 2529 2786 MEM_PC8 Literal 427 1584 2529 2786 MEM_PC9 Literal 428 1584 2464 2529 2759 2786 3365 MEM_SIZ Literal 418 1308 1366 1393 1560 1599 2399 2404 2529 2650 2655 2689 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 161 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (35) Symbol Type Defined Referenced ... ----------------------------- -------- ----- ---------------- 3291 3312 3357 3414 3438 3495 MEM_TYP Literal 419 1302 1302 1314 1314 1370 1371 1376 1377 1389 1389 1398 1398 1521 1549 1560 2711 2714 2715 2722 2724 2742 MEM_TYPES Bind 1441 1560a MORE_FLAG RoutForm 1434 1494. MOVE_AMT Local 3410 3414= 3423. 3431= 3431. 3432. MOVE_CNT Local 3421 3423= 3424. 3426= 3428. 3429. 3431. MOVE_DST Local 3409 3413= 3428= 3428@= MOVE_SRC Local 3408 3412= 3428@. 3429= 3429@a MY_ADDR Local 2303 2392a 2399@. 2399@a 2404@. 2404@a 2412. 2420= 2432= 2438a 2457@a 2512. 2529@. 2529@a 2529@. 2529@. 2529@. 2529@. 2529@. 2529@. 2529@. 2529@. 2529@. Local 2557 2643a 2650@. 2650@a 2655@. 2655@a 2663. 2671a 2681= 2689@. 2695@a 2711@. 2714@= 2715@. 2722@. 2724@. 2735= 2740. 2742@= 2754. 2832. 2845a 2853. Local 3148 3164a 3174= 3180. Local 3192 3210a 3216. 3244= 3250. Local 3265 3283= 3284. 3291@. 3293. 3302. 3303= 3312. 3313= 3320. 3321= 3328. 3334. 3343= 3348. 3357@= 3377@= 3383. 3387. 3403. 3412. 3414@. 3438@a 3438a Local 3473 3490= 3491. 3495@. 3497a MY_ALLOC Local 3268 3293a 3312@. 3320@a 3397a 3413. 3455= 3461. MY_ASIZE Local 2305 2419= 2430. 2438a 2447. 2459. MY_EFN Local 3054 3074= 3075. 3077. 3080. 3083. 3083. 3084. Local 3102 3115= 3123. 3125. 3128. 3130. 3131. MY_FRAME Local 2301 2344= 2345@. 2346@. 2351= 2351@. 2354@. 2355@. 2359= 2359@. 2360@. 2361@. 2365= 2365@. 2368@. 2369@. 2374= 2374@. 2377@. 2378@. 2384= 2384@. 2470. 2473@. 2474= 2474@. Local 2555 2596= 2597@. 2598@. 2602= 2602@. 2605@. 2606@. 2610= 2610@. 2611@. 2612@. 2616= 2616@. 2619@. 2620@. 2625= 2625@. 2628@. 2629@. 2635= 2635@. 2765. 2768@. 2769= 2769@. Local 3270 3359= 3360@. 3361@. 3363= 3363@. 3371. 3374@. 3375= 3375@. MY_PTR Unbound 2294 2295 2295 Local 2306 2457= 2459@= 2459= 2459@a 2460@= 2460= 2460@a 2462@= 2462= 2462@a 2476@= 2476= 2476@a 2479@= 2479= 2479@a 2480@= 2480= 2480@a 2484. 2498= 2498@= 2507@= 2507= 2507@a 2508@= 2508= 2508@a 2509@= 2509= 2509@a 2510@= 2510= 2510@a Local 2558 2754= 2771@= 2786@. 2786@. 2786@. 2786@. 2786@. 2786@. 2786@. 2786@. 2786@. 2789@. 2810= 2810@= Local 3194 3216= 3227= 3227@= MY_RETURN Local 3472 3488= 3509= 3517. MY_ROOT Local 2299 2342= 2349= 2482. MY_SIZE Local 2304 2418= 2419. 2460. 2482. 2493. 2500= 2500. 2501. Local 2559 2789= 2799. 2833. 2845a 2853. Local 2980 2982= 2984a Local 3147 3162= 3164a Local 3191 3208= 3210a 3222. 3229= 3229. 3230. Local 3266 3291= 3293. 3302. 3312. 3328. 3334. 3352. 3395= 3397a Local 3474 3495= 3497a MY_STATUS Local 2302 2392= 2393. 2412. 2434= 2438= 2440. 2447. 2453. 2533. Local 2556 2643= 2644. 2663. 2671= 2672. 2734. 2845= 2847. 2853. 2857. Local 2869 2882= 2909= 2911. 2915. 2923= 2925. 2936. Local 2947 2960= 2984= 2986. 2988= 2997. Local 3009 3022= 3028= 3030. 3038. Local 3053 3067= 3069. 3071. 3090. Local 3101 3117= 3119. 3121. 3136. Local 3149 3164= 3166. 3172. FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 162 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (35) Symbol Type Defined Referenced ... ----------------------------- -------- ----- ---------------- Local 3193 3210= 3212. 3242. Local 3267 3293= 3294. 3342. 3397= 3399. 3438= 3440. 3443. 3453. Local 3475 3497= 3499. 3501. 3507. MY_TYPE Local 2300 2343= 2350= 2350. 2358= 2364= 2364. 2372= 2372. 2373= 2373. 2381= 2381. 2382= 2382. 2383= 2383. 2447. 2462. 2529. Local 2554 2595= 2601= 2601. 2609= 2615= 2615. 2623= 2623. 2624= 2624. 2632= 2632. 2633= 2633. 2634= 2634. 2680. 2689. 2695. 2701. 2707. 2711. 2722. 2727= 2734. 2746. 2786. 2853. NAME RoutForm 619 701. RoutForm 623 644@. 645@a NEW_ADDR RoutForm 1121 1160. 1164. RoutForm 1196 1230. 1235@. 1236@a NEW_BUCKET Local 1895 1898= 1902= 1902. 1903. 1908. 1913. NEW_LEN Local 2196 2204= 2205a 2215. 2256= 2257a NEW_MEM Local 2197 2205a 2218. 2264. NEW_PTR Local 2202 2218= 2229= 2229@= 2246= 2246@= NMBR Local 1596 1605= 1608= 1615. 1617. 1624. 1639. NUM1 RoutForm 3184 3208. NUM2 RoutForm 3184 3208. OLD_BASE Local 1126 1135= 1136. 1143= 1146@. 1148. 1149. 1152@= Local 1200 1208= 1211= 1212. 1216@. 1218. 1219. 1222@= OLD_PTR Local 2201 2217= 2229@. 2230= 2230. OVERHEAD Literal 1838 1866 1868 1870 PARAMS RoutForm 2117 2145a RoutForm 2154 2170a PREV_PC Local 2468 2469= 2473= 2476. Local 2763 2764= 2768= 2771. Local 3369 3370= 3374= 3377. PROMPT Local 1749 1751= 1752= 1754a 1772= 1773= 1775a PRT$C_UR Literal Lib01 1166 1240 RAB RoutForm 1407 1430. Local 1452 1471a 1474a 1539= 1540= 1541a 1561= 1562= 1563a 1573= 1574= 1575a 1585= 1586= 1587a 1630= 1631= 1632a 1657= 1658= 1659a 1678= 1679= 1680a 1689= 1690= 1691a 1700= 1701= 1702a 1704a RoutForm 1832 1853@= 1854@= 1855. 1862@= 1863@= 1864. 1918@= 1919@= 1920. 1948@= 1949@= 1950. Local 1960 1969a 1972a 1979= 1980= 1981a 1988a 1995= 1996= 1997a 2004a 2010a Local 2024 2037a 2040a 2047= 2048= 2049a 2089= 2090= 2091a 2101= 2102= 2103a 2108a RAB$B_BID Macro Lib01 1430 RAB$B_BLN Macro Lib01 1430 RAB$B_KRF Macro Lib01 1430 RAB$B_KSZ Unbound 1430 RAB$B_MBC Macro Lib01 1430 RAB$B_MBF Macro Lib01 1430 RAB$B_RAC Macro Lib01 1430 RAB$B_TMO Macro Lib01 1430 RAB$C_BID Literal Lib01 1430 RAB$C_BLN Literal Lib01 486 1407 1430 1430 1452 1832 1960 2024 RAB$L_BKT Macro Lib01 1430 RAB$L_CTX Macro Lib01 1430 RAB$L_FAB Macro Lib01 1430 RAB$L_KBF Unbound 1430 RAB$L_RBF Macro Lib01 1430 1540 1562 1574 1586 1631 1658 1679 1690 1701 1854 1863 1919 1949 1980 1996 2048 2090 2102 2148 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 163 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (35) Symbol Type Defined Referenced ... ----------------------------- -------- ----- ---------------- RAB$L_RHB Macro Lib01 1430 RAB$L_ROP Macro Lib01 1430 RAB$L_UBF Macro Lib01 1430 RAB$L_XAB Macro Lib01 1430 RAB$W_RSZ Macro Lib01 1430 1539 1561 1573 1585 1630 1657 1678 1689 1700 1853 1862 1918 1948 1979 1995 2047 2089 2101 2147 RAB$W_USZ Macro Lib01 1430 REALLOC ExtRout 300 594 REALLOC_ADDR Own 508 848a 1025. REALLOC_EXIT Own 508 846a 1023. REALLOC_OPT_ADDR Own 515 879a 1050. REALLOC_OPT_EXIT Own 515 877a 1048. REALLOC_OPT_XFER Own 515 878a 1049. REALLOC_XFER Own 508 847a 1024. REAL_ADDR Routine 614 776c 782c 788c 794c 800c 806c 812c 826c 833c 839c 845c 851c 857c 864c 870c 876c 882c 888c 902c 908c 914c 920c 927c 933c 939c 945c RoutForm 1120 1130. 1143. 1157@= 1158@= 1159@= 1160@= 1161@= RoutForm 1195 1204. 1211. 1227@= 1228@= 1229@= 1230@= 1231@= REAL_FREE_DISABLED Own 484 749= 2422. 2423. 2791. 2821. 2825. REMAINDER Local 1881 1926= 1927. 1928= 1928. 1931. 1937. REMQUE Builtin 2548 2754 REPLACE RoutForm 1117 1139. RoutForm 1192 1209. 1224. RETADR Local 2428 2430a 2432. RMS$_EOF Literal Lib01 1776 ROOT Unbound 375 375 Local 1268 1280= 1281. 1288. Local 1334 1342= 1343. 1350. Local 1458 1504= 1505. 1512. RoutForm 1834 1861@. 1861@. 1861@. 1871@. 1874@. 1886@. 1947@. RoutForm 2182 2189@. 2191@. 2210@= 2210@. 2214@. 2217@. 2253@. 2256@. 2257. 2261@= 2261@. 2264@= 2265@= 2269@. 2272@. 2274@= ROUT Local 639 661= 662. 664@. Local 671 714= 715. 732= 733. 735@. ROUT_ADDR RoutForm 617 676@= 703. 715@= 733@= RoutForm 625 662@= SAVE_PAGES Local 1127 1146 1146= 1149 1152 1152. Local 1201 1216 1216= 1219 1222 1222. SDL$STARLET_CONCAT Macro Lib01 568 1150 1166 1170 1175 1183 1220 1240 1244 1249 1257 1463 1473 1474 1541 1563 1575 1587 1632 1659 1680 1691 1702 1704 1705 1707 1716 1782 1813 1823 1855 1864 1920 1950 1963 1971 1972 1981 1997 2010 2011 2013 2031 2039 2040 2049 2091 2103 2108 2109 2111 2131 2132 2145 2149 2150 2170 2308 2335 2430 2451 2531 2561 2588 2744 2835 2839 2855 2871 2891 2914 2934 2949 2969 2995 3011 3036 3056 3088 3104 3134 3151 3178 3197 3248 3272 3385 3459 3477 3515 SDL$STARLET_OPT Macro Lib01 1473 1474 1541 1563 1575 1587 1632 1659 1680 1691 1702 1704 1705 1855 1864 1920 1950 1971 1972 1981 1997 2010 2011 2039 2040 2049 2091 2103 2108 2109 2131 2132 2149 2150 SDL$STARLET_REQ Macro Lib01 568 1150 1166 1166 1170 1175 1183 1220 1240 1240 1244 1249 1257 1463 1473 1474 1541 1563 1575 1587 1632 1659 1680 1691 1702 1704 1705 1707 1716 1782 1813 1823 1855 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 164 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (35) Symbol Type Defined Referenced ... ----------------------------- -------- ----- ---------------- 1864 1920 1950 1963 1971 1972 1981 1997 2010 2011 2013 2031 2039 2040 2049 2091 2103 2108 2109 2111 2131 2132 2145 2145 2145 2149 2150 2170 2170 2170 2308 2335 2430 2451 2531 2561 2588 2744 2835 2839 2855 2871 2891 2914 2934 2949 2969 2995 3011 3036 3056 3088 3104 3134 3151 3178 3197 3248 3272 3385 3459 3477 3515 SET_INTERCEPT Routine 956 240f 1181c 1255c SF$L_SAVE_FP Macro Lib01 2351 2359 2365 2374 2384 2474 2602 2610 2616 2625 2635 2769 3363 3375 SF$L_SAVE_PC Macro Lib01 2345 2346 2354 2355 2360 2361 2368 2369 2377 2378 2473 2597 2598 2605 2606 2611 2612 2619 2620 2628 2629 2768 3084 3360 3361 3374 SFREE1_DD_ADDR Own 497 797a 985. SFREE1_DD_EXIT Own 497 795a 983. SFREE1_DD_XFER Own 497 796a 984. SFREEN_DD_ADDR Own 498 803a 990. SFREEN_DD_EXIT Own 498 801a 988. SFREEN_DD_XFER Own 498 802a 989. SGET1_DD_ADDR Own 496 791a 980. SGET1_DD_EXIT Own 496 789a 978. SGET1_DD_XFER Own 496 790a 979. SIG_TO_RET Unbound 335 338 342 342 1170 1244 2308 2561 2871 2949 3011 3056 3104 3151 3197 3272 3477 Local 1170 1170a Local 1244 1244a Local 1463 1463a 1463= Local 1716 1716a 1716= Local 1963 1963a 1963= Local 2031 2031a 2031= Local 2308 2308a Local 2561 2561a Local 2871 2871a Local 2949 2949a Local 3011 3011a Local 3056 3056a Local 3104 3104a Local 3151 3151a Local 3197 3197a Local 3272 3272a Local 3477 3477a SIG_VEC RoutForm 556 561@. 563@. SIZE RoutForm 1330 1366. Local 1595 1599= 1606. 1608. 1639= 1639. 1640. RoutForm 2182 2189. RoutForm 2278 2418@. RoutForm 2537 2671@. 2680@. 2689@. 2701@. 2707@. 2722@. 2786@. RoutForm 2861 2884@. 2889@. 2920@. 2923. RoutForm 3140 3162. RoutForm 3254 3287. 3352. 3357. 3383. 3395. SKIPPED Local 1896 1908= 1909. 1917. SMALL Local 1884 1930= 1939= 1947. SOME_EFN Local 2027 2059a 2061. 2064a 2071. SS$_DEBUG Literal Lib01 561 1792 2178 SS$_RESIGNAL Literal Lib01 575 SS$_UNWIND Literal Lib01 563 FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 165 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (35) Symbol Type Defined Referenced ... ----------------------------- -------- ----- ---------------- SS$_WASSET Unbound 345 Literal Lib01 1170 1244 1463 1716 1963 2031 2308 2561 2871 2949 3011 3056 3104 3151 3197 3272 3477 STATUS Unbound 407 408 409 411 Local 1150 1150= 1150. 1150. Local 1166 1166= 1166. 1166. Local 1220 1220= 1220. 1220. Local 1240 1240= 1240. 1240. Local 1267 1278= 1301= 1305. 1313= 1317. 1326. Local 1473 1473= 1473. 1473. Local 1474 1474= 1474. 1474. Local 1541 1541= 1541. 1541. Local 1560 1560= 1560. 1560. Local 1563 1563= 1563. 1563. Local 1572 1572= 1572. 1572. Local 1575 1575= 1575. 1575. Local 1584 1584= 1584. 1584. Local 1587 1587= 1587. 1587. Local 1615 1615= 1615. 1615. Local 1632 1632= 1632. 1632. Local 1659 1659= 1659. 1659. Local 1680 1680= 1680. 1680. Local 1691 1691= 1691. 1691. Local 1699 1699= 1699. 1699. Local 1702 1702= 1702. 1702. Local 1704 1704= 1704. 1704. Local 1705 1705= 1705. 1705. Local 1754 1754= 1754. 1754. Local 1855 1855= 1855. 1855. Local 1861 1861= 1861. 1861. Local 1864 1864= 1864. 1864. Local 1917 1917= 1917. 1917. Local 1920 1920= 1920. 1920. Local 1947 1947= 1947. 1947. Local 1950 1950= 1950. 1950. Local 1971 1971= 1971. 1971. Local 1972 1972= 1972. 1972. Local 1981 1981= 1981. 1981. Local 1997 1997= 1997. 1997. Local 2010 2010= 2010. 2010. Local 2011 2011= 2011. 2011. Local 2039 2039= 2039. 2039. Local 2040 2040= 2040. 2040. Local 2049 2049= 2049. 2049. Local 2088 2088= 2088. 2088. Local 2091 2091= 2091. 2091. Local 2100 2100= 2100. 2100. Local 2103 2103= 2103. 2103. Local 2108 2108= 2108. 2108. Local 2109 2109= 2109. 2109. Local 2131 2131= 2131. 2131. Local 2132 2132= 2132. 2132. Local 2145 2145= 2145. 2145. Local 2149 2149= 2149. 2149. Local 2150 2150= 2150. 2150. FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 166 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (35) Symbol Type Defined Referenced ... ----------------------------- -------- ----- ---------------- Local 2170 2170= 2170. 2170. Local 2173 2173= 2173. 2173. Local 2178 2178= 2178. 2178. Local 2198 2205= 2206. 2210. 2257= 2258. 2261. Local 2430 2430= 2430. 2430. Local 2835 2835= 2835. 2835. STRING MacrForm 358 360 360 MacrForm 365 368 368 MacrForm 373 376 376 MacrForm 381 383 383 RoutForm 2117 2139@. 2140@a RoutForm 2154 2164@. 2165@a STRING_BUCKET_DEFAULT Literal 445 770 STRING_DISABLED Own 480 745= 974. 1684. 1990. STRING_HISTO Own 490 765= 766= 767= 768. 770= 771= 772= 2004a 2349a STS Local 1767 1775= 1776. 1779. 1783. 1808= 1810. 1814. SYMBOL Local 637 644= 645= 647a SYS$CLOSE ExtRout 1705 1705c 2011e 2011c 2109e 2109c SYS$CONNECT ExtRout 1474 1474c 1972e 1972c 2040e 2040c 2132e 2132c SYS$CREATE ExtRout 1473 1473c 1971e 1971c 2039e 2039c 2131e 2131c SYS$CRETVA ExtRout 1150 1150c 1220e 1220c SYS$DELTVA ExtRout 2835 2835c SYS$DISCONNECT ExtRout 1704 1704c 2010e 2010c 2108e 2108c SYS$EXPREG ExtRout 2430 2430c SYS$FAO ExtRout 1560 1560c 1572e 1572c 1584e 1584c 1615e 1615c 1699e 1699c 1861e 1861c 1917e 1917c 1947e 1947c 2088e 2088c 2100e 2100c SYS$FAOL ExtRout 2145 2145c 2170e 2170c SYS$FLUSH ExtRout 2150 2150c SYS$PUT ExtRout 1541 1541c 1563e 1563c 1575e 1575c 1587e 1587c 1632e 1632c 1659e 1659c 1680e 1680c 1691e 1691c 1702e 1702c 1855e 1855c 1864e 1864c 1920e 1920c 1950e 1950c 1981e 1981c 1997e 1997c 2049e 2049c 2091e 2091c 2103e 2103c 2149e 2149c SYS$SETAST ExtRout 568 568c 1170e 1170c 1175e 1175c 1183e 1183c 1244e 1244c 1249e 1249c 1257e 1257c 1463e 1463c 1707e 1707c 1716e 1716c 1782e 1782c 1813e 1813c 1823e 1823c 1963e 1963c 2013e 2013c 2031e 2031c 2111e 2111c 2308e 2308c 2335e 2335c 2451e 2451c 2531e 2531c 2561e 2561c 2588e 2588c 2744e 2744c 2839e 2839c 2855e 2855c 2871e 2871c 2891e 2891c 2914e 2914c 2934e 2934c 2949e 2949c 2969e 2969c 2995e 2995c 3011e 3011c 3036e 3036c 3056e 3056c 3088e 3088c 3104e 3104c 3134e 3134c 3151e 3151c 3178e 3178c 3197e 3197c 3248e 3248c 3272e 3272c 3385e 3385c 3459e 3459c 3477e 3477c 3515e 3515c SYS$SETPRT ExtRout 1166 1166c 1240e 1240c USABLE Local 1845 1866= 1867. 1868. 1870= 1871. USE_SIG_TO_RET KeyWForm 332 340 USR_VEC RoutForm 558 566@. 571@. VAXC$CALLOC_OPT ExtRout 304 599 VAXC$CFREE_OPT ExtRout 307 602 VAXC$FREE_OPT ExtRout 306 601 VAXC$MALLOC_OPT ExtRout 303 598 VAXC$REALLOC_OPT ExtRout 305 600 VAXCRTL_DISABLED Own 482 747= 820. 1009. WHOLE Local 1882 1927= 1928. 1935. 1947. XFER Local 638 654= 657@. 661. 661@. 664@. Local 672 721= 722. 724= 724@. 725. 728@. 732. 732@. 735@. XFER_ADDR RoutForm 616 675@= 702. 725@= FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 167 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (35) Symbol Type Defined Referenced ... ----------------------------- -------- ----- ---------------- RoutForm 624 647. 650@= 654@. RoutForm 1119 RoutForm 1194 1208. 1235@= 1236@= 1237@a XFER_INTERCEPT Routine 1192 1255a XLIBSHR_DISABLED Own 483 748= 896. 1064. XMEMORY_CALLOC ExtRout 309 605 XMEMORY_CALLOC_ADDR Own 521 911a 1075. XMEMORY_CALLOC_EXIT Own 521 909a 1073. XMEMORY_CALLOC_XFER Own 521 910a 1074. XMEMORY_FREE ExtRout 311 607 XMEMORY_FREE_ADDR Own 523 923a 1085. XMEMORY_FREE_EXIT Own 523 921a 1083. XMEMORY_FREE_XFER Own 523 922a 1084. XMEMORY_MALLOC ExtRout 308 604 XMEMORY_MALLOC_ADDR Own 520 905a 1070. XMEMORY_MALLOC_EXIT Own 520 903a 1068. XMEMORY_MALLOC_XFER Own 520 904a 1069. XMEMORY_REALLOC ExtRout 310 606 XMEMORY_REALLOC_ADDR Own 522 917a 1080. XMEMORY_REALLOC_EXIT Own 522 915a 1078. XMEMORY_REALLOC_XFER Own 522 916a 1079. ZERO_LEN Local 2200 2215= 2242. 2247= 2247. 2248. ZONE RoutForm 2280 2326. 2330@. RoutForm 2539 2579. 2583@. CROSS REFERENCE MAP Line # Event File ... ----- --------------- --------- 1 Source (start) MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 1 Module FAKE_VM 225 Library #1 SYS$COMMON:[SYSLIB]STARLET.L32;1 3554 Eludom FAKE_VM KEY TO REFERENCE TYPE FLAGS . Fetch = Store c Routine call a Address use @ Indirect use e External, external routine, or external literal declaration f Forward or forward routine declaration h Condition handler enabling m Map declaration u Undeclare declaration ; Library Statistics ; ; -------- Symbols -------- Pages Processing ; File Total Loaded Percent Mapped Time FAKE_VM 23-May-1989 12:39:54 VAX Bliss-32 V4.5-862 Page 168 X01-005 23-May-1989 12:39:37 MARKB$DUA0:[SYSLOST]FAKE_VM.B32;1 (35) ; ; SYS$COMMON:[SYSLIB]STARLET.L32;1 12265 95 0 708 00:01.4 ; COMMAND QUALIFIERS ; BLISS/OBJ/DEBUG/LIS/CROSS=MULTIPLE/CHECK=(FIELD,INITIAL,OPTIMIZE,REDECLARE) FAKE_VM ; Size: 9262 code + 5138 data bytes ; Run Time: 03:20.5 ; Elapsed Time: 07:44.8 ; Lines/CPU Min: 1063 ; Lexemes/CPU-Min: 17199 ; Memory Used: 661 pages ; Compilation Complete