Trailing-Edge
-
PDP-10 Archives
-
BB-R595B-SM_11-9-85
-
mcb/nsp/ns2.lst
There is 1 other file named ns2.lst in the archive. Click here to see a list.
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 1
30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (1)
; 0001 module NS2 (
; 0002 ident = 'X01150'
; 0003 ) =
; 0004 begin
; 0005
; 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: Network Services Layer
; 0030 !
; 0031 ! ABSTRACT: This module allows the transmission and reception of
; 0032 ! NSP Connect/Disconnect messages.
; 0033 !
; 0034 !
; 0035 ! ENVIRONMENT: MCB
; 0036 !
; 0037 ! AUTHOR: Ron Platukis CREATION DATE: 6-july-80
; 0038 !
; 0039 ! MODIFIED BY:
; 0040 !
; 0041 ! Alan Peckham, Ron Platukis 22-Oct-80
; 0042 ! 01 - Move NDB bind in CCB_RETRN.
; 0043 ! Clear C_STS before sending CCB to XPT in XPT_XMIT.
; 0044 ! Set C_PRM4 to PDB address or -1 if Reserve Port in XPT_XMIT.
; 0045 ! Ron Platukis 23-oct-80
; 0046 ! 02 - Set PORTstate negative if Reserved Port.
; 0047 !
; 0048 ! 03 Ron Platukis 24-dec-80
; 0049 ! -Add Network Management Stuff.
; 0050 !
; 0051 ! 04 Ron Platukis 13-jan-81
; 0052 ! -Change linkages to BLISS, add access for NSP Data Base address.
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 2
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (1)
; 0053 !
; 0054 ! 05 Ron Platukis 20-jan-81
; 0055 ! -Add Network Management event logging code.
; 0056 !
; 0057 ! 06 Ron Platukis 16-feb-81
; 0058 ! -Add code to check BUFFsync_dsc in FLUSH_QUEUES routine.
; 0059 !
; 0060 ! 07 Ron Platukis 30-apr-81
; 0061 ! -character move function overwrites temporary space in
; 0062 ! routine SHOW_NODE_COUNTERS.
; 0063 !
; 0064 ! 08 Ron Platukis 1-may-81
; 0065 ! -Incorrect status code returned if successful completion
; 0066 ! of routine RETURN_NODE_LIST.
; 0067 !
; 0068 ! 09 Ron Platukis 12-june-81
; 0069 ! -Include 600 series counters in SHOW_NODE_COUNTERS routine
; 0070 ! if asked for local data.
; 0071 !
; 0072 ! 10 Ron Platukis 22-september-81
; 0073 ! -fix routine DI_RCV to send DC if in DI state and receive a DI.
; 0074 !
; 0075 ! 11 Ron Platukis 2-february-82
; 0076 ! -modify routine DC_RCV to set CONFIDENCE false if receive a No-Link.
; 0077 !
; 0078 ! 12 Ron Platukis 2-march-82
; 0079 ! -set entity type to "node" on event type 2
; 0080 !
; 0081 ! 13 Alan Peckham 3-may-82
; 0082 ! -Do not recognize node #0 in FIND_NDB.
; 0083 !
; 0084 ! 14 Alan Peckham 22-nov-82
; 0085 ! -Make EVENT_LOG use common event logging routines.
; 0086 ! -Support seconds-since-last-zeroed counter:
; 0087 ! Zero counter in NDB_GET.
; 0088 ! Show counter in EVENT_LOG and SHOW_NODE_COUNTERS.
; 0089 ! -Optimize SHOW_NODE_COUNTERS by removing loop.
; 0090 ! -Zero NSPmax when zeroing counters for NSPself.
; 0091 !
; 0092 ! 15 Alan Peckham 9-dec-82
; 0093 ! -NDB_GET was not recycling node data bases.
; 0094 ! The routine was re-coded for correctness and efficiency.
; 0095 !--
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 3
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (2)
; 0096 !
; 0097 ! INCLUDE FILES:
; 0098 !
; 0099 library
; 0100 'mcb:xportx';
; 0101 library
; 0102 'mcb:mcblib';
; 0103 library
; 0104 'mcb:nmxlib';
; 0105 require
; 0106 'nspbli:nsinfo';
; 0218 require
; 0219 'nspbli:nspdata';
; 0705
; 0706
; 0707
; 0708 !
; 0709 ! TABLE OF CONTENTS:
; 0710 !
; 0711 forward routine
; 0712 ACK_BLD: novalue,
; 0713 CA_BLD: novalue, !format a CA msg
; 0714 CA_RCV: CALL$ novalue, !process Connect Ack
; 0715 CI_BLD: CALL$ novalue, !format a CI msg
; 0716 CI_RECVD: novalue,
; 0717 CI_RCV: CALL$ novalue, !process Connect Initiate
; 0718 CC_BLD: CALL$ novalue, !format a CC msg
; 0719 CC_RCV: CALL$ novalue, !process Connect Confirm
; 0720 CCB_HDR_GET:,
; 0721 CCB_GET:,
; 0722 CCB_RETRN: novalue,
; 0723 CTL_RECVD: CALL$ novalue, !Free stalled Control messages
; 0724 C_STSE: novalue,
; 0725 DADD: novalue,
; 0726 DC_BLD: CALL$ novalue, !format a DC msg
; 0727 DC_RCV: CALL$ novalue, !process Disconnect Confirm
; 0728 DI_BLD: CALL$ novalue, !format a DI msg
; 0729 DI_RCV: CALL$ novalue, !process Disconnect Initiate
; 0730 DSC_RECVD: novalue,
; 0731 EVENT_LOG: CALL$ novalue, ! event logger
; 0732 FCCTL: CALL$ novalue, ! Control (i.e., NM)
; 0733 FIND_NDB: , ! Locate a Node Data base
; 0734 FLUSH_QUEUES: CALL$ novalue,
; 0735 NDB_GET: CALL$,
; 0736 NL_BLD: CALL$ novalue, !format a No-Link
; 0737 NR_BLD: CALL$ novalue, !format a No-Resource
; 0738 NSP_CONFIDENCE: CALL$ novalue, ! report CONFIDENCE false to SC
; 0739 RESV_PORT: CALL$ novalue, !Reserve Port Process
; 0740 RETURN_NODE_LIST: , !Network Management routines
; 0741 SET_NODE_PARMS: , ! ""
; 0742 SHOW_NODE_ITEMS: , ! ""
; 0743 SHOW_NODE_COUNTERS: , ! ""
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 4
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (2)
; 0744 ZERO_NODE_COUNTERS: , ! ""
; 0745 SHOW_ZERO_NODE_COUNTERS: , ! ""
; 0746 UPDATE_DELAY: novalue, ! Update round trip delay
; 0747 XPT_XMIT: novalue; !queue CCB to XPT
; 0748
; 0749 !
; 0750 ! MACROS:
; 0751 !
; 0752 macro
; M 0753 RAD50 (STR) =
; 0754 %if %bliss (bliss36) %then %rad50_10 STR %else %rad50_11 STR %fi %;
; 0755
; 0756 !
; 0757 ! EQUATED SYMBOLS:
; 0758 !
; 0759 literal ! Autoparsing stuff
; 0760 $16$ = 2^13, ! 16 bit wide counter
; 0761 $32$ = 3^13, ! 32 bit wide counter
; 0762 CNT = 1^15; ! Counter flag
; 0763
; 0764
; 0765 !
; 0766 ! OWN STORAGE:
; 0767 !
; 0768 $MCB_PROCESS( name = NS2)
; 0769 !
; 0770 ! EXTERNAL REFERENCES:
; 0771 !
; 0772 external
; 0773 %name('.crdat'): vector[2],
; 0774 $DSPCR;
; 0775
; 0776 bind DB = %name('.crdat')[1]: ref block field(NSP_fields);
; 0777
; 0778
; 0779
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 5
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (3)
; 0780 routine ACK_BLD ( CCB, PDB) : novalue = !
; 0781
; 0782 !++
; 0783 ! FUNCTIONAL DESCRIPTION:
; 0784 ! This routine formats an NSP Data Acknowledgement message.
; 0785 !
; 0786 ! FORMAL PARAMETERS:
; 0787 ! CCB = CCB address
; 0788 ! PDB = Port Data Base Address
; 0789 !
; 0790 ! IMPLICIT INPUTS:
; 0791 ! DB = NSP Data Base Address
; 0792 !
; 0793 ! IMPLICIT OUTPUTS:
; 0794 ! None
; 0795 !
; 0796 ! ROUTINE VALUE:
; 0797 ! COMPLETION CODES:
; 0798 ! None
; 0799 !
; 0800 ! SIDE EFFECTS:
; 0801 ! None
; 0802 !--
; 0803
; 0804 begin
; 0805 map CCB: ref block field(C_fields);
; 0806 map PDB: ref block field(PORT_fields);
; 0807
; 0808 local
; 0809 PTR;
; 0810
; 0811 PTR = .CCB[C_ADDR];
; 0812
; 0813 ch$wchar_a( FLG_DAT_ACK, PTR);
; 0814 ch$wchar_a( .PDB[L_rem_addr], PTR);
; 0815 ch$wchar_a( .PDB[H_rem_addr], PTR);
; 0816 ch$wchar_a( .PDB[PID], PTR);
; 0817 ch$wchar_a( .PDB[ADDran], PTR);
; 0818 PUT2BYTES( (.PDB[ACKdat_xmt] and %o'7777') + Q_ACK^12 + true^15, PTR);
; 0819
; 0820 CCB[C_CNT] = ch$diff(.PTR, .CCB[C_ADDR]);
; 0821 PDB[FLAGdat_ack] = false;
; 0822 XPT_XMIT( .CCB, .PDB)
; 0823 end;
.TITLE NS2
.IDENT /X01150/
000000 .PSECT ......, D
000000 055230 ; HEADER
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 6
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (3)
U.43: .RAD50 /NS2/
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 000000 .WORD 0
000034 000000 .WORD 0
000036 000000 .WORD 0
.GLOBL .DSPCR, MCB$V0, MCB$V1, .CRDAT
.GLOBL $DSPCR
073470 ; SC
U.1= 73470
055210 ; NSP
U.2= 55210
114224 ; XPT
U.3= 114224
114205 ; XPE
U.4= 114205
055227 ; NS1
U.5= 55227
055230 ; NS2
U.6= 55230
.SBTTL ACK.BLD
000000 .PSECT $CODE$, RO
000000 004167 000000G ; ACK.BLD
U.7: JSR R1,$SAVE4 ; 0780
000004 016602 000016 MOV 16(SP),R2 ; CCB,* 0811
000010 016203 000020 MOV 20(R2),R3 ; *,PTR
000014 112723 000004 MOVB #4,(R3)+ ; *,PTR 0813
000020 016601 000014 MOV 14(SP),R1 ; PDB,* 0814
000024 116123 000006 MOVB 6(R1),(R3)+ ; *,PTR
000030 116123 000007 MOVB 7(R1),(R3)+ ; *,PTR 0815
000034 116123 000004 MOVB 4(R1),(R3)+ ; *,PTR 0816
000040 116123 000005 MOVB 5(R1),(R3)+ ; *,PTR 0817
000044 016100 000030 MOV 30(R1),R0 ; *,TEMP 0818
000050 042700 170000 BIC #170000,R0 ; *,TEMP
000054 162700 100000 SUB #100000,R0 ; *,TEMP
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 7
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (3)
000060 110023 MOVB R0,(R3)+ ; TEMP,PTR
000062 010004 MOV R0,R4 ; TEMP,*
000064 000304 SWAB R4
000066 110423 MOVB R4,(R3)+ ; *,PTR
000070 010362 000022 MOV R3,22(R2) ; PTR,* 0820
000074 166262 000020 000022 SUB 20(R2),22(R2)
000102 042761 020000 000040 BIC #20000,40(R1) ; 0821
000110 010246 MOV R2,-(SP) ; 0822
000112 010146 MOV R1,-(SP)
000114 004767 000000V JSR PC,U.42
000120 022626 CMP (SP)+,(SP)+ ; 0804
000122 000207 RTS PC ; 0780
; Routine Size: 42 words, Routine Base: $CODE$ + 0000
; Maximum stack depth per invocation: 8 words
; 0824
; 0825
; 0826
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 8
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (4)
; 0827 routine CA_BLD ( CCB, PDB) : novalue = !
; 0828
; 0829 !++
; 0830 ! FUNCTIONAL DESCRIPTION:
; 0831 ! This routine formats an NSP Connect Acknowledgement message.
; 0832 !
; 0833 ! FORMAL PARAMETERS:
; 0834 ! CCB = CCB address
; 0835 ! PDB = Port Data Base Address
; 0836 !
; 0837 ! IMPLICIT INPUTS:
; 0838 ! DB = NSP Data Base Address
; 0839 !
; 0840 ! IMPLICIT OUTPUTS:
; 0841 ! None
; 0842 !
; 0843 ! ROUTINE VALUE:
; 0844 ! COMPLETION CODES:
; 0845 ! None
; 0846 !
; 0847 ! SIDE EFFECTS:
; 0848 ! None
; 0849 !--
; 0850
; 0851 begin
; 0852 map CCB: ref block field(C_fields);
; 0853 map PDB: ref block field(PORT_fields);
; 0854
; 0855 local
; 0856 PTR;
; 0857
; 0858 PTR = .CCB[C_ADDR];
; 0859
; 0860 ch$wchar_a( FLG_CA, PTR);
; 0861 ch$wchar_a( .PDB[L_rem_addr], PTR);
; 0862 ch$wchar_a( .PDB[H_rem_addr], PTR);
; 0863
; 0864 CCB[C_CNT] = ch$diff(.PTR, .CCB[C_ADDR]);
; 0865 XPT_XMIT( .CCB, .PDB)
; 0866 end;
.SBTTL CA.BLD
000000 004167 000000G ; CA.BLD
U.8: JSR R1,$SAVE2 ; 0827
000004 016601 000012 MOV 12(SP),R1 ; CCB,* 0858
000010 016102 000020 MOV 20(R1),R2 ; *,PTR
000014 112722 000044 MOVB #44,(R2)+ ; *,PTR 0860
000020 016600 000010 MOV 10(SP),R0 ; PDB,* 0861
000024 116022 000006 MOVB 6(R0),(R2)+ ; *,PTR
000030 116022 000007 MOVB 7(R0),(R2)+ ; *,PTR 0862
000034 010261 000022 MOV R2,22(R1) ; PTR,* 0864
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 9
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (4)
000040 166161 000020 000022 SUB 20(R1),22(R1)
000046 010146 MOV R1,-(SP) ; 0865
000050 010046 MOV R0,-(SP) ; PDB,*
000052 004767 000000V JSR PC,U.42
000056 022626 CMP (SP)+,(SP)+ ; 0851
000060 000207 RTS PC ; 0827
; Routine Size: 25 words, Routine Base: $CODE$ + 0124
; Maximum stack depth per invocation: 6 words
; 0867
; 0868
; 0869
; 0870
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 10
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (5)
; 0871 global routine CA_RCV ( CCB, PDB) :CALL$ novalue = !
; 0872
; 0873 !++
; 0874 ! FUNCTIONAL DESCRIPTION:
; 0875 ! This routine processes a received Connect Acknowledgement message.
; 0876 !
; 0877 ! FORMAL PARAMETERS:
; 0878 ! CCB = CCB address
; 0879 ! PDB = Port Data Base Address
; 0880 !
; 0881 ! IMPLICIT INPUTS:
; 0882 ! DB = NSP Data Base Address
; 0883 !
; 0884 ! IMPLICIT OUTPUTS:
; 0885 ! None
; 0886 !
; 0887 ! ROUTINE VALUE:
; 0888 ! COMPLETION CODES:
; 0889 ! None
; 0890 !
; 0891 ! SIDE EFFECTS:
; 0892 ! None
; 0893 !--
; 0894
; 0895 begin
; 0896 map CCB: ref block field(C_fields);
; 0897 map PDB: ref block field(PORT_fields);
; 0898
; 0899 If .PDB[PORTstate] eql N$SCI
; 0900 Then
; 0901 begin
; 0902 PDB[PORTstate] = N$SCD;
; 0903 UPDATE_DELAY( .PDB)
; 0904 end;
; 0905 CCB[C_FNC] = FC_RCE;
; 0906 LLCRS$( .CCB)
; 0907 end;
.GLOBL $SCHED
.SBTTL CA.RCV
000000 016500 000004 CA.RCV::
U.9: MOV 4(R5),R0 ; PDB(.AP.),* 0899
000004 121027 000006 CMPB (R0),#6
000010 001006 BNE 1$
000012 112710 000011 MOVB #11,(R0) ; 0902
000016 010046 MOV R0,-(SP) ; 0903
000020 004767 000000V JSR PC,U.41
000024 005726 TST (SP)+ ; 0901
000026 016500 000002 1$: MOV 2(R5),R0 ; CCB(.AP.),* 0905
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 11
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (5)
000032 112760 000004 000012 MOVB #4,12(R0)
000040 010004 MOV R0,R4 ; 0906
000042 004767 000000G JSR PC,$SCHED
000046 000207 RTS PC ; 0871
; Routine Size: 20 words, Routine Base: $CODE$ + 0206
; Maximum stack depth per invocation: 2 words
; 0908
; 0909
; 0910
; 0911
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 12
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (6)
; 0912 global routine CC_BLD ( CCB, PDB) :CALL$ novalue = !
; 0913
; 0914 !++
; 0915 ! FUNCTIONAL DESCRIPTION:
; 0916 ! This routine formats an NSP Connect Confirm message.
; 0917 !
; 0918 ! FORMAL PARAMETERS:
; 0919 ! CCB = CCB address
; 0920 ! PDB = Port Data Base Address
; 0921 !
; 0922 ! IMPLICIT INPUTS:
; 0923 ! DB = NSP Data Base Address
; 0924 !
; 0925 ! IMPLICIT OUTPUTS:
; 0926 ! None
; 0927 !
; 0928 ! ROUTINE VALUE:
; 0929 ! COMPLETION CODES:
; 0930 ! None
; 0931 !
; 0932 ! SIDE EFFECTS:
; 0933
; 0934 ! None
; 0935 !--
; 0936
; 0937 begin
; 0938 map CCB: ref block field(C_fields);
; 0939 map PDB: ref block field(PORT_fields);
; 0940
; 0941 local
; 0942 PTR;
; 0943
; 0944 PTR = .CCB[C_ADDR];
; 0945
; 0946 CCB[C_CHN] = .CCB[C_STK];
; 0947
; 0948 ch$wchar_a( FLG_CC, PTR);
; 0949 ch$wchar_a( .PDB[L_rem_addr], PTR);
; 0950 ch$wchar_a( .PDB[H_rem_addr], PTR);
; 0951 ch$wchar_a( .PDB[PID], PTR);
; 0952 ch$wchar_a( .PDB[ADDran], PTR);
; 0953 ch$wchar_a( .PDB[FLOWloc_typ]^2 + 1, PTR);
; 0954 ch$wchar_a( 0, PTR);
; 0955 PUT2BYTES( .DB[NSPbuf], PTR);
; 0956
; 0957 CCB[C_CNT] = ch$diff(.PTR, .CCB[C_ADDR]);
; 0958
; 0959 If .PDB[DELAYstr_tim] eql 0
; 0960 Then
; 0961 PDB[DELAYstr_tim] = 1;
; 0962 XPT_XMIT( .CCB, .PDB)
; 0963 end;
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 13
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (6)
.SBTTL CC.BLD
000000 016501 000002 CC.BLD::
U.13: MOV 2(R5),R1 ; CCB(.AP.),* 0944
000004 016102 000020 MOV 20(R1),R2 ; *,PTR
000010 016161 000004 000002 MOV 4(R1),2(R1) ; 0946
000016 112722 000050 MOVB #50,(R2)+ ; *,PTR 0948
000022 016505 000004 MOV 4(R5),R5 ; PDB(.AP.),* 0949
000026 116522 000006 MOVB 6(R5),(R2)+ ; *,PTR
000032 116522 000007 MOVB 7(R5),(R2)+ ; *,PTR 0950
000036 116522 000004 MOVB 4(R5),(R2)+ ; *,PTR 0951
000042 116522 000005 MOVB 5(R5),(R2)+ ; *,PTR 0952
000046 016500 000040 MOV 40(R5),R0 ; 0953
000052 072027 177772 ASH #-6,R0
000056 042700 177763 BIC #177763,R0
000062 010003 MOV R0,R3
000064 005203 INC R3
000066 110322 MOVB R3,(R2)+ ; *,PTR
000070 105022 CLRB (R2)+ ; PTR 0954
000072 016700 000002G MOV .CRDAT+2,R0 ; 0955
000076 016000 000042 MOV 42(R0),R0 ; *,TEMP
000102 110022 MOVB R0,(R2)+ ; TEMP,PTR
000104 010003 MOV R0,R3 ; TEMP,*
000106 000303 SWAB R3
000110 110322 MOVB R3,(R2)+ ; *,PTR
000112 010261 000022 MOV R2,22(R1) ; PTR,* 0957
000116 166161 000020 000022 SUB 20(R1),22(R1)
000124 012700 000062 MOV #62,R0 ; 0959
000130 060500 ADD R5,R0
000132 005710 TST (R0)
000134 001002 BNE 1$
000136 012710 000001 MOV #1,(R0) ; 0961
000142 010146 1$: MOV R1,-(SP) ; 0962
000144 010546 MOV R5,-(SP)
000146 004767 000000V JSR PC,U.42
000152 022626 CMP (SP)+,(SP)+ ; 0937
000154 000207 RTS PC ; 0912
; Routine Size: 55 words, Routine Base: $CODE$ + 0256
; Maximum stack depth per invocation: 3 words
; 0964
; 0965
; 0966
; 0967
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 14
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (7)
; 0968 global routine CC_RCV ( CCB, PDB ) :CALL$ novalue = !
; 0969
; 0970 !++
; 0971 ! FUNCTIONAL DESCRIPTION:
; 0972 ! This routine processes a received Connect Confirm message.
; 0973 !
; 0974 ! FORMAL PARAMETERS:
; 0975 ! CCB = CCB address
; 0976 ! PDB = Port Data Base Address
; 0977 !
; 0978 ! IMPLICIT INPUTS:
; 0979 ! DB = NSP Data Base Address
; 0980 !
; 0981 ! IMPLICIT OUTPUTS:
; 0982 ! None
; 0983 !
; 0984 ! ROUTINE VALUE:
; 0985 ! COMPLETION CODES:
; 0986 ! None
; 0987 !
; 0988 ! SIDE EFFECTS:
; 0989 ! None
; 0990 !--
; 0991
; 0992 begin
; 0993 map CCB: ref block field(C_fields);
; 0994 map PDB: ref block field(PORT_fields);
; 0995
; 0996 local
; 0997 PTR,
; 0998 NDB : ref block field(NODE_fields),
; 0999 WK_CCB: ref block field(C_fields);
; 1000
; 1001 PTR = ch$plus( .CCB[C_ADDR], 5 );
; 1002 NDB = .PDB[NODElnk];
; 1003
; 1004 If .PDB[BUFFctl] neq 0
; 1005 Then
; 1006 begin
; 1007 CCB[C_FNC] = FC_RCE;
; 1008 LLCRS$( .CCB);
; 1009 return
; 1010 end;
; 1011
; 1012 MAP$( .CCB[C_BIAS]);
; 1013 DB[SERVICES] = ch$rchar_a( PTR);
; 1014 DB[INFO] = ch$rchar_a( PTR);
; 1015 DB[SEGSIZE] = GET2BYTES( PTR);
; 1016 MAP$( .DB[BIASports]);
; 1017
; 1018 If (.DB[FCOPT] neq FLOWrsv) and
; 1019 ((.DB[SERVICES] and 1) neq 0) and
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 15
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (7)
; 1020 ((.DB[INFO] and %o'374') eql 0)
; 1021 Then
; 1022 begin
; 1023 IF .PDB[PORTstate] eql N$SCI or
; 1024 .PDB[PORTstate] eql N$SCD
; 1025 Then
; 1026 begin
; 1027 MAP$( .DB[BIASnodes]);
; 1028 DADD( NDB[NDb_rcv], .CCB[C_CNT] - CC_SIZE);
; 1029 MAP$( .DB[BIASports]);
; 1030 PDB[L_rem_addr] = .DB[L_SRCADDR];
; 1031 PDB[H_rem_addr] = .DB[H_SRCADDR];
; 1032 PDB[FLOWtyp_rem] = .DB[FCOPT];
; 1033 PDB[VERSIONrem] = .DB[INFO];
; 1034 PDB[SIZEseg] = MIN( .DB[SEGSIZE], .DB[NSPbuf]);
; 1035 PDB[TIMERinact] = .DB[NSPact_tim];
; 1036
; 1037 If .PDB[PORTstate] eql N$SCI
; 1038 Then
; 1039 UPDATE_DELAY( .PDB);
; 1040 PDB[PORTstate] = N$SRUN;
; 1041 PDB[FLAGdat_ack] = true;
; 1042
; 1043 If CCB_GET( WK_CCB, .PDB)
; 1044 Then
; 1045 begin
; 1046 WK_CCB[C_STK] = .CCB;
; 1047 C_STSE( .WK_CCB, .PDB)
; 1048 end
; 1049 Else
; 1050 begin
; 1051 PDB[BUFFctl] = .CCB;
; 1052 return
; 1053 end;
; 1054 If CCB_HDR_GET( 0, WK_CCB, .PDB)
; 1055 Then
; 1056 ACK_BLD( .WK_CCB, .PDB)
; 1057 Else
; 1058 PDB[FLAGdat_ack] = true;
; 1059 return
; 1060 end;
; 1061 If .PDB[PORTstate] eql N$SRUN
; 1062 Then
; 1063 PDB[FLAGdat_ack] = true
; 1064 end;
; 1065 CCB[C_FNC] = FC_RCE;
; 1066 LLCRS$( .CCB)
; 1067 end;
.GLOBL KISAR6
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 16
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (7)
.SBTTL CC.RCV
000000 024646 CC.RCV::
U.14: CMP -(SP),-(SP) ; 0968
000002 016503 000002 MOV 2(R5),R3 ; CCB(.AP.),* 1001
000006 016301 000020 MOV 20(R3),R1 ; *,PTR
000012 062701 000005 ADD #5,R1 ; *,PTR
000016 016505 000004 MOV 4(R5),R5 ; PDB(.AP.),* 1002
000022 016546 000010 MOV 10(R5),-(SP) ; *,NDB
000026 012766 000050 000002 MOV #50,2(SP) ; 1004
000034 060566 000002 ADD R5,2(SP)
000040 005776 000002 TST @2(SP)
000044 001040 BNE 2$ ; 1007
000046 016367 000016 000000G MOV 16(R3),KISAR6 ; 1012
000054 016702 000002G MOV .CRDAT+2,R2 ; 1013
000060 012704 000070 MOV #70,R4
000064 060204 ADD R2,R4
000066 112114 MOVB (R1)+,(R4) ; PTR,*
000070 112162 000072 MOVB (R1)+,72(R2) ; PTR,* 1014
000074 105000 CLRB R0 ; TEMP 1015
000076 152100 BISB (R1)+,R0 ; PTR,TEMP
000100 010046 MOV R0,-(SP) ; TEMP,*
000102 112166 000001 MOVB (R1)+,1(SP) ; PTR,*
000106 012600 MOV (SP)+,R0 ; *,TEMP
000110 010062 000066 MOV R0,66(R2) ; TEMP,*
000114 016267 000014 000000G MOV 14(R2),KISAR6 ; 1016
000122 012700 000014 MOV #14,R0 ; 1018
000126 141400 BICB (R4),R0
000130 001402 BEQ 1$
000132 132714 000001 BITB #1,(R4) ; 1019
000136 001577 1$: BEQ 11$
000140 132762 000374 000072 BITB #374,72(R2) ; 1020
000146 001173 2$: BNE 11$
000150 121527 000006 CMPB (R5),#6 ; 1023
000154 001403 BEQ 3$
000156 121527 000011 CMPB (R5),#11 ; 1024
000162 001157 BNE 10$
000164 016267 000030 000000G 3$: MOV 30(R2),KISAR6 ; 1027
000172 011646 MOV (SP),-(SP) ; NDB,* 1028
000174 062716 000010 ADD #10,(SP)
000200 016346 000022 MOV 22(R3),-(SP)
000204 162716 000011 SUB #11,(SP)
000210 004767 000000V JSR PC,U.20
000214 016704 000002G MOV .CRDAT+2,R4 ; 1029
000220 016467 000014 000000G MOV 14(R4),KISAR6
000226 116465 000055 000006 MOVB 55(R4),6(R5) ; 1030
000234 116465 000056 000007 MOVB 56(R4),7(R5) ; 1031
000242 012701 000040 MOV #40,R1 ; 1032
000246 060501 ADD R5,R1
000250 116400 000070 MOVB 70(R4),R0
000254 072027 000011 ASH #11,R0
000260 042700 163777 BIC #163777,R0
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 17
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (7)
000264 042711 014000 BIC #14000,(R1)
000270 050011 BIS R0,(R1)
000272 116400 000072 MOVB 72(R4),R0 ; 1033
000276 006300 ASL R0
000300 006300 ASL R0
000302 042700 177763 BIC #177763,R0
000306 142765 000014 000042 BICB #14,42(R5)
000314 150065 000042 BISB R0,42(R5)
000320 016400 000066 MOV 66(R4),R0 ; 1034
000324 020064 000042 CMP R0,42(R4)
000330 003402 BLE 4$
000332 016400 000042 MOV 42(R4),R0
000336 010065 000072 4$: MOV R0,72(R5)
000342 116465 000004 000036 MOVB 4(R4),36(R5) ; 1035
000350 121527 000006 CMPB (R5),#6 ; 1037
000354 001003 BNE 5$
000356 010516 MOV R5,(SP) ; 1039
000360 004767 000000V JSR PC,U.41
000364 112715 000013 5$: MOVB #13,(R5) ; 1040
000370 052711 020000 BIS #20000,(R1) ; 1041
000374 012716 000010 MOV #10,(SP) ; 1043
000400 060616 ADD SP,(SP) ; WK.CCB,*
000402 010546 MOV R5,-(SP)
000404 004767 000000V JSR PC,U.16
000410 005726 TST (SP)+
000412 006000 ROR R0
000414 103012 BCC 6$
000416 016600 000010 MOV 10(SP),R0 ; WK.CCB,* 1046
000422 010360 000004 MOV R3,4(R0)
000426 010016 MOV R0,(SP) ; WK.CCB,* 1047
000430 010546 MOV R5,-(SP)
000432 004767 000000V JSR PC,U.19
000436 005726 TST (SP)+ ; 1045
000440 000403 BR 7$ ; 1043
000442 010376 000006 6$: MOV R3,@6(SP) ; 1051
000446 000423 BR 9$ ; 1043
000450 005016 7$: CLR (SP) ; 1054
000452 012746 000012 MOV #12,-(SP)
000456 060616 ADD SP,(SP) ; WK.CCB,*
000460 010546 MOV R5,-(SP)
000462 004767 000000V JSR PC,U.15
000466 022626 CMP (SP)+,(SP)+
000470 006000 ROR R0
000472 103007 BCC 8$
000474 016616 000010 MOV 10(SP),(SP) ; WK.CCB,* 1056
000500 010546 MOV R5,-(SP)
000502 004767 176636 JSR PC,U.7
000506 005726 TST (SP)+
000510 000402 BR 9$ ; 1054
000512 052711 020000 8$: BIS #20000,(R1) ; 1058
000516 022626 9$: CMP (SP)+,(SP)+ ; 1023
000520 000414 BR 12$ ; 1026
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 18
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (7)
000522 121527 000013 10$: CMPB (R5),#13 ; 1061
000526 001003 BNE 11$
000530 052765 020000 000040 BIS #20000,40(R5) ; 1063
000536 112763 000004 000012 11$: MOVB #4,12(R3) ; 1065
000544 010304 MOV R3,R4 ; 1066
000546 004767 000000G JSR PC,$SCHED
000552 062706 000006 12$: ADD #6,SP ; 0968
000556 000207 RTS PC
; Routine Size: 184 words, Routine Base: $CODE$ + 0434
; Maximum stack depth per invocation: 8 words
; 1068
; 1069
; 1070
; 1071
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 19
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (8)
; 1072 routine CCB_HDR_GET ( CCB, LCCB, PDB ) = !
; 1073
; 1074 !++
; 1075 ! FUNCTIONAL DESCRIPTION:
; 1076 ! This routine allocates a CCB and a header buffer from DSR space.
; 1077 !
; 1078 ! FORMAL PARAMETERS:
; 1079 ! CCB = CCB address
; 1080 ! LCCB = CCB Address to stack
; 1081 ! PDB = Port Data Base address
; 1082 !
; 1083 ! IMPLICIT INPUTS:
; 1084 ! None
; 1085 !
; 1086 ! IMPLICIT OUTPUTS:
; 1087 ! None
; 1088 !
; 1089 ! ROUTINE VALUE:
; 1090 ! COMPLETION CODES:
; 1091 ! None
; 1092 !
; 1093 ! SIDE EFFECTS:
; 1094 ! None
; 1095 !--
; 1096
; 1097
; 1098 begin
; 1099 map CCB: ref block field(C_fields);
; 1100 map PDB: ref block field(PORT_fields);
; 1101 map LCCB: ref block field(C_fields);
; 1102
; 1103 If not CCBGT$(.LCCB)
; 1104 Then
; 1105 return false;
; 1106 begin
; 1107 bind XCCB = .LCCB: ref block field(C_fields);
; 1108 XCCB[C_STK] = 0;
; 1109 XCCB[C_CHN] = 0;
; 1110 XCCB[C_PRM1] = 0;
; 1111 XCCB[C_PRM2] = 0;
; 1112 XCCB[C_PRM3] = 0;
; 1113 XCCB[C_PRM4] = 0;
; 1114 XCCB[C_PRM5] = 0;
; 1115 XCCB[C_BIAS] = 0;
; 1116
; 1117 If not $MCB_GET_DSR( hdb_size, XCCB[C_ADDR])
; 1118 Then
; 1119 begin
; 1120 CCBRT$(..LCCB);
; 1121 return false;
; 1122 end;
; 1123 If .CCB neq 0
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 20
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (8)
; 1124 Then
; 1125 XCCB[C_STK] = .CCB;
; 1126 end;
; 1127 If .PDB neq -1
; 1128 Then
; 1129 PDB[COUNTres] = .PDB[COUNTres] + 1;
; 1130 return true;
; 1131 end;
.GLOBL $CCBGT, $DSRGT, $CCBRT
.SBTTL CCB.HDR.GET
000000 004167 000000G ; CCB.HDR.GET
U.15: JSR R1,$SAVE4 ; 1072
000004 004767 000000G JSR PC,$CCBGT ; 1103
000010 103460 BCS 5$
000012 010476 000016 MOV R4,@16(SP) ; $MCB$R4,LCCB
000016 010402 MOV R4,R2 ; LCCB,* 1108
000020 005062 000004 CLR 4(R2)
000024 005062 000002 CLR 2(R2) ; 1109
000030 005062 000024 CLR 24(R2) ; 1110
000034 005062 000026 CLR 26(R2) ; 1111
000040 005062 000030 CLR 30(R2) ; 1112
000044 005062 000032 CLR 32(R2) ; 1113
000050 005062 000034 CLR 34(R2) ; 1114
000054 005062 000016 CLR 16(R2) ; 1115
000060 012701 000014 MOV #14,R1 ; 1117
000064 004767 000000G JSR PC,$DSRGT
000070 103403 BCS 1$
000072 010062 000020 MOV R0,20(R2) ; $MCB$R0,*
000076 000405 BR 2$
000100 017604 000016 1$: MOV @16(SP),R4 ; LCCB,* 1120
000104 004767 000000G JSR PC,$CCBRT
000110 000420 BR 5$ ; 1119
000112 016600 000020 2$: MOV 20(SP),R0 ; CCB,* 1123
000116 001402 BEQ 3$
000120 010062 000004 MOV R0,4(R2) ; 1125
000124 026627 000014 177777 3$: CMP 14(SP),#-1 ; PDB,* 1127
000132 001404 BEQ 4$
000134 016600 000014 MOV 14(SP),R0 ; PDB,* 1129
000140 005260 000054 INC 54(R0)
000144 012700 000001 4$: MOV #1,R0 ; 1098
000150 000207 RTS PC
000152 005000 5$: CLR R0 ; 1072
000154 000207 RTS PC
; Routine Size: 55 words, Routine Base: $CODE$ + 1214
; Maximum stack depth per invocation: 6 words
; 1132
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 21
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (8)
; 1133
; 1134
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 22
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (9)
; 1135 routine CCB_GET (CCB, PDB) = !
; 1136
; 1137 !++
; 1138 ! FUNCTIONAL DESCRIPTION:
; 1139 ! This routine allocates a CCB.
; 1140 !
; 1141 ! FORMAL PARAMETERS:
; 1142 ! CCB = CCB address
; 1143 ! PDB = Port Data Base address
; 1144 !
; 1145 ! IMPLICIT INPUTS:
; 1146 ! None
; 1147 !
; 1148 ! IMPLICIT OUTPUTS:
; 1149 ! None
; 1150 !
; 1151 ! ROUTINE VALUE:
; 1152 ! COMPLETION CODES:
; 1153 ! None
; 1154 !
; 1155 ! SIDE EFFECTS:
; 1156 ! None
; 1157 !--
; 1158
; 1159
; 1160 begin
; 1161 map PDB: ref block field(PORT_fields);
; 1162
; 1163 local
; 1164 LCCB: ref block field(C_fields);
; 1165
; 1166 If not CCBGT$(LCCB)
; 1167 Then
; 1168 return false;
; 1169 LCCB[C_STK] = 0;
; 1170 LCCB[C_CHN] = 0;
; 1171 LCCB[C_BIAS] = 0;
; 1172 LCCB[C_ADDR] = 0;
; 1173 LCCB[C_PRM1] = 0;
; 1174 LCCB[C_PRM2] = 0;
; 1175 LCCB[C_PRM3] = 0;
; 1176 LCCB[C_PRM4] = 0;
; 1177 LCCB[C_PRM5] = 0;
; 1178
; 1179 If .PDB neq -1
; 1180 Then
; 1181 PDB[COUNTres] = .PDB[COUNTres] + 1;
; 1182 .CCB = .LCCB;
; 1183 return true;
; 1184 end;
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 23
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (9)
.SBTTL CCB.GET
000000 010446 ; CCB.GET
U.16: MOV R4,-(SP) ; 1135
000002 004767 000000G JSR PC,$CCBGT ; 1166
000006 103437 BLO 2$ ; 1168
000010 005064 000004 CLR 4(R4) ; *(LCCB) 1169
000014 005064 000002 CLR 2(R4) ; *(LCCB) 1170
000020 005064 000016 CLR 16(R4) ; *(LCCB) 1171
000024 005064 000020 CLR 20(R4) ; *(LCCB) 1172
000030 005064 000024 CLR 24(R4) ; *(LCCB) 1173
000034 005064 000026 CLR 26(R4) ; *(LCCB) 1174
000040 005064 000030 CLR 30(R4) ; *(LCCB) 1175
000044 005064 000032 CLR 32(R4) ; *(LCCB) 1176
000050 005064 000034 CLR 34(R4) ; *(LCCB) 1177
000054 026627 000004 177777 CMP 4(SP),#-1 ; PDB,* 1179
000062 001404 BEQ 1$
000064 016600 000004 MOV 4(SP),R0 ; PDB,* 1181
000070 005260 000054 INC 54(R0)
000074 010476 000006 1$: MOV R4,@6(SP) ; LCCB,CCB 1182
000100 012700 000001 MOV #1,R0 ; 1160
000104 000401 BR 3$
000106 005000 2$: CLR R0 ; 1135
000110 012604 3$: MOV (SP)+,R4
000112 000207 RTS PC
; Routine Size: 38 words, Routine Base: $CODE$ + 1372
; Maximum stack depth per invocation: 2 words
; 1185
; 1186
; 1187
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 24
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (10)
; 1188 routine CCB_RETRN ( CCB, PDB): novalue = !
; 1189
; 1190 !++
; 1191 ! FUNCTIONAL DESCRIPTION:
; 1192 ! This routine deallocates a CCB.
; 1193 !
; 1194 ! FORMAL PARAMETERS:
; 1195 ! CCB = CCB address
; 1196 ! PDB = Port Data Base address
; 1197 !
; 1198 ! IMPLICIT INPUTS:
; 1199 ! DB = NSP data base address
; 1200 !
; 1201 ! IMPLICIT OUTPUTS:
; 1202 ! None
; 1203 !
; 1204 ! ROUTINE VALUE:
; 1205 ! COMPLETION CODES:
; 1206 ! None
; 1207 !
; 1208 ! SIDE EFFECTS:
; 1209 ! None
; 1210 !--
; 1211
; 1212
; 1213 begin
; 1214 map PDB: ref block field(PORT_fields);
; 1215
; 1216 local
; 1217 temp,
; 1218 NDB : ref block field(NODE_fields),
; 1219 CLZ_CCB: ref block field(C_fields);
; 1220
; 1221 CCBRT$( .CCB);
; 1222
; 1223 If .PDB neq -1
; 1224 Then
; 1225 begin
; 1226 PDB[COUNTres] = .PDB[COUNTres] - 1;
; 1227
; 1228 If .PDB[PORTstate] eql N$SCL and
; 1229 .PDB[COUNTres] eql 0
; 1230 Then
; 1231 begin
; 1232 NDB = .PDB[NODElnk];
; 1233 PDB[FLAGinuse] = false;
; 1234 CMQRM$( PDB[MSG_queue], CLZ_CCB);
; 1235 CLZ_CCB[C_FNC] = FC_XCP;
; 1236 CLZ_CCB[C_STS] = N$SSUC;
; 1237 LLCRS$( .CLZ_CCB);
; 1238 end;
; 1239 End;
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 25
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (10)
; 1240 end;
.GLOBL $CMQRM
.SBTTL CCB.RETRN
000000 004167 000000G ; CCB.RETRN
U.17: JSR R1,$SAVE4 ; 1188
000004 016604 000016 MOV 16(SP),R4 ; CCB,* 1221
000010 004767 000000G JSR PC,$CCBRT
000014 016603 000014 MOV 14(SP),R3 ; PDB,* 1223
000020 020327 177777 CMP R3,#-1
000024 001431 BEQ 1$
000026 005363 000054 DEC 54(R3) ; 1226
000032 121327 000017 CMPB (R3),#17 ; 1228
000036 001024 BNE 1$
000040 005763 000054 TST 54(R3) ; 1229
000044 001021 BNE 1$
000046 016304 000010 MOV 10(R3),R4 ; *,NDB 1232
000052 142763 000001 000042 BICB #1,42(R3) ; 1233
000060 062703 000102 ADD #102,R3 ; 1234
000064 004767 000000G JSR PC,$CMQRM
000070 112764 000014 000012 MOVB #14,12(R4) ; *,*(CLZ.CCB) 1235
000076 012764 000001 000014 MOV #1,14(R4) ; *,*(CLZ.CCB) 1236
000104 004767 000000G JSR PC,$SCHED ; 1237
000110 000207 1$: RTS PC ; 1188
; Routine Size: 37 words, Routine Base: $CODE$ + 1506
; Maximum stack depth per invocation: 6 words
; 1241
; 1242
; 1243
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 26
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (11)
; 1244 global routine CTL_RECVD ( PDB) : CALL$ novalue = !
; 1245
; 1246 !++
; 1247 ! FUNCTIONAL DESCRIPTION:
; 1248 ! This routine attempts to clear out BUFFctl queue if non-zero.
; 1249 !
; 1250 ! FORMAL PARAMETERS:
; 1251 ! PDB = Port Data Base address
; 1252 !
; 1253 ! IMPLICIT INPUTS:
; 1254 ! DB = NSP data base address
; 1255 !
; 1256 ! IMPLICIT OUTPUTS:
; 1257 ! None
; 1258 !
; 1259 ! ROUTINE VALUE:
; 1260 ! COMPLETION CODES:
; 1261 ! None
; 1262 !
; 1263 ! SIDE EFFECTS:
; 1264 ! None
; 1265 !--
; 1266
; 1267 begin
; 1268 map PDB: ref block field(PORT_fields);
; 1269
; 1270 local
; 1271 GOT_CCB: ref block field(C_fields),
; 1272 CA_CCB: ref block field(C_fields);
; 1273
; 1274 Selectone .PDB[PORTstate] of
; 1275 Set
; 1276 [N$SNR, N$SRUN, N$SRJ]:
; 1277
; 1278 begin
; 1279 If CCB_GET(GOT_CCB, .PDB)
; 1280 Then
; 1281 begin
; 1282 GOT_CCB[C_STK] = .PDB[BUFFctl];
; 1283 C_STSE( .GOT_CCB, .PDB);
; 1284 PDB[BUFFctl] = 0
; 1285 End
; 1286 Else
; 1287 return;
; 1288 end;
; 1289
; 1290 [N$SDN]:
; 1291
; 1292 begin
; 1293 If CCB_GET(GOT_CCB, .PDB)
; 1294 Then
; 1295 begin
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 27
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (11)
; 1296 GOT_CCB[C_STK] = .PDB[BUFFctl];
; 1297 DSC_RECVD( .GOT_CCB, .PDB);
; 1298 PDB[BUFFctl] = 0
; 1299 end
; 1300 Else
; 1301 return
; 1302 end;
; 1303
; 1304 [N$SCR]:
; 1305
; 1306 begin
; 1307 If CCB_GET( GOT_CCB, .PDB)
; 1308 Then
; 1309 begin
; 1310 If not CCB_HDR_GET( 0, CA_CCB, .PDB)
; 1311 Then
; 1312 begin
; 1313 CCB_RETRN( .GOT_CCB, .PDB);
; 1314 return
; 1315 end;
; 1316 CA_BLD( .CA_CCB, .PDB);
; 1317 GOT_CCB[C_STK] = .PDB[BUFFctl];
; 1318 CI_RECVD( .GOT_CCB, .PDB);
; 1319 PDB[BUFFctl] = 0;
; 1320 end
; 1321 Else
; 1322 return;
; 1323 end;
; 1324
; 1325 [N$SCN]:
; 1326
; 1327 begin
; 1328 If CCB_GET(GOT_CCB, .PDB)
; 1329 Then
; 1330 begin
; 1331 CALL$L( NSP_CONFIDENCE, .GOT_CCB, .PDB);
; 1332 CA_CCB = .PDB[BUFFctl];
; 1333 CA_CCB[C_FNC] = FC_RCE;
; 1334 LLCRS$( .CA_CCB);
; 1335 CALL$L( FLUSH_QUEUES, .PDB, N$EABR);
; 1336 end
; 1337 Else
; 1338 return;
; 1339 end;
; 1340
; 1341 Tes;
; 1342 end;
.SBTTL CTL.RECVD
000000 024646 CTL.RECVD::
U.18: CMP -(SP),-(SP) ; 1244
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 28
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (11)
000002 016505 000002 MOV 2(R5),R5 ; PDB(.AP.),* 1274
000006 121527 000007 CMPB (R5),#7
000012 001406 BEQ 1$
000014 121527 000012 CMPB (R5),#12
000020 002426 BLT 2$
000022 121527 000013 CMPB (R5),#13
000026 003023 BGT 2$
000030 012746 000004 1$: MOV #4,-(SP) ; 1279
000034 060616 ADD SP,(SP) ; GOT.CCB,*
000036 010546 MOV R5,-(SP)
000040 004767 177506 JSR PC,U.16
000044 022626 CMP (SP)+,(SP)+
000046 006000 ROR R0
000050 103175 BCC 9$
000052 016600 000002 MOV 2(SP),R0 ; GOT.CCB,* 1282
000056 016560 000050 000004 MOV 50(R5),4(R0)
000064 010046 MOV R0,-(SP) ; GOT.CCB,* 1283
000066 010546 MOV R5,-(SP)
000070 004767 000000V JSR PC,U.19
000074 000425 BR 3$ ; 1284
000076 121527 000016 2$: CMPB (R5),#16 ; 1274
000102 001025 BNE 4$
000104 012746 000004 MOV #4,-(SP) ; 1293
000110 060616 ADD SP,(SP) ; GOT.CCB,*
000112 010546 MOV R5,-(SP)
000114 004767 177432 JSR PC,U.16
000120 022626 CMP (SP)+,(SP)+
000122 006000 ROR R0
000124 103147 BCC 9$
000126 016600 000002 MOV 2(SP),R0 ; GOT.CCB,* 1296
000132 016560 000050 000004 MOV 50(R5),4(R0)
000140 010046 MOV R0,-(SP) ; GOT.CCB,* 1297
000142 010546 MOV R5,-(SP)
000144 004767 000000V JSR PC,U.25
000150 005065 000050 3$: CLR 50(R5) ; 1298
000154 000434 BR 5$ ; 1295
000156 121527 000002 4$: CMPB (R5),#2 ; 1274
000162 001053 BNE 7$
000164 012746 000004 MOV #4,-(SP) ; 1307
000170 060616 ADD SP,(SP) ; GOT.CCB,*
000172 010546 MOV R5,-(SP)
000174 004767 177352 JSR PC,U.16
000200 022626 CMP (SP)+,(SP)+
000202 006000 ROR R0
000204 103117 BCC 9$
000206 005046 CLR -(SP) ; 1310
000210 012746 000004 MOV #4,-(SP)
000214 060616 ADD SP,(SP) ; CA.CCB,*
000216 010546 MOV R5,-(SP)
000220 004767 177150 JSR PC,U.15
000224 062706 000006 ADD #6,SP
000230 006000 ROR R0
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 29
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (11)
000232 103407 BLO 6$
000234 016646 000002 MOV 2(SP),-(SP) ; GOT.CCB,* 1313
000240 010546 MOV R5,-(SP)
000242 004767 177420 JSR PC,U.17
000246 022626 5$: CMP (SP)+,(SP)+ ; 1310
000250 000475 BR 9$ ; 1312
000252 011646 6$: MOV (SP),-(SP) ; CA.CCB,* 1316
000254 010546 MOV R5,-(SP)
000256 004767 176022 JSR PC,U.8
000262 016600 000006 MOV 6(SP),R0 ; GOT.CCB,* 1317
000266 016560 000050 000004 MOV 50(R5),4(R0)
000274 010016 MOV R0,(SP) ; GOT.CCB,* 1318
000276 010546 MOV R5,-(SP)
000300 004767 000000V JSR PC,U.11
000304 005065 000050 CLR 50(R5) ; 1319
000310 000453 BR 8$ ; 1309
000312 121527 000020 7$: CMPB (R5),#20 ; 1274
000316 001052 BNE 9$
000320 012746 000004 MOV #4,-(SP) ; 1328
000324 060616 ADD SP,(SP) ; GOT.CCB,*
000326 010546 MOV R5,-(SP)
000330 004767 177216 JSR PC,U.16
000334 022626 CMP (SP)+,(SP)+
000336 006000 ROR R0
000340 103041 BCC 9$
000342 010546 MOV R5,-(SP) ; 1331
000344 016646 000004 MOV 4(SP),-(SP) ; GOT.CCB,*
000350 012746 000002 MOV #2,-(SP)
000354 012746 000000V MOV #U.33,-(SP)
000360 004767 000000G JSR PC,$CALL
000364 022626 CMP (SP)+,(SP)+
000366 016566 000050 000004 MOV 50(R5),4(SP) ; *,CA.CCB 1332
000374 016600 000004 MOV 4(SP),R0 ; CA.CCB,* 1333
000400 112760 000004 000012 MOVB #4,12(R0)
000406 010004 MOV R0,R4 ; CA.CCB,* 1334
000410 004767 000000G JSR PC,$SCHED
000414 012716 177773 MOV #-5,(SP) ; 1335
000420 010546 MOV R5,-(SP)
000422 012746 000002 MOV #2,-(SP)
000426 012746 000000V MOV #U.29,-(SP)
000432 004767 000000G JSR PC,$CALL
000436 022626 CMP (SP)+,(SP)+
000440 062706 000006 8$: ADD #6,SP ; 1330
000444 022626 9$: CMP (SP)+,(SP)+ ; 1244
000446 000207 RTS PC
; Routine Size: 148 words, Routine Base: $CODE$ + 1620
; Maximum stack depth per invocation: 8 words
; 1343
; 1344
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 30
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (11)
; 1345
; 1346
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 31
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (12)
; 1347 routine C_STSE ( CCB, PDB): novalue = !
; 1348
; 1349 !++
; 1350 ! FUNCTIONAL DESCRIPTION:
; 1351 ! This routine generates a CONNECT-STATUS call to Session Control.
; 1352 !
; 1353 ! FORMAL PARAMETERS:
; 1354 ! CCB = CCB address
; 1355 ! PDB = Port Data Base address
; 1356 !
; 1357 ! IMPLICIT INPUTS:
; 1358 ! DB = NSP data base address
; 1359 !
; 1360 ! IMPLICIT OUTPUTS:
; 1361 ! None
; 1362 !
; 1363 ! ROUTINE VALUE:
; 1364 ! COMPLETION CODES:
; 1365 ! None
; 1366 !
; 1367 ! SIDE EFFECTS:
; 1368 ! None
; 1369 !--
; 1370
; 1371
; 1372 begin
; 1373 map PDB: ref block field(PORT_fields);
; 1374 map CCB: ref block field(C_fields);
; 1375
; 1376 bind STK_CCB = .CCB[C_STK]: block field(C_fields);
; 1377
; 1378 CCB[C_FNC] = FC_RCP;
; 1379 CCB[C_MOD] = N_SCNS;
; 1380 CCB[C_LIX] = .PDB[PID];
; 1381 CCB[C_BIAS] = .STK_CCB[C_BIAS];
; 1382
; 1383 Selectone .PDB[PORTstate] of
; 1384 Set
; 1385
; 1386 [N$SNR]:
; 1387 begin
; 1388 CCB[C_STS] = N$EOPN;
; 1389 CCB[C_CNT] = 0;
; 1390 CCB[C_ADDR] = 0;
; 1391 end;
; 1392
; 1393 [N$SRJ]:
; 1394 begin
; 1395 CCB[C_STS] = N$SREJ;
; 1396 CCB[C_CNT] = .STK_CCB[C_CNT] - DI_SIZE;
; 1397 CCB[C_ADDR] = ch$plus(.STK_CCB[C_ADDR], DI_SIZE);
; 1398 end;
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 32
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (12)
; 1399
; 1400 [N$SRUN]:
; 1401 begin
; 1402 CCB[C_STS] = N$SACC;
; 1403 CCB[C_CNT] = .STK_CCB[C_CNT] - CC_SIZE;
; 1404 CCB[C_ADDR] = ch$plus(.STK_CCB[C_ADDR], CC_SIZE);
; 1405 end;
; 1406 Tes;
; 1407 CCB[C_PIX] = .DB[NSPsc_pix];
; 1408 LLCRS$( .CCB);
; 1409 end;
.SBTTL C.STSE
000000 004167 000000G ; C.STSE
U.19: JSR R1,$SAVE4 ; 1347
000004 016604 000016 MOV 16(SP),R4 ; CCB,* 1376
000010 016401 000004 MOV 4(R4),R1 ; 1372
000014 112764 000016 000012 MOVB #16,12(R4) ; 1378
000022 112764 000002 000013 MOVB #2,13(R4) ; 1379
000030 016600 000014 MOV 14(SP),R0 ; PDB,* 1380
000034 116064 000004 000010 MOVB 4(R0),10(R4)
000042 016164 000016 000016 MOV 16(R1),16(R4) ; 1381
000050 111000 MOVB (R0),R0 ; PDB,* 1383
000052 020027 000007 CMP R0,#7
000056 001010 BNE 1$
000060 012764 177774 000014 MOV #-4,14(R4) ; 1388
000066 005064 000022 CLR 22(R4) ; 1389
000072 005064 000020 CLR 20(R4) ; 1390
000076 000445 BR 3$ ; 1383
000100 020027 000012 1$: CMP R0,#12
000104 001020 BNE 2$
000106 012764 000003 000014 MOV #3,14(R4) ; 1395
000114 016164 000022 000022 MOV 22(R1),22(R4) ; 1396
000122 162764 000005 000022 SUB #5,22(R4)
000130 016164 000020 000020 MOV 20(R1),20(R4) ; 1397
000136 062764 000005 000020 ADD #5,20(R4)
000144 000422 BR 3$ ; 1383
000146 020027 000013 2$: CMP R0,#13
000152 001017 BNE 3$
000154 012764 000002 000014 MOV #2,14(R4) ; 1402
000162 016164 000022 000022 MOV 22(R1),22(R4) ; 1403
000170 162764 000011 000022 SUB #11,22(R4)
000176 016164 000020 000020 MOV 20(R1),20(R4) ; 1404
000204 062764 000011 000020 ADD #11,20(R4)
000212 016700 000002G 3$: MOV .CRDAT+2,R0 ; 1407
000216 116064 000044 000011 MOVB 44(R0),11(R4)
000224 004767 000000G JSR PC,$SCHED ; 1408
000230 000207 RTS PC ; 1347
; Routine Size: 77 words, Routine Base: $CODE$ + 2270
; Maximum stack depth per invocation: 6 words
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 33
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (12)
; 1410
; 1411
; 1412
; 1413
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 34
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (13)
; 1414 global routine CI_BLD ( CCB, PDB) :CALL$ novalue = !
; 1415
; 1416 !++
; 1417 ! FUNCTIONAL DESCRIPTION:
; 1418 ! This routine formats an NSP Connect Initiate message.
; 1419 !
; 1420 ! FORMAL PARAMETERS:
; 1421 ! CCB = CCB address
; 1422 ! PDB = Port Data Base Address
; 1423 !
; 1424 ! IMPLICIT INPUTS:
; 1425 ! DB = NSP Data Base Address
; 1426 !
; 1427 ! IMPLICIT OUTPUTS:
; 1428 ! None
; 1429 !
; 1430 ! ROUTINE VALUE:
; 1431 ! COMPLETION CODES:
; 1432 ! None
; 1433 !
; 1434 ! SIDE EFFECTS:
; 1435 ! None
; 1436 !--
; 1437
; 1438 begin
; 1439 map CCB: ref block field(C_fields);
; 1440 map PDB: ref block field(PORT_fields);
; 1441
; 1442 local
; 1443 NDB : ref block field(NODE_fields),
; 1444 PTR;
; 1445
; 1446 PTR = .CCB[C_ADDR];
; 1447 NDB = .PDB[NODElnk];
; 1448 ch$wchar_a( FLG_CI, PTR);
; 1449 ch$wchar_a( 0, PTR);
; 1450 ch$wchar_a( 0, PTR);
; 1451 ch$wchar_a( .PDB[PID], PTR);
; 1452 ch$wchar_a( .PDB[ADDran], PTR);
; 1453 ch$wchar_a( .PDB[FLOWloc_typ]^2 + 1, PTR);
; 1454 ch$wchar_a( 0, PTR);
; 1455 PUT2BYTES( .DB[NSPbuf], PTR);
; 1456
; 1457 CCB[C_CNT] = ch$diff(.PTR, .CCB[C_ADDR]);
; 1458 CCB[C_CHN] = .CCB[C_STK];
; 1459 PDB[DELAYstr_tim] = 1;
; 1460 MAP$( .DB[BIASnodes]);
; 1461 NDB[NDc_xmt] = .NDB[NDc_xmt] + 1;
; 1462 MAP$( .DB[BIASports]);
; 1463 XPT_XMIT( .CCB, .PDB)
; 1464 end;
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 35
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (13)
.SBTTL CI.BLD
000000 016503 000002 CI.BLD::
U.10: MOV 2(R5),R3 ; CCB(.AP.),* 1446
000004 016304 000020 MOV 20(R3),R4 ; *,PTR
000010 016502 000004 MOV 4(R5),R2 ; PDB(.AP.),* 1447
000014 016205 000010 MOV 10(R2),R5 ; *,NDB
000020 112724 000030 MOVB #30,(R4)+ ; *,PTR 1448
000024 105024 CLRB (R4)+ ; PTR 1449
000026 105024 CLRB (R4)+ ; PTR 1450
000030 116224 000004 MOVB 4(R2),(R4)+ ; *,PTR 1451
000034 116224 000005 MOVB 5(R2),(R4)+ ; *,PTR 1452
000040 016200 000040 MOV 40(R2),R0 ; 1453
000044 072027 177772 ASH #-6,R0
000050 042700 177763 BIC #177763,R0
000054 010001 MOV R0,R1
000056 005201 INC R1
000060 110124 MOVB R1,(R4)+ ; *,PTR
000062 105024 CLRB (R4)+ ; PTR 1454
000064 016701 000002G MOV .CRDAT+2,R1 ; 1455
000070 016100 000042 MOV 42(R1),R0 ; *,TEMP
000074 110024 MOVB R0,(R4)+ ; TEMP,PTR
000076 010046 MOV R0,-(SP) ; TEMP,*
000100 000316 SWAB (SP)
000102 112624 MOVB (SP)+,(R4)+ ; *,PTR
000104 010463 000022 MOV R4,22(R3) ; PTR,* 1457
000110 166363 000020 000022 SUB 20(R3),22(R3)
000116 016363 000004 000002 MOV 4(R3),2(R3) ; 1458
000124 012762 000001 000062 MOV #1,62(R2) ; 1459
000132 016167 000030 000000G MOV 30(R1),KISAR6 ; 1460
000140 005265 000032 INC 32(R5) ; *(NDB) 1461
000144 016167 000014 000000G MOV 14(R1),KISAR6 ; 1462
000152 010346 MOV R3,-(SP) ; 1463
000154 010246 MOV R2,-(SP)
000156 004767 000000V JSR PC,U.42
000162 022626 CMP (SP)+,(SP)+ ; 1438
000164 000207 RTS PC ; 1414
; Routine Size: 59 words, Routine Base: $CODE$ + 2522
; Maximum stack depth per invocation: 3 words
; 1465
; 1466
; 1467
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 36
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (14)
; 1468 routine CI_RECVD ( CCB, PDB): novalue = !
; 1469
; 1470 !++
; 1471 ! FUNCTIONAL DESCRIPTION:
; 1472 ! This routine generates a CONNECT-RECIEVED call to Session
; 1473 ! Control.
; 1474 !
; 1475 ! FORMAL PARAMETERS:
; 1476 ! CCB = CCB address
; 1477 ! PDB = Port Data Base address
; 1478 !
; 1479 ! IMPLICIT INPUTS:
; 1480 ! DB = NSP data base address
; 1481
; 1482 !
; 1483 ! IMPLICIT OUTPUTS:
; 1484 ! None
; 1485 !
; 1486 ! ROUTINE VALUE:
; 1487 ! COMPLETION CODES:
; 1488 ! None
; 1489 !
; 1490 ! SIDE EFFECTS:
; 1491 ! None
; 1492 !--
; 1493
; 1494
; 1495 begin
; 1496 map PDB: ref block field(PORT_fields);
; 1497 map CCB: ref block field(C_fields);
; 1498
; 1499 bind STK_CCB = .CCB[C_STK]: block field(C_fields);
; 1500
; 1501 CCB[C_FNC] = FC_RCP;
; 1502 CCB[C_MOD] = N_RCON;
; 1503 CCB[C_LIX] = .PDB[PID];
; 1504 CCB[C_CNT] = .STK_CCB[C_CNT] - CI_SIZE;
; 1505 CCB[C_BIAS] = .STK_CCB[C_BIAS];
; 1506 CCB[C_ADDR] = ch$plus(.STK_CCB[C_ADDR], CI_SIZE);
; 1507 CCB[C_PRM1] = .STK_CCB[C_PRM1];
; 1508 CCB[C_PIX] = .DB[NSPsc_pix];
; 1509 LLCRS$( .CCB);
; 1510 end;
.SBTTL CI.RECVD
000000 004167 000000G ; CI.RECVD
U.11: JSR R1,$SAVE4 ; 1468
000004 016604 000016 MOV 16(SP),R4 ; CCB,* 1499
000010 016401 000004 MOV 4(R4),R1 ; 1495
000014 112764 000016 000012 MOVB #16,12(R4) ; 1501
000022 112764 000004 000013 MOVB #4,13(R4) ; 1502
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 37
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (14)
000030 016600 000014 MOV 14(SP),R0 ; PDB,* 1503
000034 116064 000004 000010 MOVB 4(R0),10(R4)
000042 016164 000022 000022 MOV 22(R1),22(R4) ; 1504
000050 162764 000011 000022 SUB #11,22(R4)
000056 016164 000016 000016 MOV 16(R1),16(R4) ; 1505
000064 016164 000020 000020 MOV 20(R1),20(R4) ; 1506
000072 062764 000011 000020 ADD #11,20(R4)
000100 016164 000024 000024 MOV 24(R1),24(R4) ; 1507
000106 016700 000002G MOV .CRDAT+2,R0 ; 1508
000112 116064 000044 000011 MOVB 44(R0),11(R4)
000120 004767 000000G JSR PC,$SCHED ; 1509
000124 000207 RTS PC ; 1468
; Routine Size: 43 words, Routine Base: $CODE$ + 2710
; Maximum stack depth per invocation: 6 words
; 1511
; 1512
; 1513
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 38
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (15)
; 1514 global routine CI_RCV ( CCB, PDB) :CALL$ novalue = !
; 1515
; 1516 !++
; 1517 ! FUNCTIONAL DESCRIPTION:
; 1518 ! This routine processes a received Connect Initiate message.
; 1519 !
; 1520 ! FORMAL PARAMETERS:
; 1521 ! CCB = CCB address
; 1522 ! PDB = Port Data Base Address
; 1523 !
; 1524 ! IMPLICIT INPUTS:
; 1525 ! DB = NSP Data Base Address
; 1526 !
; 1527 ! IMPLICIT OUTPUTS:
; 1528 ! None
; 1529 !
; 1530 ! ROUTINE VALUE:
; 1531 ! COMPLETION CODES:
; 1532 ! None
; 1533 !
; 1534 ! SIDE EFFECTS:
; 1535 ! None
; 1536 !--
; 1537
; 1538 begin
; 1539 map CCB: ref block field(C_fields);
; 1540 map PDB: ref block field(PORT_fields);
; 1541
; 1542 local
; 1543 GOT_CCB: ref block field(C_fields),
; 1544 CA_CCB: ref block field(C_fields),
; 1545 PTR,
; 1546 temp;
; 1547
; 1548 bind NODE = .DB[ADDRnodes]: blockvector[0, ND_SIZE] field(NODE_fields);
; 1549
; 1550 PTR = ch$plus( .CCB[C_ADDR], 5 );
; 1551
; 1552 MAP$( .CCB[C_BIAS]);
; 1553 DB[SERVICES] = ch$rchar_a( PTR);
; 1554 DB[INFO] = ch$rchar_a( PTR);
; 1555 DB[SEGSIZE] = GET2BYTES( PTR);
; 1556 MAP$( .DB[BIASports]);
; 1557
; 1558 If (.DB[FCOPT] neq FLOWrsv) and
; 1559 (.DB[L_DSTADDR] eql 0 and .DB[H_DSTADDR] eql 0) and
; 1560 ((.DB[SERVICES] and 1) neq 0) and
; 1561 ((.DB[INFO] and %o'374') eql 0)
; 1562 Then
; 1563 begin
; 1564 If not CALL$L( NDB_GET, .CCB, temp)
; 1565 Then
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 39
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (15)
; 1566 begin
; 1567 CALL$L(RESV_PORT, .CCB);
; 1568 return
; 1569 end
; 1570 Else
; 1571 begin
; 1572 bind NDB = .temp: block field(NODE_fields);
; 1573 PDB[NODElnk] = .temp;
; 1574 MAP$( .DB[BIASnodes]);
; 1575 NDB[NDc_rcv] = .NDB[NDc_rcv] + 1;
; 1576 DADD( NDB[NDb_rcv], .CCB[C_CNT] - CI_SIZE);
; 1577 MAP$( .DB[BIASports]);
; 1578 PDB[NODErem] = .CCB[C_PRM1];
; 1579
; 1580 If .PDB[NODErem] eql .DB[NSPself]
; 1581 Then
; 1582 PDB[CHANNEL] = .CCB[C_LIX]
; 1583 Else
; 1584 PDB[CHANNEL] = 0;
; 1585 PDB[PORTstate] = N$SCR;
; 1586 DB[NSPmax] = .DB[NSPmax] + 1;
; 1587 PDB[FLOWtyp_rem] = .DB[FCOPT];
; 1588 PDB[VERSIONrem] = .DB[VER];
; 1589 PDB[L_rem_addr] = .DB[L_SRCADDR];
; 1590 PDB[H_rem_addr] = .DB[H_SRCADDR];
; 1591 PDB[SIZEseg] = MIN( .DB[SEGSIZE], .DB[NSPbuf]);
; 1592
; 1593 If CCB_GET( GOT_CCB, .PDB)
; 1594 Then
; 1595 begin
; 1596 If not CCB_HDR_GET( 0, CA_CCB, .PDB)
; 1597 Then
; 1598 begin
; 1599 CCB_RETRN( .GOT_CCB, .PDB);
; 1600 PDB[BUFFctl] = .CCB;
; 1601 return
; 1602 end;
; 1603 CA_BLD( .CA_CCB, .PDB);
; 1604 GOT_CCB[C_STK] = .CCB;
; 1605 CI_RECVD( .GOT_CCB, .PDB);
; 1606 end
; 1607 Else
; 1608 PDB[BUFFctl] = .CCB;
; 1609
; 1610 end
; 1611 end
; 1612 Else
; 1613 begin
; 1614 CCB[C_FNC] = FC_RCE;
; 1615 LLCRS$( .CCB)
; 1616 end
; 1617 end;
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 40
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (15)
.SBTTL CI.RCV
000000 162706 000006 CI.RCV::
U.12: SUB #6,SP ; 1514
000004 016702 000002G MOV .CRDAT+2,R2 ; 1548
000010 016504 000002 MOV 2(R5),R4 ; CCB(.AP.),* 1550
000014 016400 000020 MOV 20(R4),R0 ; *,PTR
000020 016467 000016 000000G MOV 16(R4),KISAR6 ; 1552
000026 012703 000070 MOV #70,R3 ; 1553
000032 060203 ADD R2,R3
000034 062700 000005 ADD #5,R0 ; *,PTR
000040 112013 MOVB (R0)+,(R3) ; PTR,*
000042 112062 000072 MOVB (R0)+,72(R2) ; PTR,* 1554
000046 105001 CLRB R1 ; TEMP 1555
000050 152001 BISB (R0)+,R1 ; PTR,TEMP
000052 010146 MOV R1,-(SP) ; TEMP,*
000054 112066 000001 MOVB (R0)+,1(SP) ; PTR,*
000060 012601 MOV (SP)+,R1 ; *,TEMP
000062 010162 000066 MOV R1,66(R2) ; TEMP,*
000066 016267 000014 000000G MOV 14(R2),KISAR6 ; 1556
000074 012700 000014 MOV #14,R0 ; 1558
000100 141300 BICB (R3),R0
000102 001410 BEQ 1$
000104 105762 000053 TSTB 53(R2) ; 1559
000110 001013 BNE 4$
000112 105762 000054 TSTB 54(R2)
000116 001010 BNE 4$
000120 132713 000001 BITB #1,(R3) ; 1560
000124 001002 1$: BNE 3$
000126 000167 000466 2$: JMP 13$
000132 132762 000374 000072 3$: BITB #374,72(R2) ; 1561
000140 001372 4$: BNE 2$
000142 012746 000006 MOV #6,-(SP) ; 1564
000146 060616 ADD SP,(SP) ; TEMP,*
000150 010446 MOV R4,-(SP)
000152 012746 000002 MOV #2,-(SP)
000156 012746 000000V MOV #U.30,-(SP)
000162 004767 000000G JSR PC,$CALL
000166 062706 000010 ADD #10,SP
000172 006000 ROR R0
000174 103410 BLO 5$
000176 010446 MOV R4,-(SP) ; 1567
000200 012746 000001 MOV #1,-(SP)
000204 012746 000000V MOV #U.34,-(SP)
000210 004767 000000G JSR PC,$CALL
000214 000553 BR 9$ ; 1564
000216 016601 000004 5$: MOV 4(SP),R1 ; TEMP,* 1572
000222 016502 000004 MOV 4(R5),R2 ; PDB(.AP.),* 1573
000226 010162 000010 MOV R1,10(R2)
000232 016700 000002G MOV .CRDAT+2,R0 ; 1574
000236 016067 000030 000000G MOV 30(R0),KISAR6
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 41
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (15)
000244 005261 000030 INC 30(R1) ; 1575
000250 010146 MOV R1,-(SP) ; 1576
000252 062716 000010 ADD #10,(SP)
000256 016446 000022 MOV 22(R4),-(SP)
000262 162716 000011 SUB #11,(SP)
000266 004767 000000V JSR PC,U.20
000272 016701 000002G MOV .CRDAT+2,R1 ; 1577
000276 016167 000014 000000G MOV 14(R1),KISAR6
000304 016462 000024 000002 MOV 24(R4),2(R2) ; 1578
000312 026261 000002 000002 CMP 2(R2),2(R1) ; 1580
000320 001004 BNE 6$
000322 116462 000010 000001 MOVB 10(R4),1(R2) ; 1582
000330 000402 BR 7$ ; 1580
000332 105062 000001 6$: CLRB 1(R2) ; 1584
000336 112712 000002 7$: MOVB #2,(R2) ; 1585
000342 005261 000012 INC 12(R1) ; 1586
000346 116100 000070 MOVB 70(R1),R0 ; 1587
000352 072027 000011 ASH #11,R0
000356 042700 163777 BIC #163777,R0
000362 042762 014000 000040 BIC #14000,40(R2)
000370 050062 000040 BIS R0,40(R2)
000374 116100 000072 MOVB 72(R1),R0 ; 1588
000400 006300 ASL R0
000402 006300 ASL R0
000404 042700 177763 BIC #177763,R0
000410 142762 000014 000042 BICB #14,42(R2)
000416 150062 000042 BISB R0,42(R2)
000422 116162 000055 000006 MOVB 55(R1),6(R2) ; 1589
000430 116162 000056 000007 MOVB 56(R1),7(R2) ; 1590
000436 016100 000066 MOV 66(R1),R0 ; 1591
000442 020061 000042 CMP R0,42(R1)
000446 003402 BLE 8$
000450 016100 000042 MOV 42(R1),R0
000454 010062 000072 8$: MOV R0,72(R2)
000460 012716 000006 MOV #6,(SP) ; 1593
000464 060616 ADD SP,(SP) ; GOT.CCB,*
000466 010246 MOV R2,-(SP)
000470 004767 175640 JSR PC,U.16
000474 005726 TST (SP)+
000476 006000 ROR R0
000500 103043 BCC 11$
000502 005016 CLR (SP) ; 1596
000504 012746 000006 MOV #6,-(SP)
000510 060616 ADD SP,(SP) ; CA.CCB,*
000512 010246 MOV R2,-(SP)
000514 004767 175436 JSR PC,U.15
000520 022626 CMP (SP)+,(SP)+
000522 006000 ROR R0
000524 103412 BLO 10$
000526 016616 000006 MOV 6(SP),(SP) ; GOT.CCB,* 1599
000532 010246 MOV R2,-(SP)
000534 004767 175710 JSR PC,U.17
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 42
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (15)
000540 010462 000050 MOV R4,50(R2) ; 1600
000544 062706 000006 9$: ADD #6,SP ; 1596
000550 000430 BR 14$ ; 1598
000552 016616 000004 10$: MOV 4(SP),(SP) ; CA.CCB,* 1603
000556 010246 MOV R2,-(SP)
000560 004767 174302 JSR PC,U.8
000564 016600 000010 MOV 10(SP),R0 ; GOT.CCB,* 1604
000570 010460 000004 MOV R4,4(R0)
000574 010016 MOV R0,(SP) ; GOT.CCB,* 1605
000576 010246 MOV R2,-(SP)
000600 004767 177046 JSR PC,U.11
000604 022626 CMP (SP)+,(SP)+ ; 1595
000606 000402 BR 12$ ; 1593
000610 010462 000050 11$: MOV R4,50(R2) ; 1608
000614 022626 12$: CMP (SP)+,(SP)+ ; 1571
000616 000405 BR 14$ ; 1558
000620 112764 000004 000012 13$: MOVB #4,12(R4) ; 1614
000626 004767 000000G JSR PC,$SCHED ; 1615
000632 062706 000006 14$: ADD #6,SP ; 1514
000636 000207 RTS PC
; Routine Size: 208 words, Routine Base: $CODE$ + 3036
; Maximum stack depth per invocation: 8 words
; 1618
; 1619
; 1620
; 1621
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 43
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (16)
; 1622 routine DADD ( double_word, value ) :novalue = !
; 1623
; 1624 !++
; 1625 ! FUNCTIONAL DESCRIPTION:
; 1626 ! This routine performs double percision arithemitic.
; 1627 !
; 1628 ! FORMAL PARAMETERS:
; 1629 ! DOUBLE_WORD = address to add VALUE to
; 1630 ! VALUE = value to add to DOUBLE_WORD
; 1631 !
; 1632 ! IMPLICIT INPUTS:
; 1633 ! None
; 1634 !
; 1635 ! IMPLICIT OUTPUTS:
; 1636 ! None
; 1637 !
; 1638 ! ROUTINE VALUE:
; 1639 ! COMPLETION CODES:
; 1640 ! None
; 1641 !
; 1642 ! SIDE EFFECTS:
; 1643 ! None
; 1644 !--
; 1645
; 1646
; 1647 begin
; 1648 builtin ROT;
; 1649 map double_word: ref block field(long_word);
; 1650
; 1651 if rot(double_word[low] = .double_word[low] + .value, 1)
; 1652 then
; 1653 begin
; 1654 if rot(double_word[hi] = .double_word[hi] + 1, 1)
; 1655 then
; 1656 begin
; 1657 double_word[low] = -1;
; 1658 double_word[hi] = -1;
; 1659 end
; 1660 end
; 1661 end;
.SBTTL DADD
000000 010146 ; DADD
U.20: MOV R1,-(SP) ; 1622
000002 016601 000006 MOV 6(SP),R1 ; DOUBLE.WORD,* 1651
000006 011100 MOV (R1),R0
000010 066600 000004 ADD 4(SP),R0 ; VALUE,*
000014 010011 MOV R0,(R1)
000016 103013 BCC 1$
000020 016100 000002 MOV 2(R1),R0 ; 1654
000024 062700 000001 ADD #1,R0
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 44
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (16)
000030 010061 000002 MOV R0,2(R1)
000034 103004 BCC 1$
000036 012711 177777 MOV #-1,(R1) ; 1657
000042 011161 000002 MOV (R1),2(R1) ; 1658
000046 012601 1$: MOV (SP)+,R1 ; 1622
000050 000207 RTS PC
; Routine Size: 21 words, Routine Base: $CODE$ + 3676
; Maximum stack depth per invocation: 2 words
; 1662
; 1663
; 1664
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 45
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (17)
; 1665 global routine DC_BLD ( CCB, PDB) :CALL$ novalue = !
; 1666
; 1667 !++
; 1668 ! FUNCTIONAL DESCRIPTION:
; 1669 ! This routine formats an NSP Disconnect Confirm message.
; 1670 !
; 1671 ! FORMAL PARAMETERS:
; 1672 ! CCB = CCB address
; 1673 ! PDB = Port Data Base Address
; 1674 !
; 1675 ! IMPLICIT INPUTS:
; 1676 ! DB = NSP Data Base Address
; 1677 !
; 1678 ! IMPLICIT OUTPUTS:
; 1679 ! None
; 1680 !
; 1681 ! ROUTINE VALUE:
; 1682 ! COMPLETION CODES:
; 1683 ! None
; 1684 !
; 1685 ! SIDE EFFECTS:
; 1686 ! None
; 1687 !--
; 1688
; 1689 begin
; 1690 map CCB: ref block field(C_fields);
; 1691 map PDB: ref block field(PORT_fields);
; 1692
; 1693 local
; 1694 PTR;
; 1695
; 1696 PTR = .CCB[C_ADDR];
; 1697
; 1698 ch$wchar_a( FLG_DC, PTR);
; 1699 ch$wchar_a( .PDB[L_rem_addr], PTR);
; 1700 ch$wchar_a( .PDB[H_rem_addr], PTR);
; 1701 ch$wchar_a( .PDB[PID], PTR);
; 1702 ch$wchar_a( .PDB[ADDran], PTR);
; 1703 ch$wchar_a( 42, PTR);
; 1704 ch$wchar_a( 0, PTR);
; 1705
; 1706 CCB[C_CNT] = ch$diff(.PTR, .CCB[C_ADDR]);
; 1707 PDB[FLAGsnd_dc] = false;
; 1708 XPT_XMIT( .CCB, .PDB)
; 1709 end;
.SBTTL DC.BLD
000000 016501 000002 DC.BLD::
U.21: MOV 2(R5),R1 ; CCB(.AP.),* 1696
000004 016100 000020 MOV 20(R1),R0 ; *,PTR
000010 112720 000110 MOVB #110,(R0)+ ; *,PTR 1698
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 46
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (17)
000014 016505 000004 MOV 4(R5),R5 ; PDB(.AP.),* 1699
000020 116520 000006 MOVB 6(R5),(R0)+ ; *,PTR
000024 116520 000007 MOVB 7(R5),(R0)+ ; *,PTR 1700
000030 116520 000004 MOVB 4(R5),(R0)+ ; *,PTR 1701
000034 116520 000005 MOVB 5(R5),(R0)+ ; *,PTR 1702
000040 112720 000052 MOVB #52,(R0)+ ; *,PTR 1703
000044 105020 CLRB (R0)+ ; PTR 1704
000046 010061 000022 MOV R0,22(R1) ; PTR,* 1706
000052 166161 000020 000022 SUB 20(R1),22(R1)
000060 042765 100000 000040 BIC #100000,40(R5) ; 1707
000066 010146 MOV R1,-(SP) ; 1708
000070 010546 MOV R5,-(SP)
000072 004767 000000V JSR PC,U.42
000076 022626 CMP (SP)+,(SP)+ ; 1689
000100 000207 RTS PC ; 1665
; Routine Size: 33 words, Routine Base: $CODE$ + 3750
; Maximum stack depth per invocation: 3 words
; 1710
; 1711
; 1712
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 47
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (18)
; 1713 global routine DC_RCV ( CCB, PDB ) :CALL$ novalue = !
; 1714
; 1715 !++
; 1716 ! FUNCTIONAL DESCRIPTION:
; 1717 ! This routine processes a received Disconnect Confirm message.
; 1718 !
; 1719 ! FORMAL PARAMETERS:
; 1720 ! CCB = CCB address
; 1721 ! PDB = Port Data Base Address
; 1722 !
; 1723 ! IMPLICIT INPUTS:
; 1724 ! DB = NSP Data Base Address
; 1725 !
; 1726 ! IMPLICIT OUTPUTS:
; 1727 ! None
; 1728 !
; 1729 ! ROUTINE VALUE:
; 1730 ! COMPLETION CODES:
; 1731 ! None
; 1732 !
; 1733 ! SIDE EFFECTS:
; 1734 ! None
; 1735 !--
; 1736
; 1737 begin
; 1738 map CCB: ref block field(C_fields);
; 1739 map PDB: ref block field(PORT_fields);
; 1740
; 1741 local
; 1742 PTR,
; 1743 WK_CCB: ref block field(C_fields);
; 1744
; 1745 PTR = ch$plus( .CCB[C_ADDR], 5 );
; 1746 MAP$( .CCB[C_BIAS]);
; 1747 DB[REASON] = GET2BYTES( PTR);
; 1748 MAP$( .DB[BIASports]);
; 1749
; 1750 Selectone .DB[REASON] of
; 1751 Set
; 1752 [1]:
; 1753
; 1754 begin
; 1755 PDB[PORTstate] = N$SNR;
; 1756 If CCB_GET( WK_CCB, .PDB)
; 1757 Then
; 1758 begin
; 1759 WK_CCB[C_STK] = .CCB;
; 1760 C_STSE( .WK_CCB, .PDB);
; 1761 return
; 1762 end
; 1763 Else
; 1764 begin
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 48
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (18)
; 1765 If .PDB[BUFFctl] eql 0
; 1766 Then
; 1767 begin
; 1768 PDB[BUFFctl] = .CCB;
; 1769 return
; 1770 end;
; 1771 end;
; 1772 end;
; 1773 [41]:
; 1774 begin
; 1775 If .PDB[PORTstate] eql N$SCC or
; 1776 .PDB[PORTstate] eql N$SRUN or
; 1777 .PDB[PORTstate] eql N$SDR or
; 1778 .PDB[PORTstate] eql N$SDI
; 1779 Then
; 1780 begin
; 1781 PDB[PORTstate] = N$SCN;
; 1782 PDB[TIMERcon] = 0;
; 1783 PDB[TIMERdat] = 0;
; 1784 PDB[TIMERoth] = 0;
; 1785 If .PDB[CONFIDENCE]
; 1786 Then
; 1787 begin
; 1788 If CCB_GET( WK_CCB, .PDB)
; 1789 Then
; 1790 CALL$L( NSP_CONFIDENCE, .WK_CCB, .PDB)
; 1791 Else
; 1792 begin
; 1793 If .PDB[BUFFctl] eql 0
; 1794 Then
; 1795 begin
; 1796 PDB[BUFFctl] = .CCB;
; 1797 return
; 1798 end;
; 1799
; 1800 end;
; 1801 end;
; 1802 end;
; 1803 CALL$L( FLUSH_QUEUES, .PDB, N$EABR);
; 1804 end;
; 1805 [42]:
; 1806
; 1807 begin
; 1808 If .PDB[PORTstate] eql N$SDR or
; 1809 .PDB[PORTstate] eql N$SDI or
; 1810 .PDB[PORTstate] eql N$SDIC
; 1811 Then
; 1812 begin
; 1813 If .PDB[PORTstate] eql N$SDR
; 1814 Then
; 1815 PDB[PORTstate] = N$SDRC
; 1816 Else
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 49
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (18)
; 1817 PDB[PORTstate] = N$SDIC;
; 1818 PDB[TIMERcon] = 0;
; 1819 UPDATE_DELAY( .PDB);
; 1820
; 1821 If CMQRM$( PDB[MSG_queue], WK_CCB)
; 1822 Then
; 1823 begin
; 1824 WK_CCB[C_STS] = N$SSUC;
; 1825 WK_CCB[C_FNC] = FC_XCP;
; 1826 LLCRS$( .WK_CCB)
; 1827 end;
; 1828 end;
; 1829 end;
; 1830 [otherwise]:
; 1831
; 1832 begin
; 1833 If .PDB[VERSIONrem] eql V3_1
; 1834 Then
; 1835 begin
; 1836 If .PDB[PORTstate] eql N$SCI
; 1837 Then
; 1838 begin
; 1839 PDB[PORTstate] = N$SRJ;
; 1840 UPDATE_DELAY( .PDB);
; 1841
; 1842 If CCB_GET( WK_CCB, .PDB)
; 1843 Then
; 1844 begin
; 1845 WK_CCB[C_STK] = .CCB;
; 1846 C_STSE( .WK_CCB, .PDB);
; 1847 return
; 1848 end
; 1849 Else
; 1850 begin
; 1851 If .PDB[BUFFctl] eql 0
; 1852 Then
; 1853 begin
; 1854 PDB[BUFFctl] = .CCB;
; 1855 return
; 1856 end;
; 1857 end
; 1858 end
; 1859 Else
; 1860 begin
; 1861 If .PDB[PORTstate] eql N$SCC or
; 1862 .PDB[PORTstate] eql N$SRUN or
; 1863 .PDB[PORTstate] eql N$SDR or
; 1864 .PDB[PORTstate] eql N$SDI
; 1865 Then
; 1866 begin
; 1867 PDB[PORTstate] = N$SCN;
; 1868 PDB[TIMERcon] = 0;
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 50
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (18)
; 1869 PDB[TIMERdat] = 0;
; 1870 PDB[TIMERoth] = 0;
; 1871 If .PDB[CONFIDENCE]
; 1872 Then
; 1873 begin
; 1874 If CCB_GET( WK_CCB, .PDB)
; 1875 Then
; 1876 CALL$L( NSP_CONFIDENCE, .WK_CCB, .PDB)
; 1877 Else
; 1878 begin
; 1879 If .PDB[BUFFctl] eql 0
; 1880 Then
; 1881 begin
; 1882 PDB[BUFFctl] = .CCB;
; 1883 return
; 1884 end;
; 1885 end;
; 1886 end;
; 1887 end;
; 1888 end;
; 1889 CALL$L( FLUSH_QUEUES, .PDB, N$EABR);
; 1890 end;
; 1891 end;
; 1892 Tes;
; 1893 CCB[C_FNC] = FC_RCE;
; 1894 LLCRS$( .CCB)
; 1895 end;
.SBTTL DC.RCV
000000 005746 DC.RCV::
U.22: TST -(SP) ; 1713
000002 016501 000002 MOV 2(R5),R1 ; CCB(.AP.),* 1745
000006 016100 000020 MOV 20(R1),R0 ; *,PTR
000012 016167 000016 000000G MOV 16(R1),KISAR6 ; 1746
000020 016704 000002G MOV .CRDAT+2,R4 ; 1747
000024 062700 000005 ADD #5,R0 ; *,PTR
000030 105003 CLRB R3 ; TEMP
000032 152003 BISB (R0)+,R3 ; PTR,TEMP
000034 010346 MOV R3,-(SP) ; TEMP,*
000036 112066 000001 MOVB (R0)+,1(SP) ; PTR,*
000042 012603 MOV (SP)+,R3 ; *,TEMP
000044 010364 000064 MOV R3,64(R4) ; TEMP,*
000050 010400 MOV R4,R0 ; DB,* 1748
000052 016067 000014 000000G MOV 14(R0),KISAR6
000060 010300 MOV R3,R0 ; 1750
000062 020027 000001 CMP R0,#1
000066 001026 BNE 2$
000070 016503 000004 MOV 4(R5),R3 ; PDB(.AP.),* 1755
000074 112713 000007 MOVB #7,(R3)
000100 012746 000002 MOV #2,-(SP) ; 1756
000104 060616 ADD SP,(SP) ; WK.CCB,*
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 51
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (18)
000106 010346 MOV R3,-(SP)
000110 004767 175204 JSR PC,U.16
000114 022626 CMP (SP)+,(SP)+
000116 006000 ROR R0
000120 103005 BCC 1$
000122 011600 MOV (SP),R0 ; WK.CCB,* 1759
000124 010160 000004 MOV R1,4(R0)
000130 010046 MOV R0,-(SP) ; WK.CCB,* 1760
000132 000576 BR 14$
000134 005763 000050 1$: TST 50(R3) ; 1765
000140 001144 BNE 13$
000142 000452 BR 5$ ; 1768
000144 020027 000051 2$: CMP R0,#51 ; 1750
000150 001052 BNE 6$
000152 016503 000004 MOV 4(R5),R3 ; PDB(.AP.),* 1775
000156 121327 000005 CMPB (R3),#5
000162 001411 BEQ 3$
000164 121327 000013 CMPB (R3),#13 ; 1776
000170 001406 BEQ 3$
000172 121327 000003 CMPB (R3),#3 ; 1777
000176 001403 BEQ 3$
000200 121327 000014 CMPB (R3),#14 ; 1778
000204 001167 BNE 18$
000206 112713 000020 3$: MOVB #20,(R3) ; 1781
000212 005063 000016 CLR 16(R3) ; 1782
000216 005063 000012 CLR 12(R3) ; 1783
000222 005063 000014 CLR 14(R3) ; 1784
000226 131363 000042 BITB (R3),42(R3) ; 1785
000232 001554 BEQ 18$
000234 012746 000002 MOV #2,-(SP) ; 1788
000240 060616 ADD SP,(SP) ; WK.CCB,*
000242 010346 MOV R3,-(SP)
000244 004767 175050 JSR PC,U.16
000250 022626 CMP (SP)+,(SP)+
000252 006000 ROR R0
000254 103002 BHIS 4$ ; 1790
000256 000167 000404 JMP 22$
000262 005763 000050 4$: TST 50(R3) ; 1793
000266 001152 BNE 20$
000270 010163 000050 5$: MOV R1,50(R3) ; 1796
000274 000531 BR 16$ ; 1795
000276 020027 000052 6$: CMP R0,#52 ; 1750
000302 001053 BNE 12$
000304 016503 000004 MOV 4(R5),R3 ; PDB(.AP.),* 1808
000310 005000 CLR R0
000312 121327 000003 CMPB (R3),#3
000316 001002 BNE 7$
000320 005200 INC R0
000322 000406 BR 8$
000324 121327 000014 7$: CMPB (R3),#14 ; 1809
000330 001403 BEQ 8$
000332 121327 000015 CMPB (R3),#15 ; 1810
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 52
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (18)
000336 001045 BNE 13$
000340 006000 8$: ROR R0 ; 1813
000342 103003 BCC 9$
000344 112713 000004 MOVB #4,(R3) ; 1815
000350 000402 BR 10$ ; 1813
000352 112713 000015 9$: MOVB #15,(R3) ; 1817
000356 005063 000016 10$: CLR 16(R3) ; 1818
000362 010346 MOV R3,-(SP) ; 1819
000364 004767 000000V JSR PC,U.41
000370 062703 000102 ADD #102,R3 ; 1821
000374 004767 000000G JSR PC,$CMQRM
000400 103412 BCS 11$
000402 010466 000002 MOV R4,2(SP) ; $MCB$R4,WK.CCB
000406 012764 000001 000014 MOV #1,14(R4) ; 1824
000414 112764 000014 000012 MOVB #14,12(R4) ; 1825
000422 004767 000000G JSR PC,$SCHED ; 1826
000426 005726 11$: TST (SP)+ ; 1812
000430 000554 BR 25$ ; 1750
000432 016503 000004 12$: MOV 4(R5),R3 ; PDB(.AP.),* 1833
000436 116300 000042 MOVB 42(R3),R0
000442 042700 177763 BIC #177763,R0
000446 020027 000004 CMP R0,#4
000452 001143 13$: BNE 25$
000454 121327 000006 CMPB (R3),#6 ; 1836
000460 001042 BNE 19$
000462 112713 000012 MOVB #12,(R3) ; 1839
000466 010346 MOV R3,-(SP) ; 1840
000470 004767 000000V JSR PC,U.41
000474 012716 000002 MOV #2,(SP) ; 1842
000500 060616 ADD SP,(SP) ; WK.CCB,*
000502 010346 MOV R3,-(SP)
000504 004767 174610 JSR PC,U.16
000510 005726 TST (SP)+
000512 006000 ROR R0
000514 103012 BCC 15$
000516 016600 000002 MOV 2(SP),R0 ; WK.CCB,* 1845
000522 010160 000004 MOV R1,4(R0)
000526 010016 MOV R0,(SP) ; WK.CCB,* 1846
000530 010346 14$: MOV R3,-(SP)
000532 004767 175460 JSR PC,U.19
000536 022626 CMP (SP)+,(SP)+ ; 1842
000540 000516 BR 26$ ; 1844
000542 012700 000050 15$: MOV #50,R0 ; 1851
000546 060300 ADD R3,R0
000550 005710 TST (R0)
000552 001003 BNE 17$
000554 010110 MOV R1,(R0) ; 1854
000556 005726 TST (SP)+ ; 1851
000560 000506 16$: BR 26$ ; 1853
000562 005726 17$: TST (SP)+ ; 1838
000564 000463 18$: BR 24$ ; 1836
000566 121327 000005 19$: CMPB (R3),#5 ; 1861
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 53
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (18)
000572 001411 BEQ 21$
000574 121327 000013 CMPB (R3),#13 ; 1862
000600 001406 BEQ 21$
000602 121327 000003 CMPB (R3),#3 ; 1863
000606 001403 BEQ 21$
000610 121327 000014 CMPB (R3),#14 ; 1864
000614 001047 20$: BNE 24$
000616 112713 000020 21$: MOVB #20,(R3) ; 1867
000622 005063 000016 CLR 16(R3) ; 1868
000626 005063 000012 CLR 12(R3) ; 1869
000632 005063 000014 CLR 14(R3) ; 1870
000636 131363 000042 BITB (R3),42(R3) ; 1871
000642 001434 BEQ 24$
000644 012746 000002 MOV #2,-(SP) ; 1874
000650 060616 ADD SP,(SP) ; WK.CCB,*
000652 010346 MOV R3,-(SP)
000654 004767 174440 JSR PC,U.16
000660 022626 CMP (SP)+,(SP)+
000662 006000 ROR R0
000664 103014 BCC 23$
000666 010346 22$: MOV R3,-(SP) ; 1876
000670 016646 000002 MOV 2(SP),-(SP) ; WK.CCB,*
000674 012746 000002 MOV #2,-(SP)
000700 012746 000000V MOV #U.33,-(SP)
000704 004767 000000G JSR PC,$CALL
000710 062706 000010 ADD #10,SP
000714 000407 BR 24$ ; 1874
000716 012700 000050 23$: MOV #50,R0 ; 1879
000722 060300 ADD R3,R0
000724 005710 TST (R0)
000726 001002 BNE 24$
000730 010110 MOV R1,(R0) ; 1882
000732 000421 BR 26$ ; 1881
000734 012746 177773 24$: MOV #-5,-(SP) ; 1889
000740 010346 MOV R3,-(SP)
000742 012746 000002 MOV #2,-(SP)
000746 012746 000000V MOV #U.29,-(SP)
000752 004767 000000G JSR PC,$CALL
000756 062706 000010 ADD #10,SP ; 1835
000762 112761 000004 000012 25$: MOVB #4,12(R1) ; 1893
000770 010104 MOV R1,R4 ; 1894
000772 004767 000000G JSR PC,$SCHED
000776 005726 26$: TST (SP)+ ; 1713
001000 000207 RTS PC
; Routine Size: 257 words, Routine Base: $CODE$ + 4052
; Maximum stack depth per invocation: 6 words
; 1896
; 1897
; 1898
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 54
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (18)
; 1899
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 55
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (19)
; 1900 global routine DI_BLD ( CCB, PDB) :CALL$ novalue =!
; 1901
; 1902 !++
; 1903 ! FUNCTIONAL DESCRIPTION:
; 1904 ! This routine formats an NSP Disconnect Initiate message.
; 1905 !
; 1906 ! FORMAL PARAMETERS:
; 1907 ! CCB = CCB address
; 1908 ! PDB = Port Data Base Address
; 1909 !
; 1910 ! IMPLICIT INPUTS:
; 1911 ! DB = NSP Data Base Address
; 1912 !
; 1913 ! IMPLICIT OUTPUTS:
; 1914 ! None
; 1915 !
; 1916 ! ROUTINE VALUE:
; 1917 ! COMPLETION CODES:
; 1918 ! None
; 1919 !
; 1920 ! SIDE EFFECTS:
; 1921 ! None
; 1922 !--
; 1923
; 1924 begin
; 1925 map CCB: ref block field(C_fields);
; 1926 map PDB: ref block field(PORT_fields);
; 1927
; 1928 local
; 1929 PTR;
; 1930
; 1931 PTR = .CCB[C_ADDR];
; 1932
; 1933 CCB[C_CHN] = .CCB[C_STK];
; 1934
; 1935 ch$wchar_a( FLG_DI, PTR);
; 1936 ch$wchar_a( .PDB[L_rem_addr], PTR);
; 1937 ch$wchar_a( .PDB[H_rem_addr], PTR);
; 1938 ch$wchar_a( .PDB[PID], PTR);
; 1939 ch$wchar_a( .PDB[ADDran], PTR);
; 1940
; 1941 CCB[C_CNT] = ch$diff(.PTR, .CCB[C_ADDR]);
; 1942
; 1943 If .PDB[DELAYstr_tim] eql 0
; 1944 Then
; 1945 PDB[DELAYstr_tim] = 1;
; 1946 XPT_XMIT( .CCB, .PDB)
; 1947 end;
.SBTTL DI.BLD
000000 016500 000002 DI.BLD::
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 56
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (19)
U.23: MOV 2(R5),R0 ; CCB(.AP.),* 1931
000004 016002 000020 MOV 20(R0),R2 ; *,PTR
000010 016060 000004 000002 MOV 4(R0),2(R0) ; 1933
000016 112722 000070 MOVB #70,(R2)+ ; *,PTR 1935
000022 016501 000004 MOV 4(R5),R1 ; PDB(.AP.),* 1936
000026 116122 000006 MOVB 6(R1),(R2)+ ; *,PTR
000032 116122 000007 MOVB 7(R1),(R2)+ ; *,PTR 1937
000036 116122 000004 MOVB 4(R1),(R2)+ ; *,PTR 1938
000042 116122 000005 MOVB 5(R1),(R2)+ ; *,PTR 1939
000046 010260 000022 MOV R2,22(R0) ; PTR,* 1941
000052 166060 000020 000022 SUB 20(R0),22(R0)
000060 012705 000062 MOV #62,R5 ; 1943
000064 060105 ADD R1,R5
000066 005715 TST (R5)
000070 001002 BNE 1$
000072 012715 000001 MOV #1,(R5) ; 1945
000076 010046 1$: MOV R0,-(SP) ; 1946
000100 010146 MOV R1,-(SP)
000102 004767 000000V JSR PC,U.42
000106 022626 CMP (SP)+,(SP)+ ; 1924
000110 000207 RTS PC ; 1900
; Routine Size: 37 words, Routine Base: $CODE$ + 5054
; Maximum stack depth per invocation: 3 words
; 1948
; 1949
; 1950
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 57
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (20)
; 1951 global routine DI_RCV ( CCB, PDB ) :CALL$ novalue = !
; 1952
; 1953 !++
; 1954 ! FUNCTIONAL DESCRIPTION:
; 1955 ! This routine processes a received Disconnect Initiate message.
; 1956 !
; 1957 ! FORMAL PARAMETERS:
; 1958 ! CCB = CCB address
; 1959 ! PDB = Port Data Base Address
; 1960 !
; 1961 ! IMPLICIT INPUTS:
; 1962 ! DB = NSP Data Base Address
; 1963 !
; 1964 ! IMPLICIT OUTPUTS:
; 1965 ! None
; 1966 !
; 1967 ! ROUTINE VALUE:
; 1968 ! COMPLETION CODES:
; 1969 ! None
; 1970 !
; 1971 ! SIDE EFFECTS:
; 1972 ! None
; 1973 !--
; 1974
; 1975 begin
; 1976 map CCB: ref block field(C_fields);
; 1977 map PDB: ref block field(PORT_fields);
; 1978
; 1979 local
; 1980 NDB : ref block field(NODE_fields),
; 1981 NO_RCE,
; 1982 WK_CCB: ref block field(C_fields);
; 1983
; 1984 NO_RCE = false;
; 1985 NDB = .PDB[NODElnk];
; 1986
; 1987 If .PDB[BUFFctl] neq 0
; 1988 Then
; 1989 begin
; 1990 CCB[C_FNC] = FC_RCE;
; 1991 LLCRS$( .CCB);
; 1992 return
; 1993 end;
; 1994
; 1995 Selectone .PDB[PORTstate] of
; 1996 Set
; 1997
; 1998 [N$SDI]:
; 1999 begin
; 2000 PDB[PORTstate] = N$SDIC;
; 2001 PDB[DELAYstr_tim] = 0;
; 2002 PDB[TIMERcon] = 0;
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 58
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (20)
; 2003 CALL$L( FLUSH_QUEUES, .PDB, N$EABR);
; 2004 end;
; 2005
; 2006 [N$SCI, N$SCD, N$SRUN]:
; 2007 begin
; 2008 If .PDB[PORTstate] eql N$SCI
; 2009 Then
; 2010 UPDATE_DELAY( .PDB);
; 2011 If .PDB[PORTstate] eql N$SCI or
; 2012 .PDB[PORTstate] eql N$SCD
; 2013 Then
; 2014 begin
; 2015 PDB[PORTstate] = N$SRJ;
; 2016 PDB[L_rem_addr] = .DB[L_SRCADDR];
; 2017 PDB[H_rem_addr] = .DB[H_SRCADDR];
; 2018 end;
; 2019 If .PDB[PORTstate] eql N$SRUN
; 2020 Then
; 2021 begin
; 2022 PDB[PORTstate] = N$SDN;
; 2023 CALL$L( FLUSH_QUEUES, .PDB, N$EABR);
; 2024 PDB[DELAYstr_tim] = 0;
; 2025 PDB[TIMERdat] = 0;
; 2026 PDB[TIMERoth] = 0;
; 2027 end;
; 2028 MAP$( .DB[BIASnodes]);
; 2029 DADD( NDB[NDb_rcv], .CCB[C_CNT] - DI_SIZE);
; 2030 MAP$( .DB[BIASports]);
; 2031
; 2032 If CCB_GET( WK_CCB, .PDB)
; 2033 Then
; 2034 begin
; 2035 WK_CCB[C_STK] = .CCB;
; 2036
; 2037 If .PDB[PORTstate] eql N$SRJ
; 2038 Then
; 2039 C_STSE( .WK_CCB, .PDB)
; 2040 Else
; 2041 DSC_RECVD( .WK_CCB, .PDB);
; 2042 end
; 2043 Else
; 2044 PDB[BUFFctl] = .CCB;
; 2045 NO_RCE = true;
; 2046 end;
; 2047 Tes;
; 2048
; 2049 If .PDB[PORTstate] eql N$SDN or
; 2050 .PDB[PORTstate] eql N$SRJ or
; 2051 .PDB[PORTstate] eql N$SDIC
; 2052 Then
; 2053 begin
; 2054 If CCB_HDR_GET( 0, WK_CCB, .PDB)
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 59
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (20)
; 2055 Then
; 2056 CALL$L(DC_BLD, .WK_CCB, .PDB)
; 2057 Else
; 2058 PDB[FLAGsnd_dc] = true
; 2059 end;
; 2060
; 2061 If .NO_RCE eql false
; 2062 Then
; 2063 begin
; 2064 CCB[C_FNC] = FC_RCE;
; 2065 LLCRS$( .CCB)
; 2066 end;
; 2067 end;
.SBTTL DI.RCV
000000 005746 DI.RCV::
U.24: TST -(SP) ; 1951
000002 005046 CLR -(SP) ; NO.RCE 1984
000004 016502 000004 MOV 4(R5),R2 ; PDB(.AP.),* 1985
000010 016201 000010 MOV 10(R2),R1 ; *,NDB
000014 012703 000050 MOV #50,R3 ; 1987
000020 060203 ADD R2,R3
000022 005713 TST (R3)
000024 001402 BEQ 1$ ; 1990
000026 000167 000510 JMP 18$
000032 121227 000014 1$: CMPB (R2),#14 ; 1995
000036 001021 BNE 2$
000040 112712 000015 MOVB #15,(R2) ; 2000
000044 005062 000062 CLR 62(R2) ; 2001
000050 005062 000016 CLR 16(R2) ; 2002
000054 012746 177773 MOV #-5,-(SP) ; 2003
000060 010246 MOV R2,-(SP)
000062 012746 000002 MOV #2,-(SP)
000066 012746 000000V MOV #U.29,-(SP)
000072 004767 000000G JSR PC,$CALL
000076 022626 CMP (SP)+,(SP)+
000100 000552 BR 13$ ; 1999
000102 121227 000006 2$: CMPB (R2),#6 ; 1995
000106 001411 BEQ 4$
000110 121227 000011 CMPB (R2),#11
000114 001403 BEQ 3$
000116 121227 000013 CMPB (R2),#13
000122 001142 BNE 14$
000124 121227 000006 3$: CMPB (R2),#6 ; 2008
000130 001007 BNE 5$
000132 010246 4$: MOV R2,-(SP) ; 2010
000134 004767 000000V JSR PC,U.41
000140 005726 TST (SP)+
000142 121227 000006 CMPB (R2),#6 ; 2011
000146 001403 BEQ 6$
000150 121227 000011 5$: CMPB (R2),#11 ; 2012
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 60
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (20)
000154 001012 BNE 7$
000156 112712 000012 6$: MOVB #12,(R2) ; 2015
000162 016700 000002G MOV .CRDAT+2,R0 ; 2016
000166 116062 000055 000006 MOVB 55(R0),6(R2)
000174 116062 000056 000007 MOVB 56(R0),7(R2) ; 2017
000202 121227 000013 7$: CMPB (R2),#13 ; 2019
000206 001023 BNE 8$
000210 112712 000016 MOVB #16,(R2) ; 2022
000214 012746 177773 MOV #-5,-(SP) ; 2023
000220 010246 MOV R2,-(SP)
000222 012746 000002 MOV #2,-(SP)
000226 012746 000000V MOV #U.29,-(SP)
000232 004767 000000G JSR PC,$CALL
000236 005062 000062 CLR 62(R2) ; 2024
000242 005062 000012 CLR 12(R2) ; 2025
000246 005062 000014 CLR 14(R2) ; 2026
000252 062706 000010 ADD #10,SP ; 2021
000256 016700 000002G 8$: MOV .CRDAT+2,R0 ; 2028
000262 016067 000030 000000G MOV 30(R0),KISAR6
000270 010146 MOV R1,-(SP) ; NDB,* 2029
000272 062716 000010 ADD #10,(SP)
000276 016504 000002 MOV 2(R5),R4 ; CCB(.AP.),*
000302 016446 000022 MOV 22(R4),-(SP)
000306 162716 000005 SUB #5,(SP)
000312 004767 176172 JSR PC,U.20
000316 016700 000002G MOV .CRDAT+2,R0 ; 2030
000322 016067 000014 000000G MOV 14(R0),KISAR6
000330 012716 000006 MOV #6,(SP) ; 2032
000334 060616 ADD SP,(SP) ; WK.CCB,*
000336 010246 MOV R2,-(SP)
000340 004767 173640 JSR PC,U.16
000344 005726 TST (SP)+
000346 006000 ROR R0
000350 103022 BCC 11$
000352 016600 000006 MOV 6(SP),R0 ; WK.CCB,* 2035
000356 010460 000004 MOV R4,4(R0)
000362 121227 000012 CMPB (R2),#12 ; 2037
000366 001005 BNE 9$
000370 010016 MOV R0,(SP) ; 2039
000372 010246 MOV R2,-(SP)
000374 004767 174502 JSR PC,U.19
000400 000404 BR 10$ ; 2037
000402 010016 9$: MOV R0,(SP) ; 2041
000404 010246 MOV R2,-(SP)
000406 004767 000000V JSR PC,U.25
000412 005726 10$: TST (SP)+ ; 2034
000414 000401 BR 12$ ; 2032
000416 010413 11$: MOV R4,(R3) ; 2044
000420 012766 000001 000004 12$: MOV #1,4(SP) ; *,NO.RCE 2045
000426 022626 13$: CMP (SP)+,(SP)+ ; 2007
000430 121227 000016 14$: CMPB (R2),#16 ; 2049
000434 001406 BEQ 15$
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 61
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (20)
000436 121227 000012 CMPB (R2),#12 ; 2050
000442 001403 BEQ 15$
000444 121227 000015 CMPB (R2),#15 ; 2051
000450 001032 BNE 17$
000452 005046 15$: CLR -(SP) ; 2054
000454 012746 000006 MOV #6,-(SP)
000460 060616 ADD SP,(SP) ; WK.CCB,*
000462 010246 MOV R2,-(SP)
000464 004767 173336 JSR PC,U.15
000470 062706 000006 ADD #6,SP
000474 006000 ROR R0
000476 103014 BCC 16$
000500 010246 MOV R2,-(SP) ; 2056
000502 016646 000004 MOV 4(SP),-(SP) ; WK.CCB,*
000506 012746 000002 MOV #2,-(SP)
000512 012746 003750' MOV #DC.BLD,-(SP)
000516 004767 000000G JSR PC,$CALL
000522 062706 000010 ADD #10,SP
000526 000403 BR 17$ ; 2053
000530 052762 100000 000040 16$: BIS #100000,40(R2) ; 2058
000536 005716 17$: TST (SP) ; NO.RCE 2061
000540 001010 BNE 19$
000542 016500 000002 18$: MOV 2(R5),R0 ; CCB(.AP.),* 2064
000546 112760 000004 000012 MOVB #4,12(R0)
000554 010004 MOV R0,R4 ; 2065
000556 004767 000000G JSR PC,$SCHED
000562 022626 19$: CMP (SP)+,(SP)+ ; 1951
000564 000207 RTS PC
; Routine Size: 187 words, Routine Base: $CODE$ + 5166
; Maximum stack depth per invocation: 7 words
; 2068
; 2069
; 2070
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 62
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (21)
; 2071 routine DSC_RECVD ( CCB, PDB): novalue = !
; 2072
; 2073 !++
; 2074 ! FUNCTIONAL DESCRIPTION:
; 2075 ! This routine generates a DISCONNECT-RECIEVED call to Session
; 2076 ! Control.
; 2077 !
; 2078 ! FORMAL PARAMETERS:
; 2079 ! CCB = CCB address
; 2080 ! PDB = Port Data Base address
; 2081 !
; 2082 ! IMPLICIT INPUTS:
; 2083 ! DB = NSP data base address
; 2084 !
; 2085 ! IMPLICIT OUTPUTS:
; 2086 ! None
; 2087 !
; 2088 ! ROUTINE VALUE:
; 2089 ! COMPLETION CODES:
; 2090 ! None
; 2091 !
; 2092 ! SIDE EFFECTS:
; 2093 ! None
; 2094 !--
; 2095
; 2096
; 2097 begin
; 2098 map PDB: ref block field(PORT_fields);
; 2099 map CCB: ref block field(C_fields);
; 2100
; 2101 bind STK_CCB = .CCB[C_STK]: block field(C_fields);
; 2102
; 2103 CCB[C_FNC] = FC_RCP;
; 2104 CCB[C_MOD] = N_RDSC;
; 2105 CCB[C_LIX] = .PDB[PID];
; 2106 CCB[C_BIAS] = .STK_CCB[C_BIAS];
; 2107 CCB[C_CNT] = .STK_CCB[C_CNT] - DI_SIZE;
; 2108 CCB[C_ADDR] = ch$plus(.STK_CCB[C_ADDR], DI_SIZE);
; 2109 CCB[C_PIX] = .DB[NSPsc_pix];
; 2110 LLCRS$( .CCB);
; 2111 end;
.SBTTL DSC.RECVD
000000 004167 000000G ; DSC.RECVD
U.25: JSR R1,$SAVE4 ; 2071
000004 016604 000016 MOV 16(SP),R4 ; CCB,* 2101
000010 016401 000004 MOV 4(R4),R1 ; 2097
000014 112764 000016 000012 MOVB #16,12(R4) ; 2103
000022 112764 000006 000013 MOVB #6,13(R4) ; 2104
000030 016600 000014 MOV 14(SP),R0 ; PDB,* 2105
000034 116064 000004 000010 MOVB 4(R0),10(R4)
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 63
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (21)
000042 016164 000016 000016 MOV 16(R1),16(R4) ; 2106
000050 016164 000022 000022 MOV 22(R1),22(R4) ; 2107
000056 162764 000005 000022 SUB #5,22(R4)
000064 016164 000020 000020 MOV 20(R1),20(R4) ; 2108
000072 062764 000005 000020 ADD #5,20(R4)
000100 016700 000002G MOV .CRDAT+2,R0 ; 2109
000104 116064 000044 000011 MOVB 44(R0),11(R4)
000112 004767 000000G JSR PC,$SCHED ; 2110
000116 000207 RTS PC ; 2071
; Routine Size: 40 words, Routine Base: $CODE$ + 5754
; Maximum stack depth per invocation: 6 words
; 2112
; 2113
; 2114
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 64
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (22)
; 2115 global routine EVENT_LOG ( type, aux, PDB, CCB) : CALL$ novalue = !
; 2116
; 2117 !++
; 2118 ! FUNCTIONAL DESCRIPTION:
; 2119 ! This routine logs events.
; 2120 !
; 2121 ! FORMAL PARAMETERS:
; 2122 ! type = event type to log
; 2123 ! aux = auxillary data required to log event
; 2124 ! PDB = Port data base address
; 2125 ! CCB = CCB address
; 2126 !
; 2127 ! IMPLICIT INPUTS:
; 2128 ! DB = NSP data base address
; 2129 !
; 2130 ! IMPLICIT OUTPUTS:
; 2131 ! None
; 2132 !
; 2133 ! ROUTINE VALUE:
; 2134 ! COMPLETION CODES:
; 2135 ! None
; 2136 !
; 2137 ! SIDE EFFECTS:
; 2138 ! None
; 2139 !--
; 2140
; 2141
; 2142 begin
; 2143 map CCB: ref block field(C_fields);
; 2144 map PDB: ref block field(PORT_fields);
; 2145
; 2146 local
; 2147 save_bias,
; 2148 temp;
; 2149
; 2150 SMAP$( save_bias);
; 2151 MAP$( .CCB[C_BIAS]);
; 2152 $NM_LOG_BEGIN();
; 2153
; 2154 Case .type from invmsg to invflw of
; 2155 Set
; 2156 [invmsg]:
; 2157 begin
; 2158 PARAMETER_HI( 0, 12, .CCB[C_ADDR]);
; 2159 end;
; 2160
; 2161 [invflw]:
; 2162 begin
; 2163 PARAMETER_HI( 0, 12, .CCB[C_ADDR]);
; 2164 PARAMETER_DS_1( 1, aux);
; 2165 end;
; 2166 Tes;
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 65
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (22)
; 2167 $NM_LOG_END((.type + NSP_class_event^6), 0);
; 2168 MAP$( .save_bias);
; 2169 end;
.GLOBL $NLBEG, $DPHI, $DPDS1, $NLEND
.SBTTL EVENT.LOG
000000 016703 000000G EVENT.LOG::
U.26: MOV KISAR6,R3 ; *,SAVE.BIAS 2150
000004 016500 000010 MOV 10(R5),R0 ; CCB(.AP.),* 2151
000010 016067 000016 000000G MOV 16(R0),KISAR6
000016 004767 000000G JSR PC,$NLBEG ; 2152
000022 016502 000010 MOV 10(R5),R2 ; CCB(.AP.),* 2158
000026 016500 000002 MOV 2(R5),R0 ; TYPE(.AP.),* 2154
000032 006300 ASL R0
000034 066007 000000' ADD P.AAA(R0),PC ; Case dispatch
000040 005046 1$: CLR -(SP) ; 2158
000042 012700 000014 MOV #14,R0
000046 016201 000020 MOV 20(R2),R1
000052 004767 000000G JSR PC,$DPHI
000056 000415 BR 3$ ; 2154
000060 005046 2$: CLR -(SP) ; 2163
000062 012700 000014 MOV #14,R0
000066 016201 000020 MOV 20(R2),R1
000072 004767 000000G JSR PC,$DPHI
000076 012716 000001 MOV #1,(SP) ; 2164
000102 116500 000004 MOVB 4(R5),R0 ; AUX(.AP.),*
000106 004767 000000G JSR PC,$DPDS1
000112 016500 000002 3$: MOV 2(R5),R0 ; TYPE(.AP.),* 2167
000116 062700 000300 ADD #300,R0
000122 005001 CLR R1
000124 004767 000000G JSR PC,$NLEND
000130 010367 000000G MOV R3,KISAR6 ; SAVE.BIAS,* 2168
000134 005726 TST (SP)+ ; 2142
000136 000207 RTS PC ; 2115
; Routine Size: 48 words, Routine Base: $CODE$ + 6074
; Maximum stack depth per invocation: 2 words
000000 .PSECT $PLIT$, RO , D
P.AAA: ; CASE Table for EVENT.LOG+0034 2154
000000 000000 .WORD 0 ; [1$]
000002 000020 .WORD 20 ; [2$]
; 2170
; 2171
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 66
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (22)
; 2172
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 67
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (23)
; 2173 global routine FCCTL ( CCB, FCM): CALL$ novalue =
; 2174
; 2175 !++
; 2176 ! FUNCTIONAL DESCRIPTION:
; 2177 ! This routine is activated by a control request from
; 2178 ! Network Management.
; 2179 !
; 2180 ! FORMAL PARAMETERS:
; 2181 ! CCB CCB to pass to handler routine
; 2182 ! FCM Function code modifier (Must be FM_NM)
; 2183 !
; 2184 ! IMPLICIT INPUTS:
; 2185 ! CCB Contents
; 2186 ! DB Data base address
; 2187 !
; 2188 ! IMPLICIT OUTPUTS:
; 2189 ! None
; 2190 !
; 2191 ! ROUTINE VALUE:
; 2192 ! COMPLETION CODES:
; 2193 ! None
; 2194 !
; 2195 ! SIDE EFFECTS:
; 2196 ! None
; 2197 !--
; 2198
; 2199 begin
; 2200 map CCB: ref block field (C_NM_FIELDS);
; 2201
; 2202 local
; 2203 STATUS;
; 2204
; 2205 MAP$( .DB[BIASnodes]);
; 2206 STATUS =
; 2207 begin
; 2208 if .FCM neq FM_NM
; 2209 then $NM$ERR_MPE
; 2210 else
; 2211 begin
; 2212 case .CCB [C_NM_ENTITY] from NMX$ENT_lo to NMX$ENT_hi of
; 2213 set
; 2214 [NMX$ENT_nod]: ! NM fnc for node parameter
; 2215 begin
; 2216 case .CCB [C_NM_FUNC] from NMX$FNC_lo to NMX$FNC_hi of
; 2217 set ! *** NODE ***
; 2218 [NMX$FNC_set]:
; 2219 SET_NODE_PARMS ( .CCB); ! Set parameters
; 2220 [NMX$FNC_zro]:
; 2221 ZERO_NODE_COUNTERS( .CCB); ! Zero counters
; 2222
; 2223 [NMX$FNC_sho]:
; 2224 SHOW_NODE_ITEMS ( .CCB); ! Show selected items
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 68
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (23)
; 2225 [NMX$FNC_szc]:
; 2226 SHOW_ZERO_NODE_COUNTERS( .CCB); ! Zero and show counters
; 2227 [NMX$FNC_ret]:
; 2228 RETURN_NODE_LIST ( .CCB); ! Return selected items
; 2229 [inrange, outrange]:
; 2230 $NM$ERR_MPE;
; 2231 tes
; 2232 end;
; 2233
; 2234 [inrange, outrange]:
; 2235 $NM$ERR_MPE;
; 2236 tes
; 2237 end
; 2238 end;
; 2239
; 2240 CCB[C_FNC] = FC_CCP;
; 2241 CCB[C_STS] = .STATUS;
; 2242 LLCRS$( .CCB);
; 2243 end;
.SBTTL FCCTL
006234 .PSECT $CODE$, RO
000000 016700 000002G FCCTL::
U.27: MOV .CRDAT+2,R0 ; 2205
000004 016067 000030 000000G MOV 30(R0),KISAR6
000012 026527 000004 000006 CMP 4(R5),#6 ; FCM(.AP.),* 2208
000020 001034 BNE 3$ ; 2207
000022 016500 000002 MOV 2(R5),R0 ; CCB(.AP.),* 2212
000026 016004 000024 MOV 24(R0),R4 ; 2211
000032 072427 177770 ASH #-10,R4
000036 042704 177760 BIC #177760,R4
000042 005304 DEC R4
000044 020427 000004 CMP R4,#4
000050 101020 BHI 3$
000052 006304 ASL R4
000054 066407 000004' ADD P.AAB(R4),PC ; Case dispatch
000060 000414 1$: BR 3$
000062 116001 000024 2$: MOVB 24(R0),R1 ; 2215
000066 006201 ASR R1
000070 042701 177600 BIC #177600,R1
000074 005301 DEC R1
000076 020127 000005 CMP R1,#5
000102 101003 BHI 3$
000104 006301 ASL R1
000106 066107 000016' ADD P.AAC(R1),PC ; Case dispatch
000112 012700 177773 3$: MOV #-5,R0 ; *,STATUS
000116 000424 BR 10$
000120 010046 4$: MOV R0,-(SP) ; 2219
000122 004767 000000V JSR PC,U.36
000126 000417 BR 9$
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 69
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (23)
000130 010046 5$: MOV R0,-(SP) ; 2221
000132 004767 000000V JSR PC,U.39
000136 000413 BR 9$
000140 010046 6$: MOV R0,-(SP) ; 2224
000142 004767 000000V JSR PC,U.37
000146 000407 BR 9$
000150 010046 7$: MOV R0,-(SP) ; 2226
000152 004767 000000V JSR PC,U.40
000156 000403 BR 9$
000160 010046 8$: MOV R0,-(SP) ; 2228
000162 004767 000000V JSR PC,U.35
000166 005726 9$: TST (SP)+
000170 016504 000002 10$: MOV 2(R5),R4 ; CCB(.AP.),* 2240
000174 112764 000022 000012 MOVB #22,12(R4)
000202 010064 000014 MOV R0,14(R4) ; STATUS,* 2241
000206 004767 000000G JSR PC,$SCHED ; 2242
000212 000207 RTS PC ; 2173
; Routine Size: 70 words, Routine Base: $CODE$ + 6234
; Maximum stack depth per invocation: 2 words
000004 .PSECT $PLIT$, RO , D
P.AAB: ; CASE Table for FCCTL+0054 2211
000004 000002 .WORD 2 ; [2$]
000006 000032 .WORD 32 ; [3$]
000010 000032 .WORD 32 ; [3$]
000012 000032 .WORD 32 ; [3$]
000014 000032 .WORD 32 ; [3$]
P.AAC: ; CASE Table for FCCTL+0106 2215
000016 000006 .WORD 6 ; [4$]
000020 000000 .WORD 0 ; [3$]
000022 000016 .WORD 16 ; [5$]
000024 000026 .WORD 26 ; [6$]
000026 000036 .WORD 36 ; [7$]
000030 000046 .WORD 46 ; [8$]
; 2244
; 2245
; 2246
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 70
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (24)
; 2247 routine FIND_NDB ( NODEADDR): =
; 2248
; 2249 !++
; 2250 ! FUNCTIONAL DESCRIPTION:
; 2251 ! Locate the NDB for the Node addressed by NM_ENT in NMPAR
; 2252 !
; 2253 ! FORMAL PARAMETERS:
; 2254 ! NODEADDR Address to return NDB address
; 2255 !
; 2256 ! IMPLICIT INPUTS:
; 2257 ! DB Data base address
; 2258 ! PARBLK & NMPAR inputs, as pointed at by CCB.
; 2259 !
; 2260 ! IMPLICIT OUTPUTS:
; 2261 ! None
; 2262 !
; 2263 ! ROUTINE VALUE:
; 2264 ! Operation status code
; 2265 !
; 2266 ! COMPLETION CODES:
; 2267 ! None
; 2268 !
; 2269 !
; 2270 ! SIDE EFFECTS:
; 2271 ! None
; 2272 !--
; 2273
; 2274 begin
; 2275 bind NODE = .DB[ADDRnodes]: blockvector[ 0, ND_SIZE] field( NODE_fields);
; 2276 If ..NODEADDR eql 0 then return false;
; 2277 Incr j from 0 to (.DB[NSPt_nodes] -1) do
; 2278 begin
; 2279 bind NDB = NODE[ .j, 0, 0, 0, 0]: block field(NODE_fields);
; 2280 If .NDB[NDaddr] eql ..NODEADDR
; 2281 Then
; 2282 begin
; 2283 .NODEADDR = NDB;
; 2284 return true
; 2285 end
; 2286 end;
; 2287 false
; 2288 end;
.SBTTL FIND.NDB
006450 .PSECT $CODE$, RO
000000 004167 000000G ; FIND.NDB
U.28: JSR R1,$SAVE4 ; 2247
000004 016703 000002G MOV .CRDAT+2,R3 ; 2275
000010 016604 000014 MOV 14(SP),R4 ; NODEADDR,* 2276
000014 005714 TST (R4)
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 71
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (24)
000016 001422 BEQ 4$
000020 010300 MOV R3,R0 ; DB,* 2277
000022 005002 CLR R2 ; J
000024 000414 BR 3$
000026 010201 1$: MOV R2,R1 ; J,* 2279
000030 070127 000042 MUL #42,R1
000034 066301 000032 ADD 32(R3),R1
000040 021114 CMP (R1),(R4) ; 2280
000042 001004 BNE 2$
000044 010114 MOV R1,(R4) ; 2283
000046 012700 000001 MOV #1,R0 ; 2282
000052 000207 RTS PC
000054 005202 2$: INC R2 ; J 2277
000056 020260 000036 3$: CMP R2,36(R0) ; J,*
000062 002761 BLT 1$
000064 005000 4$: CLR R0 ; 2247
000066 000207 RTS PC
; Routine Size: 28 words, Routine Base: $CODE$ + 6450
; Maximum stack depth per invocation: 6 words
; 2289
; 2290
; 2291
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 72
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (25)
; 2292 global routine FLUSH_QUEUES ( PDB, status_code) : CALL$ novalue = !
; 2293
; 2294 !++
; 2295 ! FUNCTIONAL DESCRIPTION:
; 2296 ! This routine flushes all of NSP's processing queues.
; 2297 !
; 2298 ! FORMAL PARAMETERS:
; 2299 ! PDB = Port Data Base address
; 2300 ! STATUS_CODE = Code to return to Session Control
; 2301 !
; 2302 ! IMPLICIT INPUTS:
; 2303 ! DB = NSP data base address
; 2304 !
; 2305 ! IMPLICIT OUTPUTS:
; 2306 ! None
; 2307 !
; 2308 ! ROUTINE VALUE:
; 2309 ! COMPLETION CODES:
; 2310 ! None
; 2311 !
; 2312 ! SIDE EFFECTS:
; 2313 ! None
; 2314 !--
; 2315
; 2316
; 2317 begin
; 2318 map PDB: ref block field(PORT_fields);
; 2319
; 2320
; 2321 local
; 2322 RTN_CCB: ref block field(C_fields),
; 2323 STK_CCB: ref block field(C_fields);
; 2324
; 2325 While CMQRM$(PDB[INT_queue], rtn_ccb) do
; 2326 begin
; 2327 RTN_CCB[C_STS] = .status_code;
; 2328 RTN_CCB[C_FNC] = FC_XCP;
; 2329 LLCRS$( .RTN_CCB)
; 2330 end;
; 2331
; 2332 If .PDB[BUFFrcv_int] neq 0
; 2333 Then
; 2334 begin
; 2335 RTN_CCB = .PDB[BUFFrcv_int];
; 2336 PDB[BUFFrcv_int] = 0;
; 2337 RTN_CCB[C_FNC] = FC_RCE;
; 2338 LLCRS$( .RTN_CCB)
; 2339 end;
; 2340
; 2341 If .PDB[BUFFctl] neq 0
; 2342 Then
; 2343 begin
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 73
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (25)
; 2344 RTN_CCB = .PDB[BUFFctl];
; 2345 PDB[BUFFctl] = 0;
; 2346 RTN_CCB[C_FNC] = FC_RCE;
; 2347 LLCRS$( .RTN_CCB)
; 2348 end;
; 2349
; 2350 If .PDB[BUFFsync_dsc] neq 0
; 2351 Then
; 2352 begin
; 2353 RTN_CCB = .PDB[BUFFsync_dsc];
; 2354 PDB[BUFFsync_dsc] = 0;
; 2355 RTN_CCB[C_FNC] = FC_XCP;
; 2356 RTN_CCB[C_STS] = .status_code;
; 2357 LLCRS$( .RTN_CCB)
; 2358 end;
; 2359
; 2360 While ( rtn_ccb = .PDB[ACK_queue]) neq 0 do
; 2361 begin
; 2362 PDB[ACK_queue] = .rtn_ccb[C_LNK];
; 2363
; 2364 If (.RTN_CCB[C_PRM3] and N$FCMP) neq 0
; 2365 Then
; 2366 begin
; 2367 STK_CCB = .RTN_CCB[C_STK];
; 2368 STK_CCB[C_STS] = .status_code;
; 2369 STK_CCB[C_FNC] = FC_XCP;
; 2370 LLCRS$( .STK_CCB)
; 2371 end;
; 2372 CCBRT$( .rtn_ccb);
; 2373 PDB[COUNTres] = .PDB[COUNTres] -1
; 2374 end;
; 2375
; 2376 While CMQRM$(PDB[MSG_queue], rtn_ccb) do
; 2377 begin
; 2378 RTN_CCB[C_STS] = .status_code;
; 2379 RTN_CCB[C_FNC] = FC_XCP;
; 2380 LLCRS$( .RTN_CCB)
; 2381 end;
; 2382
; 2383 While CMQRM$(PDB[OTHack_queue], rtn_ccb) do
; 2384 begin
; 2385 RTN_CCB[C_STS] = .status_code;
; 2386 RTN_CCB[C_FNC] = FC_XCP;
; 2387 LLCRS$( .RTN_CCB)
; 2388 end;
; 2389
; 2390 While CMQRM$(PDB[INTR_queue], rtn_ccb) do
; 2391 begin
; 2392 RTN_CCB[C_STS] = .status_code;
; 2393 RTN_CCB[C_FNC] = FC_XCP;
; 2394 LLCRS$( .RTN_CCB)
; 2395 end;
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 74
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (25)
; 2396
; 2397 While CMQRM$(PDB[DATR_queue], rtn_ccb) do
; 2398 begin
; 2399 RTN_CCB[C_STS] = .status_code;
; 2400 RTN_CCB[C_FNC] = FC_XCP;
; 2401 LLCRS$( .RTN_CCB)
; 2402 end;
; 2403
; 2404
; 2405 While CMQRM$(PDB[BUFF_queue], rtn_ccb) do
; 2406 begin
; 2407 RTN_CCB[C_STS] = .status_code;
; 2408 RTN_CCB[C_FNC] = FC_XCP;
; 2409 LLCRS$( .RTN_CCB)
; 2410 end;
; 2411
; 2412 While CMQRM$(PDB[RCVMSG_queue], rtn_ccb) do
; 2413 begin
; 2414 RTN_CCB[C_FNC] = FC_RCE;
; 2415 LLCRS$( .RTN_CCB)
; 2416 end;
; 2417
; 2418 end;
.SBTTL FLUSH.QUEUES
000000 016500 000002 FLUSH.QUEUES::
U.29: MOV 2(R5),R0 ; PDB(.AP.),* 2325
000004 010003 MOV R0,R3
000006 062703 000076 ADD #76,R3
000012 016505 000004 MOV 4(R5),R5 ; STATUS.CODE(.AP.),* 2327
000016 004767 000000G 1$: JSR PC,$CMQRM ; 2325
000022 103411 BCS 2$
000024 010401 MOV R4,R1 ; $MCB$R4,RTN.CCB
000026 010561 000014 MOV R5,14(R1) ; *,*(RTN.CCB) 2327
000032 112761 000014 000012 MOVB #14,12(R1) ; *,*(RTN.CCB) 2328
000040 004767 000000G JSR PC,$SCHED ; 2329
000044 000764 BR 1$ ; 2325
000046 012703 000046 2$: MOV #46,R3 ; 2332
000052 060003 ADD R0,R3
000054 005713 TST (R3)
000056 001410 BEQ 3$
000060 011301 MOV (R3),R1 ; *,RTN.CCB 2335
000062 005013 CLR (R3) ; 2336
000064 112761 000004 000012 MOVB #4,12(R1) ; *,*(RTN.CCB) 2337
000072 010104 MOV R1,R4 ; RTN.CCB,* 2338
000074 004767 000000G JSR PC,$SCHED
000100 012703 000050 3$: MOV #50,R3 ; 2341
000104 060003 ADD R0,R3
000106 005713 TST (R3)
000110 001410 BEQ 4$
000112 011301 MOV (R3),R1 ; *,RTN.CCB 2344
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 75
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (25)
000114 005013 CLR (R3) ; 2345
000116 112761 000004 000012 MOVB #4,12(R1) ; *,*(RTN.CCB) 2346
000124 010104 MOV R1,R4 ; RTN.CCB,* 2347
000126 004767 000000G JSR PC,$SCHED
000132 012703 000044 4$: MOV #44,R3 ; 2350
000136 060003 ADD R0,R3
000140 005713 TST (R3)
000142 001412 BEQ 5$
000144 011301 MOV (R3),R1 ; *,RTN.CCB 2353
000146 005013 CLR (R3) ; 2354
000150 112761 000014 000012 MOVB #14,12(R1) ; *,*(RTN.CCB) 2355
000156 010561 000014 MOV R5,14(R1) ; *,*(RTN.CCB) 2356
000162 010104 MOV R1,R4 ; RTN.CCB,* 2357
000164 004767 000000G JSR PC,$SCHED
000170 016001 000116 5$: MOV 116(R0),R1 ; *,RTN.CCB 2360
000174 001426 BEQ 7$
000176 011160 000116 MOV (R1),116(R0) ; RTN.CCB,* 2362
000202 032761 000004 000030 BIT #4,30(R1) ; *,*(RTN.CCB) 2364
000210 001412 BEQ 6$
000212 016103 000004 MOV 4(R1),R3 ; *(RTN.CCB),STK.CCB 2367
000216 010563 000014 MOV R5,14(R3) ; *,*(STK.CCB) 2368
000222 112763 000014 000012 MOVB #14,12(R3) ; *,*(STK.CCB) 2369
000230 010304 MOV R3,R4 ; STK.CCB,* 2370
000232 004767 000000G JSR PC,$SCHED
000236 010104 6$: MOV R1,R4 ; RTN.CCB,* 2372
000240 004767 000000G JSR PC,$CCBRT
000244 005360 000054 DEC 54(R0) ; 2373
000250 000747 BR 5$ ; 2360
000252 010003 7$: MOV R0,R3 ; 2376
000254 062703 000102 ADD #102,R3
000260 004767 000000G 8$: JSR PC,$CMQRM
000264 103411 BCS 9$
000266 010401 MOV R4,R1 ; $MCB$R4,RTN.CCB
000270 010561 000014 MOV R5,14(R1) ; *,*(RTN.CCB) 2378
000274 112761 000014 000012 MOVB #14,12(R1) ; *,*(RTN.CCB) 2379
000302 004767 000000G JSR PC,$SCHED ; 2380
000306 000764 BR 8$ ; 2376
000310 010003 9$: MOV R0,R3 ; 2383
000312 062703 000122 ADD #122,R3
000316 004767 000000G 10$: JSR PC,$CMQRM
000322 103411 BCS 11$
000324 010401 MOV R4,R1 ; $MCB$R4,RTN.CCB
000326 010561 000014 MOV R5,14(R1) ; *,*(RTN.CCB) 2385
000332 112761 000014 000012 MOVB #14,12(R1) ; *,*(RTN.CCB) 2386
000340 004767 000000G JSR PC,$SCHED ; 2387
000344 000764 BR 10$ ; 2383
000346 010003 11$: MOV R0,R3 ; 2390
000350 062703 000106 ADD #106,R3
000354 004767 000000G 12$: JSR PC,$CMQRM
000360 103411 BCS 13$
000362 010401 MOV R4,R1 ; $MCB$R4,RTN.CCB
000364 010561 000014 MOV R5,14(R1) ; *,*(RTN.CCB) 2392
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 76
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (25)
000370 112761 000014 000012 MOVB #14,12(R1) ; *,*(RTN.CCB) 2393
000376 004767 000000G JSR PC,$SCHED ; 2394
000402 000764 BR 12$ ; 2390
000404 010003 13$: MOV R0,R3 ; 2397
000406 062703 000112 ADD #112,R3
000412 004767 000000G 14$: JSR PC,$CMQRM
000416 103411 BCS 15$
000420 010401 MOV R4,R1 ; $MCB$R4,RTN.CCB
000422 010561 000014 MOV R5,14(R1) ; *,*(RTN.CCB) 2399
000426 112761 000014 000012 MOVB #14,12(R1) ; *,*(RTN.CCB) 2400
000434 004767 000000G JSR PC,$SCHED ; 2401
000440 000764 BR 14$ ; 2397
000442 010003 15$: MOV R0,R3 ; 2405
000444 062703 000130 ADD #130,R3
000450 004767 000000G 16$: JSR PC,$CMQRM
000454 103411 BCS 17$
000456 010401 MOV R4,R1 ; $MCB$R4,RTN.CCB
000460 010561 000014 MOV R5,14(R1) ; *,*(RTN.CCB) 2407
000464 112761 000014 000012 MOVB #14,12(R1) ; *,*(RTN.CCB) 2408
000472 004767 000000G JSR PC,$SCHED ; 2409
000476 000764 BR 16$ ; 2405
000500 062700 000134 17$: ADD #134,R0 ; 2412
000504 010003 18$: MOV R0,R3
000506 004767 000000G JSR PC,$CMQRM
000512 103407 BCS 19$
000514 010401 MOV R4,R1 ; $MCB$R4,RTN.CCB
000516 112761 000004 000012 MOVB #4,12(R1) ; *,*(RTN.CCB) 2414
000524 004767 000000G JSR PC,$SCHED ; 2415
000530 000765 BR 18$ ; 2412
000532 000207 19$: RTS PC ; 2292
; Routine Size: 174 words, Routine Base: $CODE$ + 6540
; Maximum stack depth per invocation: 1 word
; 2419
; 2420
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 77
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (26)
; 2421 global routine NDB_GET ( CCB, RTN_NDB): CALL$ = !
; 2422
; 2423 !++
; 2424 ! FUNCTIONAL DESCRIPTION:
; 2425 ! This routine attempts to find a Node Data Base entry for the node
; 2426 ! in question.
; 2427 !
; 2428 ! FORMAL PARAMETERS:
; 2429 ! CCB = CCB address
; 2430 ! RTN_NDB = address to return found NDB address
; 2431 !
; 2432 ! IMPLICIT INPUTS:
; 2433 ! DB = NSP data base address
; 2434 !
; 2435 ! IMPLICIT OUTPUTS:
; 2436 ! None
; 2437 !
; 2438 ! ROUTINE VALUE:
; 2439 ! COMPLETION CODES:
; 2440 ! None
; 2441 !
; 2442 ! SIDE EFFECTS:
; 2443 ! None
; 2444 !--
; 2445
; 2446
; 2447 begin
; 2448 map CCB: ref block field(C_fields);
; 2449 map RTN_NDB: block field(NODE_fields);
; 2450 label NDB_FOUND, NODE_FOUND;
; 2451 local NNDB: ref block field(NODE_fields),
; 2452 FNDB: ref block field(NODE_fields);
; 2453
; 2454 MAP$ (.DB[BIASnodes]);
; 2455 NNDB = .DB[ADDRnodes];
; 2456 FNDB = 0;
; 2457 NDB_FOUND: begin
; 2458 NODE_FOUND: begin
; 2459
; 2460 decru J from .DB[NSPt_nodes] to 1
; 2461 do begin
; 2462 if .NNDB[NDaddr] eql .CCB[C_PRM1]
; 2463 then leave NODE_FOUND;
; 2464 if (.NNDB[NDactive] eql 0)
; 2465 then begin
; 2466 if (.FNDB eqla 0)
; 2467 then FNDB = .NNDB
; 2468 else if (.FNDB[NDaddr] neq 0)
; 2469 then if (.NNDB[NDaddr] eql 0)
; 2470 then FNDB = .NNDB;
; 2471 end;
; 2472 NNDB = vector[.NNDB,ND_SIZE];
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 78
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (26)
; 2473 end;
; 2474
; 2475 If (NNDB = .FNDB) eqla 0 then leave NDB_FOUND;
; 2476
; 2477 If .NNDB[NDaddr] neq 0
; 2478 Then begin ! Issue "data base reused" event
; 2479 literal event_code = (dbruse + NSP_class_event^6) or %o'100000';
; 2480 $NM_LOG_BEGIN();
; 2481 COUNTER_16_TIME( 0, NNDB[NDtime_zeroed]);
; 2482 COUNTER_32( 600, NNDB[NDb_rcv]);
; 2483 COUNTER_32( 601, NNDB[NDb_xmt]);
; 2484 COUNTER_32( 610, NNDB[NDm_rcv]);
; 2485 COUNTER_32( 611, NNDB[NDm_xmt]);
; 2486 COUNTER_16( 620, NNDB[NDc_rcv]);
; 2487 COUNTER_16( 621, NNDB[NDc_xmt]);
; 2488 COUNTER_16( 630, NNDB[NDtimeout]);
; 2489 COUNTER_16( 640, NNDB[NDc_rej]);
; 2490 COUNTER_16( 700, NNDB[NDactive]);
; 2491 $NM_LOG_END(event_code, .NNDB[NDaddr]);
; 2492 end;
; 2493
; 2494 decru J from ND_SIZE to 1
; 2495 do begin
; 2496 map FNDB: ref vector;
; 2497 FNDB[0] = 0;
; 2498 FNDB = FNDB[1];
; 2499 end;
; 2500
; 2501 $NM_TIME( NNDB[NDtime_zeroed]);
; 2502 NNDB[NDaddr] = .CCB[C_PRM1];
; 2503 end; ! of NODE_FOUND
; 2504
; 2505 NNDB[NDactive] = .NNDB[NDactive] + 1;
; 2506 end; ! of NDB_FOUND
; 2507
; 2508 MAP$( .DB[BIASports]);
; 2509 if (.RTN_NDB = .NNDB) neqa 0 then true else false
; 2510 end;
.GLOBL $DT16, $DC32, $DC16, $ST32
.SBTTL NDB.GET
000000 016700 000002G NDB.GET::
U.30: MOV .CRDAT+2,R0 ; 2454
000004 016067 000030 000000G MOV 30(R0),KISAR6
000012 016004 000032 MOV 32(R0),R4 ; *,NNDB 2455
000016 005003 CLR R3 ; FNDB 2456
000020 016502 000002 MOV 2(R5),R2 ; CCB(.AP.),* 2462
000024 016000 000036 MOV 36(R0),R0 ; *,J 2460
000030 001420 BEQ 4$
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 79
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (26)
000032 021462 000024 1$: CMP (R4),24(R2) ; NNDB,* 2462
000036 001545 BEQ 7$ ; 2463
000040 005764 000002 TST 2(R4) ; *(NNDB) 2464
000044 001007 BNE 3$
000046 005703 TST R3 ; FNDB 2466
000050 001404 BEQ 2$ ; 2467
000052 005713 TST (R3) ; FNDB 2468
000054 001403 BEQ 3$
000056 005714 TST (R4) ; NNDB 2469
000060 001001 BNE 3$
000062 010403 2$: MOV R4,R3 ; NNDB,FNDB 2470
000064 062704 000042 3$: ADD #42,R4 ; *,NNDB 2472
000070 077020 SOB R0,1$ ; J,* 0000
000072 010304 4$: MOV R3,R4 ; FNDB,NNDB 2475
000074 001530 BEQ 8$
000076 005714 TST (R4) ; NNDB 2477
000100 001511 BEQ 5$
000102 004767 000000G JSR PC,$NLBEG ; 2480
000106 012746 140000 MOV #-40000,-(SP) ; 2481
000112 012700 000004 MOV #4,R0
000116 060400 ADD R4,R0 ; NNDB,*
000120 004767 000000G JSR PC,$DT16
000124 012716 161130 MOV #-16650,(SP) ; 2482
000130 012700 000010 MOV #10,R0
000134 060400 ADD R4,R0 ; NNDB,*
000136 004767 000000G JSR PC,$DC32
000142 012716 161131 MOV #-16647,(SP) ; 2483
000146 012700 000014 MOV #14,R0
000152 060400 ADD R4,R0 ; NNDB,*
000154 004767 000000G JSR PC,$DC32
000160 012716 161142 MOV #-16636,(SP) ; 2484
000164 012700 000020 MOV #20,R0
000170 060400 ADD R4,R0 ; NNDB,*
000172 004767 000000G JSR PC,$DC32
000176 012716 161143 MOV #-16635,(SP) ; 2485
000202 012700 000024 MOV #24,R0
000206 060400 ADD R4,R0 ; NNDB,*
000210 004767 000000G JSR PC,$DC32
000214 012716 141154 MOV #-36624,(SP) ; 2486
000220 016400 000030 MOV 30(R4),R0 ; *(NNDB),*
000224 004767 000000G JSR PC,$DC16
000230 012716 141155 MOV #-36623,(SP) ; 2487
000234 016400 000032 MOV 32(R4),R0 ; *(NNDB),*
000240 004767 000000G JSR PC,$DC16
000244 012716 141166 MOV #-36612,(SP) ; 2488
000250 016400 000036 MOV 36(R4),R0 ; *(NNDB),*
000254 004767 000000G JSR PC,$DC16
000260 012716 141200 MOV #-36600,(SP) ; 2489
000264 016400 000034 MOV 34(R4),R0 ; *(NNDB),*
000270 004767 000000G JSR PC,$DC16
000274 012716 141274 MOV #-36504,(SP) ; 2490
000300 016400 000002 MOV 2(R4),R0 ; *(NNDB),*
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 80
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (26)
000304 004767 000000G JSR PC,$DC16
000310 012700 100302 MOV #-77476,R0 ; 2491
000314 011401 MOV (R4),R1 ; NNDB,*
000316 004767 000000G JSR PC,$NLEND
000322 005726 TST (SP)+ ; 2478
000324 012700 000021 5$: MOV #21,R0 ; *,J 2494
000330 005023 6$: CLR (R3)+ ; FNDB 2497
000332 077002 SOB R0,6$ ; J,* 0000
000334 012700 000004 MOV #4,R0 ; 2501
000340 060400 ADD R4,R0 ; NNDB,*
000342 004767 000000G JSR PC,$ST32
000346 016214 000024 MOV 24(R2),(R4) ; *,NNDB 2502
000352 005264 000002 7$: INC 2(R4) ; *(NNDB) 2505
000356 016700 000002G 8$: MOV .CRDAT+2,R0 ; 2508
000362 016067 000014 000000G MOV 14(R0),KISAR6
000370 010475 000004 MOV R4,@4(R5) ; NNDB,RTN.NDB(.AP.) 2509
000374 001403 BEQ 9$
000376 012700 000001 MOV #1,R0
000402 000207 RTS PC
000404 005000 9$: CLR R0
000406 000207 RTS PC ; 2421
; Routine Size: 132 words, Routine Base: $CODE$ + 7274
; Maximum stack depth per invocation: 2 words
; 2511
; 2512
; 2513
; 2514
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 81
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (27)
; 2515 global routine NL_BLD ( CCB, RDB) : CALL$ novalue = !
; 2516
; 2517 !++
; 2518 ! FUNCTIONAL DESCRIPTION:
; 2519 ! This routine formats an NSP No Link message.
; 2520 !
; 2521 ! FORMAL PARAMETERS:
; 2522 ! CCB = CCB address
; 2523 ! RDB = Reserved Port Data Base Address
; 2524 !
; 2525 ! IMPLICIT INPUTS:
; 2526 ! DB = NSP Data Base Address
; 2527 !
; 2528 ! IMPLICIT OUTPUTS:
; 2529 ! None
; 2530 !
; 2531 ! ROUTINE VALUE:
; 2532 ! COMPLETION CODES:
; 2533 ! None
; 2534 !
; 2535 ! SIDE EFFECTS:
; 2536 ! None
; 2537 !--
; 2538
; 2539 begin
; 2540 map CCB: ref block field(C_fields);
; 2541 map RDB: ref block field(PORT_fields);
; 2542
; 2543 local
; 2544 PTR;
; 2545
; 2546 PTR = .CCB[C_ADDR];
; 2547
; 2548 ch$wchar_a( FLG_DC, PTR);
; 2549 ch$wchar_a( .RDB[L_rem_addr], PTR);
; 2550 ch$wchar_a( .RDB[H_rem_addr], PTR);
; 2551 ch$wchar_a( .RDB[PID], PTR);
; 2552 ch$wchar_a( .RDB[ADDran], PTR);
; 2553 ch$wchar_a( 41, PTR);
; 2554 ch$wchar_a( 0, PTR);
; 2555
; 2556 CCB[C_CNT] = ch$diff(.PTR, .CCB[C_ADDR]);
; 2557 XPT_XMIT( .CCB, .RDB)
; 2558 end;
.SBTTL NL.BLD
000000 016501 000002 NL.BLD::
U.31: MOV 2(R5),R1 ; CCB(.AP.),* 2546
000004 016100 000020 MOV 20(R1),R0 ; *,PTR
000010 112720 000110 MOVB #110,(R0)+ ; *,PTR 2548
000014 016505 000004 MOV 4(R5),R5 ; RDB(.AP.),* 2549
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 82
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (27)
000020 116520 000006 MOVB 6(R5),(R0)+ ; *,PTR
000024 116520 000007 MOVB 7(R5),(R0)+ ; *,PTR 2550
000030 116520 000004 MOVB 4(R5),(R0)+ ; *,PTR 2551
000034 116520 000005 MOVB 5(R5),(R0)+ ; *,PTR 2552
000040 112720 000051 MOVB #51,(R0)+ ; *,PTR 2553
000044 105020 CLRB (R0)+ ; PTR 2554
000046 010061 000022 MOV R0,22(R1) ; PTR,* 2556
000052 166161 000020 000022 SUB 20(R1),22(R1)
000060 010146 MOV R1,-(SP) ; 2557
000062 010546 MOV R5,-(SP)
000064 004767 000000V JSR PC,U.42
000070 022626 CMP (SP)+,(SP)+ ; 2539
000072 000207 RTS PC ; 2515
; Routine Size: 30 words, Routine Base: $CODE$ + 7704
; Maximum stack depth per invocation: 3 words
; 2559
; 2560
; 2561
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 83
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (28)
; 2562 global routine NR_BLD ( CCB, RDB) : CALL$ novalue = !
; 2563
; 2564 !++
; 2565 ! FUNCTIONAL DESCRIPTION:
; 2566 ! This routine formats an NSP No Resources message.
; 2567 !
; 2568 ! FORMAL PARAMETERS:
; 2569 ! CCB = CCB address
; 2570 ! RDB = Reserved Port Data Base Address
; 2571 !
; 2572 ! IMPLICIT INPUTS:
; 2573 ! DB = NSP Data Base Address
; 2574 !
; 2575 ! IMPLICIT OUTPUTS:
; 2576 ! None
; 2577 !
; 2578 ! ROUTINE VALUE:
; 2579 ! COMPLETION CODES:
; 2580 ! None
; 2581 !
; 2582 ! SIDE EFFECTS:
; 2583 ! None
; 2584 !--
; 2585
; 2586 begin
; 2587 map CCB: ref block field(C_fields);
; 2588 map RDB: ref block field(PORT_fields);
; 2589
; 2590 local
; 2591 PTR;
; 2592
; 2593 PTR = .CCB[C_ADDR];
; 2594
; 2595 ch$wchar_a( FLG_DC, PTR);
; 2596 ch$wchar_a( .RDB[L_rem_addr], PTR);
; 2597 ch$wchar_a( .RDB[H_rem_addr], PTR);
; 2598 ch$wchar_a( .RDB[PID], PTR);
; 2599 ch$wchar_a( .RDB[ADDran], PTR);
; 2600 ch$wchar_a( 1, PTR);
; 2601 ch$wchar_a( 0, PTR);
; 2602
; 2603 CCB[C_CNT] = ch$diff(.PTR, .CCB[C_ADDR]);
; 2604 XPT_XMIT( .CCB, .RDB)
; 2605 end;
.SBTTL NR.BLD
000000 016501 000002 NR.BLD::
U.32: MOV 2(R5),R1 ; CCB(.AP.),* 2593
000004 016100 000020 MOV 20(R1),R0 ; *,PTR
000010 112720 000110 MOVB #110,(R0)+ ; *,PTR 2595
000014 016505 000004 MOV 4(R5),R5 ; RDB(.AP.),* 2596
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 84
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (28)
000020 116520 000006 MOVB 6(R5),(R0)+ ; *,PTR
000024 116520 000007 MOVB 7(R5),(R0)+ ; *,PTR 2597
000030 116520 000004 MOVB 4(R5),(R0)+ ; *,PTR 2598
000034 116520 000005 MOVB 5(R5),(R0)+ ; *,PTR 2599
000040 112720 000001 MOVB #1,(R0)+ ; *,PTR 2600
000044 105020 CLRB (R0)+ ; PTR 2601
000046 010061 000022 MOV R0,22(R1) ; PTR,* 2603
000052 166161 000020 000022 SUB 20(R1),22(R1)
000060 010146 MOV R1,-(SP) ; 2604
000062 010546 MOV R5,-(SP)
000064 004767 000000V JSR PC,U.42
000070 022626 CMP (SP)+,(SP)+ ; 2586
000072 000207 RTS PC ; 2562
; Routine Size: 30 words, Routine Base: $CODE$ + 10000
; Maximum stack depth per invocation: 3 words
; 2606
; 2607
; 2608
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 85
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (29)
; 2609 global routine NSP_CONFIDENCE ( CCB, PDB): CALL$ novalue = !
; 2610
; 2611 !++
; 2612 ! FUNCTIONAL DESCRIPTION:
; 2613 ! This routine generates a CONFIDENCE call to Session Control.
; 2614 !
; 2615 ! FORMAL PARAMETERS:
; 2616 ! CCB = CCB address
; 2617 ! PDB = Port Data Base address
; 2618 !
; 2619 ! IMPLICIT INPUTS:
; 2620 ! DB = NSP data base address
; 2621 !
; 2622 ! IMPLICIT OUTPUTS:
; 2623 ! None
; 2624 !
; 2625 ! ROUTINE VALUE:
; 2626 ! COMPLETION CODES:
; 2627 ! None
; 2628 !
; 2629 ! SIDE EFFECTS:
; 2630 ! None
; 2631 !--
; 2632
; 2633
; 2634 begin
; 2635 map PDB: ref block field(PORT_fields);
; 2636 map CCB: ref block field(C_fields);
; 2637
; 2638 PDB[CONFIDENCE] = false;
; 2639 SIGNAL( NSP$_CFN,.PDB[PID]);
; 2640
; 2641 CCB[C_FNC] = FC_RCP;
; 2642 CCB[C_MOD] = N_SCNF;
; 2643 CCB[C_LIX] = .PDB[PID];
; 2644 CCB[C_STS] = N$ECON;
; 2645 CCB[C_PIX] = .DB[NSPsc_pix];
; 2646 CCB[C_ADDR] = 0;
; 2647 CCB[C_STK] = 0;
; 2648 LLCRS$( .CCB);
; 2649 end;
.SBTTL NSP.CONFIDENCE
000000 016500 000004 NSP.CONFIDENCE::
U.33: MOV 4(R5),R0 ; PDB(.AP.),* 2638
000004 142760 000020 000042 BICB #20,42(R0)
000012 010001 MOV R0,R1 ; 2639
000014 005046 CLR -(SP)
000016 116116 000004 MOVB 4(R1),(SP)
000022 012746 100103 MOV #-77675,-(SP)
000026 012746 000002 MOV #2,-(SP)
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 86
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (29)
000032 004767 000000G JSR PC,$IGNAL
000036 016504 000002 MOV 2(R5),R4 ; CCB(.AP.),* 2641
000042 112764 000016 000012 MOVB #16,12(R4)
000050 105064 000013 CLRB 13(R4) ; 2642
000054 116164 000004 000010 MOVB 4(R1),10(R4) ; 2643
000062 012764 177776 000014 MOV #-2,14(R4) ; 2644
000070 016700 000002G MOV .CRDAT+2,R0 ; 2645
000074 116064 000044 000011 MOVB 44(R0),11(R4)
000102 005064 000020 CLR 20(R4) ; 2646
000106 005064 000004 CLR 4(R4) ; 2647
000112 004767 000000G JSR PC,$SCHED ; 2648
000116 062706 000006 ADD #6,SP ; 2634
000122 000207 RTS PC ; 2609
; Routine Size: 42 words, Routine Base: $CODE$ + 10074
; Maximum stack depth per invocation: 4 words
; 2650
; 2651
; 2652
; 2653
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 87
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (30)
; 2654 global routine RESV_PORT ( CCB ) :CALL$ novalue = !
; 2655
; 2656 !++
; 2657 ! FUNCTIONAL DESCRIPTION:
; 2658 ! This routine is the reserve port process for NSP.
; 2659 !
; 2660 ! FORMAL PARAMETERS:
; 2661 ! CCB = CCB address
; 2662 !
; 2663 ! IMPLICIT INPUTS:
; 2664 ! DB = NSP Data Base Address
; 2665 !
; 2666 ! IMPLICIT OUTPUTS:
; 2667 ! None
; 2668 !
; 2669 ! ROUTINE VALUE:
; 2670 ! COMPLETION CODES:
; 2671 ! None
; 2672 !
; 2673 ! SIDE EFFECTS:
; 2674 ! None
; 2675 !--
; 2676
; 2677 begin
; 2678 map CCB: ref block field(C_fields);
; 2679
; 2680 bind NODE = .DB[ADDRnodes]: blockvector[0, ND_SIZE] field(NODE_fields);
; 2681
; 2682 local
; 2683 RDB: ref block field( PORT_fields),
; 2684 temp;
; 2685
; 2686 bind RPORT = .DB[ADDRresv]: blockvector[0, RDB_size] field(PORT_fields);
; 2687 MAP$( .DB[BIASresv]);
; 2688
; 2689 RDB = (Incr j from 0 to .DB[NSPt_rsv] -1 do
; 2690 begin
; 2691 bind X = RPORT[.j, 0, 0, 0, 0]: block field(PORT_fields);
; 2692
; 2693 If .X[MSGtyp] eql MSG_NONE
; 2694 Then
; 2695 exitloop X
; 2696 end);
; 2697 If .RDB neq -1
; 2698 Then
; 2699 begin
; 2700 MAP$( .DB[BIASnodes]);
; 2701
; 2702 temp = ( Incr j from 0 to .DB[NSPt_nodes] - 1 do
; 2703 begin
; 2704 bind NDB = NODE[ .j, 0, 0, 0, 0]: block field(NODE_fields);
; 2705 If .NDB[NDaddr] eql .CCB[C_PRM1]
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 88
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (30)
; 2706 Then
; 2707 exitloop NDB
; 2708 end);
; 2709 MAP$( .DB[BIASresv]);
; 2710
; 2711 If .temp neq -1
; 2712 Then
; 2713 RDB[NODElnk] = .temp
; 2714 Else
; 2715 RDB[NODElnk] = 0;
; 2716 RDB[NODErem] = .CCB[C_PRM1];
; 2717 RDB[CHANNEL] = .CCB[C_LIX];
; 2718 RDB[L_rem_addr] = .DB[L_SRCADDR];
; 2719 RDB[H_rem_addr] = .DB[H_SRCADDR];
; 2720
; 2721 Selectone .DB[MSGFLG] of
; 2722 Set
; 2723 [FLG_CI]:
; 2724 begin
; 2725 RDB[MSGtyp] = N_RES;
; 2726 RDB[ADDRloc] = 0;
; 2727
; 2728 If .RDB[NODElnk] neq 0
; 2729 Then
; 2730 begin
; 2731 local NDB :ref block field(NODE_fields);
; 2732 NDB = .RDB[NODElnk];
; 2733 MAP$( .DB[BIASnodes]);
; 2734 NDB[NDc_rej] = .NDB[NDc_rej] + 1;
; 2735 MAP$( .DB[BIASresv]);
; 2736 end;
; 2737 If CCB_HDR_GET( 0, temp, -1)
; 2738 Then
; 2739 begin
; 2740 CALL$L( NR_BLD, .temp, .RDB);
; 2741 RDB[MSGtyp] = MSG_NONE;
; 2742 end
; 2743
; 2744 end;
; 2745 [FLG_CC, FLG_DI, FLG_INT, FLG_REQ, FLG_NBEOM, FLG_BOM, FLG_EOM, FLG_BEOM]:
; 2746 begin
; 2747 RDB[MSGtyp] = N_LNK;
; 2748 RDB[PID] = .DB[L_DSTADDR];
; 2749 RDB[ADDran] = .DB[H_DSTADDR];
; 2750
; 2751 If CCB_HDR_GET( 0, temp, -1)
; 2752 Then
; 2753 begin
; 2754 CALL$L(NL_BLD, .temp, .RDB);
; 2755 RDB[MSGtyp] = MSG_NONE;
; 2756 end
; 2757 end
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 89
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (30)
; 2758 Tes;
; 2759 end;
; 2760
; 2761 CCB[C_FNC] = FC_RCE;
; 2762 LLCRS$( .CCB)
; 2763 end;
.SBTTL RESV.PORT
000000 005746 RESV.PORT::
U.34: TST -(SP) ; 2654
000002 016703 000002G MOV .CRDAT+2,R3 ; 2680
000006 016346 000024 MOV 24(R3),-(SP) ; 2687
000012 011667 000000G MOV (SP),KISAR6
000016 005000 CLR R0 ; J 2689
000020 000413 BR 3$
000022 010001 1$: MOV R0,R1 ; J,* 2691
000024 070127 000012 MUL #12,R1
000030 066301 000026 ADD 26(R3),R1
000034 121127 177775 CMPB (R1),#-3 ; 2693
000040 001002 BNE 2$
000042 010102 MOV R1,R2 ; *,RDB 2695
000044 000406 BR 4$
000046 005200 2$: INC R0 ; J 2689
000050 020063 000022 3$: CMP R0,22(R3) ; J,*
000054 002762 BLT 1$
000056 012702 177777 MOV #-1,R2 ; *,RDB
000062 020227 177777 4$: CMP R2,#-1 ; RDB,* 2697
000066 001002 BNE 5$
000070 000167 000444 JMP 15$
000074 016367 000030 000000G 5$: MOV 30(R3),KISAR6 ; 2700
000102 016504 000002 MOV 2(R5),R4 ; CCB(.AP.),* 2705
000106 005000 CLR R0 ; J 2702
000110 000411 BR 7$
000112 010001 6$: MOV R0,R1 ; J,* 2704
000114 070127 000042 MUL #42,R1
000120 066301 000032 ADD 32(R3),R1
000124 021164 000024 CMP (R1),24(R4) ; 2705
000130 001406 BEQ 8$ ; 2707
000132 005200 INC R0 ; J 2702
000134 020063 000036 7$: CMP R0,36(R3) ; J,*
000140 002764 BLT 6$
000142 012701 177777 MOV #-1,R1
000146 010166 000002 8$: MOV R1,2(SP) ; *,TEMP
000152 011667 000000G MOV (SP),KISAR6 ; 2709
000156 012701 000010 MOV #10,R1 ; 2713
000162 060201 ADD R2,R1 ; RDB,*
000164 026627 000002 177777 CMP 2(SP),#-1 ; TEMP,* 2711
000172 001403 BEQ 9$
000174 016611 000002 MOV 2(SP),(R1) ; TEMP,* 2713
000200 000401 BR 10$ ; 2711
000202 005011 9$: CLR (R1) ; 2715
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 90
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (30)
000204 016462 000024 000002 10$: MOV 24(R4),2(R2) ; *,*(RDB) 2716
000212 016504 000002 MOV 2(R5),R4 ; CCB(.AP.),* 2717
000216 116462 000010 000001 MOVB 10(R4),1(R2) ; *,*(RDB)
000224 116362 000055 000006 MOVB 55(R3),6(R2) ; *,*(RDB) 2718
000232 116362 000056 000007 MOVB 56(R3),7(R2) ; *,*(RDB) 2719
000240 005004 CLR R4 ; 2721
000242 156304 000052 BISB 52(R3),R4
000246 020427 000030 CMP R4,#30
000252 001042 BNE 12$
000254 112712 000376 MOVB #376,(R2) ; *,RDB 2725
000260 005062 000004 CLR 4(R2) ; *(RDB) 2726
000264 005711 TST (R1) ; 2728
000266 001410 BEQ 11$
000270 011101 MOV (R1),R1 ; *,NDB 2732
000272 016367 000030 000000G MOV 30(R3),KISAR6 ; 2733
000300 005261 000034 INC 34(R1) ; *(NDB) 2734
000304 011667 000000G MOV (SP),KISAR6 ; 2735
000310 005046 11$: CLR -(SP) ; 2737
000312 012746 000006 MOV #6,-(SP)
000316 060616 ADD SP,(SP) ; TEMP,*
000320 012746 177777 MOV #-1,-(SP)
000324 004767 170444 JSR PC,U.15
000330 062706 000006 ADD #6,SP
000334 006000 ROR R0
000336 103100 BCC 15$
000340 010246 MOV R2,-(SP) ; RDB,* 2740
000342 016646 000004 MOV 4(SP),-(SP) ; TEMP,*
000346 012746 000002 MOV #2,-(SP)
000352 012746 010000' MOV #NR.BLD,-(SP)
000356 000462 BR 14$
000360 005704 12$: TST R4 ; 2721
000362 001425 BEQ 13$
000364 020427 000020 CMP R4,#20
000370 001422 BEQ 13$
000372 020427 000040 CMP R4,#40
000376 001417 BEQ 13$
000400 020427 000050 CMP R4,#50
000404 001414 BEQ 13$
000406 020427 000060 CMP R4,#60
000412 001411 BEQ 13$
000414 020427 000070 CMP R4,#70
000420 001406 BEQ 13$
000422 020427 000100 CMP R4,#100
000426 001403 BEQ 13$
000430 020427 000140 CMP R4,#140
000434 001041 BNE 15$
000436 112712 000377 13$: MOVB #377,(R2) ; *,RDB 2747
000442 116362 000053 000004 MOVB 53(R3),4(R2) ; *,*(RDB) 2748
000450 116362 000054 000005 MOVB 54(R3),5(R2) ; *,*(RDB) 2749
000456 005046 CLR -(SP) ; 2751
000460 012746 000006 MOV #6,-(SP)
000464 060616 ADD SP,(SP) ; TEMP,*
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 91
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (30)
000466 012746 177777 MOV #-1,-(SP)
000472 004767 170276 JSR PC,U.15
000476 062706 000006 ADD #6,SP
000502 006000 ROR R0
000504 103015 BCC 15$
000506 010246 MOV R2,-(SP) ; RDB,* 2754
000510 016646 000004 MOV 4(SP),-(SP) ; TEMP,*
000514 012746 000002 MOV #2,-(SP)
000520 012746 007704' MOV #NL.BLD,-(SP)
000524 004767 000000G 14$: JSR PC,$CALL
000530 112712 000375 MOVB #375,(R2) ; *,RDB 2755
000534 062706 000010 ADD #10,SP ; 2753
000540 016500 000002 15$: MOV 2(R5),R0 ; CCB(.AP.),* 2761
000544 112760 000004 000012 MOVB #4,12(R0)
000552 010004 MOV R0,R4 ; 2762
000554 004767 000000G JSR PC,$SCHED
000560 022626 CMP (SP)+,(SP)+ ; 2654
000562 000207 RTS PC
; Routine Size: 186 words, Routine Base: $CODE$ + 10220
; Maximum stack depth per invocation: 7 words
; 2764
; 2765
; 2766
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 92
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (31)
; 2767 routine RETURN_NODE_LIST ( CCB): =
; 2768
; 2769 !++
; 2770 ! FUNCTIONAL DESCRIPTION:
; 2771 ! Return list of known nodes.
; 2772 !
; 2773 ! FORMAL PARAMETERS:
; 2774 ! CCB CCB address
; 2775 !
; 2776 ! IMPLICIT INPUTS:
; 2777 ! DB Data base address
; 2778 ! PARBLK & NMPAR inputs, as pointed at by CCB.
; 2779 !
; 2780 ! IMPLICIT OUTPUTS:
; 2781 ! None
; 2782 !
; 2783 ! ROUTINE VALUE:
; 2784 ! Operation status code
; 2785 !
; 2786 ! COMPLETION CODES:
; 2787 ! None
; 2788 !
; 2789 !
; 2790 ! SIDE EFFECTS:
; 2791 ! None
; 2792 !--
; 2793
; 2794 begin
; 2795 map
; 2796 CCB: ref block field (C_NM_FIELDS);
; 2797
; 2798
; 2799 bind NODE = .DB[ADDRnodes]: blockvector[ 0, ND_SIZE] field( NODE_fields);
; 2800 local
; 2801 STS,
; 2802 BUF_PTR,
; 2803 BUF_LEN,
; 2804 NODEADDR;
; 2805
; 2806 BUF_PTR = .CCB [C_ADDR];
; 2807 BUF_LEN = .CCB [C_CNT];
; 2808 STS = NM$SUC;
; 2809
; 2810 Incr j from 0 to (.DB[NSPt_nodes] -1) do
; 2811 begin
; 2812 bind NDB = NODE[ .j, 0, 0, 0, 0]: block field(NODE_fields);
; 2813
; 2814 If .NDB[NDaddr] neq 0
; 2815 Then
; 2816 begin
; 2817 IF .BUF_LEN lss 3
; 2818 Then
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 93
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (31)
; 2819 (sts = $NM$ERR_IMF;exitloop);
; 2820 NODEADDR = .NDB[NDaddr];
; 2821 MAP$( .CCB[C_BIAS]);
; 2822 byt$short_string( NODEADDR, BUF_PTR);
; 2823 ch$wchar_a( 0, BUF_PTR);
; 2824 MAP$( .DB[BIASnodes]);
; 2825 BUF_LEN = .BUF_LEN - 3;
; 2826 end;
; 2827 end;
; 2828 CCB[C_CNT] = ch$diff( .BUF_PTR, .CCB[C_ADDR]);
; 2829 return .STS
; 2830 end;
.SBTTL RETURN.NODE.LIST
000000 004167 000000G ; RETURN.NODE.LIST
U.35: JSR R1,$SAVE5 ; 2767
000004 016703 000002G MOV .CRDAT+2,R3 ; 2799
000010 016600 000016 MOV 16(SP),R0 ; CCB,* 2806
000014 016046 000020 MOV 20(R0),-(SP) ; *,BUF.PTR
000020 016005 000022 MOV 22(R0),R5 ; *,BUF.LEN 2807
000024 012702 000001 MOV #1,R2 ; *,STS 2808
000030 010300 MOV R3,R0 ; DB,* 2810
000032 016046 000036 MOV 36(R0),-(SP)
000036 005000 CLR R0 ; J
000040 000451 BR 4$
000042 010001 1$: MOV R0,R1 ; J,* 2812
000044 070127 000042 MUL #42,R1
000050 066301 000032 ADD 32(R3),R1
000054 005711 TST (R1) ; 2814
000056 001441 BEQ 3$
000060 020527 000003 CMP R5,#3 ; BUF.LEN,* 2817
000064 002003 BGE 2$
000066 012702 177776 MOV #-2,R2 ; *,STS 2819
000072 000436 BR 5$
000074 011104 2$: MOV (R1),R4 ; *,NODEADDR 2820
000076 016601 000022 MOV 22(SP),R1 ; CCB,* 2821
000102 016167 000016 000000G MOV 16(R1),KISAR6
000110 010401 MOV R4,R1 ; NODEADDR,NUM 2822
000112 110176 000002 MOVB R1,@2(SP) ; NUM,BUF.PTR
000116 005266 000002 INC 2(SP) ; BUF.PTR
000122 000301 SWAB R1 ; NUM
000124 110176 000002 MOVB R1,@2(SP) ; NUM,BUF.PTR
000130 005266 000002 INC 2(SP) ; BUF.PTR
000134 105076 000002 CLRB @2(SP) ; BUF.PTR 2823
000140 005266 000002 INC 2(SP) ; BUF.PTR
000144 016701 000002G MOV .CRDAT+2,R1 ; 2824
000150 016167 000030 000000G MOV 30(R1),KISAR6
000156 162705 000003 SUB #3,R5 ; *,BUF.LEN 2825
000162 005200 3$: INC R0 ; J 2810
000164 020016 4$: CMP R0,(SP) ; J,*
000166 002725 BLT 1$
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 94
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (31)
000170 016601 000022 5$: MOV 22(SP),R1 ; CCB,* 2828
000174 010103 MOV R1,R3 ; CCB,*
000176 016600 000002 MOV 2(SP),R0 ; BUF.PTR,*
000202 166300 000020 SUB 20(R3),R0
000206 010061 000022 MOV R0,22(R1)
000212 010200 MOV R2,R0 ; STS,* 2794
000214 022626 CMP (SP)+,(SP)+ ; 2767
000216 000207 RTS PC
; Routine Size: 72 words, Routine Base: $CODE$ + 11004
; Maximum stack depth per invocation: 9 words
; 2831
; 2832
; 2833
; 2834
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 95
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (32)
; 2835 routine SET_NODE_PARMS ( CCB): =
; 2836
; 2837 !++
; 2838 ! FUNCTIONAL DESCRIPTION:
; 2839 ! Perform setting of specified node parameter.
; 2840 !
; 2841 ! FORMAL PARAMETERS:
; 2842 ! CCB CCB address
; 2843 !
; 2844 ! IMPLICIT INPUTS:
; 2845 ! DB Data base address
; 2846 ! PARBLK & NMPAR inputs, as pointed at by CCB.
; 2847 !
; 2848 ! IMPLICIT OUTPUTS:
; 2849 ! None
; 2850 !
; 2851 ! ROUTINE VALUE:
; 2852 ! Operation status code
; 2853 !
; 2854 ! COMPLETION CODES:
; 2855 ! None
; 2856 !
; 2857 ! SIDE EFFECTS:
; 2858 ! None
; 2859 !--
; 2860
; 2861 begin
; 2862 map CCB: ref block field (C_NM_FIELDS);
; 2863 local
; 2864 NIX,
; 2865 BUF_PTR,
; 2866 PARM_NUM,
; 2867 TIMER;
; 2868 bind
; 2869 NMP = CCB [C_NM_NMPAR]: ref block field (NMX_NMPAR_FIELDS),
; 2870 NMPAR = NMP [NMX_NMPAR_ENTITY];
; 2871
; 2872
; 2873 BUF_PTR = .CCB [C_ADDR];
; 2874 MAP$ (.CCB [C_BIAS]);
; 2875 byt$string_short (BUF_PTR, PARM_NUM);
; 2876
; 2877 selectone .PARM_NUM of
; 2878 set
; 2879 [502]: ! Set node number
; 2880 begin
; 2881 If not .DB[NSPrunning]
; 2882 Then
; 2883 byt$string_short( BUF_PTR, DB[NSPself])
; 2884 Else
; 2885 return $NM$ERR_CWS
; 2886 end;
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 96
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (32)
; 2887
; 2888 [710]: ! Set max links
; 2889 begin
; 2890 return $NM$ERR_OPF
; 2891 end;
; 2892
; 2893 [720]: ! Set local delay factor
; 2894 begin
; 2895 DB[NSPdelay] = ch$rchar( .BUF_PTR);
; 2896 end;
; 2897
; 2898 [721]: ! Set local delay weight
; 2899 begin
; 2900 DB[NSPweight] = ch$rchar( .BUF_PTR);
; 2901 end;
; 2902
; 2903 [722]: ! Set inactivity timer
; 2904 begin
; 2905 byt$string_short( BUF_PTR, DB[NSPact_tim])
; 2906 end;
; 2907
; 2908 [723]: ! Set retransmission threshold
; 2909 begin
; 2910 byt$string_short( BUF_PTR, DB[NSPretrans])
; 2911 end;
; 2912
; 2913 [otherwise]:
; 2914 return $NM$ERR_UPT
; 2915 tes;
; 2916
; 2917 MAP$( .DB[BIASports]);
; 2918 return NM$SUC
; 2919 end;
.SBTTL SET.NODE.PARMS
000000 004167 000000G ; SET.NODE.PARMS
U.36: JSR R1,$SAVE2 ; 2835
000004 016600 000010 MOV 10(SP),R0 ; CCB,* 2869
000010 016002 000020 MOV 20(R0),R2 ; *,BUF.PTR 2873
000014 016067 000016 000000G MOV 16(R0),KISAR6 ; 2874
000022 112246 MOVB (R2)+,-(SP) ; BUF.PTR,PARM.NUM 2875
000024 112266 000001 MOVB (R2)+,1(SP) ; BUF.PTR,PARM.NUM+1
000030 011600 MOV (SP),R0 ; PARM.NUM,* 2877
000032 020027 000766 CMP R0,#766
000036 001016 BNE 2$
000040 016701 000002G MOV .CRDAT+2,R1 ; 2881
000044 132761 000004 000072 BITB #4,72(R1)
000052 001005 BNE 1$
000054 112261 000002 MOVB (R2)+,2(R1) ; BUF.PTR,* 2883
000060 112261 000003 MOVB (R2)+,3(R1) ; BUF.PTR,*
000064 000460 BR 8$ ; 2880
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 97
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (32)
000066 012700 177765 1$: MOV #-13,R0 ; 2885
000072 000464 BR 9$
000074 020027 001306 2$: CMP R0,#1306 ; 2877
000100 001003 BNE 3$
000102 012700 177747 MOV #-31,R0 ; 2889
000106 000456 BR 9$
000110 020027 001320 3$: CMP R0,#1320 ; 2877
000114 001005 BNE 4$
000116 016701 000002G MOV .CRDAT+2,R1 ; 2895
000122 111261 000006 MOVB (R2),6(R1) ; BUF.PTR,*
000126 000437 BR 8$ ; 2877
000130 020027 001321 4$: CMP R0,#1321
000134 001005 BNE 5$
000136 016701 000002G MOV .CRDAT+2,R1 ; 2900
000142 111261 000007 MOVB (R2),7(R1) ; BUF.PTR,*
000146 000427 BR 8$ ; 2877
000150 020027 001322 5$: CMP R0,#1322
000154 001007 BNE 6$
000156 016700 000002G MOV .CRDAT+2,R0 ; 2905
000162 112260 000004 MOVB (R2)+,4(R0) ; BUF.PTR,*
000166 112260 000005 MOVB (R2)+,5(R0) ; BUF.PTR,*
000172 000415 BR 8$ ; 2877
000174 020027 001323 6$: CMP R0,#1323
000200 001007 BNE 7$
000202 016700 000002G MOV .CRDAT+2,R0 ; 2910
000206 112260 000010 MOVB (R2)+,10(R0) ; BUF.PTR,*
000212 112260 000011 MOVB (R2)+,11(R0) ; BUF.PTR,*
000216 000403 BR 8$ ; 2877
000220 012700 177772 7$: MOV #-6,R0 ; 2914
000224 000407 BR 9$
000226 016700 000002G 8$: MOV .CRDAT+2,R0 ; 2917
000232 016067 000014 000000G MOV 14(R0),KISAR6
000240 012700 000001 MOV #1,R0 ; 2861
000244 005726 9$: TST (SP)+ ; 2835
000246 000207 RTS PC
; Routine Size: 84 words, Routine Base: $CODE$ + 11224
; Maximum stack depth per invocation: 5 words
; 2920
; 2921
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 98
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (33)
; 2922 routine SHOW_NODE_ITEMS ( CCB): =
; 2923
; 2924 !++
; 2925 ! FUNCTIONAL DESCRIPTION:
; 2926 ! Show specified items
; 2927 !
; 2928 ! FORMAL PARAMETERS:
; 2929 ! CCB CCB address
; 2930 !
; 2931 ! IMPLICIT INPUTS:
; 2932 ! PARBLK & NMPAR inputs, as pointed at by CCB.
; 2933 ! DB Data base address
; 2934 !
; 2935 ! IMPLICIT OUTPUTS:
; 2936 ! None
; 2937 !
; 2938 ! ROUTINE VALUE:
; 2939 ! Operation status code
; 2940 !
; 2941 ! COMPLETION CODES:
; 2942 ! None
; 2943 !
; 2944 ! SIDE EFFECTS:
; 2945 ! None
; 2946 !--
; 2947
; 2948 begin
; 2949 map
; 2950 CCB: ref block field (C_NM_FIELDS);
; 2951
; 2952
; 2953 local
; 2954 DAT_LST: ref vector,
; 2955 PARM_NUM,
; 2956 NDB: ref block field(NODE_fields),
; 2957 HOLDIT,
; 2958 STS;
; 2959
; 2960 bind
; 2961 NMP = CCB [C_NM_NMPAR]: ref block field (NMX_NMPAR_FIELDS),
; 2962 NMPAR = NMP [NMX_NMPAR_ENTITY];
; 2963
; 2964 NDB = .NMPAR;
; 2965
; 2966 DAT_LST = (selectone .CCB [C_NM_SELECT] of
; 2967 set
; 2968 [NMX$SEL_cha]:
; 2969 begin
; 2970 if .NMPAR eql .DB[NSPself]
; 2971 then
; 2972 plit (700, 710, 720, 721, 722, 723)
; 2973 else
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 99
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (33)
; 2974 plit( -1)
; 2975 end;
; 2976 [NMX$SEL_sum, NMX$SEL_sta]:
; 2977 plit (600, 601);
; 2978 [otherwise]:
; 2979 plit (-1);
; 2980 tes);
; 2981
; 2982 IF .CCB [C_NM_SELECT] eql NMX$sel_cou
; 2983 Then
; 2984 begin
; 2985 STS = SHOW_NODE_COUNTERS( .CCB );
; 2986 return .STS
; 2987 end;
; 2988
; 2989
; 2990 $NM_RESPONSE_BEGIN( .CCB);
; 2991
; 2992 incr I from 0 to .DAT_LST [-1]-1 do
; 2993 selectone .DAT_LST [.I] of
; 2994 set
; 2995 [-1]: CCB[C_STS] = NM$SUC;
; 2996
; 2997 [600]: ! Active Links to remote
; 2998 begin
; 2999 If .NDB eql .DB[NSPself]
; 3000 Then
; 3001 begin
; 3002 PARAMETER_DU_2( 600, DB[NSPmax]);
; 3003 exitloop
; 3004 end;
; 3005
; 3006 If not FIND_NDB( NDB)
; 3007 Then
; 3008 begin
; 3009 CCB[C_CNT] = 0;
; 3010 return NM$SUC
; 3011 end
; 3012 Else
; 3013 begin
; 3014 PARAMETER_DU_2( 600, NDB[NDACTIVE]);
; 3015 end;
; 3016 end;
; 3017
; 3018 [601]: ! Node Delay
; 3019 begin
; 3020 PARAMETER_DU_2( 601, NDB[NDdelay]);
; 3021 end;
; 3022
; 3023 [700]: ! NSP Version
; 3024 begin
; 3025 bind ralph = uplit(3,2,0): vector;
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 100
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (33)
; 3026 PARAMETER_CM( 700, 3);
; 3027 PARAMETER_DU_1( ,ralph[0]);
; 3028 PARAMETER_DU_1( ,ralph[1]);
; 3029 PARAMETER_DU_1( ,ralph[2]);
; 3030 end;
; 3031
; 3032 [710]: ! Max Links
; 3033 begin
; 3034 PARAMETER_DU_2( 710, DB[NSPtotal]);
; 3035 end;
; 3036
; 3037 [720]: ! NSP Delay
; 3038 begin
; 3039 PARAMETER_DU_1( 720, DB[NSPdelay]);
; 3040 end;
; 3041
; 3042 [721]: ! NSP Weight
; 3043 begin
; 3044 PARAMETER_DU_1( 721, DB[NSPweight]);
; 3045 end;
; 3046
; 3047 [722]: ! NSP Inactivity
; 3048 begin
; 3049 PARAMETER_DU_2( 722, DB[NSPact_tim]);
; 3050 end;
; 3051
; 3052 [723]: ! NSP Retransmit
; 3053 begin
; 3054 PARAMETER_DU_2( 723, DB[NSPretrans]);
; 3055 end;
; 3056
; 3057 Tes;
; 3058
; 3059 $NM_RESPONSE_END( .CCB);
; 3060 return .CCB[C_STS]
; 3061 end;
000032 .PSECT $PLIT$, RO , D
000032 000006 .WORD 6 ; Plit count word
000034 001274 P.AAD: .WORD 1274
000036 001306 .WORD 1306
000040 001320 .WORD 1320
000042 001321 .WORD 1321
000044 001322 .WORD 1322
000046 001323 .WORD 1323
000050 000001 .WORD 1 ; Plit count word
000052 177777 P.AAE: .WORD -1
000054 000002 .WORD 2 ; Plit count word
000056 001130 P.AAF: .WORD 1130
000060 001131 .WORD 1131
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 101
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (33)
000062 000001 .WORD 1 ; Plit count word
000064 177777 P.AAG: .WORD -1
000066 000003 P.AAH: .WORD 3
000070 000002 .WORD 2
000072 000000 .WORD 0
.GLOBL $NRBEG, $DPDU2, $DPCM, $TPDU1
.GLOBL $DPDU1, $NREND
000066' ; RALPH
U.115= P.AAH
.SBTTL SHOW.NODE.ITEMS
011474 .PSECT $CODE$, RO
000000 004167 000000G ; SHOW.NODE.ITEMS
U.37: JSR R1,$SAVE5 ; 2922
000004 016605 000016 MOV 16(SP),R5 ; CCB,* 2961
000010 016501 000026 MOV 26(R5),R1 ; 2962
000014 062701 000004 ADD #4,R1
000020 011146 MOV (R1),-(SP) ; *,NDB 2964
000022 016504 000024 MOV 24(R5),R4 ; 2966
000026 072427 177764 ASH #-14,R4
000032 042704 177760 BIC #177760,R4
000036 020427 000003 CMP R4,#3
000042 001013 BNE 2$
000044 016700 000002G MOV .CRDAT+2,R0 ; 2970
000050 021660 000002 CMP (SP),2(R0)
000054 001003 BNE 1$
000056 012701 000034' MOV #P.AAD,R1 ; *,DAT.LST 2969
000062 000415 BR 4$
000064 012701 000052' 1$: MOV #P.AAE,R1 ; *,DAT.LST
000070 000412 BR 4$ ; 2966
000072 005704 2$: TST R4
000074 003406 BLE 3$
000076 020427 000002 CMP R4,#2
000102 003003 BGT 3$
000104 012701 000056' MOV #P.AAF,R1 ; *,DAT.LST
000110 000402 BR 4$
000112 012701 000064' 3$: MOV #P.AAG,R1 ; *,DAT.LST
000116 020427 000004 4$: CMP R4,#4 ; 2982
000122 001005 BNE 5$
000124 010546 MOV R5,-(SP) ; 2985
000126 004767 000000V JSR PC,U.38
000132 005726 TST (SP)+ ; 2982
000134 000455 BR 9$ ; 2984
000136 010504 5$: MOV R5,R4 ; 2990
000140 004767 000000G JSR PC,$NRBEG
000144 005002 CLR R2 ; I 2992
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 102
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (33)
000146 000167 000414 JMP 22$
000152 010204 6$: MOV R2,R4 ; I,* 2993
000154 006304 ASL R4
000156 060104 ADD R1,R4 ; DAT.LST,*
000160 021427 177777 CMP (R4),#-1
000164 001004 BNE 7$
000166 012765 000001 000014 MOV #1,14(R5) ; 2995
000174 000573 BR 21$ ; 2993
000176 021427 001130 7$: CMP (R4),#1130
000202 001042 BNE 11$
000204 016700 000002G MOV .CRDAT+2,R0 ; 2999
000210 021660 000002 CMP (SP),2(R0) ; NDB,*
000214 001011 BNE 8$
000216 012746 001130 MOV #1130,-(SP) ; 3002
000222 010003 MOV R0,R3 ; DB,*
000224 016300 000012 MOV 12(R3),R0
000230 004767 000000G JSR PC,$DPDU2
000234 005726 TST (SP)+ ; 3003
000236 000560 BR 23$
000240 012746 000002 8$: MOV #2,-(SP) ; 3006
000244 060616 ADD SP,(SP) ; NDB,*
000246 004767 174502 JSR PC,U.28
000252 005726 TST (SP)+
000254 006000 ROR R0
000256 103405 BLO 10$
000260 005065 000022 CLR 22(R5) ; 3009
000264 012700 000001 MOV #1,R0 ; 3008
000270 000550 9$: BR 24$
000272 012746 001130 10$: MOV #1130,-(SP) ; 3014
000276 016603 000002 MOV 2(SP),R3 ; NDB,*
000302 016300 000002 MOV 2(R3),R0
000306 000523 BR 19$
000310 021427 001131 11$: CMP (R4),#1131 ; 2993
000314 001007 BNE 12$
000316 012746 001131 MOV #1131,-(SP) ; 3020
000322 016603 000002 MOV 2(SP),R3 ; NDB,*
000326 016300 000040 MOV 40(R3),R0
000332 000511 BR 19$
000334 021427 001274 12$: CMP (R4),#1274 ; 2993
000340 001023 BNE 13$
000342 012746 001274 MOV #1274,-(SP) ; 3026
000346 012700 000003 MOV #3,R0
000352 004767 000000G JSR PC,$DPCM
000356 116700 000066' MOVB U.115,R0 ; 3027
000362 004767 000000G JSR PC,$TPDU1
000366 116700 000070' MOVB U.115+2,R0 ; 3028
000372 004767 000000G JSR PC,$TPDU1
000376 116700 000072' MOVB U.115+4,R0 ; 3029
000402 004767 000000G JSR PC,$TPDU1
000406 000465 BR 20$ ; 3024
000410 021427 001306 13$: CMP (R4),#1306 ; 2993
000414 001007 BNE 14$
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 103
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (33)
000416 012746 001306 MOV #1306,-(SP) ; 3034
000422 016703 000002G MOV .CRDAT+2,R3
000426 016300 000020 MOV 20(R3),R0
000432 000451 BR 19$
000434 021427 001320 14$: CMP (R4),#1320 ; 2993
000440 001007 BNE 15$
000442 012746 001320 MOV #1320,-(SP) ; 3039
000446 016703 000002G MOV .CRDAT+2,R3
000452 116300 000006 MOVB 6(R3),R0
000456 000411 BR 16$
000460 021427 001321 15$: CMP (R4),#1321 ; 2993
000464 001011 BNE 17$
000466 012746 001321 MOV #1321,-(SP) ; 3044
000472 016703 000002G MOV .CRDAT+2,R3
000476 116300 000007 MOVB 7(R3),R0
000502 004767 000000G 16$: JSR PC,$DPDU1
000506 000425 BR 20$ ; 3043
000510 021427 001322 17$: CMP (R4),#1322 ; 2993
000514 001007 BNE 18$
000516 012746 001322 MOV #1322,-(SP) ; 3049
000522 016703 000002G MOV .CRDAT+2,R3
000526 016300 000004 MOV 4(R3),R0
000532 000411 BR 19$
000534 021427 001323 18$: CMP (R4),#1323 ; 2993
000540 001011 BNE 21$
000542 012746 001323 MOV #1323,-(SP) ; 3054
000546 016703 000002G MOV .CRDAT+2,R3
000552 016300 000010 MOV 10(R3),R0
000556 004767 000000G 19$: JSR PC,$DPDU2
000562 005726 20$: TST (SP)+ ; 3053
000564 005202 21$: INC R2 ; I 2992
000566 020261 177776 22$: CMP R2,-2(R1) ; I,*(DAT.LST)
000572 002002 BGE 23$
000574 000167 177352 JMP 6$
000600 010504 23$: MOV R5,R4 ; 3059
000602 004767 000000G JSR PC,$NREND
000606 016500 000014 MOV 14(R5),R0 ; 2948
000612 005726 24$: TST (SP)+ ; 2922
000614 000207 RTS PC
; Routine Size: 199 words, Routine Base: $CODE$ + 11474
; Maximum stack depth per invocation: 9 words
; 3062
; 3063
; 3064
; 3065
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 104
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (34)
; 3066 Routine SHOW_NODE_COUNTERS ( CCB): =
; 3067
; 3068 !++
; 3069 ! FUNCTIONAL DESCRIPTION:
; 3070 ! Show specified items
; 3071 !
; 3072 ! FORMAL PARAMETERS:
; 3073 ! CCB CCB address
; 3074 !
; 3075 ! IMPLICIT INPUTS:
; 3076 ! DB Data base address
; 3077 ! PARBLK & NMPAR inputs, as pointed at by CCB.
; 3078 !
; 3079 ! IMPLICIT OUTPUTS:
; 3080 ! None
; 3081 !
; 3082 ! ROUTINE VALUE:
; 3083 ! Operation status code
; 3084 !
; 3085 ! COMPLETION CODES:
; 3086 ! None
; 3087 !
; 3088 ! SIDE EFFECTS:
; 3089 ! None
; 3090 !--
; 3091
; 3092 begin
; 3093 map
; 3094 CCB: ref block field (C_NM_FIELDS);
; 3095
; 3096
; 3097 bind
; 3098 NMP = CCB [C_NM_NMPAR]: ref block field (NMX_NMPAR_FIELDS),
; 3099 NMPAR = NMP [NMX_NMPAR_ENTITY];
; 3100
; 3101 local
; 3102 NDB: ref block field(NODE_fields);
; 3103
; 3104 $NM_RESPONSE_BEGIN( .CCB);
; 3105 NDB = .NMPAR;
; 3106
; 3107 If FIND_NDB( NDB)
; 3108 Then
; 3109 begin
; 3110 COUNTER_16_TIME( 0, NDB[NDtime_zeroed]);
; 3111 COUNTER_32( 600, NDB[NDb_rcv]);
; 3112 COUNTER_32( 601, NDB[NDb_xmt]);
; 3113 COUNTER_32( 610, NDB[NDm_rcv]);
; 3114 COUNTER_32( 611, NDB[NDm_xmt]);
; 3115 COUNTER_16( 620, NDB[NDc_rcv]);
; 3116 COUNTER_16( 621, NDB[NDc_xmt]);
; 3117 COUNTER_16( 630, NDB[NDtimeout]);
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 105
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (34)
; 3118 COUNTER_16( 640, NDB[NDc_rej]);
; 3119 If .NDB[NDaddr] eql .DB[NSPself]
; 3120 Then
; 3121 COUNTER_16( 700, DB[NSPmax]);
; 3122 end;
; 3123
; 3124 $NM_RESPONSE_END( .CCB);
; 3125 return .CCB[C_STS]
; 3126 end;
.SBTTL SHOW.NODE.COUNTERS
000000 004167 000000G ; SHOW.NODE.COUNTERS
U.38: JSR R1,$SAVE4 ; 3066
000004 005746 TST -(SP)
000006 016604 000016 MOV 16(SP),R4 ; CCB,* 3098
000012 016401 000026 MOV 26(R4),R1 ; 3099
000016 062701 000004 ADD #4,R1
000022 004767 000000G JSR PC,$NRBEG ; 3104
000026 011116 MOV (R1),(SP) ; *,NDB 3105
000030 012746 000002 MOV #2,-(SP) ; 3107
000034 060616 ADD SP,(SP) ; NDB,*
000036 004767 174074 JSR PC,U.28
000042 005726 TST (SP)+
000044 006000 ROR R0
000046 103112 BCC 2$
000050 012746 140000 MOV #-40000,-(SP) ; 3110
000054 016601 000002 MOV 2(SP),R1 ; NDB,*
000060 012700 000004 MOV #4,R0
000064 060100 ADD R1,R0
000066 004767 000000G JSR PC,$DT16
000072 012716 161130 MOV #-16650,(SP) ; 3111
000076 012700 000010 MOV #10,R0
000102 060100 ADD R1,R0
000104 004767 000000G JSR PC,$DC32
000110 012716 161131 MOV #-16647,(SP) ; 3112
000114 012700 000014 MOV #14,R0
000120 060100 ADD R1,R0
000122 004767 000000G JSR PC,$DC32
000126 012716 161142 MOV #-16636,(SP) ; 3113
000132 012700 000020 MOV #20,R0
000136 060100 ADD R1,R0
000140 004767 000000G JSR PC,$DC32
000144 012716 161143 MOV #-16635,(SP) ; 3114
000150 012700 000024 MOV #24,R0
000154 060100 ADD R1,R0
000156 004767 000000G JSR PC,$DC32
000162 012716 141154 MOV #-36624,(SP) ; 3115
000166 016100 000030 MOV 30(R1),R0
000172 004767 000000G JSR PC,$DC16
000176 012716 141155 MOV #-36623,(SP) ; 3116
000202 016100 000032 MOV 32(R1),R0
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 106
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (34)
000206 004767 000000G JSR PC,$DC16
000212 012716 141166 MOV #-36612,(SP) ; 3117
000216 016100 000036 MOV 36(R1),R0
000222 004767 000000G JSR PC,$DC16
000226 012716 141200 MOV #-36600,(SP) ; 3118
000232 016100 000034 MOV 34(R1),R0
000236 004767 000000G JSR PC,$DC16
000242 016700 000002G MOV .CRDAT+2,R0 ; 3119
000246 021160 000002 CMP (R1),2(R0)
000252 001007 BNE 1$
000254 012716 141274 MOV #-36504,(SP) ; 3121
000260 010001 MOV R0,R1 ; DB,*
000262 016100 000012 MOV 12(R1),R0
000266 004767 000000G JSR PC,$DC16
000272 005726 1$: TST (SP)+ ; 3109
000274 004767 000000G 2$: JSR PC,$NREND ; 3124
000300 016400 000014 MOV 14(R4),R0 ; 3092
000304 005726 TST (SP)+ ; 3066
000306 000207 RTS PC
; Routine Size: 100 words, Routine Base: $CODE$ + 12312
; Maximum stack depth per invocation: 8 words
; 3127
; 3128
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 107
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (35)
; 3129 Routine SHOW_ZERO_NODE_COUNTERS ( CCB): =
; 3130
; 3131 !++
; 3132 ! FUNCTIONAL DESCRIPTION:
; 3133 ! Show specified items
; 3134 !
; 3135 ! FORMAL PARAMETERS:
; 3136 ! CCB CCB address
; 3137 !
; 3138 ! IMPLICIT INPUTS:
; 3139 ! DB Data base address
; 3140 ! PARBLK & NMPAR inputs, as pointed at by CCB.
; 3141 !
; 3142 ! IMPLICIT OUTPUTS:
; 3143 ! None
; 3144 !
; 3145 ! ROUTINE VALUE:
; 3146 ! Operation status code
; 3147 !
; 3148 ! COMPLETION CODES:
; 3149 ! None
; 3150 !
; 3151 ! SIDE EFFECTS:
; 3152 ! None
; 3153 !--
; 3154 begin
; 3155 local
; 3156 STS;
; 3157
; 3158 STS = SHOW_NODE_COUNTERS( .CCB);
; 3159 if .sts neq NM$SUC then return .STS;
; 3160 STS = ZERO_NODE_COUNTERS( .CCB);
; 3161 return .STS
; 3162 end;
.SBTTL SHOW.ZERO.NODE.COUNTERS
000000 010146 ; SHOW.ZERO.NODE.COUNTERS
U.40: MOV R1,-(SP) ; 3129
000002 016646 000004 MOV 4(SP),-(SP) ; CCB,* 3158
000006 004767 177456 JSR PC,U.38
000012 010001 MOV R0,R1 ; *,STS
000014 020127 000001 CMP R1,#1 ; STS,* 3159
000020 001005 BNE 1$
000022 016616 000006 MOV 6(SP),(SP) ; CCB,* 3160
000026 004767 000000V JSR PC,U.39
000032 010001 MOV R0,R1 ; *,STS
000034 005726 1$: TST (SP)+ ; 3129
000036 010100 MOV R1,R0 ; STS,* 3154
000040 012601 MOV (SP)+,R1 ; 3129
000042 000207 RTS PC
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 108
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (35)
; Routine Size: 18 words, Routine Base: $CODE$ + 12622
; Maximum stack depth per invocation: 3 words
; 3163
; 3164
; 3165
; 3166
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 109
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (36)
; 3167 Routine ZERO_NODE_COUNTERS ( CCB): =
; 3168
; 3169 !++
; 3170 ! FUNCTIONAL DESCRIPTION:
; 3171 ! Zero out node counters for a perticular node.
; 3172 !
; 3173 ! FORMAL PARAMETERS:
; 3174 ! CCB CCB address
; 3175 !
; 3176 ! IMPLICIT INPUTS:
; 3177 ! DB Data base address
; 3178 ! PARBLK & NMPAR inputs, as pointed at by CCB.
; 3179 !
; 3180 ! IMPLICIT OUTPUTS:
; 3181 ! None
; 3182 !
; 3183 ! ROUTINE VALUE:
; 3184 ! Operation status code
; 3185 !
; 3186 ! COMPLETION CODES:
; 3187 ! None
; 3188 !
; 3189 ! SIDE EFFECTS:
; 3190 ! None
; 3191 !--
; 3192
; 3193 begin
; 3194 map
; 3195 CCB: ref block field (C_NM_FIELDS);
; 3196
; 3197
; 3198 bind
; 3199 NMP = CCB [C_NM_NMPAR]: ref block field (NMX_NMPAR_FIELDS),
; 3200 NMPAR = NMP [NMX_NMPAR_ENTITY];
; 3201
; 3202 local
; 3203 NDB: ref block field(NODE_fields),
; 3204 DAT_LST: ref vector;
; 3205
; 3206 NDB = .NMPAR;
; 3207
; 3208 If not FIND_NDB( NDB)
; 3209 Then
; 3210 return NM$SUC;
; 3211
; 3212 ch$fill( 0, 24, byt$ptr( NDB[NDb_rcv]));
; 3213 $NM_TIME( NDB[NDtime_zeroed]);
; 3214
; 3215 If .NDB[NDaddr] eql .DB[NSPself]
; 3216 Then
; 3217 DB[NSPmax] = 0;
; 3218
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 110
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (36)
; 3219 NM$SUC
; 3220 end;
.SBTTL ZERO.NODE.COUNTERS
000000 010146 ; ZERO.NODE.COUNTERS
U.39: MOV R1,-(SP) ; 3167
000002 016600 000004 MOV 4(SP),R0 ; CCB,* 3199
000006 062700 000026 ADD #26,R0
000012 011000 MOV (R0),R0 ; 3200
000014 062700 000004 ADD #4,R0
000020 011046 MOV (R0),-(SP) ; *,NDB 3206
000022 012746 000002 MOV #2,-(SP) ; 3208
000026 060616 ADD SP,(SP) ; NDB,*
000030 004767 173526 JSR PC,U.28
000034 005726 TST (SP)+
000036 006000 ROR R0
000040 103030 BHIS 2$ ; 3210
000042 005046 CLR -(SP) ; 3212
000044 012746 000030 MOV #30,-(SP)
000050 016601 000004 MOV 4(SP),R1 ; NDB,*
000054 012746 000010 MOV #10,-(SP)
000060 060116 ADD R1,(SP)
000062 004767 000000G JSR PC,BL$FIL
000066 012700 000004 MOV #4,R0 ; 3213
000072 060100 ADD R1,R0
000074 004767 000000G JSR PC,$ST32
000100 016700 000002G MOV .CRDAT+2,R0 ; 3215
000104 021160 000002 CMP (R1),2(R0)
000110 001002 BNE 1$
000112 005060 000012 CLR 12(R0) ; 3217
000116 062706 000006 1$: ADD #6,SP ; 3193
000122 012700 000001 2$: MOV #1,R0 ; 3167
000126 005726 TST (SP)+
000130 012601 MOV (SP)+,R1
000132 000207 RTS PC
; Routine Size: 46 words, Routine Base: $CODE$ + 12666
; Maximum stack depth per invocation: 6 words
; 3221
; 3222
; 3223
; 3224
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 111
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (37)
; 3225 routine UPDATE_DELAY ( PDB) : novalue = !
; 3226
; 3227 !++
; 3228 ! FUNCTIONAL DESCRIPTION:
; 3229 ! This routine calculates the round trip delay for NSp messages.
; 3230 !
; 3231 ! FORMAL PARAMETERS:
; 3232 ! PDB = Port Data Base Address
; 3233 !
; 3234 ! IMPLICIT INPUTS:
; 3235 ! DB = NSP Data Base Address
; 3236 !
; 3237 ! IMPLICIT OUTPUTS:
; 3238 ! None
; 3239 !
; 3240 ! ROUTINE VALUE:
; 3241 ! COMPLETION CODES:
; 3242 ! None
; 3243 !
; 3244 ! SIDE EFFECTS:
; 3245 ! None
; 3246 !--
; 3247
; 3248 begin
; 3249 map PDB: ref block field(PORT_fields);
; 3250
; 3251 local
; 3252 DELAYtime,
; 3253 NDB : ref block field(NODE_fields);
; 3254
; 3255 NDB = .PDB[NODElnk];
; 3256
; 3257 If .PDB[DELAYstr_tim] neq 0
; 3258 Then
; 3259 begin
; 3260 DELAYtime = .PDB[DELAYstr_tim];
; 3261
; 3262 If .DELAYtime gtr 1
; 3263 Then
; 3264 DELAYtime = .DELAYtime - 1;
; 3265 MAP$( .DB[BIASnodes]);
; 3266
; 3267 If .NDB[NDdelay] eql 0
; 3268 Then
; 3269 NDB[NDdelay] = .DELAYtime
; 3270 Else
; 3271 begin
; 3272 DELAYtime = .DELAYtime - .NDB[NDdelay];
; 3273 NDB[NDdelay] = .NDB[NDdelay] + (.DELAYtime / (.DB[NSPweight] + 1))
; 3274 end;
; 3275 MAP$( .DB[BIASports]);
; 3276 PDB[DELAYstr_tim] = 0;
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 112
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (37)
; 3277 end
; 3278 end;
.SBTTL UPDATE.DELAY
000000 004167 000000G ; UPDATE.DELAY
U.41: JSR R1,$SAVE5 ; 3225
000004 016600 000016 MOV 16(SP),R0 ; PDB,* 3255
000010 016002 000010 MOV 10(R0),R2 ; *,NDB
000014 012705 000062 MOV #62,R5 ; 3257
000020 060005 ADD R0,R5
000022 005715 TST (R5)
000024 001437 BEQ 4$
000026 011501 MOV (R5),R1 ; *,DELAYTIME 3260
000030 020127 000001 CMP R1,#1 ; DELAYTIME,* 3262
000034 003401 BLE 1$
000036 005301 DEC R1 ; DELAYTIME 3264
000040 016703 000002G 1$: MOV .CRDAT+2,R3 ; 3265
000044 016367 000030 000000G MOV 30(R3),KISAR6
000052 012704 000040 MOV #40,R4 ; 3267
000056 060204 ADD R2,R4 ; NDB,*
000060 005714 TST (R4)
000062 001002 BNE 2$
000064 010114 MOV R1,(R4) ; DELAYTIME,* 3269
000066 000412 BR 3$ ; 3267
000070 161401 2$: SUB (R4),R1 ; *,DELAYTIME 3272
000072 005002 CLR R2 ; 3273
000074 156302 000007 BISB 7(R3),R2
000100 005202 INC R2
000102 005701 TST R1
000104 006700 SXT R0
000106 071002 DIV R2,R0
000110 061400 ADD (R4),R0
000112 010014 MOV R0,(R4)
000114 016367 000014 000000G 3$: MOV 14(R3),KISAR6 ; 3275
000122 005015 CLR (R5) ; 3276
000124 000207 4$: RTS PC ; 3225
; Routine Size: 43 words, Routine Base: $CODE$ + 13022
; Maximum stack depth per invocation: 7 words
; 3279
; 3280
; 3281
; 3282
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 113
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (38)
; 3283 routine XPT_XMIT ( CCB, XXDB) : novalue = !
; 3284
; 3285 !++
; 3286 ! FUNCTIONAL DESCRIPTION:
; 3287 ! This routine passes packets to Transport for delivery to a remote
; 3288 ! NSP.
; 3289 !
; 3290 !
; 3291 ! FORMAL PARAMETERS:
; 3292 ! CCB = CCB address
; 3293 ! XXDB = Reserved/Port Data Base Address
; 3294 !
; 3295 ! IMPLICIT INPUTS:
; 3296 ! DB = NSP Data Base Address
; 3297 !
; 3298 ! IMPLICIT OUTPUTS:
; 3299 ! None
; 3300 !
; 3301 ! ROUTINE VALUE:
; 3302 ! COMPLETION CODES:
; 3303 ! None
; 3304 !
; 3305 ! SIDE EFFECTS:
; 3306 ! None
; 3307 !--
; 3308
; 3309 begin
; 3310 map CCB: ref block field(C_fields);
; 3311 map XXDB: ref block field(PORT_fields);
; 3312
; 3313
; 3314 local
; 3315 NDB: ref block field(NODE_fields),
; 3316 temp;
; 3317
; 3318 NDB = .XXDB[NODElnk];
; 3319
; 3320 If .XXDB[PORTstate] lss 0
; 3321 Then
; 3322 CCB[C_PRM4] = -1
; 3323 Else
; 3324 CCB[C_PRM4] = .XXDB;
; 3325 CCB[C_FNC] = FC_XME;
; 3326 CCB[C_MOD] = FM_DAT;
; 3327 CCB[C_LIX] = .XXDB[CHANNEL];
; 3328 CCB[C_PIX] = .DB[NSPxpt_pix];
; 3329 CCB[C_STS] = 0;
; 3330 CCB[C_PRM1] = .DB[NSPself];
; 3331 CCB[C_PRM2] = .XXDB[NODErem];
; 3332
; 3333 If .NDB neq 0
; 3334 Then
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 114
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (38)
; 3335 begin
; 3336 SMAP$( temp);
; 3337 MAP$( .DB[BIASnodes]);
; 3338 DADD( NDB[NDm_xmt], 1);
; 3339 MAP$( .temp);
; 3340 end;
; 3341 LLCRS$( .CCB)
; 3342 end;
.SBTTL XPT.XMIT
000000 004167 000000G ; XPT.XMIT
U.42: JSR R1,$SAVE4 ; 3283
000004 016601 000014 MOV 14(SP),R1 ; XXDB,* 3318
000010 016102 000010 MOV 10(R1),R2 ; *,NDB
000014 016604 000016 MOV 16(SP),R4 ; CCB,* 3322
000020 105711 TSTB (R1) ; 3320
000022 002004 BGE 1$
000024 012764 177777 000032 MOV #-1,32(R4) ; 3322
000032 000402 BR 2$ ; 3320
000034 010164 000032 1$: MOV R1,32(R4) ; 3324
000040 112764 000002 000012 2$: MOVB #2,12(R4) ; 3325
000046 105064 000013 CLRB 13(R4) ; 3326
000052 116164 000001 000010 MOVB 1(R1),10(R4) ; 3327
000060 016700 000002G MOV .CRDAT+2,R0 ; 3328
000064 116064 000050 000011 MOVB 50(R0),11(R4)
000072 005064 000014 CLR 14(R4) ; 3329
000076 016064 000002 000024 MOV 2(R0),24(R4) ; 3330
000104 016164 000002 000026 MOV 2(R1),26(R4) ; 3331
000112 005702 TST R2 ; NDB 3333
000114 001417 BEQ 3$
000116 016701 000000G MOV KISAR6,R1 ; *,TEMP 3336
000122 016067 000030 000000G MOV 30(R0),KISAR6 ; 3337
000130 010246 MOV R2,-(SP) ; NDB,* 3338
000132 062716 000024 ADD #24,(SP)
000136 012746 000001 MOV #1,-(SP)
000142 004767 170360 JSR PC,U.20
000146 010167 000000G MOV R1,KISAR6 ; TEMP,* 3339
000152 022626 CMP (SP)+,(SP)+ ; 3335
000154 004767 000000G 3$: JSR PC,$SCHED ; 3341
000160 000207 RTS PC ; 3283
; Routine Size: 57 words, Routine Base: $CODE$ + 13150
; Maximum stack depth per invocation: 8 words
; 3343
; 3344
; 3345 end
; 3346 eludom
NS2 25-Jan-1983 10:53:40 TOPS-20 Bliss-16 2A(530) Page 115
X01150 30-Dec-1982 20:26:23 NETPKG:<NSP>NS2.BLI.9 (38)
; OTS external references
.GLOBL $SAVE5, $SAVE4, $SAVE2, $CALL
.GLOBL $IGNAL, BL$FIL
; PSECT SUMMARY
;
; Psect Name Words Attributes
; ...... 16 RW , D , LCL, REL, CON
; $CODE$ 2925 RO , I , LCL, REL, CON
; $PLIT$ 30 RO , D , LCL, REL, CON
; LIBRARY STATISTICS
;
; -------- Symbols -------- Blocks
; File Total Loaded Percent Read
;
; NETPKG:<MCB>XPORTX.L16.15 599 38 6 0
; NETPKG:<MCB>MCBLIB.L16.15 372 56 15 0
; NETPKG:<MCB>NMXLIB.L16.13 200 62 31 0
; Size: 2925 code + 46 data words
; Run Time: 00:57.1
; Elapsed Time: 03:14.3
; Memory Used: 63 pages
; Compilation Complete