Trailing-Edge
-
PDP-10 Archives
-
BB-P363B-SM_1985
-
mcb/cex/cex.lst
There are no other files named cex.lst in the archive.
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 1
29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (1)
; 0001 module CEX ( ! Comm/Exec Auxilliary Process
; 0002 ident = 'X03420',
; 0003 language (bliss16),
; 0004 addressing_mode (absolute)
; 0005 ) =
; 0006 begin
; 0007 !
; 0008 ! COPYRIGHT (c) 1980, 1981, 1982
; 0009 ! DIGITAL EQUIPMENT CORPORATION
; 0010 ! Maynard, Massachusetts
; 0011 !
; 0012 ! This software is furnished under a license and may be used
; 0013 ! and copied only in accordance with the terms of such license
; 0014 ! and with the inclusion of the above copyright notice. This
; 0015 ! software or any other copies thereof may not be provided or
; 0016 ! otherwise made available to any other person. No title to
; 0017 ! and ownership of the software is hereby transferred.
; 0018 !
; 0019 ! The information in this software is subject to change
; 0020 ! without notice and should not be construed as a commitment
; 0021 ! by DIGITAL EQUIPMENT CORPORATION.
; 0022 !
; 0023 ! DIGITAL assumes no responsibility for the use or reliability
; 0024 ! of its software on equipment which is not supplied by
; 0025 ! DIGITAL.
; 0026 !
; 0027
; 0028 !++
; 0029 !
; 0030 ! FACILITY: MCB Communicatios Executive
; 0031 !
; 0032 ! ABSTRACT:
; 0033 !
; 0034 ! The CEX process handles Comm/Exec data base initialization,
; 0035 ! timer support, process scheduling, and various functions which
; 0036 ! are not time-critical and which can work with APR5 remapped.
; 0037 !
; 0038 ! ENVIRONMENT: RSX kernel mode with EIS
; 0039 !
; 0040 ! AUTHOR: Alan D. Peckham CREATION DATE: 18-Mar-80
; 0041 !
; 0042 ! MODIFIED BY:
; 0043 !
; 0044 ! Alan D. Peckham, 2-Jul-80: VERSION 3.0
; 0045 ! 01 - Clock CSR reference needs one more level of indirection...
; 0046 ! 02 - Change CRSH$ references to CRSH$S.
; 0047 ! 03 - Use macros to access APR6 mapping register.
; 0048 ! 04 - Moved global data to seperate module.
; 0049 ! Eliminated local data (process can now be made read-only).
; 0050 ! 05 - Make the CE: device busy at CEPWF so that timer works.
; 0051 ! Correct .RDBPD pointer initialization.
; 0052 ! Initialize $IGREG to .LEV0.
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 2
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (1)
; 0053 ! 06 - Add initialization code to send CTL/STR to owners of lines
; 0054 ! after process initialization.
; 0055 ! 07 - Whoops! Must handle process initialization also.
; 0056 ! Also set system lines active before INITB.
; 0057 ! 08 - Make sure CCBs are long enough for our info.
; 0058 ! 09 - Correct RDB bias initialization bug.
; 0059 ! Reset .CRPIX before allocating and sending CTL/STR CCBs.
; 0060 ! 10 - Choose the proper lines in INTIM.
; 0061 ! 11 - Allocate CEXBUF from the bottom up instead of top down.
; 0062 ! Replace STBUF by FNBUF.
; 0063 ! 12 - Bad test in CETIM caused unwanted LLC TIM/LTM dispatches.
; 0064 ! Move system initialization to seperate INI process.
; 0065 ! 13 - Add support for SDB header.
; 0066 ! 14 - Fix SDB allocation bug introduced by 13.
; 0067 ! 15 - Update CRSH$S contexts.
; 0068 ! 16 - Add panic dumper.
; 0069 ! 17 - Move panic dumper to seperate process.
; 0070 ! Initialize .PBIAS to panic process mapping bias.
; 0071 ! Move our exception handler addresses into the trap
; 0072 ! vectors.
; 0073 ! Save the address of the master DTE for power failure.
; 0074 ! 18 - Initialize .DBIAS to debug process mapping bias.
; 0075 ! 19 - Alterations for new signalling strategy.
; 0076 ! Change ZF.TIM bit assignment.
; 0077 ! Eliminate direct access to PS.
; 0078 ! 20 - Set up default last-chance handler.
; 0079 ! Change $LLCDS input parameters.
; 0080 ! Set our bias in .FRKBK in INDAT.
; 0081 ! 21 - Correct bug in LAST.
; 0082 ! Get all of I/O page dump range.
; 0083 ! 22 - Turn off LF.ENA when line is disabled.
; 0084 ! Clear out allocated buffers in ALLOCATE_BUFFERS.
; 0085 ! Alan D. Peckham, 10-Dec-80: VERSION 3.1
; 0086 ! 23 - Change calls to $DDMDS, $DLCDS, $LLCDS to $PRCDS.
; 0087 ! Merge system line/process initialization loops in CEPWF.
; 0088 ! Flag ZF.TIM now becomes ZF.LTM.
; 0089 ! Merge DLC and DDM data base timers into LLC timer loop
; 0090 ! in CETIM and eliminate INTIM.
; 0091 ! Find process paritions to get mapping bias and
; 0092 ! allow LLC data bases to be mapped in INPDT.
; 0093 ! Eliminate data base checking in INSLT.
; 0094 ! 24 - Set CE$CLN error to continue with our own length.
; 0095 ! 25 - Exchange ZF.UCB flag support for invalid UCB address in PD.
; 0096 ! Key missing data base to invalid address.
; 0097 ! Drivers with mapped data bases now allowed.
; 0098 ! Alan D. Peckham, 30-Jan-80: VERSION 3.2
; 0099 ! 26 - Change input conditions for $PRCDS.
; 0100 ! Exception vector format changed.
; 0101 ! Alter process descriptor scanning to use PDB vector.
; 0102 ! 27 - Make sure processes have been built with this CEXCOM in INPDT.
; 0103 ! Add process destruction scheduler.
; 0104 ! 28 - Undetected syntax error in KILL_PROCESSES.
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 3
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (1)
; 0105 ! 29 - Save partition size in process header in INPDB.
; 0106 ! 30 - Rewrite in BLISS.
; 0107 ! Remove interrupt transfer block initialization.
; 0108 ! 32 - Correct PDT address buf in CEX$$SET_LINE_PROCESSES.
; 0109 ! Compensate for 11/34 processer CLR instruction in ALLOCATE_BUFFERS
; 0110 ! (11/34 does read-modify-write, which does not fix parity).
; 0111 ! 33 - Correct partition name bug in CEX$$SET_PROCESS.
; 0112 ! Add missing assignment in CEX$$SET_LINE_PROCESSES.
; 0113 ! Add INITIALIZE_UNIBUS_MAPPING - support for 11/70 UNIBUS mapping.
; 0114 ! 34 - Reset CEX_SYNCH_BLOCK [SYN$A_DISPATCH] in KILL_PROCESSES to allow
; 0115 ! re-use.
; 0116 ! 35 - Add CEX$$GET_DEVICE_NAME.
; 0117 ! Allocate a common event logging buffer in INITIALIZE_CEXCOM_DATA.
; 0118 ! 36 - Remove CEX$$GET_LINE_NAME.
; 0119 ! 37 - Fix common event logging buffer length.
; 0120 ! 38 - Move code to clear out CEXBUF from ALLOCATE_BUFFERS to
; 0121 ! INITIALIZE_BLOCK_POOL.
; 0122 ! 39 - Support CEX$GW_SYNCH_COUNT in SCHEDULE.
; 0123 ! Support CEX$GW_CCB_DISPATCH_COUNT in SCHEDULE.
; 0124 ! Support CEX$GW_LONG_TIMER_COUNT in CETIM.
; 0125 ! Support CEX$GW_SHORT_TIMER_COUNT in CECLK.
; 0126 ! Support counter averaging in CETIM.
; 0127 ! Replace "HALT" with "BR ." in PANIC.
; 0128 ! 40 - Do not reset $SYSIZ in INITIALIZE_UNIBUS_MAPPING.
; 0129 ! 41 - Stick HALT back in PANIC (no improvement for MCBDA).
; 0130 ! 42 - Conditionalize the unibus mapping code.
; 0131 !--
; 0132
; 0133 !
; 0134 ! INCLUDE FILES:
; 0135 !
; 0136
; 0137 library 'XPORT';
; 0138
; 0139 library 'MCBLIB';
; 0140
; 0141 library 'RSXLIB';
; 0142
; 0143 library 'CEXLIB';
; 0144
; L 0145 %if not %declared (CEX$CFG_UNIBUS_MAPPING)
; 0146 %then compiletime CEX$CFG_UNIBUS_MAPPING = (1 eql 0); %fi
; 0147
; 0148 !
; 0149 ! TABLE OF CONTENTS:
; 0150 !
; 0151
; 0152 linkage
; 0153 LINKAGE_ADR = jsr (register = 5),
; 0154 LINKAGE_ADR_CARRY = jsr (register = 1; register = 0) : clearstack valuecbit,
; 0155 LINKAGE_ADR_CNT = jsr (register = 5, register = 4; register = 5) : nopreserve (5),
; 0156 LINKAGE_ADR_NO_CARRY = jsr (register = 1),
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 4
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (1)
; 0157 LINKAGE_BLKS = jsr (register = 1),
; 0158 LINKAGE_CLEAN = jsr : preserve (0, 1, 2, 3, 4, 5),
; 0159 LINKAGE_FUNCTION = jsr (register = 1) : nopreserve (0, 1, 2),
; 0160 LINKAGE_INTERRUPT = interrupt (standard, standard) : preserve (0, 1, 2, 3, 4, 5),
; 0161 LINKAGE_LIST_BUFFER = jsr : global (LIST = 5, BUFFER = 2) nopreserve (0, 1, 3, 4),
; 0162 RSX_CLK = jsr (register = 4) : nopreserve (0, 1, 2, 3, 4, 5),
; 0163 RSX_FRK = jsr (register = 4) : nopreserve (0, 1, 2, 3, 4, 5),
; 0164 RSX_UCB_SCB = jsr (register = 5, register = 4) : nopreserve (0, 1, 2, 3, 4, 5);
; 0165
; 0166 forward routine
; 0167 CEX$$CLEAR_PROCESS : CALL$,
; 0168 CEX$$CLEAR_PROCESS_NAME : CALL$,
; 0169 CEX$$CLEAR_VECTOR : CALL$,
; 0170 CEX$$GET_DEVICE_NAME : CALL$,
; 0171 CEX$$GET_LINE_PROCESSES : CALL$,
; 0172 CEX$$GET_PROCESS_INDEX : CALL$,
; 0173 CEX$$GET_PROCESS_NAME : CALL$,
; 0174 CEX$$SET_EXCEPTION : CALL$,
; 0175 CEX$$SET_LINE_PROCESSES : CALL$,
; 0176 CEX$$SET_PROCESS : CALL$,
; 0177 CEX$$SET_PROCESS_NAME : CALL$,
; 0178 CEX$$SET_VECTOR : CALL$,
; 0179
; 0180 ALLOCATE_BUFFERS : LINKAGE_BLKS,
; 0181 ALLOCATE_BUFFER_POOL : LINKAGE_ADR novalue,
; 0182 ALLOCATE_CCB_AND_BUFFER_POOL : LINKAGE_ADR novalue,
; 0183 CECLK : RSX_CLK novalue,
; 0184 CEFRK : RSX_FRK novalue,
; 0185 CENOP : RSX_UCB novalue,
; 0186 CEPWF : RSX_UCB_SCB novalue,
; 0187 CETIM : RSX_UCB_SCB novalue,
; 0188 CHECK_BUFFER_ALLOCATIONS : novalue,
; 0189 FIND_LINE : LINKAGE_FUNCTION,
; 0190 FIND_PARTITION : LINKAGE_FUNCTION,
; 0191 FIND_PROCESS_NAME : LINKAGE_FUNCTION,
; 0192 INITIALIZE_BLOCK_POOL,
; 0193 INITIALIZE_BUFFER_POOL : LINKAGE_ADR_CNT novalue,
; 0194 INITIALIZE_CEXCOM_DATA : RSX_UCB novalue,
; 0195 INITIALIZE_DEVICE_NAMES : LINKAGE_ADR_CNT novalue,
; 0196 INITIALIZE_LINES : LINKAGE_ADR_CNT novalue,
; 0197 INITIALIZE_PROCESS_DESCRIPTORS : LINKAGE_ADR_CNT novalue,
; 0198 INITIALIZE_PROCESS_NAMES : LINKAGE_ADR_CNT novalue,
; 0199 INITIALIZE_UNIBUS_MAPPING : novalue,
; 0200 KILL_PROCESSES : MCB_ novalue,
; 0201 LAST,
; 0202 NULL : LINKAGE_INTERRUPT novalue,
; 0203 NXM_CATCHER : LINKAGE_INTERRUPT novalue,
; 0204 NXM_TESTER : LINKAGE_ADR_NO_CARRY,
; 0205 PANIC : MCB_ novalue,
; 0206 PDUMP : LINKAGE_LIST_BUFFER novalue,
; 0207 SCHEDULE : MCB_ novalue;
; 0208
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 5
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (1)
; 0209 bind routine
; 0210 NXM = NXM_TESTER : LINKAGE_ADR_CARRY;
; 0211
; 0212 !
; 0213 ! MACROS:
; 0214 !
; 0215
; 0216 macro
; M 0217 $CEX_FATAL_ERROR (CODE) =
; 0218 (CEX$GG_SIGNAL_STATUS = CODE) %;
; 0219
; 0220 macro
; M 0221 UBM_MAPPING =
; M 0222 begin
; M 0223 external SR3;
; M 0224 local
; M 0225 NXM_SAVE;
; M 0226 NXM_SAVE = .VEC$AA_ADDRESS_ERROR [0];
; M 0227 VEC$AA_ADDRESS_ERROR [0] = NXM_CATCHER;
; M 0228 if not NXM (SR3)
; M 0229 then
; M 0230 begin
; M 0231 VEC$AA_ADDRESS_ERROR [0] = .NXM_SAVE;
; M 0232 SR3 = .SR3 or %o'60';
; M 0233 true
; M 0234 end
; M 0235 else
; M 0236 begin
; M 0237 VEC$AA_ADDRESS_ERROR [0] = .NXM_SAVE;
; M 0238 false
; M 0239 end
; M 0240 end
; 0241 %;
; 0242 !
; 0243 ! EQUATED SYMBOLS:
; 0244 !
; 0245
; 0246 literal
; 0247 FALSE = 1 eql 0,
; 0248 NO_OPERATION = 0,
; 0249 TRUE = 1 eql 1;
; 0250
; 0251 $CEX_BFPDEF
; 0252 $CEX_CBPDEF
; 0253 $CEX_CCBDEF
; 0254 $CEX_EXVDEF
; 0255 $CEX_ITBDEF
; 0256 $CEX_PDTDEF
; 0257 $CEX_PNMDEF
; 0258 $CEX_SLTDEF
; 0259 $CEX_SYNDEF
; 0260 $CEX_TMBDEF
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 6
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (1)
; 0261 $CEX_UBMDEF
; 0262
; 0263 macro
; 0264 RSX$GW_SYSTEM_SIZE = %name ('$SYSIZ') %;
; 0265
; 0266 bind
; 0267 BKP$W_LINK = %o'140000',
; 0268 BKP$H_SIZE = %o'140002';
; 0269
; 0270 bind
; 0271 VEC$AA_ADDRESS_ERROR = %o'4' : vector [2],
; 0272 VEC$AA_BREAKPOINT = %o'14' : vector [2],
; 0273 VEC$AA_EMT_INSTRUCTION = %o'30' : vector [2],
; 0274 VEC$AA_ILLEGAL_INSTRUCTION = %o'10' : vector [2],
; 0275 VEC$AA_IOT_INSTRUCTION = %o'20' : vector [2],
; 0276 VEC$AA_PARITY_ERROR = %o'114' : vector [2],
; 0277 VEC$AA_POWER_FAILURE = %o'24' : vector [2],
; 0278 VEC$AA_SEGMENT_FAULT = %o'250' : vector [2],
; 0279 VEC$AA_TRAP_INSTRUCTION = %o'34' : vector [2];
; 0280
; 0281 !
; 0282 ! OWN STORAGE:
; 0283 !
; 0284
; 0285 external routine
; 0286 $DSPCR : novalue;
; 0287
; 0288 bind
; P 0289 CEXTBL = TABLE$ ($DSPCR, 12^1,
; P 0290 (MCB$K_CLEAR_PROCESS, CEX$$CLEAR_PROCESS),
; P 0291 (MCB$K_CLEAR_PROCESS_NAME, CEX$$CLEAR_PROCESS_NAME),
; P 0292 (MCB$K_CLEAR_VECTOR, CEX$$CLEAR_VECTOR),
; P 0293 (MCB$K_GET_DEVICE_NAME, CEX$$GET_DEVICE_NAME),
; P 0294 (MCB$K_GET_LINE_PROCESSES, CEX$$GET_LINE_PROCESSES),
; P 0295 (MCB$K_GET_PROCESS_INDEX, CEX$$GET_PROCESS_INDEX),
; P 0296 (MCB$K_GET_PROCESS_NAME, CEX$$GET_PROCESS_NAME),
; P 0297 (MCB$K_SET_EXCEPTION, CEX$$SET_EXCEPTION),
; P 0298 (MCB$K_SET_LINE_PROCESSES, CEX$$SET_LINE_PROCESSES),
; P 0299 (MCB$K_SET_PROCESS, CEX$$SET_PROCESS),
; P 0300 (MCB$K_SET_PROCESS_NAME, CEX$$SET_PROCESS_NAME),
; 0301 (MCB$K_SET_VECTOR, CEX$$SET_VECTOR));
; 0302
; 0303 global bind
; P 0304 $CETBL = TABLE$ (CENOP, 6,
; P 0305 (4, CETIM),
; 0306 (6, CEPWF));
; 0307
; P 0308 $MCB_PROCESS (
; P 0309 NAME = CEX, ! Process name
; P 0310 CEX_DISPATCH = CEXTBL, ! Cex service table
; 0311 RSX_DISPATCH = $CETBL) ! RSX dispatch vector
; 0312
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 7
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (1)
; 0313 !
; 0314 ! EXTERNAL REFERENCES:
; 0315 !
; 0316
; 0317 external
; 0318 CEX$GW_AVG_CCB_DISPATCHES,
; 0319 CEX$GW_AVG_INTERRUPTS,
; 0320 CEX$GW_AVG_LONG_TIMERS,
; 0321 CEX$GW_AVG_SHORT_TIMERS,
; 0322 CEX$GW_AVG_SYNCHS,
; 0323 CEX$GW_BLOCK_POOL_BIAS,
; 0324 CEX$GH_BUFFER_POOL_COUNT,
; 0325 CEX$GA_BUFFER_POOL_TABLE : ref blockvector [,BFP$K_LENGTH] field ($CEX_BFPFIELDS),
; 0326 CEX$GW_CCB_DISPATCH_COUNT,
; 0327 CEX$AG_CCB_DSR_ALLOCATION : vector [2],
; 0328 CEX$GR_CCB_POOL : block [CBP$K_LENGTH] field ($CEX_CBPFIELDS),
; 0329 CEX$AA_CCB_QUEUE_H : vector [2],
; 0330 CEX$AA_CCB_QUEUE_L : vector [2],
; 0331 CEX$GA_CEX_FORK_BLOCK,
; 0332 CEX$AR_CEX_SYNCH_BLOCK : block [SYN$K_LENGTH] field ($CEX_SYNFIELDS),
; 0333 CEX$GA_CURRENT_PROCESS : ref block [PDT$K_LENGTH] field ($CEX_PDTFIELDS),
; 0334 CEX$GB_CURRENT_PROCESS_INDEX,
; 0335 CEX$GA_DTE_BOOT_ROM_ADDRESS,
; 0336 CEX$GR_DUMP_EXCEPTION : block [EXV$K_LENGTH] field ($CEX_EXVFIELDS),
; 0337 CEX$GR_INTERRUPT_4_BLOCK : block [IPB$K_LENGTH] field ($CEX_IPBFIELDS),
; 0338 CEX$GR_INTERRUPT_5_BLOCK : block [IPB$K_LENGTH] field ($CEX_IPBFIELDS),
; 0339 CEX$GR_INTERRUPT_6_BLOCK : block [IPB$K_LENGTH] field ($CEX_IPBFIELDS),
; 0340 CEX$GR_INTERRUPT_7_BLOCK : block [IPB$K_LENGTH] field ($CEX_IPBFIELDS),
; 0341 CEX$GR_LAST_CHANCE_EXCEPTION : block [EXV$K_LENGTH] field ($CEX_EXVFIELDS),
; 0342 CEX$GW_LONG_TIMER_COUNT,
; 0343 CEX$GA_PANIC_STACK,
; 0344 CEX$GW_PANIC_STATUS,
; 0345 CEX$GG_POWER_FAIL_COUNT,
; 0346 CEX$GR_PRIMARY_EXCEPTION : block [EXV$K_LENGTH] field ($CEX_EXVFIELDS),
; 0347 CEX$GH_PROCESS_COUNT,
; 0348 CEX$AG_PROCESS_DATA_BASE : vector [2],
; 0349 CEX$GH_PROCESS_NAME_COUNT,
; 0350 CEX$GA_PROCESS_NAME_TABLE : ref blockvector [,PNM$K_LENGTH] field ($CEX_PNMFIELDS),
; 0351 CEX$AA_PROCESS_TABLE : vector,
; 0352 CEX$GA_PROCESS_TABLE_END,
; 0353 CEX$AW_RANDOM_NUMBER_SEED : vector [2],
; 0354 CEX$AG_RDB_CORE_ALLOCATION : vector,
; 0355 CEX$AG_RDB_DSR_ALLOCATION : vector,
; 0356 CEX$GR_RDB_POOL : block [CBP$K_LENGTH] field ($CEX_CBPFIELDS),
; 0357 CEX$GR_SECONDARY_EXCEPTION : block [EXV$K_LENGTH] field ($CEX_EXVFIELDS),
; 0358 CEX$GH_SCHEDULING_REQUESTS,
; 0359 CEX$GW_SHORT_TIMER_COUNT,
; 0360 CEX$GA_SHORT_TIMER_DISPATCH,
; 0361 CEX$GG_SIGNAL_STATUS, ! NOT DEFINED YET
; 0362 CEX$GW_STATISTICS_INTERVAL,
; 0363 CEX$GW_STATISTICS_TIMER,
; 0364 CEX$GW_SYNCH_COUNT,
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 8
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (1)
; 0365 CEX$AA_SYNCH_QUEUE : vector [2],
; 0366 CEX$GH_SYSTEM_LINE_COUNT,
; 0367 CEX$GA_SYSTEM_LINE_TABLE : ref blockvector [, SLT$K_LENGTH] field ($CEX_SLTFIELDS),
; 0368 MCB$GA_LOGGING_BUFFER,
; 0369 MCB$GW_RDB_SIZE,
; 0370 CEX$GA_UBM_DATA_BASE;
; 0371
; 0372 external routine
; 0373 CEX$$ADD_32 : CEX_LL_ADD_LOW_HIGH novalue,
; 0374 CEX$$ADDRESS_ERROR_TRAP : LINKAGE_INTERRUPT novalue,
; 0375 CEX$$ALLOCATE_CORE : CEX_LL_BLKS,
; 0376 CEX$$BREAKPOINT_TRAP : LINKAGE_INTERRUPT novalue,
; 0377 CEX$$DISPATCH_PROCESS : CEX_LL_PDB_FNC_MOD novalue,
; 0378 CEX$$DIVIDE_32 : CEX_LL_NUM_LOW_HIGH novalue,
; 0379 CEX$$EMT_INSTRUCTION_TRAP : LINKAGE_INTERRUPT novalue,
; 0380 CEX$$ENTER_CEX : LINKAGE_CLEAN novalue,
; 0381 CEX$$EXIT_CEX : LINKAGE_CLEAN novalue,
; 0382 CEX$$ILLEGAL_INSTRUCTION_TRAP : LINKAGE_INTERRUPT novalue,
; 0383 CEX$$IOT_INSTRUCTION_TRAP : LINKAGE_INTERRUPT novalue,
; 0384 CEX$$MULTIPLY_32 : CEX_LL_NUM_NUM novalue,
; 0385 CEX$$PARITY_ERROR_TRAP : LINKAGE_INTERRUPT novalue,
; 0386 CEX$$POWER_FAILURE_TRAP : LINKAGE_INTERRUPT novalue,
; 0387 CEX$$SEGMENT_FAULT_TRAP : LINKAGE_INTERRUPT novalue,
; 0388 CEX$$SHIFT_32 : CEX_LL_CNT_LOW_HIGH novalue,
; 0389 CEX$$SYNCHRONIZE_PROCESS : CEX_LL_PDB_DSP novalue,
; 0390 CEX$$TRAP_INSTRUCTION_TRAP : LINKAGE_INTERRUPT novalue;
; 0391
; 0392 bind
; 0393 INTERRUPT_PRIORITY_BLOCK = UPLIT (
; 0394 CEX$GR_INTERRUPT_4_BLOCK [IPB$V_JSR_4],
; 0395 CEX$GR_INTERRUPT_5_BLOCK [IPB$V_JSR_4],
; 0396 CEX$GR_INTERRUPT_6_BLOCK [IPB$V_JSR_4],
; 0397 CEX$GR_INTERRUPT_7_BLOCK [IPB$V_JSR_4]) : vector [4];
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 9
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (2)
; 0398 global routine CEX$$CLEAR_PROCESS : CALL$ =
; 0399
; 0400 !++
; 0401 ! FUNCTIONAL DESCRIPTION:
; 0402 !
; 0403 !
; 0404 ! FORMAL PARAMETERS:
; 0405 ! None
; 0406 !
; 0407 ! IMPLICIT INPUTS:
; 0408 ! None
; 0409 !
; 0410 ! IMPLICIT OUTPUTS:
; 0411 ! None
; 0412 !
; 0413 ! ROUTINE VALUE:
; 0414 ! COMPLETION CODES:
; 0415 ! None
; 0416 !
; 0417 ! SIDE EFFECTS:
; 0418 ! None
; 0419 !--
; 0420
; 0421 begin
; 0422
; 0423 builtin
; 0424 actualcount,
; 0425 actualparameter;
; 0426
; 0427 if actualcount () neq 0 then return $CEX_FATAL_ERROR (MCB$_PARAMETER_ERROR);
; 0428
; 0429 if .CEX$AG_PROCESS_DATA_BASE [1] neqa 0
; 0430 then
; 0431 return $CEX_FATAL_ERROR (MCB$_PROCESS_STILL_ACTIVE);
; 0432
; 0433 CEX$GA_CURRENT_PROCESS [PDT$V_KILL_PROCESS] = TRUE;
; 0434 begin
; 0435
; 0436 local
; 0437 PS_SAVE;
; 0438
; 0439 external
; 0440 PS;
; 0441
; 0442 PS_SAVE = .PS;
; 0443 PS <0, 8> = 7^5;
; 0444
; 0445 if .CEX$AR_CEX_SYNCH_BLOCK [SYN$A_DISPATCH] eqla 0
; 0446 then
; 0447 begin
; 0448
; 0449 bind
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 10
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (2)
; 0450 CEX$AR_CEX_PROCESS = CEX$AA_PROCESS_TABLE [0] : ref block [PDT$K_LENGTH] field ($CEX_PDTFIELDS);
; 0451
; 0452 CEX$AR_CEX_SYNCH_BLOCK [SYN$A_DISPATCH] = KILL_PROCESSES;
; 0453 CEX$AR_CEX_SYNCH_BLOCK [SYN$A_PROCESS] = .CEX$AR_CEX_PROCESS;
; 0454
; 0455 if (CEX$AR_CEX_SYNCH_BLOCK [SYN$A_LINK] = .CEX$AA_SYNCH_QUEUE [0]) eqla 0
; 0456 then
; 0457 CEX$AA_SYNCH_QUEUE [1] = CEX$AR_CEX_SYNCH_BLOCK;
; 0458
; 0459 CEX$AA_SYNCH_QUEUE [0] = CEX$AR_CEX_SYNCH_BLOCK;
; 0460 end;
; 0461
; 0462 PS <0, 8> = .PS_SAVE;
; 0463 end;
; 0464 MCB$_NORMAL
; 0465 end; !of routine CEX$$CLEAR_PROCESS
.TITLE CEX
.IDENT /X03420/
.ENABL AMA
000000 .PSECT ......, D
000000 011640 HEADER: .RAD50 /CEX/
000002 000403 .WORD 403
000004 000000 .WORD 0
000006 000000 .WORD 0
000010 000000 .WORD 0
000012 000000G .WORD .DSPCR
000014 000000G .WORD .DSPCR
000016 000000G .WORD .DSPCR
000020 000000G .WORD MCB$V0
000022 000000G .WORD MCB$V1
000024 140310 .WORD 140310
000026 143716 .WORD 143716
000030 001400 .WORD 1400
000032 000032' .WORD $CETBL
000034 000000' .WORD CEXTBL
000036 000000 .WORD 0
000000 .PSECT $PLIT$, RO , D
000000 000000V P.AAA: .WORD $EXVEN
000002 000000V .WORD $PDBST
000004 000000' .WORD $PDBCL
000006 000000V .WORD $PNMGT
000010 000000V .WORD $PRCNM
000012 000000V .WORD $PNMST
000014 000000V .WORD $PNMCL
000016 000000V .WORD $VECST
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 11
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (2)
000020 000000V .WORD $VECCL
000022 000000G .WORD $DSPCR
000024 000000V .WORD $SLTST
000026 000000V .WORD $SLTGT
000030 000000V .WORD CEX$$GET.DEVICE.NAME
000032 000000V P.AAB: .WORD CENOP
000034 000000V .WORD CENOP
000036 000000V .WORD CETIM
000040 000000V .WORD CEPWF
000042 000000G P.AAC: .WORD .INTC4
000044 000000G .WORD .INTC5
000046 000000G .WORD .INTC6
000050 000000G .WORD .INTC7
.GLOBL $DSPCR, .DSPCR, MCB$V0, MCB$V1
.GLOBL .SMDSP, .SMINT, .SMLTM, .SMSTM
.GLOBL .SMSYN, .BLKTB, .CORNM, .CORTA
.GLOBL .DSPCT, .CCBDM, .CCBTB, .CBHQH
.GLOBL .CBLQH, .FRKBK, .PDSYN, .CRPDB
.GLOBL .CRPIX, .DTERG, .MEXVD, .INTC4
.GLOBL .INTC5, .INTC6, .INTC7, .MEXVL
.GLOBL .LTMCT, .PANSP, .PANPS, .PWRFL
.GLOBL .MEXV1, .PDBNM, .CRDAT, .PNMNM
.GLOBL .PNMTA, .PDBVB, .PDBVE, .RND, .RDBCM
.GLOBL .RDBDM, .RDBTB, .MEXV2, .CEXRQ
.GLOBL .STMCT, .TIMDS, .CEXST, .SMSEC
.GLOBL .SITIM, .SYNCT, .SYNQH, .SLTNM
.GLOBL .SLTTA, .LOGPT, .RDBSZ, .UBMTA
.GLOBL $ADD32, $EX4, $BLKGT, $EX14, $PRCDS
.GLOBL $DIV32, $EX30, $CEXSV, $CEXXT
.GLOBL $EX10, $EX20, $MUL32, $EX114, $EX24
.GLOBL $EX250, $ASH32, $SYNDS, $EX34
.GLOBL PS
140000 BKP$W.LINK= -40000
140002 BKP$H.SIZE= -37776
000004 VEC$AA.ADDRESS.ERROR=
4
000014 VEC$AA.BREAKPOINT= 14
000030 VEC$AA.EMT.INSTRUCTION=
30
000010 VEC$AA.ILLEGAL.INSTRUCTION=
10
000020 VEC$AA.IOT.INSTRUCTION=
20
000114 VEC$AA.PARITY.ERROR=114
000024 VEC$AA.POWER.FAILURE=
24
000250 VEC$AA.SEGMENT.FAULT=
250
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 12
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (2)
000034 VEC$AA.TRAP.INSTRUCTION=
34
000000' CEXTBL= P.AAA
000032' $CETBL== P.AAB
000042' INTERRUPT.PRIORITY.BLOCK=
P.AAC
.SBTTL $PDBCL
000000 .PSECT $CODE$, RO
000000 105715 $PDBCL::TSTB (R5) ; .AP. 0427
000002 001403 BEQ 1$
000004 012700 001002 MOV #1002,R0
000010 000405 BR 2$
000012 005737 000002G 1$: TST .CRDAT+2 ; 0429
000016 001405 BEQ 3$
000020 012700 001012 MOV #1012,R0 ; 0431
000024 010037 000000G 2$: MOV R0,.CEXST
000030 000207 RTS PC
000032 013700 000000G 3$: MOV .CRPDB,R0 ; 0433
000036 052760 004000 000010 BIS #4000,10(R0)
000044 013700 000000G MOV PS,R0 ; *,PS.SAVE 0442
000050 112737 000340 000000G MOVB #340,PS ; 0443
000056 005737 000004G TST .PDSYN+4 ; 0445
000062 001020 BNE 5$
000064 012737 000000V 000004G MOV #KILL.PROCESSES,.PDSYN+4 ; 0452
000072 013737 000000G 000002G MOV .PDBVB,.PDSYN+2 ; 0453
000100 013737 000000G 000000G MOV .SYNQH,.PDSYN ; 0455
000106 001003 BNE 4$
000110 012737 000000G 000002G MOV #.PDSYN,.SYNQH+2 ; 0457
000116 012737 000000G 000000G 4$: MOV #.PDSYN,.SYNQH ; 0459
000124 110037 000000G 5$: MOVB R0,PS ; PS.SAVE,* 0462
000130 012700 000001 MOV #1,R0 ; 0398
000134 000207 RTS PC
; Routine Size: 47 words, Routine Base: $CODE$ + 0000
; Maximum stack depth per invocation: 0 words
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 13
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (3)
; 0466 global routine CEX$$CLEAR_PROCESS_NAME : CALL$ =
; 0467
; 0468 !++
; 0469 ! FUNCTIONAL DESCRIPTION:
; 0470 !
; 0471 !
; 0472 ! FORMAL PARAMETERS:
; 0473 ! None
; 0474 !
; 0475 ! IMPLICIT INPUTS:
; 0476 ! None
; 0477 !
; 0478 ! IMPLICIT OUTPUTS:
; 0479 ! None
; 0480 !
; 0481 ! ROUTINE VALUE:
; 0482 ! COMPLETION CODES:
; 0483 ! None
; 0484 !
; 0485 ! SIDE EFFECTS:
; 0486 ! None
; 0487 !--
; 0488
; 0489 begin
; 0490
; 0491 builtin
; 0492 actualcount,
; 0493 actualparameter;
; 0494
; 0495 if actualcount () neq 1 then return $CEX_FATAL_ERROR (MCB$_PARAMETER_ERROR);
; 0496
; 0497 begin
; 0498
; 0499 local
; 0500 NAME_ENTRY : ref block [PNM$K_LENGTH] field ($CEX_PNMFIELDS),
; 0501 PROCESS_NAME;
; 0502
; 0503 if (PROCESS_NAME = actualparameter (1)) eqlu 0 then return MCB$_UNKNOWN_PROCESS;
; 0504
; 0505 if (NAME_ENTRY = FIND_PROCESS_NAME (.PROCESS_NAME)) eqla 0 then return MCB$_UNKNOWN_PROCESS;
; 0506
; 0507 begin
; 0508
; 0509 bind
; 0510 PROCESS = .NAME_ENTRY [PNM$A_PROCESS] : block [PDT$K_LENGTH] field ($CEX_PDTFIELDS);
; 0511
; 0512 if .CEX$GA_CURRENT_PROCESS [PDT$W_CODE_BIAS] nequ .PROCESS [PDT$W_CODE_BIAS]
; 0513 then
; 0514 return $CEX_FATAL_ERROR (CE$ACV);
; 0515
; 0516 NAME_ENTRY [PNM$A_PROCESS] = 0;
; 0517 NAME_ENTRY [PNM$W_NAME] = 0;
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 14
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (3)
; 0518 end;
; 0519 end;
; 0520 MCB$_NORMAL
; 0521 end; !of routine CEX$$CLEAR_PROCESS_NAME
.SBTTL $PNMCL
000000 121527 000001 $PNMCL::CMPB (R5),#1 ; .AP.,* 0495
000004 001405 BEQ 1$
000006 012700 001002 MOV #1002,R0
000012 010037 000000G MOV R0,.CEXST
000016 000207 RTS PC
000020 016501 000002 1$: MOV 2(R5),R1 ; *(.AP.),PROCESS.NAME 0503
000024 001404 BEQ 2$
000026 004737 000000V JSR PC,FIND.PROCESS.NAME ; 0505
000032 005700 TST R0 ; NAME.ENTRY
000034 001003 BNE 3$
000036 012700 000270 2$: MOV #270,R0
000042 000207 RTS PC
000044 027770 000000G 000000 3$: CMP @.CRPDB,@0(R0) ; *,*(NAME.ENTRY) 0512
000052 001406 BEQ 4$
000054 012701 000312 MOV #312,R1 ; 0514
000060 010137 000000G MOV R1,.CEXST
000064 010100 MOV R1,R0
000066 000207 RTS PC
000070 005010 4$: CLR (R0) ; NAME.ENTRY 0516
000072 005060 000002 CLR 2(R0) ; *(NAME.ENTRY) 0517
000076 012700 000001 MOV #1,R0 ; 0466
000102 000207 RTS PC
; Routine Size: 34 words, Routine Base: $CODE$ + 0136
; Maximum stack depth per invocation: 1 word
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 15
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (4)
; 0522 global routine CEX$$CLEAR_VECTOR : CALL$ =
; 0523
; 0524 !++
; 0525 ! FUNCTIONAL DESCRIPTION:
; 0526 !
; 0527 !
; 0528 ! FORMAL PARAMETERS:
; 0529 ! None
; 0530 !
; 0531 ! IMPLICIT INPUTS:
; 0532 ! None
; 0533 !
; 0534 ! IMPLICIT OUTPUTS:
; 0535 ! None
; 0536 !
; 0537 ! ROUTINE VALUE:
; 0538 ! COMPLETION CODES:
; 0539 ! None
; 0540 !
; 0541 ! SIDE EFFECTS:
; 0542 ! None
; 0543 !--
; 0544
; 0545 begin
; 0546
; 0547 builtin
; 0548 actualcount,
; 0549 actualparameter;
; 0550
; 0551 if actualcount () neq 1 then return $CEX_FATAL_ERROR (MCB$_PARAMETER_ERROR);
; 0552
; 0553 begin
; 0554
; 0555 local
; 0556 VEC : ref vector [2];
; 0557
; 0558 external
; 0559 %name ('V$$CTR');
; 0560
; 0561 VEC = actualparameter (1);
; 0562
; 0563 if .VEC geqa %name ('V$$CTR') or .VEC <0, 2> neq 0
; 0564 then
; 0565 return $CEX_FATAL_ERROR (CE$VEC);
; 0566
; 0567 begin
; 0568
; 0569 local
; 0570 ITB : ref block [ITB$K_LENGTH] field ($CEX_ITBFIELDS);
; 0571
; 0572 external
; 0573 %name ('$NONSI');
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 16
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (4)
; 0574
; 0575 ITB = .VEC [0];
; 0576
; 0577 if .ITB eqla %name ('$NONSI')
; 0578 then
; 0579 return $CEX_FATAL_ERROR (CE$VCF);
; 0580
; 0581 if .CEX$GA_CURRENT_PROCESS neqa .ITB [ITB$A_PROCESS]
; 0582 then
; 0583 return $CEX_FATAL_ERROR (CE$ACV);
; 0584
; 0585 VEC [0] = %name ('$NONSI');
; 0586 $RSX_RETURN_DSR (ITB$K_LENGTH*%upval, .ITB);
; 0587 end;
; 0588 end;
; 0589 MCB$_NORMAL
; 0590 end; !of routine CEX$$CLEAR_VECTOR
.GLOBL V$$CTR, $NONSI, $DEACB
.SBTTL $VECCL
000000 121527 000001 $VECCL::CMPB (R5),#1 ; .AP.,* 0551
000004 001403 BEQ 1$
000006 012700 001002 MOV #1002,R0
000012 000412 BR 3$
000014 016502 000002 1$: MOV 2(R5),R2 ; *(.AP.),VEC 0561
000020 020227 000000G CMP R2,#V$$CTR ; VEC,* 0563
000024 103003 BHIS 2$
000026 032702 000003 BIT #3,R2 ; *,VEC
000032 001405 BEQ 4$
000034 012700 000742 2$: MOV #742,R0 ; 0565
000040 010037 000000G 3$: MOV R0,.CEXST
000044 000207 RTS PC
000046 011200 4$: MOV (R2),R0 ; VEC,ITB 0575
000050 020027 000000G CMP R0,#$NONSI ; ITB,* 0577
000054 001003 BNE 5$
000056 012701 000752 MOV #752,R1 ; 0579
000062 000406 BR 6$
000064 023760 000000G 000004 5$: CMP .CRPDB,4(R0) ; *,*(ITB) 0581
000072 001406 BEQ 7$
000074 012701 000312 MOV #312,R1 ; 0583
000100 010137 000000G 6$: MOV R1,.CEXST
000104 010100 MOV R1,R0
000106 000207 RTS PC
000110 012712 000000G 7$: MOV #$NONSI,(R2) ; *,VEC 0585
000114 012701 000010 MOV #10,R1 ; 0586
000120 004737 000000G JSR PC,$DEACB
000124 012700 000001 MOV #1,R0 ; 0522
000130 000207 RTS PC
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 17
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (4)
; Routine Size: 45 words, Routine Base: $CODE$ + 0242
; Maximum stack depth per invocation: 1 word
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 18
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (5)
; 0591 global routine CEX$$GET_DEVICE_NAME : CALL$ =
; 0592
; 0593 !++
; 0594 ! FUNCTIONAL DESCRIPTION:
; 0595 !
; 0596 !
; 0597 ! FORMAL PARAMETERS:
; 0598 ! None
; 0599 !
; 0600 ! IMPLICIT INPUTS:
; 0601 ! None
; 0602 !
; 0603 ! IMPLICIT OUTPUTS:
; 0604 ! None
; 0605 !
; 0606 ! ROUTINE VALUE:
; 0607 ! COMPLETION CODES:
; 0608 ! None
; 0609 !
; 0610 ! SIDE EFFECTS:
; 0611 ! None
; 0612 !--
; 0613
; 0614 begin
; 0615
; 0616 builtin
; 0617 actualcount,
; 0618 actualparameter;
; 0619
; 0620 if actualcount () neq 2 then return $CEX_FATAL_ERROR (MCB$_PARAMETER_ERROR);
; 0621
; 0622 ch$wchar (0, actualparameter (2));
; 0623 begin
; 0624
; 0625 local
; 0626 SLT : ref block [SLT$K_LENGTH] field ($CEX_SLTFIELDS);
; 0627
; 0628 if (SLT = FIND_LINE (actualparameter (1))) eqla 0
; 0629 then
; 0630 return $CEX_FATAL_ERROR (CE$LIX);
; 0631
; 0632 ch$move (ch$rchar (.SLT [SLT$A_DEVICE]) + 1, .SLT [SLT$A_DEVICE], actualparameter (2));
; 0633 end;
; 0634 MCB$_NORMAL
; 0635 end; !of routine CEX$$GET_DEVICE_NAME
.SBTTL CEX$$GET.DEVICE.NAME
000000 121527 000002 CEX$$GET.DEVICE.NAME::
CMPB (R5),#2 ; .AP.,* 0620
000004 001405 BEQ 1$
000006 012700 001002 MOV #1002,R0
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 19
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (5)
000012 010037 000000G MOV R0,.CEXST
000016 000207 RTS PC
000020 105075 000004 1$: CLRB @4(R5) ; *(.AP.) 0622
000024 016501 000002 MOV 2(R5),R1 ; *(.AP.),* 0628
000030 004737 000000V JSR PC,FIND.LINE
000034 005700 TST R0 ; SLT
000036 001006 BNE 2$
000040 012701 000544 MOV #544,R1 ; 0630
000044 010137 000000G MOV R1,.CEXST
000050 010100 MOV R1,R0
000052 000207 RTS PC
000054 005046 2$: CLR -(SP) ; 0632
000056 117016 000006 MOVB @6(R0),(SP) ; *(SLT),*
000062 005216 INC (SP)
000064 016046 000006 MOV 6(R0),-(SP) ; *(SLT),*
000070 016546 000004 MOV 4(R5),-(SP) ; *(.AP.),*
000074 004737 000000G JSR PC,BL$MOV
000100 062706 000006 ADD #6,SP ; 0614
000104 012700 000001 MOV #1,R0 ; 0591
000110 000207 RTS PC
; Routine Size: 37 words, Routine Base: $CODE$ + 0374
; Maximum stack depth per invocation: 4 words
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 20
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (6)
; 0636 global routine CEX$$GET_LINE_PROCESSES : CALL$ =
; 0637
; 0638 !++
; 0639 ! FUNCTIONAL DESCRIPTION:
; 0640 !
; 0641 !
; 0642 ! FORMAL PARAMETERS:
; 0643 ! None
; 0644 !
; 0645 ! IMPLICIT INPUTS:
; 0646 ! None
; 0647 !
; 0648 ! IMPLICIT OUTPUTS:
; 0649 ! None
; 0650 !
; 0651 ! ROUTINE VALUE:
; 0652 ! COMPLETION CODES:
; 0653 ! None
; 0654 !
; 0655 ! SIDE EFFECTS:
; 0656 ! None
; 0657 !--
; 0658
; 0659 begin
; 0660
; 0661 builtin
; 0662 actualcount,
; 0663 actualparameter;
; 0664
; 0665 if actualcount () neq 2 then return $CEX_FATAL_ERROR (MCB$_PARAMETER_ERROR);
; 0666
; 0667 begin
; 0668
; 0669 local
; 0670 BUF : ref vector [3];
; 0671
; 0672 BUF = actualparameter (2);
; 0673 BUF [2] = BUF [1] = BUF [0] = 0;
; 0674 begin
; 0675
; 0676 local
; 0677 SLT : ref block [SLT$K_LENGTH] field ($CEX_SLTFIELDS);
; 0678
; 0679 if (SLT = FIND_LINE (actualparameter (1))) eqla 0
; 0680 then
; 0681 return CE$LIX;
; 0682
; 0683 BUF [0] = .SLT [SLT$B_LLC_PROCESS_INDEX];
; 0684 BUF [1] = .SLT [SLT$B_DLC_PROCESS_INDEX];
; 0685 BUF [2] = .SLT [SLT$B_DDM_PROCESS_INDEX];
; 0686 end;
; 0687 end;
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 21
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (6)
; 0688 MCB$_NORMAL
; 0689 end; !of routine CEX$$GET_LINE_PROCESSES
.SBTTL $SLTGT
000000 121527 000002 $SLTGT::CMPB (R5),#2 ; .AP.,* 0665
000004 001405 BEQ 1$
000006 012700 001002 MOV #1002,R0
000012 010037 000000G MOV R0,.CEXST
000016 000207 RTS PC
000020 016503 000004 1$: MOV 4(R5),R3 ; *(.AP.),BUF 0672
000024 005013 CLR (R3) ; BUF 0673
000026 005063 000002 CLR 2(R3) ; *(BUF)
000032 005063 000004 CLR 4(R3) ; *(BUF)
000036 016501 000002 MOV 2(R5),R1 ; *(.AP.),* 0679
000042 004737 000000V JSR PC,FIND.LINE
000046 005700 TST R0 ; SLT
000050 001003 BNE 2$
000052 012700 000544 MOV #544,R0 ; 0681
000056 000207 RTS PC
000060 116013 000004 2$: MOVB 4(R0),(R3) ; *(SLT),BUF 0683
000064 105063 000001 CLRB 1(R3) ; *(BUF)
000070 116063 000002 000002 MOVB 2(R0),2(R3) ; *(SLT),*(BUF) 0684
000076 105063 000003 CLRB 3(R3) ; *(BUF)
000102 111063 000004 MOVB (R0),4(R3) ; SLT,*(BUF) 0685
000106 105063 000005 CLRB 5(R3) ; *(BUF)
000112 012700 000001 MOV #1,R0 ; 0636
000116 000207 RTS PC
; Routine Size: 40 words, Routine Base: $CODE$ + 0506
; Maximum stack depth per invocation: 1 word
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 22
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (7)
; 0690 global routine CEX$$GET_PROCESS_INDEX : CALL$ =
; 0691
; 0692 !++
; 0693 ! FUNCTIONAL DESCRIPTION:
; 0694 !
; 0695 !
; 0696 ! FORMAL PARAMETERS:
; 0697 ! None
; 0698 !
; 0699 ! IMPLICIT INPUTS:
; 0700 ! None
; 0701 !
; 0702 ! IMPLICIT OUTPUTS:
; 0703 ! None
; 0704 !
; 0705 ! ROUTINE VALUE:
; 0706 ! COMPLETION CODES:
; 0707 ! None
; 0708 !
; 0709 ! SIDE EFFECTS:
; 0710 ! None
; 0711 !--
; 0712
; 0713 begin
; 0714
; 0715 builtin
; 0716 actualcount,
; 0717 actualparameter;
; 0718
; 0719 if actualcount () neq 2 then return $CEX_FATAL_ERROR (MCB$_PARAMETER_ERROR);
; 0720
; 0721 actualparameter (2) = 0;
; 0722 begin
; 0723
; 0724 local
; 0725 PROCESS : ref block [PDT$K_LENGTH] field ($CEX_PDTFIELDS);
; 0726
; 0727 if (PROCESS = FIND_PROCESS_NAME (actualparameter (1))) eqla 0 then return MCB$_UNKNOWN_PROCESS;
; 0728
; 0729 actualparameter (2) = .PROCESS [PDT$B_INDEX];
; 0730 end;
; 0731 MCB$_NORMAL
; 0732 end; !of routine CEX$$GET_PROCESS_INDEX
.SBTTL $PNMGT
000000 121527 000002 $PNMGT::CMPB (R5),#2 ; .AP.,* 0719
000004 001405 BEQ 1$
000006 012700 001002 MOV #1002,R0
000012 010037 000000G MOV R0,.CEXST
000016 000207 RTS PC
000020 005075 000004 1$: CLR @4(R5) ; *(.AP.) 0721
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 23
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (7)
000024 016501 000002 MOV 2(R5),R1 ; *(.AP.),* 0727
000030 004737 000000V JSR PC,FIND.PROCESS.NAME
000034 005700 TST R0 ; PROCESS
000036 001003 BNE 2$
000040 012700 000270 MOV #270,R0
000044 000207 RTS PC
000046 116075 000010 000004 2$: MOVB 10(R0),@4(R5) ; *(PROCESS),*(.AP.) 0729
000054 042775 177400 000004 BIC #177400,@4(R5) ; *,*(.AP.)
000062 012700 000001 MOV #1,R0 ; 0690
000066 000207 RTS PC
; Routine Size: 28 words, Routine Base: $CODE$ + 0626
; Maximum stack depth per invocation: 1 word
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 24
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (8)
; 0733 global routine CEX$$GET_PROCESS_NAME : CALL$ =
; 0734
; 0735 !++
; 0736 ! FUNCTIONAL DESCRIPTION:
; 0737 !
; 0738 !
; 0739 ! FORMAL PARAMETERS:
; 0740 ! None
; 0741 !
; 0742 ! IMPLICIT INPUTS:
; 0743 ! None
; 0744 !
; 0745 ! IMPLICIT OUTPUTS:
; 0746 ! None
; 0747 !
; 0748 ! ROUTINE VALUE:
; 0749 ! COMPLETION CODES:
; 0750 ! None
; 0751 !
; 0752 ! SIDE EFFECTS:
; 0753 ! None
; 0754 !--
; 0755
; 0756 begin
; 0757
; 0758 builtin
; 0759 actualcount,
; 0760 actualparameter;
; 0761
; 0762 if actualcount () neq 2 then return $CEX_FATAL_ERROR (MCB$_PARAMETER_ERROR);
; 0763
; 0764 actualparameter (2) = 0;
; 0765 begin
; 0766
; 0767 local
; 0768 PROCESS : ref block [PDT$K_LENGTH] field ($CEX_PDTFIELDS);
; 0769
; 0770 if ((PROCESS = actualparameter (1)) gtru .CEX$GH_PROCESS_COUNT) or
; 0771 ((PROCESS = .CEX$AA_PROCESS_TABLE [.PROCESS]) eqla 0)
; 0772 then
; 0773 return CE$PIX;
; 0774
; 0775 begin
; 0776 $CEX_PHDDEF
; 0777
; 0778 bind
; 0779 HEADER = %o'140000' : block field ($CEX_PHDFIELDS);
; 0780
; 0781 local
; 0782 SAVE_MAP;
; 0783
; 0784 SMAP$ (SAVE_MAP);
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 25
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (8)
; 0785 MAP$ (.PROCESS [PDT$W_CODE_BIAS]);
; 0786 PROCESS = .HEADER [PHD$W_NAME];
; 0787 MAP$ (.SAVE_MAP);
; 0788 end;
; 0789 actualparameter (2) = .PROCESS;
; 0790 end;
; 0791 MCB$_NORMAL
; 0792 end; !of routine CEX$$GET_PROCESS_NAME
.GLOBL KISAR6
140000 HEADER= -40000
.SBTTL $PRCNM
000000 121527 000002 $PRCNM::CMPB (R5),#2 ; .AP.,* 0762
000004 001405 BEQ 1$
000006 012700 001002 MOV #1002,R0
000012 010037 000000G MOV R0,.CEXST
000016 000207 RTS PC
000020 005075 000004 1$: CLR @4(R5) ; *(.AP.) 0764
000024 016501 000002 MOV 2(R5),R1 ; *(.AP.),PROCESS 0770
000030 020137 000000G CMP R1,.PDBNM ; PROCESS,*
000034 101005 BHI 2$
000036 010100 MOV R1,R0 ; PROCESS,* 0771
000040 006300 ASL R0
000042 016001 000000G MOV .PDBVB(R0),R1 ; *,PROCESS
000046 001003 BNE 3$
000050 012700 000564 2$: MOV #564,R0 ; 0773
000054 000207 RTS PC
000056 013700 000000G 3$: MOV KISAR6,R0 ; *,SAVE.MAP 0784
000062 011137 000000G MOV (R1),KISAR6 ; PROCESS,* 0785
000066 013701 140000 MOV @#140000,R1 ; *,PROCESS 0786
000072 010037 000000G MOV R0,KISAR6 ; SAVE.MAP,* 0787
000076 010175 000004 MOV R1,@4(R5) ; PROCESS,*(.AP.) 0789
000102 012700 000001 MOV #1,R0 ; 0733
000106 000207 RTS PC
; Routine Size: 36 words, Routine Base: $CODE$ + 0716
; Maximum stack depth per invocation: 0 words
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 26
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (9)
; 0793 global routine CEX$$SET_EXCEPTION : CALL$ =
; 0794
; 0795 !++
; 0796 ! FUNCTIONAL DESCRIPTION:
; 0797 !
; 0798 !
; 0799 ! FORMAL PARAMETERS:
; 0800 ! None
; 0801 !
; 0802 ! IMPLICIT INPUTS:
; 0803 ! None
; 0804 !
; 0805 ! IMPLICIT OUTPUTS:
; 0806 ! None
; 0807 !
; 0808 ! ROUTINE VALUE:
; 0809 ! COMPLETION CODES:
; 0810 ! None
; 0811 !
; 0812 ! SIDE EFFECTS:
; 0813 ! None
; 0814 !--
; 0815
; 0816 begin
; 0817
; 0818 builtin
; 0819 actualcount,
; 0820 actualparameter;
; 0821
; 0822 if actualcount () eql 0 then return $CEX_FATAL_ERROR (MCB$_PARAMETER_ERROR);
; 0823
; 0824 begin
; 0825
; 0826 bind
; 0827 MEXV = uplit (CEX$GR_PRIMARY_EXCEPTION,
; 0828 CEX$GR_SECONDARY_EXCEPTION,
; 0829 CEX$GR_LAST_CHANCE_EXCEPTION) : vector [2];
; 0830
; 0831 local
; 0832 EXV : ref block [EXV$K_LENGTH] field ($CEX_EXVFIELDS);
; 0833
; 0834 if (EXV = actualparameter (1)) gtru 2 then return CE$EXV;
; 0835
; 0836 EXV = .MEXV [.EXV];
; 0837
; 0838 if actualcount () gtru 3
; 0839 then
; 0840 begin
; 0841
; 0842 local
; 0843 OLD : ref vector [3];
; 0844
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 27
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (9)
; 0845 if (OLD = actualparameter (3)) neqa 0
; 0846 then
; 0847 begin
; 0848
; 0849 bind
; 0850 PROCESS = EXV [EXV$A_PROCESS] : ref block [EXV$K_LENGTH] field ($CEX_PDTFIELDS);
; 0851
; 0852 OLD [0] = .EXV [EXV$A_DISPATCH];
; 0853 OLD [1] = .PROCESS [PDT$B_INDEX];
; 0854 OLD [2] = .EXV [EXV$A_ENABLE_DATA];
; 0855 OLD = OLD [2];
; 0856 end;
; 0857
; 0858 end;
; 0859
; 0860 if actualcount () gtru 2
; 0861 then
; 0862 begin
; 0863
; 0864 local
; 0865 NEW : ref vector [3];
; 0866
; 0867 if (NEW = actualparameter (2)) neqa 0
; 0868 then
; 0869 begin
; 0870
; 0871 local
; 0872 PROCESS : ref block [PDT$K_LENGTH] field ($CEX_PDTFIELDS);
; 0873
; 0874 if .CEX$GH_PROCESS_COUNT lssu .NEW [1] or
; 0875 (PROCESS = .CEX$AA_PROCESS_TABLE [.NEW [1]]) eqla 0
; 0876 then
; 0877 return $CEX_FATAL_ERROR (CE$PIX);
; 0878
; 0879 codecomment 'Disable the exception' :
; 0880 begin EXV [EXV$A_DISPATCH] = 0; end;
; 0881
; 0882 EXV [EXV$A_ENABLE_DATA] = .NEW [2];
; 0883 EXV [EXV$A_PROCESS] = .PROCESS;
; 0884 EXV [EXV$A_DISPATCH] = .NEW [0];
; 0885 end
; 0886 else
; 0887 EXV [EXV$A_DISPATCH] = 0;
; 0888
; 0889 end
; 0890 else
; 0891 EXV [EXV$A_DISPATCH] = 0;
; 0892
; 0893 end;
; 0894 MCB$_NORMAL
; 0895 end; !of routine CEX$$SET_EXCEPTION
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 28
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (9)
000052 .PSECT $PLIT$, RO , D
000052 000000G P.AAD: .WORD .MEXV1
000054 000000G .WORD .MEXV2
000056 000000G .WORD .MEXVL
000052' MEXV= P.AAD
.SBTTL $EXVEN
001026 .PSECT $CODE$, RO
000000 105715 $EXVEN::TSTB (R5) ; .AP. 0822
000002 001003 BNE 1$
000004 012700 001002 MOV #1002,R0
000010 000455 BR 5$
000012 016502 000002 1$: MOV 2(R5),R2 ; *(.AP.),EXV 0834
000016 020227 000002 CMP R2,#2 ; EXV,*
000022 101403 BLOS 2$
000024 012700 000460 MOV #460,R0
000030 000207 RTS PC
000032 010200 2$: MOV R2,R0 ; EXV,* 0836
000034 006300 ASL R0
000036 016002 000052' MOV MEXV(R0),R2 ; *,EXV
000042 121527 000003 CMPB (R5),#3 ; .AP.,* 0838
000046 101414 BLOS 3$
000050 016501 000006 MOV 6(R5),R1 ; *(.AP.),OLD 0845
000054 001411 BEQ 3$
000056 016221 000004 MOV 4(R2),(R1)+ ; *(EXV),OLD 0852
000062 016200 000002 MOV 2(R2),R0 ; *(EXV),* 0853
000066 116021 000010 MOVB 10(R0),(R1)+ ; *,OLD
000072 105021 CLRB (R1)+ ; OLD
000074 016211 000006 MOV 6(R2),(R1) ; *(EXV),OLD 0854
000100 121527 000002 3$: CMPB (R5),#2 ; .AP.,* 0860
000104 101432 BLOS 7$
000106 016501 000004 MOV 4(R5),R1 ; *(.AP.),NEW 0867
000112 001427 BEQ 7$
000114 023761 000000G 000002 CMP .PDBNM,2(R1) ; *,*(NEW) 0874
000122 103406 BLO 4$
000124 016100 000002 MOV 2(R1),R0 ; *(NEW),* 0875
000130 006300 ASL R0
000132 016005 000000G MOV .PDBVB(R0),R5 ; *,PROCESS
000136 001005 BNE 6$
000140 012700 000564 4$: MOV #564,R0 ; 0877
000144 010037 000000G 5$: MOV R0,.CEXST
000150 000207 RTS PC
000152 6$:
;+
; Disable the exception
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 29
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (9)
;-
000152 016162 000004 000006 MOV 4(R1),6(R2) ; *(NEW),*(EXV) 0882
000160 010562 000002 MOV R5,2(R2) ; PROCESS,*(EXV) 0883
000164 011162 000004 MOV (R1),4(R2) ; NEW,*(EXV) 0884
000170 000402 BR 8$ ; 0867
000172 005062 000004 7$: CLR 4(R2) ; *(EXV) 0891
000176 012700 000001 8$: MOV #1,R0 ; 0793
000202 000207 RTS PC
; Routine Size: 66 words, Routine Base: $CODE$ + 1026
; Maximum stack depth per invocation: 0 words
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 30
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (10)
; 0896 global routine CEX$$SET_LINE_PROCESSES : CALL$ =
; 0897
; 0898 !++
; 0899 ! FUNCTIONAL DESCRIPTION:
; 0900 !
; 0901 !
; 0902 ! FORMAL PARAMETERS:
; 0903 ! None
; 0904 !
; 0905 ! IMPLICIT INPUTS:
; 0906 ! None
; 0907 !
; 0908 ! IMPLICIT OUTPUTS:
; 0909 ! None
; 0910 !
; 0911 ! ROUTINE VALUE:
; 0912 ! COMPLETION CODES:
; 0913 ! None
; 0914 !
; 0915 ! SIDE EFFECTS:
; 0916 ! None
; 0917 !--
; 0918
; 0919 begin
; 0920
; 0921 builtin
; 0922 actualcount,
; 0923 actualparameter;
; 0924
; 0925 if actualcount () neq 2 then return $CEX_FATAL_ERROR (MCB$_PARAMETER_ERROR);
; 0926
; 0927 begin
; 0928
; 0929 local
; 0930 SLT : ref block [SLT$K_LENGTH] field ($CEX_SLTFIELDS);
; 0931
; 0932 if (SLT = FIND_LINE (actualparameter (1))) eqla 0 then return $CEX_FATAL_ERROR (CE$LIX);
; 0933
; 0934 begin
; 0935
; 0936 local
; 0937 BUF : ref vector [3],
; 0938 DDM_PROCESS : ref block [PDT$K_LENGTH] field ($CEX_PDTFIELDS),
; 0939 DLC_PROCESS : ref block [PDT$K_LENGTH] field ($CEX_PDTFIELDS),
; 0940 LLC_PROCESS : ref block [PDT$K_LENGTH] field ($CEX_PDTFIELDS);
; 0941
; 0942 BUF = actualparameter (2);
; 0943
; 0944 if (LLC_PROCESS = .BUF [0]) nequ 0
; 0945 then
; 0946
; 0947 if .LLC_PROCESS gequ .CEX$GH_PROCESS_COUNT
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 31
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (10)
; 0948 then
; 0949 return $CEX_FATAL_ERROR (CE$PIX);
; 0950
; 0951 if (LLC_PROCESS = .CEX$AA_PROCESS_TABLE [.LLC_PROCESS]) eqla 0
; 0952 then
; 0953 return $CEX_FATAL_ERROR (CE$PIX);
; 0954
; 0955 if (DLC_PROCESS = .BUF [1]) nequ 0
; 0956 then
; 0957
; 0958 if .DLC_PROCESS gequ .CEX$GH_PROCESS_COUNT
; 0959 then
; 0960 return $CEX_FATAL_ERROR (CE$PIX);
; 0961
; 0962 if (DLC_PROCESS = .CEX$AA_PROCESS_TABLE [.DLC_PROCESS]) eqla 0
; 0963 then
; 0964 return $CEX_FATAL_ERROR (CE$PIX);
; 0965
; 0966 if (DDM_PROCESS = .BUF [2]) nequ 0
; 0967 then
; 0968
; 0969 if .DDM_PROCESS gequ .CEX$GH_PROCESS_COUNT
; 0970 then
; 0971 return $CEX_FATAL_ERROR (CE$PIX);
; 0972
; 0973 if (DDM_PROCESS = .CEX$AA_PROCESS_TABLE [.DDM_PROCESS]) eqla 0
; 0974 then
; 0975 return $CEX_FATAL_ERROR (CE$PIX);
; 0976
; 0977 SLT [SLT$B_LLC_PROCESS_INDEX] = .LLC_PROCESS [PDT$B_INDEX];
; 0978 SLT [SLT$B_DLC_PROCESS_INDEX] = .DLC_PROCESS [PDT$B_INDEX];
; 0979 SLT [SLT$B_DDM_PROCESS_INDEX] = .DDM_PROCESS [PDT$B_INDEX];
; 0980 end;
; 0981 end;
; 0982 MCB$_NORMAL
; 0983 end; !of routine CEX$$SET_LINE_PROCESSES
.SBTTL $SLTST
000000 121527 000002 $SLTST::CMPB (R5),#2 ; .AP.,* 0925
000004 001405 BEQ 1$
000006 012700 001002 MOV #1002,R0
000012 010037 000000G MOV R0,.CEXST
000016 000207 RTS PC
000020 016501 000002 1$: MOV 2(R5),R1 ; *(.AP.),* 0932
000024 004737 000000V JSR PC,FIND.LINE
000030 005700 TST R0 ; SLT
000032 001003 BNE 2$
000034 012701 000544 MOV #544,R1
000040 000444 BR 7$
000042 016502 000004 2$: MOV 4(R5),R2 ; *(.AP.),BUF 0942
000046 011203 MOV (R2),R3 ; BUF,LLC.PROCESS 0944
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 32
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (10)
000050 001403 BEQ 3$
000052 020337 000000G CMP R3,.PDBNM ; LLC.PROCESS,* 0947
000056 103033 BHIS 6$ ; 0949
000060 010301 3$: MOV R3,R1 ; LLC.PROCESS,* 0951
000062 006301 ASL R1
000064 016103 000000G MOV .PDBVB(R1),R3 ; *,LLC.PROCESS
000070 001426 BEQ 6$ ; 0953
000072 016205 000002 MOV 2(R2),R5 ; *(BUF),DLC.PROCESS 0955
000076 001403 BEQ 4$
000100 020537 000000G CMP R5,.PDBNM ; DLC.PROCESS,* 0958
000104 103020 BHIS 6$ ; 0960
000106 010501 4$: MOV R5,R1 ; DLC.PROCESS,* 0962
000110 006301 ASL R1
000112 016105 000000G MOV .PDBVB(R1),R5 ; *,DLC.PROCESS
000116 001413 BEQ 6$ ; 0964
000120 016202 000004 MOV 4(R2),R2 ; *(BUF),DDM.PROCESS 0966
000124 001403 BEQ 5$
000126 020237 000000G CMP R2,.PDBNM ; DDM.PROCESS,* 0969
000132 103005 BHIS 6$ ; 0971
000134 010201 5$: MOV R2,R1 ; DDM.PROCESS,* 0973
000136 006301 ASL R1
000140 016102 000000G MOV .PDBVB(R1),R2 ; *,DDM.PROCESS
000144 001006 BNE 8$
000146 012701 000564 6$: MOV #564,R1 ; 0975
000152 010137 000000G 7$: MOV R1,.CEXST
000156 010100 MOV R1,R0
000160 000207 RTS PC
000162 116360 000010 000004 8$: MOVB 10(R3),4(R0) ; *(LLC.PROCESS),*(SLT) 0977
000170 116560 000010 000002 MOVB 10(R5),2(R0) ; *(DLC.PROCESS),*(SLT) 0978
000176 116210 000010 MOVB 10(R2),(R0) ; *(DDM.PROCESS),SLT 0979
000202 012700 000001 MOV #1,R0 ; 0896
000206 000207 RTS PC
; Routine Size: 68 words, Routine Base: $CODE$ + 1232
; Maximum stack depth per invocation: 1 word
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 33
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (11)
; 0984 global routine CEX$$SET_PROCESS : CALL$ =
; 0985
; 0986 !++
; 0987 ! FUNCTIONAL DESCRIPTION:
; 0988 !
; 0989 !
; 0990 ! FORMAL PARAMETERS:
; 0991 ! None
; 0992 !
; 0993 ! IMPLICIT INPUTS:
; 0994 ! None
; 0995 !
; 0996 ! IMPLICIT OUTPUTS:
; 0997 ! None
; 0998 !
; 0999 ! ROUTINE VALUE:
; 1000 ! COMPLETION CODES:
; 1001 ! None
; 1002 !
; 1003 ! SIDE EFFECTS:
; 1004 ! None
; 1005 !--
; 1006
; 1007 begin
; 1008
; 1009 builtin
; 1010 actualcount,
; 1011 actualparameter;
; 1012
; 1013 if actualcount () lss 1 or actualcount () gtr 2
; 1014 then
; 1015 return $CEX_FATAL_ERROR (MCB$_PARAMETER_ERROR);
; 1016
; 1017 actualparameter (1) = 0;
; 1018 begin
; 1019
; 1020 local
; 1021 PDT : ref vector;
; 1022
; 1023 PDT = CEX$AA_PROCESS_TABLE [0];
; 1024
; 1025 do
; 1026 begin
; 1027
; 1028 if .PDT [0] eqla 0
; 1029 then
; 1030 begin
; 1031
; 1032 local
; 1033 BIAS;
; 1034
; 1035 BIAS = .CEX$GA_CURRENT_PROCESS [PDT$W_CODE_BIAS];
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 34
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (11)
; 1036
; 1037 if actualcount () eql 2
; 1038 then
; 1039 begin
; 1040
; 1041 local
; 1042 PCB : ref block field (PCB_FIELDS),
; 1043 PCB_NAME : vector [2];
; 1044
; 1045 PCB_NAME [0] = %rad50_11 'NT.';
; 1046 PCB_NAME [1] = actualparameter (2);
; 1047
; 1048 if (PCB = FIND_PARTITION (PCB_NAME)) eqla 0
; 1049 then
; 1050 return $CEX_FATAL_ERROR (CE$ACV);
; 1051
; 1052 BIAS = .PCB [P_REL];
; 1053 end;
; 1054
; 1055 begin
; 1056
; 1057 local
; 1058 PDB : ref block [PDT$K_LENGTH - 1] field ($CEX_PDTFIELDS);
; 1059
; 1060 if not $RSX_GET_DSR ((PDT$K_LENGTH - 1)*%upval, PDB)
; 1061 then
; 1062 return $CEX_FATAL_ERROR (CE$RES);
; 1063
; 1064 begin
; 1065 $CEX_PHDDEF
; 1066
; 1067 bind
; 1068 HEADER = %o'140000' : block field ($CEX_PHDFIELDS);
; 1069
; 1070 local
; 1071 SAVE_MAP;
; 1072
; 1073 SMAP$ (SAVE_MAP);
; 1074 MAP$ (.BIAS);
; 1075 PDB [PDT$W_CODE_BIAS] = .BIAS;
; 1076 PDB [PDT$A_CODE_DISPATCH] = .HEADER [PHD$A_LLC_TABLE];
; 1077 MAP$ (.SAVE_MAP);
; 1078 end;
; 1079 PDB [PDT$W_DATA_BIAS] = 0;
; 1080 PDB [PDT$A_DATA_ADDRESS] = 0;
; 1081 PDB [PDT$B_INDEX] = actualparameter (1) =
; L 1082 %if %upval eql 1
; U 1083 %then (.PDT - CEX$AA_PROCESS_TABLE [0])
; L 1084 %else %if %upval eql 2
; 1085 %then (.PDT - CEX$AA_PROCESS_TABLE [0])^-1
; U 1086 %else %if %upval eql 4
; U 1087 %then (.PDT - CEX$AA_PROCESS_TABLE [0])^-2
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 35
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (11)
; U 1088 %else (.PDT - CEX$AA_PROCESS_TABLE [0])/%upval
; 1089 %fi %fi %fi;
; 1090 PDB [PDT$V_FLAGS] = 0;
; 1091 PDT [0] = .PDB;
; 1092 end;
; 1093 PDT = PDT [1];
; 1094
; 1095 if .PDT gtra .CEX$GA_PROCESS_TABLE_END
; 1096 then
; 1097 CEX$GA_PROCESS_TABLE_END = .PDT;
; 1098
; 1099 return MCB$_NORMAL;
; 1100 end;
; 1101
; 1102 end
; 1103 while (PDT = PDT [1]) lssa CEX$GA_PROCESS_TABLE_END;
; 1104
; 1105 end;
; 1106 return $CEX_FATAL_ERROR (CE$RES)
; 1107 end; !of routine CEX$$SET_PROCESS
.GLOBL $ALOCB
140000 HEADER= -40000
.SBTTL $PDBST
000000 024646 $PDBST::CMP -(SP),-(SP) ; 0984
000002 105715 TSTB (R5) ; .AP. 1013
000004 001403 BEQ 1$
000006 121527 000002 CMPB (R5),#2 ; .AP.,*
000012 101403 BLOS 2$
000014 012700 001002 1$: MOV #1002,R0 ; 1015
000020 000513 BR 9$
000022 005075 000002 2$: CLR @2(R5) ; *(.AP.) 1017
000026 012704 000000G MOV #.PDBVB,R4 ; *,PDT 1023
000032 005714 3$: TST (R4) ; PDT 1028
000034 001076 BNE 7$
000036 017703 000000G MOV @.CRPDB,R3 ; *,BIAS 1035
000042 121527 000002 CMPB (R5),#2 ; .AP.,* 1037
000046 001022 BNE 5$
000050 012716 055274 MOV #55274,(SP) ; *,PCB.NAME 1045
000054 016566 000004 000002 MOV 4(R5),2(SP) ; *(.AP.),PCB.NAME+2 1046
000062 010601 MOV SP,R1 ; PCB.NAME,* 1048
000064 004737 000000V JSR PC,FIND.PARTITION
000070 005700 TST R0 ; PCB
000072 001006 BNE 4$
000074 012701 000312 MOV #312,R1 ; 1050
000100 010137 000000G MOV R1,.CEXST
000104 010100 MOV R1,R0
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 36
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (11)
000106 000462 BR 10$
000110 016003 000014 4$: MOV 14(R0),R3 ; *(PCB),BIAS 1052
000114 012701 000012 5$: MOV #12,R1 ; 1060
000120 004737 000000G JSR PC,$ALOCB
000124 103447 BCS 8$
000126 010001 MOV R0,R1 ; $RSX$R0,PDB
000130 013700 000000G MOV KISAR6,R0 ; *,SAVE.MAP 1073
000134 010337 000000G MOV R3,KISAR6 ; BIAS,* 1074
000140 010311 MOV R3,(R1) ; BIAS,PDB 1075
000142 013761 140012 000002 MOV @#140012,2(R1) ; *,*(PDB) 1076
000150 010037 000000G MOV R0,KISAR6 ; SAVE.MAP,* 1077
000154 005061 000004 CLR 4(R1) ; *(PDB) 1079
000160 005061 000006 CLR 6(R1) ; *(PDB) 1080
000164 010400 MOV R4,R0 ; PDT,* 1085
000166 162700 000000G SUB #.PDBVB,R0
000172 006200 ASR R0
000174 010075 000002 MOV R0,@2(R5) ; *,*(.AP.) 1081
000200 110061 000010 MOVB R0,10(R1) ; *,*(PDB)
000204 105061 000011 CLRB 11(R1) ; *(PDB) 1090
000210 010124 MOV R1,(R4)+ ; PDB,PDT 1091
000212 020437 000000G CMP R4,.PDBVE ; PDT,* 1095
000216 101402 BLOS 6$
000220 010437 000000G MOV R4,.PDBVE ; PDT,* 1097
000224 012700 000001 6$: MOV #1,R0 ; 1030
000230 000411 BR 10$
000232 062704 000002 7$: ADD #2,R4 ; *,PDT 1103
000236 020427 000000G CMP R4,#.PDBVE ; PDT,*
000242 103673 BLO 3$
000244 012700 000652 8$: MOV #652,R0 ; 1106
000250 010037 000000G 9$: MOV R0,.CEXST
000254 022626 10$: CMP (SP)+,(SP)+ ; 0984
000256 000207 RTS PC
; Routine Size: 88 words, Routine Base: $CODE$ + 1442
; Maximum stack depth per invocation: 3 words
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 37
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (12)
; 1108 global routine CEX$$SET_PROCESS_NAME : CALL$ =
; 1109
; 1110 !++
; 1111 ! FUNCTIONAL DESCRIPTION:
; 1112 !
; 1113 !
; 1114 ! FORMAL PARAMETERS:
; 1115 ! None
; 1116 !
; 1117 ! IMPLICIT INPUTS:
; 1118 ! None
; 1119 !
; 1120 ! IMPLICIT OUTPUTS:
; 1121 ! None
; 1122 !
; 1123 ! ROUTINE VALUE:
; 1124 ! COMPLETION CODES:
; 1125 ! None
; 1126 !
; 1127 ! SIDE EFFECTS:
; 1128 ! None
; 1129 !--
; 1130
; 1131 begin
; 1132
; 1133 builtin
; 1134 actualcount,
; 1135 actualparameter;
; 1136
; 1137 if actualcount () neq 1 then return $CEX_FATAL_ERROR (MCB$_PARAMETER_ERROR);
; 1138
; 1139 begin
; 1140
; 1141 local
; 1142 NAME_ENTRY : ref block [PNM$K_LENGTH] field ($CEX_PNMFIELDS);
; 1143
; 1144 if FIND_PROCESS_NAME (actualparameter (1)) neqa 0 then return MCB$_BUSY_NAME;
; 1145
; 1146 if (NAME_ENTRY = FIND_PROCESS_NAME (0)) eqla 0 then return CE$RES;
; 1147
; 1148 NAME_ENTRY [PNM$W_NAME] = actualparameter (1);
; 1149 NAME_ENTRY [PNM$A_PROCESS] = .CEX$GA_CURRENT_PROCESS;
; 1150 end;
; 1151 MCB$_NORMAL
; 1152 end; !of routine CEX$$SET_PROCESS_NAME
.SBTTL $PNMST
000000 121527 000001 $PNMST::CMPB (R5),#1 ; .AP.,* 1137
000004 001405 BEQ 1$
000006 012700 001002 MOV #1002,R0
000012 010037 000000G MOV R0,.CEXST
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 38
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (12)
000016 000207 RTS PC
000020 016501 000002 1$: MOV 2(R5),R1 ; *(.AP.),* 1144
000024 004737 000000V JSR PC,FIND.PROCESS.NAME
000030 005700 TST R0
000032 001403 BEQ 2$
000034 012700 000300 MOV #300,R0
000040 000207 RTS PC
000042 005001 2$: CLR R1 ; 1146
000044 004737 000000V JSR PC,FIND.PROCESS.NAME
000050 005700 TST R0 ; NAME.ENTRY
000052 001003 BNE 3$
000054 012700 000652 MOV #652,R0
000060 000207 RTS PC
000062 016560 000002 000002 3$: MOV 2(R5),2(R0) ; *(.AP.),*(NAME.ENTRY) 1148
000070 013710 000000G MOV .CRPDB,(R0) ; *,NAME.ENTRY 1149
000074 012700 000001 MOV #1,R0 ; 1108
000100 000207 RTS PC
; Routine Size: 33 words, Routine Base: $CODE$ + 1722
; Maximum stack depth per invocation: 1 word
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 39
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (13)
; 1153 global routine CEX$$SET_VECTOR : CALL$ =
; 1154
; 1155 !++
; 1156 ! FUNCTIONAL DESCRIPTION:
; 1157 !
; 1158 !
; 1159 ! FORMAL PARAMETERS:
; 1160 ! None
; 1161 !
; 1162 ! IMPLICIT INPUTS:
; 1163 ! None
; 1164 !
; 1165 ! IMPLICIT OUTPUTS:
; 1166 ! None
; 1167 !
; 1168 ! ROUTINE VALUE:
; 1169 ! COMPLETION CODES:
; 1170 ! None
; 1171 !
; 1172 ! SIDE EFFECTS:
; 1173 ! None
; 1174 !--
; 1175
; 1176 begin
; 1177
; 1178 builtin
; 1179 actualcount,
; 1180 actualparameter;
; 1181
; 1182 if actualcount () neq 3 then return $CEX_FATAL_ERROR (MCB$_PARAMETER_ERROR);
; 1183
; 1184 begin
; 1185
; 1186 local
; 1187 DSP,
; 1188 ITB : ref block [ITB$K_LENGTH] field ($CEX_ITBFIELDS),
; 1189 PRI,
; 1190 VEC : ref vector [2];
; 1191
; 1192 external
; 1193 %name ('$NONSI'),
; 1194 %name ('V$$CTR');
; 1195
; 1196 VEC = actualparameter (1);
; 1197
; 1198 if .VEC geqa %name ('V$$CTR') or .VEC <0, 2> neq 0
; 1199 then
; 1200 return $CEX_FATAL_ERROR (CE$VEC);
; 1201
; 1202 if .VEC [0] neqa %name ('$NONSI')
; 1203 then
; 1204 return $CEX_FATAL_ERROR (CE$VCU);
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 40
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (13)
; 1205
; 1206 if (DSP = actualparameter (2)) lssa %o'120000' or .DSP gtra %o'140000'
; 1207 then
; 1208 return $CEX_FATAL_ERROR (CE$DSP);
; 1209
; 1210 if (PRI = actualparameter (3) - 4) gtru 7 - 4
; 1211 then
; 1212 return $CEX_FATAL_ERROR (CE$PRI);
; 1213
; 1214 if not $RSX_GET_DSR (ITB$K_LENGTH*%upval, ITB)
; 1215 then
; 1216 return $CEX_FATAL_ERROR (CE$RES);
; 1217
; 1218 ITB [ITB$W_JSR_5_INSTRUCTION] = %o'4537';
; 1219 ITB [ITB$A_JSR_5_ADDRESS] = .INTERRUPT_PRIORITY_BLOCK [.PRI];
; 1220 ITB [ITB$A_PROCESS] = .CEX$GA_CURRENT_PROCESS;
; 1221 ITB [ITB$A_DISPATCH] = .DSP;
; 1222 VEC [0] = ITB [ITB$V_JSR_5];
; 1223 end;
; 1224 MCB$_NORMAL
; 1225 end; !of routine CEX$$SET_VECTOR
.SBTTL $VECST
000000 121527 000003 $VECST::CMPB (R5),#3 ; .AP.,* 1182
000004 001403 BEQ 1$
000006 012700 001002 MOV #1002,R0
000012 000457 BR 9$
000014 016504 000002 1$: MOV 2(R5),R4 ; *(.AP.),VEC 1196
000020 020427 000000G CMP R4,#V$$CTR ; VEC,* 1198
000024 103003 BHIS 2$
000026 032704 000003 BIT #3,R4 ; *,VEC
000032 001403 BEQ 3$
000034 012700 000742 2$: MOV #742,R0 ; 1200
000040 000444 BR 9$
000042 021427 000000G 3$: CMP (R4),#$NONSI ; VEC,* 1202
000046 001403 BEQ 4$
000050 012700 000762 MOV #762,R0 ; 1204
000054 000436 BR 9$
000056 016503 000004 4$: MOV 4(R5),R3 ; *(.AP.),DSP 1206
000062 020327 120000 CMP R3,#120000 ; DSP,*
000066 103403 BLO 5$
000070 020327 140000 CMP R3,#140000 ; DSP,*
000074 101403 BLOS 6$
000076 012700 000444 5$: MOV #444,R0 ; 1208
000102 000423 BR 9$
000104 016505 000006 6$: MOV 6(R5),R5 ; *(.AP.),PRI 1210
000110 162705 000004 SUB #4,R5 ; *,PRI
000114 020527 000003 CMP R5,#3 ; PRI,*
000120 101403 BLOS 7$
000122 012700 000602 MOV #602,R0 ; 1212
000126 000411 BR 9$
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 41
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (13)
000130 012701 000010 7$: MOV #10,R1 ; 1214
000134 004737 000000G JSR PC,$ALOCB
000140 103402 BCS 8$
000142 010001 MOV R0,R1 ; $RSX$R0,ITB
000144 000405 BR 10$
000146 012700 000652 8$: MOV #652,R0 ; 1216
000152 010037 000000G 9$: MOV R0,.CEXST
000156 000207 RTS PC
000160 012711 004537 10$: MOV #4537,(R1) ; *,ITB 1218
000164 010500 MOV R5,R0 ; PRI,* 1219
000166 006300 ASL R0
000170 016061 000042' 000002 MOV INTERRUPT.PRIORITY.BLOCK(R0),2(R1) ;
; *,*(ITB)
000176 013761 000000G 000004 MOV .CRPDB,4(R1) ; *,*(ITB) 1220
000204 010361 000006 MOV R3,6(R1) ; DSP,*(ITB) 1221
000210 010114 MOV R1,(R4) ; ITB,VEC 1222
000212 012700 000001 MOV #1,R0 ; 1153
000216 000207 RTS PC
; Routine Size: 72 words, Routine Base: $CODE$ + 2024
; Maximum stack depth per invocation: 1 word
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 42
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (14)
; 1226 routine ALLOCATE_BUFFERS (BLKS) : LINKAGE_BLKS =
; 1227
; 1228 !++
; 1229 ! FUNCTIONAL DESCRIPTION:
; 1230 !
; 1231 !
; 1232 ! FORMAL PARAMETERS:
; 1233 ! None
; 1234 !
; 1235 ! IMPLICIT INPUTS:
; 1236 ! None
; 1237 !
; 1238 ! IMPLICIT OUTPUTS:
; 1239 ! None
; 1240 !
; 1241 ! ROUTINE VALUE:
; 1242 ! COMPLETION CODES:
; 1243 ! None
; 1244 !
; 1245 ! SIDE EFFECTS:
; 1246 ! None
; 1247 !--
; 1248
; 1249 begin
; 1250
; 1251 local
; 1252 BIAS;
; 1253
; 1254 BIAS = 0;
; 1255
; 1256 if %(not)% CEX$$ALLOCATE_CORE (.BLKS) then return .BIAS;
; 1257
; 1258 SMAP$ (BIAS);
; 1259 .BIAS
; 1260 end; !of routine ALLOCATE_BUFFERS
.SBTTL ALLOCATE.BUFFERS
000000 005000 ALLOCATE.BUFFERS:
CLR R0 ; BIAS 1254
000002 004737 000000G JSR PC,$BLKGT ; 1256
000006 103402 BLO 1$
000010 013700 000000G MOV KISAR6,R0 ; *,BIAS 1258
000014 000207 1$: RTS PC ; 1226
; Routine Size: 7 words, Routine Base: $CODE$ + 2244
; Maximum stack depth per invocation: 1 word
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 43
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (15)
; 1261 routine ALLOCATE_BUFFER_POOL (BFP) : LINKAGE_ADR novalue =
; 1262
; 1263 !++
; 1264 ! FUNCTIONAL DESCRIPTION:
; 1265 !
; 1266 !
; 1267 ! FORMAL PARAMETERS:
; 1268 ! None
; 1269 !
; 1270 ! IMPLICIT INPUTS:
; 1271 ! None
; 1272 !
; 1273 ! IMPLICIT OUTPUTS:
; 1274 ! None
; 1275 !
; 1276 ! ROUTINE VALUE:
; 1277 ! COMPLETION CODES:
; 1278 ! None
; 1279 !
; 1280 ! SIDE EFFECTS:
; 1281 ! None
; 1282 !--
; 1283
; 1284 begin
; 1285
; 1286 map
; 1287 BFP : ref block [BFP$K_LENGTH] field ($CEX_BFPFIELDS);
; 1288
; 1289 local
; 1290 BIAS,
; 1291 COUNT;
; 1292
; 1293 if (COUNT = .BFP [BFP$H_ALLOCATION_MAXIMUM]) leq 0 then return;
; 1294
; 1295 begin
; 1296
; 1297 local
; 1298 BLKS;
; 1299
; 1300 begin
; 1301
; 1302 local
; 1303 HIGH;
; 1304
; 1305 CEX$$MULTIPLY_32 (.COUNT, (BFH$K_LENGTH*%upval) + .BFP [BFP$H_SIZE]; BLKS, HIGH);
; 1306 CEX$$ADD_32 (%o'77', .BLKS, .HIGH; BLKS, HIGH);
; 1307 CEX$$SHIFT_32 (-6, .BLKS, .HIGH; BLKS, HIGH);
; 1308 end;
; 1309
; 1310 if (BIAS = ALLOCATE_BUFFERS (.BLKS)) eql 0 then return;
; 1311
; 1312 BFP [BFP$W_ALLOCATED_BIAS] = .BIAS;
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 44
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (15)
; 1313 BFP [BFP$W_ALLOCATED_BLKS] = .BLKS;
; 1314 end;
; 1315 BFP [BFP$H_ALLOCATED] = .COUNT;
; 1316 begin
; 1317
; 1318 local
; 1319 ADDRESS : ref block [BFH$K_LENGTH] field ($CEX_BFHFIELDS);
; 1320
; 1321 ADDRESS = %o'140000';
; 1322
; 1323 do
; 1324 begin
; 1325 BFP [BFP$H_FREE_COUNT] = .BFP [BFP$H_FREE_COUNT] + 1;
; 1326 begin
; 1327
; 1328 bind
; 1329 LAST = .BFP [BFP$A_QUEUE_LAST_ADDR] : block field ($CEX_BFHFIELDS);
; 1330
; 1331 MAP$ (.BFP [BFP$W_QUEUE_LAST_BIAS]);
; 1332 LAST [BFH$W_BIAS] = .BIAS;
; 1333 LAST [BFH$A_ADDRESS] = .ADDRESS;
; 1334 end;
; 1335 BFP [BFP$W_QUEUE_LAST_BIAS] = .BIAS;
; 1336 BFP [BFP$A_QUEUE_LAST_ADDR] = .ADDRESS;
; 1337 MAP$ (.BIAS);
; 1338 ADDRESS [BFH$W_BIAS] = 0;
; 1339 ADDRESS [BFH$A_ADDRESS] = 0;
; 1340 ADDRESS [BFH$H_SIZE] = 0;
; 1341 ADDRESS [BFH$A_PROCESS] = 0;
; 1342 ADDRESS = vector [.ADDRESS, BFH$K_LENGTH]; %(force auto-increment)%
; 1343 ADDRESS = .ADDRESS + .BFP [BFP$H_SIZE];
; 1344 BIAS = .BIAS + .ADDRESS <6, 7>;
; 1345 ADDRESS <6, 7> = 0;
; 1346 end
; 1347 while (COUNT = .COUNT - 1) neq 0;
; 1348
; 1349 end;
; 1350 end; !of routine ALLOCATE_BUFFER_POOL
.SBTTL ALLOCATE.BUFFER.POOL
000000 004137 000000G ALLOCATE.BUFFER.POOL:
JSR R1,$SAVE3 ; 1261
000004 016503 000020 MOV 20(R5),R3 ; *(BFP),COUNT 1293
000010 003471 BLE 2$
000012 011500 MOV (R5),R0 ; BFP,* 1305
000014 062700 000010 ADD #10,R0
000020 010302 MOV R3,R2 ; COUNT,*
000022 004737 000000G JSR PC,$MUL32
000026 012702 000077 MOV #77,R2 ; 1306
000032 004737 000000G JSR PC,$ADD32
000036 012702 177772 MOV #-6,R2 ; 1307
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 45
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (15)
000042 004737 000000G JSR PC,$ASH32
000046 004737 002244' JSR PC,ALLOCATE.BUFFERS ; 1310
000052 005700 TST R0 ; BIAS
000054 001447 BEQ 2$
000056 010065 000020 MOV R0,20(R5) ; BIAS,*(BFP) 1312
000062 010165 000022 MOV R1,22(R5) ; BLKS,*(BFP) 1313
000066 010365 000016 MOV R3,16(R5) ; COUNT,*(BFP) 1315
000072 012702 140000 MOV #-40000,R2 ; *,ADDRESS 1321
000076 005265 000002 1$: INC 2(R5) ; *(BFP) 1325
000102 016537 000010 000000G MOV 10(R5),KISAR6 ; *(BFP),* 1331
000110 010075 000012 MOV R0,@12(R5) ; BIAS,*(BFP) 1332
000114 016501 000012 MOV 12(R5),R1 ; *(BFP),* 1333
000120 010261 000002 MOV R2,2(R1) ; ADDRESS,*
000124 010065 000010 MOV R0,10(R5) ; BIAS,*(BFP) 1335
000130 010265 000012 MOV R2,12(R5) ; ADDRESS,*(BFP) 1336
000134 010037 000000G MOV R0,KISAR6 ; BIAS,* 1337
000140 005022 CLR (R2)+ ; ADDRESS 1338
000142 005022 CLR (R2)+ ; ADDRESS 1339
000144 005022 CLR (R2)+ ; ADDRESS 1340
000146 005022 CLR (R2)+ ; ADDRESS 1341
000150 061502 ADD (R5),R2 ; BFP,ADDRESS 1343
000152 010201 MOV R2,R1 ; ADDRESS,* 1344
000154 072127 177772 ASH #-6,R1
000160 042701 177600 BIC #177600,R1
000164 060100 ADD R1,R0 ; *,BIAS
000166 042702 017700 BIC #17700,R2 ; *,ADDRESS 1345
000172 077337 SOB R3,1$ ; COUNT,* 1347
000174 000207 2$: RTS PC ; 1261
; Routine Size: 63 words, Routine Base: $CODE$ + 2262
; Maximum stack depth per invocation: 5 words
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 46
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (16)
; 1351 routine ALLOCATE_CCB_AND_BUFFER_POOL (CBP) : LINKAGE_ADR novalue =
; 1352
; 1353 !++
; 1354 ! FUNCTIONAL DESCRIPTION:
; 1355 !
; 1356 !
; 1357 ! FORMAL PARAMETERS:
; 1358 ! None
; 1359 !
; 1360 ! IMPLICIT INPUTS:
; 1361 ! None
; 1362 !
; 1363 ! IMPLICIT OUTPUTS:
; 1364 ! None
; 1365 !
; 1366 ! ROUTINE VALUE:
; 1367 ! COMPLETION CODES:
; 1368 ! None
; 1369 !
; 1370 ! SIDE EFFECTS:
; 1371 ! None
; 1372 !--
; 1373
; 1374 begin
; 1375
; 1376 map
; 1377 CBP : ref block [CBP$K_LENGTH] field ($CEX_CBPFIELDS);
; 1378
; 1379 local
; 1380 ADDR : ref vector,
; 1381 BIAS,
; 1382 COUNT;
; 1383
; 1384 if (COUNT = .CBP [CBP$H_ALLOCATION_MAXIMUM]) leq 0 then return;
; 1385
; 1386 BIAS = 0;
; 1387
; 1388 if .CBP [CBP$H_SIZE] neq 0
; 1389 then
; 1390 begin
; 1391
; 1392 local
; 1393 BLKS;
; 1394
; 1395 begin
; 1396
; 1397 local
; 1398 HIGH;
; 1399
; 1400 CEX$$MULTIPLY_32 (.COUNT, .CBP [CBP$H_SIZE]; BLKS, HIGH);
; 1401 CEX$$ADD_32 (%o'77', .BLKS, .HIGH; BLKS, HIGH);
; 1402 CEX$$SHIFT_32 (-6, .BLKS, .HIGH; BLKS, HIGH);
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 47
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (16)
; 1403 end;
; 1404
; 1405 if (BIAS = ALLOCATE_BUFFERS (.BLKS)) eql 0
; 1406 then
; 1407 signal (CE$RBA);
; 1408
; 1409 CBP [CBP$W_ALLOCATED_BIAS] = .BIAS;
; 1410 CBP [CBP$W_ALLOCATED_BLKS] = .BLKS;
; 1411 end;
; 1412
; 1413 begin
; 1414
; 1415 local
; 1416 LENGTH;
; 1417
; 1418 if not $RSX_GET_DSR (CCB$K_LENGTH*%upval*.COUNT, ADDR, LENGTH)
; 1419 then
; 1420 signal (CE$CBA);
; 1421
; 1422 CBP [CBP$A_ALLOCATED_ADDRESS] = .ADDR;
; 1423 CBP [CBP$W_ALLOCATED_LENGTH] = .LENGTH;
; 1424 end;
; 1425 CBP [CBP$H_ALLOCATED] = .COUNT;
; 1426 begin
; 1427
; 1428 local
; 1429 ADDRESS : ref vector;
; 1430
; 1431 ADDRESS = (if .BIAS neq 0 then %o'140000' else 0);
; 1432
; 1433 do
; 1434 begin
; 1435
; 1436 local
; 1437 CCB : ref block [CCB$K_LENGTH] field ($CEX_CCBFIELDS);
; 1438
; 1439 CCB = .ADDR;
; 1440
; 1441 decr TEMP from CCB$K_LENGTH to 1 do
; 1442 begin
; 1443 ADDR [0] = 0;
; 1444 ADDR = ADDR [1]; %(force auto-increment)%
; 1445 end;
; 1446
; 1447 if .CBP [CBP$H_SIZE] neq 0
; 1448 then
; 1449 begin
; 1450 CCB [CCB$W_BIAS] = .BIAS;
; 1451 CCB [CCB$A_ADDRESS] = .ADDRESS;
; 1452 CCB [CCB$V_RDB] = TRUE;
; 1453 ADDRESS = .ADDRESS + .CBP [CBP$H_SIZE];
; 1454 BIAS = .BIAS + .ADDRESS <6, 7>;
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 48
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (16)
; 1455 ADDRESS <6, 7> = 0;
; 1456 end;
; 1457
; 1458 CBP [CBP$H_FREE_COUNT] = .CBP [CBP$H_FREE_COUNT] + 1;
; 1459 begin
; 1460
; 1461 bind
; 1462 LAST = .CBP [CBP$A_QUEUE_LAST] : block field ($CEX_CCBFIELDS);
; 1463
; 1464 LAST [CCB$A_LINK] = .CCB;
; 1465 end;
; 1466 CBP [CBP$A_QUEUE_LAST] = .CCB;
; 1467 end
; 1468 while (COUNT = .COUNT - 1) neq 0;
; 1469
; 1470 end;
; 1471 end; !of routine ALLOCATE_CCB_AND_BUFFER_POOL
.SBTTL ALLOCATE.CCB.AND.BUFFER.POOL
000000 004137 000000G ALLOCATE.CCB.AND.BUFFER.POOL:
JSR R1,$SAVE4 ; 1351
000004 016546 000024 MOV 24(R5),-(SP) ; *(CBP),COUNT 1384
000010 003531 BLE 9$
000012 005003 CLR R3 ; BIAS 1386
000014 005715 TST (R5) ; CBP 1388
000016 001433 BEQ 2$
000020 011602 MOV (SP),R2 ; COUNT,* 1400
000022 011500 MOV (R5),R0 ; CBP,*
000024 004737 000000G JSR PC,$MUL32
000030 012702 000077 MOV #77,R2 ; 1401
000034 004737 000000G JSR PC,$ADD32
000040 012702 177772 MOV #-6,R2 ; 1402
000044 004737 000000G JSR PC,$ASH32
000050 004737 002244' JSR PC,ALLOCATE.BUFFERS ; 1405
000054 010003 MOV R0,R3 ; *,BIAS
000056 001007 BNE 1$
000060 012746 000614 MOV #614,-(SP) ; 1407
000064 012746 000001 MOV #1,-(SP)
000070 004737 000000G JSR PC,$IGNAL
000074 022626 CMP (SP)+,(SP)+
000076 010365 000024 1$: MOV R3,24(R5) ; BIAS,*(CBP) 1409
000102 010165 000026 MOV R1,26(R5) ; BLKS,*(CBP) 1410
000106 011601 2$: MOV (SP),R1 ; COUNT,* 1418
000110 070127 000042 MUL #42,R1
000114 010102 MOV R1,R2
000116 004737 000000G JSR PC,$ALOCB
000122 103402 BCS 3$
000124 010004 MOV R0,R4 ; $RSX$R0,ADDR
000126 000407 BR 4$
000130 012746 000364 3$: MOV #364,-(SP) ; 1420
000134 012746 000001 MOV #1,-(SP)
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 49
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (16)
000140 004737 000000G JSR PC,$IGNAL
000144 022626 CMP (SP)+,(SP)+
000146 010465 000030 4$: MOV R4,30(R5) ; ADDR,*(CBP) 1422
000152 010165 000032 MOV R1,32(R5) ; LENGTH,*(CBP) 1423
000156 011665 000002 MOV (SP),2(R5) ; COUNT,*(CBP) 1425
000162 005703 TST R3 ; BIAS 1431
000164 001403 BEQ 5$
000166 012700 140000 MOV #-40000,R0 ; *,ADDRESS
000172 000401 BR 6$
000174 005000 5$: CLR R0 ; ADDRESS
000176 010401 6$: MOV R4,R1 ; ADDR,CCB 1439
000200 012702 000021 MOV #21,R2 ; *,TEMP 1441
000204 005024 7$: CLR (R4)+ ; ADDR 1443
000206 077202 SOB R2,7$ ; TEMP,* 0000
000210 005715 TST (R5) ; CBP 1447
000212 001420 BEQ 8$
000214 010361 000016 MOV R3,16(R1) ; BIAS,*(CCB) 1450
000220 010061 000020 MOV R0,20(R1) ; ADDRESS,*(CCB) 1451
000224 052761 000400 000006 BIS #400,6(R1) ; *,*(CCB) 1452
000232 061500 ADD (R5),R0 ; CBP,ADDRESS 1453
000234 010002 MOV R0,R2 ; ADDRESS,* 1454
000236 072227 177772 ASH #-6,R2
000242 042702 177600 BIC #177600,R2
000246 060203 ADD R2,R3 ; *,BIAS
000250 042700 017700 BIC #17700,R0 ; *,ADDRESS 1455
000254 005265 000012 8$: INC 12(R5) ; *(CBP) 1458
000260 010175 000010 MOV R1,@10(R5) ; CCB,*(CBP) 1464
000264 010165 000010 MOV R1,10(R5) ; CCB,*(CBP) 1466
000270 005316 DEC (SP) ; COUNT 1468
000272 001341 BNE 6$
000274 005726 9$: TST (SP)+ ; 1351
000276 000207 RTS PC
; Routine Size: 96 words, Routine Base: $CODE$ + 2460
; Maximum stack depth per invocation: 9 words
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 50
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (17)
; 1472 routine CECLK (TIMER_BLOCK) : RSX_CLK novalue =
; 1473
; 1474 !++
; 1475 ! FUNCTIONAL DESCRIPTION:
; 1476 !
; 1477 !
; 1478 ! FORMAL PARAMETERS:
; 1479 ! None
; 1480 !
; 1481 ! IMPLICIT INPUTS:
; 1482 ! None
; 1483 !
; 1484 ! IMPLICIT OUTPUTS:
; 1485 ! None
; 1486 !
; 1487 ! ROUTINE VALUE:
; 1488 ! COMPLETION CODES:
; 1489 ! None
; 1490 !
; 1491 ! SIDE EFFECTS:
; 1492 ! None
; 1493 !--
; 1494
; 1495 begin
; 1496
; 1497 map
; 1498 TIMER_BLOCK : ref block [TMB$K_LENGTH] field ($CEX_TMBFIELDS);
; 1499
; 1500 CEX$$ENTER_CEX ();
; 1501 CEX$GW_SHORT_TIMER_COUNT = .CEX$GW_SHORT_TIMER_COUNT + 1;
; 1502
; 1503 if .CEX$GW_SHORT_TIMER_COUNT eql 0
; 1504 then
; 1505 CEX$GW_SHORT_TIMER_COUNT = .CEX$GW_SHORT_TIMER_COUNT - 1;
; 1506
; 1507 CEX$$DISPATCH_PROCESS (.TIMER_BLOCK [TMB$A_PROCESS], FC_TIM, FM_STM);
; 1508 SCHEDULE ();
; 1509 CEX$$EXIT_CEX ();
; 1510 end; !of routine CECLK
.SBTTL CECLK
000000 004737 000000G CECLK: JSR PC,$CEXSV ; 1500
000004 005237 000000G INC .STMCT ; 1501
000010 001002 BNE 1$ ; 1503
000012 005337 000000G DEC .STMCT ; 1505
000016 016400 000020 1$: MOV 20(R4),R0 ; *(TIMER.BLOCK),* 1507
000022 012702 000012 MOV #12,R2
000026 005003 CLR R3
000030 004737 000000G JSR PC,$PRCDS
000034 004737 000000V JSR PC,SCHEDULE ; 1508
000040 004737 000000G JSR PC,$CEXXT ; 1509
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 51
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (17)
000044 000207 RTS PC ; 1472
; Routine Size: 19 words, Routine Base: $CODE$ + 2760
; Maximum stack depth per invocation: 1 word
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 52
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (18)
; 1511 routine CEFRK (FORK_BLOCK) : RSX_FRK novalue =
; 1512
; 1513 !++
; 1514 ! FUNCTIONAL DESCRIPTION:
; 1515 !
; 1516 !
; 1517 ! FORMAL PARAMETERS:
; 1518 ! None
; 1519 !
; 1520 ! IMPLICIT INPUTS:
; 1521 ! None
; 1522 !
; 1523 ! IMPLICIT OUTPUTS:
; 1524 ! None
; 1525 !
; 1526 ! ROUTINE VALUE:
; 1527 ! COMPLETION CODES:
; 1528 ! None
; 1529 !
; 1530 ! SIDE EFFECTS:
; 1531 ! None
; 1532 !--
; 1533
; 1534 begin
; 1535 CEX$$ENTER_CEX ();
; 1536 CEX$GA_CEX_FORK_BLOCK = .FORK_BLOCK;
; 1537 SCHEDULE ();
; 1538 CEX$$EXIT_CEX ();
; 1539 end; !of routine CEFRK
.SBTTL CEFRK
000000 004737 000000G CEFRK: JSR PC,$CEXSV ; 1535
000004 010437 000000G MOV R4,.FRKBK ; FORK.BLOCK,* 1536
000010 004737 000000V JSR PC,SCHEDULE ; 1537
000014 004737 000000G JSR PC,$CEXXT ; 1538
000020 000207 RTS PC ; 1511
; Routine Size: 9 words, Routine Base: $CODE$ + 3026
; Maximum stack depth per invocation: 1 word
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 53
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (19)
; 1540 routine CENOP : RSX_UCB novalue =
; 1541
; 1542 !++
; 1543 ! FUNCTIONAL DESCRIPTION:
; 1544 !
; 1545 !
; 1546 ! FORMAL PARAMETERS:
; 1547 ! None
; 1548 !
; 1549 ! IMPLICIT INPUTS:
; 1550 ! None
; 1551 !
; 1552 ! IMPLICIT OUTPUTS:
; 1553 ! None
; 1554 !
; 1555 ! ROUTINE VALUE:
; 1556 ! COMPLETION CODES:
; 1557 ! None
; 1558 !
; 1559 ! SIDE EFFECTS:
; 1560 ! None
; 1561 !--
; 1562
; 1563 begin
; 1564 NO_OPERATION
; 1565 end; !of routine CENOP
.SBTTL CENOP
000000 000207 CENOP: RTS PC ; 1540
; Routine Size: 1 word, Routine Base: $CODE$ + 3050
; Maximum stack depth per invocation: 0 words
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 54
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (20)
; 1566 routine CEPWF (UCB, SCB) : RSX_UCB_SCB novalue =
; 1567
; 1568 !++
; 1569 ! FUNCTIONAL DESCRIPTION:
; 1570 !
; 1571 !
; 1572 ! FORMAL PARAMETERS:
; 1573 ! None
; 1574 !
; 1575 ! IMPLICIT INPUTS:
; 1576 ! None
; 1577 !
; 1578 ! IMPLICIT OUTPUTS:
; 1579 ! None
; 1580 !
; 1581 ! ROUTINE VALUE:
; 1582 ! COMPLETION CODES:
; 1583 ! None
; 1584 !
; 1585 ! SIDE EFFECTS:
; 1586 ! None
; 1587 !--
; 1588
; 1589 begin
; 1590
; 1591 map
; 1592 SCB : ref block field (SCB_FIELDS),
; 1593 UCB : ref block field (UCB_FIELDS);
; 1594
; 1595 UCB [US_BSY] = TRUE;
; 1596 SCB [S_CTM] = 1;
; 1597 SCB = SCB [$SUB_FIELD (S_FRK, 1, 0, 16, 0)];
; 1598 begin
; 1599
; 1600 map
; 1601 SCB : ref vector;
; 1602
; 1603 external
; 1604 KISAR5;
; 1605
; 1606 SCB [0] = CEFRK;
; 1607 SCB [2] = SCB [0];
; 1608 SCB [3] = .KISAR5;
; 1609 CEX$GA_CEX_FORK_BLOCK = .SCB;
; 1610 end;
; L 1611 %if CEX$CFG_UNIBUS_MAPPING
; U 1612 %then
; U 1613 INITIALIZE_UNIBUS_MAPPING ();
; 1614 %fi
; 1615 CEX$$ENTER_CEX ();
; 1616 begin
; 1617
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 55
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (20)
; 1618 local
; 1619 MODIFIER;
; 1620
; 1621 MODIFIER = FM_PWF;
; 1622
; 1623 if (CEX$GG_POWER_FAIL_COUNT = .CEX$GG_POWER_FAIL_COUNT + 1) eql 0
; 1624 then
; 1625 begin
; 1626 MODIFIER = FM_PIN;
; 1627 INITIALIZE_CEXCOM_DATA (.UCB);
; 1628 end;
; 1629
; 1630 begin
; 1631
; 1632 local
; 1633 PDT : ref vector;
; 1634
; 1635 PDT = CEX$AA_PROCESS_TABLE [0];
; 1636
; 1637 do
; 1638 begin
; 1639
; 1640 local
; 1641 PROCESS : ref block [PDT$K_LENGTH] field ($CEX_PDTFIELDS);
; 1642
; 1643 if (PROCESS = .PDT [0]) neq 0
; 1644 then
; 1645 CEX$$DISPATCH_PROCESS (.PROCESS, FC_SYS, .MODIFIER);
; 1646
; 1647 end
; 1648 while (PDT = PDT [1]) lssa .CEX$GA_PROCESS_TABLE_END;
; 1649
; 1650 end;
; 1651 end;
; 1652 SCHEDULE ();
; 1653 CEX$$EXIT_CEX ();
; 1654 end; !of routine CEPWF
.GLOBL KISAR5
.SBTTL CEPWF
000000 024646 CEPWF: CMP -(SP),-(SP) ; 1566
000002 052765 100000 000004 BIS #100000,4(R5) ; *,*(UCB) 1595
000010 112764 000001 000006 MOVB #1,6(R4) ; *,*(SCB) 1596
000016 062704 000020 ADD #20,R4 ; *,SCB 1597
000022 012714 003026' MOV #CEFRK,(R4) ; *,SCB 1606
000026 010464 000004 MOV R4,4(R4) ; SCB,*(SCB) 1607
000032 013764 000000G 000006 MOV KISAR5,6(R4) ; *,*(SCB) 1608
000040 010437 000000G MOV R4,.FRKBK ; SCB,* 1609
000044 004737 000000G JSR PC,$CEXSV ; 1615
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 56
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (20)
000050 012716 000004 MOV #4,(SP) ; *,MODIFIER 1621
000054 005237 000000G INC .PWRFL ; 1623
000060 001004 BNE 1$
000062 012716 000006 MOV #6,(SP) ; *,MODIFIER 1626
000066 004737 000000V JSR PC,INITIALIZE.CEXCOM.DATA ; 1627
000072 012766 000000G 000002 1$: MOV #.PDBVB,2(SP) ; *,PDT 1635
000100 017600 000002 2$: MOV @2(SP),R0 ; PDT,PROCESS 1643
000104 001405 BEQ 3$
000106 012702 000012 MOV #12,R2 ; 1645
000112 011603 MOV (SP),R3 ; MODIFIER,*
000114 004737 000000G JSR PC,$PRCDS
000120 062766 000002 000002 3$: ADD #2,2(SP) ; *,PDT 1648
000126 026637 000002 000000G CMP 2(SP),.PDBVE ; PDT,*
000134 103761 BLO 2$
000136 004737 000000V JSR PC,SCHEDULE ; 1652
000142 004737 000000G JSR PC,$CEXXT ; 1653
000146 022626 CMP (SP)+,(SP)+ ; 1566
000150 000207 RTS PC
; Routine Size: 53 words, Routine Base: $CODE$ + 3052
; Maximum stack depth per invocation: 3 words
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 57
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (21)
; 1655 routine CETIM (UCB, SCB) : RSX_UCB_SCB novalue =
; 1656
; 1657 !++
; 1658 ! FUNCTIONAL DESCRIPTION:
; 1659 !
; 1660 !
; 1661 ! FORMAL PARAMETERS:
; 1662 ! None
; 1663 !
; 1664 ! IMPLICIT INPUTS:
; 1665 ! None
; 1666 !
; 1667 ! IMPLICIT OUTPUTS:
; 1668 ! None
; 1669 !
; 1670 ! ROUTINE VALUE:
; 1671 ! COMPLETION CODES:
; 1672 ! None
; 1673 !
; 1674 ! SIDE EFFECTS:
; 1675 ! None
; 1676 !--
; 1677
; 1678 begin
; 1679
; 1680 map
; 1681 SCB : ref block field (SCB_FIELDS),
; 1682 UCB : ref block field (UCB_FIELDS);
; 1683
; 1684 SCB [S_CTM] = .SCB [S_CTM] + 1;
; 1685 CEX$$ENTER_CEX ();
; 1686 begin
; 1687
; 1688 local
; 1689 PDT : ref vector;
; 1690
; 1691 PDT = CEX$AA_PROCESS_TABLE [0];
; 1692
; 1693 do
; 1694 begin
; 1695
; 1696 local
; 1697 PROCESS : ref block [PDT$K_LENGTH] field ($CEX_PDTFIELDS);
; 1698
; 1699 if (PROCESS = .PDT [0]) neq 0
; 1700 then
; 1701 begin
; 1702
; 1703 if .PROCESS [PDT$V_LONG_TIMER]
; 1704 then
; 1705 begin
; 1706
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 58
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (21)
; 1707 field
; 1708 TIMER = [0, 0, 8, 0];
; 1709
; 1710 bind
; 1711 DB = PROCESS [PDT$A_DATA_ADDRESS] : ref block field (TIMER);
; 1712
; 1713 MAP$ (.PROCESS [PDT$W_DATA_BIAS]);
; 1714
; 1715 if .DB [TIMER] nequ 0
; 1716 then
; 1717 begin
; 1718 DB [TIMER] = .DB [TIMER] - 1;
; 1719
; 1720 if .DB [TIMER] eqlu 0
; 1721 then
; 1722 begin
; 1723 CEX$GW_LONG_TIMER_COUNT = .CEX$GW_LONG_TIMER_COUNT + 1;
; 1724
; 1725 if .CEX$GW_LONG_TIMER_COUNT eql 0
; 1726 then
; 1727 CEX$GW_LONG_TIMER_COUNT = .CEX$GW_LONG_TIMER_COUNT - 1;
; 1728
; 1729 CEX$$DISPATCH_PROCESS (.PROCESS, FC_TIM, FM_LTM);
; 1730 end;
; 1731
; 1732 end;
; 1733
; 1734 end;
; 1735
; 1736 end;
; 1737
; 1738 end
; 1739 while (PDT = PDT [1]) lssa .CEX$GA_PROCESS_TABLE_END;
; 1740
; 1741 end;
; 1742
; 1743 if .CEX$GW_STATISTICS_TIMER neq 0
; 1744 then
; 1745 begin
; 1746 CEX$GW_STATISTICS_TIMER = .CEX$GW_STATISTICS_TIMER - 1;
; 1747
; 1748 if .CEX$GW_STATISTICS_TIMER eql 0
; 1749 then
; 1750 begin
; 1751 $MCB_DISABLE_INTERRUPT (VEC$AA_ADDRESS_ERROR);
; 1752 begin
; 1753
; 1754 local
; 1755 INTERRUPTS : initial (0);
; 1756
; 1757 incra IPBA from INTERRUPT_PRIORITY_BLOCK [4 - 4]
; 1758 to INTERRUPT_PRIORITY_BLOCK [7 - 4]
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 59
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (21)
; 1759 by %upval do
; 1760 begin
; 1761
; 1762 builtin
; 1763 ROT;
; 1764
; 1765 bind
; 1766 IPB = ..IPBA : block [IPB$K_LENGTH] field ($CEX_IPBFIELDS);
; 1767
; 1768 if ROT (INTERRUPTS = .INTERRUPTS + .IPB [IPB$W_COUNT], 1)
; 1769 then
; 1770 INTERRUPTS = -1;
; 1771
; 1772 IPB [IPB$W_COUNT] = 0;
; 1773 end;
; 1774
; 1775 if .CEX$GW_AVG_INTERRUPTS lssu .INTERRUPTS
; 1776 then
; 1777 CEX$GW_AVG_INTERRUPTS = .INTERRUPTS;
; 1778
; 1779 end;
; 1780
; 1781 if .CEX$GW_AVG_SYNCHS lssu .CEX$GW_SYNCH_COUNT
; 1782 then
; 1783 CEX$GW_AVG_SYNCHS = .CEX$GW_SYNCH_COUNT;
; 1784
; 1785 if .CEX$GW_AVG_SHORT_TIMERS lssu .CEX$GW_SHORT_TIMER_COUNT
; 1786 then
; 1787 CEX$GW_AVG_SHORT_TIMERS = .CEX$GW_SHORT_TIMER_COUNT;
; 1788
; 1789 if .CEX$GW_AVG_LONG_TIMERS lssu .CEX$GW_LONG_TIMER_COUNT
; 1790 then
; 1791 CEX$GW_AVG_LONG_TIMERS = .CEX$GW_LONG_TIMER_COUNT;
; 1792
; 1793 if .CEX$GW_AVG_CCB_DISPATCHES lssu .CEX$GW_CCB_DISPATCH_COUNT
; 1794 then
; 1795 CEX$GW_AVG_CCB_DISPATCHES = .CEX$GW_CCB_DISPATCH_COUNT;
; 1796
; 1797 CEX$GW_SYNCH_COUNT = 0;
; 1798 CEX$GW_SHORT_TIMER_COUNT = 0;
; 1799 CEX$GW_LONG_TIMER_COUNT = 0;
; 1800 CEX$GW_CCB_DISPATCH_COUNT = 0;
; 1801 $MCB_ENABLE_INTERRUPT (VEC$AA_ADDRESS_ERROR);
; 1802 CEX$GW_STATISTICS_TIMER = .CEX$GW_STATISTICS_INTERVAL;
; 1803 end;
; 1804
; 1805 end;
; 1806
; 1807 SCHEDULE ();
; 1808 CEX$$EXIT_CEX ();
; 1809 end; !of routine CETIM
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 60
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (21)
.GLOBL $INTDS, $INTEN
.SBTTL CETIM
000000 005746 CETIM: TST -(SP) ; 1655
000002 105264 000006 INCB 6(R4) ; *(SCB) 1684
000006 004737 000000G JSR PC,$CEXSV ; 1685
000012 012716 000000G MOV #.PDBVB,(SP) ; *,PDT 1691
000016 017600 000000 1$: MOV @0(SP),R0 ; PDT,PROCESS 1699
000022 001427 BEQ 3$
000024 005760 000010 TST 10(R0) ; *(PROCESS) 1703
000030 100024 BPL 3$
000032 016037 000004 000000G MOV 4(R0),KISAR6 ; *(PROCESS),* 1713
000040 016001 000006 MOV 6(R0),R1 ; *(PROCESS),* 1715
000044 105711 TSTB (R1)
000046 001415 BEQ 3$
000050 105311 DECB (R1) ; 1718
000052 001013 BNE 3$ ; 1720
000054 005237 000000G INC .LTMCT ; 1723
000060 001002 BNE 2$ ; 1725
000062 005337 000000G DEC .LTMCT ; 1727
000066 012702 000012 2$: MOV #12,R2 ; 1729
000072 012703 000002 MOV #2,R3
000076 004737 000000G JSR PC,$PRCDS
000102 062716 000002 3$: ADD #2,(SP) ; *,PDT 1739
000106 021637 000000G CMP (SP),.PDBVE ; PDT,*
000112 103741 BLO 1$
000114 005737 000000G TST .SITIM ; 1743
000120 001511 BEQ 12$
000122 005337 000000G DEC .SITIM ; 1746
000126 001106 BNE 12$ ; 1748
000130 012700 000004 MOV #4,R0 ; 1751
000134 004737 000000G JSR PC,$INTDS
000140 005002 CLR R2 ; INTERRUPTS 1752
000142 012703 000042' MOV #INTERRUPT.PRIORITY.BLOCK,R3 ; *,IPBA 1757
000146 000413 BR 6$
000150 011300 4$: MOV (R3),R0 ; IPBA,* 1768
000152 066002 000010 ADD 10(R0),R2 ; *,INTERRUPTS
000156 010201 MOV R2,R1 ; INTERRUPTS,*
000160 103002 BCC 5$
000162 012702 177777 MOV #-1,R2 ; *,INTERRUPTS 1770
000166 005060 000010 5$: CLR 10(R0) ; 1772
000172 062703 000002 ADD #2,R3 ; *,IPBA 1757
000176 020327 000050' 6$: CMP R3,#INTERRUPT.PRIORITY.BLOCK+6 ; IPBA,*
000202 101762 BLOS 4$
000204 023702 000000G CMP .SMINT,R2 ; *,INTERRUPTS 1775
000210 103002 BHIS 7$
000212 010237 000000G MOV R2,.SMINT ; INTERRUPTS,* 1777
000216 023737 000000G 000000G 7$: CMP .SMSYN,.SYNCT ; 1781
000224 103003 BHIS 8$
000226 013737 000000G 000000G MOV .SYNCT,.SMSYN ; 1783
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 61
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (21)
000234 023737 000000G 000000G 8$: CMP .SMSTM,.STMCT ; 1785
000242 103003 BHIS 9$
000244 013737 000000G 000000G MOV .STMCT,.SMSTM ; 1787
000252 023737 000000G 000000G 9$: CMP .SMLTM,.LTMCT ; 1789
000260 103003 BHIS 10$
000262 013737 000000G 000000G MOV .LTMCT,.SMLTM ; 1791
000270 023737 000000G 000000G 10$: CMP .SMDSP,.DSPCT ; 1793
000276 103003 BHIS 11$
000300 013737 000000G 000000G MOV .DSPCT,.SMDSP ; 1795
000306 005037 000000G 11$: CLR .SYNCT ; 1797
000312 005037 000000G CLR .STMCT ; 1798
000316 005037 000000G CLR .LTMCT ; 1799
000322 005037 000000G CLR .DSPCT ; 1800
000326 012700 000004 MOV #4,R0 ; 1801
000332 004737 000000G JSR PC,$INTEN
000336 013737 000000G 000000G MOV .SMSEC,.SITIM ; 1802
000344 004737 000000V 12$: JSR PC,SCHEDULE ; 1807
000350 004737 000000G JSR PC,$CEXXT ; 1808
000354 005726 TST (SP)+ ; 1655
000356 000207 RTS PC
; Routine Size: 120 words, Routine Base: $CODE$ + 3224
; Maximum stack depth per invocation: 2 words
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 62
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (22)
; 1810 routine CHECK_BUFFER_ALLOCATIONS : novalue =
; 1811
; 1812 !++
; 1813 ! FUNCTIONAL DESCRIPTION:
; 1814 !
; 1815 !
; 1816 ! FORMAL PARAMETERS:
; 1817 ! None
; 1818 !
; 1819 ! IMPLICIT INPUTS:
; 1820 ! None
; 1821 !
; 1822 ! IMPLICIT OUTPUTS:
; 1823 ! None
; 1824 !
; 1825 ! ROUTINE VALUE:
; 1826 ! COMPLETION CODES:
; 1827 ! None
; 1828 !
; 1829 ! SIDE EFFECTS:
; 1830 ! None
; 1831 !--
; 1832
; 1833 begin
; 1834
; 1835 local
; 1836 BLKS_AVAILABLE;
; 1837
; 1838 label
; 1839 RECONCILIATION;
; 1840
; 1841 begin
; 1842
; 1843 local
; 1844 SAVE_MAP;
; 1845
; 1846 BLKS_AVAILABLE = 0;
; 1847 SMAP$ (SAVE_MAP);
; 1848
; 1849 if MAP$ (.CEX$GW_BLOCK_POOL_BIAS) nequ 0
; 1850 then
; 1851 BLKS_AVAILABLE = .BKP$H_SIZE;
; 1852
; 1853 MAP$ (.SAVE_MAP);
; 1854 end;
; 1855
; 1856 while TRUE do RECONCILIATION :
; 1857 begin
; 1858
; 1859 local
; 1860 BLKS_LEFT;
; 1861
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 63
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (22)
; 1862 BLKS_LEFT = .BLKS_AVAILABLE;
; 1863 begin
; 1864
; 1865 local
; 1866 BLKS,
; 1867 HIGH;
; 1868
; 1869 CEX$$MULTIPLY_32 (.CEX$GR_RDB_POOL [CBP$H_ALLOCATION_MAXIMUM], .CEX$GR_RDB_POOL [CBP$H_SIZE]; BLKS, HIGH);
; 1870 CEX$$ADD_32 (%o'77', .BLKS, .HIGH; BLKS, HIGH);
; 1871 CEX$$SHIFT_32 (-6, .BLKS, .HIGH; BLKS, HIGH);
; 1872 BLKS_LEFT = .BLKS_LEFT - .BLKS;
; 1873 end;
; 1874 begin
; 1875
; 1876 local
; 1877 BFP : ref block [BFP$K_LENGTH] field ($CEX_BFPFIELDS);
; 1878
; 1879 BFP = .CEX$GA_BUFFER_POOL_TABLE;
; 1880
; 1881 decru COUNT from .CEX$GH_BUFFER_POOL_COUNT to 1 do
; 1882 begin
; 1883
; 1884 local
; 1885 HIGH,
; 1886 LOW;
; 1887
; 1888 CEX$$MULTIPLY_32 (.BFP [BFP$H_ALLOCATION_MAXIMUM], (BFH$K_LENGTH*%upval) + .BFP [BFP$H_SIZE]; LOW, HIGH);
; 1889 CEX$$ADD_32 (%o'77', .LOW, .HIGH; LOW, HIGH);
; 1890 CEX$$SHIFT_32 (-6, .LOW, .HIGH; LOW, HIGH);
; 1891 BLKS_LEFT = .BLKS_LEFT - .LOW;
; 1892 BFP = vector [.BFP, BFP$K_LENGTH];
; 1893 end;
; 1894
; 1895 end;
; 1896
; 1897 if .BLKS_LEFT geq 0 then return;
; 1898
; 1899 if .CEX$GR_RDB_POOL [CBP$H_ALLOCATION_MAXIMUM] gtr .CEX$GR_RDB_POOL [CBP$H_ALLOCATION_MINIMUM]
; 1900 then
; 1901 begin
; 1902 CEX$GR_RDB_POOL [CBP$H_ALLOCATION_MAXIMUM] = .CEX$GR_RDB_POOL [CBP$H_ALLOCATION_MAXIMUM] - 1;
; 1903 BLKS_LEFT = 0;
; 1904 end;
; 1905
; 1906 begin
; 1907
; 1908 local
; 1909 BFP : ref block [BFP$K_LENGTH] field ($CEX_BFPFIELDS);
; 1910
; 1911 BFP = .CEX$GA_BUFFER_POOL_TABLE;
; 1912
; 1913 decru COUNT from .CEX$GH_BUFFER_POOL_COUNT to 1 do
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 64
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (22)
; 1914 begin
; 1915
; 1916 if .BFP [BFP$H_ALLOCATION_MAXIMUM] gtr .BFP [BFP$H_ALLOCATION_MINIMUM]
; 1917 then
; 1918 begin
; 1919 BFP [BFP$H_ALLOCATION_MAXIMUM] = .BFP [BFP$H_ALLOCATION_MAXIMUM] - 1;
; 1920 BLKS_LEFT = 0;
; 1921 end;
; 1922
; 1923 BFP = vector [.BFP, BFP$K_LENGTH];
; 1924 end;
; 1925
; 1926 end;
; 1927
; 1928 if .BLKS_LEFT lss 0 then return signal (CE$BFS);
; 1929
; 1930 end;
; 1931
; 1932 end; !of routine CHECK_BUFFER_ALLOCATIONS
.SBTTL CHECK.BUFFER.ALLOCATIONS
000000 004137 000000G CHECK.BUFFER.ALLOCATIONS:
JSR R1,$SAVE5 ; 1810
000004 005046 CLR -(SP) ; BLKS.AVAILABLE 1846
000006 013700 000000G MOV KISAR6,R0 ; *,SAVE.MAP 1847
000012 013737 000000G 000000G MOV .BLKTB,KISAR6 ; 1849
000020 005737 000000G TST KISAR6
000024 001402 BEQ 1$
000026 013716 140002 MOV @#140002,(SP) ; *,BLKS.AVAILABLE 1851
000032 010037 000000G 1$: MOV R0,KISAR6 ; SAVE.MAP,* 1853
000036 011603 2$: MOV (SP),R3 ; BLKS.AVAILABLE,BLKS.LEFT 1862
000040 013702 000024G MOV .RDBTB+24,R2 ; 1869
000044 013700 000000G MOV .RDBTB,R0
000050 004737 000000G JSR PC,$MUL32
000054 012702 000077 MOV #77,R2 ; 1870
000060 004737 000000G JSR PC,$ADD32
000064 012702 177772 MOV #-6,R2 ; 1871
000070 004737 000000G JSR PC,$ASH32
000074 160103 SUB R1,R3 ; BLKS,BLKS.LEFT 1872
000076 013705 000000G MOV .CORTA,R5 ; *,BFP 1879
000102 013704 000000G MOV .CORNM,R4 ; *,COUNT 1881
000106 001423 BEQ 4$
000110 011500 3$: MOV (R5),R0 ; BFP,* 1888
000112 062700 000010 ADD #10,R0
000116 016502 000020 MOV 20(R5),R2 ; *(BFP),*
000122 004737 000000G JSR PC,$MUL32
000126 012702 000077 MOV #77,R2 ; 1889
000132 004737 000000G JSR PC,$ADD32
000136 012702 177772 MOV #-6,R2 ; 1890
000142 004737 000000G JSR PC,$ASH32
000146 160103 SUB R1,R3 ; LOW,BLKS.LEFT 1891
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 65
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (22)
000150 062705 000024 ADD #24,R5 ; *,BFP 1892
000154 077423 SOB R4,3$ ; COUNT,* 0000
000156 005703 4$: TST R3 ; BLKS.LEFT 1897
000160 002037 BGE 9$
000162 023737 000024G 000026G CMP .RDBTB+24,.RDBTB+26 ; 1899
000170 003403 BLE 5$
000172 005337 000024G DEC .RDBTB+24 ; 1902
000176 005003 CLR R3 ; BLKS.LEFT 1903
000200 013700 000000G 5$: MOV .CORTA,R0 ; *,BFP 1911
000204 013701 000000G MOV .CORNM,R1 ; *,COUNT 1913
000210 001412 BEQ 8$
000212 026060 000020 000022 6$: CMP 20(R0),22(R0) ; *(BFP),*(BFP) 1916
000220 003403 BLE 7$
000222 005360 000020 DEC 20(R0) ; *(BFP) 1919
000226 005003 CLR R3 ; BLKS.LEFT 1920
000230 062700 000024 7$: ADD #24,R0 ; *,BFP 1923
000234 077112 SOB R1,6$ ; COUNT,* 0000
000236 005703 8$: TST R3 ; BLKS.LEFT 1928
000240 002276 BGE 2$
000242 012746 000354 MOV #354,-(SP)
000246 012746 000001 MOV #1,-(SP)
000252 004737 000000G JSR PC,$IGNAL
000256 022626 CMP (SP)+,(SP)+
000260 005726 9$: TST (SP)+ ; 1810
000262 000207 RTS PC
; Routine Size: 90 words, Routine Base: $CODE$ + 3604
; Maximum stack depth per invocation: 10 words
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 66
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (23)
; 1933 routine FIND_LINE (LINE_INDEX) : LINKAGE_FUNCTION =
; 1934
; 1935 !++
; 1936 ! FUNCTIONAL DESCRIPTION:
; 1937 !
; 1938 !
; 1939 ! FORMAL PARAMETERS:
; 1940 ! None
; 1941 !
; 1942 ! IMPLICIT INPUTS:
; 1943 ! None
; 1944 !
; 1945 ! IMPLICIT OUTPUTS:
; 1946 ! None
; 1947 !
; 1948 ! ROUTINE VALUE:
; 1949 ! COMPLETION CODES:
; 1950 ! None
; 1951 !
; 1952 ! SIDE EFFECTS:
; 1953 ! None
; 1954 !--
; 1955
; 1956 begin
; 1957 LINE_INDEX = .LINE_INDEX - 1;
; 1958
; 1959 if .LINE_INDEX gequ .CEX$GH_SYSTEM_LINE_COUNT then return 0;
; 1960
; 1961 CEX$GA_SYSTEM_LINE_TABLE [.LINE_INDEX, SLT$V_BASE]
; 1962 end; !of routine FIND_LINE
.SBTTL FIND.LINE
000000 005301 FIND.LINE:
DEC R1 ; LINE.INDEX 1957
000002 020137 000000G CMP R1,.SLTNM ; LINE.INDEX,* 1959
000006 103402 BLO 1$
000010 005000 CLR R0
000012 000207 RTS PC
000014 072127 000003 1$: ASH #3,R1 ; 1961
000020 063701 000000G ADD .SLTTA,R1
000024 010100 MOV R1,R0 ; 1933
000026 000207 RTS PC
; Routine Size: 12 words, Routine Base: $CODE$ + 4070
; Maximum stack depth per invocation: 0 words
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 67
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (24)
; 1963 routine FIND_PARTITION (NAME) : LINKAGE_FUNCTION =
; 1964
; 1965 !++
; 1966 ! FUNCTIONAL DESCRIPTION:
; 1967 !
; 1968 !
; 1969 ! FORMAL PARAMETERS:
; 1970 ! None
; 1971 !
; 1972 ! IMPLICIT INPUTS:
; 1973 ! None
; 1974 !
; 1975 ! IMPLICIT OUTPUTS:
; 1976 ! None
; 1977 !
; 1978 ! ROUTINE VALUE:
; 1979 ! COMPLETION CODES:
; 1980 ! None
; 1981 !
; 1982 ! SIDE EFFECTS:
; 1983 ! None
; 1984 !--
; 1985
; 1986 begin
; 1987
; 1988 map
; 1989 NAME : ref vector [2];
; 1990
; 1991 local
; 1992 PCB : ref block field (PCB_FIELDS);
; 1993
; 1994 external
; 1995 %name ('$PARHD');
; 1996
; 1997 PCB = .%name ('$PARHD');
; 1998
; 1999 do
; 2000 begin
; 2001
; 2002 bind
; 2003 PNAME = PCB [P_NAM] : vector [2];
; 2004
; 2005 if .NAME [0] eqlu .PNAME [0] and .NAME [1] eqlu .PNAME [1] then return .PCB;
; 2006
; 2007 end
; 2008 while
; 2009
; 2010 if .PCB [PS_SYS]
; 2011 then
; 2012 begin
; 2013
; 2014 if .PCB [P_SUB] neqa 0
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 68
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (24)
; 2015 then
; 2016 begin
; 2017 PCB = .PCB [P_SUB];
; 2018 TRUE
; 2019 end
; 2020 else
; 2021 begin
; 2022 PCB = .PCB [P_MAIN];
; 2023 (PCB = .PCB [P_LNK]) neqa 0
; 2024 end
; 2025
; 2026 end
; 2027 else
; 2028 (PCB = .PCB [P_LNK]) neqa 0;
; 2029
; 2030 0
; 2031 end; !of routine FIND_PARTITION
.GLOBL $PARHD
.SBTTL FIND.PARTITION
000000 013702 000000G FIND.PARTITION:
MOV $PARHD,R2 ; *,PCB 1997
000004 021162 000004 1$: CMP (R1),4(R2) ; NAME,*(PCB) 2005
000010 001006 BNE 2$
000012 026162 000002 000006 CMP 2(R1),6(R2) ; *(NAME),*(PCB)
000020 001002 BNE 2$
000022 010200 MOV R2,R0 ; PCB,*
000024 000207 RTS PC
000026 132762 000040 000030 2$: BITB #40,30(R2) ; *,*(PCB) 2010
000034 001412 BEQ 4$
000036 016200 000010 MOV 10(R2),R0 ; *(PCB),* 2014
000042 001402 BEQ 3$
000044 010002 MOV R0,R2 ; *,PCB 2017
000046 000756 BR 1$ ; 2016
000050 016202 000012 3$: MOV 12(R2),R2 ; *(PCB),PCB 2022
000054 011202 MOV (R2),R2 ; PCB,PCB 2023
000056 001403 BEQ 5$
000060 000751 BR 1$
000062 011202 4$: MOV (R2),R2 ; PCB,PCB 2028
000064 001347 BNE 1$
000066 005000 5$: CLR R0 ; 1963
000070 000207 RTS PC
; Routine Size: 29 words, Routine Base: $CODE$ + 4120
; Maximum stack depth per invocation: 0 words
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 69
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (25)
; 2032 routine FIND_PROCESS_NAME (NAME) : LINKAGE_FUNCTION =
; 2033
; 2034 !++
; 2035 ! FUNCTIONAL DESCRIPTION:
; 2036 !
; 2037 !
; 2038 ! FORMAL PARAMETERS:
; 2039 ! None
; 2040 !
; 2041 ! IMPLICIT INPUTS:
; 2042 ! None
; 2043 !
; 2044 ! IMPLICIT OUTPUTS:
; 2045 ! None
; 2046 !
; 2047 ! ROUTINE VALUE:
; 2048 ! COMPLETION CODES:
; 2049 ! None
; 2050 !
; 2051 ! SIDE EFFECTS:
; 2052 ! None
; 2053 !--
; 2054
; 2055 begin
; 2056
; 2057 local
; 2058 NAME_ENTRY : ref block [PNM$K_LENGTH] field ($CEX_PNMFIELDS);
; 2059
; 2060 NAME_ENTRY = .CEX$GA_PROCESS_NAME_TABLE;
; 2061
; 2062 decru COUNT from .CEX$GH_PROCESS_COUNT to 1 do
; 2063
; 2064 if .NAME_ENTRY [PNM$W_NAME] eql .NAME
; 2065 then
; 2066 return .NAME_ENTRY [PNM$A_PROCESS]
; 2067 else
; 2068 NAME_ENTRY = vector [.NAME_ENTRY, PNM$K_LENGTH];
; 2069
; 2070 0
; 2071 end; !of routine FIND_PROCESS_NAME
.SBTTL FIND.PROCESS.NAME
000000 013700 000000G FIND.PROCESS.NAME:
MOV .PNMTA,R0 ; *,NAME.ENTRY 2060
000004 013702 000000G MOV .PDBNM,R2 ; *,COUNT 2062
000010 001410 BEQ 3$
000012 026001 000002 1$: CMP 2(R0),R1 ; *(NAME.ENTRY),NAME 2064
000016 001002 BNE 2$
000020 011000 MOV (R0),R0 ; NAME.ENTRY,* 2066
000022 000207 RTS PC
000024 062700 000004 2$: ADD #4,R0 ; *,NAME.ENTRY 2068
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 70
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (25)
000030 077210 SOB R2,1$ ; COUNT,* 0000
000032 005000 3$: CLR R0 ; 2032
000034 000207 RTS PC
; Routine Size: 15 words, Routine Base: $CODE$ + 4212
; Maximum stack depth per invocation: 0 words
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 71
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (26)
; 2072 routine INITIALIZE_BLOCK_POOL =
; 2073
; 2074 !++
; 2075 ! FUNCTIONAL DESCRIPTION:
; 2076 !
; 2077 !
; 2078 ! FORMAL PARAMETERS:
; 2079 ! None
; 2080 !
; 2081 ! IMPLICIT INPUTS:
; 2082 ! None
; 2083 !
; 2084 ! IMPLICIT OUTPUTS:
; 2085 ! None
; 2086 !
; 2087 ! ROUTINE VALUE:
; 2088 ! COMPLETION CODES:
; 2089 ! None
; 2090 !
; 2091 ! SIDE EFFECTS:
; 2092 ! None
; 2093 !--
; 2094
; 2095 begin
; 2096
; 2097 local
; 2098 BLKS,
; 2099 PCB : ref block field (PCB_FIELDS),
; 2100 SAVE_MAP,
; 2101 ZERO;
; 2102
; 2103 external
; 2104 KISAR6,
; 2105 RSX$GW_SYSTEM_SIZE;
; 2106
; 2107 if (PCB = FIND_PARTITION (UPLIT (%rad50_11 'CEXBUF'))) eqla 0
; 2108 then
; 2109 begin
; 2110 SIGNAL (CE$BFP);
; 2111 return FALSE;
; 2112 end;
; 2113
; 2114 if not .PCB [PS_COM] or (.PCB [P_MAIN] neqa .PCB) or (.PCB [P_LNK] neqa 0)
; 2115 then
; 2116 begin
; 2117 SIGNAL (CE$BFI);
; 2118 return FALSE;
; 2119 end;
; 2120
; 2121 BLKS = PCB [P_BLKS] = .RSX$GW_SYSTEM_SIZE - .PCB [P_REL] - 1;
; 2122
; 2123 if .BLKS leq 0
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 72
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (26)
; 2124 then
; 2125 begin
; 2126 SIGNAL (CE$BFS);
; 2127 return FALSE;
; 2128 end;
; 2129
; 2130 SMAP$ (SAVE_MAP);
; 2131 MAP$ (CEX$GW_BLOCK_POOL_BIAS = .PCB [P_REL]);
; 2132 !
; 2133 ! The 11/34A does a read-modify-write on a CLR instruction,
; 2134 ! and thus is unsuitable to reset bad parity in memory.
; 2135 !
; 2136 ZERO = 0; %(this to cause a MOV instead of CLR instruction)%
; 2137
; 2138 do
; 2139 begin
; 2140
; 2141 local
; 2142 ADDR : ref vector;
; 2143
; 2144 ADDR = %o'140000';
; 2145 ADDR [4] = ADDR [3] = ADDR [2] = ADDR [1] = ADDR [0] = .ZERO;
; 2146 ADDR [9] = ADDR [8] = ADDR [7] = ADDR [6] = ADDR [5] = .ZERO;
; 2147 ADDR [14] = ADDR [13] = ADDR [12] = ADDR [11] = ADDR [10] = .ZERO;
; 2148 ADDR [19] = ADDR [18] = ADDR [17] = ADDR [16] = ADDR [15] = .ZERO;
; 2149 ADDR [24] = ADDR [23] = ADDR [22] = ADDR [21] = ADDR [20] = .ZERO;
; 2150 ADDR [29] = ADDR [28] = ADDR [27] = ADDR [26] = ADDR [25] = .ZERO;
; 2151 ADDR [31] = ADDR [30] = .ZERO;
; 2152 ADDR = ADDR [31]; %(to force auto-increment)%
; 2153 KISAR6 = .KISAR6 + 1;
; 2154 end
; 2155 while (BLKS = .BLKS - 1) neq 0;
; 2156
; 2157 MAP$ (.PCB [P_REL]);
; 2158 BKP$W_LINK = 0;
; 2159 BKP$H_SIZE = .PCB [P_BLKS];
; 2160 MAP$ (.SAVE_MAP);
; 2161 TRUE
; 2162 end; !of routine INITIALIZE_BLOCK_POOL
000060 .PSECT $PLIT$, RO , D
000060 011640 007716 P.AAE: .RAD50 /CEXBUF/
.GLOBL $SYSIZ
.SBTTL INITIALIZE.BLOCK.POOL
004250 .PSECT $CODE$, RO
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 73
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (26)
000000 004137 000000G INITIALIZE.BLOCK.POOL:
JSR R1,$SAVE4 ; 2072
000004 012701 000060' MOV #P.AAE,R1 ; 2107
000010 004737 004120' JSR PC,FIND.PARTITION
000014 010002 MOV R0,R2 ; *,PCB
000016 001003 BNE 1$
000020 012746 000334 MOV #334,-(SP) ; 2110
000024 000426 BR 4$
000026 105762 000030 1$: TSTB 30(R2) ; *(PCB) 2114
000032 100005 BPL 2$
000034 026202 000012 CMP 12(R2),R2 ; *(PCB),PCB
000040 001002 BNE 2$
000042 005712 TST (R2) ; PCB
000044 001403 BEQ 3$
000046 012746 000324 2$: MOV #324,-(SP) ; 2117
000052 000413 BR 4$
000054 013700 000000G 3$: MOV $SYSIZ,R0 ; 2121
000060 166200 000014 SUB 14(R2),R0 ; *(PCB),*
000064 005300 DEC R0
000066 010062 000016 MOV R0,16(R2) ; *,*(PCB)
000072 010001 MOV R0,R1 ; *,BLKS
000074 003011 BGT 5$ ; 2123
000076 012746 000354 MOV #354,-(SP) ; 2126
000102 012746 000001 4$: MOV #1,-(SP)
000106 004737 000000G JSR PC,$IGNAL
000112 022626 CMP (SP)+,(SP)+ ; 2123
000114 005000 CLR R0 ; 2125
000116 000207 RTS PC
000120 013703 000000G 5$: MOV KISAR6,R3 ; *,SAVE.MAP 2130
000124 016200 000014 MOV 14(R2),R0 ; *(PCB),* 2131
000130 010037 000000G MOV R0,.BLKTB
000134 010037 000000G MOV R0,KISAR6
000140 005000 CLR R0 ; ZERO 2136
000142 012704 140000 6$: MOV #-40000,R4 ; *,ADDR 2144
000146 010024 MOV R0,(R4)+ ; ZERO,ADDR 2145
000150 010024 MOV R0,(R4)+ ; ZERO,ADDR
000152 010024 MOV R0,(R4)+ ; ZERO,ADDR
000154 010024 MOV R0,(R4)+ ; ZERO,ADDR
000156 010024 MOV R0,(R4)+ ; ZERO,ADDR
000160 010024 MOV R0,(R4)+ ; ZERO,ADDR 2146
000162 010024 MOV R0,(R4)+ ; ZERO,ADDR
000164 010024 MOV R0,(R4)+ ; ZERO,ADDR
000166 010024 MOV R0,(R4)+ ; ZERO,ADDR
000170 010024 MOV R0,(R4)+ ; ZERO,ADDR
000172 010024 MOV R0,(R4)+ ; ZERO,ADDR 2147
000174 010024 MOV R0,(R4)+ ; ZERO,ADDR
000176 010024 MOV R0,(R4)+ ; ZERO,ADDR
000200 010024 MOV R0,(R4)+ ; ZERO,ADDR
000202 010024 MOV R0,(R4)+ ; ZERO,ADDR
000204 010024 MOV R0,(R4)+ ; ZERO,ADDR 2148
000206 010024 MOV R0,(R4)+ ; ZERO,ADDR
000210 010024 MOV R0,(R4)+ ; ZERO,ADDR
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 74
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (26)
000212 010024 MOV R0,(R4)+ ; ZERO,ADDR
000214 010024 MOV R0,(R4)+ ; ZERO,ADDR
000216 010024 MOV R0,(R4)+ ; ZERO,ADDR 2149
000220 010024 MOV R0,(R4)+ ; ZERO,ADDR
000222 010024 MOV R0,(R4)+ ; ZERO,ADDR
000224 010024 MOV R0,(R4)+ ; ZERO,ADDR
000226 010024 MOV R0,(R4)+ ; ZERO,ADDR
000230 010024 MOV R0,(R4)+ ; ZERO,ADDR 2150
000232 010024 MOV R0,(R4)+ ; ZERO,ADDR
000234 010024 MOV R0,(R4)+ ; ZERO,ADDR
000236 010024 MOV R0,(R4)+ ; ZERO,ADDR
000240 010024 MOV R0,(R4)+ ; ZERO,ADDR
000242 010024 MOV R0,(R4)+ ; ZERO,ADDR 2151
000244 010014 MOV R0,(R4) ; ZERO,ADDR
000246 005237 000000G INC KISAR6 ; 2153
000252 077145 SOB R1,6$ ; BLKS,* 2155
000254 016237 000014 000000G MOV 14(R2),KISAR6 ; *(PCB),* 2157
000262 005037 140000 CLR @#140000 ; 2158
000266 016237 000016 140002 MOV 16(R2),@#140002 ; *(PCB),* 2159
000274 010337 000000G MOV R3,KISAR6 ; SAVE.MAP,* 2160
000300 012700 000001 MOV #1,R0 ; 2072
000304 000207 RTS PC
; Routine Size: 99 words, Routine Base: $CODE$ + 4250
; Maximum stack depth per invocation: 8 words
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 75
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (27)
; 2163 routine INITIALIZE_BUFFER_POOL (BFP, BFP_COUNT; NEW_BFP) : LINKAGE_ADR_CNT novalue =
; 2164
; 2165 !++
; 2166 ! FUNCTIONAL DESCRIPTION:
; 2167 !
; 2168 !
; 2169 ! FORMAL PARAMETERS:
; 2170 ! None
; 2171 !
; 2172 ! IMPLICIT INPUTS:
; 2173 ! None
; 2174 !
; 2175 ! IMPLICIT OUTPUTS:
; 2176 ! None
; 2177 !
; 2178 ! ROUTINE VALUE:
; 2179 ! COMPLETION CODES:
; 2180 ! None
; 2181 !
; 2182 ! SIDE EFFECTS:
; 2183 ! None
; 2184 !--
; 2185
; 2186 begin
; 2187
; 2188 map
; 2189 BFP : ref block [BFP$K_LENGTH] field ($CEX_BFPFIELDS);
; 2190
; 2191 CEX$GA_BUFFER_POOL_TABLE = .BFP;
; 2192 CEX$GH_BUFFER_POOL_COUNT = .BFP_COUNT;
; 2193
; 2194 decru COUNT from .BFP_COUNT to 1 do
; 2195 begin
; 2196 BFP [BFP$H_SIZE] = .BFP [BFP$H_SIZE] + 1;
; 2197 BFP [$SUB_FIELD (BFP$H_SIZE, 0, 0, 1, 0)] = 0;
; 2198 BFP [BFP$A_QUEUE_LAST_ADDR] = BFP [BFP$W_QUEUE_FIRST_BIAS];
; 2199 BFP = vector [.BFP, BFP$K_LENGTH];
; 2200 end;
; 2201
; 2202 NEW_BFP = .BFP;
; 2203 end; !of routine INITIALIZE_BUFFER_POOL
.SBTTL INITIALIZE.BUFFER.POOL
000000 010446 INITIALIZE.BUFFER.POOL:
MOV R4,-(SP) ; 2163
000002 010537 000000G MOV R5,.CORTA ; BFP,* 2191
000006 010437 000000G MOV R4,.CORNM ; BFP.COUNT,* 2192
000012 001413 BEQ 2$ ; 2194
000014 005215 1$: INC (R5) ; BFP 2196
000016 142715 000001 BICB #1,(R5) ; *,BFP 2197
000022 012765 000004 000012 MOV #4,12(R5) ; *,*(BFP) 2198
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 76
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (27)
000030 060565 000012 ADD R5,12(R5) ; BFP,*(BFP)
000034 062705 000024 ADD #24,R5 ; *,BFP 2199
000040 077413 SOB R4,1$ ; COUNT,* 0000
000042 012604 2$: MOV (SP)+,R4 ; 2163
000044 000207 RTS PC
; Routine Size: 19 words, Routine Base: $CODE$ + 4556
; Maximum stack depth per invocation: 2 words
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 77
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (28)
; 2204 routine INITIALIZE_CEXCOM_DATA (UCB) : RSX_UCB novalue =
; 2205
; 2206 !++
; 2207 ! FUNCTIONAL DESCRIPTION:
; 2208 !
; 2209 !
; 2210 ! FORMAL PARAMETERS:
; 2211 ! None
; 2212 !
; 2213 ! IMPLICIT INPUTS:
; 2214 ! None
; 2215 !
; 2216 ! IMPLICIT OUTPUTS:
; 2217 ! None
; 2218 !
; 2219 ! ROUTINE VALUE:
; 2220 ! COMPLETION CODES:
; 2221 ! None
; 2222 !
; 2223 ! SIDE EFFECTS:
; 2224 ! None
; 2225 !--
; 2226
; 2227 begin
; 2228
; 2229 map
; 2230 UCB : ref block field (UCB_FIELDS);
; 2231
; 2232 !
; 2233 ! Initialize CEX data
; 2234 !
; 2235
; 2236 CEX$GA_SHORT_TIMER_DISPATCH = CECLK;
; 2237 UCB = UCB [$SUB_FIELD (U_CNT, 1, 0, 16, 0)];
; 2238 begin
; 2239
; 2240 map
; 2241 UCB : ref vector;
; 2242
; 2243 local
; 2244 BUF : ref vector [8];
; 2245
; 2246 BUF = .UCB;
; 2247 UCB = UCB [9];
; 2248 CEX$GR_CCB_POOL [CBP$H_ALLOCATION_MINIMUM] = .BUF [0];
; 2249 CEX$GR_CCB_POOL [CBP$H_ALLOCATION_MAXIMUM] = .BUF [1];
; 2250 MCB$GW_RDB_SIZE = (.BUF [2] + 1) and not 1;
; 2251 CEX$GR_RDB_POOL [CBP$H_ALLOCATION_MINIMUM] = .BUF [3];
; 2252 CEX$GR_RDB_POOL [CBP$H_ALLOCATION_MAXIMUM] = .BUF [4];
; 2253 BUF = BUF [5]; %(force auto-increment)%
; 2254 INITIALIZE_PROCESS_DESCRIPTORS (.UCB, .BUF [0]; UCB);
; 2255 INITIALIZE_PROCESS_NAMES (.UCB, .BUF [1]; UCB);
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 78
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (28)
; 2256 INITIALIZE_LINES (.UCB, .BUF [2]; UCB);
; 2257 INITIALIZE_DEVICE_NAMES (.UCB, .BUF [2]; UCB);
; 2258 INITIALIZE_BUFFER_POOL (.UCB, .BUF [3]; UCB);
; 2259 INITIALIZE_BLOCK_POOL ();
; 2260 BUF = BUF [4]; %(force auto-increment)%
; 2261 end;
; 2262
; 2263 !
; 2264 ! Check DTE control
; 2265 !
; 2266
; 2267 begin
; 2268
; 2269 local
; 2270 NXM_SAVE;
; 2271
; 2272 NXM_SAVE = .VEC$AA_ADDRESS_ERROR [0];
; 2273 VEC$AA_ADDRESS_ERROR [0] = NXM_CATCHER;
; 2274 begin
; 2275
; 2276 literal
; 2277 DTE$K_LENGTH = 16;
; 2278
; 2279 bind
; 2280 DR$A_DTE_REGISTERS = %o'174400' : block [DTE$K_LENGTH];
; 2281
; 2282 local
; 2283 DTE_ADDRESS : ref block [DTE$K_LENGTH];
; 2284
; 2285 DTE_ADDRESS = DR$A_DTE_REGISTERS;
; 2286
; 2287 decru COUNT from 4 to 1 do
; 2288
; 2289 if not NXM (.DTE_ADDRESS)
; 2290 then
; 2291 begin
; 2292 CEX$GA_DTE_BOOT_ROM_ADDRESS = %o'173000';
; 2293 exitloop;
; 2294 end
; 2295 else
; 2296 DTE_ADDRESS = vector [.DTE_ADDRESS, DTE$K_LENGTH];
; 2297
; 2298 end;
; 2299 VEC$AA_ADDRESS_ERROR [0] = .NXM_SAVE;
; 2300 end;
; 2301 CEX$GR_LAST_CHANCE_EXCEPTION [EXV$A_PROCESS] = .CEX$AA_PROCESS_TABLE [0];
; 2302 CEX$GR_LAST_CHANCE_EXCEPTION [EXV$A_DISPATCH] = LAST;
; 2303 CEX$GR_LAST_CHANCE_EXCEPTION [EXV$A_ENABLE_DATA] = 0;
; 2304 CEX$GR_DUMP_EXCEPTION [EXV$A_PROCESS] = .CEX$AA_PROCESS_TABLE [0];
; 2305 CEX$GR_DUMP_EXCEPTION [EXV$A_DISPATCH] = PANIC;
; 2306
; 2307 !
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 79
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (28)
; 2308 ! Determine dump process
; 2309 !
; 2310
; 2311 begin
; 2312
; 2313 local
; 2314 DEVICE : ref vector;
; 2315
; 2316 bind
; 2317 DEVICE_LIST = uplit ('XM', %rad50_11 'NT.XMD', 0) : vector;
; 2318
; 2319 DEVICE = DEVICE_LIST [0];
; 2320
; 2321 while .DEVICE [0] neq 0 do
; 2322 begin
; 2323
; 2324 external
; 2325 RSX$GW_SYSTEM_SIZE : vector;
; 2326
; 2327 if .RSX$GW_SYSTEM_SIZE [3] eqlu .DEVICE [0]
; 2328 then
; 2329 begin
; 2330
; 2331 local
; 2332 PCB : ref block field (PCB_FIELDS);
; 2333
; 2334 DEVICE = DEVICE [1];
; 2335
; 2336 if (PCB = FIND_PARTITION (.DEVICE)) neqa 0
; 2337 then
; 2338 CEX$GR_DUMP_EXCEPTION [EXV$A_ENABLE_DATA] = .PCB [P_REL];
; 2339
; 2340 exitloop;
; 2341 end
; 2342 else
; 2343 DEVICE = DEVICE [3];
; 2344
; 2345 end;
; 2346
; 2347 end;
; 2348 begin
; 2349
; 2350 local
; 2351 PS_SAVE;
; 2352
; 2353 external
; 2354 PS;
; 2355
; 2356 PS_SAVE = .PS;
; 2357 PS <0, 8> = 7^5;
; 2358
; 2359 !
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 80
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (28)
; 2360 ! Set traps
; 2361 !
; 2362
; 2363 begin
; 2364
; 2365 local
; 2366 TRAP : ref vector;
; 2367
; 2368 bind
; 2369 TRAPS = uplit (
; 2370 CEX$$ADDRESS_ERROR_TRAP, VEC$AA_ADDRESS_ERROR [0],
; 2371 CEX$$ILLEGAL_INSTRUCTION_TRAP, VEC$AA_ILLEGAL_INSTRUCTION [0],
; 2372 CEX$$BREAKPOINT_TRAP, VEC$AA_BREAKPOINT [0],
; 2373 CEX$$IOT_INSTRUCTION_TRAP, VEC$AA_IOT_INSTRUCTION [0],
; 2374 CEX$$POWER_FAILURE_TRAP, VEC$AA_POWER_FAILURE [0],
; 2375 CEX$$EMT_INSTRUCTION_TRAP, VEC$AA_EMT_INSTRUCTION [0],
; 2376 CEX$$TRAP_INSTRUCTION_TRAP, VEC$AA_TRAP_INSTRUCTION [0],
; 2377 CEX$$PARITY_ERROR_TRAP, VEC$AA_PARITY_ERROR [0],
; 2378 CEX$$SEGMENT_FAULT_TRAP, VEC$AA_SEGMENT_FAULT [0],
; 2379 0) : vector;
; 2380
; 2381 TRAP = TRAPS [0];
; 2382
; 2383 do
; 2384 begin
; 2385 .TRAP [1] = .TRAP [0];
; 2386 TRAP = TRAP [2];
; 2387 end
; 2388 while .TRAP [0] neq 0;
; 2389
; 2390 end;
; 2391
; 2392 !
; 2393 ! Randomize
; 2394 !
; 2395
; 2396 begin
; 2397
; 2398 field
; 2399 MONITOR = [0, 7, 1, 1];
; 2400
; 2401 local
; 2402 SEED0, SEED1;
; 2403
; 2404 external
; 2405 %name ('$CKCSR') : ref block field (MONITOR);
; 2406
; 2407 SEED0 = .CEX$AW_RANDOM_NUMBER_SEED [0];
; 2408 SEED1 = .CEX$AW_RANDOM_NUMBER_SEED [1];
; 2409
; 2410 do
; 2411 begin
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 81
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (28)
; 2412
; 2413 builtin
; 2414 ROT;
; 2415
; 2416 if ROT (SEED0 = .SEED0^1, 1)
; 2417 then
; 2418 SEED1 = .SEED1 + 1;
; 2419
; 2420 if ROT (SEED1 = .SEED1^1, 1)
; 2421 then
; 2422 SEED0 = .SEED0 + 1;
; 2423
; 2424 end
; 2425 while not .%name ('$CKCSR') [MONITOR];
; 2426
; 2427 CEX$AW_RANDOM_NUMBER_SEED [1] = .SEED1;
; 2428 CEX$AW_RANDOM_NUMBER_SEED [0] = .SEED0;
; 2429
; 2430 end;
; 2431 PS <0, 8> = .PS_SAVE;
; 2432 end;
; 2433
; 2434 !
; 2435 ! Allocate buffers
; 2436 !
; 2437
; 2438 CHECK_BUFFER_ALLOCATIONS ();
; 2439 ALLOCATE_CCB_AND_BUFFER_POOL (CEX$GR_CCB_POOL);
; 2440 ALLOCATE_CCB_AND_BUFFER_POOL (CEX$GR_RDB_POOL);
; 2441 begin
; 2442
; 2443 local
; 2444 BFP : ref block [BFP$K_LENGTH] field ($CEX_BFPFIELDS);
; 2445
; 2446 BFP = .CEX$GA_BUFFER_POOL_TABLE;
; 2447
; 2448 decru COUNT from .CEX$GH_BUFFER_POOL_COUNT to 1 do
; 2449 begin
; 2450 ALLOCATE_BUFFER_POOL (.BFP);
; 2451 BFP = vector [.BFP, BFP$K_LENGTH];
; 2452 end;
; 2453
; 2454 end;
; 2455
; 2456 !
; 2457 ! Allocate common event logging buffer
; 2458 !
; 2459
; 2460 begin
; 2461
; 2462 local
; 2463 BUF,
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 82
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (28)
; 2464 LEN;
; 2465
; 2466 if $RSX_GET_DSR (100, BUF, LEN)
; 2467 then
; 2468 begin
; 2469 LEN = .LEN - 1;
; 2470 ch$wchar_a (.LEN, BUF);
; 2471 MCB$GA_LOGGING_BUFFER = .BUF;
; 2472 end;
; 2473
; 2474 end;
; 2475
; 2476 !
; 2477 ! Start stastics gathering
; 2478 !
; 2479
; 2480 if .CEX$GW_STATISTICS_INTERVAL eql 0
; 2481 then
; 2482 CEX$GW_STATISTICS_INTERVAL = .CEX$GW_STATISTICS_INTERVAL + 1;
; 2483
; 2484 CEX$GW_STATISTICS_TIMER = .CEX$GW_STATISTICS_INTERVAL;
; 2485 end; !of routine INITIALIZE_CEXCOM_DATA
000064 .PSECT $PLIT$, RO , D
000064 130 115 P.AAF: .ASCII /XM/
000066 055274 114014 .RAD50 /NT.XMD/
000072 000000 .WORD 0
000074 000000G P.AAG: .WORD $EX4
000076 000004 .WORD 4
000100 000000G .WORD $EX10
000102 000010 .WORD 10
000104 000000G .WORD $EX14
000106 000014 .WORD 14
000110 000000G .WORD $EX20
000112 000020 .WORD 20
000114 000000G .WORD $EX24
000116 000024 .WORD 24
000120 000000G .WORD $EX30
000122 000030 .WORD 30
000124 000000G .WORD $EX34
000126 000034 .WORD 34
000130 000000G .WORD $EX114
000132 000114 .WORD 114
000134 000000G .WORD $EX250
000136 000250 .WORD 250
000140 000000 .WORD 0
.GLOBL $CKCSR
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 83
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (28)
174400 DR$A.DTE.REGISTERS= -3400
000064' DEVICE.LIST= P.AAF
000074' TRAPS= P.AAG
.SBTTL INITIALIZE.CEXCOM.DATA
004624 .PSECT $CODE$, RO
000000 012737 002760' 000000G INITIALIZE.CEXCOM.DATA:
MOV #CECLK,.TIMDS ; 2236
000006 062705 000032 ADD #32,R5 ; *,UCB 2237
000012 010501 MOV R5,R1 ; UCB,BUF 2246
000014 062705 000022 ADD #22,R5 ; *,UCB 2247
000020 012137 000026G MOV (R1)+,.CCBTB+26 ; BUF,* 2248
000024 012137 000024G MOV (R1)+,.CCBTB+24 ; BUF,* 2249
000030 012100 MOV (R1)+,R0 ; BUF,* 2250
000032 005200 INC R0
000034 010037 000000G MOV R0,.RDBSZ
000040 042737 000001 000000G BIC #1,.RDBSZ
000046 012137 000026G MOV (R1)+,.RDBTB+26 ; BUF,* 2251
000052 012137 000024G MOV (R1)+,.RDBTB+24 ; BUF,* 2252
000056 011104 MOV (R1),R4 ; BUF,* 2254
000060 004737 000000V JSR PC,INITIALIZE.PROCESS.DESCRIPTORS ;
000064 016104 000002 MOV 2(R1),R4 ; *(BUF),* 2255
000070 004737 000000V JSR PC,INITIALIZE.PROCESS.NAMES
000074 016104 000004 MOV 4(R1),R4 ; *(BUF),* 2256
000100 004737 000000V JSR PC,INITIALIZE.LINES
000104 016104 000004 MOV 4(R1),R4 ; *(BUF),* 2257
000110 004737 000000V JSR PC,INITIALIZE.DEVICE.NAMES
000114 016104 000006 MOV 6(R1),R4 ; *(BUF),* 2258
000120 004737 004556' JSR PC,INITIALIZE.BUFFER.POOL
000124 004737 004250' JSR PC,INITIALIZE.BLOCK.POOL ; 2259
000130 013703 000004 MOV @#4,R3 ; *,NXM.SAVE 2272
000134 012737 000000V 000004 MOV #NXM.CATCHER,@#4 ; 2273
000142 012701 174400 MOV #-3400,R1 ; *,DTE.ADDRESS 2285
000146 012702 000004 MOV #4,R2 ; *,COUNT 2287
000152 004737 000000V 1$: JSR PC,NXM.TESTER ; 2289
000156 103404 BCS 2$
000160 012737 173000 000000G MOV #-5000,.DTERG ; 2292
000166 000403 BR 3$ ; 2291
000170 062701 000040 2$: ADD #40,R1 ; *,DTE.ADDRESS 2296
000174 077212 SOB R2,1$ ; COUNT,* 0000
000176 010337 000004 3$: MOV R3,@#4 ; NXM.SAVE,* 2299
000202 013737 000000G 000002G MOV .PDBVB,.MEXVL+2 ; 2301
000210 012737 000000V 000004G MOV #LAST,.MEXVL+4 ; 2302
000216 005037 000006G CLR .MEXVL+6 ; 2303
000222 013737 000000G 000002G MOV .PDBVB,.MEXVD+2 ; 2304
000230 012737 000000V 000004G MOV #PANIC,.MEXVD+4 ; 2305
000236 012703 000064' MOV #DEVICE.LIST,R3 ; *,DEVICE 2319
000242 005713 4$: TST (R3) ; DEVICE 2321
000244 001421 BEQ 6$
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 84
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (28)
000246 023713 000006G CMP $SYSIZ+6,(R3) ; *,DEVICE 2327
000252 001013 BNE 5$
000254 062703 000002 ADD #2,R3 ; *,DEVICE 2334
000260 010301 MOV R3,R1 ; DEVICE,* 2336
000262 004737 004120' JSR PC,FIND.PARTITION
000266 005700 TST R0 ; PCB
000270 001407 BEQ 6$
000272 016037 000014 000006G MOV 14(R0),.MEXVD+6 ; *(PCB),* 2338
000300 000403 BR 6$ ; 2329
000302 062703 000006 5$: ADD #6,R3 ; *,DEVICE 2343
000306 000755 BR 4$ ; 2321
000310 013703 000000G 6$: MOV PS,R3 ; *,PS.SAVE 2356
000314 112737 000340 000000G MOVB #340,PS ; 2357
000322 012700 000074' MOV #TRAPS,R0 ; *,TRAP 2381
000326 012030 7$: MOV (R0)+,@(R0)+ ; TRAP,TRAP 2385
000330 005710 TST (R0) ; TRAP 2388
000332 001375 BNE 7$
000334 013701 000000G MOV .RND,R1 ; *,SEED0 2407
000340 013702 000002G MOV .RND+2,R2 ; *,SEED1 2408
000344 006301 8$: ASL R1 ; SEED0 2416
000346 005502 ADC R2 ; SEED1 2418
000350 006302 ASL R2 ; SEED1 2420
000352 010200 MOV R2,R0 ; SEED1,*
000354 005501 ADC R1 ; SEED0 2422
000356 105777 000000G TSTB @$CKCSR ; 2425
000362 100370 BPL 8$
000364 010237 000002G MOV R2,.RND+2 ; SEED1,* 2427
000370 010137 000000G MOV R1,.RND ; SEED0,* 2428
000374 110337 000000G MOVB R3,PS ; PS.SAVE,* 2431
000400 004737 003604' JSR PC,CHECK.BUFFER.ALLOCATIONS ; 2438
000404 012705 000000G MOV #.CCBTB,R5 ; 2439
000410 004737 002460' JSR PC,ALLOCATE.CCB.AND.BUFFER.POOL
000414 012705 000000G MOV #.RDBTB,R5 ; 2440
000420 004737 002460' JSR PC,ALLOCATE.CCB.AND.BUFFER.POOL
000424 013705 000000G MOV .CORTA,R5 ; *,BFP 2446
000430 013701 000000G MOV .CORNM,R1 ; *,COUNT 2448
000434 001405 BEQ 10$
000436 004737 002262' 9$: JSR PC,ALLOCATE.BUFFER.POOL ; 2450
000442 062705 000024 ADD #24,R5 ; *,BFP 2451
000446 077105 SOB R1,9$ ; COUNT,* 0000
000450 012701 000144 10$: MOV #144,R1 ; 2466
000454 004737 000000G JSR PC,$ALOCB
000460 103406 BCS 11$
000462 010002 MOV R0,R2 ; $RSX$R0,BUF
000464 010100 MOV R1,R0 ; $RSX$R1,LEN
000466 005300 DEC R0 ; LEN 2469
000470 110022 MOVB R0,(R2)+ ; LEN,BUF 2470
000472 010237 000000G MOV R2,.LOGPT ; BUF,* 2471
000476 005737 000000G 11$: TST .SMSEC ; 2480
000502 001002 BNE 12$
000504 005237 000000G INC .SMSEC ; 2482
000510 013737 000000G 000000G 12$: MOV .SMSEC,.SITIM ; 2484
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 85
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (28)
000516 000207 RTS PC ; 2204
; Routine Size: 168 words, Routine Base: $CODE$ + 4624
; Maximum stack depth per invocation: 1 word
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 86
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (29)
; 2486 routine INITIALIZE_DEVICE_NAMES (NAM, SLT_COUNT; NEW_NAM) : LINKAGE_ADR_CNT novalue =
; 2487
; 2488 !++
; 2489 ! FUNCTIONAL DESCRIPTION:
; 2490 !
; 2491 !
; 2492 ! FORMAL PARAMETERS:
; 2493 ! None
; 2494 !
; 2495 ! IMPLICIT INPUTS:
; 2496 ! None
; 2497 !
; 2498 ! IMPLICIT OUTPUTS:
; 2499 ! None
; 2500 !
; 2501 ! ROUTINE VALUE:
; 2502 ! COMPLETION CODES:
; 2503 ! None
; 2504 !
; 2505 ! SIDE EFFECTS:
; 2506 ! None
; 2507 !--
; 2508
; 2509 begin
; 2510
; 2511 local
; 2512 SLT : ref block [SLT$K_LENGTH] field ($CEX_SLTFIELDS);
; 2513
; 2514 SLT = .CEX$GA_SYSTEM_LINE_TABLE;
; 2515
; 2516 decru COUNT from .SLT_COUNT to 1 do
; 2517 begin
; 2518 SLT [SLT$A_DEVICE] = .NAM;
; 2519 NAM = ch$plus (ch$rchar_a (NAM), .NAM);
; 2520 SLT = vector [.SLT, SLT$K_LENGTH];
; 2521 end;
; 2522
; 2523 NAM = .NAM + 1;
; 2524 NAM <0, 1> = 0;
; 2525 NEW_NAM = .NAM;
; 2526 end; !of routine INITIALIZE_DEVICE_NAMES
.SBTTL INITIALIZE.DEVICE.NAMES
000000 004137 000000G INITIALIZE.DEVICE.NAMES:
JSR R1,$SAVE4 ; 2486
000004 013700 000000G MOV .SLTTA,R0 ; *,SLT 2514
000010 005704 TST R4 ; COUNT 2516
000012 001410 BEQ 2$
000014 010560 000006 1$: MOV R5,6(R0) ; NAM,*(SLT) 2518
000020 005001 CLR R1 ; 2519
000022 152501 BISB (R5)+,R1 ; NAM,*
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 87
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (29)
000024 060105 ADD R1,R5 ; *,NAM
000026 062700 000010 ADD #10,R0 ; *,SLT 2520
000032 077410 SOB R4,1$ ; COUNT,* 0000
000034 005205 2$: INC R5 ; NAM 2523
000036 142705 000001 BICB #1,R5 ; *,NAM 2524
000042 000207 RTS PC ; 2486
; Routine Size: 18 words, Routine Base: $CODE$ + 5344
; Maximum stack depth per invocation: 6 words
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 88
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (30)
; 2527 routine INITIALIZE_LINES (SLT, SLT_COUNT; NEW_SLT) : LINKAGE_ADR_CNT novalue =
; 2528
; 2529 !++
; 2530 ! FUNCTIONAL DESCRIPTION:
; 2531 !
; 2532 !
; 2533 ! FORMAL PARAMETERS:
; 2534 ! None
; 2535 !
; 2536 ! IMPLICIT INPUTS:
; 2537 ! None
; 2538 !
; 2539 ! IMPLICIT OUTPUTS:
; 2540 ! None
; 2541 !
; 2542 ! ROUTINE VALUE:
; 2543 ! COMPLETION CODES:
; 2544 ! None
; 2545 !
; 2546 ! SIDE EFFECTS:
; 2547 ! None
; 2548 !--
; 2549
; 2550 begin
; 2551
; 2552 map
; 2553 SLT : ref block [SLT$K_LENGTH] field ($CEX_SLTFIELDS);
; 2554
; 2555 CEX$GA_SYSTEM_LINE_TABLE = .SLT;
; 2556 CEX$GH_SYSTEM_LINE_COUNT = .SLT_COUNT;
; 2557
; 2558 decru COUNT from .SLT_COUNT to 1 do
; 2559 begin
; 2560
; 2561 local
; 2562 INDEX;
; 2563
; 2564 if (INDEX = .SLT [SLT$B_LLC_PROCESS_INDEX]) nequ 0
; 2565 then
; 2566
; 2567 if .CEX$AA_PROCESS_TABLE [.INDEX] eqla 0
; 2568 then
; 2569 SLT [SLT$B_LLC_PROCESS_INDEX] = 0;
; 2570
; 2571 if (INDEX = .SLT [SLT$B_DLC_PROCESS_INDEX]) nequ 0
; 2572 then
; 2573
; 2574 if .CEX$AA_PROCESS_TABLE [.INDEX] eqla 0
; 2575 then
; 2576 SLT [SLT$B_DLC_PROCESS_INDEX] = 0;
; 2577
; 2578 if (INDEX = .SLT [SLT$B_DDM_PROCESS_INDEX]) nequ 0
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 89
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (30)
; 2579 then
; 2580
; 2581 if .CEX$AA_PROCESS_TABLE [.INDEX] eqla 0
; 2582 then
; 2583 SLT [SLT$B_DDM_PROCESS_INDEX] = 0;
; 2584
; 2585 SLT = vector [.SLT, SLT$K_LENGTH];
; 2586 end;
; 2587
; 2588 NEW_SLT = .SLT;
; 2589 end; !of routine INITIALIZE_LINES
.SBTTL INITIALIZE.LINES
000000 004137 000000G INITIALIZE.LINES:
JSR R1,$SAVE4 ; 2527
000004 010537 000000G MOV R5,.SLTTA ; SLT,* 2555
000010 010437 000000G MOV R4,.SLTNM ; SLT.COUNT,* 2556
000014 001445 BEQ 5$ ; 2558
000016 005001 1$: CLR R1 ; INDEX 2564
000020 156501 000004 BISB 4(R5),R1 ; *(SLT),INDEX
000024 005701 TST R1 ; INDEX
000026 001407 BEQ 2$
000030 010100 MOV R1,R0 ; INDEX,* 2567
000032 006300 ASL R0
000034 005760 000000G TST .PDBVB(R0)
000040 001002 BNE 2$
000042 105065 000004 CLRB 4(R5) ; *(SLT) 2569
000046 005001 2$: CLR R1 ; INDEX 2571
000050 156501 000002 BISB 2(R5),R1 ; *(SLT),INDEX
000054 005701 TST R1 ; INDEX
000056 001407 BEQ 3$
000060 010100 MOV R1,R0 ; INDEX,* 2574
000062 006300 ASL R0
000064 005760 000000G TST .PDBVB(R0)
000070 001002 BNE 3$
000072 105065 000002 CLRB 2(R5) ; *(SLT) 2576
000076 005001 3$: CLR R1 ; INDEX 2578
000100 151501 BISB (R5),R1 ; SLT,INDEX
000102 005701 TST R1 ; INDEX
000104 001406 BEQ 4$
000106 010100 MOV R1,R0 ; INDEX,* 2581
000110 006300 ASL R0
000112 005760 000000G TST .PDBVB(R0)
000116 001001 BNE 4$
000120 105015 CLRB (R5) ; SLT 2583
000122 062705 000010 4$: ADD #10,R5 ; *,SLT 2585
000126 077445 SOB R4,1$ ; COUNT,* 0000
000130 000207 5$: RTS PC ; 2527
; Routine Size: 45 words, Routine Base: $CODE$ + 5410
; Maximum stack depth per invocation: 6 words
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 90
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (31)
; 2590 routine INITIALIZE_PROCESS_DESCRIPTORS (PDB, PDB_COUNT; NEW_PDB) : LINKAGE_ADR_CNT novalue =
; 2591
; 2592 !++
; 2593 ! FUNCTIONAL DESCRIPTION:
; 2594 !
; 2595 !
; 2596 ! FORMAL PARAMETERS:
; 2597 ! None
; 2598 !
; 2599 ! IMPLICIT INPUTS:
; 2600 ! None
; 2601 !
; 2602 ! IMPLICIT OUTPUTS:
; 2603 ! None
; 2604 !
; 2605 ! ROUTINE VALUE:
; 2606 ! COMPLETION CODES:
; 2607 ! None
; 2608 !
; 2609 ! SIDE EFFECTS:
; 2610 ! None
; 2611 !--
; 2612
; 2613 begin
; 2614
; 2615 map
; 2616 PDB : ref block [PDT$K_LENGTH] field ($CEX_PDTFIELDS);
; 2617
; 2618 label
; 2619 ASSIGN_PDB;
; 2620
; 2621 decru COUNT from .PDB_COUNT to 1 do
; 2622 begin
; 2623 ASSIGN_PDB: begin
; 2624 $CEX_PHDDEF
; 2625
; 2626 bind
; 2627 HEADER = %o'140000' : block field ($CEX_PHDFIELDS);
; 2628
; 2629 begin
; 2630
; 2631 local
; 2632 PCB : ref block field (PCB_FIELDS);
; 2633
; 2634 begin
; 2635
; 2636 local
; 2637 PCB_NAME : vector [2];
; 2638
; 2639 PCB_NAME [1] = .PDB [PDT$W_CODE_NAME];
; 2640 PCB_NAME [0] = %rad50_11 'NT.';
; 2641
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 91
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (31)
; 2642 if (PCB = FIND_PARTITION (PCB_NAME)) eqla 0 then leave ASSIGN_PDB;
; 2643
; 2644 end;
; 2645 MAP$ (PDB [PDT$W_CODE_BIAS] = .PCB [P_REL]);
; 2646 HEADER [PHD$W_BLKS] = .PCB [P_BLKS];
; 2647 end;
; 2648 begin
; 2649
; 2650 external
; 2651 CEXVER : vector [2];
; 2652
; 2653 if .CEXVER [0] neq .HEADER [PHD$W_CEX_IDENT_1] or
; 2654 .CEXVER [1] neq .HEADER [PHD$W_CEX_IDENT_2] then leave ASSIGN_PDB;
; 2655
; 2656 end;
; 2657 PDB [PDT$V_PERMANENT] = TRUE;
; 2658 begin
; 2659
; 2660 local
; 2661 DISPATCH;
; 2662
; 2663 external
; 2664 %name ('.DSPCR');
; 2665
; 2666 if (DISPATCH = .PDB [PDT$A_DISPATCH_ADDRESS_ADDRESS]) eqla 0
; 2667 then
; 2668 DISPATCH = %name ('.DSPCR')
; 2669 else
; 2670
; 2671 if (DISPATCH = .(.DISPATCH + %o'20000')) eqla 0
; 2672 then
; 2673 DISPATCH = %name ('.DSPCR');
; 2674
; 2675 PDB [PDT$A_CODE_DISPATCH] = .DISPATCH;
; 2676 end;
; 2677
; 2678 if .PDB [PDT$V_DATA_BASE_INCLUDED] and (.PDB [PDT$A_DATA_ADDRESS] eqla 0)
; 2679 then
; 2680 leave ASSIGN_PDB;
; 2681
; 2682 if .PDB [PDT$V_UCB_INCLUDED]
; 2683 then
; 2684 begin
; 2685
; 2686 local
; 2687 UCB : ref block field (UCB_FIELDS);
; 2688
; 2689 if (UCB = .PDB [PDT$A_UCB]) eqla 0
; 2690 then
; 2691 leave ASSIGN_PDB;
; 2692
; 2693 UCB [U_CW2] = .PDB [PDT$B_INDEX];
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 92
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (31)
; 2694
; 2695 if .HEADER [PHD$V_RSX_TABLE_INCLUDED]
; 2696 then
; 2697 begin
; 2698
; 2699 bind
; 2700 DCB = .UCB [U_DCB] : block field (DCB_FIELDS);
; 2701
; 2702 DCB [D_DSP] = .HEADER [PHD$A_RSX_TABLE];
; 2703 end;
; 2704
; 2705 end;
; 2706
; 2707 begin
; 2708
; 2709 local
; 2710 PDT : ref vector;
; 2711
; 2712 if (PDT = .PDB [PDT$B_INDEX]) gequ .CEX$GH_PROCESS_COUNT
; 2713 then
; 2714 leave ASSIGN_PDB;
; 2715
; 2716 PDT = CEX$AA_PROCESS_TABLE [.PDT];
; 2717 PDT [0] = .PDB;
; 2718 PDT = PDT [1];
; 2719
; 2720 if .PDT gtra .CEX$GA_PROCESS_TABLE_END
; 2721 then
; 2722 CEX$GA_PROCESS_TABLE_END = .PDT;
; 2723
; 2724 end;
; 2725 end;
; 2726
; 2727 if not .PDB [PDT$V_UCB_INCLUDED]
; 2728 then
; 2729 PDB = PDB [PDT$A_UCB]
; 2730 else
; 2731 PDB = vector [.PDB, PDT$K_LENGTH];
; 2732
; 2733 end;
; 2734
; 2735 NEW_PDB = .PDB;
; 2736 end; !of routine INITIALIZE_PROCESS_DESCRIPTORS
.GLOBL CEXVER
140000 HEADER= -40000
.SBTTL INITIALIZE.PROCESS.DESCRIPTORS
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 93
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (31)
000000 004137 000000G INITIALIZE.PROCESS.DESCRIPTORS:
JSR R1,$SAVE4 ; 2590
000004 024646 CMP -(SP),-(SP)
000006 005704 TST R4 ; COUNT 2621
000010 001533 BEQ 9$
000012 011566 000002 1$: MOV (R5),2(SP) ; PDB,PCB.NAME+2 2639
000016 012716 055274 MOV #55274,(SP) ; *,PCB.NAME 2640
000022 010601 MOV SP,R1 ; PCB.NAME,* 2642
000024 004737 004120' JSR PC,FIND.PARTITION
000030 005700 TST R0 ; PCB
000032 001507 BEQ 6$
000034 016015 000014 MOV 14(R0),(R5) ; *(PCB),PDB 2645
000040 011537 000000G MOV (R5),KISAR6 ; PDB,*
000044 016037 000016 140004 MOV 16(R0),@#140004 ; *(PCB),* 2646
000052 023737 000000G 140020 CMP CEXVER,@#140020 ; 2653
000060 001074 BNE 6$
000062 023737 000002G 140022 CMP CEXVER+2,@#140022 ; 2654
000070 001070 BNE 6$
000072 012701 000010 MOV #10,R1 ; 2657
000076 060501 ADD R5,R1 ; PDB,*
000100 052711 002000 BIS #2000,(R1)
000104 016500 000002 MOV 2(R5),R0 ; *(PDB),DISPATCH 2666
000110 001403 BEQ 2$ ; 2668
000112 016000 020000 MOV 20000(R0),R0 ; *(DISPATCH),DISPATCH 2671
000116 001002 BNE 3$
000120 012700 000000G 2$: MOV #.DSPCR,R0 ; *,DISPATCH 2673
000124 010065 000002 3$: MOV R0,2(R5) ; DISPATCH,*(PDB) 2675
000130 032711 001000 BIT #1000,(R1) ; 2678
000134 001403 BEQ 4$
000136 005765 000006 TST 6(R5) ; *(PDB)
000142 001443 BEQ 6$ ; 2680
000144 032711 000400 4$: BIT #400,(R1) ; 2682
000150 001417 BEQ 5$
000152 016500 000012 MOV 12(R5),R0 ; *(PDB),UCB 2689
000156 001435 BEQ 6$ ; 2691
000160 111160 000012 MOVB (R1),12(R0) ; *,*(UCB) 2693
000164 105060 000013 CLRB 13(R0) ; *(UCB)
000170 032737 001000 140030 BIT #1000,@#140030 ; 2695
000176 001404 BEQ 5$
000200 011000 MOV (R0),R0 ; UCB,* 2702
000202 013760 140032 000012 MOV @#140032,12(R0)
000210 111101 5$: MOVB (R1),R1 ; *,PDT 2712
000212 042701 177400 BIC #177400,R1 ; *,PDT
000216 020137 000000G CMP R1,.PDBNM ; PDT,*
000222 103013 BHIS 6$ ; 2714
000224 010100 MOV R1,R0 ; PDT,* 2716
000226 006300 ASL R0
000230 062700 000000G ADD #.PDBVB,R0
000234 010001 MOV R0,R1 ; *,PDT
000236 010521 MOV R5,(R1)+ ; PDB,PDT 2717
000240 020137 000000G CMP R1,.PDBVE ; PDT,* 2720
000244 101402 BLOS 6$
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 94
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (31)
000246 010137 000000G MOV R1,.PDBVE ; PDT,* 2722
000252 032765 000400 000010 6$: BIT #400,10(R5) ; *,*(PDB) 2727
000260 001003 BNE 7$
000262 062705 000012 ADD #12,R5 ; *,PDB 2729
000266 000402 BR 8$ ; 2727
000270 062705 000014 7$: ADD #14,R5 ; *,PDB 2731
000274 005304 8$: DEC R4 ; COUNT 0000
000276 001245 BNE 1$
000300 022626 9$: CMP (SP)+,(SP)+ ; 2590
000302 000207 RTS PC
; Routine Size: 98 words, Routine Base: $CODE$ + 5542
; Maximum stack depth per invocation: 8 words
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 95
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (32)
; 2737 routine INITIALIZE_PROCESS_NAMES (PNM, PNM_COUNT; NEW_PNM) : LINKAGE_ADR_CNT novalue =
; 2738
; 2739 !++
; 2740 ! FUNCTIONAL DESCRIPTION:
; 2741 !
; 2742 !
; 2743 ! FORMAL PARAMETERS:
; 2744 ! None
; 2745 !
; 2746 ! IMPLICIT INPUTS:
; 2747 ! None
; 2748 !
; 2749 ! IMPLICIT OUTPUTS:
; 2750 ! None
; 2751 !
; 2752 ! ROUTINE VALUE:
; 2753 ! COMPLETION CODES:
; 2754 ! None
; 2755 !
; 2756 ! SIDE EFFECTS:
; 2757 ! None
; 2758 !--
; 2759
; 2760 begin
; 2761
; 2762 map
; 2763 PNM : ref block [PNM$K_LENGTH] field ($CEX_PNMFIELDS);
; 2764
; 2765 CEX$GA_PROCESS_NAME_TABLE = .PNM;
; 2766 CEX$GH_PROCESS_NAME_COUNT = .PNM_COUNT;
; 2767
; 2768 decru COUNT from .PNM_COUNT to 1 do
; 2769 begin
; 2770
; 2771 local
; 2772 INDEX;
; 2773
; 2774 INDEX = .PNM [PNM$W_PROCESS_INDEX];
; 2775
; 2776 if .INDEX gequ .CEX$GH_PROCESS_COUNT
; 2777 then
; 2778 PNM [PNM$W_NAME] = PNM [PNM$A_PROCESS] = 0
; 2779 else
; 2780
; 2781 if (PNM [PNM$A_PROCESS] = .CEX$AA_PROCESS_TABLE [.INDEX]) eqla 0
; 2782 then
; 2783 PNM [PNM$W_NAME] = 0;
; 2784
; 2785 PNM = vector [.PNM, PNM$K_LENGTH];
; 2786 end;
; 2787
; 2788 NEW_PNM = .PNM
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 96
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (32)
; 2789 end; !of routine INITIALIZE_PROCESS_NAMES
.SBTTL INITIALIZE.PROCESS.NAMES
000000 010446 INITIALIZE.PROCESS.NAMES:
MOV R4,-(SP) ; 2737
000002 010537 000000G MOV R5,.PNMTA ; PNM,* 2765
000006 010437 000000G MOV R4,.PNMNM ; PNM.COUNT,* 2766
000012 001417 BEQ 5$ ; 2768
000014 011500 1$: MOV (R5),R0 ; PNM,INDEX 2774
000016 020037 000000G CMP R0,.PDBNM ; INDEX,* 2776
000022 103402 BLO 2$
000024 005015 CLR (R5) ; PNM 2778
000026 000404 BR 3$
000030 006300 2$: ASL R0 ; 2781
000032 016015 000000G MOV .PDBVB(R0),(R5) ; *,PNM
000036 001002 BNE 4$
000040 005065 000002 3$: CLR 2(R5) ; *(PNM) 2783
000044 062705 000004 4$: ADD #4,R5 ; *,PNM 2785
000050 077417 SOB R4,1$ ; COUNT,* 0000
000052 012604 5$: MOV (SP)+,R4 ; 2737
000054 000207 RTS PC
; Routine Size: 23 words, Routine Base: $CODE$ + 6046
; Maximum stack depth per invocation: 2 words
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 97
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (33)
; 2790 routine INITIALIZE_UNIBUS_MAPPING : novalue =
; 2791
; 2792 !++
; 2793 ! FUNCTIONAL DESCRIPTION:
; 2794 !
; 2795 !
; 2796 ! FORMAL PARAMETERS:
; 2797 ! None
; 2798 !
; 2799 ! IMPLICIT INPUTS:
; 2800 ! None
; 2801 !
; 2802 ! IMPLICIT OUTPUTS:
; 2803 ! None
; 2804 !
; 2805 ! ROUTINE VALUE:
; 2806 ! COMPLETION CODES:
; 2807 ! None
; 2808 !
; 2809 ! SIDE EFFECTS:
; 2810 ! None
; 2811 !--
; 2812
; 2813 begin
; L 2814 %if CEX$CFG_UNIBUS_MAPPING
; U 2815 %then
; U 2816
; U 2817 local
; U 2818 UBM_DATA_BASE : block [UBM$K_LENGTH] field ($CEX_UBMFIELDS);
; U 2819
; U 2820 external
; U 2821 UBMPR : vector [31*2],
; U 2822 RSX$GW_SYSTEM_SIZE,
; U 2823 %name ('$EXSIZ'),
; U 2824 %name ('$PARHD');
; U 2825
; U 2826 if not UBM_MAPPING then return;
; U 2827
; U 2828 UBM_DATA_BASE [UBM$A_LINK] = 0;
; U 2829 UBM_DATA_BASE [UBM$W_START_BLK] = %o'0000';
; U 2830 UBM_DATA_BASE [UBM$W_END_BLK] = .%name ('$EXSIZ')^-6;
; U 2831 RSX$GW_SYSTEM_SIZE = %o'20000'; %(temporary for SYS880)%
; U 2832 begin
; U 2833
; U 2834 local
; U 2835 PCB : ref block field (PCB_FIELDS),
; U 2836 UBM : ref block field ($CEX_UBMFIELDS);
; U 2837
; U 2838 label
; U 2839 PCB_BAD,
; U 2840 PCB_GOOD;
; U 2841
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 98
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (33)
; U 2842 UBM = UBM_DATA_BASE;
; U 2843 PCB = .%name ('$PARHD');
; U 2844
; U 2845 do ! Sloppy PCB checks
; U 2846 PCB_BAD : begin
; U 2847 PCB_GOOD : begin
; U 2848
; U 2849 bind
; U 2850 PNAME = PCB [P_NAM] : vector [2];
; U 2851
; U 2852 if .PNAME [0] eqlu %rad50_11 'NT.' then leave PCB_BAD;
; U 2853
; U 2854 if .PCB [P_TCB] neq 0 then leave PCB_GOOD;
; U 2855
; U 2856 if .PCB [PS_SYS] and (.PCB eqla .PCB [P_MAIN]) then leave PCB_BAD;
; U 2857
; U 2858 end;
; U 2859
; U 2860 if .PCB [P_REL] nequ .UBM [UBM$W_END_BLK]
; U 2861 then
; U 2862 begin
; U 2863
; U 2864 local
; U 2865 NEW_UBM : ref block field ($CEX_UBMFIELDS);
; U 2866
; U 2867 if not $RSX_GET_DSR (UBM$K_LENGTH*%upval, NEW_UBM) then return;
; U 2868
; U 2869 UBM [UBM$A_LINK] = .NEW_UBM;
; U 2870 NEW_UBM [UBM$A_LINK] = 0;
; U 2871 NEW_UBM [UBM$W_START_BLK] = .PCB [P_REL];
; U 2872 NEW_UBM [UBM$W_END_BLK] = .PCB [P_REL];
; U 2873 NEW_UBM [UBM$B_BASE_UBMR] = 0;
; U 2874 NEW_UBM = NEW_UBM [UBM$B_BASE_UBMR]; %(force auto-increment)%
; U 2875 UBM = .UBM [UBM$A_LINK];
; U 2876 end;
; U 2877
; U 2878 UBM [UBM$W_END_BLK] = .UBM [UBM$W_END_BLK] + .PCB [P_BLKS];
; U 2879 end
; U 2880 while
; U 2881
; U 2882 if .PCB [PS_SYS]
; U 2883 then
; U 2884 begin
; U 2885
; U 2886 if .PCB [P_SUB] neqa 0
; U 2887 then
; U 2888 begin
; U 2889 PCB = .PCB [P_SUB];
; U 2890 TRUE
; U 2891 end
; U 2892 else
; U 2893 begin
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 99
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (33)
; U 2894 PCB = .PCB [P_MAIN];
; U 2895 (PCB = .PCB [P_LNK]) neqa 0
; U 2896 end
; U 2897
; U 2898 end
; U 2899 else
; U 2900 (PCB = .PCB [P_LNK]) neqa 0;
; U 2901
; U 2902 UBM [UBM$W_END_BLK] = .RSX$GW_SYSTEM_SIZE;
; U 2903 end;
; U 2904 begin
; U 2905
; U 2906 local
; U 2907 BIAS,
; U 2908 UBM : ref block field ($CEX_UBMFIELDS),
; U 2909 UBMN,
; U 2910 UBMR : ref vector;
; U 2911
; U 2912 UBMN = 0;
; U 2913 UBMR = UBMPR;
; U 2914 UBM = UBM_DATA_BASE;
; U 2915
; U 2916 do
; U 2917 begin
; U 2918 UBM [UBM$B_BASE_UBMR] = .UBMN;
; U 2919 BIAS = .UBM [UBM$W_START_BLK];
; U 2920
; U 2921 do
; U 2922 begin
; U 2923
; U 2924 if .UBMN gtr 31 then exitloop UBM [UBM$W_END_BLK] = .BIAS;
; U 2925
; U 2926 CEX$$SHIFT_32 (6, .BIAS, 0; UBMR [0], UBMR [1]);
; U 2927 UBMR = UBMR [2];
; U 2928 UBMN = .UBMN + 1;
; U 2929 end
; U 2930 while (BIAS = .BIAS + %o'200') lssu .UBM [UBM$W_END_BLK];
; U 2931
; U 2932 end
; U 2933 while (UBM = .UBM [UBM$A_LINK]) neqa 0;
; U 2934
; U 2935 CEX$$SHIFT_32 (-6, .UBMR [-2], .UBMR [-1];, UBM);
; U 2936 end;
; U 2937 CEX$GA_UBM_DATA_BASE = .UBM_DATA_BASE [UBM$A_LINK];
; 2938 %else
; 2939 0 ! (avoid empty expression)
; 2940 %fi
; 2941 end; !of routine INITIALIZE_UNIBUS_MAPPING
.SBTTL INITIALIZE.UNIBUS.MAPPING
000000 000207 INITIALIZE.UNIBUS.MAPPING:
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 100
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (33)
RTS PC ; 2790
; Routine Size: 1 word, Routine Base: $CODE$ + 6124
; Maximum stack depth per invocation: 0 words
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 101
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (34)
; 2942 routine KILL_PROCESSES : MCB_ novalue =
; 2943
; 2944 !++
; 2945 ! FUNCTIONAL DESCRIPTION:
; 2946 !
; 2947 !
; 2948 ! FORMAL PARAMETERS:
; 2949 ! None
; 2950 !
; 2951 ! IMPLICIT INPUTS:
; 2952 ! None
; 2953 !
; 2954 ! IMPLICIT OUTPUTS:
; 2955 ! None
; 2956 !
; 2957 ! ROUTINE VALUE:
; 2958 ! COMPLETION CODES:
; 2959 ! None
; 2960 !
; 2961 ! SIDE EFFECTS:
; 2962 ! None
; 2963 !--
; 2964
; 2965 begin
; 2966
; 2967 local
; 2968 LAST_PDT,
; 2969 PDT : ref vector;
; 2970
; 2971 CEX$AR_CEX_SYNCH_BLOCK [SYN$A_DISPATCH] = 0;
; 2972
; 2973 if (PDT = .CEX$GA_PROCESS_TABLE_END) eqla 0 then return;
; 2974
; 2975 do
; 2976 begin
; 2977
; 2978 local
; 2979 PDB : ref block [PDT$K_LENGTH] field ($CEX_PDTFIELDS);
; 2980
; 2981 LAST_PDT = .PDT;
; 2982
; 2983 if (PDB = .(PDT = PDT [-1])) neqa 0
; 2984 then
; 2985 begin
; 2986
; 2987 if .PDB [PDT$V_KILL_PROCESS]
; 2988 then
; 2989 begin
; 2990
; 2991 local
; 2992 LENGTH;
; 2993
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 102
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (34)
; 2994 PDT [0] = 0;
; 2995
; 2996 if .CEX$GA_PROCESS_TABLE_END eqla .LAST_PDT
; 2997 then
; 2998 CEX$GA_PROCESS_TABLE_END = .LAST_PDT;
; 2999
; 3000 LENGTH = PDT$K_LENGTH - 1;
; 3001
; 3002 if .PDB [PDT$V_UCB_INCLUDED]
; 3003 then
; 3004 begin
; 3005
; 3006 bind
; 3007 UCB = .PDB [PDT$A_UCB] : block field (UCB_FIELDS);
; 3008
; 3009 UCB [U_CW2] = 0;
; 3010 LENGTH = .LENGTH + 1;
; 3011 end;
; 3012
; 3013 if not .PDB [PDT$V_PERMANENT]
; 3014 then
; 3015 begin
; 3016 LENGTH = .LENGTH*%upval;
; 3017 $RSX_RETURN_DSR (.LENGTH, .PDB);
; 3018 end;
; 3019
; 3020 end;
; 3021
; 3022 end;
; 3023
; 3024 end
; 3025 while .PDT gtra CEX$AA_PROCESS_TABLE [0];
; 3026
; 3027 end; !of routine KILL_PROCESSES
.SBTTL KILL.PROCESSES
000000 005037 000004G KILL.PROCESSES:
CLR .PDSYN+4 ; 2971
000004 013704 000000G MOV .PDBVE,R4 ; *,PDT 2973
000010 001442 BEQ 5$
000012 010405 1$: MOV R4,R5 ; PDT,LAST.PDT 2981
000014 014400 MOV -(R4),R0 ; PDT,PDB 2983
000016 001434 BEQ 4$
000020 012703 000010 MOV #10,R3 ; 2987
000024 060003 ADD R0,R3 ; PDB,*
000026 032713 004000 BIT #4000,(R3)
000032 001426 BEQ 4$
000034 005014 CLR (R4) ; PDT 2994
000036 023705 000000G CMP .PDBVE,R5 ; *,LAST.PDT 2996
000042 001002 BNE 2$
000044 010537 000000G MOV R5,.PDBVE ; LAST.PDT,* 2998
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 103
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (34)
000050 012701 000005 2$: MOV #5,R1 ; *,LENGTH 3000
000054 032713 000400 BIT #400,(R3) ; 3002
000060 001405 BEQ 3$
000062 016002 000012 MOV 12(R0),R2 ; *(PDB),* 3009
000066 005062 000012 CLR 12(R2)
000072 005201 INC R1 ; LENGTH 3010
000074 032713 002000 3$: BIT #2000,(R3) ; 3013
000100 001003 BNE 4$
000102 006301 ASL R1 ; LENGTH 3016
000104 004737 000000G JSR PC,$DEACB ; 3017
000110 020427 000000G 4$: CMP R4,#.PDBVB ; PDT,* 3025
000114 101336 BHI 1$
000116 000207 5$: RTS PC ; 2942
; Routine Size: 40 words, Routine Base: $CODE$ + 6126
; Maximum stack depth per invocation: 1 word
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 104
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (35)
; 3028 routine LAST (SIG, MCH, ENB) =
; 3029
; 3030 !++
; 3031 ! FUNCTIONAL DESCRIPTION:
; 3032 !
; 3033 !
; 3034 ! FORMAL PARAMETERS:
; 3035 ! None
; 3036 !
; 3037 ! IMPLICIT INPUTS:
; 3038 ! None
; 3039 !
; 3040 ! IMPLICIT OUTPUTS:
; 3041 ! None
; 3042 !
; 3043 ! ROUTINE VALUE:
; 3044 ! COMPLETION CODES:
; 3045 ! None
; 3046 !
; 3047 ! SIDE EFFECTS:
; 3048 ! None
; 3049 !--
; 3050
; 3051 begin
; 3052
; 3053 map
; 3054 ENB : ref vector,
; 3055 MCH : ref vector,
; 3056 SIG : ref vector;
; 3057
; 3058 if .SIG [0] eql 0 then return FALSE;
; 3059
; 3060 (.SIG [1] and 7) lss 4
; 3061 end; !of routine LAST
.SBTTL LAST
000000 004137 000000G LAST: JSR R1,$SAVE2 ; 3028
000004 016601 000014 MOV 14(SP),R1 ; SIG,* 3058
000010 005711 TST (R1)
000012 001002 BNE 1$
000014 005000 CLR R0
000016 000207 RTS PC
000020 005000 1$: CLR R0 ; 3060
000022 116102 000002 MOVB 2(R1),R2
000026 042702 177770 BIC #177770,R2
000032 020227 000004 CMP R2,#4
000036 005500 ADC R0
000040 000207 RTS PC ; 3028
; Routine Size: 17 words, Routine Base: $CODE$ + 6246
; Maximum stack depth per invocation: 4 words
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 105
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (36)
; 3062 routine NULL (PS, PC) : LINKAGE_INTERRUPT novalue =
; 3063
; 3064 !++
; 3065 ! FUNCTIONAL DESCRIPTION:
; 3066 !
; 3067 !
; 3068 ! FORMAL PARAMETERS:
; 3069 ! None
; 3070 !
; 3071 ! IMPLICIT INPUTS:
; 3072 ! None
; 3073 !
; 3074 ! IMPLICIT OUTPUTS:
; 3075 ! None
; 3076 !
; 3077 ! ROUTINE VALUE:
; 3078 ! COMPLETION CODES:
; 3079 ! None
; 3080 !
; 3081 ! SIDE EFFECTS:
; 3082 ! None
; 3083 !--
; 3084
; 3085 begin
; 3086 NO_OPERATION
; 3087 end; !of routine NULL
.SBTTL NULL
000000 000002 NULL: RTI ; 3062
; Routine Size: 1 word, Routine Base: $CODE$ + 6310
; Maximum stack depth per invocation: 0 words
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 106
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (37)
; 3088 routine NXM_CATCHER (PS, PC) : LINKAGE_INTERRUPT novalue =
; 3089
; 3090 !++
; 3091 ! FUNCTIONAL DESCRIPTION:
; 3092 !
; 3093 !
; 3094 ! FORMAL PARAMETERS:
; 3095 ! None
; 3096 !
; 3097 ! IMPLICIT INPUTS:
; 3098 ! None
; 3099 !
; 3100 ! IMPLICIT OUTPUTS:
; 3101 ! None
; 3102 !
; 3103 ! ROUTINE VALUE:
; 3104 ! COMPLETION CODES:
; 3105 ! None
; 3106 !
; 3107 ! SIDE EFFECTS:
; 3108 ! None
; 3109 !--
; 3110
; 3111 begin
; 3112 PS = .PS + 1;
; 3113 end; !of routine NXM_CATCHER
.SBTTL NXM.CATCHER
000000 005266 000002 NXM.CATCHER:
INC 2(SP) ; PS 3112
000004 000002 RTI ; 3088
; Routine Size: 3 words, Routine Base: $CODE$ + 6312
; Maximum stack depth per invocation: 0 words
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 107
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (38)
; 3114 routine NXM_TESTER (ADR) : LINKAGE_ADR_NO_CARRY =
; 3115
; 3116 !++
; 3117 ! FUNCTIONAL DESCRIPTION:
; 3118 !
; 3119 !
; 3120 ! FORMAL PARAMETERS:
; 3121 ! None
; 3122 !
; 3123 ! IMPLICIT INPUTS:
; 3124 ! None
; 3125 !
; 3126 ! IMPLICIT OUTPUTS:
; 3127 ! None
; 3128 !
; 3129 ! ROUTINE VALUE:
; 3130 ! COMPLETION CODES:
; 3131 ! None
; 3132 !
; 3133 ! SIDE EFFECTS:
; 3134 ! None
; 3135 !--
; 3136
; 3137 begin
; 3138 .(.ADR)<0, 8, 0>
; 3139 end; !of routine NXM_TESTER
.SBTTL NXM.TESTER
000000 005000 NXM.TESTER:
CLR R0 ; 3114
000002 151100 BISB (R1),R0 ; ADR,*
000004 000207 RTS PC
; Routine Size: 3 words, Routine Base: $CODE$ + 6320
; Maximum stack depth per invocation: 0 words
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 108
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (39)
; 3140 routine PANIC : MCB_ novalue =
; 3141
; 3142 !++
; 3143 ! FUNCTIONAL DESCRIPTION:
; 3144 !
; 3145 !
; 3146 ! FORMAL PARAMETERS:
; 3147 ! None
; 3148 !
; 3149 ! IMPLICIT INPUTS:
; 3150 ! None
; 3151 !
; 3152 ! IMPLICIT OUTPUTS:
; 3153 ! None
; 3154 !
; 3155 ! ROUTINE VALUE:
; 3156 ! COMPLETION CODES:
; 3157 ! None
; 3158 !
; 3159 ! SIDE EFFECTS:
; 3160 ! None
; 3161 !--
; 3162
; 3163 begin
; 3164
; 3165 macro
; M 3166 POP (address) =
; 3167 (builtin sp; map sp : ref vector; (address) = .sp [0]; sp = sp [1]) %,
; M 3168 PUSH (value) =
; 3169 (builtin sp; map sp : ref vector; (sp = sp [-1]) = (value)) %;
; 3170
; 3171 (external PS; CEX$GW_PANIC_STATUS = .PS);
; 3172 (external PS; PS = 3^12 + 7^5);
; 3173 (builtin sp; CEX$GA_PANIC_STACK = .sp);
; 3174 (builtin sp; sp = CEX$GA_PANIC_STACK);
; 3175 (builtin r5; PUSH (.r5));
; 3176 (builtin r4; PUSH (.r4));
; 3177 (builtin r3; PUSH (.r3));
; 3178 (builtin r2; PUSH (.r2));
; 3179 (builtin r1; PUSH (.r1));
; 3180 (builtin r0; PUSH (.r0));
; 3181 (external KISAR6; PUSH (.KISAR6));
; 3182 (builtin mfpi; PUSH (mfpi (sp)));
; 3183 PUSH (.VEC$AA_POWER_FAILURE [0]);
; 3184 VEC$AA_POWER_FAILURE [0] = NULL;
; 3185 begin
; 3186
; 3187 global register
; 3188 BUFFER = 2,
; 3189 LIST = 5;
; 3190
; 3191 if (LIST = .CEX$AA_PROCESS_TABLE [0]) neq 0
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 109
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (39)
; 3192 then
; 3193 begin
; 3194
; 3195 map
; 3196 LIST : ref block [PDT$K_LENGTH] field ($CEX_PDTFIELDS);
; 3197
; 3198 MAP$ (.LIST [PDT$W_DATA_BIAS]);
; 3199 if (LIST = .LIST [PDT$A_DATA_ADDRESS]) neqa 0
; 3200 then
; 3201 begin
; 3202
; 3203 map
; 3204 LIST : ref vector;
; 3205
; 3206 BUFFER = .LIST;
; 3207 LIST = .LIST + .LIST [0];
; 3208 PDUMP ();
; 3209 end;
; 3210
; 3211 end;
; 3212
; 3213 end;
; 3214 POP (VEC$AA_POWER_FAILURE [0]);
; 3215 begin
; 3216
; 3217 local
; 3218 DUMPER_BIAS;
; 3219
; 3220 if (DUMPER_BIAS = .CEX$GR_DUMP_EXCEPTION [EXV$A_ENABLE_DATA]) neqa 0
; 3221 then
; 3222 begin
; 3223 $CEX_PHDDEF
; 3224
; 3225 bind
; 3226 HEADER = %o'120000' : block field ($CEX_PHDFIELDS);
; 3227
; 3228 external
; 3229 KISAR5 : volatile,
; 3230 KISAR6 : volatile;
; 3231
; 3232 KISAR6 = .KISAR5;
; 3233 (builtin pc; pc = .pc + %o'20000');
; 3234 KISAR5 = .DUMPER_BIAS;
; 3235 (builtin pc; pc = .HEADER [PHD$A_SIGNAL]);
; 3236 end
; 3237 else
; 3238 while TRUE do (builtin halt; halt ());
; 3239
; 3240 end;
; 3241 end; !of routine PANIC
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 110
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (39)
120000 HEADER= -60000
.SBTTL PANIC
000000 013737 000000G 000000G PANIC: MOV PS,.PANPS ; 3171
000006 012737 030340 000000G MOV #30340,PS ; 3172
000014 010637 000000G MOV SP,.PANSP ; SP,* 3173
000020 012706 000000G MOV #.PANSP,SP ; *,SP 3174
000024 010546 MOV R5,-(SP) ; R5,SP 3175
000026 010446 MOV R4,-(SP) ; R4,SP 3176
000030 010346 MOV R3,-(SP) ; R3,SP 3177
000032 010246 MOV R2,-(SP) ; R2,SP 3178
000034 010146 MOV R1,-(SP) ; R1,SP 3179
000036 010046 MOV R0,-(SP) ; R0,SP 3180
000040 013746 000000G MOV KISAR6,-(SP) ; *,SP 3181
000044 162706 000002 SUB #2,SP ; *,SP 3182
000050 006506 MFPI SP ; SP
000052 011666 000002 MOV (SP),2(SP) ; *,*(SP)
000056 013716 000024 MOV @#24,(SP) ; *,SP 3183
000062 012737 006310' 000024 MOV #NULL,@#24 ; 3184
000070 013705 000000G MOV .PDBVB,R5 ; *,LIST 3191
000074 001414 BEQ 1$
000076 016537 000004 000000G MOV 4(R5),KISAR6 ; *(LIST),* 3198
000104 016505 000006 MOV 6(R5),R5 ; *(LIST),LIST 3199
000110 001406 BEQ 1$
000112 010502 MOV R5,R2 ; LIST,BUFFER 3206
000114 010500 MOV R5,R0 ; LIST,* 3207
000116 061500 ADD (R5),R0 ; LIST,*
000120 010005 MOV R0,R5 ; *,LIST
000122 004737 000000V JSR PC,PDUMP ; 3208
000126 012637 000024 1$: MOV (SP)+,@#24 ; SP,* 3214
000132 013700 000006G MOV .MEXVD+6,R0 ; *,DUMPER.BIAS 3220
000136 001412 BEQ 3$
000140 013737 000000G 000000G MOV KISAR5,KISAR6 ; 3232
000146 062707 020000 ADD #20000,PC ; *,PC 3233
000152 010037 000000G MOV R0,KISAR5 ; DUMPER.BIAS,* 3234
000156 013707 120010 MOV @#120010,PC ; *,PC 3235
000162 000207 2$: RTS PC ; 3220
000164 000000 3$: HALT ; 3238
000166 000776 BR 3$
; Routine Size: 60 words, Routine Base: $CODE$ + 6326
; Maximum stack depth per invocation: 1 word
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 111
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (40)
; 3242 routine PDUMP : LINKAGE_LIST_BUFFER novalue =
; 3243
; 3244 !++
; 3245 ! FUNCTIONAL DESCRIPTION:
; 3246 !
; 3247 !
; 3248 ! FORMAL PARAMETERS:
; 3249 ! None
; 3250 !
; 3251 ! IMPLICIT INPUTS:
; 3252 ! None
; 3253 !
; 3254 ! IMPLICIT OUTPUTS:
; 3255 ! None
; 3256 !
; 3257 ! ROUTINE VALUE:
; 3258 ! COMPLETION CODES:
; 3259 ! None
; 3260 !
; 3261 ! SIDE EFFECTS:
; 3262 ! None
; 3263 !--
; 3264
; 3265 begin
; 3266
; 3267 external register
; 3268 BUFFER : ref vector,
; 3269 LIST: ref vector;
; 3270
; 3271 local
; 3272 BEGIN_ADR : ref vector,
; 3273 END_ADR : ref vector,
; 3274 NEW_WINDOW : ref vector,
; 3275 NXM_SAVE;
; 3276
; 3277 NXM_SAVE = .VEC$AA_ADDRESS_ERROR [0];
; 3278 VEC$AA_ADDRESS_ERROR [0] = NXM_CATCHER;
; 3279
; 3280 if
; 3281 begin
; 3282 BEGIN_ADR = .LIST [0];
; 3283 LIST = LIST [1];
; 3284 .BEGIN_ADR eqla 0
; 3285 end
; 3286 then return;
; 3287
; 3288 do
; 3289 begin
; 3290 NEW_WINDOW = 0;
; 3291 END_ADR = .LIST [0];
; 3292 LIST = LIST [1];
; 3293
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 112
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (40)
; 3294 do
; 3295 begin
; 3296
; 3297 if .NEW_WINDOW eql 0
; 3298 then
; 3299 begin
; 3300
; 3301 if not NXM (BEGIN_ADR [0])
; 3302 then
; 3303 begin
; 3304 BUFFER [0] = BEGIN_ADR [0];
; 3305 BUFFER = BUFFER [1];
; 3306 NEW_WINDOW = .BUFFER;
; 3307 BUFFER [0] = 0;
; 3308 BUFFER = BUFFER [1];
; 3309
; 3310 if .BUFFER lssa .LIST
; 3311 then
; 3312 begin
; 3313 BUFFER [0] = .BEGIN_ADR [0];
; 3314 BUFFER = BUFFER [1];
; 3315 NEW_WINDOW [0] = .BEGIN_ADR;
; 3316 end
; 3317 else
; 3318 begin
; 3319 VEC$AA_ADDRESS_ERROR [0] = .NXM_SAVE;
; 3320 return
; 3321 end;
; 3322
; 3323 end;
; 3324
; 3325 end
; 3326 else
; 3327 begin
; 3328
; 3329 local
; 3330 DATA;
; 3331
; 3332 if NXM (BEGIN_ADR [0])
; 3333 then
; 3334 begin
; 3335 NEW_WINDOW = 0;
; 3336 BUFFER [0] = 0;
; 3337 end
; 3338 else
; 3339
; 3340 if .BUFFER lssa .LIST
; 3341 then
; 3342 begin
; 3343 BUFFER [0] = .BEGIN_ADR [0];
; 3344 BUFFER = BUFFER [1];
; 3345 NEW_WINDOW [0] = .BEGIN_ADR;
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 113
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (40)
; 3346 end
; 3347 else
; 3348 begin
; 3349 VEC$AA_ADDRESS_ERROR [0] = .NXM_SAVE;
; 3350 return
; 3351 end;
; 3352
; 3353 end;
; 3354
; 3355 end
; 3356 while (BEGIN_ADR = BEGIN_ADR [1]) leqa .END_ADR;
; 3357
; 3358 end
; 3359 while
; 3360 begin
; 3361 BEGIN_ADR = .LIST [0];
; 3362 LIST = LIST [1];
; 3363 .BEGIN_ADR neqa 0
; 3364 end;
; 3365
; 3366 VEC$AA_ADDRESS_ERROR [0] = .NXM_SAVE;
; 3367 end; !of routine PDUMP
.SBTTL PDUMP
000000 005746 PDUMP: TST -(SP) ; 3242
000002 013704 000004 MOV @#4,R4 ; *,NXM.SAVE 3277
000006 012737 006312' 000004 MOV #NXM.CATCHER,@#4 ; 3278
000014 012501 MOV (R5)+,R1 ; LIST,BEGIN.ADR 3282
000016 001437 BEQ 8$ ; 3286
000020 005003 1$: CLR R3 ; NEW.WINDOW 3290
000022 012516 MOV (R5)+,(SP) ; LIST,END.ADR 3291
000024 005703 2$: TST R3 ; NEW.WINDOW 3297
000026 001011 BNE 3$
000030 004737 006320' JSR PC,NXM.TESTER ; 3301
000034 103420 BCS 6$
000036 010122 MOV R1,(R2)+ ; BEGIN.ADR,BUFFER 3304
000040 010203 MOV R2,R3 ; BUFFER,NEW.WINDOW 3306
000042 005022 CLR (R2)+ ; BUFFER 3307
000044 020205 CMP R2,R5 ; BUFFER,LIST 3310
000046 103021 BHIS 7$
000050 000410 BR 5$ ; 3313
000052 004737 006320' 3$: JSR PC,NXM.TESTER ; 3332
000056 103003 BHIS 4$
000060 005003 CLR R3 ; NEW.WINDOW 3335
000062 005012 CLR (R2) ; BUFFER 3336
000064 000404 BR 6$ ; 3332
000066 020205 4$: CMP R2,R5 ; BUFFER,LIST 3340
000070 103010 BHIS 7$
000072 011122 5$: MOV (R1),(R2)+ ; BEGIN.ADR,BUFFER 3343
000074 010113 MOV R1,(R3) ; BEGIN.ADR,NEW.WINDOW 3345
000076 062701 000002 6$: ADD #2,R1 ; *,BEGIN.ADR 3356
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 114
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (40)
000102 020116 CMP R1,(SP) ; BEGIN.ADR,END.ADR
000104 101747 BLOS 2$
000106 012501 MOV (R5)+,R1 ; LIST,BEGIN.ADR 3361
000110 001343 BNE 1$ ; 3363
000112 010437 000004 7$: MOV R4,@#4 ; NXM.SAVE,* 3366
000116 005726 8$: TST (SP)+ ; 3242
000120 000207 RTS PC
; Routine Size: 41 words, Routine Base: $CODE$ + 6516
; Maximum stack depth per invocation: 2 words
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 115
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (41)
; 3368 routine SCHEDULE : MCB_ novalue =
; 3369
; 3370 !++
; 3371 ! FUNCTIONAL DESCRIPTION:
; 3372 !
; 3373 !
; 3374 ! FORMAL PARAMETERS:
; 3375 ! None
; 3376 !
; 3377 ! IMPLICIT INPUTS:
; 3378 ! None
; 3379 !
; 3380 ! IMPLICIT OUTPUTS:
; 3381 ! None
; 3382 !
; 3383 ! ROUTINE VALUE:
; 3384 ! COMPLETION CODES:
; 3385 ! None
; 3386 !
; 3387 ! SIDE EFFECTS:
; 3388 ! None
; 3389 !--
; 3390
; 3391 begin
; 3392
; 3393 external
; 3394 %name ('$INTCT'),
; 3395 %name ('$PWRFL');
; 3396
; 3397 do
; 3398 begin
; 3399 CEX$GH_SCHEDULING_REQUESTS = 0;
; 3400
; 3401 selectone TRUE of
; 3402 set
; 3403 [.CEX$AA_SYNCH_QUEUE [0] neq 0] :
; 3404 begin
; 3405
; 3406 register
; 3407 SYN = 4 : ref block [SYN$K_LENGTH] field ($CEX_SYNFIELDS);
; 3408
; 3409 begin
; 3410
; 3411 local
; 3412 PS_SAVE;
; 3413
; 3414 external
; 3415 PS;
; 3416
; 3417 PS_SAVE = .PS;
; 3418 PS <0, 8> = 7^5;
; 3419 SYN = .CEX$AA_SYNCH_QUEUE [0];
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 116
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (41)
; 3420
; 3421 if (CEX$AA_SYNCH_QUEUE [0] = .SYN [SYN$A_LINK]) eqla 0
; 3422 then
; 3423 CEX$AA_SYNCH_QUEUE [1] = CEX$AA_SYNCH_QUEUE [0];
; 3424
; 3425 PS <0, 8> = .PS_SAVE;
; 3426 end;
; 3427 SYN [SYN$A_LINK] = 0;
; 3428 CEX$GW_SYNCH_COUNT = .CEX$GW_SYNCH_COUNT + 1;
; 3429
; 3430 if .CEX$GW_SYNCH_COUNT eql 0
; 3431 then
; 3432 CEX$GW_SYNCH_COUNT = .CEX$GW_SYNCH_COUNT - 1;
; 3433
; 3434 begin
; 3435
; 3436 local
; 3437 DISPATCH,
; 3438 PROCESS : ref block [PDT$K_LENGTH] field ($CEX_PDTFIELDS);
; 3439
; 3440 PROCESS = .SYN [SYN$A_PROCESS];
; 3441 DISPATCH = .SYN [SYN$A_DISPATCH];
; 3442 SYN [SYN$A_PROCESS] = 0;
; 3443 CEX$$SYNCHRONIZE_PROCESS (.PROCESS, .DISPATCH);
; 3444 end;
; 3445 end;
; 3446 [.%name ('$PWRFL') neq 0] :
; 3447 begin
; 3448 CEX$GA_CEX_FORK_BLOCK = 0;
; 3449 return;
; 3450 end;
; 3451 [.%name ('$INTCT') geq 0] :
; 3452 begin
; 3453 CEX$GH_SCHEDULING_REQUESTS = .CEX$GH_SCHEDULING_REQUESTS + 1;
; 3454 return;
; 3455 end;
; 3456 [.CEX$AA_CCB_QUEUE_L [0] neq 0] :
; 3457 begin
; 3458
; 3459 register
; 3460 CCB = 4 : ref block [CCB$K_LENGTH] field ($CEX_CCBFIELDS);
; 3461
; 3462 CCB = .CEX$AA_CCB_QUEUE_L [0];
; 3463
; 3464 if (CEX$AA_CCB_QUEUE_L [0] = .CCB [CCB$A_LINK]) eqla 0
; 3465 then
; 3466 CEX$AA_CCB_QUEUE_L [1] = CEX$AA_CCB_QUEUE_L [0];
; 3467
; 3468 CCB [CCB$A_LINK] = 0;
; 3469 CEX$GW_CCB_DISPATCH_COUNT = .CEX$GW_CCB_DISPATCH_COUNT + 1;
; 3470
; 3471 if .CEX$GW_CCB_DISPATCH_COUNT eql 0
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 117
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (41)
; 3472 then
; 3473 CEX$GW_CCB_DISPATCH_COUNT = .CEX$GW_CCB_DISPATCH_COUNT - 1;
; 3474
; 3475 CEX$$DISPATCH_PROCESS (.CCB [CCB$A_DESTINATION_PROCESS],
; 3476 .CCB [CCB$B_FUNCTION], .CCB [CCB$B_MODIFIER]);
; 3477 end;
; 3478 [.CEX$AA_CCB_QUEUE_H [0] neq 0] :
; 3479 begin
; 3480
; 3481 register
; 3482 CCB = 4 : ref block [CCB$K_LENGTH] field ($CEX_CCBFIELDS);
; 3483
; 3484 CCB = .CEX$AA_CCB_QUEUE_H [0];
; 3485
; 3486 if (CEX$AA_CCB_QUEUE_H [0] = .CCB [CCB$A_LINK]) eqla 0
; 3487 then
; 3488 CEX$AA_CCB_QUEUE_H [1] = CEX$AA_CCB_QUEUE_H [0];
; 3489
; 3490 CCB [CCB$A_LINK] = 0;
; 3491 CEX$GW_CCB_DISPATCH_COUNT = .CEX$GW_CCB_DISPATCH_COUNT + 1;
; 3492
; 3493 if .CEX$GW_CCB_DISPATCH_COUNT eql 0
; 3494 then
; 3495 CEX$GW_CCB_DISPATCH_COUNT = .CEX$GW_CCB_DISPATCH_COUNT - 1;
; 3496
; 3497 CEX$$DISPATCH_PROCESS (.CCB [CCB$A_DESTINATION_PROCESS],
; 3498 .CCB [CCB$B_FUNCTION], .CCB [CCB$B_MODIFIER]);
; 3499 end;
; 3500 [otherwise] :
; 3501 return;
; 3502 tes;
; 3503
; 3504 end
; 3505 while TRUE;
; 3506
; 3507 end; !of routine SCHEDULE
.GLOBL $INTCT, $PWRFL
.SBTTL SCHEDULE
000000 005037 000000G SCHEDULE:
000000 1$: CLR .CEXRQ ; 3399
000004 005737 000000G TST .SYNQH ; 3403
000010 001436 BEQ 4$
000012 013700 000000G MOV PS,R0 ; *,PS.SAVE 3417
000016 112737 000340 000000G MOVB #340,PS ; 3418
000024 013704 000000G MOV .SYNQH,R4 ; *,SYN 3419
000030 011437 000000G MOV (R4),.SYNQH ; SYN,* 3421
000034 001003 BNE 2$
000036 012737 000000G 000002G MOV #.SYNQH,.SYNQH+2 ; 3423
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 118
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (41)
000044 110037 000000G 2$: MOVB R0,PS ; PS.SAVE,* 3425
000050 005014 CLR (R4) ; SYN 3427
000052 005237 000000G INC .SYNCT ; 3428
000056 001002 BNE 3$ ; 3430
000060 005337 000000G DEC .SYNCT ; 3432
000064 016400 000002 3$: MOV 2(R4),R0 ; *(SYN),PROCESS 3440
000070 016402 000004 MOV 4(R4),R2 ; *(SYN),DISPATCH 3441
000074 005064 000002 CLR 2(R4) ; *(SYN) 3442
000100 004737 000000G JSR PC,$SYNDS ; 3443
000104 000735 BR 1$ ; 3401
000106 005737 000000G 4$: TST $PWRFL ; 3446
000112 001403 BEQ 5$
000114 005037 000000G CLR .FRKBK ; 3448
000120 000207 RTS PC ; 3447
000122 005737 000000G 5$: TST $INTCT ; 3451
000126 002403 BLT 7$
000130 005237 000000G INC .CEXRQ ; 3453
000134 000207 6$: RTS PC ; 3452
000136 005737 000000G 7$: TST .CBLQH ; 3456
000142 001415 BEQ 9$
000144 013704 000000G MOV .CBLQH,R4 ; *,CCB 3462
000150 011437 000000G MOV (R4),.CBLQH ; CCB,* 3464
000154 001003 BNE 8$
000156 012737 000000G 000002G MOV #.CBLQH,.CBLQH+2 ; 3466
000164 005014 8$: CLR (R4) ; CCB 3468
000166 005237 000000G INC .DSPCT ; 3469
000172 001022 BNE 12$ ; 3471
000174 000417 BR 11$ ; 3473
000176 005737 000000G 9$: TST .CBHQH ; 3478
000202 001754 BEQ 6$
000204 013704 000000G MOV .CBHQH,R4 ; *,CCB 3484
000210 011437 000000G MOV (R4),.CBHQH ; CCB,* 3486
000214 001003 BNE 10$
000216 012737 000000G 000002G MOV #.CBHQH,.CBHQH+2 ; 3488
000224 005014 10$: CLR (R4) ; CCB 3490
000226 005237 000000G INC .DSPCT ; 3491
000232 001002 BNE 12$ ; 3493
000234 005337 000000G 11$: DEC .DSPCT ; 3495
000240 016400 000036 12$: MOV 36(R4),R0 ; *(CCB),* 3497
000244 005002 CLR R2 ; 3498
000246 156402 000012 BISB 12(R4),R2 ; *(CCB),*
000252 005003 CLR R3
000254 156403 000013 BISB 13(R4),R3 ; *(CCB),*
000260 004737 000000G JSR PC,$PRCDS ; 3497
000264 000645 BR 1$ ; 3401
; Routine Size: 91 words, Routine Base: $CODE$ + 6640
; Maximum stack depth per invocation: 1 word
; 3508 end
; 3509 eludom
CEX 28-May-1985 14:17:23 TOPS-20 Bliss-16 3(552) Page 119
X03420 29-Dec-1982 15:31:45 DNET61:<MCB.CEX>CEX.B16.1 (41)
; OTS external references
.GLOBL $SAVE5, $SAVE4, $SAVE3, $SAVE2
.GLOBL $IGNAL, BL$MOV
; PSECT SUMMARY
;
; Psect Name Words Attributes
; $PLIT$ 49 RO , D , LCL, REL, CON
; ...... 16 RW , D , LCL, REL, CON
; $CODE$ 1835 RO , I , LCL, REL, CON
; LIBRARY STATISTICS
;
; -------- Symbols -------- Blocks
; File Total Loaded Percent Read
;
; DNET61:<MCB.BLIS16>XPORT.L16.1 568 2 0 0
; DNET61:<MCB.MCB>MCBLIB.L16.1 372 65 17 0
; DNET61:<MCB.MCB>RSXLIB.L16.1 317 145 45 0
; DNET61:<MCB.CEX>CEXLIB.L16.6 123 111 90 0
; Size: 1835 code + 65 data words
; Run Time: 00:50.0
; Elapsed Time: 01:17.3
; Memory Used: 70 pages
; Compilation Complete
ACTUALCOUNT 424 427 492 495 548 551 617 620 662 665 716 719
759 762 819 822 838 860 922 925 1010 1013 1037 1134
1137 1179 1182
ACTUALPARAMETER 425 493 503 549 561 618 622 628 632 663 672 679
717 721# 727 729# 760 764# 770 789# 820 834 845 867
923 932 942 1011 1017# 1046 1081# 1135 1144 1148 1180 1196
1206 1210
ADDR 1380 1418 1422 1439 1443# 1444# 2142 2144# 2145# 2146# 2147# 2148#
2149# 2150# 2151# 2152#
ADDRESS 1319 1321# 1333 1336 1338# 1339# 1340# 1341# 1342# 1343# 1344 1345#
1429 1431# 1451 1453# 1454 1455# 3166 3167
ADR 3114 3138
ALLOCATE_BUFFERS 180 1226* 1310 1405
ALLOCATE_BUFFER_POOL 181 1261* 2450
ALLOCATE_CCB_AND_BUFFER_POOL 182 1351* 2439 2440
ASSIGN_PDB 2619 2623 2642 2654 2680 2691 2714
BEGIN_ADR 3272 3282# 3284 3301 3304 3313 3315 3332 3343 3345 3356# 3361#
3363
BFH$A_ADDRESS 1333 1339
BFH$A_PROCESS 1341
BFH$H_SIZE 1340
BFH$K_LENGTH 1305 1319 1342 1888
BFH$W_BIAS 1332 1338
BFP 1261 1287 1293 1305 1312# 1313# 1315# 1325# 1329 1331 1335# 1336#
1343 1877 1879# 1888 1892# 1909 1911# 1916 1919# 1923# 2163 2189
2191 2196# 2197# 2198# 2199# 2202 2444 2446# 2450 2451#
BFP$A_QUEUE_LAST_ADDR 1329 1336 2198
BFP$H_ALLOCATED 1315
BFP$H_ALLOCATION_MAXIMUM 1293 1888 1916 1919
BFP$H_ALLOCATION_MINIMUM 1916
BFP$H_FREE_COUNT 1325
BFP$H_SIZE 1305 1343 1888 2196 2197
BFP$K_LENGTH 325 1287 1877 1892 1909 1923 2189 2199 2444 2451
BFP$W_ALLOCATED_BIAS 1312
BFP$W_ALLOCATED_BLKS 1313
BFP$W_QUEUE_FIRST_BIAS 2198
BFP$W_QUEUE_LAST_BIAS 1331 1335
BFP_COUNT 2163 2192 2194
BIAS 1033 1035# 1052# 1074 1075 1252 1254# 1256 1258 1259 1290 1310#
1312 1332 1335 1337 1344# 1381 1386# 1405# 1409 1431 1450 1454#
2907 2919# 2924 2926 2930#
BKP$H_SIZE 268# 1851 2159#
BKP$W_LINK 267# 2158#
BLISS16 3
BLKS 1226 1256 1298 1305 1306 1307 1310 1313 1393 1400 1401 1402
1405 1410 1866 1869 1870 1871 1872 2098 2121# 2123 2155#
BLKS_AVAILABLE 1836 1846# 1851# 1862
BLKS_LEFT 1860 1862# 1872# 1891# 1897 1903# 1920# 1928
BUF 670 672# 673# 683# 684# 685# 937 942# 944 955 966 2244
2246# 2248 2249 2250 2251 2252 2253# 2254 2255 2256 2257 2258
2260# 2463 2466 2470 2471
BUFFER 161# 3188# 3206# 3268 3304# 3305# 3306 3307# 3308# 3310 3313# 3314#
3336# 3340 3343# 3344#
CALL$ 167 168 169 170 171 172 173 174 175 176 177 178
398# 466# 522# 591# 636# 690# 733# 793# 896# 984# 1108# 1153#
CBP 1351 1377 1384 1388 1400 1409# 1410# 1422# 1423# 1425# 1447 1453
1458# 1462 1466#
CBP$A_ALLOCATED_ADDRESS 1422
CBP$A_QUEUE_LAST 1462 1466
CBP$H_ALLOCATED 1425
CBP$H_ALLOCATION_MAXIMUM 1384 1869 1899 1902 2249 2252
CBP$H_ALLOCATION_MINIMUM 1899 2248 2251
CBP$H_FREE_COUNT 1458
CBP$H_SIZE 1388 1400 1447 1453 1869
CBP$K_LENGTH 328 356 1377
CBP$W_ALLOCATED_BIAS 1409
CBP$W_ALLOCATED_BLKS 1410
CBP$W_ALLOCATED_LENGTH 1423
CCB 1437 1439# 1450# 1451# 1452# 1464 1466 3460# 3462# 3464 3468# 3475
3476 3482# 3484# 3486 3490# 3497 3498
CCB$A_ADDRESS 1451
CCB$A_DESTINATION_PROCESS 3475 3497
CCB$A_LINK 1464 3464 3468 3486 3490
CCB$B_FUNCTION 3476 3498
CCB$B_MODIFIER 3476 3498
CCB$K_LENGTH 1418 1437 1441 3460 3482
CCB$V_RDB 1452
CCB$W_BIAS 1450
CE$ACV 514 583 1050
CE$BFI 2117
CE$BFP 2110
CE$BFS 1928 2126
CE$CBA 1420
CE$DSP 1208
CE$EXV 834
CE$LIX 630 681 932
CE$PIX 773 877 949 953 960 964 971 975
CE$PRI 1212
CE$RBA 1407
CE$RES 1062 1106 1146 1216
CE$VCF 579
CE$VCU 1204
CE$VEC 565 1200
CECLK 183 1472* 2236
CEFRK 184 1511* 1606
CENOP 185 304 1540*
CEPWF 186 306 1566*
CETIM 187 305 1655*
CEX 1# 309
CEX$$ADDRESS_ERROR_TRAP 374 2370
CEX$$ADD_32 373* 1306 1401 1870 1889
CEX$$ALLOCATE_CORE 375 1256
CEX$$BREAKPOINT_TRAP 376 2372
CEX$$CLEAR_PROCESS 167 290 398*
CEX$$CLEAR_PROCESS_NAME 168 291 466*
CEX$$CLEAR_VECTOR 169 292 522*
CEX$$DISPATCH_PROCESS 377 1507 1645 1729 3475 3497
CEX$$DIVIDE_32 378
CEX$$EMT_INSTRUCTION_TRAP 379 2375
CEX$$ENTER_CEX 380 1500 1535 1615 1685
CEX$$EXIT_CEX 381 1509 1538 1653 1808
CEX$$GET_DEVICE_NAME 170 293 591*
CEX$$GET_LINE_PROCESSES 171 294 636*
CEX$$GET_PROCESS_INDEX 172 295 690*
CEX$$GET_PROCESS_NAME 173 296 733*
CEX$$ILLEGAL_INSTRUCTION_TRAP 382 2371
CEX$$IOT_INSTRUCTION_TRAP 383 2373
CEX$$MULTIPLY_32 384 1305 1400 1869 1888
CEX$$PARITY_ERROR_TRAP 385 2377
CEX$$POWER_FAILURE_TRAP 386 2374
CEX$$SEGMENT_FAULT_TRAP 387 2378
CEX$$SET_EXCEPTION 174 297 793*
CEX$$SET_LINE_PROCESSES 175 298 896*
CEX$$SET_PROCESS 176 299 984*
CEX$$SET_PROCESS_NAME 177 300 1108*
CEX$$SET_VECTOR 178 301 1153*
CEX$$SHIFT_32 388 1307 1402 1871 1890 2926 2935
CEX$$SYNCHRONIZE_PROCESS 389 3443
CEX$$TRAP_INSTRUCTION_TRAP 390 2376
CEX$AA_CCB_QUEUE_H 329 3478 3484 3486# 3488#
CEX$AA_CCB_QUEUE_L 330 3456 3462 3464# 3466#
CEX$AA_PROCESS_TABLE 351 450 771 875 951 962 973 1023 1083 1085 1087 1088
1635 1691 2301 2304 2567 2574 2581 2716 2781 3025 3191
CEX$AA_SYNCH_QUEUE 365 455 457# 459# 3403 3419 3421# 3423#
CEX$AG_CCB_DSR_ALLOCATION 327
CEX$AG_PROCESS_DATA_BASE 348 429
CEX$AG_RDB_CORE_ALLOCATION 354
CEX$AG_RDB_DSR_ALLOCATION 355
CEX$AR_CEX_PROCESS 450# 453
CEX$AR_CEX_SYNCH_BLOCK 332 445 452# 453# 455# 457 459 2971#
CEX$AW_RANDOM_NUMBER_SEED 353 2407 2408 2427# 2428#
CEX$CFG_UNIBUS_MAPPING 145 146# 1611 2814
CEX$GA_BUFFER_POOL_TABLE 325 1879 1911 2191# 2446
CEX$GA_CEX_FORK_BLOCK 331 1536# 1609# 3448#
CEX$GA_CURRENT_PROCESS 333 433# 512 581 1035 1149 1220
CEX$GA_DTE_BOOT_ROM_ADDRESS 335 2292#
CEX$GA_PANIC_STACK 343 3173# 3174
CEX$GA_PROCESS_NAME_TABLE 350 2060 2765#
CEX$GA_PROCESS_TABLE_END 352 1095 1097# 1103 1648 1739 2720 2722# 2973 2996 2998#
CEX$GA_SHORT_TIMER_DISPATCH 360 2236#
CEX$GA_SYSTEM_LINE_TABLE 367 1961 2514 2555#
CEX$GA_UBM_DATA_BASE 370 2937#
CEX$GB_CURRENT_PROCESS_INDEX 334
CEX$GG_POWER_FAIL_COUNT 345 1623#
CEX$GG_SIGNAL_STATUS 218# 361
CEX$GH_BUFFER_POOL_COUNT 324 1881 1913 2192# 2448
CEX$GH_PROCESS_COUNT 347 770 874 947 958 969 2062 2712 2776
CEX$GH_PROCESS_NAME_COUNT 349 2766#
CEX$GH_SCHEDULING_REQUESTS 358 3399# 3453#
CEX$GH_SYSTEM_LINE_COUNT 366 1959 2556#
CEX$GR_CCB_POOL 328 2248# 2249# 2439
CEX$GR_DUMP_EXCEPTION 336 2304# 2305# 2338# 3220
CEX$GR_INTERRUPT_4_BLOCK 337 394
CEX$GR_INTERRUPT_5_BLOCK 338 395
CEX$GR_INTERRUPT_6_BLOCK 339 396
CEX$GR_INTERRUPT_7_BLOCK 340 397
CEX$GR_LAST_CHANCE_EXCEPTION 341 829 2301# 2302# 2303#
CEX$GR_PRIMARY_EXCEPTION 346 827
CEX$GR_RDB_POOL 356 1869 1899 1902# 2251# 2252# 2440
CEX$GR_SECONDARY_EXCEPTION 357 828
CEX$GW_AVG_CCB_DISPATCHES 318 1793 1795#
CEX$GW_AVG_INTERRUPTS 319 1775 1777#
CEX$GW_AVG_LONG_TIMERS 320 1789 1791#
CEX$GW_AVG_SHORT_TIMERS 321 1785 1787#
CEX$GW_AVG_SYNCHS 322 1781 1783#
CEX$GW_BLOCK_POOL_BIAS 323 1849 2131#
CEX$GW_CCB_DISPATCH_COUNT 326 1793 1795 1800# 3469# 3471 3473# 3491# 3493 3495#
CEX$GW_LONG_TIMER_COUNT 342 1723# 1725 1727# 1789 1791 1799#
CEX$GW_PANIC_STATUS 344 3171#
CEX$GW_SHORT_TIMER_COUNT 359 1501# 1503 1505# 1785 1787 1798#
CEX$GW_STATISTICS_INTERVAL 362 1802 2480 2482# 2484
CEX$GW_STATISTICS_TIMER 363 1743 1746# 1748 1802# 2484#
CEX$GW_SYNCH_COUNT 364 1781 1783 1797# 3428# 3430 3432#
CEXTBL 289# 310
CEXVER 2651 2653 2654
CEX_DISPATCH 310#
CEX_LL_ADD_LOW_HIGH 373
CEX_LL_BLKS 375
CEX_LL_CNT_LOW_HIGH 388
CEX_LL_NUM_LOW_HIGH 378
CEX_LL_NUM_NUM 384
CEX_LL_PDB_DSP 389
CEX_LL_PDB_FNC_MOD 377
CH$WCHAR 622
CHECK_BUFFER_ALLOCATIONS 188 1810* 2438
COUNT 1291 1293# 1305 1315 1347# 1382 1384# 1400 1418 1425 1468# 1881
1913 2062 2194 2287 2448 2516 2558 2621 2768
DATA 3330
DB 1711# 1715 1718# 1720
DCB 2700# 2702#
DCB_FIELDS 2700
DDM_PROCESS 938 966# 969 973# 979
DEVICE 2314 2319# 2321 2327 2334# 2336 2343#
DEVICE_LIST 2317# 2319
DISPATCH 2661 2666# 2668# 2671# 2673# 2675 3437 3441# 3443
DLC_PROCESS 939 955# 958 962# 978
DR$A_DTE_REGISTERS 2280# 2285
DSP 1187 1206# 1221
DTE$K_LENGTH 2277# 2280 2283 2296
DTE_ADDRESS 2283 2285# 2289 2296#
DUMPER_BIAS 3218 3220# 3234#
D_DSP 2702
ENB 3028 3054
END_ADR 3273 3291# 3356
EQLU 503 1720 2005 2327 2852
EXV 832 834# 836# 850 852 854 880# 882# 883# 884# 887# 891#
EXV$A_DISPATCH 852 880 884 887 891 2302 2305
EXV$A_ENABLE_DATA 854 882 2303 2338 3220
EXV$A_PROCESS 850 883 2301 2304
EXV$K_LENGTH 336 341 346 357 832 850
FALSE 238 247# 2111 2118 2127 3058
FC_SYS 1645
FC_TIM 1507 1729
FIND_LINE 189 628 679 932 1933*
FIND_PARTITION 190 1048 1963* 2107 2336 2642
FIND_PROCESS_NAME 191 505 727 1144 1146 2032*
FM_LTM 1729
FM_PIN 1626
FM_PWF 1621
FM_STM 1507
FORK_BLOCK 1511 1536
HALT 3238
HEADER 779# 786 1068# 1076 2627# 2646# 2653 2654 2695 2702 3226# 3235
HIGH 1303 1305 1306 1307 1398 1400 1401 1402 1867 1869 1870 1871
1885 1888 1889 1890
INDEX 2562 2564# 2567 2571# 2574 2578# 2581 2772 2774# 2776 2781
INITIALIZE_BLOCK_POOL 192 2072* 2259
INITIALIZE_BUFFER_POOL 193 2163* 2258
INITIALIZE_CEXCOM_DATA 194 1627 2204*
INITIALIZE_DEVICE_NAMES 195 2257 2486*
INITIALIZE_LINES 196 2256 2527*
INITIALIZE_PROCESS_DESCRIPTORS 197 2254 2590*
INITIALIZE_PROCESS_NAMES 198 2255 2737*
INITIALIZE_UNIBUS_MAPPING 199 1613 2790*
INTERRUPTS 1755 1768# 1770# 1775 1777
INTERRUPT_PRIORITY_BLOCK 393# 1219 1757 1758
IPB 1766# 1768 1772#
IPB$K_LENGTH 337 338 339 340 1766
IPB$V_JSR_4 394 395 396 397
IPB$W_COUNT 1768 1772
IPBA 1757 1766
ITB 570 575# 577 581 586 1188 1214 1218# 1219# 1220# 1221# 1222
ITB$A_DISPATCH 1221
ITB$A_JSR_5_ADDRESS 1219
ITB$A_PROCESS 581 1220
ITB$K_LENGTH 570 586 1188 1214
ITB$V_JSR_5 1222
ITB$W_JSR_5_INSTRUCTION 1218
KILL_PROCESSES 200 452 2942*
KISAR5 1604 1608 3229 3232# 3234#
KISAR6 2104 2153# 3181 3230 3232#
LANGUAGE 3
LAST 201 1329# 1332# 1333# 1462# 1464# 2302 3028*
LAST_PDT 2968 2981# 2996 2998#
LEN 2464 2466 2469# 2470
LINE_INDEX 1933 1957# 1959 1961
LINKAGE_ADR 153# 181 182 1261# 1351#
LINKAGE_ADR_CARRY 154# 210
LINKAGE_ADR_CNT 155# 193 195 196 197 198 2163# 2486# 2527# 2590# 2737#
LINKAGE_ADR_NO_CARRY 156# 204 3114#
LINKAGE_BLKS 157# 180 1226#
LINKAGE_CLEAN 158# 380 381
LINKAGE_FUNCTION 159# 189 190 191 1933# 1963# 2032#
LINKAGE_INTERRUPT 160# 202 203 374 376 379 382 383 385 386 387 390
3062# 3088#
LINKAGE_LIST_BUFFER 161# 206 3242#
LLC_PROCESS 940 944# 947 951# 977
LOW 1886 1888 1889 1890 1891
MAP$ 785 787 1074 1077 1331 1337 1713 1849 1853 2131 2157 2160
2645 3198#
MCB$GA_LOGGING_BUFFER 368 2471#
MCB$GW_RDB_SIZE 369 2250#
MCB$K_CLEAR_PROCESS 290
MCB$K_CLEAR_PROCESS_NAME 291
MCB$K_CLEAR_VECTOR 292
MCB$K_GET_DEVICE_NAME 293
MCB$K_GET_LINE_PROCESSES 294
MCB$K_GET_PROCESS_INDEX 295
MCB$K_GET_PROCESS_NAME 296
MCB$K_SET_EXCEPTION 297
MCB$K_SET_LINE_PROCESSES 298
MCB$K_SET_PROCESS 299
MCB$K_SET_PROCESS_NAME 300
MCB$K_SET_VECTOR 301
MCB$_BUSY_NAME 1144
MCB$_NORMAL 464 520 589 634 688 731 791 894 982 1099 1151 1224
MCB$_PARAMETER_ERROR 427 495 551 620 665 719 762 822 925 1015 1137 1182
MCB$_PROCESS_STILL_ACTIVE 431
MCB$_UNKNOWN_PROCESS 503 505 727
MCB_ 200 205 207 2942# 3140# 3368#
MCH 3028 3055
MEXV 827# 836
MFPI 3182
MODIFIER 1619 1621# 1626# 1645
MONITOR 2399# 2405 2425
NAM 2486 2518 2519# 2523# 2524# 2525
NAME 309# 1963 1989 2005 2032 2064
NAME_ENTRY 500 505# 510 516# 517# 1142 1146# 1148# 1149# 2058 2060# 2064
2066 2068#
NEW 865 867# 874 875 882 884
NEW_BFP 2163 2202#
NEW_NAM 2486 2525#
NEW_PDB 2590 2735#
NEW_PNM 2737 2788#
NEW_SLT 2527 2588#
NEW_UBM 2865 2867 2869 2870# 2871# 2872# 2873# 2874#
NEW_WINDOW 3274 3290# 3297 3306# 3315# 3335# 3345#
NO_OPERATION 248# 1564 3086
NULL 202 3062* 3184
NXM 210* 228 2289 3301 3332
NXM_CATCHER 203 227 2273 3088* 3278
NXM_SAVE 225 226# 231 237 2270 2272# 2299 3275 3277# 3319 3349 3366
NXM_TESTER 204 210 3114*
OLD 843 845# 852# 853# 854# 855#
PANIC 205 2305 3140*
PCB 1042 1048# 1052 1992 1997# 2003 2005 2010 2014 2017# 2022# 2023#
2028# 2099 2107# 2114 2121# 2131 2157 2159 2332 2336# 2338 2632
2642# 2645 2646 2835 2843# 2850 2854 2856 2860 2871 2872 2878
2882 2886 2889# 2894# 2895# 2900#
PCB_BAD 2839 2846 2852 2856
PCB_FIELDS 1042 1992 2099 2332 2632 2835
PCB_GOOD 2840 2847 2854
PCB_NAME 1043 1045# 1046# 1048 2637 2639# 2640# 2642
PDB 1058 1060 1075# 1076# 1079# 1080# 1081# 1090# 1091 2590 2616 2639
2645# 2657# 2666 2675# 2678 2682 2689 2693 2712 2717 2727 2729#
2731# 2735 2979 2983# 2987 3002 3007 3013# 3017
PDB_COUNT 2590 2621
PDT 1021 1023# 1028 1083 1085 1087 1088 1091# 1093# 1095 1097 1103#
1633 1635# 1643 1648# 1689 1691# 1699 1739# 2710 2712# 2716# 2717#
2718# 2720 2722 2969 2973# 2981 2983# 2994# 3025
PDT$A_CODE_DISPATCH 1076 2675
PDT$A_DATA_ADDRESS 1080 1711 2678 3199
PDT$A_DISPATCH_ADDRESS_ADDRESS 2666
PDT$A_UCB 2689 2729 3007
PDT$B_INDEX 729 853 977 978 979 1081 2693 2712
PDT$K_LENGTH 333 450 510 725 768 872 938 939 940 1058 1060 1641
1697 2616 2731 2979 3000 3196 3438
PDT$V_DATA_BASE_INCLUDED 2678
PDT$V_FLAGS 1090
PDT$V_KILL_PROCESS 433 2987
PDT$V_LONG_TIMER 1703
PDT$V_PERMANENT 2657 3013
PDT$V_UCB_INCLUDED 2682 2727 3002
PDT$W_CODE_BIAS 512 785 1035 1075 2645
PDT$W_CODE_NAME 2639
PDT$W_DATA_BIAS 1079 1713 3198
PDUMP 206 3208 3242*
PHD$A_LLC_TABLE 1076
PHD$A_RSX_TABLE 2702
PHD$A_SIGNAL 3235
PHD$V_RSX_TABLE_INCLUDED 2695
PHD$W_BLKS 2646
PHD$W_CEX_IDENT_1 2653
PHD$W_CEX_IDENT_2 2654
PHD$W_NAME 786
PNAME 2003# 2005 2850# 2852
PNM 2737 2763 2765 2774 2778# 2781# 2783# 2785# 2788
PNM$A_PROCESS 510 516 1149 2066 2778 2781
PNM$K_LENGTH 350 500 1142 2058 2068 2763 2785
PNM$W_NAME 517 1148 2064 2778 2783
PNM$W_PROCESS_INDEX 2774
PNM_COUNT 2737 2766 2768
POP 3166# 3214
PRI 1189 1210# 1219
PROCESS 510# 512 725 727# 729 768 770# 771# 785 786# 789 850#
853 872 875# 883 1641 1643# 1645 1697 1699# 1703 1711 1713
1729 3438 3440# 3443
PROCESS_NAME 501 503# 505
PS 440 442 443# 462# 2354 2356 2357# 2431# 3062 3088 3112# 3171
3172# 3415 3417 3418# 3425#
PS_COM 2114
PS_SAVE 437 442# 462 2351 2356# 2431 3412 3417# 3425
PS_SYS 2010 2856 2882
PUSH 3168# 3175 3176 3177 3178 3179 3180 3181 3182 3183
P_BLKS 2121 2159 2646 2878
P_LNK 2023 2028 2114 2895 2900
P_MAIN 2022 2114 2856 2894
P_NAM 2003 2850
P_REL 1052 2121 2131 2157 2338 2645 2860 2871 2872
P_SUB 2014 2017 2886 2889
P_TCB 2854
RECONCILIATION 1839 1856
ROT 1763 1768 2414 2416 2420
RSX$GW_SYSTEM_SIZE 264# 2105 2121 2325 2327 2822 2831# 2902
RSX_CLK 162# 183 1472#
RSX_DISPATCH 311#
RSX_FRK 163# 184 1511#
RSX_UCB 185 194 1540# 2204#
RSX_UCB_SCB 164# 186 187 1566# 1655#
SAVE_MAP 782 784 787 1071 1073 1077 1844 1847 1853 2100 2130 2160
SCB 1566 1592 1596# 1597# 1601 1606# 1607# 1608# 1609 1655 1681 1684#
SCB_FIELDS 1592 1681
SCHEDULE 207 1508 1537 1652 1807 3368*
SEED0 2402 2407# 2416# 2422# 2428
SEED1 2402 2408# 2418# 2420# 2427
SIG 3028 3056 3058 3060
SLT 626 628# 632 677 679# 683 684 685 930 932# 977# 978#
979# 2512 2514# 2518# 2520# 2527 2553 2555 2564 2569# 2571 2576#
2578 2583# 2585# 2588
SLT$A_DEVICE 632 2518
SLT$B_DDM_PROCESS_INDEX 685 979 2578 2583
SLT$B_DLC_PROCESS_INDEX 684 978 2571 2576
SLT$B_LLC_PROCESS_INDEX 683 977 2564 2569
SLT$K_LENGTH 367 626 677 930 2512 2520 2553 2585
SLT$V_BASE 1961
SLT_COUNT 2486 2516 2527 2556 2558
SMAP$ 784 1073 1258 1847 2130
SR3 223 228 232#
STANDARD 160
SYN 3407# 3419# 3421 3427# 3440 3441 3442#
SYN$A_DISPATCH 445 452 2971 3441
SYN$A_LINK 455 3421 3427
SYN$A_PROCESS 453 3440 3442
SYN$K_LENGTH 332 3407
S_CTM 1596 1684
S_FRK 1597
TABLE$ 289 304
TEMP 1441
TIMER_BLOCK 1472 1498 1507
TIMER 1708# 1711 1715 1718 1720
TMB$A_PROCESS 1507
TMB$K_LENGTH 1498
TRAP 2366 2381# 2385# 2386# 2388
TRAPS 2369# 2381
TRUE 233 249# 433 1452 1595 1856 2018 2161 2657 2890 3238 3401
3505
UBM 2836 2842# 2860 2869# 2875# 2878# 2902# 2908 2914# 2918# 2919 2924#
2930 2933# 2935
UBM$A_LINK 2828 2869 2870 2875 2933 2937
UBM$B_BASE_UBMR 2873 2874 2918
UBM$K_LENGTH 2818 2867
UBM$W_END_BLK 2830 2860 2872 2878 2902 2924 2930
UBM$W_START_BLK 2829 2871 2919
UBMN 2909 2912# 2918 2924 2928#
UBMPR 2821 2913
UBMR 2910 2913# 2926 2927# 2935
UBM_DATA_BASE 2818 2828# 2829# 2830# 2842 2914 2937
UBM_MAPPING 221# 2826
UCB 1566 1593 1595# 1627 1655 1682 2204 2230 2237# 2241 2246 2247#
2254 2255 2256 2257 2258 2687 2689# 2693# 2700 3007# 3009#
UCB_FIELDS 1593 1682 2230 2687 3007
US_BSY 1595
U_CNT 2237
U_CW2 2693 3009
U_DCB 2700
VALUECBIT 154
VALUE 3168 3169
VEC 556 561# 563 575 585# 1190 1196# 1198 1202 1222#
VEC$AA_ADDRESS_ERROR 226 227# 231# 237# 271# 1751 1801 2272 2273# 2299# 2370 3277
3278# 3319# 3349# 3366#
VEC$AA_BREAKPOINT 272# 2372
VEC$AA_EMT_INSTRUCTION 273# 2375
VEC$AA_ILLEGAL_INSTRUCTION 274# 2371
VEC$AA_IOT_INSTRUCTION 275# 2373
VEC$AA_PARITY_ERROR 276# 2377
VEC$AA_POWER_FAILURE 277# 2374 3183 3184# 3214
VEC$AA_SEGMENT_FAULT 278# 2378
VEC$AA_TRAP_INSTRUCTION 279# 2376
ZERO 2101 2136# 2145 2146 2147 2148 2149 2150 2151
$CETBL 304# 311
$CEX_BFHFIELDS 1319 1329
$CEX_BFPDEF 251
$CEX_BFPFIELDS 325 1287 1877 1909 2189 2444
$CEX_CBPDEF 252
$CEX_CBPFIELDS 328 356 1377
$CEX_CCBDEF 253
$CEX_CCBFIELDS 1437 1462 3460 3482
$CEX_EXVDEF 254
$CEX_EXVFIELDS 336 341 346 357 832
$CEX_FATAL_ERROR 217# 427 431 495 514 551 565 579 583 620 630 665
719 762 822 877 925 932 949 953 960 964 971 975
1015 1050 1062 1106 1137 1182 1200 1204 1208 1212 1216
$CEX_IPBFIELDS 337 338 339 340 1766
$CEX_ITBDEF 255
$CEX_ITBFIELDS 570 1188
$CEX_PDTDEF 256
$CEX_PDTFIELDS 333 450 510 725 768 850 872 938 939 940 1058 1641
1697 2616 2979 3196 3438
$CEX_PHDDEF 776 1065 2624 3223
$CEX_PHDFIELDS 779 1068 2627 3226
$CEX_PNMDEF 257
$CEX_PNMFIELDS 350 500 1142 2058 2763
$CEX_SLTDEF 258
$CEX_SLTFIELDS 367 626 677 930 2512 2553
$CEX_SYNDEF 259
$CEX_SYNFIELDS 332 3407
$CEX_TMBDEF 260
$CEX_TMBFIELDS 1498
$CEX_UBMDEF 261
$CEX_UBMFIELDS 2818 2836 2865 2908
$DSPCR 286* 289
$MCB_DISABLE_INTERRUPT 1751
$MCB_ENABLE_INTERRUPT 1801
$MCB_PROCESS 308
$RSX_GET_DSR 1060 1214 1418 2466 2867
$RSX_RETURN_DSR 586 3017
$SUB_FIELD 1597 2197 2237