Trailing-Edge
-
PDP-10 Archives
-
BB-P363B-SM_1985
-
mcb/cex/ini.lst
There is 1 other file named ini.lst in the archive. Click here to see a list.
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 1
30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (1)
; 0001 module INI ( ! DN20 Initialization Process
; 0002 ident = 'X03210',
; 0003 language (bliss16)
; 0004 ) =
; 0005 begin
; 0006 !
; 0007 ! COPYRIGHT (c) 1980, 1981, 1982
; 0008 ! DIGITAL EQUIPMENT CORPORATION
; 0009 ! Maynard, Massachusetts
; 0010 !
; 0011 ! This software is furnished under a license and may be used
; 0012 ! and copied only in accordance with the terms of such license
; 0013 ! and with the inclusion of the above copyright notice. This
; 0014 ! software or any other copies thereof may not be provided or
; 0015 ! otherwise made available to any other person. No title to
; 0016 ! and ownership of the software is hereby transferred.
; 0017 !
; 0018 ! The information in this software is subject to change
; 0019 ! without notice and should not be construed as a commitment
; 0020 ! by DIGITAL EQUIPMENT CORPORATION.
; 0021 !
; 0022 ! DIGITAL assumes no responsibility for the use or reliability
; 0023 ! of its software on equipment which is not supplied by
; 0024 ! DIGITAL.
; 0025 !
; 0026
; 0027 !++
; 0028 !
; 0029 ! FACILITY: DN20 Initialization
; 0030 !
; 0031 ! ABSTRACT:
; 0032 !
; 0033 ! This process sets the load parameters, sends configuration
; 0034 ! information to relavent processes, and starts the necessary
; 0035 ! DECnet lines.
; 0036 !
; 0037 ! ENVIRONMENT: MCB V3.0
; 0038 !
; 0039 ! AUTHOR: Alan D. Peckham CREATION DATE: 21-Oct-80
; 0040 !
; 0041 ! MODIFIED BY:
; 0042 !
; 0043 ! Alan Peckham: 21-Oct-80
; 0044 ! 04 - Converted to BLISS.
; 0045 ! 05 - Make sure C_PRM5 state is DS_LIX2 when INILIX is called.
; 0046 ! 06 - Update process header for MCB V3.1
; 0047 ! 07 - Use Network Management interface calls for SC and NSP.
; 0048 ! 08 - Start up all lines at once.
; 0049 ! 10 - Line initialization in INILIX stopped with first unassigned line.
; 0050 ! 11 - Do SET LINE ON to PLP lines.
; 0051 ! 12 - Tell NMX what lines there are.
; 0052 ! 13 - Bug fix - we weren't setting the local node name in SC.
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 2
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (1)
; 0053 ! 14 - (Lee Webber: 10-Jun-81)
; 0054 ! Modify to support new DLL/NM interface to TLI:
; 0055 ! o Change "next routine" field in the INI function CCBs from
; 0056 ! C_PRM3 to C_PRM5;
; 0057 ! o Add a routine to grant ownership of a circuit to its LLC
; 0058 ! before setting it ON;
; 0059 ! o Do a "create circuit" before granting a circuit to the owner;
; 0060 ! 16 - Fix or/and bug in NSP_SET_ADDRESS.
; 0061 ! Do not set host number if no host given.
; 0062 ! 17 - do not setup node or host mapping in SC_ADD_NODE if blank
; 0063 ! 18 - Add support for DMR devices in INILIX.
; 0064 ! 19 - Fix INILIX to use new $MCB_GET_DEVICE_NAME for device names.
; 0065 ! 20 - Set proper host node number.
; 0066 ! 21 - (Jerry Weisbach 26-Feb-82) Add support for X.25 Line Entity.
; 0067 ! o Remove routine DLC_SET_LINE_ON
; 0068 ! o Add routines LLC_GRANT_LINE_OWNERSHIP and LLC_SET_LINE_ON.
; 0069 ! o Modify INILIX to pass control start to Line owner.
; 0070
; 0071 !--
; 0072
; 0073 !
; 0074 ! INCLUDE FILES:
; 0075 !
; 0076
; 0077 library 'MCBLIB';
; 0078
; 0079 library 'XPORTX';
; 0080
; 0081 library 'NMXLIB';
; 0082
; 0083 require 'DLLLIB';
; 0337
; 0338 switches list (require);
; 0339 $SHOW (FIELDS) $SHOW (LITERALS)
; 0340 require 'INIDAT';
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 3
X03210 30-Dec-1982 01:54:59 DNET61:<MCB.CEX>INIDAT.R16.1 (1)
; R0341 ! [Beginning of INIDAT]
; R0342 !
; R0343 !
; R0344 ! COPYRIGHT (c) 1980, 1981, 1982
; R0345 ! DIGITAL EQUIPMENT CORPORATION
; R0346 ! Maynard, Massachusetts
; R0347 !
; R0348 ! This software is furnished under a license and may be used
; R0349 ! and copied only in accordance with the terms of such license
; R0350 ! and with the inclusion of the above copyright notice. This
; R0351 ! software or any other copies thereof may not be provided or
; R0352 ! otherwise made available to any other person. No title to
; R0353 ! and ownership of the software is hereby transferred.
; R0354 !
; R0355 ! The information in this software is subject to change
; R0356 ! without notice and should not be construed as a commitment
; R0357 ! by DIGITAL EQUIPMENT CORPORATION.
; R0358 !
; R0359 ! DIGITAL assumes no responsibility for the use or reliability
; R0360 ! of its software on equipment which is not supplied by
; R0361 ! DIGITAL.
; R0362 !
; R0363
; R0364 !++
; R0365 !
; R0366 ! FACILITY: DN20 Initialization
; R0367 !
; R0368 ! ABSTRACT:
; R0369 !
; R0370 ! This contains the data structure definitions for DN20 initialization.
; R0371 !
; R0372 ! ENVIRONMENT: MCB V3.0
; R0373 !
; R0374 ! AUTHOR: Alan D. Peckham CREATION DATE: 24-Oct-80
; R0375 !
; R0376 ! MODIFIED BY:
; R0377 !
; R0378 !--
; R0379 !
; R0380 ! Status Codes:
; R0381 !
; R0382
; R0383 DECLARE_SEVERITY (INI, SEVERE);
; R0384
; R0385 $INI_SEVERE (INI$_BAD_CODE, 'Value in C_PRM5 has been modified by called process')
; R0386 $INI_SEVERE (INI$_NO_CCB, 'Unable to allocate CCB during initialization')
; R0387 $INI_SEVERE (INI$_NO_INI, 'Unable to obtain my own PIX')
; R0388 $INI_SEVERE (INI$_NO_DSR, 'Unable to get DSR block')
; R0389 $INI_SEVERE (INI$_FAILED, 'Requested function failed')
; R0390 $INI_SEVERE (INI$_NO_CODE, 'No process for attached LLC PIX')
; R0391
; R0392 !
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 4
X03210 30-Dec-1982 01:54:59 DNET61:<MCB.CEX>INIDAT.R16.1 (1)
; R0393 ! INI process data base
; R0394 !
; R0395
; R0396 $FIELD
; R0397 D_FIELDS =
; R0398 set
; LR0399 D_TIM = [$BYTE],
; %PRINT: [0,0,8,0] (+%O'0')
; LR0400 D_LIX = [$BYTE],
; %PRINT: [0,8,8,0] (+%O'1')
; LR0401 D_ADR = [$SHORT_INTEGER],
; %PRINT: [1,0,16,1] (+%O'2')
; LR0402 D_NAM = [$BYTES (6)],
; %PRINT: [2,0,0,0] (+%O'4')
; LR0403 D_HST = [$BYTES (6)],
; %PRINT: [5,0,0,0] (+%O'12')
; LR0404 D_HAD = [$SHORT_INTEGER]
; %PRINT: [8,0,16,1] (+%O'20')
; R0405 tes;
; R0406
; R0407 $LITERAL
; LR0408 D_LEN = $FIELD_SET_SIZE;
; %PRINT: 9 fullwords
; R0409
; R0410 !
; R0411 ! [End of INIDAT]
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 5
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (1)
; 0412 switches list (norequire);
; 0413
; 0414
; 0415 !
; 0416 ! TABLE OF CONTENTS:
; 0417 !
; 0418
; 0419 forward routine
; 0420 CRASH_ON_NEGATIVE_STATUS : LINKAGE_DB_CCB,
; 0421 GET_NM_CCB,
; 0422 INICCP : MCB_DB_CCB_MOD novalue,
; 0423 INILIX : LINKAGE_DB_CCB,
; 0424 INITIM : MCB_DB_MOD novalue,
; 0425 LLC_GRANT_CIRCUIT_OWNERSHIP : LINKAGE_DB_CCB,
; 0426 LLC_SET_CIRCUIT_ON : LINKAGE_DB_CCB,
; 0427 LLC_GRANT_LINE_OWNERSHIP : LINKAGE_DB_CCB,
; 0428 LLC_SET_LINE_ON : LINKAGE_DB_CCB,
; 0429 NSP_SET_ADDRESS : LINKAGE_DB_CCB,
; 0430 RETURN_NM_CCB : LINKAGE_CCB novalue,
; 0431 SC_ADD_NODE : LINKAGE_DB_CCB,
; 0432 SC_SET_HOST : LINKAGE_DB_CCB,
; 0433 SC_SET_NODE_ON : LINKAGE_DB_CCB,
; 0434 XPT_INITIALIZE : LINKAGE_DB_CCB;
; 0435
; 0436 !
; 0437 ! MACROS:
; 0438 !
; 0439 ! None
; 0440 !
; 0441 ! EQUATED SYMBOLS:
; 0442 !
; 0443
; 0444 $field
; 0445 N_FIELDS =
; 0446 set
; L 0447 N_BYTES = [$BYTE],
; %PRINT: [0,0,8,0] (+%O'0')
; L 0448 N_STRING = [$BYTES (15)]
; %PRINT: [0,8,0,0] (+%O'1')
; 0449 tes;
; 0450
; 0451 literal
; L 0452 N_LENGTH = $FIELD_SET_SIZE;
; %PRINT: 8 fullwords
; 0453
; 0454 literal
; 0455 DSR_LENGTH = (5 + 4 + N_LENGTH)^1,
; 0456 FALSE = 1 eql 0,
; 0457 TRUE = 1 eql 1;
; 0458
; 0459 global literal
; 0460 %name ('D.LEN') = D_LEN^1;
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 6
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (1)
; 0461
; 0462 !
; 0463 ! OWN STORAGE:
; 0464 !
; 0465
; 0466 external routine
; 0467 $DSPCR : novalue;
; 0468
; P 0469 $MCB_PROCESS (
; P 0470 NAME = INI, ! Process name
; P 0471 LLC_DISPATCH = TABLE$ ($DSPCR, FC_CCP, ! Dispatch vector:
; P 0472 (FC_CCP, INICCP), ! control complete
; 0473 (FC_TIM, INITIM))); ! timeout
; 0474 !
; 0475 ! EXTERNAL REFERENCES:
; 0476 !
; 0477
; 0478 external
; 0479 MCB$GAW_PROCESS_DATA_BASE : vector [2],
; 0480 MCB$GW_PROCESS_HANDLE;
; 0481
; 0482 bind
; 0483 DB = MCB$GAW_PROCESS_DATA_BASE [1] : ref block field (D_FIELDS),
; 0484 DB_BIAS = MCB$GAW_PROCESS_DATA_BASE [0];
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 7
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (2)
; 0485 routine CRASH_ON_NEGATIVE_STATUS (DB, CCB) : LINKAGE_DB_CCB =
; 0486
; 0487 !++
; 0488 ! FUNCTIONAL DESCRIPTION:
; 0489 !
; 0490 !
; 0491 ! FORMAL PARAMETERS:
; 0492 ! None
; 0493 !
; 0494 ! IMPLICIT INPUTS:
; 0495 ! None
; 0496 !
; 0497 ! IMPLICIT OUTPUTS:
; 0498 ! None
; 0499 !
; 0500 ! ROUTINE VALUE:
; 0501 ! COMPLETION CODES:
; 0502 ! None
; 0503 !
; 0504 ! SIDE EFFECTS:
; 0505 ! None
; 0506 !--
; 0507
; 0508 begin
; 0509
; 0510 map
; 0511 DB : ref block field (D_FIELDS),
; 0512 CCB : ref block field (C_FIELDS);
; 0513
; 0514 if .CCB [C_STS] lss 0
; 0515 then
; 0516 SIGNAL_STOP (INI$_FAILED, .CCB [C_STS], .CCB);
; 0517
; 0518 CCB [C_PRM5] = .CCB [C_PRM4];
; 0519 CCB [C_PRM4] = 0;
; 0520 FALSE
; 0521 end; !of routine CRASH_ON_NEGATIVE_STATUS
.TITLE INI
.IDENT /X03210/
000000 .PSECT ......, D
000000 035171 HEADER: .RAD50 /INI/
000002 000403 .WORD 403
000004 000000 .WORD 0
000006 000000 .WORD 0
000010 000000 .WORD 0
000012 000000' .WORD P.AAA
000014 000000G .WORD .DSPCR
000016 000000G .WORD .DSPCR
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 8
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (2)
000020 000000G .WORD MCB$V0
000022 000000G .WORD MCB$V1
000024 140310 .WORD 140310
000026 143716 .WORD 143716
000030 001400 .WORD 1400
000032 000000 .WORD 0
000034 000000 .WORD 0
000036 000000 .WORD 0
000000 .PSECT $PLIT$, RO , D
000000 000000G P.AAA: .WORD $DSPCR
000002 000000G .WORD $DSPCR
000004 000000G .WORD $DSPCR
000006 000000G .WORD $DSPCR
000010 000000G .WORD $DSPCR
000012 000000V .WORD INITIM
000014 000000G .WORD $DSPCR
000016 000000G .WORD $DSPCR
000020 000000G .WORD $DSPCR
000022 000000V .WORD INICCP
.GLOBL $DSPCR, .DSPCR, MCB$V0, MCB$V1
.GLOBL .CRDAT, .CRPIX
000022 D.LEN== 22
.SBTTL CRASH.ON.NEGATIVE.STATUS
000000 .PSECT $CODE$, RO
000000 016400 000014 CRASH.ON.NEGATIVE.STATUS:
MOV 14(R4),R0 ; *(CCB),* 0514
000004 002012 BGE 1$
000006 010446 MOV R4,-(SP) ; CCB,* 0516
000010 010046 MOV R0,-(SP)
000012 012746 100044 MOV #-77734,-(SP)
000016 012746 000003 MOV #3,-(SP)
000022 004767 000000G JSR PC,$STOP
000026 062706 000010 ADD #10,SP
000032 016464 000032 000034 1$: MOV 32(R4),34(R4) ; *(CCB),*(CCB) 0518
000040 005064 000032 CLR 32(R4) ; *(CCB) 0519
000044 005000 CLR R0 ; 0485
000046 000207 RTS PC
; Routine Size: 20 words, Routine Base: $CODE$ + 0000
; Maximum stack depth per invocation: 5 words
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 9
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (3)
; 0522 routine GET_NM_CCB (CCB_ADR) =
; 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 local
; 0548 CCB : ref block field (C_FIELDS);
; 0549
; 0550 if not $MCB_GET_CCB (CCB) then return FALSE;
; 0551
; 0552 if not $MCB_GET_DSR (DSR_LENGTH, CCB [C_ADDR])
; 0553 then
; 0554 begin
; 0555 $MCB_RETURN_CCB (.CCB);
; 0556 return FALSE
; 0557 end;
; 0558
; 0559 .CCB_ADR = .CCB;
; 0560 TRUE
; 0561 end; !of routine GET_NM_CCB
.GLOBL $CCBGT, $DSRGT, $CCBRT
.SBTTL GET.NM.CCB
000000 004167 000000G GET.NM.CCB:
JSR R1,$SAVE4 ; 0522
000004 004767 000000G JSR PC,$CCBGT ; 0550
000010 103414 BCS 2$
000012 010402 MOV R4,R2 ; $MCB$R4,CCB
000014 012701 000042 MOV #42,R1 ; 0552
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 10
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (3)
000020 004767 000000G JSR PC,$DSRGT
000024 103403 BCS 1$
000026 010062 000020 MOV R0,20(R2) ; $MCB$R0,*(CCB)
000032 000405 BR 3$
000034 010204 1$: MOV R2,R4 ; CCB,* 0555
000036 004767 000000G JSR PC,$CCBRT
000042 005000 2$: CLR R0 ; 0554
000044 000207 RTS PC
000046 010276 000014 3$: MOV R2,@14(SP) ; CCB,CCB.ADR 0559
000052 012700 000001 MOV #1,R0 ; 0522
000056 000207 RTS PC
; Routine Size: 24 words, Routine Base: $CODE$ + 0050
; Maximum stack depth per invocation: 6 words
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 11
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (4)
; 0562 routine INICCP (DB, CCB, MODF) : MCB_DB_CCB_MOD novalue =
; 0563
; 0564 !++
; 0565 ! FUNCTIONAL DESCRIPTION:
; 0566 !
; 0567 !
; 0568 ! FORMAL PARAMETERS:
; 0569 ! None
; 0570 !
; 0571 ! IMPLICIT INPUTS:
; 0572 ! None
; 0573 !
; 0574 ! IMPLICIT OUTPUTS:
; 0575 ! None
; 0576 !
; 0577 ! ROUTINE VALUE:
; 0578 ! COMPLETION CODES:
; 0579 ! None
; 0580 !
; 0581 ! SIDE EFFECTS:
; 0582 ! None
; 0583 !--
; 0584
; 0585 begin
; 0586
; 0587 map
; 0588 DB : ref block field (D_FIELDS),
; 0589 CCB : ref block field (C_FIELDS);
; 0590
; 0591 if .CCB [C_STS] lss 0
; 0592 then
; 0593 SIGNAL_STOP (INI$_FAILED, .CCB [C_STS], .CCB);
; 0594
; 0595 do 0 until LINKAGE_DB_CCB (.CCB [C_PRM5], .DB, .CCB);
; 0596
; 0597 end; !of routine INICCP
.SBTTL INICCP
000000 016400 000014 INICCP: MOV 14(R4),R0 ; *(CCB),* 0591
000004 002012 BGE 1$
000006 010446 MOV R4,-(SP) ; CCB,* 0593
000010 010046 MOV R0,-(SP)
000012 012746 100044 MOV #-77734,-(SP)
000016 012746 000003 MOV #3,-(SP)
000022 004767 000000G JSR PC,$STOP
000026 062706 000010 ADD #10,SP
000032 004774 000034 1$: JSR PC,@34(R4) ; *,*(CCB) 0595
000036 006000 ROR R0
000040 103374 BCC 1$
000042 000207 RTS PC ; 0562
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 12
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (4)
; Routine Size: 18 words, Routine Base: $CODE$ + 0130
; Maximum stack depth per invocation: 5 words
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 13
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (5)
; 0598 routine INILIX (DB, CCB) : LINKAGE_DB_CCB =
; 0599
; 0600 !++
; 0601 ! FUNCTIONAL DESCRIPTION:
; 0602 !
; 0603 !
; 0604 ! FORMAL PARAMETERS:
; 0605 ! None
; 0606 !
; 0607 ! IMPLICIT INPUTS:
; 0608 ! None
; 0609 !
; 0610 ! IMPLICIT OUTPUTS:
; 0611 ! None
; 0612 !
; 0613 ! ROUTINE VALUE:
; 0614 ! COMPLETION CODES:
; 0615 ! None
; 0616 !
; 0617 ! SIDE EFFECTS:
; 0618 ! None
; 0619 !--
; 0620
; 0621 begin
; 0622
; 0623 map
; 0624 DB : ref block field (D_FIELDS),
; 0625 CCB : ref block field (C_FIELDS);
; 0626
; 0627 do
; 0628 begin
; 0629 CCB [C_LIX] = DB [D_LIX] = .DB [D_LIX] + 1;
; 0630
; 0631 if GTPRC$ (.CCB)
; 0632 then
; 0633 begin
; 0634
; 0635 local
; 0636 NMX_PIX;
; 0637
; 0638 !
; 0639 ! Construct the circuit ID.
; 0640 !
; 0641
; 0642 $MCB_GET_DEVICE_NAME (.CCB[C_LIX], .CCB [C_ADDR]);
; 0643
; 0644 !
; 0645 ! Create the circuit at Network Management
; 0646 !
; 0647
; 0648
; 0649 if not $MCB_GET_PROCESS_HANDLE (%rad50_11'NMX', NMX_PIX)
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 14
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (5)
; 0650 then
; 0651 NMX_PIX = 0;
; 0652
; 0653
; 0654 !
; 0655 ! Dispatch the CCB to the owner process
; 0656 !
; 0657
; 0658 if .CCB [C_PRM1] neq 0
; 0659 then
; 0660 begin
; 0661
; 0662 local
; 0663 PROCESS;
; 0664
; 0665 if not PDVNM$ (.CCB [C_PRM1], PROCESS)
; 0666 then
; 0667 SIGNAL_STOP (INI$_NO_CODE);
; 0668
; 0669 selectone .PROCESS of
; 0670 set
; 0671 [%rad50_11'TLI'] :
; 0672 begin
; 0673 if .NMX_PIX neq 0
; 0674 then
; 0675 NMX$CREATE_CIRCUIT (.NMX_PIX, .CCB[C_ADDR], 0, NMX_PIX);
; 0676 CCB [C_PRM5] = LLC_GRANT_CIRCUIT_OWNERSHIP;
; 0677 CCB [C_PRM4] = .CCB [C_PRM1];
; 0678 CCB [C_PIX] = .MCB$GW_PROCESS_HANDLE;
; 0679 CCB [C_FNC] = FC_CCP;
; 0680 $MCB_SCHEDULE_CCB (.CCB);
; 0681 end;
; 0682
; 0683 [%rad50_11'PLP'] :
; 0684 begin
; 0685 if .NMX_PIX neq 0
; 0686 then
; 0687 NMX$CREATE_LINE (.NMX_PIX, .CCB[C_ADDR], 0, NMX_PIX);
; 0688 CCB [C_PRM5] = LLC_GRANT_LINE_OWNERSHIP;
; 0689 CCB [C_PRM4] = .CCB [C_PRM1];
; 0690 CCB [C_PIX] = .MCB$GW_PROCESS_HANDLE;
; 0691 CCB [C_FNC] = FC_CCP;
; 0692 $MCB_SCHEDULE_CCB (.CCB);
; 0693 end;
; 0694
; 0695 [otherwise] :
; 0696 RETURN_NM_CCB (.CCB);
; 0697
; 0698 tes;
; 0699
; 0700 end
; 0701 else
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 15
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (5)
; 0702 RETURN_NM_CCB (.CCB)
; 0703
; 0704 end
; 0705 else
; 0706 begin
; 0707 RETURN_NM_CCB (.CCB);
; 0708 return TRUE;
; 0709 end;
; 0710
; 0711 end
; 0712 while GET_NM_CCB (CCB);
; 0713
; 0714 FALSE
; 0715 end; !of routine INILIX
.GLOBL S.LTGT, $CALLI, D.NMGT, P.DTGT
.GLOBL P.NMGT, $NMCRE, $CALLP, $SCHED
.SBTTL INILIX
000000 004167 000000G INILIX: JSR R1,$SAVE5 ; 0598
000004 162706 000014 SUB #14,SP
000010 010466 000004 MOV R4,4(SP) ; *,CCB
000014 010566 000002 MOV R5,2(SP)
000020 016601 000004 1$: MOV 4(SP),R1 ; CCB,* 0629
000024 012716 000010 MOV #10,(SP)
000030 060116 ADD R1,(SP)
000032 017600 000002 MOV @2(SP),R0
000036 105000 CLRB R0
000040 000300 SWAB R0
000042 005200 INC R0
000044 017646 000002 MOV @2(SP),-(SP)
000050 110066 000001 MOVB R0,1(SP)
000054 012676 000002 MOV (SP)+,@2(SP)
000060 110076 000000 MOVB R0,@0(SP)
000064 012746 000024 MOV #24,-(SP) ; 0631
000070 060116 ADD R1,(SP)
000072 005046 CLR -(SP)
000074 116116 000010 MOVB 10(R1),(SP)
000100 012746 000002 MOV #2,-(SP)
000104 012746 000000G MOV #S.LTGT,-(SP)
000110 004767 000000G JSR PC,$CALLI
000114 062706 000010 ADD #10,SP
000120 032700 000001 BIT #1,R0
000124 001002 BNE 2$
000126 000167 000432 JMP 13$
000132 016103 000020 2$: MOV 20(R1),R3 ; 0642
000136 010346 MOV R3,-(SP)
000140 005046 CLR -(SP)
000142 117616 000004 MOVB @4(SP),(SP)
000146 012746 000002 MOV #2,-(SP)
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 16
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (5)
000152 012746 000000G MOV #D.NMGT,-(SP)
000156 004767 000000G JSR PC,$CALLI
000162 012716 000022 MOV #22,(SP) ; 0649
000166 060616 ADD SP,(SP) ; $MCB$MY.INDEX,*
000170 012746 054640 MOV #54640,-(SP)
000174 012746 000002 MOV #2,-(SP)
000200 012746 000000G MOV #P.DTGT,-(SP)
000204 004767 000000G JSR PC,$CALLI
000210 062706 000006 ADD #6,SP
000214 010004 MOV R0,R4 ; *,$MCB$STATUS
000216 006000 ROR R0
000220 103003 BCC 3$
000222 016666 000022 000016 MOV 22(SP),16(SP) ; $MCB$MY.INDEX,NMX.PIX
000230 032704 000001 3$: BIT #1,R4 ; *,$MCB$STATUS
000234 001002 BNE 4$
000236 005066 000016 CLR 16(SP) ; NMX.PIX 0651
000242 012702 000024 4$: MOV #24,R2 ; 0658
000246 060102 ADD R1,R2
000250 005712 TST (R2)
000252 001536 BEQ 11$
000254 012716 000020 MOV #20,(SP) ; 0665
000260 060616 ADD SP,(SP) ; $MCB$NAME,*
000262 011246 MOV (R2),-(SP)
000264 012746 000002 MOV #2,-(SP)
000270 012746 000000G MOV #P.NMGT,-(SP)
000274 004767 000000G JSR PC,$CALLI
000300 062706 000006 ADD #6,SP
000304 010004 MOV R0,R4 ; *,$MCB$STATUS
000306 006000 ROR R0
000310 103002 BCC 5$
000312 016605 000020 MOV 20(SP),R5 ; $MCB$NAME,PROCESS
000316 032704 000001 5$: BIT #1,R4 ; *,$MCB$STATUS
000322 001007 BNE 6$
000324 012716 100054 MOV #-77724,(SP) ; 0667
000330 012746 000001 MOV #1,-(SP)
000334 004767 000000G JSR PC,$STOP
000340 005726 TST (SP)+
000342 020527 077351 6$: CMP R5,#77351 ; PROCESS,* 0669
000346 001027 BNE 8$
000350 016600 000016 MOV 16(SP),R0 ; NMX.PIX,* 0673
000354 001420 BEQ 7$
000356 012716 000016 MOV #16,(SP) ; 0675
000362 060616 ADD SP,(SP) ; NMX.PIX,*
000364 005046 CLR -(SP)
000366 010346 MOV R3,-(SP)
000370 012746 002000 MOV #2000,-(SP)
000374 012746 000004 MOV #4,-(SP)
000400 012746 000000G MOV #$NMCRE,-(SP)
000404 010046 MOV R0,-(SP)
000406 004767 000000G JSR PC,$CALLP
000412 062706 000014 ADD #14,SP
000416 012761 000000V 000034 7$: MOV #LLC.GRANT.CIRCUIT.OWNERSHIP,34(R1) ; 0676
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 17
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (5)
000424 000431 BR 10$ ; 0677
000426 020527 062760 8$: CMP R5,#62760 ; PROCESS,* 0669
000432 001046 BNE 11$
000434 016600 000016 MOV 16(SP),R0 ; NMX.PIX,* 0685
000440 001420 BEQ 9$
000442 012716 000016 MOV #16,(SP) ; 0687
000446 060616 ADD SP,(SP) ; NMX.PIX,*
000450 005046 CLR -(SP)
000452 010346 MOV R3,-(SP)
000454 012746 001000 MOV #1000,-(SP)
000460 012746 000004 MOV #4,-(SP)
000464 012746 000000G MOV #$NMCRE,-(SP)
000470 010046 MOV R0,-(SP)
000472 004767 000000G JSR PC,$CALLP
000476 062706 000014 ADD #14,SP
000502 012761 000000V 000034 9$: MOV #LLC.GRANT.LINE.OWNERSHIP,34(R1); 0688
000510 011261 000032 10$: MOV (R2),32(R1) ; 0689
000514 017646 000010 MOV @10(SP),-(SP) ; 0690
000520 116766 000000G 000001 MOVB .CRPIX,1(SP)
000526 012676 000010 MOV (SP)+,@10(SP)
000532 112761 000022 000012 MOVB #22,12(R1) ; 0691
000540 010104 MOV R1,R4 ; 0692
000542 004767 000000G JSR PC,$SCHED
000546 000403 BR 12$ ; 0669
000550 010104 11$: MOV R1,R4 ; 0702
000552 004767 000000V JSR PC,RETURN.NM.CCB
000556 062706 000010 12$: ADD #10,SP ; 0633
000562 000406 BR 14$ ; 0631
000564 010104 13$: MOV R1,R4 ; 0707
000566 004767 000000V JSR PC,RETURN.NM.CCB
000572 012700 000001 MOV #1,R0 ; 0706
000576 000413 BR 16$
000600 012746 000006 14$: MOV #6,-(SP) ; 0712
000604 060616 ADD SP,(SP) ; CCB,*
000606 004767 177042 JSR PC,GET.NM.CCB
000612 005726 TST (SP)+
000614 006000 ROR R0
000616 103002 BHIS 15$
000620 000167 177174 JMP 1$
000624 005000 15$: CLR R0 ; 0598
000626 062706 000014 16$: ADD #14,SP
000632 000207 RTS PC
; Routine Size: 206 words, Routine Base: $CODE$ + 0174
; Maximum stack depth per invocation: 23 words
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 18
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (6)
; 0716 routine INITIM (DB, MODF) : MCB_DB_MOD novalue =
; 0717
; 0718 !++
; 0719 ! FUNCTIONAL DESCRIPTION:
; 0720 !
; 0721 !
; 0722 ! FORMAL PARAMETERS:
; 0723 ! None
; 0724 !
; 0725 ! IMPLICIT INPUTS:
; 0726 ! None
; 0727 !
; 0728 ! IMPLICIT OUTPUTS:
; 0729 ! None
; 0730 !
; 0731 ! ROUTINE VALUE:
; 0732 ! COMPLETION CODES:
; 0733 ! None
; 0734 !
; 0735 ! SIDE EFFECTS:
; 0736 ! None
; 0737 !--
; 0738
; 0739 if .MODF eql FM_PIN
; 0740 then
; 0741 begin
; 0742
; 0743 map
; 0744 DB : ref block field (D_FIELDS);
; 0745
; 0746 local
; 0747 CCB : ref block field (C_FIELDS);
; 0748
; 0749 external
; 0750 $SYSIZ : block [3];
; 0751
; 0752 if .$SYSIZ [2, 0, 16, 1] eql -1 and .$SYSIZ [1, 8, 8, 1] eql -1
; 0753 then
; 0754 begin
; 0755
; 0756 linkage
; 0757 COPY_LINKAGE = jsr (register = 2, register = 0, register = 1) : nopreserve (0, 1, 2);
; 0758
; 0759 routine COPY (FROM_ADR, LNG, TO_ADR) : COPY_LINKAGE NOVALUE =
; 0760
; 0761 if ..FROM_ADR neq 0
; 0762 then
; 0763
; 0764 do ch$wchar_a (ch$rchar_a (FROM_ADR), TO_ADR)
; 0765 while (LNG = .LNG - 1) neq 0;
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 19
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (6)
.GLOBL $SYSIZ
.SBTTL COPY
000000 005712 COPY: TST (R2) ; FROM.ADR 0761
000002 001402 BEQ 2$
000004 112221 1$: MOVB (R2)+,(R1)+ ; FROM.ADR,TO.ADR 0764
000006 077002 SOB R0,1$ ; LNG,* 0765
000010 000207 2$: RTS PC ; 0759
; Routine Size: 5 words, Routine Base: $CODE$ + 1030
; Maximum stack depth per invocation: 0 words
; 0766
; 0767 MAP$ (.$SYSIZ [0, 0, 16, 0] - 1);
; 0768 COPY (%o'140000', 2, DB [D_ADR]);
; 0769 COPY (%o'140002', 6, DB [D_NAM]);
; 0770 COPY (%o'140010', 6, DB [D_HST]);
; 0771 COPY (%o'140016', 2, DB [D_HAD]);
; 0772 end;
; 0773
; 0774 if not GET_NM_CCB (CCB) then return SIGNAL_STOP (INI$_NO_CCB);
; 0775
; 0776 CCB [C_PIX] = .MCB$GW_PROCESS_HANDLE;
; 0777 CCB [C_FNC] = FC_CCP;
; 0778 CCB [C_MOD] = 0;
; 0779 CCB [C_BIAS] = 0;
; 0780 CCB [C_PRM5] = XPT_INITIALIZE;
; 0781 CCB [C_PRM4] = 0;
; 0782 $MCB_SCHEDULE_CCB (.CCB);
; 0783 end; !of routine INITIM
.GLOBL KISAR6
.SBTTL INITIM
000000 005746 INITIM: TST -(SP) ; 0716
000002 020327 000006 CMP R3,#6 ; MODF,* 0739
000006 001123 BNE 3$
000010 026727 000004G 177777 CMP $SYSIZ+4,#-1 ; 0752
000016 001055 BNE 1$
000020 126727 000003G 177777 CMPB $SYSIZ+3,#-1
000026 001051 BNE 1$
000030 016700 000000G MOV $SYSIZ,R0 ; 0767
000034 005300 DEC R0
000036 010067 000000G MOV R0,KISAR6
000042 010501 MOV R5,R1 ; DB,* 0768
000044 062701 000002 ADD #2,R1
000050 012702 140000 MOV #-40000,R2
000054 012700 000002 MOV #2,R0
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 20
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (6)
000060 004767 177702 JSR PC,COPY
000064 010501 MOV R5,R1 ; DB,* 0769
000066 062701 000004 ADD #4,R1
000072 012702 140002 MOV #-37776,R2
000076 012700 000006 MOV #6,R0
000102 004767 177660 JSR PC,COPY
000106 010501 MOV R5,R1 ; DB,* 0770
000110 062701 000012 ADD #12,R1
000114 012702 140010 MOV #-37770,R2
000120 012700 000006 MOV #6,R0
000124 004767 177636 JSR PC,COPY
000130 062705 000020 ADD #20,R5 ; *,DB 0771
000134 012702 140016 MOV #-37762,R2
000140 012700 000002 MOV #2,R0
000144 010501 MOV R5,R1
000146 004767 177614 JSR PC,COPY
000152 012746 000002 1$: MOV #2,-(SP) ; 0774
000156 060616 ADD SP,(SP) ; CCB,*
000160 004767 176622 JSR PC,GET.NM.CCB
000164 005726 TST (SP)+
000166 006000 ROR R0
000170 103410 BLO 2$
000172 012746 100014 MOV #-77764,-(SP)
000176 012746 000001 MOV #1,-(SP)
000202 004767 000000G JSR PC,$STOP
000206 022626 CMP (SP)+,(SP)+
000210 000422 BR 3$
000212 011604 2$: MOV (SP),R4 ; CCB,* 0776
000214 116764 000000G 000011 MOVB .CRPIX,11(R4)
000222 112764 000022 000012 MOVB #22,12(R4) ; 0777
000230 105064 000013 CLRB 13(R4) ; 0778
000234 005064 000016 CLR 16(R4) ; 0779
000240 012764 000000V 000034 MOV #XPT.INITIALIZE,34(R4) ; 0780
000246 005064 000032 CLR 32(R4) ; 0781
000252 004767 000000G JSR PC,$SCHED ; 0782
000256 005726 3$: TST (SP)+ ; 0716
000260 000207 RTS PC
; Routine Size: 89 words, Routine Base: $CODE$ + 1042
; Maximum stack depth per invocation: 4 words
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 21
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (7)
; 0784
; 0785 routine LLC_GRANT_CIRCUIT_OWNERSHIP (DB, CCB): LINKAGE_DB_CCB =
; 0786
; 0787 !++
; 0788 ! FUNCTIONAL DESCRIPTION:
; 0789 !
; 0790 ! Constructs a "Grant Circuit Ownership" CCB and sends it to the
; 0791 ! LLC for the circuit.
; 0792 !
; 0793 ! FORMAL PARAMETERS
; 0794 !
; 0795 ! DB Address of INI data base.
; 0796 !
; 0797 ! CCB Function CCB to be used:
; 0798 !
; 0799 ! CCB[C_LIN] LIX for the circuit.
; 0800 ! CCB[C_ADDR] Address of a block of DSR.
; 0801 ! CCB[C_PRM2] Provider (DLC) PIX for the circuit.
; 0802 ! CCB[C_PRM3] Characteristics word for circuit
; 0803 ! CCB[C_PRM4] Owner (LLC) PIX for the circuit.
; 0804 !
; 0805 ! IMPLICIT INPUTS
; 0806 !
; 0807 ! NONE.
; 0808 !
; 0809 ! ROUTINE VALUE:
; 0810 ! COMPLETION CODES:
; 0811 !
; 0812 ! NONE.
; 0813 !
; 0814 ! SIDE EFFECTS:
; 0815 !
; 0816 ! NONE.
; 0817 !
; 0818 !--
; 0819
; 0820 begin
; 0821
; 0822 map
; 0823 DB : ref block field (D_FIELDS),
; 0824 CCB : ref block field (C_FIELDS);
; 0825
; 0826
; 0827 CCB [$SUB_FIELD (C_PRM1, DLL$B_PROVIDER_LINE_INDEX)] = .CCB[C_LIX];
; 0828 CCB [$SUB_FIELD (C_PRM1, DLL$B_PROVIDER_PROCESS_INDEX)] = .CCB[C_PRM2];
; 0829 CCB [C_PRM2] = .CCB[C_ADDR];
; 0830 CCB [C_PRM3] = 0;
; 0831
; 0832 if ch$eql (3, uplit (%ascii 'DTE'), 3, ch$plus (.CCB [C_PRM2], 1))
; 0833 then
; 0834 CCB [$SUB_FIELD (C_PRM3, DLL$V_DTE_CIRCUIT)] = 1;
; 0835
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 22
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (7)
; 0836 CCB [C_PRM5] = LLC_SET_CIRCUIT_ON;
; 0837 CCB [C_LIX] = 0;
; 0838 CCB [C_PIX] = .CCB[C_PRM4];
; 0839 CCB [C_FNC] = FC_CTL;
; 0840 CCB [C_MOD] = FM_STR;
; 0841
; 0842 $MCB_SCHEDULE_CCB (.CCB);
; 0843 TRUE
; 0844
; 0845 end; !End of LLC_GRANT_CIRCUIT_OWNERSHIP
000024 .PSECT $PLIT$, RO , D
000024 104 124 105 P.AAB: .ASCII /DTE/
000027 000 .ASCII <00>
.SBTTL LLC.GRANT.CIRCUIT.OWNERSHIP
001324 .PSECT $CODE$, RO
000000 004167 000000G LLC.GRANT.CIRCUIT.OWNERSHIP:
JSR R1,$SAVE5 ; 0785
000004 012705 000010 MOV #10,R5 ; 0827
000010 060405 ADD R4,R5 ; CCB,*
000012 111564 000024 MOVB (R5),24(R4) ; *,*(CCB)
000016 012700 000026 MOV #26,R0 ; 0828
000022 060400 ADD R4,R0 ; CCB,*
000024 111064 000025 MOVB (R0),25(R4) ; *,*(CCB)
000030 016410 000020 MOV 20(R4),(R0) ; *(CCB),* 0829
000034 005064 000030 CLR 30(R4) ; *(CCB) 0830
000040 012746 000003 MOV #3,-(SP) ; 0832
000044 012746 000024' MOV #P.AAB,-(SP)
000050 012746 000003 MOV #3,-(SP)
000054 011046 MOV (R0),-(SP)
000056 005216 INC (SP)
000060 005046 CLR -(SP)
000062 004767 000000G JSR PC,BL$EQL
000066 062706 000012 ADD #12,SP
000072 006000 ROR R0
000074 103003 BCC 1$
000076 152764 000001 000030 BISB #1,30(R4) ; *,*(CCB) 0834
000104 012764 000000V 000034 1$: MOV #LLC.SET.CIRCUIT.ON,34(R4) ; *,*(CCB) 0836
000112 105015 CLRB (R5) ; 0837
000114 116465 000032 000001 MOVB 32(R4),1(R5) ; *(CCB),* 0838
000122 112764 000010 000012 MOVB #10,12(R4) ; *,*(CCB) 0839
000130 112764 000002 000013 MOVB #2,13(R4) ; *,*(CCB) 0840
000136 004767 000000G JSR PC,$SCHED ; 0842
000142 012700 000001 MOV #1,R0 ; 0785
000146 000207 RTS PC
; Routine Size: 52 words, Routine Base: $CODE$ + 1324
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 23
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (7)
; Maximum stack depth per invocation: 12 words
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 24
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (8)
; 0846 routine LLC_SET_CIRCUIT_ON (DB, CCB) : LINKAGE_DB_CCB =
; 0847
; 0848 !++
; 0849 ! FUNCTIONAL DESCRIPTION:
; 0850 !
; 0851 ! Constructs a "Set Circuit State ON" CCB and sends it to the circuit's
; 0852 ! owner.
; 0853 !
; 0854 ! FORMAL PARAMETERS:
; 0855 !
; 0856 ! DB Address of the INI data base.
; 0857 !
; 0858 ! CCB Function CCB:
; 0859 !
; 0860 ! CCB[C_LIN] L.O. byte of the EID for the circuit (the
; 0861 ! H.O. byte will be the owner PIX).
; 0862 ! CCB[C_ADDR] Pointer to some DSR.
; 0863 ! CCB[C_PRM1] Provider (DLC) PIX for the circuit.
; 0864 ! CCB[C_PRM4] Owner (LLC) PIX for the circuit.
; 0865 !
; 0866 ! IMPLICIT INPUTS:
; 0867 ! None
; 0868 !
; 0869 ! IMPLICIT OUTPUTS:
; 0870 ! None
; 0871 !
; 0872 ! ROUTINE VALUE:
; 0873 ! COMPLETION CODES:
; 0874 ! None
; 0875 !
; 0876 ! SIDE EFFECTS:
; 0877 ! None
; 0878 !--
; 0879
; 0880 begin
; 0881
; 0882 map
; 0883 DB : ref block field (D_FIELDS),
; 0884 CCB : ref block field (C_NM_FIELDS);
; 0885
; 0886 CCB [C_PIX] = .CCB [C_PRM4];
; 0887 CCB [C_PRM5] = INILIX;
; 0888 CCB [C_NM_FUNC] = NMX$FNC_SET;
; 0889 CCB [C_NM_ENTITY] = NMX$ENT_CKT;
; 0890 begin
; 0891
; 0892 literal
; 0893 PARAM_NUMBER = 0;
; 0894
; 0895 local
; 0896 PTR;
; 0897
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 25
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (8)
; 0898 PTR = .CCB [C_ADDR];
; 0899 ch$wchar_a (PARAM_NUMBER and %o'377', PTR);
; 0900 ch$wchar_a (PARAM_NUMBER^-8 and %o'377', PTR);
; 0901 ch$wchar_a (0, PTR);
; 0902 CCB [C_CNT] = PTR = ch$diff (.PTR, .CCB [C_ADDR]);
; 0903 end;
; 0904 CCB [C_FNC] = FC_CTL;
; 0905 CCB [C_MOD] = FM_NM;
; 0906 $MCB_SCHEDULE_CCB (.CCB);
; 0907 TRUE
; 0908 end; !of routine LLC_SET_CIRCUIT_ON
.SBTTL LLC.SET.CIRCUIT.ON
000000 010446 LLC.SET.CIRCUIT.ON:
MOV R4,-(SP) ; 0846
000002 116464 000032 000011 MOVB 32(R4),11(R4) ; *(CCB),*(CCB) 0886
000010 012764 000174' 000034 MOV #INILIX,34(R4) ; *,*(CCB) 0887
000016 042764 007774 000024 BIC #7774,24(R4) ; *,*(CCB) 0889
000024 052764 002002 000024 BIS #2002,24(R4) ; *,*(CCB)
000032 016400 000020 MOV 20(R4),R0 ; *(CCB),PTR 0898
000036 105020 CLRB (R0)+ ; PTR 0899
000040 105020 CLRB (R0)+ ; PTR 0900
000042 105020 CLRB (R0)+ ; PTR 0901
000044 166400 000020 SUB 20(R4),R0 ; *(CCB),PTR 0902
000050 010064 000022 MOV R0,22(R4) ; PTR,*(CCB)
000054 112764 000010 000012 MOVB #10,12(R4) ; *,*(CCB) 0904
000062 112764 000006 000013 MOVB #6,13(R4) ; *,*(CCB) 0905
000070 004767 000000G JSR PC,$SCHED ; 0906
000074 012700 000001 MOV #1,R0 ; 0846
000100 012604 MOV (SP)+,R4
000102 000207 RTS PC
; Routine Size: 34 words, Routine Base: $CODE$ + 1474
; Maximum stack depth per invocation: 2 words
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 26
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (9)
; 0909
; 0910 routine LLC_GRANT_LINE_OWNERSHIP (DB, CCB): LINKAGE_DB_CCB =
; 0911
; 0912 !++
; 0913 ! FUNCTIONAL DESCRIPTION:
; 0914 !
; 0915 ! Constructs a "Grant Line Ownership" CCB and sends it to the
; 0916 ! LLC for the line.
; 0917 !
; 0918 ! FORMAL PARAMETERS
; 0919 !
; 0920 ! DB Address of INI data base.
; 0921 !
; 0922 ! CCB Function CCB to be used:
; 0923 !
; 0924 ! CCB[C_LIN] LIX for the line.
; 0925 ! CCB[C_ADDR] Address of a block of DSR.
; 0926 ! CCB[C_PRM2] Provider (DLC) PIX for the line.
; 0927 ! CCB[C_PRM3] Characteristics word for line
; 0928 ! CCB[C_PRM4] Owner (LLC) PIX for the line.
; 0929 !
; 0930 ! IMPLICIT INPUTS
; 0931 !
; 0932 ! NONE.
; 0933 !
; 0934 ! ROUTINE VALUE:
; 0935 ! COMPLETION CODES:
; 0936 !
; 0937 ! NONE.
; 0938 !
; 0939 ! SIDE EFFECTS:
; 0940 !
; 0941 ! NONE.
; 0942 !
; 0943 !--
; 0944
; 0945 begin
; 0946
; 0947 map
; 0948 DB : ref block field (D_FIELDS),
; 0949 CCB : ref block field (C_FIELDS);
; 0950
; 0951
; 0952 CCB [$SUB_FIELD (C_PRM1, DLL$B_PROVIDER_LINE_INDEX)] = .CCB[C_LIX];
; 0953 CCB [$SUB_FIELD (C_PRM1, DLL$B_PROVIDER_PROCESS_INDEX)] = .CCB[C_PRM2];
; 0954 CCB [C_PRM2] = .CCB[C_ADDR];
; 0955 CCB [C_PRM3] = 0;
; 0956
; 0957 CCB [C_PRM5] = LLC_SET_LINE_ON;
; 0958 CCB [C_LIX] = 0;
; 0959 CCB [C_PIX] = .CCB[C_PRM4];
; 0960 CCB [C_FNC] = FC_CTL;
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 27
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (9)
; 0961 CCB [C_MOD] = FM_STR;
; 0962
; 0963 $MCB_SCHEDULE_CCB (.CCB);
; 0964 TRUE
; 0965
; 0966 end; !End of LLC_GRANT_LINE_OWNERSHIP
.SBTTL LLC.GRANT.LINE.OWNERSHIP
000000 010446 LLC.GRANT.LINE.OWNERSHIP:
MOV R4,-(SP) ; 0910
000002 012700 000010 MOV #10,R0 ; 0952
000006 060400 ADD R4,R0 ; CCB,*
000010 111064 000024 MOVB (R0),24(R4) ; *,*(CCB)
000014 116464 000026 000025 MOVB 26(R4),25(R4) ; *(CCB),*(CCB) 0953
000022 016464 000020 000026 MOV 20(R4),26(R4) ; *(CCB),*(CCB) 0954
000030 005064 000030 CLR 30(R4) ; *(CCB) 0955
000034 012764 000000V 000034 MOV #LLC.SET.LINE.ON,34(R4) ; *,*(CCB) 0957
000042 105010 CLRB (R0) ; 0958
000044 116460 000032 000001 MOVB 32(R4),1(R0) ; *(CCB),* 0959
000052 112764 000010 000012 MOVB #10,12(R4) ; *,*(CCB) 0960
000060 112764 000002 000013 MOVB #2,13(R4) ; *,*(CCB) 0961
000066 004767 000000G JSR PC,$SCHED ; 0963
000072 012700 000001 MOV #1,R0 ; 0910
000076 012604 MOV (SP)+,R4
000100 000207 RTS PC
; Routine Size: 33 words, Routine Base: $CODE$ + 1600
; Maximum stack depth per invocation: 2 words
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 28
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (10)
; 0967 routine LLC_SET_LINE_ON (DB, CCB) : LINKAGE_DB_CCB =
; 0968
; 0969 !++
; 0970 ! FUNCTIONAL DESCRIPTION:
; 0971 !
; 0972 ! Constructs a "Set Line State ON" CCB and sends it to the line's
; 0973 ! owner.
; 0974 !
; 0975 ! FORMAL PARAMETERS:
; 0976 !
; 0977 ! DB Address of the INI data base.
; 0978 !
; 0979 ! CCB Function CCB:
; 0980 !
; 0981 ! CCB[C_LIN] L.O. byte of the EID for the line (the
; 0982 ! H.O. byte will be the owner PIX).
; 0983 ! CCB[C_ADDR] Pointer to some DSR.
; 0984 ! CCB[C_PRM1] Provider (DLC) PIX for the line.
; 0985 ! CCB[C_PRM4] Owner (LLC) PIX for the line.
; 0986 !
; 0987 ! IMPLICIT INPUTS:
; 0988 ! None
; 0989 !
; 0990 ! IMPLICIT OUTPUTS:
; 0991 ! None
; 0992 !
; 0993 ! ROUTINE VALUE:
; 0994 ! COMPLETION CODES:
; 0995 ! None
; 0996 !
; 0997 ! SIDE EFFECTS:
; 0998 ! None
; 0999 !--
; 1000
; 1001 begin
; 1002
; 1003 map
; 1004 DB : ref block field (D_FIELDS),
; 1005 CCB : ref block field (C_NM_FIELDS);
; 1006
; 1007 CCB [C_PIX] = .CCB [C_PRM4];
; 1008 CCB [C_PRM5] = INILIX;
; 1009 CCB [C_NM_FUNC] = NMX$FNC_SET;
; 1010 CCB [C_NM_ENTITY] = NMX$ENT_LIN;
; 1011 begin
; 1012
; 1013 literal
; 1014 PARAM_NUMBER = 0;
; 1015
; 1016 local
; 1017 PTR;
; 1018
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 29
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (10)
; 1019 PTR = .CCB [C_ADDR];
; 1020 ch$wchar_a (PARAM_NUMBER and %o'377', PTR);
; 1021 ch$wchar_a (PARAM_NUMBER^-8 and %o'377', PTR);
; 1022 ch$wchar_a (0, PTR);
; 1023 CCB [C_CNT] = PTR = ch$diff (.PTR, .CCB [C_ADDR]);
; 1024 end;
; 1025 CCB [C_FNC] = FC_CTL;
; 1026 CCB [C_MOD] = FM_NM;
; 1027 $MCB_SCHEDULE_CCB (.CCB);
; 1028 TRUE
; 1029 end; !of routine LLC_SET_LINE_ON
.SBTTL LLC.SET.LINE.ON
000000 010446 LLC.SET.LINE.ON:
MOV R4,-(SP) ; 0967
000002 116464 000032 000011 MOVB 32(R4),11(R4) ; *(CCB),*(CCB) 1007
000010 012764 000174' 000034 MOV #INILIX,34(R4) ; *,*(CCB) 1008
000016 042764 007774 000024 BIC #7774,24(R4) ; *,*(CCB) 1010
000024 052764 001002 000024 BIS #1002,24(R4) ; *,*(CCB)
000032 016400 000020 MOV 20(R4),R0 ; *(CCB),PTR 1019
000036 105020 CLRB (R0)+ ; PTR 1020
000040 105020 CLRB (R0)+ ; PTR 1021
000042 105020 CLRB (R0)+ ; PTR 1022
000044 166400 000020 SUB 20(R4),R0 ; *(CCB),PTR 1023
000050 010064 000022 MOV R0,22(R4) ; PTR,*(CCB)
000054 112764 000010 000012 MOVB #10,12(R4) ; *,*(CCB) 1025
000062 112764 000006 000013 MOVB #6,13(R4) ; *,*(CCB) 1026
000070 004767 000000G JSR PC,$SCHED ; 1027
000074 012700 000001 MOV #1,R0 ; 0967
000100 012604 MOV (SP)+,R4
000102 000207 RTS PC
; Routine Size: 34 words, Routine Base: $CODE$ + 1702
; Maximum stack depth per invocation: 2 words
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 30
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (11)
; 1030 routine NSP_SET_ADDRESS (DB, CCB) : LINKAGE_DB_CCB =
; 1031
; 1032 !++
; 1033 ! FUNCTIONAL DESCRIPTION:
; 1034 !
; 1035 !
; 1036 ! FORMAL PARAMETERS:
; 1037 ! None
; 1038 !
; 1039 ! IMPLICIT INPUTS:
; 1040 ! None
; 1041 !
; 1042 ! IMPLICIT OUTPUTS:
; 1043 ! None
; 1044 !
; 1045 ! ROUTINE VALUE:
; 1046 ! COMPLETION CODES:
; 1047 ! None
; 1048 !
; 1049 ! SIDE EFFECTS:
; 1050 ! None
; 1051 !--
; 1052
; 1053 begin
; 1054
; 1055 map
; 1056 DB : ref block field (D_FIELDS),
; 1057 CCB : ref block field (C_NM_FIELDS);
; 1058
; 1059 if not $MCB_GET_PROCESS_HANDLE (%rad50_11 'NSP', CCB [C_PIX])
; 1060 then
; 1061 begin
; 1062 CCB [C_PRM5] = INILIX;
; 1063 return FALSE
; 1064 end;
; 1065
; 1066 CCB [C_PRM4] = SC_SET_HOST;
; 1067 CCB [C_PRM5] = CRASH_ON_NEGATIVE_STATUS;
; 1068 CCB [C_NM_FUNC] = NMX$FNC_SET;
; 1069 CCB [C_NM_ENTITY] = NMX$ENT_NOD;
; 1070 begin
; 1071
; 1072 literal
; 1073 LOCAL_PARAM_NUMBER = 502;
; 1074
; 1075 local
; 1076 PTR;
; 1077
; 1078 PTR = .CCB [C_ADDR];
; 1079 ch$wchar_a (LOCAL_PARAM_NUMBER and %o'377', PTR);
; 1080 ch$wchar_a (LOCAL_PARAM_NUMBER^-8 and %o'377', PTR);
; 1081 ch$wchar_a (.DB [$SUB_FIELD (D_ADR, 0, 0, 8, 0)], PTR);
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 31
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (11)
; 1082 ch$wchar_a (.DB [$SUB_FIELD (D_ADR, 0, 8, 8, 0)], PTR);
; 1083 ch$wchar_a (0, PTR);
; 1084 CCB [C_CNT] = PTR = ch$diff (.PTR, .CCB [C_ADDR]);
; 1085 end;
; 1086 begin
; 1087
; 1088 bind
; 1089 NMPAR = vector [.CCB [C_ADDR], 5] : vector [4];
; 1090
; 1091 local
; 1092 PTR;
; 1093
; 1094 CCB [C_PRM2] = NMPAR;
; 1095 NMPAR [0] = 0;
; 1096 NMPAR [1] = 0;
; 1097 PTR = ch$ptr (NMPAR [2],, 8);
; 1098 ch$wchar_a (.DB [$SUB_FIELD (D_ADR, 0, 0, 8, 0)], PTR);
; 1099 ch$wchar_a (.DB [$SUB_FIELD (D_ADR, 0, 8, 8, 0)], PTR);
; 1100 ch$wchar_a (0, PTR);
; 1101 end;
; 1102 CCB [C_FNC] = FC_CTL;
; 1103 CCB [C_MOD] = FM_NM;
; 1104 $MCB_SCHEDULE_CCB (.CCB);
; 1105 TRUE
; 1106 end; !of routine NSP_SET_ADDRESS
.SBTTL NSP.SET.ADDRESS
000000 004167 000000G NSP.SET.ADDRESS:
JSR R1,$SAVE4 ; 1030
000004 005746 TST -(SP)
000006 012746 000002 MOV #2,-(SP) ; 1059
000012 060616 ADD SP,(SP) ; $MCB$MY.INDEX,*
000014 012746 055210 MOV #55210,-(SP)
000020 012746 000002 MOV #2,-(SP)
000024 012746 000000G MOV #P.DTGT,-(SP)
000030 004767 000000G JSR PC,$CALLI
000034 062706 000010 ADD #10,SP
000040 010001 MOV R0,R1 ; *,$MCB$STATUS
000042 006000 ROR R0
000044 103002 BCC 1$
000046 111664 000011 MOVB (SP),11(R4) ; $MCB$MY.INDEX,*(CCB)
000052 032701 000001 1$: BIT #1,R1 ; *,$MCB$STATUS
000056 001005 BNE 2$
000060 012764 000174' 000034 MOV #INILIX,34(R4) ; *,*(CCB) 1062
000066 005000 CLR R0 ; 1061
000070 000462 BR 3$
000072 012764 000000V 000032 2$: MOV #SC.SET.HOST,32(R4) ; *,*(CCB) 1066
000100 012764 000000' 000034 MOV #CRASH.ON.NEGATIVE.STATUS,34(R4); *,*(CCB) 1067
000106 042764 007774 000024 BIC #7774,24(R4) ; *,*(CCB) 1069
000114 052764 000402 000024 BIS #402,24(R4) ; *,*(CCB)
000122 016400 000020 MOV 20(R4),R0 ; *(CCB),PTR 1078
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 32
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (11)
000126 112720 000366 MOVB #366,(R0)+ ; *,PTR 1079
000132 112720 000001 MOVB #1,(R0)+ ; *,PTR 1080
000136 116520 000002 MOVB 2(R5),(R0)+ ; *(DB),PTR 1081
000142 116520 000003 MOVB 3(R5),(R0)+ ; *(DB),PTR 1082
000146 105020 CLRB (R0)+ ; PTR 1083
000150 166400 000020 SUB 20(R4),R0 ; *(CCB),PTR 1084
000154 010064 000022 MOV R0,22(R4) ; PTR,*(CCB)
000160 016400 000020 MOV 20(R4),R0 ; *(CCB),* 1089
000164 062700 000012 ADD #12,R0
000170 010064 000026 MOV R0,26(R4) ; *,*(CCB) 1094
000174 005020 CLR (R0)+ ; 1095
000176 005020 CLR (R0)+ ; 1096
000200 116520 000002 MOVB 2(R5),(R0)+ ; *(DB),PTR 1098
000204 116520 000003 MOVB 3(R5),(R0)+ ; *(DB),PTR 1099
000210 105020 CLRB (R0)+ ; PTR 1100
000212 112764 000010 000012 MOVB #10,12(R4) ; *,*(CCB) 1102
000220 112764 000006 000013 MOVB #6,13(R4) ; *,*(CCB) 1103
000226 004767 000000G JSR PC,$SCHED ; 1104
000232 012700 000001 MOV #1,R0 ; 1030
000236 005726 3$: TST (SP)+
000240 000207 RTS PC
; Routine Size: 81 words, Routine Base: $CODE$ + 2006
; Maximum stack depth per invocation: 11 words
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 33
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (12)
; 1107 routine RETURN_NM_CCB (CCB) : LINKAGE_CCB novalue =
; 1108
; 1109 !++
; 1110 ! FUNCTIONAL DESCRIPTION:
; 1111 !
; 1112 !
; 1113 ! FORMAL PARAMETERS:
; 1114 ! None
; 1115 !
; 1116 ! IMPLICIT INPUTS:
; 1117 ! None
; 1118 !
; 1119 ! IMPLICIT OUTPUTS:
; 1120 ! None
; 1121 !
; 1122 ! ROUTINE VALUE:
; 1123 ! COMPLETION CODES:
; 1124 ! None
; 1125 !
; 1126 ! SIDE EFFECTS:
; 1127 ! None
; 1128 !--
; 1129
; 1130 begin
; 1131
; 1132 map
; 1133 CCB : ref block field (C_FIELDS);
; 1134
; 1135 $MCB_RETURN_DSR (DSR_LENGTH, .CCB [C_ADDR]);
; 1136 CCBRT$ (.CCB);
; 1137 end; !of routine RETURN_NM_CCB
.GLOBL $DSRRT
.SBTTL RETURN.NM.CCB
000000 004167 000000G RETURN.NM.CCB:
JSR R1,$SAVE4 ; 1107
000004 016400 000020 MOV 20(R4),R0 ; *(CCB),* 1135
000010 012701 000042 MOV #42,R1
000014 004767 000000G JSR PC,$DSRRT
000020 004767 000000G JSR PC,$CCBRT ; 1136
000024 000207 RTS PC ; 1107
; Routine Size: 11 words, Routine Base: $CODE$ + 2250
; Maximum stack depth per invocation: 6 words
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 34
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (13)
; 1138 routine SC_ADD_NODE (DB, CCB) : LINKAGE_DB_CCB =
; 1139
; 1140 !++
; 1141 ! FUNCTIONAL DESCRIPTION:
; 1142 !
; 1143 !
; 1144 ! FORMAL PARAMETERS:
; 1145 ! None
; 1146 !
; 1147 ! IMPLICIT INPUTS:
; 1148 ! None
; 1149 !
; 1150 ! IMPLICIT OUTPUTS:
; 1151 ! None
; 1152 !
; 1153 ! ROUTINE VALUE:
; 1154 ! COMPLETION CODES:
; 1155 ! None
; 1156 !
; 1157 ! SIDE EFFECTS:
; 1158 ! None
; 1159 !--
; 1160
; 1161 begin
; 1162
; 1163 local
; 1164 NODE_ADDR,
; 1165 NODE_PTR;
; 1166
; 1167 map
; 1168 DB : ref block field (D_FIELDS),
; 1169 CCB : ref block field (C_NM_FIELDS);
; 1170
; 1171 if not $MCB_GET_PROCESS_HANDLE (%rad50_11 'SC', CCB [C_PIX])
; 1172 then
; 1173 begin
; 1174 CCB [C_PRM5] = INILIX;
; 1175 return FALSE
; 1176 end;
; 1177
; 1178 selectone .CCB [C_PRM3] of
; 1179 set
; 1180
; 1181 [0]: begin
; 1182 CCB [C_PRM3] = .CCB [C_PRM3] + 1;
; 1183 CCB [C_PRM4] = SC_ADD_NODE;
; 1184 NODE_ADDR = .DB [D_ADR];
; 1185 NODE_PTR = byt$ptr (DB [D_NAM]);
; 1186 end;
; 1187 [1]: begin
; 1188 CCB [C_PRM4] = SC_SET_NODE_ON;
; 1189 NODE_PTR = byt$ptr (DB [D_HST]);
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 35
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (13)
; 1190 NODE_ADDR = .DB [D_HAD];
; 1191 end;
; 1192 tes;
; 1193 CCB [C_PRM5] = CRASH_ON_NEGATIVE_STATUS;
; 1194
; 1195 if .NODE_ADDR eql 0 then return FALSE;
; 1196
; 1197 if ch$rchar (.NODE_PTR) eql %c' ' then return FALSE;
; 1198
; 1199 CCB [C_NM_FUNC] = NMX$FNC_SET;
; 1200 CCB [C_NM_ENTITY] = NMX$ENT_NOD;
; 1201 begin
; 1202
; 1203 literal
; 1204 PARAM_NUMBER = 500;
; 1205
; 1206 local
; 1207 LEN,
; 1208 PTR;
; 1209
; 1210 PTR = .CCB [C_ADDR];
; 1211 ch$wchar_a (PARAM_NUMBER and %o'377', PTR);
; 1212 ch$wchar_a (PARAM_NUMBER^-8 and %o'377', PTR);
; 1213 LEN = ch$find_ch (6, .NODE_PTR, %c' ');
; 1214 if ch$fail (.LEN) then
; 1215 LEN = 6
; 1216 else LEN = ch$diff (.LEN, .NODE_PTR);
; 1217 ch$wchar_a (.LEN, PTR);
; 1218 PTR = ch$move (.LEN, .NODE_PTR, .PTR);
; 1219 CCB [C_CNT] = PTR = ch$diff (.PTR, .CCB [C_ADDR]);
; 1220 end;
; 1221 begin
; 1222
; 1223 bind
; 1224 NMPAR = vector [.CCB [C_ADDR], 5] : vector [4];
; 1225
; 1226 local
; 1227 PTR;
; 1228
; 1229 CCB [C_PRM2] = NMPAR;
; 1230 NMPAR [0] = 0;
; 1231 NMPAR [1] = 0;
; 1232 PTR = ch$ptr (NMPAR [2],, 8);
; 1233 ch$wchar_a (.NODE_ADDR<0, 8, 0>, PTR);
; 1234 ch$wchar_a (.NODE_ADDR<8, 8, 0>, PTR);
; 1235 ch$wchar_a (0, PTR);
; 1236 end;
; 1237 CCB [C_FNC] = FC_CTL;
; 1238 CCB [C_MOD] = FM_NM;
; 1239 $MCB_SCHEDULE_CCB (.CCB);
; 1240 TRUE
; 1241 end; !of routine SC_ADD_NODE
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 36
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (13)
.SBTTL SC.ADD.NODE
000000 004167 000000G SC.ADD.NODE:
JSR R1,$SAVE5 ; 1138
000004 005746 TST -(SP)
000006 012746 000002 MOV #2,-(SP) ; 1171
000012 060616 ADD SP,(SP) ; $MCB$MY.INDEX,*
000014 012746 073470 MOV #73470,-(SP)
000020 012746 000002 MOV #2,-(SP)
000024 012746 000000G MOV #P.DTGT,-(SP)
000030 004767 000000G JSR PC,$CALLI
000034 062706 000010 ADD #10,SP
000040 010001 MOV R0,R1 ; *,$MCB$STATUS
000042 006000 ROR R0
000044 103002 BCC 1$
000046 111664 000011 MOVB (SP),11(R4) ; $MCB$MY.INDEX,*(CCB)
000052 032701 000001 1$: BIT #1,R1 ; *,$MCB$STATUS
000056 001004 BNE 2$
000060 012764 000174' 000034 MOV #INILIX,34(R4) ; *,*(CCB) 1174
000066 000441 BR 5$ ; 1173
000070 016400 000030 2$: MOV 30(R4),R0 ; *(CCB),* 1178
000074 001013 BNE 3$
000076 005264 000030 INC 30(R4) ; *(CCB) 1182
000102 012764 002276' 000032 MOV #SC.ADD.NODE,32(R4) ; *,*(CCB) 1183
000110 016502 000002 MOV 2(R5),R2 ; *(DB),NODE.ADDR 1184
000114 010501 MOV R5,R1 ; DB,NODE.PTR 1185
000116 062701 000004 ADD #4,R1 ; *,NODE.PTR
000122 000413 BR 4$ ; 1178
000124 020027 000001 3$: CMP R0,#1
000130 001010 BNE 4$
000132 012764 000000V 000032 MOV #SC.SET.NODE.ON,32(R4) ; *,*(CCB) 1188
000140 010501 MOV R5,R1 ; DB,NODE.PTR 1189
000142 062701 000012 ADD #12,R1 ; *,NODE.PTR
000146 016502 000020 MOV 20(R5),R2 ; *(DB),NODE.ADDR 1190
000152 012764 000000' 000034 4$: MOV #CRASH.ON.NEGATIVE.STATUS,34(R4); *,*(CCB) 1193
000160 005702 TST R2 ; NODE.ADDR 1195
000162 001403 BEQ 5$
000164 121127 000040 CMPB (R1),#40 ; NODE.PTR,* 1197
000170 001002 BNE 6$
000172 005000 5$: CLR R0
000174 000475 BR 9$
000176 042764 007774 000024 6$: BIC #7774,24(R4) ; *,*(CCB) 1200
000204 052764 000402 000024 BIS #402,24(R4) ; *,*(CCB)
000212 016405 000020 MOV 20(R4),R5 ; *(CCB),PTR 1210
000216 112725 000364 MOVB #364,(R5)+ ; *,PTR 1211
000222 112725 000001 MOVB #1,(R5)+ ; *,PTR 1212
000226 012746 000006 MOV #6,-(SP) ; 1213
000232 010146 MOV R1,-(SP) ; NODE.PTR,*
000234 012746 000040 MOV #40,-(SP)
000240 004767 000000G JSR PC,BL$FCH
000244 005700 TST R0 ; LEN 1214
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 37
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (13)
000246 001003 BNE 7$
000250 012700 000006 MOV #6,R0 ; *,LEN 1215
000254 000401 BR 8$ ; 1214
000256 160100 7$: SUB R1,R0 ; NODE.PTR,LEN 1216
000260 110025 8$: MOVB R0,(R5)+ ; LEN,PTR 1217
000262 010016 MOV R0,(SP) ; LEN,* 1218
000264 010146 MOV R1,-(SP) ; NODE.PTR,*
000266 010546 MOV R5,-(SP) ; PTR,*
000270 004767 000000G JSR PC,BL$MOV
000274 010005 MOV R0,R5 ; *,PTR
000276 166405 000020 SUB 20(R4),R5 ; *(CCB),PTR 1219
000302 010564 000022 MOV R5,22(R4) ; PTR,*(CCB)
000306 016400 000020 MOV 20(R4),R0 ; *(CCB),* 1224
000312 062700 000012 ADD #12,R0
000316 010064 000026 MOV R0,26(R4) ; *,*(CCB) 1229
000322 005020 CLR (R0)+ ; 1230
000324 005020 CLR (R0)+ ; 1231
000326 110220 MOVB R2,(R0)+ ; NODE.ADDR,PTR 1233
000330 010201 MOV R2,R1 ; NODE.ADDR,* 1234
000332 000301 SWAB R1
000334 110120 MOVB R1,(R0)+ ; *,PTR
000336 105020 CLRB (R0)+ ; PTR 1235
000340 112764 000010 000012 MOVB #10,12(R4) ; *,*(CCB) 1237
000346 112764 000006 000013 MOVB #6,13(R4) ; *,*(CCB) 1238
000354 004767 000000G JSR PC,$SCHED ; 1239
000360 062706 000012 ADD #12,SP ; 1161
000364 012700 000001 MOV #1,R0 ; 1138
000370 005726 9$: TST (SP)+
000372 000207 RTS PC
; Routine Size: 126 words, Routine Base: $CODE$ + 2276
; Maximum stack depth per invocation: 13 words
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 38
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (14)
; 1242 routine SC_SET_HOST (DB, CCB) : LINKAGE_DB_CCB =
; 1243
; 1244 !++
; 1245 ! FUNCTIONAL DESCRIPTION:
; 1246 !
; 1247 !
; 1248 ! FORMAL PARAMETERS:
; 1249 ! None
; 1250 !
; 1251 ! IMPLICIT INPUTS:
; 1252 ! None
; 1253 !
; 1254 ! IMPLICIT OUTPUTS:
; 1255 ! None
; 1256 !
; 1257 ! ROUTINE VALUE:
; 1258 ! COMPLETION CODES:
; 1259 ! None
; 1260 !
; 1261 ! SIDE EFFECTS:
; 1262 ! None
; 1263 !--
; 1264
; 1265 begin
; 1266
; 1267 map
; 1268 DB : ref block field (D_FIELDS),
; 1269 CCB : ref block field (C_NM_FIELDS);
; 1270
; 1271 if not $MCB_GET_PROCESS_HANDLE (%rad50_11 'SC', CCB[C_PIX])
; 1272 then
; 1273 begin
; 1274 CCB [C_PRM5] = INILIX;
; 1275 return FALSE
; 1276 end;
; 1277
; 1278 CCB [C_PRM3] = 0;
; 1279 CCB [C_PRM4] = SC_ADD_NODE;
; 1280 CCB [C_PRM5] = CRASH_ON_NEGATIVE_STATUS;
; 1281
; 1282 if .DB [D_HAD] eql 0 then return FALSE;
; 1283
; 1284 CCB [C_NM_FUNC] = NMX$FNC_SET;
; 1285 CCB [C_NM_ENTITY] = NMX$ENT_NOD;
; 1286 begin
; 1287
; 1288 literal
; 1289 HOST_PARAM_NUMBER = 141;
; 1290
; 1291 local
; 1292 PTR;
; 1293
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 39
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (14)
; 1294 PTR = .CCB [C_ADDR];
; 1295 ch$wchar_a (HOST_PARAM_NUMBER and %o'377', PTR);
; 1296 ch$wchar_a (HOST_PARAM_NUMBER^-8 and %o'377', PTR);
; 1297 ch$wchar_a (.DB [$SUB_FIELD (D_HAD, 0, 0, 8, 0)], PTR);
; 1298 ch$wchar_a (.DB [$SUB_FIELD (D_HAD, 0, 8, 8, 0)], PTR);
; 1299 ch$wchar_a (0, PTR);
; 1300 CCB [C_CNT] = PTR = ch$diff (.PTR, .CCB [C_ADDR]);
; 1301 end;
; 1302 begin
; 1303
; 1304 bind
; 1305 NMPAR = vector [.CCB [C_ADDR], 5] : vector [4];
; 1306
; 1307 local
; 1308 PTR;
; 1309
; 1310 CCB [C_PRM2] = NMPAR;
; 1311 NMPAR [0] = 0;
; 1312 NMPAR [1] = 0;
; 1313 PTR = ch$ptr (NMPAR [2],, 8);
; 1314 ch$wchar_a (.DB [$SUB_FIELD (D_HAD, 0, 0, 8, 0)], PTR);
; 1315 ch$wchar_a (.DB [$SUB_FIELD (D_HAD, 0, 8, 8, 0)], PTR);
; 1316 ch$wchar_a (0, PTR);
; 1317 end;
; 1318 CCB [C_FNC] = FC_CTL;
; 1319 CCB [C_MOD] = FM_NM;
; 1320 $MCB_SCHEDULE_CCB (.CCB);
; 1321 TRUE
; 1322 end; !of routine SC_SET_HOST
.SBTTL SC.SET.HOST
000000 004167 000000G SC.SET.HOST:
JSR R1,$SAVE4 ; 1242
000004 005746 TST -(SP)
000006 012746 000002 MOV #2,-(SP) ; 1271
000012 060616 ADD SP,(SP) ; $MCB$MY.INDEX,*
000014 012746 073470 MOV #73470,-(SP)
000020 012746 000002 MOV #2,-(SP)
000024 012746 000000G MOV #P.DTGT,-(SP)
000030 004767 000000G JSR PC,$CALLI
000034 062706 000010 ADD #10,SP
000040 010001 MOV R0,R1 ; *,$MCB$STATUS
000042 006000 ROR R0
000044 103002 BCC 1$
000046 111664 000011 MOVB (SP),11(R4) ; $MCB$MY.INDEX,*(CCB)
000052 032701 000001 1$: BIT #1,R1 ; *,$MCB$STATUS
000056 001004 BNE 2$
000060 012764 000174' 000034 MOV #INILIX,34(R4) ; *,*(CCB) 1274
000066 000415 BR 3$ ; 1273
000070 005064 000030 2$: CLR 30(R4) ; *(CCB) 1278
000074 012764 002276' 000032 MOV #SC.ADD.NODE,32(R4) ; *,*(CCB) 1279
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 40
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (14)
000102 012764 000000' 000034 MOV #CRASH.ON.NEGATIVE.STATUS,34(R4); *,*(CCB) 1280
000110 012701 000020 MOV #20,R1 ; 1282
000114 060501 ADD R5,R1 ; DB,*
000116 005711 TST (R1)
000120 001002 BNE 4$
000122 005000 3$: CLR R0
000124 000451 BR 5$
000126 042764 007774 000024 4$: BIC #7774,24(R4) ; *,*(CCB) 1285
000134 052764 000402 000024 BIS #402,24(R4) ; *,*(CCB)
000142 016400 000020 MOV 20(R4),R0 ; *(CCB),PTR 1294
000146 112720 000215 MOVB #215,(R0)+ ; *,PTR 1295
000152 105020 CLRB (R0)+ ; PTR 1296
000154 111120 MOVB (R1),(R0)+ ; *,PTR 1297
000156 116120 000001 MOVB 1(R1),(R0)+ ; *,PTR 1298
000162 105020 CLRB (R0)+ ; PTR 1299
000164 166400 000020 SUB 20(R4),R0 ; *(CCB),PTR 1300
000170 010064 000022 MOV R0,22(R4) ; PTR,*(CCB)
000174 016400 000020 MOV 20(R4),R0 ; *(CCB),* 1305
000200 062700 000012 ADD #12,R0
000204 010064 000026 MOV R0,26(R4) ; *,*(CCB) 1310
000210 005020 CLR (R0)+ ; 1311
000212 005020 CLR (R0)+ ; 1312
000214 111120 MOVB (R1),(R0)+ ; *,PTR 1314
000216 116120 000001 MOVB 1(R1),(R0)+ ; *,PTR 1315
000222 105020 CLRB (R0)+ ; PTR 1316
000224 112764 000010 000012 MOVB #10,12(R4) ; *,*(CCB) 1318
000232 112764 000006 000013 MOVB #6,13(R4) ; *,*(CCB) 1319
000240 004767 000000G JSR PC,$SCHED ; 1320
000244 012700 000001 MOV #1,R0 ; 1242
000250 005726 5$: TST (SP)+
000252 000207 RTS PC
; Routine Size: 86 words, Routine Base: $CODE$ + 2672
; Maximum stack depth per invocation: 11 words
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 41
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (15)
; 1323 routine SC_SET_NODE_ON (DB, CCB) : LINKAGE_DB_CCB =
; 1324
; 1325 !++
; 1326 ! FUNCTIONAL DESCRIPTION:
; 1327 !
; 1328 !
; 1329 ! FORMAL PARAMETERS:
; 1330 ! None
; 1331 !
; 1332 ! IMPLICIT INPUTS:
; 1333 ! None
; 1334 !
; 1335 ! IMPLICIT OUTPUTS:
; 1336 ! None
; 1337 !
; 1338 ! ROUTINE VALUE:
; 1339 ! COMPLETION CODES:
; 1340 ! None
; 1341 !
; 1342 ! SIDE EFFECTS:
; 1343 ! None
; 1344 !--
; 1345
; 1346 begin
; 1347
; 1348 map
; 1349 DB : ref block field (D_FIELDS),
; 1350 CCB : ref block field (C_NM_FIELDS);
; 1351
; 1352 if not $MCB_GET_PROCESS_HANDLE (%rad50_11 'SC', CCB [C_PIX])
; 1353 then
; 1354 begin
; 1355 CCB [C_PRM5] = INILIX;
; 1356 return FALSE
; 1357 end;
; 1358
; 1359 CCB [C_PRM4] = INILIX;
; 1360 CCB [C_PRM5] = CRASH_ON_NEGATIVE_STATUS;
; 1361 CCB [C_NM_FUNC] = NMX$FNC_SET;
; 1362 CCB [C_NM_ENTITY] = NMX$ENT_NOD;
; 1363 begin
; 1364
; 1365 literal
; 1366 PARAM_NUMBER = 0;
; 1367
; 1368 local
; 1369 PTR;
; 1370
; 1371 PTR = .CCB [C_ADDR];
; 1372 ch$wchar_a (PARAM_NUMBER and %o'377', PTR);
; 1373 ch$wchar_a (PARAM_NUMBER^-8 and %o'377', PTR);
; 1374 ch$wchar_a (0, PTR);
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 42
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (15)
; 1375 CCB [C_CNT] = PTR = ch$diff (.PTR, .CCB [C_ADDR]);
; 1376 end;
; 1377 begin
; 1378
; 1379 bind
; 1380 NMPAR = vector [.CCB [C_ADDR], 5] : vector [4];
; 1381
; 1382 local
; 1383 PTR;
; 1384
; 1385 CCB [C_PRM2] = NMPAR;
; 1386 NMPAR [0] = 0;
; 1387 NMPAR [1] = 0;
; 1388 PTR = ch$ptr (NMPAR [2],, 8);
; 1389 ch$wchar_a (.DB [$SUB_FIELD (D_ADR, 0, 0, 8, 0)], PTR);
; 1390 ch$wchar_a (.DB [$SUB_FIELD (D_ADR, 0, 8, 8, 0)], PTR);
; 1391 ch$wchar_a (0, PTR);
; 1392 end;
; 1393 CCB [C_FNC] = FC_CTL;
; 1394 CCB [C_MOD] = FM_NM;
; 1395 $MCB_SCHEDULE_CCB (.CCB);
; 1396 TRUE
; 1397 end; !of routine SC_SET_NODE_ON
.SBTTL SC.SET.NODE.ON
000000 004167 000000G SC.SET.NODE.ON:
JSR R1,$SAVE4 ; 1323
000004 005746 TST -(SP)
000006 012746 000002 MOV #2,-(SP) ; 1352
000012 060616 ADD SP,(SP) ; $MCB$MY.INDEX,*
000014 012746 073470 MOV #73470,-(SP)
000020 012746 000002 MOV #2,-(SP)
000024 012746 000000G MOV #P.DTGT,-(SP)
000030 004767 000000G JSR PC,$CALLI
000034 062706 000010 ADD #10,SP
000040 010001 MOV R0,R1 ; *,$MCB$STATUS
000042 006000 ROR R0
000044 103002 BCC 1$
000046 111664 000011 MOVB (SP),11(R4) ; $MCB$MY.INDEX,*(CCB)
000052 032701 000001 1$: BIT #1,R1 ; *,$MCB$STATUS
000056 001005 BNE 2$
000060 012764 000174' 000034 MOV #INILIX,34(R4) ; *,*(CCB) 1355
000066 005000 CLR R0 ; 1354
000070 000454 BR 3$
000072 012764 000174' 000032 2$: MOV #INILIX,32(R4) ; *,*(CCB) 1359
000100 012764 000000' 000034 MOV #CRASH.ON.NEGATIVE.STATUS,34(R4); *,*(CCB) 1360
000106 042764 007774 000024 BIC #7774,24(R4) ; *,*(CCB) 1362
000114 052764 000402 000024 BIS #402,24(R4) ; *,*(CCB)
000122 016400 000020 MOV 20(R4),R0 ; *(CCB),PTR 1371
000126 105020 CLRB (R0)+ ; PTR 1372
000130 105020 CLRB (R0)+ ; PTR 1373
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 43
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (15)
000132 105020 CLRB (R0)+ ; PTR 1374
000134 166400 000020 SUB 20(R4),R0 ; *(CCB),PTR 1375
000140 010064 000022 MOV R0,22(R4) ; PTR,*(CCB)
000144 016400 000020 MOV 20(R4),R0 ; *(CCB),* 1380
000150 062700 000012 ADD #12,R0
000154 010064 000026 MOV R0,26(R4) ; *,*(CCB) 1385
000160 005020 CLR (R0)+ ; 1386
000162 005020 CLR (R0)+ ; 1387
000164 116520 000002 MOVB 2(R5),(R0)+ ; *(DB),PTR 1389
000170 116520 000003 MOVB 3(R5),(R0)+ ; *(DB),PTR 1390
000174 105020 CLRB (R0)+ ; PTR 1391
000176 112764 000010 000012 MOVB #10,12(R4) ; *,*(CCB) 1393
000204 112764 000006 000013 MOVB #6,13(R4) ; *,*(CCB) 1394
000212 004767 000000G JSR PC,$SCHED ; 1395
000216 012700 000001 MOV #1,R0 ; 1323
000222 005726 3$: TST (SP)+
000224 000207 RTS PC
; Routine Size: 75 words, Routine Base: $CODE$ + 3146
; Maximum stack depth per invocation: 11 words
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 44
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (16)
; 1398 routine XPT_INITIALIZE (DB, CCB) : LINKAGE_DB_CCB =
; 1399
; 1400 !++
; 1401 ! FUNCTIONAL DESCRIPTION:
; 1402 !
; 1403 !
; 1404 ! FORMAL PARAMETERS:
; 1405 ! None
; 1406 !
; 1407 ! IMPLICIT INPUTS:
; 1408 ! None
; 1409 !
; 1410 ! IMPLICIT OUTPUTS:
; 1411 ! None
; 1412 !
; 1413 ! ROUTINE VALUE:
; 1414 ! COMPLETION CODES:
; 1415 ! None
; 1416 !
; 1417 ! SIDE EFFECTS:
; 1418 ! None
; 1419 !--
; 1420
; 1421 begin
; 1422
; 1423 map
; 1424 DB : ref block field (D_FIELDS),
; 1425 CCB : ref block field (C_FIELDS);
; 1426
; 1427 if not $MCB_GET_PROCESS_HANDLE (%rad50_11 'XPT', CCB [C_PIX])
; 1428 then
; 1429 begin
; 1430 CCB [C_PRM5] = INILIX;
; 1431 return FALSE
; 1432 end;
; 1433
; 1434 CCB [C_PRM3] = 0;
; 1435 CCB [C_PRM4] = NSP_SET_ADDRESS;
; 1436 CCB [C_PRM5] = CRASH_ON_NEGATIVE_STATUS;
; 1437 CCB [C_PRM1] = .DB [D_ADR];
; 1438 CCB [C_FNC] = FC_CTL;
; 1439 CCB [C_MOD] = 0;
; 1440 $MCB_SCHEDULE_CCB (.CCB);
; 1441 TRUE
; 1442 end; !of routine XPT_INITIALIZE
.SBTTL XPT.INITIALIZE
000000 004167 000000G XPT.INITIALIZE:
JSR R1,$SAVE4 ; 1398
000004 005746 TST -(SP)
000006 012746 000002 MOV #2,-(SP) ; 1427
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 45
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (16)
000012 060616 ADD SP,(SP) ; $MCB$MY.INDEX,*
000014 012746 114224 MOV #-63554,-(SP)
000020 012746 000002 MOV #2,-(SP)
000024 012746 000000G MOV #P.DTGT,-(SP)
000030 004767 000000G JSR PC,$CALLI
000034 062706 000010 ADD #10,SP
000040 010001 MOV R0,R1 ; *,$MCB$STATUS
000042 006000 ROR R0
000044 103002 BCC 1$
000046 111664 000011 MOVB (SP),11(R4) ; $MCB$MY.INDEX,*(CCB)
000052 032701 000001 1$: BIT #1,R1 ; *,$MCB$STATUS
000056 001005 BNE 2$
000060 012764 000174' 000034 MOV #INILIX,34(R4) ; *,*(CCB) 1430
000066 005000 CLR R0 ; 1429
000070 000424 BR 3$
000072 005064 000030 2$: CLR 30(R4) ; *(CCB) 1434
000076 012764 002006' 000032 MOV #NSP.SET.ADDRESS,32(R4) ; *,*(CCB) 1435
000104 012764 000000' 000034 MOV #CRASH.ON.NEGATIVE.STATUS,34(R4); *,*(CCB) 1436
000112 016564 000002 000024 MOV 2(R5),24(R4) ; *(DB),*(CCB) 1437
000120 112764 000010 000012 MOVB #10,12(R4) ; *,*(CCB) 1438
000126 105064 000013 CLRB 13(R4) ; *(CCB) 1439
000132 004767 000000G JSR PC,$SCHED ; 1440
000136 012700 000001 MOV #1,R0 ; 1398
000142 005726 3$: TST (SP)+
000144 000207 RTS PC
; Routine Size: 51 words, Routine Base: $CODE$ + 3374
; Maximum stack depth per invocation: 11 words
; 1443 end
; 1444 eludom
; OTS external references
.GLOBL $SAVE5, $SAVE4, $STOP, BL$FCH
.GLOBL BL$EQL, BL$MOV
; PSECT SUMMARY
;
; Psect Name Words Attributes
; $PLIT$ 12 RO , D , LCL, REL, CON
; ...... 16 RW , D , LCL, REL, CON
; $CODE$ 945 RO , I , LCL, REL, CON
; LIBRARY STATISTICS
;
INI 28-May-1985 14:29:54 TOPS-20 Bliss-16 2A(530) Page 46
X03210 30-Dec-1982 01:54:35 DNET61:<MCB.CEX>INI.B16.1 (16)
; -------- Symbols -------- Blocks
; File Total Loaded Percent Read
;
; DNET61:<MCB.MCB>MCBLIB.L16.1 372 76 20 0
; DNET61:<MCB.MCB>XPORTX.L16.1 599 30 5 0
; DNET61:<MCB.MCB>NMXLIB.L16.1 200 15 7 0
; Size: 945 code + 28 data words
; Run Time: 00:22.9
; Elapsed Time: 01:36.8
; Memory Used: 48 pages
; Compilation Complete