Trailing-Edge
-
PDP-10 Archives
-
BB-R595B-SM_11-9-85
-
mcb/nsp/ns1.lst
There is 1 other file named ns1.lst in the archive. Click here to see a list.
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 1
30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (1)
; 0001 Module NS1 ( !
; 0002 ident = 'X01080'
; 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 contains all the routines for transmitting
; 0032 ! and receiving Data and Other Data messages.
; 0033 !
; 0034 !
; 0035 ! ENVIRONMENT: MCB
; 0036 !
; 0037 ! AUTHOR: Ron Platukis CREATION DATE: 1-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 !
; 0046 ! Ron Platukis 23-oct-80
; 0047 ! 02 - Set PORTstate negative if Reserved Port.
; 0048 !
; 0049 ! 03 Ron Platukis 1-dec-80
; 0050 ! -Add CMP_LSS and CMP_LEQ macros to perform 12-bit arith.
; 0051 !
; 0052 ! 04 Ron Platukis 13-jan-81
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 2
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (1)
; 0053 ! -Change linkages to BLISS, add access for NSP Data Base address.
; 0054 !
; 0055 ! 05 Ron Platukis 20-jan-81
; 0056 ! -Add Network Management event logging code.
; 0057 !
; 0058 ! 06 Ron Platukis 24-feb-81
; 0059 ! -fix bug in SND_DATA to set ACK_queue to chain word of CCB when
; 0060 ! dequeueing.
; 0061 !
; 0062 ! 07 Ron Platukis 15-sept-81
; 0063 ! -in routine SEG_BLD set FLAGseg to true if it is false and the
; 0064 ! ACK_queue is empty.
; 0065 !
; 0066 ! 08 Ron Platukis 4-february-82
; 0067 ! -in routine PROC_DATA_ACK set FLAGseg to true if ACKrcv_dat equals
; 0068 ! NUMsent.
; 0069 !--
; 0070
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 3
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (2)
; 0071 !
; 0072 ! INCLUDE FILES:
; 0073 !
; 0074 library
; 0075 'mcb:xportx';
; 0076 library
; 0077 'mcb:mcblib';
; 0078 library
; 0079 'mcb:nmxlib';
; 0080 require
; 0081 'nspbli:nspdata';
; 0567 require
; 0568 'nspbli:nsinfo';
; 0680
; 0681
; 0682 !
; 0683 ! TABLE OF CONTENTS:
; 0684 !
; 0685 forward routine
; 0686 ACK_BLD: novalue, !format an ACK
; 0687 ACK_DATA_SND: , !send a data ack
; 0688 ACK_OTH_RCV: novalue, !process Other Ack
; 0689 ACK_RCV: novalue, !process Data Ack
; 0690 ACK_OTH_SND: , !send Other ACK
; 0691 CCB_GET:,
; 0692 CCB_HDR_GET:,
; 0693 CCB_RETRN: novalue,
; 0694 DADD: novalue,
; 0695 DATA_RECVD: novalue,
; 0696 DATA_TO_SND: , !check if data to send
; 0697 DRQ_BLD: novalue, !format a Data Req
; 0698 DRQ_RCV: novalue, !process Data Request
; 0699 D_RCV: novalue, !process a Segment
; 0700 D_REQ_TO_SND: , !check if data req to send
; 0701 IRQ_BLD: novalue, !format an INT Req
; 0702 IRQ_RCV: novalue, !process Interrupt Request
; 0703 INTERRUPT_TO_SND: , !check if int to send
; 0704 INTR_REQ_TO_SND: , !check if int req to send
; 0705 INT_BLD: novalue, !format an INT msg
; 0706 INT_RCV: novalue, !process Interrupt
; 0707 INT_RECVD: novalue,
; 0708 LS_RCV: novalue, !dispatch on request type
; 0709 MSG_RCV: CALL$ novalue, !dispatch on NSP message type
; 0710 ONCE_A_SECOND: CALL$ novalue, !Resource revovery routine
; 0711 OTHACK_BLD: novalue, !format an OTH ACK
; 0712 PROC_DATA_ACK: novalue, !more process Data Ack
; 0713 PROC_OTH_ACK: novalue, !more process Other Ack
; 0714 REAS_DATA: novalue, !reassembly routine
; 0715 SEG_BLD: novalue, !format a Data Seg
; 0716 SND_DATA: , !send a data segment
; 0717 SND_MSG: CALL$ novalue, !send a message
; 0718 SND_INTERRUPT: CALL$, !send int msg
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 4
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (2)
; 0719 SND_INTR_REQ: , !send int req msg
; 0720 SND_ONE_DATA: CALL$ novalue, !send one segment only
; 0721 SND_REQ_DATA: , !send data req msg
; 0722 TRICKLE: CALL$, !send only one msg and quit
; 0723 UPDATE_DELAY: novalue, !update round trip delay
; 0724 XPT_XMIT: novalue; !queue CCB to XPT
; 0725 !
; 0726 ! macros:
; 0727 !
; 0728
; 0729 !
; 0730 ! equated symbols:
; 0731 !
; 0732
; 0733 !
; 0734 ! own storage:
; 0735 !
; 0736 $MCB_PROCESS( name = NS1)
; 0737 !
; 0738 ! external references:
; 0739 !
; 0740 external
; 0741 %name('.crdat'): vector[2],
; 0742 $DSPCR;
; 0743
; 0744 bind DB = %name('.crdat')[1]: ref block field(NSP_fields);
; 0745
; 0746
; 0747
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 5
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (3)
; 0748 routine ACK_BLD ( CCB, PDB) : novalue = !
; 0749
; 0750 !++
; 0751 ! FUNCTIONAL DESCRIPTION:
; 0752 ! This routine formats an NSP Data Acknowledgement message and
; 0753 ! queues it to Transport.
; 0754 !
; 0755 ! FORMAL PARAMETERS:
; 0756 ! PDB = Port Data Base Address
; 0757 ! CCB = CCB Address
; 0758 !
; 0759 ! IMPLICIT INPUTS:
; 0760 ! DB = NSP Data Base Address
; 0761 !
; 0762 ! IMPLICIT OUTPUTS:
; 0763 ! None
; 0764 !
; 0765 ! ROUTINE VALUE:
; 0766 ! COMPLETION CODES:
; 0767 ! None
; 0768 !
; 0769 ! SIDE EFFECTS:
; 0770 ! None
; 0771 !--
; 0772
; 0773 begin
; 0774 map CCB: ref block field(C_fields);
; 0775 map PDB: ref block field(PORT_fields);
; 0776
; 0777 local
; 0778 PTR;
; 0779
; 0780 PTR = .CCB[C_ADDR];
; 0781
; 0782 ch$wchar_a( FLG_DAT_ACK, PTR);
; 0783 ch$wchar_a( .PDB[L_rem_addr], PTR);
; 0784 ch$wchar_a( .PDB[H_rem_addr], PTR);
; 0785 ch$wchar_a( .PDB[PID], PTR);
; 0786 ch$wchar_a( .PDB[ADDran], PTR);
; 0787 PUT2BYTES( .PDB[ACKdat_xmt] + Q_ACK^12 + true^15, PTR);
; 0788
; 0789 CCB[C_CNT] = ch$diff(.PTR, .CCB[C_ADDR]);
; 0790 PDB[FLAGdat_ack] = false;
; 0791 XPT_XMIT( .CCB, .PDB)
; 0792 end;
.TITLE NS1
.IDENT /X01080/
000000 .PSECT ......, D
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 6
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (3)
000000 055227 ; HEADER
U.46: .RAD50 /NS1/
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 ; 0748
000004 016602 000016 MOV 16(SP),R2 ; CCB,* 0780
000010 016203 000020 MOV 20(R2),R3 ; *,PTR
000014 112723 000004 MOVB #4,(R3)+ ; *,PTR 0782
000020 016601 000014 MOV 14(SP),R1 ; PDB,* 0783
000024 116123 000006 MOVB 6(R1),(R3)+ ; *,PTR
000030 116123 000007 MOVB 7(R1),(R3)+ ; *,PTR 0784
000034 116123 000004 MOVB 4(R1),(R3)+ ; *,PTR 0785
000040 116123 000005 MOVB 5(R1),(R3)+ ; *,PTR 0786
000044 016100 000030 MOV 30(R1),R0 ; *,TEMP 0787
000050 162700 100000 SUB #100000,R0 ; *,TEMP
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 7
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (3)
000054 110023 MOVB R0,(R3)+ ; TEMP,PTR
000056 010004 MOV R0,R4 ; TEMP,*
000060 000304 SWAB R4
000062 110423 MOVB R4,(R3)+ ; *,PTR
000064 010362 000022 MOV R3,22(R2) ; PTR,* 0789
000070 166262 000020 000022 SUB 20(R2),22(R2)
000076 042761 020000 000040 BIC #20000,40(R1) ; 0790
000104 010246 MOV R2,-(SP) ; 0791
000106 010146 MOV R1,-(SP)
000110 004767 000000V JSR PC,U.45
000114 022626 CMP (SP)+,(SP)+ ; 0773
000116 000207 RTS PC ; 0748
; Routine Size: 40 words, Routine Base: $CODE$ + 0000
; Maximum stack depth per invocation: 8 words
; 0793
; 0794
; 0795
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 8
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (4)
; 0796 routine ACK_DATA_SND ( PDB) : = !
; 0797
; 0798 !++
; 0799 ! FUNCTIONAL DESCRIPTION:
; 0800 ! This routine transmits a Data Acknowledgement message.
; 0801 !
; 0802 ! FORMAL PARAMETERS:
; 0803 ! PDB = Port Data Base Address
; 0804 !
; 0805 ! IMPLICIT INPUTS:
; 0806 ! DB = NSP Data Base Address
; 0807 !
; 0808 ! IMPLICIT OUTPUTS:
; 0809 ! None
; 0810 !
; 0811 ! ROUTINE VALUE:
; 0812 ! COMPLETION CODES:
; 0813 ! None
; 0814 !
; 0815 ! SIDE EFFECTS:
; 0816 ! None
; 0817 !--
; 0818
; 0819 begin
; 0820 local
; 0821 CCB: ref block field(C_fields);
; 0822
; 0823 If CCB_HDR_GET( 0, CCB, .PDB)
; 0824 Then
; 0825 begin
; 0826 ACK_BLD( .CCB, .PDB);
; 0827 return true
; 0828 end;
; 0829 return false
; 0830
; 0831 end;
.SBTTL ACK.DATA.SND
000000 005746 ; ACK.DATA.SND
U.8: TST -(SP) ; 0796
000002 005046 CLR -(SP) ; 0823
000004 012746 000004 MOV #4,-(SP)
000010 060616 ADD SP,(SP) ; CCB,*
000012 016646 000010 MOV 10(SP),-(SP) ; PDB,*
000016 004767 000000V JSR PC,U.13
000022 062706 000006 ADD #6,SP
000026 006000 ROR R0
000030 103011 BCC 1$
000032 011646 MOV (SP),-(SP) ; CCB,* 0826
000034 016646 000006 MOV 6(SP),-(SP) ; PDB,*
000040 004767 177614 JSR PC,U.7
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 9
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (4)
000044 022626 CMP (SP)+,(SP)+ ; 0823
000046 012700 000001 MOV #1,R0 ; 0825
000052 000401 BR 2$
000054 005000 1$: CLR R0 ; 0819
000056 005726 2$: TST (SP)+ ; 0796
000060 000207 RTS PC
; Routine Size: 25 words, Routine Base: $CODE$ + 0120
; Maximum stack depth per invocation: 5 words
; 0832
; 0833
; 0834
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 10
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (5)
; 0835 routine ACK_OTH_RCV ( CCB, PDB) : novalue = !
; 0836
; 0837 !++
; 0838 ! FUNCTIONAL DESCRIPTION:
; 0839 ! This routine processes a received Other Data Acknowledgement message.
; 0840 !
; 0841 ! FORMAL PARAMETERS:
; 0842 ! PDB = Port Data Base Address
; 0843 ! CCB = CCB Address
; 0844 !
; 0845 ! IMPLICIT INPUTS:
; 0846 ! DB = NSP Data Base Address
; 0847 !
; 0848 ! IMPLICIT OUTPUTS:
; 0849 ! None
; 0850 !
; 0851 ! ROUTINE VALUE:
; 0852 ! COMPLETION CODES:
; 0853 ! None
; 0854 !
; 0855 ! SIDE EFFECTS:
; 0856 ! None
; 0857 !--
; 0858
; 0859 begin
; 0860 map CCB: ref block field(C_fields);
; 0861 map PDB: ref block field(PORT_fields);
; 0862
; 0863 PROC_OTH_ACK( .CCB, .PDB);
; 0864 CCB[C_FNC] = FC_RCE;
; 0865 LLCRS$( .CCB)
; 0866 end;
.GLOBL $SCHED
.SBTTL ACK.OTH.RCV
000000 010446 ; ACK.OTH.RCV
U.9: MOV R4,-(SP) ; 0835
000002 016604 000006 MOV 6(SP),R4 ; CCB,* 0863
000006 010446 MOV R4,-(SP)
000010 016646 000006 MOV 6(SP),-(SP) ; PDB,*
000014 004767 000000V JSR PC,U.34
000020 112764 000004 000012 MOVB #4,12(R4) ; 0864
000026 004767 000000G JSR PC,$SCHED ; 0865
000032 022626 CMP (SP)+,(SP)+ ; 0859
000034 012604 MOV (SP)+,R4 ; 0835
000036 000207 RTS PC
; Routine Size: 16 words, Routine Base: $CODE$ + 0202
; Maximum stack depth per invocation: 4 words
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 11
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (5)
; 0867
; 0868
; 0869
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 12
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (6)
; 0870 routine ACK_OTH_SND ( PDB) : = !
; 0871
; 0872 !++
; 0873 ! FUNCTIONAL DESCRIPTION:
; 0874 ! This routine allocates a CCB and passes control to the Other Data
; 0875 ! Acknowledgement Format routine.
; 0876 !
; 0877 ! FORMAL PARAMETERS:
; 0878 ! PDB = Port Data Base Address
; 0879 !
; 0880 ! IMPLICIT INPUTS:
; 0881 ! DB = NSP Data Base Address
; 0882 !
; 0883 ! IMPLICIT OUTPUTS:
; 0884 ! None
; 0885 !
; 0886 ! ROUTINE VALUE:
; 0887 ! COMPLETION CODES:
; 0888 ! None
; 0889 !
; 0890 ! SIDE EFFECTS:
; 0891 ! None
; 0892 !--
; 0893
; 0894 begin
; 0895
; 0896 local
; 0897 CCB: ref block field(C_fields);
; 0898
; 0899 If CCB_HDR_GET( 0, CCB, .PDB)
; 0900 Then
; 0901 begin
; 0902 OTHACK_BLD( .CCB, .PDB);
; 0903 return true
; 0904 end;
; 0905 return false
; 0906 End;
.SBTTL ACK.OTH.SND
000000 005746 ; ACK.OTH.SND
U.11: TST -(SP) ; 0870
000002 005046 CLR -(SP) ; 0899
000004 012746 000004 MOV #4,-(SP)
000010 060616 ADD SP,(SP) ; CCB,*
000012 016646 000010 MOV 10(SP),-(SP) ; PDB,*
000016 004767 000000V JSR PC,U.13
000022 062706 000006 ADD #6,SP
000026 006000 ROR R0
000030 103011 BCC 1$
000032 011646 MOV (SP),-(SP) ; CCB,* 0902
000034 016646 000006 MOV 6(SP),-(SP) ; PDB,*
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 13
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (6)
000040 004767 000000V JSR PC,U.32
000044 022626 CMP (SP)+,(SP)+ ; 0899
000046 012700 000001 MOV #1,R0 ; 0901
000052 000401 BR 2$
000054 005000 1$: CLR R0 ; 0894
000056 005726 2$: TST (SP)+ ; 0870
000060 000207 RTS PC
; Routine Size: 25 words, Routine Base: $CODE$ + 0242
; Maximum stack depth per invocation: 5 words
; 0907
; 0908
; 0909
; 0910
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 14
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (7)
; 0911 routine ACK_RCV ( CCB, PDB) : novalue = !
; 0912
; 0913 !++
; 0914 ! FUNCTIONAL DESCRIPTION:
; 0915 ! This routine processes a received Data Acknowledgement message.
; 0916 !
; 0917 ! FORMAL PARAMETERS:
; 0918 ! PDB = Port Data Base Address
; 0919 ! CCB = CCB Address
; 0920 !
; 0921 ! IMPLICIT INPUTS:
; 0922 ! DB = NSP Data Base Address
; 0923 !
; 0924 ! IMPLICIT OUTPUTS:
; 0925 ! None
; 0926 !
; 0927 ! ROUTINE VALUE:
; 0928 ! COMPLETION CODES:
; 0929 ! None
; 0930 !
; 0931 ! SIDE EFFECTS:
; 0932 ! None
; 0933 !--
; 0934
; 0935 begin
; 0936 map CCB: ref block field(C_fields);
; 0937 map PDB: ref block field(PORT_fields);
; 0938
; 0939 PROC_DATA_ACK( .CCB, .PDB);
; 0940 CCB[C_FNC] = FC_RCE;
; 0941 LLCRS$( .CCB)
; 0942 end;
.SBTTL ACK.RCV
000000 010446 ; ACK.RCV
U.10: MOV R4,-(SP) ; 0911
000002 016604 000006 MOV 6(SP),R4 ; CCB,* 0939
000006 010446 MOV R4,-(SP)
000010 016646 000006 MOV 6(SP),-(SP) ; PDB,*
000014 004767 000000V JSR PC,U.33
000020 112764 000004 000012 MOVB #4,12(R4) ; 0940
000026 004767 000000G JSR PC,$SCHED ; 0941
000032 022626 CMP (SP)+,(SP)+ ; 0935
000034 012604 MOV (SP)+,R4 ; 0911
000036 000207 RTS PC
; Routine Size: 16 words, Routine Base: $CODE$ + 0324
; Maximum stack depth per invocation: 4 words
; 0943
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 15
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (7)
; 0944
; 0945
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 16
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (8)
; 0946 routine CCB_GET (CCB, PDB) = !
; 0947
; 0948 !++
; 0949 ! FUNCTIONAL DESCRIPTION:
; 0950 ! This routine allocates a CCB.
; 0951 !
; 0952 ! FORMAL PARAMETERS:
; 0953 ! CCB = CCB address
; 0954 ! PDB = Port Data Base address
; 0955 !
; 0956 ! IMPLICIT INPUTS:
; 0957 ! None
; 0958 !
; 0959 ! IMPLICIT OUTPUTS:
; 0960 ! None
; 0961 !
; 0962 ! ROUTINE VALUE:
; 0963 ! COMPLETION CODES:
; 0964 ! None
; 0965 !
; 0966 ! SIDE EFFECTS:
; 0967 ! None
; 0968 !--
; 0969
; 0970
; 0971 begin
; 0972 map PDB: ref block field(PORT_fields);
; 0973
; 0974 local
; 0975 LCCB: ref block field(C_fields);
; 0976
; 0977 If not CCBGT$(LCCB)
; 0978 Then
; 0979 return false;
; 0980 LCCB[C_STK] = 0;
; 0981 LCCB[C_CHN] = 0;
; 0982 LCCB[C_BIAS] = 0;
; 0983 LCCB[C_ADDR] = 0;
; 0984 LCCB[C_PRM1] = 0;
; 0985 LCCB[C_PRM2] = 0;
; 0986 LCCB[C_PRM3] = 0;
; 0987 LCCB[C_PRM4] = 0;
; 0988 LCCB[C_PRM5] = 0;
; 0989
; 0990 If .PDB neq -1
; 0991 Then
; 0992 PDB[COUNTres] = .PDB[COUNTres] + 1;
; 0993 .CCB = .LCCB;
; 0994 return true;
; 0995 end;
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 17
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (8)
.GLOBL $CCBGT
.SBTTL CCB.GET
000000 010446 ; CCB.GET
U.12: MOV R4,-(SP) ; 0946
000002 004767 000000G JSR PC,$CCBGT ; 0977
000006 103437 BLO 2$ ; 0979
000010 005064 000004 CLR 4(R4) ; *(LCCB) 0980
000014 005064 000002 CLR 2(R4) ; *(LCCB) 0981
000020 005064 000016 CLR 16(R4) ; *(LCCB) 0982
000024 005064 000020 CLR 20(R4) ; *(LCCB) 0983
000030 005064 000024 CLR 24(R4) ; *(LCCB) 0984
000034 005064 000026 CLR 26(R4) ; *(LCCB) 0985
000040 005064 000030 CLR 30(R4) ; *(LCCB) 0986
000044 005064 000032 CLR 32(R4) ; *(LCCB) 0987
000050 005064 000034 CLR 34(R4) ; *(LCCB) 0988
000054 026627 000004 177777 CMP 4(SP),#-1 ; PDB,* 0990
000062 001404 BEQ 1$
000064 016600 000004 MOV 4(SP),R0 ; PDB,* 0992
000070 005260 000054 INC 54(R0)
000074 010476 000006 1$: MOV R4,@6(SP) ; LCCB,CCB 0993
000100 012700 000001 MOV #1,R0 ; 0971
000104 000401 BR 3$
000106 005000 2$: CLR R0 ; 0946
000110 012604 3$: MOV (SP)+,R4
000112 000207 RTS PC
; Routine Size: 38 words, Routine Base: $CODE$ + 0364
; Maximum stack depth per invocation: 2 words
; 0996
; 0997
; 0998
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 18
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (9)
; 0999 routine CCB_HDR_GET ( CCB, LCCB, PDB ) = !
; 1000
; 1001 !++
; 1002 ! FUNCTIONAL DESCRIPTION:
; 1003 ! This routine allocates a CCB and a header buffer from DSR space.
; 1004 !
; 1005 ! FORMAL PARAMETERS:
; 1006 ! LCCB = CCB Address to stack
; 1007 ! PDB = Port Data Base address
; 1008 ! CCB = CCB address
; 1009 !
; 1010 ! IMPLICIT INPUTS:
; 1011 ! none
; 1012 !
; 1013 ! IMPLICIT OUTPUTS:
; 1014 ! None
; 1015 !
; 1016 ! ROUTINE VALUE:
; 1017 ! COMPLETION CODES:
; 1018 ! None
; 1019 !
; 1020 ! SIDE EFFECTS:
; 1021 ! None
; 1022 !--
; 1023
; 1024
; 1025 begin
; 1026 map CCB: ref block field(C_fields);
; 1027 map PDB: ref block field(PORT_fields);
; 1028 map LCCB: ref block field(C_fields);
; 1029
; 1030 If not CCBGT$(.LCCB)
; 1031 Then
; 1032 return false;
; 1033 begin
; 1034 bind XCCB = .LCCB: ref block field(C_fields);
; 1035 XCCB[C_STK] = 0;
; 1036 XCCB[C_CHN] = 0;
; 1037 XCCB[C_PRM1] = 0;
; 1038 XCCB[C_PRM2] = 0;
; 1039 XCCB[C_PRM3] = 0;
; 1040 XCCB[C_PRM4] = 0;
; 1041 XCCB[C_PRM5] = 0;
; 1042 XCCB[C_BIAS] = 0;
; 1043
; 1044 If not $MCB_GET_DSR(hdb_size, XCCB[C_ADDR])
; 1045 Then
; 1046 begin
; 1047 CCBRT$(..LCCB);
; 1048 return false;
; 1049 end;
; 1050 If .CCB neq 0
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 19
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (9)
; 1051 Then
; 1052 XCCB[C_STK] = .CCB;
; 1053 end;
; 1054
; 1055 If .PDB neq -1
; 1056 Then
; 1057 PDB[COUNTres] = .PDB[COUNTres] + 1;
; 1058 return true;
; 1059 end;
.GLOBL $DSRGT, $CCBRT
.SBTTL CCB.HDR.GET
000000 004167 000000G ; CCB.HDR.GET
U.13: JSR R1,$SAVE4 ; 0999
000004 004767 000000G JSR PC,$CCBGT ; 1030
000010 103460 BCS 5$
000012 010476 000016 MOV R4,@16(SP) ; $MCB$R4,LCCB
000016 010402 MOV R4,R2 ; LCCB,* 1035
000020 005062 000004 CLR 4(R2)
000024 005062 000002 CLR 2(R2) ; 1036
000030 005062 000024 CLR 24(R2) ; 1037
000034 005062 000026 CLR 26(R2) ; 1038
000040 005062 000030 CLR 30(R2) ; 1039
000044 005062 000032 CLR 32(R2) ; 1040
000050 005062 000034 CLR 34(R2) ; 1041
000054 005062 000016 CLR 16(R2) ; 1042
000060 012701 000014 MOV #14,R1 ; 1044
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,* 1047
000104 004767 000000G JSR PC,$CCBRT
000110 000420 BR 5$ ; 1046
000112 016600 000020 2$: MOV 20(SP),R0 ; CCB,* 1050
000116 001402 BEQ 3$
000120 010062 000004 MOV R0,4(R2) ; 1052
000124 026627 000014 177777 3$: CMP 14(SP),#-1 ; PDB,* 1055
000132 001404 BEQ 4$
000134 016600 000014 MOV 14(SP),R0 ; PDB,* 1057
000140 005260 000054 INC 54(R0)
000144 012700 000001 4$: MOV #1,R0 ; 1025
000150 000207 RTS PC
000152 005000 5$: CLR R0 ; 0999
000154 000207 RTS PC
; Routine Size: 55 words, Routine Base: $CODE$ + 0500
; Maximum stack depth per invocation: 6 words
; 1060
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 20
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (9)
; 1061
; 1062
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 21
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (10)
; 1063 routine CCB_RETRN ( CCB, PDB): novalue = !
; 1064
; 1065 !++
; 1066 ! FUNCTIONAL DESCRIPTION:
; 1067 ! This routine deallocates a CCB.
; 1068 !
; 1069 ! FORMAL PARAMETERS:
; 1070 ! CCB = CCB address
; 1071 ! PDB = Port Data Base address
; 1072 !
; 1073 ! IMPLICIT INPUTS:
; 1074 ! None
; 1075 !
; 1076 ! IMPLICIT OUTPUTS:
; 1077 ! None
; 1078 !
; 1079 ! ROUTINE VALUE:
; 1080 ! COMPLETION CODES:
; 1081 ! None
; 1082 !
; 1083 ! SIDE EFFECTS:
; 1084 ! None
; 1085 !--
; 1086
; 1087
; 1088 begin
; 1089 map PDB: ref block field(PORT_fields);
; 1090
; 1091 local
; 1092 temp,
; 1093 NDB : ref block field(NODE_fields),
; 1094 CLZ_CCB: ref block field(C_fields);
; 1095
; 1096
; 1097 CCBRT$( .CCB);
; 1098
; 1099 If .PDB neq -1
; 1100 Then
; 1101 begin
; 1102 PDB[COUNTres] = .PDB[COUNTres] - 1;
; 1103
; 1104 If .PDB[PORTstate] eql N$SCL and
; 1105 .PDB[COUNTres] eql 0
; 1106 Then
; 1107 begin
; 1108 NDB = .PDB[NODElnk];
; 1109 PDB[FLAGinuse] = false;
; 1110 CMQRM$( PDB[MSG_queue], CLZ_CCB);
; 1111 CLZ_CCB[C_FNC] = FC_XCP;
; 1112 CLZ_CCB[C_STS] = N$SSUC;
; 1113 LLCRS$( .CLZ_CCB);
; 1114 end;
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 22
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (10)
; 1115 End;
; 1116 end;
.GLOBL $CMQRM
.SBTTL CCB.RETRN
000000 004167 000000G ; CCB.RETRN
U.14: JSR R1,$SAVE4 ; 1063
000004 016604 000016 MOV 16(SP),R4 ; CCB,* 1097
000010 004767 000000G JSR PC,$CCBRT
000014 016603 000014 MOV 14(SP),R3 ; PDB,* 1099
000020 020327 177777 CMP R3,#-1
000024 001431 BEQ 1$
000026 005363 000054 DEC 54(R3) ; 1102
000032 121327 000017 CMPB (R3),#17 ; 1104
000036 001024 BNE 1$
000040 005763 000054 TST 54(R3) ; 1105
000044 001021 BNE 1$
000046 016304 000010 MOV 10(R3),R4 ; *,NDB 1108
000052 142763 000001 000042 BICB #1,42(R3) ; 1109
000060 062703 000102 ADD #102,R3 ; 1110
000064 004767 000000G JSR PC,$CMQRM
000070 112764 000014 000012 MOVB #14,12(R4) ; *,*(CLZ.CCB) 1111
000076 012764 000001 000014 MOV #1,14(R4) ; *,*(CLZ.CCB) 1112
000104 004767 000000G JSR PC,$SCHED ; 1113
000110 000207 1$: RTS PC ; 1063
; Routine Size: 37 words, Routine Base: $CODE$ + 0656
; Maximum stack depth per invocation: 6 words
; 1117
; 1118
; 1119
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 23
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (11)
; 1120 routine DADD ( double_word, value ) :novalue = !
; 1121
; 1122 !++
; 1123 ! FUNCTIONAL DESCRIPTION:
; 1124 ! This routine performs double percision arithemitic.
; 1125 !
; 1126 ! FORMAL PARAMETERS:
; 1127 ! DOUBLE_WORD = address to add VALUE to
; 1128 ! VALUE = value to add to DOUBLE_WORD
; 1129 !
; 1130 ! IMPLICIT INPUTS:
; 1131 ! None
; 1132 !
; 1133 ! IMPLICIT OUTPUTS:
; 1134 ! None
; 1135 !
; 1136 ! ROUTINE VALUE:
; 1137 ! COMPLETION CODES:
; 1138 ! None
; 1139 !
; 1140 ! SIDE EFFECTS:
; 1141 ! None
; 1142 !--
; 1143
; 1144
; 1145 begin
; 1146 builtin ROT;
; 1147 map double_word: ref block field(long_word);
; 1148
; 1149 if rot(double_word[low] = .double_word[low] + .value, 1)
; 1150 then
; 1151 begin
; 1152 if rot(double_word[hi] = .double_word[hi] + 1, 1)
; 1153 then
; 1154 begin
; 1155 double_word[low] = -1;
; 1156 double_word[hi] = -1;
; 1157 end
; 1158 end
; 1159 end;
.SBTTL DADD
000000 010146 ; DADD
U.15: MOV R1,-(SP) ; 1120
000002 016601 000006 MOV 6(SP),R1 ; DOUBLE.WORD,* 1149
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 ; 1152
000024 062700 000001 ADD #1,R0
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 24
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (11)
000030 010061 000002 MOV R0,2(R1)
000034 103004 BCC 1$
000036 012711 177777 MOV #-1,(R1) ; 1155
000042 011161 000002 MOV (R1),2(R1) ; 1156
000046 012601 1$: MOV (SP)+,R1 ; 1120
000050 000207 RTS PC
; Routine Size: 21 words, Routine Base: $CODE$ + 0770
; Maximum stack depth per invocation: 2 words
; 1160
; 1161
; 1162
; 1163
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 25
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (12)
; 1164 routine DATA_TO_SND ( PDB) : = !
; 1165
; 1166 !++
; 1167 ! FUNCTIONAL DESCRIPTION:
; 1168 ! This routine checks to see if flow control permission allows
; 1169 ! a data segment to be transmitted.
; 1170 !
; 1171 ! FORMAL PARAMETERS:
; 1172 ! PDB = Port Data Base Address
; 1173 !
; 1174 ! IMPLICIT INPUTS:
; 1175 ! DB = NSP Data Base Address
; 1176 !
; 1177 ! IMPLICIT OUTPUTS:
; 1178 ! None
; 1179 !
; 1180 ! ROUTINE VALUE:
; 1181 ! COMPLETION CODES:
; 1182 ! None
; 1183 !
; 1184 ! SIDE EFFECTS:
; 1185 ! None
; 1186 !--
; 1187
; 1188 begin
; 1189 map PDB: ref block field(PORT_fields);
; 1190
; 1191 If ((.PDB[PORTstate] eql N$SRUN) or
; 1192 (.PDB[PORTstate] eql N$SDI and
; 1193 (CMP_NEQ(.PDB[NUMhigh], .PDB[ACKrcv_dat]))))
; 1194 Then
; 1195 begin
; 1196 If not .PDB[FLOWsw_rem]
; 1197 Then
; 1198 return false;
; 1199 If (CMP_LEQ( .PDB[NUMdat], .PDB[NUMhigh])) or
; 1200 .PDB[FLAGseg] eql false
; 1201 Then
; 1202 begin
; 1203 Case .PDB[FLOWtyp_rem] from FLOWnone to FLOWmsg of
; 1204 Set
; 1205 [FLOWnone]:
; 1206 return true;
; 1207 [FLOWseg]:
; 1208 begin
; 1209 If .PDB[FLAGseg] eql true
; 1210 Then
; 1211 begin
; 1212 If (CMP_LEQ( .PDB[NUMdat], (.PDB[ACKrcv_dat] + .PDB[FLOWdat_rem])))
; 1213 Then
; 1214 return true
; 1215 end
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 26
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (12)
; 1216 Else
; 1217 begin
; 1218 bind CCB = .PDB[ACK_queue]: block field(C_fields);
; 1219 If (CMP_LEQ( .CCB[C_STS], (.PDB[ACKrcv_dat] + .PDB[FLOWdat_rem])))
; 1220 Then
; 1221 return true
; 1222 end;
; 1223 end;
; 1224 [FLOWmsg]:
; 1225 If (0 lss .PDB[FLOWdat_rem]) or
; 1226 .PDB[FLAGseg] eql false
; 1227 Then
; 1228 return true;
; 1229 Tes;
; 1230 end;
; 1231 return false
; 1232
; 1233 end
; 1234 Else
; 1235 return false;
; 1236 end;
.SBTTL DATA.TO.SND
000000 010146 ; DATA.TO.SND
U.17: MOV R1,-(SP) ; 1164
000002 016601 000004 MOV 4(SP),R1 ; PDB,* 1191
000006 121127 000013 CMPB (R1),#13
000012 001412 BEQ 1$
000014 121127 000014 CMPB (R1),#14 ; 1192
000020 001121 BNE 8$
000022 016100 000034 MOV 34(R1),R0 ; 1193
000026 166100 000026 SUB 26(R1),R0
000032 032700 007777 BIT #7777,R0
000036 001512 BEQ 8$
000040 032761 002000 000040 1$: BIT #2000,40(R1) ; 1196
000046 001506 BEQ 8$ ; 1198
000050 016100 000026 MOV 26(R1),R0 ; 1199
000054 166100 000020 SUB 20(R1),R0
000060 062700 004000 ADD #4000,R0
000064 042700 170000 BIC #170000,R0
000070 020027 004000 CMP R0,#4000
000074 103004 BHIS 2$
000076 132761 000040 000042 BITB #40,42(R1) ; 1200
000104 001067 BNE 8$
000106 016100 000040 2$: MOV 40(R1),R0 ; 1203
000112 072027 177766 ASH #-12,R0
000116 042700 177771 BIC #177771,R0
000122 066007 000000' ADD P.AAA(R0),PC ; Case dispatch
000126 000453 3$: BR 7$ ; 1206
000130 132761 000040 000042 4$: BITB #40,42(R1) ; 1209
000136 001417 BEQ 5$
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 27
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (12)
000140 005000 CLR R0 ; 1212
000142 156100 000037 BISB 37(R1),R0
000146 066100 000034 ADD 34(R1),R0
000152 166100 000020 SUB 20(R1),R0
000156 062700 004000 ADD #4000,R0
000162 042700 170000 BIC #170000,R0
000166 020027 004000 CMP R0,#4000
000172 103434 BLO 8$
000174 000430 BR 7$ ; 1214
000176 005000 5$: CLR R0 ; 1219
000200 156100 000037 BISB 37(R1),R0
000204 066100 000034 ADD 34(R1),R0
000210 016101 000116 MOV 116(R1),R1
000214 166100 000014 SUB 14(R1),R0
000220 062700 004000 ADD #4000,R0
000224 042700 170000 BIC #170000,R0
000230 020027 004000 CMP R0,#4000
000234 103413 BLO 8$
000236 000407 BR 7$ ; 1221
000240 105761 000037 6$: TSTB 37(R1) ; 1225
000244 001004 BNE 7$
000246 132761 000040 000042 BITB #40,42(R1) ; 1226
000254 001003 BNE 8$
000256 012700 000001 7$: MOV #1,R0 ; 1228
000262 000401 BR 9$
000264 005000 8$: CLR R0 ; 1164
000266 012601 9$: MOV (SP)+,R1
000270 000207 RTS PC
; Routine Size: 93 words, Routine Base: $CODE$ + 1042
; Maximum stack depth per invocation: 2 words
000000 .PSECT $PLIT$, RO , D
P.AAA: ; CASE Table for DATA.TO.SND+0122 1203
000000 000130 .WORD 130 ; [7$]
000002 000002 .WORD 2 ; [4$]
000004 000112 .WORD 112 ; [6$]
; 1237
; 1238
; 1239
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 28
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (13)
; 1240 routine DATA_RECVD ( CCB, PDB): novalue = !
; 1241
; 1242 !++
; 1243 ! FUNCTIONAL DESCRIPTION:
; 1244 ! This routine generates a DATA-RECIEVED call to Session Control.
; 1245 !
; 1246 ! FORMAL PARAMETERS:
; 1247 ! DB = NSP Data Base Address
; 1248 ! PDB = Port Data Base Address
; 1249 ! CCB = CCB Address
; 1250 !
; 1251 ! IMPLICIT INPUTS:
; 1252 ! None
; 1253 !
; 1254 ! IMPLICIT OUTPUTS:
; 1255 ! None
; 1256 !
; 1257 ! ROUTINE VALUE:
; 1258 ! COMPLETION CODES:
; 1259 ! None
; 1260 !
; 1261 ! SIDE EFFECTS:
; 1262 ! None
; 1263 !--
; 1264
; 1265
; 1266 begin
; 1267 map PDB: ref block field(PORT_fields);
; 1268 map CCB: ref block field(C_fields);
; 1269
; 1270 bind STK_CCB = .CCB[C_STK]: block field(C_fields);
; 1271
; 1272 local
; 1273 PTR,
; 1274 CHR;
; 1275
; 1276 PTR = .STK_CCB[C_ADDR];
; 1277 MAP$( .STK_CCB[C_BIAS]);
; 1278 CHR = ch$rchar( .PTR);
; 1279
; 1280 If (.CHR and FLG_EOM) neq 0
; 1281 Then
; 1282 CCB[C_PRM1] = N$FEOM;
; 1283 If (.CHR and FLG_BOM) neq 0
; 1284 Then
; 1285 CCB[C_PRM1] = .CCB[C_PRM1] or N$FBOM;
; 1286 PTR = ch$plus( .STK_CCB[C_ADDR], 6 );
; 1287 CHR = ch$rchar( .PTR);
; 1288
; 1289 If .CHR<7, 1>
; 1290 Then
; 1291 CHR = 9
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 29
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (13)
; 1292 Else
; 1293 CHR = 7;
; 1294
; 1295 MAP$( .DB[BIASports]);
; 1296
; 1297 CCB[C_FNC] = FC_RCP;
; 1298 CCB[C_MOD] = N_RDAT;
; 1299 CCB[C_LIX] = .PDB[PID];
; 1300 CCB[C_BIAS] = .STK_CCB[C_BIAS];
; 1301 CCB[C_CNT] = .STK_CCB[C_CNT] - .CHR;
; 1302 CCB[C_ADDR] = ch$plus( .STK_CCB[C_ADDR], .CHR);
; 1303 CCB[C_STS] = N$SSUC;
; 1304 CCB[C_PIX] = .DB[NSPsc_pix];
; 1305 LLCRS$( .CCB);
; 1306 end;
.GLOBL KISAR6
.SBTTL DATA.RECVD
001334 .PSECT $CODE$, RO
000000 004167 000000G ; DATA.RECVD
U.16: JSR R1,$SAVE4 ; 1240
000004 016604 000016 MOV 16(SP),R4 ; CCB,* 1270
000010 016402 000004 MOV 4(R4),R2 ; 1266
000014 016203 000020 MOV 20(R2),R3 ; 1276
000020 010300 MOV R3,R0 ; *,PTR
000022 016267 000016 000000G MOV 16(R2),KISAR6 ; 1277
000030 005001 CLR R1 ; CHR 1278
000032 151001 BISB (R0),R1 ; PTR,CHR
000034 032701 000100 BIT #100,R1 ; *,CHR 1280
000040 001403 BEQ 1$
000042 012764 000001 000024 MOV #1,24(R4) ; 1282
000050 032701 000040 1$: BIT #40,R1 ; *,CHR 1283
000054 001403 BEQ 2$
000056 052764 000002 000024 BIS #2,24(R4) ; 1285
000064 010300 2$: MOV R3,R0 ; *,PTR 1286
000066 062700 000006 ADD #6,R0 ; *,PTR
000072 005001 CLR R1 ; CHR 1287
000074 151001 BISB (R0),R1 ; PTR,CHR
000076 100003 BPL 3$ ; 1289
000100 012701 000011 MOV #11,R1 ; *,CHR 1291
000104 000402 BR 4$ ; 1289
000106 012701 000007 3$: MOV #7,R1 ; *,CHR 1293
000112 016700 000002G 4$: MOV .CRDAT+2,R0 ; 1295
000116 016067 000014 000000G MOV 14(R0),KISAR6
000124 112764 000016 000012 MOVB #16,12(R4) ; 1297
000132 112764 000010 000013 MOVB #10,13(R4) ; 1298
000140 016600 000014 MOV 14(SP),R0 ; PDB,* 1299
000144 116064 000004 000010 MOVB 4(R0),10(R4)
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 30
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (13)
000152 016264 000016 000016 MOV 16(R2),16(R4) ; 1300
000160 016264 000022 000022 MOV 22(R2),22(R4) ; 1301
000166 160164 000022 SUB R1,22(R4) ; CHR,*
000172 010164 000020 MOV R1,20(R4) ; CHR,* 1302
000176 060364 000020 ADD R3,20(R4)
000202 012764 000001 000014 MOV #1,14(R4) ; 1303
000210 016700 000002G MOV .CRDAT+2,R0 ; 1304
000214 116064 000044 000011 MOVB 44(R0),11(R4)
000222 004767 000000G JSR PC,$SCHED ; 1305
000226 000207 RTS PC ; 1240
; Routine Size: 76 words, Routine Base: $CODE$ + 1334
; Maximum stack depth per invocation: 6 words
; 1307
; 1308
; 1309
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 31
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (14)
; 1310 routine DRQ_BLD ( CCB, PDB) : novalue = !
; 1311
; 1312 !++
; 1313 ! FUNCTIONAL DESCRIPTION:
; 1314 ! This routine formats an NSP Data Request message and queues it to
; 1315 ! Transport.
; 1316 !
; 1317 ! FORMAL PARAMETERS:
; 1318 ! PDB = Port Data Base Address
; 1319 ! CCB = CCB Address
; 1320 !
; 1321 ! IMPLICIT INPUTS:
; 1322 ! DB = NSP Data Base Address
; 1323 !
; 1324 ! IMPLICIT OUTPUTS:
; 1325 ! None
; 1326 !
; 1327 ! ROUTINE VALUE:
; 1328 ! COMPLETION CODES:
; 1329 ! None
; 1330 !
; 1331 ! SIDE EFFECTS:
; 1332 ! None
; 1333 !--
; 1334
; 1335 begin
; 1336 map CCB: ref block field(C_fields);
; 1337 map PDB: ref block field(PORT_fields);
; 1338
; 1339 bind STK_CCB = .CCB[C_STK]: block field(C_fields);
; 1340
; 1341 local
; 1342 PTR;
; 1343
; 1344 PTR = .CCB[C_ADDR];
; 1345
; 1346 ch$wchar_a( FLG_REQ, PTR);
; 1347 ch$wchar_a( .PDB[L_rem_addr], PTR);
; 1348 ch$wchar_a( .PDB[H_rem_addr], PTR);
; 1349 ch$wchar_a( .PDB[PID], PTR);
; 1350 ch$wchar_a( .PDB[ADDran], PTR);
; 1351 PUT2BYTES( (.PDB[ACKoth_xmt] and %o'7777') + Q_ACK^12 + true^15, PTR);
; 1352 PUT2BYTES( (.PDB[NUMoth] and %o'7777'), PTR);
; 1353
; 1354 If .STK_CCB[C_PRM1] eql 0
; 1355 Then
; 1356 ch$wchar_a( FC_NCHG + FC_DATA^2, PTR)
; 1357 Else
; 1358 ch$wchar_a( FC_SEND + FC_DATA^2, PTR);
; 1359 ch$wchar_a( .STK_CCB[C_PRM1], PTR);
; 1360
; 1361 CCB[C_CNT] = ch$diff(.PTR, .CCB[C_ADDR]);
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 32
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (14)
; 1362 STK_CCB[C_STS] = .PDB[NUMoth];
; 1363
; 1364 PDB[OTHtyp] = OTHdrequest;
; 1365 PDB[FLAGoth_ack] = false;
; 1366 PDB[OTHstate] = OTHsent;
; 1367
; 1368 XPT_XMIT( .CCB, .PDB)
; 1369 end;
.SBTTL DRQ.BLD
000000 004167 000000G ; DRQ.BLD
U.18: JSR R1,$SAVE5 ; 1310
000004 016603 000020 MOV 20(SP),R3 ; CCB,* 1339
000010 016302 000004 MOV 4(R3),R2 ; 1335
000014 016304 000020 MOV 20(R3),R4 ; *,PTR 1344
000020 112724 000020 MOVB #20,(R4)+ ; *,PTR 1346
000024 016601 000016 MOV 16(SP),R1 ; PDB,* 1347
000030 116124 000006 MOVB 6(R1),(R4)+ ; *,PTR
000034 116124 000007 MOVB 7(R1),(R4)+ ; *,PTR 1348
000040 116124 000004 MOVB 4(R1),(R4)+ ; *,PTR 1349
000044 116124 000005 MOVB 5(R1),(R4)+ ; *,PTR 1350
000050 016100 000032 MOV 32(R1),R0 ; *,TEMP 1351
000054 042700 170000 BIC #170000,R0 ; *,TEMP
000060 162700 100000 SUB #100000,R0 ; *,TEMP
000064 110024 MOVB R0,(R4)+ ; TEMP,PTR
000066 010005 MOV R0,R5 ; TEMP,*
000070 000305 SWAB R5
000072 110524 MOVB R5,(R4)+ ; *,PTR
000074 016100 000024 MOV 24(R1),R0 ; *,TEMP 1352
000100 042700 170000 BIC #170000,R0 ; *,TEMP
000104 110024 MOVB R0,(R4)+ ; TEMP,PTR
000106 010005 MOV R0,R5 ; TEMP,*
000110 000305 SWAB R5
000112 110524 MOVB R5,(R4)+ ; *,PTR
000114 016200 000024 MOV 24(R2),R0 ; 1354
000120 001002 BNE 1$
000122 105014 CLRB (R4) ; PTR 1356
000124 000402 BR 2$ ; 1354
000126 112714 000002 1$: MOVB #2,(R4) ; *,PTR 1358
000132 005204 2$: INC R4 ; PTR 1356
000134 110024 MOVB R0,(R4)+ ; *,PTR 1359
000136 010463 000022 MOV R4,22(R3) ; PTR,* 1361
000142 166363 000020 000022 SUB 20(R3),22(R3)
000150 016162 000024 000014 MOV 24(R1),14(R2) ; 1362
000156 112761 000004 000065 MOVB #4,65(R1) ; 1364
000164 042761 040000 000040 BIC #40000,40(R1) ; 1365
000172 112761 000001 000064 MOVB #1,64(R1) ; 1366
000200 010346 MOV R3,-(SP) ; 1368
000202 010146 MOV R1,-(SP)
000204 004767 000000V JSR PC,U.45
000210 022626 CMP (SP)+,(SP)+ ; 1335
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 33
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (14)
000212 000207 RTS PC ; 1310
; Routine Size: 70 words, Routine Base: $CODE$ + 1564
; Maximum stack depth per invocation: 9 words
; 1370
; 1371
; 1372
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 34
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (15)
; 1373 routine DRQ_RCV ( CCB, PDB) : novalue = !
; 1374
; 1375 !++
; 1376 ! FUNCTIONAL DESCRIPTION:
; 1377 ! This routine processes a received Data Request message.
; 1378 !
; 1379 ! FORMAL PARAMETERS:
; 1380 ! PDB = Port Data Base Address
; 1381 ! CCB = CCB Address
; 1382 !
; 1383 ! IMPLICIT INPUTS:
; 1384 ! DB = NSP Data Base Address
; 1385 !
; 1386 ! IMPLICIT OUTPUTS:
; 1387 ! None
; 1388 !
; 1389 ! ROUTINE VALUE:
; 1390 ! COMPLETION CODES:
; 1391 ! None
; 1392 !
; 1393 ! SIDE EFFECTS:
; 1394 ! None
; 1395 !--
; 1396
; 1397 begin
; 1398 map CCB: ref block field(C_fields);
; 1399 map PDB: ref block field(PORT_fields);
; 1400
; 1401 MAP$( .DB[BIASports]);
; 1402
; 1403 If .DB[Q_FLG]
; 1404 Then
; 1405 PROC_OTH_ACK( .CCB, .PDB);
; 1406 If .DB[SEGNUM] eql ((.PDB[ACKoth_xmt] + 1) and %o'7777')
; 1407 Then
; 1408 begin
; 1409 PDB[FLOWsw_rem] = (Selectone .DB[FCMOD] of
; 1410 Set
; 1411 [FC_SEND]: true;
; 1412 [FC_DONT]: false;
; 1413 Tes);
; 1414 Selectone .PDB[FLOWtyp_rem] of
; 1415 Set
; 1416 [FLOWseg]:
; 1417
; 1418 begin
; 1419 If (-128 leq .PDB[FLOWdat_rem] + .DB[FCVAL]) and
; 1420 (127 geq .PDB[FLOWdat_rem] + .DB[FCVAL])
; 1421 Then
; 1422 begin
; 1423 PDB[FLOWdat_rem] = .PDB[FLOWdat_rem] + .DB[FCVAL];
; 1424 PDB[ACKoth_xmt] = .PDB[ACKoth_xmt] + 1;
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 35
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (15)
; 1425 PDB[FLAGoth_ack] = true;
; 1426 end
; 1427 Else
; 1428 CALL$E( EVENT_LOG, .DB[NSPns2_pix], invflw, .PDB[FLOWdat_rem], .PDB, .CCB);
; 1429 end;
; 1430 [FLOWnone]:
; 1431
; 1432 begin
; 1433 PDB[ACKoth_xmt] = .PDB[ACKoth_xmt] + 1;
; 1434 PDB[FLAGoth_ack] = true;
; 1435 end;
; 1436
; 1437 [FLOWmsg]:
; 1438
; 1439 begin
; 1440 If (0 leq .DB[FCVAL]) and
; 1441 (127 geq .DB[FCVAL])
; 1442 Then
; 1443 begin
; 1444 PDB[FLOWdat_rem] = .PDB[FLOWdat_rem] + .DB[FCVAL];
; 1445 PDB[ACKoth_xmt] = .PDB[ACKoth_xmt] + 1;
; 1446 PDB[FLAGoth_ack] = true;
; 1447 end
; 1448 Else
; 1449 CALL$E( EVENT_LOG, .DB[NSPns2_pix], invflw, .PDB[FLOWdat_rem], .PDB, .CCB);
; 1450
; 1451 end
; 1452 Tes;
; 1453 end
; 1454 Else
; 1455 begin
; 1456 If (CMP_LEQ( .DB[SEGNUM], .PDB[ACKoth_xmt]))
; 1457 Then
; 1458 PDB[FLAGoth_ack] = true
; 1459 end;
; 1460 CCB[C_FNC] = FC_RCE;
; 1461 LLCRS$( .CCB)
; 1462 end;
.GLOBL EVENT.LOG, $CALLE
.SBTTL DRQ.RCV
000000 004167 000000G ; DRQ.RCV
U.19: JSR R1,$SAVE5 ; 1373
000004 016700 000002G MOV .CRDAT+2,R0 ; 1401
000010 016067 000014 000000G MOV 14(R0),KISAR6
000016 016700 000002G MOV .CRDAT+2,R0 ; 1403
000022 005760 000060 TST 60(R0)
000026 100007 BPL 1$
000030 016646 000020 MOV 20(SP),-(SP) ; CCB,* 1405
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 36
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (15)
000034 016646 000020 MOV 20(SP),-(SP) ; PDB,*
000040 004767 000000V JSR PC,U.34
000044 022626 CMP (SP)+,(SP)+
000046 016702 000002G 1$: MOV .CRDAT+2,R2 ; 1406
000052 016604 000016 MOV 16(SP),R4 ; PDB,*
000056 012705 000032 MOV #32,R5
000062 060405 ADD R4,R5
000064 011500 MOV (R5),R0
000066 005200 INC R0
000070 010003 MOV R0,R3
000072 042703 170000 BIC #170000,R3
000076 016201 000062 MOV 62(R2),R1
000102 020103 CMP R1,R3
000104 001172 BNE 11$
000106 012703 000040 MOV #40,R3 ; 1409
000112 060403 ADD R4,R3
000114 016200 000056 MOV 56(R2),R0
000120 072027 177770 ASH #-10,R0
000124 042700 177774 BIC #177774,R0
000130 020027 000002 CMP R0,#2
000134 001003 BNE 2$
000136 012700 000001 MOV #1,R0
000142 000407 BR 4$
000144 020027 000001 2$: CMP R0,#1
000150 001403 BEQ 3$
000152 012700 177777 MOV #-1,R0
000156 000401 BR 4$
000160 005000 3$: CLR R0
000162 042713 002000 4$: BIC #2000,(R3)
000166 032700 000001 BIT #1,R0
000172 001402 BEQ 5$
000174 052713 002000 BIS #2000,(R3)
000200 011300 5$: MOV (R3),R0 ; 1414
000202 042700 163777 BIC #163777,R0
000206 020027 004000 CMP R0,#4000
000212 001044 BNE 7$
000214 005001 CLR R1 ; 1419
000216 156401 000037 BISB 37(R4),R1
000222 005000 CLR R0
000224 156200 000071 BISB 71(R2),R0
000230 060100 ADD R1,R0
000232 020027 177600 CMP R0,#-200
000236 002415 BLT 6$
000240 020027 000177 CMP R0,#177 ; 1420
000244 003012 BGT 6$
000246 005001 CLR R1 ; 1423
000250 156401 000037 BISB 37(R4),R1
000254 005000 CLR R0
000256 156200 000071 BISB 71(R2),R0
000262 060100 ADD R1,R0
000264 110064 000037 MOVB R0,37(R4)
000270 000450 BR 8$ ; 1424
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 37
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (15)
000272 016646 000020 6$: MOV 20(SP),-(SP) ; CCB,* 1428
000276 010446 MOV R4,-(SP)
000300 005046 CLR -(SP)
000302 116416 000037 MOVB 37(R4),(SP)
000306 012746 000001 MOV #1,-(SP)
000312 012746 000004 MOV #4,-(SP)
000316 012746 000000G MOV #EVENT.LOG,-(SP)
000322 000453 BR 10$
000324 032713 014000 7$: BIT #14000,(R3) ; 1414
000330 001430 BEQ 8$ ; 1433
000332 011300 MOV (R3),R0 ; 1414
000334 042700 163777 BIC #163777,R0
000340 020027 010000 CMP R0,#10000
000344 001067 BNE 12$
000346 012701 000036 MOV #36,R1 ; 1444
000352 060401 ADD R4,R1
000354 005000 CLR R0 ; 1440
000356 156200 000071 BISB 71(R2),R0
000362 005700 TST R0
000364 002416 BLT 9$
000366 020027 000177 CMP R0,#177 ; 1441
000372 003013 BGT 9$
000374 116146 000001 MOVB 1(R1),-(SP) ; 1444
000400 105066 000001 CLRB 1(SP)
000404 060016 ADD R0,(SP)
000406 112661 000001 MOVB (SP)+,1(R1)
000412 005215 8$: INC (R5) ; 1445
000414 052713 040000 BIS #40000,(R3) ; 1446
000420 000441 BR 12$ ; 1440
000422 016646 000020 9$: MOV 20(SP),-(SP) ; CCB,* 1449
000426 010446 MOV R4,-(SP)
000430 005046 CLR -(SP)
000432 116116 000001 MOVB 1(R1),(SP)
000436 012746 000001 MOV #1,-(SP)
000442 012746 000004 MOV #4,-(SP)
000446 012746 000000G MOV #EVENT.LOG,-(SP)
000452 005046 10$: CLR -(SP)
000454 116216 000047 MOVB 47(R2),(SP)
000460 004767 000000G JSR PC,$CALLE
000464 062706 000016 ADD #16,SP
000470 000415 BR 12$ ; 1414
000472 011500 11$: MOV (R5),R0 ; 1456
000474 166200 000062 SUB 62(R2),R0
000500 062700 004000 ADD #4000,R0
000504 042700 170000 BIC #170000,R0
000510 020027 004000 CMP R0,#4000
000514 103403 BLO 12$
000516 052764 040000 000040 BIS #40000,40(R4) ; 1458
000524 016600 000020 12$: MOV 20(SP),R0 ; CCB,* 1460
000530 112760 000004 000012 MOVB #4,12(R0)
000536 010004 MOV R0,R4 ; CCB,* 1461
000540 004767 000000G JSR PC,$SCHED
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 38
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (15)
000544 000207 RTS PC ; 1373
; Routine Size: 179 words, Routine Base: $CODE$ + 2000
; Maximum stack depth per invocation: 14 words
; 1463
; 1464
; 1465
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 39
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (16)
; 1466 routine D_REQ_TO_SND ( PDB) : = !
; 1467
; 1468 !++
; 1469 ! FUNCTIONAL DESCRIPTION:
; 1470 ! This routine tests all the conditions needed to transmit a Data
; 1471 ! Request message.
; 1472 !
; 1473 ! FORMAL PARAMETERS:
; 1474 ! PDB = Port Data Base Address
; 1475 !
; 1476 ! IMPLICIT INPUTS:
; 1477 ! DB = NSP Data Base Address
; 1478 !
; 1479 ! IMPLICIT OUTPUTS:
; 1480 ! None
; 1481 !
; 1482 ! ROUTINE VALUE:
; 1483 ! COMPLETION CODES:
; 1484 ! None
; 1485 !
; 1486 ! SIDE EFFECTS:
; 1487 ! None
; 1488 !--
; 1489
; 1490 begin
; 1491 map PDB: ref block field(PORT_fields);
; 1492
; 1493 If .PDB[PORTstate] eql N$SRUN or
; 1494 (.PDB[PORTstate] eql N$SDI and
; 1495 (CMP_NEQ(.PDB[NUMhigh], .PDB[ACKrcv_dat])))
; 1496 Then
; 1497 begin
; 1498 If (.PDB[DATRhead] neq 0 and .PDB[OTHstate] eql OTHready)
; 1499 Then
; 1500 return true;
; 1501 return false;
; 1502 end
; 1503 Else
; 1504 return false;
; 1505 end;
.SBTTL D.REQ.TO.SND
000000 010146 ; D.REQ.TO.SND
U.21: MOV R1,-(SP) ; 1466
000002 016601 000004 MOV 4(SP),R1 ; PDB,* 1493
000006 121127 000013 CMPB (R1),#13
000012 001412 BEQ 1$
000014 121127 000014 CMPB (R1),#14 ; 1494
000020 001020 BNE 2$
000022 016100 000034 MOV 34(R1),R0 ; 1495
000026 166100 000026 SUB 26(R1),R0
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 40
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (16)
000032 032700 007777 BIT #7777,R0
000036 001411 BEQ 2$
000040 005761 000112 1$: TST 112(R1) ; 1498
000044 001406 BEQ 2$
000046 105761 000064 TSTB 64(R1)
000052 001003 BNE 2$
000054 012700 000001 MOV #1,R0 ; 1500
000060 000401 BR 3$
000062 005000 2$: CLR R0 ; 1493
000064 012601 3$: MOV (SP)+,R1 ; 1466
000066 000207 RTS PC
; Routine Size: 28 words, Routine Base: $CODE$ + 2546
; Maximum stack depth per invocation: 2 words
; 1506
; 1507
; 1508
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 41
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (17)
; 1509 routine D_RCV ( CCB, PDB) : novalue = !
; 1510
; 1511 !++
; 1512 ! FUNCTIONAL DESCRIPTION:
; 1513 ! This routine processes a received Data Segment.
; 1514 !
; 1515 ! FORMAL PARAMETERS:
; 1516 ! PDB = Port Data Base Address
; 1517 ! CCB = CCB Address
; 1518 !
; 1519 ! IMPLICIT INPUTS:
; 1520 ! DB = NSP Data Base Address
; 1521 !
; 1522 ! IMPLICIT OUTPUTS:
; 1523 ! None
; 1524 !
; 1525 ! ROUTINE VALUE:
; 1526 ! COMPLETION CODES:
; 1527 ! None
; 1528 !
; 1529 ! SIDE EFFECTS:
; 1530 ! None
; 1531 !--
; 1532
; 1533 begin
; 1534 map CCB: ref block field(C_fields);
; 1535 map PDB: ref block field(PORT_fields);
; 1536
; 1537 local PTR;
; 1538
; 1539 MAP$( .DB[BIASports]);
; 1540
; 1541 If .DB[Q_FLG]
; 1542 Then
; 1543 PROC_DATA_ACK( .CCB, .PDB);
; 1544
; 1545 If (CMP_EQL( .DB[SEGNUM], (.PDB[ACKdat_xmt] + 1)))
; 1546 Then
; 1547 REAS_DATA( .CCB, .PDB)
; 1548 Else
; 1549 begin
; 1550 If (CMP_LEQ( .DB[SEGNUM], .PDB[ACKdat_xmt]))
; 1551 Then
; 1552 PDB[FLAGdat_ack] = true;
; 1553 CCB[C_FNC] = FC_RCE;
; 1554 LLCRS$( .CCB)
; 1555 end
; 1556 end;
.SBTTL D.RCV
000000 004167 000000G ; D.RCV
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 42
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (17)
U.20: JSR R1,$SAVE4 ; 1509
000004 016700 000002G MOV .CRDAT+2,R0 ; 1539
000010 016067 000014 000000G MOV 14(R0),KISAR6
000016 016700 000002G MOV .CRDAT+2,R0 ; 1541
000022 005760 000060 TST 60(R0)
000026 100007 BPL 1$
000030 016646 000016 MOV 16(SP),-(SP) ; CCB,* 1543
000034 016646 000016 MOV 16(SP),-(SP) ; PDB,*
000040 004767 000000V JSR PC,U.33
000044 022626 CMP (SP)+,(SP)+
000046 016604 000016 1$: MOV 16(SP),R4 ; CCB,* 1547
000052 016602 000014 MOV 14(SP),R2 ; PDB,* 1545
000056 016701 000002G MOV .CRDAT+2,R1
000062 016200 000030 MOV 30(R2),R0
000066 166100 000062 SUB 62(R1),R0
000072 005200 INC R0
000074 032700 007777 BIT #7777,R0
000100 001006 BNE 2$
000102 010446 MOV R4,-(SP) ; 1547
000104 010246 MOV R2,-(SP)
000106 004767 000000V JSR PC,U.35
000112 022626 CMP (SP)+,(SP)+
000114 000207 RTS PC ; 1545
000116 016200 000030 2$: MOV 30(R2),R0 ; 1550
000122 166100 000062 SUB 62(R1),R0
000126 062700 004000 ADD #4000,R0
000132 042700 170000 BIC #170000,R0
000136 020027 004000 CMP R0,#4000
000142 103403 BLO 3$
000144 052762 020000 000040 BIS #20000,40(R2) ; 1552
000152 112764 000004 000012 3$: MOVB #4,12(R4) ; 1553
000160 004767 000000G JSR PC,$SCHED ; 1554
000164 000207 RTS PC ; 1509
; Routine Size: 59 words, Routine Base: $CODE$ + 2636
; Maximum stack depth per invocation: 8 words
; 1557
; 1558
; 1559
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 43
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (18)
; 1560 routine IRQ_BLD ( CCB, PDB) : novalue = !
; 1561
; 1562 !++
; 1563 ! FUNCTIONAL DESCRIPTION:
; 1564 ! This routine formats an NSP Interrupt Request message and queues it to
; 1565 ! Transport.
; 1566 !
; 1567 ! FORMAL PARAMETERS:
; 1568 ! PDB = Port Data Base Address
; 1569 ! CCB = CCB Address
; 1570 !
; 1571 ! IMPLICIT INPUTS:
; 1572 ! DB = NSP Data Base Address
; 1573 !
; 1574 ! IMPLICIT OUTPUTS:
; 1575 ! None
; 1576 !
; 1577 ! ROUTINE VALUE:
; 1578 ! COMPLETION CODES:
; 1579 ! None
; 1580 !
; 1581 ! SIDE EFFECTS:
; 1582 ! None
; 1583 !--
; 1584
; 1585 begin
; 1586 map CCB: ref block field(C_fields);
; 1587 map PDB: ref block field(PORT_fields);
; 1588
; 1589 bind STK_CCB = .CCB[C_STK]: block field(C_fields);
; 1590
; 1591 local
; 1592 PTR;
; 1593
; 1594 PTR = .CCB[C_ADDR];
; 1595
; 1596 ch$wchar_a( FLG_REQ, PTR);
; 1597 ch$wchar_a( .PDB[L_rem_addr], PTR);
; 1598 ch$wchar_a( .PDB[H_rem_addr], PTR);
; 1599 ch$wchar_a( .PDB[PID], PTR);
; 1600 ch$wchar_a( .PDB[ADDran], PTR);
; 1601 PUT2BYTES( (.PDB[ACKoth_xmt] and %o'7777') + Q_ACK^12 + true^15, PTR);
; 1602 PUT2BYTES( (.PDB[NUMoth] and %o'7777'), PTR);
; 1603 ch$wchar_a( FC_INTERRUPT^2, PTR);
; 1604 ch$wchar_a( 1, PTR);
; 1605 CCB[C_CNT] = ch$diff(.PTR, .CCB[C_ADDR]);
; 1606
; 1607 STK_CCB[C_STS] = .PDB[NUMoth];
; 1608 PDB[OTHtyp] = OTHirequest;
; 1609 PDB[FLAGoth_ack] = false;
; 1610 PDB[OTHstate] = OTHsent;
; 1611
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 44
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (18)
; 1612 XPT_XMIT( .CCB, .PDB)
; 1613 end;
.SBTTL IRQ.BLD
000000 004167 000000G ; IRQ.BLD
U.22: JSR R1,$SAVE5 ; 1560
000004 016603 000020 MOV 20(SP),R3 ; CCB,* 1589
000010 016302 000004 MOV 4(R3),R2 ; 1585
000014 016304 000020 MOV 20(R3),R4 ; *,PTR 1594
000020 112724 000020 MOVB #20,(R4)+ ; *,PTR 1596
000024 016601 000016 MOV 16(SP),R1 ; PDB,* 1597
000030 116124 000006 MOVB 6(R1),(R4)+ ; *,PTR
000034 116124 000007 MOVB 7(R1),(R4)+ ; *,PTR 1598
000040 116124 000004 MOVB 4(R1),(R4)+ ; *,PTR 1599
000044 116124 000005 MOVB 5(R1),(R4)+ ; *,PTR 1600
000050 016100 000032 MOV 32(R1),R0 ; *,TEMP 1601
000054 042700 170000 BIC #170000,R0 ; *,TEMP
000060 162700 100000 SUB #100000,R0 ; *,TEMP
000064 110024 MOVB R0,(R4)+ ; TEMP,PTR
000066 010005 MOV R0,R5 ; TEMP,*
000070 000305 SWAB R5
000072 110524 MOVB R5,(R4)+ ; *,PTR
000074 016100 000024 MOV 24(R1),R0 ; *,TEMP 1602
000100 042700 170000 BIC #170000,R0 ; *,TEMP
000104 110024 MOVB R0,(R4)+ ; TEMP,PTR
000106 010005 MOV R0,R5 ; TEMP,*
000110 000305 SWAB R5
000112 110524 MOVB R5,(R4)+ ; *,PTR
000114 112724 000004 MOVB #4,(R4)+ ; *,PTR 1603
000120 112724 000001 MOVB #1,(R4)+ ; *,PTR 1604
000124 010463 000022 MOV R4,22(R3) ; PTR,* 1605
000130 166363 000020 000022 SUB 20(R3),22(R3)
000136 016162 000024 000014 MOV 24(R1),14(R2) ; 1607
000144 112761 000002 000065 MOVB #2,65(R1) ; 1608
000152 042761 040000 000040 BIC #40000,40(R1) ; 1609
000160 112761 000001 000064 MOVB #1,64(R1) ; 1610
000166 010346 MOV R3,-(SP) ; 1612
000170 010146 MOV R1,-(SP)
000172 004767 000000V JSR PC,U.45
000176 022626 CMP (SP)+,(SP)+ ; 1585
000200 000207 RTS PC ; 1560
; Routine Size: 65 words, Routine Base: $CODE$ + 3024
; Maximum stack depth per invocation: 9 words
; 1614
; 1615
; 1616
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 45
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (19)
; 1617 routine IRQ_RCV ( CCB, PDB) : novalue = !
; 1618
; 1619 !++
; 1620 ! FUNCTIONAL DESCRIPTION:
; 1621 ! This routine processes a received Interrupt Request message.
; 1622 !
; 1623 ! FORMAL PARAMETERS:
; 1624 ! PDB = Port Data Base Address
; 1625 ! CCB = CCB Address
; 1626 !
; 1627 ! IMPLICIT INPUTS:
; 1628 ! DB = NSP Data Base Address
; 1629 !
; 1630 ! IMPLICIT OUTPUTS:
; 1631 ! None
; 1632 !
; 1633 ! ROUTINE VALUE:
; 1634 ! COMPLETION CODES:
; 1635 ! None
; 1636 !
; 1637 ! SIDE EFFECTS:
; 1638 ! None
; 1639 !--
; 1640
; 1641 begin
; 1642 map CCB: ref block field(C_fields);
; 1643 map PDB: ref block field(PORT_fields);
; 1644
; 1645 MAP$( .DB[BIASports]);
; 1646
; 1647 If .DB[Q_FLG]
; 1648 Then
; 1649 PROC_OTH_ACK( .CCB, .PDB);
; 1650 If .DB[SEGNUM] eql ((.PDB[ACKoth_xmt] + 1) and %o'7777')
; 1651 Then
; 1652 begin
; 1653 If .DB[FCVAL] gtr 0 and
; 1654 0 leq .PDB[FLOWint_rem] + .DB[FCVAL] and
; 1655 127 geq .PDB[FLOWint_rem] + .DB[FCVAL]
; 1656 Then
; 1657 begin
; 1658 PDB[ACKoth_xmt] = .PDB[ACKoth_xmt] + 1;
; 1659 PDB[FLAGoth_ack] = true;
; 1660 PDB[FLOWint_rem] = .PDB[FLOWint_rem] + .DB[FCVAL]
; 1661 end
; 1662 Else
; 1663 CALL$E( EVENT_LOG, .DB[NSPns2_pix], invflw, .PDB[FLOWint_rem], .PDB, .CCB);
; 1664 end
; 1665 Else
; 1666 begin
; 1667 If (CMP_LEQ( .DB[SEGNUM], .PDB[ACKoth_xmt]))
; 1668 Then
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 46
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (19)
; 1669 PDB[FLAGoth_ack] = true
; 1670 end;
; 1671 CCB[C_FNC] = FC_RCE;
; 1672 LLCRS$( .CCB)
; 1673 end;
.SBTTL IRQ.RCV
000000 004167 000000G ; IRQ.RCV
U.23: JSR R1,$SAVE4 ; 1617
000004 016700 000002G MOV .CRDAT+2,R0 ; 1645
000010 016067 000014 000000G MOV 14(R0),KISAR6
000016 016700 000002G MOV .CRDAT+2,R0 ; 1647
000022 005760 000060 TST 60(R0)
000026 100007 BPL 1$
000030 016646 000016 MOV 16(SP),-(SP) ; CCB,* 1649
000034 016646 000016 MOV 16(SP),-(SP) ; PDB,*
000040 004767 000000V JSR PC,U.34
000044 022626 CMP (SP)+,(SP)+
000046 016702 000002G 1$: MOV .CRDAT+2,R2 ; 1650
000052 016601 000014 MOV 14(SP),R1 ; PDB,*
000056 016100 000032 MOV 32(R1),R0
000062 005200 INC R0
000064 010004 MOV R0,R4
000066 042704 170000 BIC #170000,R4
000072 016203 000062 MOV 62(R2),R3
000076 020304 CMP R3,R4
000100 001060 BNE 3$
000102 012703 000040 MOV #40,R3 ; 1659
000106 060103 ADD R1,R3
000110 005004 CLR R4 ; 1653
000112 156204 000071 BISB 71(R2),R4
000116 005704 TST R4
000120 003425 BLE 2$
000122 005000 CLR R0 ; 1654
000124 156100 000040 BISB 40(R1),R0
000130 060400 ADD R4,R0
000132 100420 BMI 2$
000134 005000 CLR R0 ; 1655
000136 156100 000040 BISB 40(R1),R0
000142 060400 ADD R4,R0
000144 020027 000177 CMP R0,#177
000150 003011 BGT 2$
000152 005261 000032 INC 32(R1) ; 1658
000156 052713 040000 BIS #40000,(R3) ; 1659
000162 005000 CLR R0 ; 1660
000164 151300 BISB (R3),R0
000166 060400 ADD R4,R0
000170 110013 MOVB R0,(R3)
000172 000441 BR 4$ ; 1653
000174 016646 000016 2$: MOV 16(SP),-(SP) ; CCB,* 1663
000200 010146 MOV R1,-(SP)
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 47
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (19)
000202 005046 CLR -(SP)
000204 111316 MOVB (R3),(SP)
000206 012746 000001 MOV #1,-(SP)
000212 012746 000004 MOV #4,-(SP)
000216 012746 000000G MOV #EVENT.LOG,-(SP)
000222 005046 CLR -(SP)
000224 116216 000047 MOVB 47(R2),(SP)
000230 004767 000000G JSR PC,$CALLE
000234 062706 000016 ADD #16,SP
000240 000416 BR 4$ ; 1650
000242 016100 000032 3$: MOV 32(R1),R0 ; 1667
000246 166200 000062 SUB 62(R2),R0
000252 062700 004000 ADD #4000,R0
000256 042700 170000 BIC #170000,R0
000262 020027 004000 CMP R0,#4000
000266 103403 BLO 4$
000270 052761 040000 000040 BIS #40000,40(R1) ; 1669
000276 016600 000016 4$: MOV 16(SP),R0 ; CCB,* 1671
000302 112760 000004 000012 MOVB #4,12(R0)
000310 010004 MOV R0,R4 ; CCB,* 1672
000312 004767 000000G JSR PC,$SCHED
000316 000207 RTS PC ; 1617
; Routine Size: 104 words, Routine Base: $CODE$ + 3226
; Maximum stack depth per invocation: 13 words
; 1674
; 1675
; 1676
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 48
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (20)
; 1677 routine INT_BLD ( CCB, PDB) : novalue = !
; 1678
; 1679 !++
; 1680 ! FUNCTIONAL DESCRIPTION:
; 1681 ! This routine formats an NSP Interrupt message and queues it to
; 1682 ! Transport.
; 1683 !
; 1684 ! FORMAL PARAMETERS:
; 1685 ! PDB = Port Data Base Address
; 1686 ! CCB = CCB Address
; 1687 !
; 1688 ! IMPLICIT INPUTS:
; 1689 ! DB = NSP Data Base Address
; 1690 !
; 1691 ! IMPLICIT OUTPUTS:
; 1692 ! None
; 1693 !
; 1694 ! ROUTINE VALUE:
; 1695 ! COMPLETION CODES:
; 1696 ! None
; 1697 !
; 1698 ! SIDE EFFECTS:
; 1699 ! None
; 1700 !--
; 1701
; 1702 begin
; 1703 map CCB: ref block field(C_fields);
; 1704 map PDB: ref block field(PORT_fields);
; 1705
; 1706 bind STK_CCB = .CCB[C_STK]: block field(C_fields);
; 1707
; 1708 local
; 1709 PTR;
; 1710
; 1711 PTR = .CCB[C_ADDR];
; 1712
; 1713 ch$wchar_a( FLG_INT, PTR);
; 1714 ch$wchar_a( .PDB[L_rem_addr], PTR);
; 1715 ch$wchar_a( .PDB[H_rem_addr], PTR);
; 1716 ch$wchar_a( .PDB[PID], PTR);
; 1717 ch$wchar_a( .PDB[ADDran], PTR);
; 1718 PUT2BYTES( (.PDB[ACKoth_xmt] and %o'7777') + Q_ACK^12 + true^15, PTR);
; 1719 PUT2BYTES( (.PDB[NUMoth] and %o'7777'), PTR);
; 1720
; 1721 CCB[C_CNT] = ch$diff(.PTR, .CCB[C_ADDR]);
; 1722
; 1723 CCB[C_CHN] = .CCB[C_STK];
; 1724 STK_CCB[C_STS] = .PDB[NUMoth];
; 1725 PDB[OTHtyp] = OTHinterrupt;
; 1726 PDB[FLAGoth_ack] = false;
; 1727 PDB[OTHstate] = OTHsent;
; 1728
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 49
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (20)
; 1729 XPT_XMIT( .CCB, .PDB)
; 1730 end;
.SBTTL INT.BLD
000000 004167 000000G ; INT.BLD
U.26: JSR R1,$SAVE5 ; 1677
000004 016603 000020 MOV 20(SP),R3 ; CCB,* 1706
000010 016302 000004 MOV 4(R3),R2 ; 1702
000014 016304 000020 MOV 20(R3),R4 ; *,PTR 1711
000020 112724 000060 MOVB #60,(R4)+ ; *,PTR 1713
000024 016601 000016 MOV 16(SP),R1 ; PDB,* 1714
000030 116124 000006 MOVB 6(R1),(R4)+ ; *,PTR
000034 116124 000007 MOVB 7(R1),(R4)+ ; *,PTR 1715
000040 116124 000004 MOVB 4(R1),(R4)+ ; *,PTR 1716
000044 116124 000005 MOVB 5(R1),(R4)+ ; *,PTR 1717
000050 016100 000032 MOV 32(R1),R0 ; *,TEMP 1718
000054 042700 170000 BIC #170000,R0 ; *,TEMP
000060 162700 100000 SUB #100000,R0 ; *,TEMP
000064 110024 MOVB R0,(R4)+ ; TEMP,PTR
000066 010005 MOV R0,R5 ; TEMP,*
000070 000305 SWAB R5
000072 110524 MOVB R5,(R4)+ ; *,PTR
000074 016100 000024 MOV 24(R1),R0 ; *,TEMP 1719
000100 042700 170000 BIC #170000,R0 ; *,TEMP
000104 110024 MOVB R0,(R4)+ ; TEMP,PTR
000106 010005 MOV R0,R5 ; TEMP,*
000110 000305 SWAB R5
000112 110524 MOVB R5,(R4)+ ; *,PTR
000114 010463 000022 MOV R4,22(R3) ; PTR,* 1721
000120 166363 000020 000022 SUB 20(R3),22(R3)
000126 010263 000002 MOV R2,2(R3) ; 1723
000132 016162 000024 000014 MOV 24(R1),14(R2) ; 1724
000140 112761 000001 000065 MOVB #1,65(R1) ; 1725
000146 042761 040000 000040 BIC #40000,40(R1) ; 1726
000154 112761 000001 000064 MOVB #1,64(R1) ; 1727
000162 010346 MOV R3,-(SP) ; 1729
000164 010146 MOV R1,-(SP)
000166 004767 000000V JSR PC,U.45
000172 022626 CMP (SP)+,(SP)+ ; 1702
000174 000207 RTS PC ; 1677
; Routine Size: 63 words, Routine Base: $CODE$ + 3546
; Maximum stack depth per invocation: 9 words
; 1731
; 1732
; 1733
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 50
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (21)
; 1734 routine INT_RECVD ( CCB, PDB): novalue = !
; 1735
; 1736 !++
; 1737 ! FUNCTIONAL DESCRIPTION:
; 1738 ! This routine generates an INTERRUPT-RECIEVED call to Session Control.
; 1739 !
; 1740 ! FORMAL PARAMETERS:
; 1741 ! PDB = Port Data Base Address
; 1742 ! CCB = CCB Address
; 1743 !
; 1744 ! IMPLICIT INPUTS:
; 1745 ! DB = NSP Data Base Address
; 1746 !
; 1747 ! IMPLICIT OUTPUTS:
; 1748 ! None
; 1749 !
; 1750 ! ROUTINE VALUE:
; 1751 ! COMPLETION CODES:
; 1752 ! None
; 1753 !
; 1754 ! SIDE EFFECTS:
; 1755 ! None
; 1756 !--
; 1757
; 1758
; 1759 begin
; 1760 map PDB: ref block field(PORT_fields);
; 1761 map CCB: ref block field(C_fields);
; 1762
; 1763 bind STK_CCB = .CCB[C_STK]: block field(C_fields);
; 1764
; 1765 local
; 1766 PTR,
; 1767 CHR;
; 1768
; 1769 PTR = ch$plus( .STK_CCB[C_ADDR], 6);
; 1770 MAP$( .STK_CCB[C_BIAS]);
; 1771 CHR = ch$rchar( .PTR);
; 1772
; 1773 If .CHR<7, 1>
; 1774 Then
; 1775 CHR = 9
; 1776 Else
; 1777 CHR = 7;
; 1778
; 1779 MAP$( .DB[BIASports]);
; 1780 CCB[C_FNC] = FC_RCP;
; 1781 CCB[C_MOD] = N_RINT;
; 1782 CCB[C_LIX] = .PDB[PID];
; 1783 CCB[C_BIAS] = .STK_CCB[C_BIAS];
; 1784 CCB[C_CNT] = .STK_CCB[C_CNT] - .CHR;
; 1785 CCB[C_ADDR] = ch$plus( .STK_CCB[C_ADDR], .CHR);
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 51
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (21)
; 1786 CCB[C_STS] = N$SSUC;
; 1787 CCB[C_PIX] = .DB[NSPsc_pix];
; 1788 LLCRS$( .CCB);
; 1789 end;
.SBTTL INT.RECVD
000000 004167 000000G ; INT.RECVD
U.28: JSR R1,$SAVE4 ; 1734
000004 016604 000016 MOV 16(SP),R4 ; CCB,* 1763
000010 016402 000004 MOV 4(R4),R2 ; 1759
000014 016200 000020 MOV 20(R2),R0 ; *,PTR 1769
000020 062700 000006 ADD #6,R0 ; *,PTR
000024 016267 000016 000000G MOV 16(R2),KISAR6 ; 1770
000032 005001 CLR R1 ; CHR 1771
000034 151001 BISB (R0),R1 ; PTR,CHR
000036 100003 BPL 1$ ; 1773
000040 012701 000011 MOV #11,R1 ; *,CHR 1775
000044 000402 BR 2$ ; 1773
000046 012701 000007 1$: MOV #7,R1 ; *,CHR 1777
000052 016700 000002G 2$: MOV .CRDAT+2,R0 ; 1779
000056 016067 000014 000000G MOV 14(R0),KISAR6
000064 112764 000016 000012 MOVB #16,12(R4) ; 1780
000072 112764 000012 000013 MOVB #12,13(R4) ; 1781
000100 016600 000014 MOV 14(SP),R0 ; PDB,* 1782
000104 116064 000004 000010 MOVB 4(R0),10(R4)
000112 016264 000016 000016 MOV 16(R2),16(R4) ; 1783
000120 016264 000022 000022 MOV 22(R2),22(R4) ; 1784
000126 160164 000022 SUB R1,22(R4) ; CHR,*
000132 016264 000020 000020 MOV 20(R2),20(R4) ; 1785
000140 060164 000020 ADD R1,20(R4) ; CHR,*
000144 012764 000001 000014 MOV #1,14(R4) ; 1786
000152 016700 000002G MOV .CRDAT+2,R0 ; 1787
000156 116064 000044 000011 MOVB 44(R0),11(R4)
000164 004767 000000G JSR PC,$SCHED ; 1788
000170 000207 RTS PC ; 1734
; Routine Size: 61 words, Routine Base: $CODE$ + 3744
; Maximum stack depth per invocation: 6 words
; 1790
; 1791
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 52
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (22)
; 1792 routine INT_RCV ( CCB, PDB) : novalue = !
; 1793
; 1794 !++
; 1795 ! FUNCTIONAL DESCRIPTION:
; 1796 ! This routine processses a received Interrupt message.
; 1797 !
; 1798 ! FORMAL PARAMETERS:
; 1799 ! PDB = Port Data Base Address
; 1800 ! CCB = CCB Address
; 1801 !
; 1802 ! IMPLICIT INPUTS:
; 1803 ! DB = NSP Data Base Address
; 1804 !
; 1805 ! IMPLICIT OUTPUTS:
; 1806 ! None
; 1807 !
; 1808 ! ROUTINE VALUE:
; 1809 ! COMPLETION CODES:
; 1810 ! None
; 1811 !
; 1812 ! SIDE EFFECTS:
; 1813 ! None
; 1814 !--
; 1815
; 1816 begin
; 1817 map CCB: ref block field(C_fields);
; 1818 map PDB: ref block field(PORT_fields);
; 1819
; 1820 local
; 1821 temp,
; 1822 NDB : ref block field(NODE_fields),
; 1823 WK_CCB: ref block field(c_fields);
; 1824
; 1825 NDB = .PDB[NODElnk];
; 1826 temp = 7;
; 1827 MAP$( .DB[BIASports]);
; 1828
; 1829 If .DB[Q_FLG]
; 1830 Then
; 1831 begin
; 1832 temp = 9;
; 1833 PROC_OTH_ACK( .CCB, .PDB);
; 1834 end;
; 1835 If .DB[SEGNUM] eql (.PDB[ACKoth_xmt] + 1 and %o'7777') and
; 1836 .PDB[COUNTloc_int] gtr 0 and
; 1837 .PDB[BUFFrcv_int] eql 0
; 1838 Then
; 1839 begin
; 1840 PDB[COUNTloc_int] = .PDB[COUNTloc_int] - 1;
; 1841 PDB[FLAGoth_ack] = true;
; 1842 PDB[ACKoth_xmt] = .PDB[ACKoth_xmt] + 1;
; 1843 MAP$( .DB[BIASnodes]);
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 53
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (22)
; 1844 DADD( NDB[NDb_rcv], .CCB[C_CNT] - .temp);
; 1845 MAP$( .DB[BIASports]);
; 1846
; 1847 If CCB_GET( WK_CCB, .PDB)
; 1848 Then
; 1849 begin
; 1850 WK_CCB[C_STK] = .CCB;
; 1851 INT_RECVD( .WK_CCB, .PDB);
; 1852 return
; 1853 end;
; 1854 PDB[BUFFrcv_int] = .CCB;
; 1855 end;
; 1856 If (CMP_LEQ( .DB[SEGNUM], .PDB[ACKoth_xmt]))
; 1857 Then
; 1858 PDB[FLAGoth_ack] = true;
; 1859 CCB[C_FNC] = FC_RCE;
; 1860 LLCRS$( .CCB)
; 1861 end;
.SBTTL INT.RCV
000000 004167 000000G ; INT.RCV
U.27: JSR R1,$SAVE5 ; 1792
000004 005746 TST -(SP)
000006 016602 000020 MOV 20(SP),R2 ; PDB,* 1825
000012 016203 000010 MOV 10(R2),R3 ; *,NDB
000016 012704 000007 MOV #7,R4 ; *,TEMP 1826
000022 016700 000002G MOV .CRDAT+2,R0 ; 1827
000026 016067 000014 000000G MOV 14(R0),KISAR6
000034 016700 000002G MOV .CRDAT+2,R0 ; 1829
000040 005760 000060 TST 60(R0)
000044 100010 BPL 1$
000046 012704 000011 MOV #11,R4 ; *,TEMP 1832
000052 016646 000022 MOV 22(SP),-(SP) ; CCB,* 1833
000056 010246 MOV R2,-(SP)
000060 004767 000000V JSR PC,U.34
000064 022626 CMP (SP)+,(SP)+ ; 1831
000066 016700 000002G 1$: MOV .CRDAT+2,R0 ; 1835
000072 012701 000032 MOV #32,R1
000076 060201 ADD R2,R1
000100 011105 MOV (R1),R5
000102 005205 INC R5
000104 010546 MOV R5,-(SP)
000106 042716 170000 BIC #170000,(SP)
000112 016046 000062 MOV 62(R0),-(SP)
000116 022626 CMP (SP)+,(SP)+
000120 001065 BNE 3$
000122 005762 000056 TST 56(R2) ; 1836
000126 003462 BLE 3$
000130 005762 000046 TST 46(R2) ; 1837
000134 001057 BNE 3$
000136 005362 000056 DEC 56(R2) ; 1840
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 54
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (22)
000142 052762 040000 000040 BIS #40000,40(R2) ; 1841
000150 005211 INC (R1) ; 1842
000152 016067 000030 000000G MOV 30(R0),KISAR6 ; 1843
000160 010346 MOV R3,-(SP) ; NDB,* 1844
000162 062716 000010 ADD #10,(SP)
000166 016603 000024 MOV 24(SP),R3 ; CCB,*
000172 016346 000022 MOV 22(R3),-(SP)
000176 160416 SUB R4,(SP) ; TEMP,*
000200 004767 174426 JSR PC,U.15
000204 016700 000002G MOV .CRDAT+2,R0 ; 1845
000210 016067 000014 000000G MOV 14(R0),KISAR6
000216 012716 000004 MOV #4,(SP) ; 1847
000222 060616 ADD SP,(SP) ; WK.CCB,*
000224 010246 MOV R2,-(SP)
000226 004767 173774 JSR PC,U.12
000232 005726 TST (SP)+
000234 006000 ROR R0
000236 103013 BCC 2$
000240 016600 000004 MOV 4(SP),R0 ; WK.CCB,* 1850
000244 010360 000004 MOV R3,4(R0)
000250 010016 MOV R0,(SP) ; WK.CCB,* 1851
000252 010246 MOV R2,-(SP)
000254 004767 177326 JSR PC,U.28
000260 062706 000006 ADD #6,SP ; 1847
000264 000432 BR 5$ ; 1849
000266 010362 000046 2$: MOV R3,46(R2) ; 1854
000272 022626 CMP (SP)+,(SP)+ ; 1839
000274 016700 000002G 3$: MOV .CRDAT+2,R0 ; 1856
000300 011101 MOV (R1),R1
000302 166001 000062 SUB 62(R0),R1
000306 062701 004000 ADD #4000,R1
000312 042701 170000 BIC #170000,R1
000316 020127 004000 CMP R1,#4000
000322 103403 BLO 4$
000324 052762 040000 000040 BIS #40000,40(R2) ; 1858
000332 016600 000022 4$: MOV 22(SP),R0 ; CCB,* 1859
000336 112760 000004 000012 MOVB #4,12(R0)
000344 010004 MOV R0,R4 ; CCB,* 1860
000346 004767 000000G JSR PC,$SCHED
000352 005726 5$: TST (SP)+ ; 1792
000354 000207 RTS PC
; Routine Size: 119 words, Routine Base: $CODE$ + 4136
; Maximum stack depth per invocation: 11 words
; 1862
; 1863
; 1864
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 55
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (23)
; 1865 routine INTERRUPT_TO_SND ( PDB) : = !
; 1866
; 1867 !++
; 1868 ! FUNCTIONAL DESCRIPTION:
; 1869 ! This routine tests all the conditions needed to transmit an
; 1870 ! Interrupt message.
; 1871 !
; 1872 ! FORMAL PARAMETERS:
; 1873 ! PDB = Port Data Base Address
; 1874 !
; 1875 ! IMPLICIT INPUTS:
; 1876 ! DB = NSP Data Base Address
; 1877 !
; 1878 ! IMPLICIT OUTPUTS:
; 1879 ! None
; 1880 !
; 1881 ! ROUTINE VALUE:
; 1882 ! COMPLETION CODES:
; 1883 ! None
; 1884 !
; 1885 ! SIDE EFFECTS:
; 1886 ! None
; 1887 !--
; 1888
; 1889 begin
; 1890 map PDB: ref block field(PORT_fields);
; 1891
; 1892 IF .PDB[PORTstate] neq N$SRUN
; 1893 Then
; 1894 return false;
; 1895 If ((.PDB[INThead] neq 0) and (.PDB[OTHstate] eql OTHready) and
; 1896 (.PDB[FLOWint_rem] gtr 0)) or .PDB[OTHstate] eql OTHtimeout
; 1897 Then
; 1898 return true;
; 1899 return false;
; 1900 end;
.SBTTL INTERRUPT.TO.SND
000000 016600 000002 ; INTERRUPT.TO.SND
U.24: MOV 2(SP),R0 ; PDB,* 1892
000004 121027 000013 CMPB (R0),#13
000010 001020 BNE 3$ ; 1894
000012 005760 000076 TST 76(R0) ; 1895
000016 001406 BEQ 1$
000020 105760 000064 TSTB 64(R0)
000024 001003 BNE 1$
000026 105760 000040 TSTB 40(R0) ; 1896
000032 001004 BNE 2$
000034 126027 000064 000002 1$: CMPB 64(R0),#2
000042 001003 BNE 3$
000044 012700 000001 2$: MOV #1,R0 ; 1898
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 56
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (23)
000050 000207 RTS PC
000052 005000 3$: CLR R0 ; 1865
000054 000207 RTS PC
; Routine Size: 23 words, Routine Base: $CODE$ + 4514
; Maximum stack depth per invocation: 0 words
; 1901
; 1902
; 1903
; 1904
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 57
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (24)
; 1905 routine INTR_REQ_TO_SND ( PDB) : = !
; 1906
; 1907 !++
; 1908 ! FUNCTIONAL DESCRIPTION:
; 1909 ! This routine tests all the conditions needed to transmit an Interrupt
; 1910 ! Request message.
; 1911 !
; 1912 ! FORMAL PARAMETERS:
; 1913 ! PDB = Port Data Base Address
; 1914 !
; 1915 ! IMPLICIT INPUTS:
; 1916 ! DB = NSP Data Base Address
; 1917 !
; 1918 ! IMPLICIT OUTPUTS:
; 1919 ! None
; 1920 !
; 1921 ! ROUTINE VALUE:
; 1922 ! COMPLETION CODES:
; 1923 ! None
; 1924 !
; 1925 ! SIDE EFFECTS:
; 1926 ! None
; 1927 !--
; 1928
; 1929 begin
; 1930 map PDB: ref block field(PORT_fields);
; 1931
; 1932 If .PDB[PORTstate] neq N$SRUN
; 1933 Then
; 1934 return false;
; 1935 If (.PDB[INTRhead] neq 0) and (.PDB[OTHstate] eql OTHready) and
; 1936 (.PDB[COUNTloc_int] eql 0) and (.PDB[BUFFrcv_int] eql 0)
; 1937 Then
; 1938 return true;
; 1939 return false;
; 1940 end;
.SBTTL INTR.REQ.TO.SND
000000 016600 000002 ; INTR.REQ.TO.SND
U.25: MOV 2(SP),R0 ; PDB,* 1932
000004 121027 000013 CMPB (R0),#13
000010 001017 BNE 1$ ; 1934
000012 005760 000106 TST 106(R0) ; 1935
000016 001414 BEQ 1$
000020 105760 000064 TSTB 64(R0)
000024 001011 BNE 1$
000026 005760 000056 TST 56(R0) ; 1936
000032 001006 BNE 1$
000034 005760 000046 TST 46(R0)
000040 001003 BNE 1$
000042 012700 000001 MOV #1,R0 ; 1938
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 58
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (24)
000046 000207 RTS PC
000050 005000 1$: CLR R0 ; 1905
000052 000207 RTS PC
; Routine Size: 22 words, Routine Base: $CODE$ + 4572
; Maximum stack depth per invocation: 0 words
; 1941
; 1942
; 1943
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 59
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (25)
; 1944 routine LS_RCV ( CCB, PDB) : novalue = !
; 1945
; 1946 !++
; 1947 ! FUNCTIONAL DESCRIPTION:
; 1948 ! This routine dispatches to th appropriate routine bases on the
; 1949 ! type of Link Service message received.
; 1950 !
; 1951 ! FORMAL PARAMETERS:
; 1952 ! PDB = Port Data Base Address
; 1953 ! CCB = CCB Address
; 1954 !
; 1955 ! IMPLICIT INPUTS:
; 1956 ! DB = NSP Data Base Address
; 1957 !
; 1958 ! IMPLICIT OUTPUTS:
; 1959 ! None
; 1960 !
; 1961 ! ROUTINE VALUE:
; 1962 ! COMPLETION CODES:
; 1963 ! None
; 1964 !
; 1965 ! SIDE EFFECTS:
; 1966 ! None
; 1967 !--
; 1968
; 1969 begin
; 1970 map CCB: ref block field(C_fields);
; 1971 map PDB: ref block field(PORT_fields);
; 1972
; 1973 local PTR;
; 1974
; 1975 MAP$( .CCB[C_BIAS]);
; 1976
; 1977 If not .DB[Q_FLG]
; 1978 Then
; 1979 PTR = ch$plus( .CCB[C_ADDR], 7 )
; 1980 Else
; 1981 PTR = ch$plus( .CCB[C_ADDR], 9 );
; 1982 DB[LSFLAGS] = ch$rchar_a( PTR);
; 1983 DB[FCVAL] = ch$rchar_a( PTR);
; 1984
; 1985 MAP$( .DB[BIASports]);
; 1986
; 1987 If not (.DB[LSFLAGS] and LS_RSV)
; 1988 Then
; 1989 begin
; 1990 If .DB[FCVALINT] eql FC_INTERRUPT
; 1991 Then
; 1992 IRQ_RCV( .CCB, .PDB)
; 1993 Else
; 1994 DRQ_RCV( .CCB, .PDB)
; 1995 end
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 60
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (25)
; 1996 Else
; 1997 begin
; 1998 CALL$E( EVENT_LOG, .DB[NSPns2_pix], invmsg, 0, .PDB, .CCB);
; 1999 CCB[C_FNC] = FC_RCE;
; 2000 LLCRS$( .CCB)
; 2001 end
; 2002 end;
.SBTTL LS.RCV
000000 004167 000000G ; LS.RCV
U.29: JSR R1,$SAVE4 ; 1944
000004 016604 000016 MOV 16(SP),R4 ; CCB,* 1975
000010 016467 000016 000000G MOV 16(R4),KISAR6
000016 016701 000002G MOV .CRDAT+2,R1 ; 1977
000022 005761 000060 TST 60(R1)
000026 100405 BMI 1$
000030 016400 000020 MOV 20(R4),R0 ; *,PTR 1979
000034 062700 000007 ADD #7,R0 ; *,PTR
000040 000404 BR 2$ ; 1977
000042 016400 000020 1$: MOV 20(R4),R0 ; *,PTR 1981
000046 062700 000011 ADD #11,R0 ; *,PTR
000052 012702 000056 2$: MOV #56,R2 ; 1982
000056 060102 ADD R1,R2
000060 112062 000001 MOVB (R0)+,1(R2) ; PTR,*
000064 112061 000071 MOVB (R0)+,71(R1) ; PTR,* 1983
000070 016167 000014 000000G MOV 14(R1),KISAR6 ; 1985
000076 016600 000014 MOV 14(SP),R0 ; PDB,* 1992
000102 011202 MOV (R2),R2 ; 1990
000104 042702 171777 BIC #171777,R2
000110 020227 002000 CMP R2,#2000
000114 001005 BNE 3$
000116 010446 MOV R4,-(SP) ; 1992
000120 010046 MOV R0,-(SP)
000122 004767 176232 JSR PC,U.23
000126 000404 BR 4$ ; 1989
000130 010446 3$: MOV R4,-(SP) ; 1994
000132 010046 MOV R0,-(SP)
000134 004767 174772 JSR PC,U.19
000140 022626 4$: CMP (SP)+,(SP)+ ; 1969
000142 000207 RTS PC ; 1944
; Routine Size: 50 words, Routine Base: $CODE$ + 4646
; Maximum stack depth per invocation: 13 words
; 2003
; 2004
; 2005
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 61
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (26)
; 2006 global routine MSG_RCV ( CCB, PDB) :CALL$ novalue = !
; 2007
; 2008 !++
; 2009 ! FUNCTIONAL DESCRIPTION:
; 2010 ! This routine dispatches on the type of NSP message received.
; 2011 !
; 2012 ! FORMAL PARAMETERS:
; 2013 ! PDB = Port Data Base Address
; 2014 ! CCB = CCB Address
; 2015 !
; 2016 ! IMPLICIT INPUTS:
; 2017 ! DB = NSP Data Base Address
; 2018 !
; 2019 ! IMPLICIT OUTPUTS:
; 2020 ! None
; 2021 !
; 2022 ! ROUTINE VALUE:
; 2023 ! COMPLETION CODES:
; 2024 ! None
; 2025 !
; 2026 ! SIDE EFFECTS:
; 2027 ! None
; 2028 !--
; 2029
; 2030 begin
; 2031 map CCB: ref block field(C_fields);
; 2032 map PDB: ref block field(PORT_fields);
; 2033
; 2034 local
; 2035 SC_CCB:ref block field(C_fields),
; 2036 PTR;
; 2037
; 2038 MAP$( .CCB[C_BIAS]);
; 2039 PTR = ch$plus( .CCB[C_ADDR], 5 );
; 2040 DB[ACKNUM] = GET2BYTES( PTR);
; 2041
; 2042 If not .DB[Q_FLG]
; 2043 Then
; 2044 PTR = ch$plus( .PTR, -2);
; 2045
; 2046 MAP$( .DB[BIASports]);
; 2047
; 2048 If .PDB[PORTstate] eql N$SCC or
; 2049 .PDB[PORTstate] eql N$SRUN or
; 2050 (.PDB[PORTstate] eql N$SDI and
; 2051 (CMP_NEQ(.PDB[NUMhigh], .PDB[ACKrcv_dat])))
; 2052 Then
; 2053 begin
; 2054 If .PDB[PORTstate] eql N$SCC and
; 2055 (.DB[MSGFLG] eql FLG_INT or .DB[MSGFLG] eql FLG_REQ or
; 2056 .DB[MSGFLG] eql FLG_DAT_ACK)
; 2057 Then
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 62
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (26)
; 2058 begin
; 2059 PDB[PORTstate] = N$SRUN;
; 2060 UPDATE_DELAY( .PDB);
; 2061 PDB[CONFIDENCE] = true;
; 2062 PDB[TIMERcon] = 0;
; 2063 PDB[COUNTdat_retrans] = 0;
; 2064 If CMQRM$( PDB[MSG_queue], SC_CCB)
; 2065 Then
; 2066 begin
; 2067 SC_CCB[C_STS] = N$SSUC;
; 2068 SC_CCB[C_FNC] = FC_XCP;
; 2069 LLCRS$( .SC_CCB);
; 2070 end
; 2071 end;
; 2072 PDB[TIMERinact] = .DB[NSPact_tim];
; 2073
; 2074 IF not ((.DB[MSGFLG] eql FLG_DAT_ACK) or
; 2075 (.DB[MSGFLG] eql FLG_OTH_ACK))
; 2076 Then
; 2077 begin
; 2078 MAP$( .CCB[C_BIAS]);
; 2079 DB[SEGNUM] = GET2BYTES( PTR);
; 2080 MAP$( .DB[BIASports]);
; 2081 end;
; 2082
; 2083 Selectone .DB[MSGFLG] of
; 2084 Set
; 2085 [FLG_INT]: INT_RCV( .CCB, .PDB);
; 2086 [FLG_REQ]: LS_RCV( .CCB, .PDB);
; 2087 [FLG_DAT_ACK]: ACK_RCV( .CCB, .PDB);
; 2088 [FLG_OTH_ACK]: ACK_OTH_RCV( .CCB, .PDB);
; 2089 [FLG_EOM]: D_RCV( .CCB, .PDB);
; 2090 [FLG_BOM]: D_RCV( .CCB, .PDB);
; 2091 [FLG_BEOM]: D_RCV( .CCB, .PDB);
; 2092 [FLG_NBEOM]: D_RCV( .CCB, .PDB);
; 2093 Tes;
; 2094 end
; 2095 Else
; 2096 begin
; 2097 CCB[C_FNC] = FC_RCE;
; 2098 LLCRS$( .CCB)
; 2099 end;
; 2100 CALL$L(SND_MSG, .PDB)
; 2101 end;
.SBTTL MSG.RCV
000000 016502 000002 MSG.RCV::
U.30: MOV 2(R5),R2 ; CCB(.AP.),* 2038
000004 016267 000016 000000G MOV 16(R2),KISAR6
000012 016201 000020 MOV 20(R2),R1 ; *,PTR 2039
000016 016703 000002G MOV .CRDAT+2,R3 ; 2040
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 63
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (26)
000022 062701 000005 ADD #5,R1 ; *,PTR
000026 105000 CLRB R0 ; TEMP
000030 152100 BISB (R1)+,R0 ; PTR,TEMP
000032 010046 MOV R0,-(SP) ; TEMP,*
000034 112166 000001 MOVB (R1)+,1(SP) ; PTR,*
000040 012600 MOV (SP)+,R0 ; *,TEMP
000042 010063 000060 MOV R0,60(R3) ; TEMP,*
000046 100402 BMI 1$ ; 2042
000050 162701 000002 SUB #2,R1 ; *,PTR 2044
000054 016367 000014 000000G 1$: MOV 14(R3),KISAR6 ; 2046
000062 016505 000004 MOV 4(R5),R5 ; PDB(.AP.),* 2048
000066 005004 CLR R4
000070 121527 000005 CMPB (R5),#5
000074 001002 BNE 2$
000076 005204 INC R4
000100 000415 BR 3$
000102 121527 000013 2$: CMPB (R5),#13 ; 2049
000106 001412 BEQ 3$
000110 121527 000014 CMPB (R5),#14 ; 2050
000114 001177 BNE 14$
000116 016500 000034 MOV 34(R5),R0 ; 2051
000122 166500 000026 SUB 26(R5),R0
000126 032700 007777 BIT #7777,R0
000132 001570 BEQ 14$
000134 006004 3$: ROR R4 ; 2054
000136 103047 BCC 6$
000140 005000 CLR R0 ; 2055
000142 156300 000052 BISB 52(R3),R0
000146 020027 000060 CMP R0,#60
000152 001406 BEQ 4$
000154 020027 000020 CMP R0,#20
000160 001403 BEQ 4$
000162 020027 000004 CMP R0,#4 ; 2056
000166 001033 BNE 6$
000170 112715 000013 4$: MOVB #13,(R5) ; 2059
000174 010546 MOV R5,-(SP) ; 2060
000176 004767 000000V JSR PC,U.44
000202 152765 000020 000042 BISB #20,42(R5) ; 2061
000210 005065 000016 CLR 16(R5) ; 2062
000214 105065 000052 CLRB 52(R5) ; 2063
000220 012703 000102 MOV #102,R3 ; 2064
000224 060503 ADD R5,R3
000226 004767 000000G JSR PC,$CMQRM
000232 103410 BCS 5$
000234 012764 000001 000014 MOV #1,14(R4) ; *,*(SC.CCB) 2067
000242 112764 000014 000012 MOVB #14,12(R4) ; *,*(SC.CCB) 2068
000250 004767 000000G JSR PC,$SCHED ; 2069
000254 005726 5$: TST (SP)+ ; 2058
000256 016700 000002G 6$: MOV .CRDAT+2,R0 ; 2072
000262 116065 000004 000036 MOVB 4(R0),36(R5)
000270 126027 000052 000004 CMPB 52(R0),#4 ; 2074
000276 001422 BEQ 7$
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 64
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (26)
000300 126027 000052 000024 CMPB 52(R0),#24 ; 2075
000306 001416 BEQ 7$
000310 016267 000016 000000G MOV 16(R2),KISAR6 ; 2078
000316 105003 CLRB R3 ; TEMP 2079
000320 152103 BISB (R1)+,R3 ; PTR,TEMP
000322 010346 MOV R3,-(SP) ; TEMP,*
000324 112166 000001 MOVB (R1)+,1(SP) ; PTR,*
000330 012603 MOV (SP)+,R3 ; *,TEMP
000332 010360 000062 MOV R3,62(R0) ; TEMP,*
000336 016067 000014 000000G MOV 14(R0),KISAR6 ; 2080
000344 005003 7$: CLR R3 ; 2083
000346 156003 000052 BISB 52(R0),R3
000352 020327 000060 CMP R3,#60
000356 001005 BNE 8$
000360 010246 MOV R2,-(SP) ; 2085
000362 010546 MOV R5,-(SP)
000364 004767 176534 JSR PC,U.27
000370 000447 BR 13$
000372 020327 000020 8$: CMP R3,#20 ; 2083
000376 001005 BNE 9$
000400 010246 MOV R2,-(SP) ; 2086
000402 010546 MOV R5,-(SP)
000404 004767 177224 JSR PC,U.29
000410 000437 BR 13$
000412 020327 000004 9$: CMP R3,#4 ; 2083
000416 001005 BNE 10$
000420 010246 MOV R2,-(SP) ; 2087
000422 010546 MOV R5,-(SP)
000424 004767 172662 JSR PC,U.10
000430 000427 BR 13$
000432 020327 000024 10$: CMP R3,#24 ; 2083
000436 001005 BNE 11$
000440 010246 MOV R2,-(SP) ; 2088
000442 010546 MOV R5,-(SP)
000444 004767 172520 JSR PC,U.9
000450 000417 BR 13$
000452 020327 000100 11$: CMP R3,#100 ; 2083
000456 001410 BEQ 12$ ; 2089
000460 020327 000040 CMP R3,#40 ; 2083
000464 001405 BEQ 12$ ; 2090
000466 020327 000140 CMP R3,#140 ; 2083
000472 001402 BEQ 12$ ; 2091
000474 005703 TST R3 ; 2083
000476 001014 BNE 15$
000500 010246 12$: MOV R2,-(SP) ; 2092
000502 010546 MOV R5,-(SP)
000504 004767 175114 JSR PC,U.20
000510 022626 13$: CMP (SP)+,(SP)+
000512 000406 BR 15$ ; 2048
000514 112762 000004 000012 14$: MOVB #4,12(R2) ; 2097
000522 010204 MOV R2,R4 ; 2098
000524 004767 000000G JSR PC,$SCHED
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 65
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (26)
000530 010546 15$: MOV R5,-(SP) ; 2100
000532 012746 000001 MOV #1,-(SP)
000536 012746 000000V MOV #U.38,-(SP)
000542 004767 000000G JSR PC,$CALL
000546 062706 000006 ADD #6,SP ; 2030
000552 000207 RTS PC ; 2006
; Routine Size: 182 words, Routine Base: $CODE$ + 5012
; Maximum stack depth per invocation: 4 words
; 2102
; 2103
; 2104
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 66
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (27)
; 2105 global routine ONCE_A_SECOND : CALL$ novalue = !
; 2106
; 2107 !++
; 2108 ! FUNCTIONAL DESCRIPTION:
; 2109 ! This routine is called every second to attempt to clear up any
; 2110 ! resource deadlocks that may have occured.
; 2111 !
; 2112 ! FORMAL PARAMETERS:
; 2113 ! None
; 2114 !
; 2115 ! IMPLICIT INPUTS:
; 2116 ! DB = NSP data base address
; 2117 !
; 2118 ! IMPLICIT OUTPUTS:
; 2119 ! None
; 2120 !
; 2121 ! ROUTINE VALUE:
; 2122 ! COMPLETION CODES:
; 2123 ! None
; 2124 !
; 2125 ! SIDE EFFECTS:
; 2126 ! None
; 2127 !--
; 2128
; 2129
; 2130 !********************************************************************
; 2131 ! Now check thru the Session Control ports for any stalled transmits
; 2132 !********************************************************************
; 2133
; 2134
; 2135 begin
; 2136
; 2137 local PORT: ref blockvector[0, PDB_size] field(PORT_fields),
; 2138 CCB: ref block field(C_fields);
; 2139
; 2140 port = .DB[ADDRports];
; 2141 MAP$( .DB[BIASports]);
; 2142
; 2143 Incr J from 0 to (.DB[NSPtotal] - 1) do
; 2144 begin
; 2145 bind PDB = PORT[.DB[NSPnxt_port],0,0,0,0]: block field(PORT_fields);
; 2146 If .DB[NSPnxt_port] + 1 lss .DB[NSPtotal]
; 2147 Then
; 2148 DB[NSPnxt_port] = .DB[NSPnxt_port] + 1
; 2149 Else
; 2150 DB[NSPnxt_port] = 0;
; 2151 If .PDB[FLAGinuse]
; 2152 Then
; 2153 begin
; 2154 If .PDB[BUFFctl] neq 0
; 2155 Then
; 2156 CALL$E(CTL_RECVD, .DB[NSPns2_pix], PDB);
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 67
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (27)
; 2157 If .PDB[RCVmsg_queue] neq 0
; 2158 Then
; 2159 begin
; 2160 If CCB_GET( CCB, PDB)
; 2161 Then
; 2162 begin
; 2163 CMQRM$( PDB[RCVmsg_queue], CCB[C_STK]);
; 2164 DATA_RECVD( .CCB, PDB);
; 2165 end;
; 2166 end;
; 2167 If .PDB[OTHres]
; 2168 Then
; 2169 begin
; 2170 If .PDB[PORTstate] eql N$SRUN
; 2171 Then
; 2172 begin
; 2173 PDB[OTHres] = false;
; 2174 CALL$L( TRICKLE, PDB);
; 2175 end
; 2176 Else
; 2177 begin
; 2178 If CCB_HDR_GET( 0, CCB, PDB)
; 2179 Then
; 2180 begin
; 2181 PDB[OTHres] = false;
; 2182 If not CMQRM$( PDB[MSG_queue], CCB[C_STK])
; 2183 Then
; 2184 SIGNAL_STOP( NSP$_ICE);
; 2185 Selectone .PDB[PORTstate] of
; 2186 Set
; 2187 [N$SCI]:
; 2188 CALL$E(CI_BLD, .DB[NSPns2_pix], .CCB, PDB);
; 2189 [N$SCC]:
; 2190 CALL$E(CC_BLD, .DB[NSPns2_pix], .CCB, PDB);
; 2191 [N$SDI, N$SDR]:
; 2192 CALL$E(DI_BLD, .DB[NSPns2_pix], .CCB, PDB);
; 2193 Tes;
; 2194 end;
; 2195 end;
; 2196 end;
; 2197 If .PDB[DATres]
; 2198 Then
; 2199 begin
; 2200 PDB[DATres] = false;
; 2201 CALL$L(SND_ONE_DATA, PDB);
; 2202 end;
; 2203
; 2204 If .PDB[FLAGsnd_dc] and
; 2205 CCB_HDR_GET( 0, CCB, PDB)
; 2206 Then
; 2207 CALL$E(DC_BLD, .DB[NSPns2_pix], .CCB, PDB);
; 2208 end;
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 68
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (27)
; 2209
; 2210 If (.PDB[BUFFrcv_int] neq 0) and
; 2211 CCB_GET( CCB, PDB)
; 2212 Then
; 2213 begin
; 2214 CCB[C_STK] = .PDB[BUFFrcv_int];
; 2215 PDB[BUFFrcv_int] = 0;
; 2216 INT_RECVD(.CCB, PDB);
; 2217 end;
; 2218 end;
; 2219
; 2220
; 2221 !********************************************************************
; 2222 ! Now check thru the reserved ports for any stalled transmits
; 2223 !********************************************************************
; 2224
; 2225
; 2226 begin
; 2227 local PORT: ref blockvector[0, RDB_size] field(PORT_fields);
; 2228 MAP$( .DB[BIASresv]);
; 2229 port = .DB[ADDRresv];
; 2230
; 2231 Incr j from 0 to (.DB[NSPt_rsv] -1 ) do
; 2232 begin
; 2233 bind RDB = PORT[.j,0,0,0,0]: block field(PORT_fields);
; 2234 If .RDB[MSGtyp] neq MSG_NONE
; 2235 Then
; 2236 begin
; 2237 If CCB_HDR_GET( 0, ccb, -1)
; 2238 Then
; 2239 begin
; 2240 If .RDB[MSGtyp] eql N_LNK
; 2241 Then
; 2242 CALL$E(NL_BLD, .DB[NSPns2_pix], .CCB, RDB)
; 2243 Else
; 2244 CALL$E(NR_BLD, .DB[NSPns2_pix], .CCB, RDB);
; 2245 RDB[MSGtyp] = MSG_NONE;
; 2246 exitloop
; 2247 end
; 2248 Else
; 2249 exitloop;
; 2250 end;
; 2251 end;
; 2252 end;
; 2253 end;
.GLOBL CTL.RECVD, CI.BLD, CC.BLD, DI.BLD
.GLOBL DC.BLD, NL.BLD, NR.BLD
.SBTTL ONCE.A.SECOND
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 69
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (27)
000000 005746 ONCE.A.SECOND::
U.31: TST -(SP) ; 2105
000002 016700 000002G MOV .CRDAT+2,R0 ; 2140
000006 016046 000016 MOV 16(R0),-(SP) ; *,PORT
000012 016067 000014 000000G MOV 14(R0),KISAR6 ; 2141
000020 016002 000020 MOV 20(R0),R2 ; 2143
000024 005005 CLR R5 ; J
000026 000167 000716 JMP 19$
000032 016700 000002G 1$: MOV .CRDAT+2,R0 ; 2145
000036 012704 000040 MOV #40,R4
000042 060004 ADD R0,R4
000044 011403 MOV (R4),R3
000046 070327 000140 MUL #140,R3
000052 010301 MOV R3,R1
000054 061601 ADD (SP),R1 ; PORT,*
000056 011403 MOV (R4),R3 ; 2146
000060 005203 INC R3
000062 020360 000020 CMP R3,20(R0)
000066 002002 BGE 2$
000070 005214 INC (R4) ; 2148
000072 000401 BR 3$ ; 2146
000074 005014 2$: CLR (R4) ; 2150
000076 132761 000001 000042 3$: BITB #1,42(R1) ; 2151
000104 001002 BNE 4$
000106 000167 000554 JMP 17$
000112 005761 000050 4$: TST 50(R1) ; 2154
000116 001414 BEQ 5$
000120 010146 MOV R1,-(SP) ; 2156
000122 012746 000001 MOV #1,-(SP)
000126 012746 000000G MOV #CTL.RECVD,-(SP)
000132 005046 CLR -(SP)
000134 116016 000047 MOVB 47(R0),(SP)
000140 004767 000000G JSR PC,$CALLE
000144 062706 000010 ADD #10,SP
000150 012703 000134 5$: MOV #134,R3 ; 2157
000154 060103 ADD R1,R3
000156 005713 TST (R3)
000160 001426 BEQ 7$
000162 012746 000004 MOV #4,-(SP) ; 2160
000166 060616 ADD SP,(SP) ; CCB,*
000170 010146 MOV R1,-(SP)
000172 004767 172400 JSR PC,U.12
000176 022626 CMP (SP)+,(SP)+
000200 006000 ROR R0
000202 103015 BCC 7$
000204 004767 000000G JSR PC,$CMQRM ; 2163
000210 103404 BCS 6$
000212 016600 000002 MOV 2(SP),R0 ; CCB,*
000216 010460 000004 MOV R4,4(R0) ; $MCB$R4,*
000222 016646 000002 6$: MOV 2(SP),-(SP) ; CCB,* 2164
000226 010146 MOV R1,-(SP)
000230 004767 173312 JSR PC,U.16
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 70
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (27)
000234 022626 CMP (SP)+,(SP)+ ; 2162
000236 012703 000070 7$: MOV #70,R3 ; 2167
000242 060103 ADD R1,R3
000244 032713 000001 BIT #1,(R3)
000250 001531 BEQ 15$
000252 121127 000013 CMPB (R1),#13 ; 2170
000256 001013 BNE 8$
000260 005013 CLR (R3) ; 2173
000262 010146 MOV R1,-(SP) ; 2174
000264 012746 000001 MOV #1,-(SP)
000270 012746 000000V MOV #U.43,-(SP)
000274 004767 000000G JSR PC,$CALL
000300 062706 000006 ADD #6,SP ; 2172
000304 000513 BR 15$ ; 2170
000306 005046 8$: CLR -(SP) ; 2178
000310 012746 000006 MOV #6,-(SP)
000314 060616 ADD SP,(SP) ; CCB,*
000316 010146 MOV R1,-(SP)
000320 004767 172366 JSR PC,U.13
000324 062706 000006 ADD #6,SP
000330 006000 ROR R0
000332 103100 BCC 15$
000334 005013 CLR (R3) ; 2181
000336 010104 MOV R1,R4 ; 2182
000340 062704 000102 ADD #102,R4
000344 010403 MOV R4,R3
000346 004767 000000G JSR PC,$CMQRM
000352 103405 BCS 9$
000354 016600 000002 MOV 2(SP),R0 ; CCB,*
000360 010460 000004 MOV R4,4(R0) ; $MCB$R4,*
000364 000407 BR 10$
000366 012746 100044 9$: MOV #-77734,-(SP) ; 2184
000372 012746 000001 MOV #1,-(SP)
000376 004767 000000G JSR PC,$STOP
000402 022626 CMP (SP)+,(SP)+
000404 121127 000006 10$: CMPB (R1),#6 ; 2185
000410 001010 BNE 11$
000412 010146 MOV R1,-(SP) ; 2188
000414 016646 000004 MOV 4(SP),-(SP) ; CCB,*
000420 012746 000002 MOV #2,-(SP)
000424 012746 000000G MOV #CI.BLD,-(SP)
000430 000430 BR 14$
000432 121127 000005 11$: CMPB (R1),#5 ; 2185
000436 001010 BNE 12$
000440 010146 MOV R1,-(SP) ; 2190
000442 016646 000004 MOV 4(SP),-(SP) ; CCB,*
000446 012746 000002 MOV #2,-(SP)
000452 012746 000000G MOV #CC.BLD,-(SP)
000456 000415 BR 14$
000460 121127 000003 12$: CMPB (R1),#3 ; 2185
000464 001403 BEQ 13$
000466 121127 000014 CMPB (R1),#14
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 71
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (27)
000472 001020 BNE 15$
000474 010146 13$: MOV R1,-(SP) ; 2192
000476 016646 000004 MOV 4(SP),-(SP) ; CCB,*
000502 012746 000002 MOV #2,-(SP)
000506 012746 000000G MOV #DI.BLD,-(SP)
000512 016700 000002G 14$: MOV .CRDAT+2,R0
000516 005046 CLR -(SP)
000520 116016 000047 MOVB 47(R0),(SP)
000524 004767 000000G JSR PC,$CALLE
000530 062706 000012 ADD #12,SP
000534 032761 000001 000066 15$: BIT #1,66(R1) ; 2197
000542 001413 BEQ 16$
000544 005061 000066 CLR 66(R1) ; 2200
000550 010146 MOV R1,-(SP) ; 2201
000552 012746 000001 MOV #1,-(SP)
000556 012746 000000V MOV #U.41,-(SP)
000562 004767 000000G JSR PC,$CALL
000566 062706 000006 ADD #6,SP ; 2199
000572 005761 000040 16$: TST 40(R1) ; 2204
000576 100033 BPL 17$
000600 005046 CLR -(SP) ; 2205
000602 012746 000006 MOV #6,-(SP)
000606 060616 ADD SP,(SP) ; CCB,*
000610 010146 MOV R1,-(SP)
000612 004767 172074 JSR PC,U.13
000616 062706 000006 ADD #6,SP
000622 006000 ROR R0
000624 103020 BCC 17$
000626 010146 MOV R1,-(SP) ; 2207
000630 016646 000004 MOV 4(SP),-(SP) ; CCB,*
000634 012746 000002 MOV #2,-(SP)
000640 012746 000000G MOV #DC.BLD,-(SP)
000644 016700 000002G MOV .CRDAT+2,R0
000650 005046 CLR -(SP)
000652 116016 000047 MOVB 47(R0),(SP)
000656 004767 000000G JSR PC,$CALLE
000662 062706 000012 ADD #12,SP
000666 012703 000046 17$: MOV #46,R3 ; 2210
000672 060103 ADD R1,R3
000674 005713 TST (R3)
000676 001423 BEQ 18$
000700 012746 000004 MOV #4,-(SP) ; 2211
000704 060616 ADD SP,(SP) ; CCB,*
000706 010146 MOV R1,-(SP)
000710 004767 171662 JSR PC,U.12
000714 022626 CMP (SP)+,(SP)+
000716 006000 ROR R0
000720 103012 BCC 18$
000722 016600 000002 MOV 2(SP),R0 ; CCB,* 2214
000726 011360 000004 MOV (R3),4(R0)
000732 005013 CLR (R3) ; 2215
000734 010046 MOV R0,-(SP) ; CCB,* 2216
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 72
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (27)
000736 010146 MOV R1,-(SP)
000740 004767 175212 JSR PC,U.28
000744 022626 CMP (SP)+,(SP)+ ; 2213
000746 005205 18$: INC R5 ; J 2143
000750 020502 19$: CMP R5,R2 ; J,*
000752 002002 BGE 20$
000754 000167 177052 JMP 1$
000760 016700 000002G 20$: MOV .CRDAT+2,R0 ; 2228
000764 016067 000024 000000G MOV 24(R0),KISAR6
000772 016005 000026 MOV 26(R0),R5 ; *,PORT 2229
000776 016004 000022 MOV 22(R0),R4 ; 2231
001002 005001 CLR R1 ; J
001004 000462 BR 25$
001006 010103 21$: MOV R1,R3 ; J,* 2233
001010 070327 000012 MUL #12,R3
001014 060503 ADD R5,R3 ; PORT,*
001016 121327 177775 CMPB (R3),#-3 ; 2234
001022 001452 BEQ 24$
001024 005046 CLR -(SP) ; 2237
001026 012746 000006 MOV #6,-(SP)
001032 060616 ADD SP,(SP) ; CCB,*
001034 012746 177777 MOV #-1,-(SP)
001040 004767 171646 JSR PC,U.13
001044 062706 000006 ADD #6,SP
001050 006000 ROR R0
001052 103041 BCC 26$
001054 016700 000002G MOV .CRDAT+2,R0 ; 2242
001060 121327 177777 CMPB (R3),#-1 ; 2240
001064 001010 BNE 22$
001066 010346 MOV R3,-(SP) ; 2242
001070 016646 000004 MOV 4(SP),-(SP) ; CCB,*
001074 012746 000002 MOV #2,-(SP)
001100 012746 000000G MOV #NL.BLD,-(SP)
001104 000407 BR 23$
001106 010346 22$: MOV R3,-(SP) ; 2244
001110 016646 000004 MOV 4(SP),-(SP) ; CCB,*
001114 012746 000002 MOV #2,-(SP)
001120 012746 000000G MOV #NR.BLD,-(SP)
001124 005046 23$: CLR -(SP)
001126 116016 000047 MOVB 47(R0),(SP)
001132 004767 000000G JSR PC,$CALLE
001136 112713 000375 MOVB #375,(R3) ; 2245
001142 062706 000012 ADD #12,SP ; 2246
001146 000403 BR 26$
001150 005201 24$: INC R1 ; J 2231
001152 020104 25$: CMP R1,R4 ; J,*
001154 002714 BLT 21$
001156 022626 26$: CMP (SP)+,(SP)+ ; 2105
001160 000207 RTS PC
; Routine Size: 313 words, Routine Base: $CODE$ + 5566
; Maximum stack depth per invocation: 8 words
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 73
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (27)
; 2254
; 2255
; 2256
; 2257
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 74
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (28)
; 2258 routine OTHACK_BLD ( CCB, PDB) : novalue = !
; 2259
; 2260 !++
; 2261 ! FUNCTIONAL DESCRIPTION:
; 2262 ! This routine formats an NSP Other Data Acknowledgement message
; 2263 ! and queues it to Transport.
; 2264 !
; 2265 ! FORMAL PARAMETERS:
; 2266 ! PDB = Port Data Base Address
; 2267 ! CCB = CCB Address
; 2268 !
; 2269 ! IMPLICIT INPUTS:
; 2270 ! DB = NSP Data Base Address
; 2271 !
; 2272 ! IMPLICIT OUTPUTS:
; 2273 ! None
; 2274 !
; 2275 ! ROUTINE VALUE:
; 2276 ! COMPLETION CODES:
; 2277 ! None
; 2278 !
; 2279 ! SIDE EFFECTS:
; 2280 ! None
; 2281 !--
; 2282
; 2283 begin
; 2284 map CCB: ref block field(C_fields);
; 2285 map PDB: ref block field(PORT_fields);
; 2286
; 2287 local
; 2288 PTR;
; 2289
; 2290 PTR = .CCB[C_ADDR];
; 2291
; 2292 ch$wchar_a( FLG_OTH_ACK, PTR);
; 2293 ch$wchar_a( .PDB[L_rem_addr], PTR);
; 2294 ch$wchar_a( .PDB[H_rem_addr], PTR);
; 2295 ch$wchar_a( .PDB[PID], PTR);
; 2296 ch$wchar_a( .PDB[ADDran], PTR);
; 2297 PUT2BYTES( (.PDB[ACKoth_xmt] and %o'7777') + Q_ACK^12 + true^15, PTR);
; 2298
; 2299 CCB[C_CNT] = ch$diff(.PTR, .CCB[C_ADDR]);
; 2300 PDB[FLAGoth_ack] = false;
; 2301 XPT_XMIT( .CCB, .PDB)
; 2302 end;
.SBTTL OTHACK.BLD
000000 004167 000000G ; OTHACK.BLD
U.32: JSR R1,$SAVE4 ; 2258
000004 016602 000016 MOV 16(SP),R2 ; CCB,* 2290
000010 016203 000020 MOV 20(R2),R3 ; *,PTR
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 75
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (28)
000014 112723 000024 MOVB #24,(R3)+ ; *,PTR 2292
000020 016601 000014 MOV 14(SP),R1 ; PDB,* 2293
000024 116123 000006 MOVB 6(R1),(R3)+ ; *,PTR
000030 116123 000007 MOVB 7(R1),(R3)+ ; *,PTR 2294
000034 116123 000004 MOVB 4(R1),(R3)+ ; *,PTR 2295
000040 116123 000005 MOVB 5(R1),(R3)+ ; *,PTR 2296
000044 016100 000032 MOV 32(R1),R0 ; *,TEMP 2297
000050 042700 170000 BIC #170000,R0 ; *,TEMP
000054 162700 100000 SUB #100000,R0 ; *,TEMP
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,* 2299
000074 166262 000020 000022 SUB 20(R2),22(R2)
000102 042761 040000 000040 BIC #40000,40(R1) ; 2300
000110 010246 MOV R2,-(SP) ; 2301
000112 010146 MOV R1,-(SP)
000114 004767 000000V JSR PC,U.45
000120 022626 CMP (SP)+,(SP)+ ; 2283
000122 000207 RTS PC ; 2258
; Routine Size: 42 words, Routine Base: $CODE$ + 6750
; Maximum stack depth per invocation: 8 words
; 2303
; 2304
; 2305
; 2306
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 76
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (29)
; 2307 routine PROC_DATA_ACK ( CCB, PDB) : novalue = !
; 2308
; 2309 !++
; 2310 ! FUNCTIONAL DESCRIPTION:
; 2311 ! This routine processes the NUMBER and QUAL fields of a received
; 2312 ! Data Acknowledgement message.
; 2313 !
; 2314 ! FORMAL PARAMETERS:
; 2315 ! PDB = Port Data Base Address
; 2316 ! CCB = CCB Address
; 2317 !
; 2318 ! IMPLICIT INPUTS:
; 2319 ! DB = NSP Data Base Address
; 2320 !
; 2321 ! IMPLICIT OUTPUTS:
; 2322 ! None
; 2323 !
; 2324 ! ROUTINE VALUE:
; 2325 ! COMPLETION CODES:
; 2326 ! None
; 2327 !
; 2328 ! SIDE EFFECTS:
; 2329 ! None
; 2330 !--
; 2331
; 2332 begin
; 2333 map CCB: ref block field(C_fields);
; 2334 map PDB: ref block field(PORT_fields);
; 2335
; 2336 local
; 2337 WK_CCB: ref block field(C_fields),
; 2338 NDB : ref block field(NODE_fields),
; 2339 temp;
; 2340
; 2341 MAP$( .DB[BIASports]);
; 2342 NDB = .PDB[NODElnk];
; 2343
; 2344 If (CMP_LSS( .PDB[ACKrcv_dat], .DB[NUMBER]) and
; 2345 (CMP_LEQ( .DB[NUMBER], .PDB[NUMsent])) and .DB[QUAL] eql Q_ACK) or
; 2346 (CMP_LEQ( .PDB[ACKrcv_dat], .DB[NUMBER]) and
; 2347 (CMP_LEQ( .DB[NUMBER], .PDB[NUMsent])) and .DB[QUAL] eql Q_NAK)
; 2348 Then
; 2349 begin
; 2350 PDB[CONFIDENCE] = true;
; 2351 PDB[COUNTdat_retrans] = 0;
; 2352 If .PDB[FLOWtyp_rem] eql FLOWseg
; 2353 Then
; 2354 PDB[FLOWdat_rem] = .PDB[FLOWdat_rem] - (( .DB[NUMBER] - .PDB[ACKrcv_dat]) and %o'7777');
; 2355 PDB[ACKrcv_dat] = .DB[NUMBER];
; 2356 temp = .PDB[ACKhead];
; 2357 While (CMQPT$( temp, WK_CCB)) do
; 2358 begin
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 77
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (29)
; 2359 If CMP_LEQ( .WK_CCB[C_STS], .PDB[ACKrcv_dat])
; 2360 Then
; 2361 begin
; 2362 WK_CCB = .PDB[ACK_queue];
; 2363 PDB[ACK_queue] = .WK_CCB[C_LNK];
; 2364 If (.WK_CCB[C_PRM3] and N$FCMP) neq 0
; 2365 Then
; 2366 begin
; 2367 bind SC_CCB = .WK_CCB[C_STK]: block field(C_fields);
; 2368 SC_CCB[C_FNC] = FC_XCP;
; 2369 SC_CCB[C_STS] = N$SSUC;
; 2370 LLCRS$( SC_CCB);
; 2371
; 2372 If .PDB[FLOWtyp_rem] eql FLOWmsg
; 2373 Then
; 2374 PDB[FLOWdat_rem] = .PDB[FLOWdat_rem] - 1;
; 2375 end;
; 2376
; 2377 CCB_RETRN( .WK_CCB, .PDB);
; 2378 end
; 2379 Else
; 2380 exitloop;
; 2381
; 2382 end;
; 2383 PDB[TIMERdat] = 0;
; 2384 If .PDB[ACKrcv_dat] eql .PDB[NUMsent]
; 2385 Then
; 2386 PDB[FLAGseg] = true;
; 2387
; 2388 If (CMP_LSS( .PDB[ACKrcv_dat], .PDB[NUMsent]) and .DB[QUAL] eql Q_ACK)
; 2389 Then
; 2390 begin
; 2391 MAP$( .DB[BIASnodes]);
; 2392 temp = .NDB[NDdelay];
; 2393 MAP$( .DB[BIASports]);
; 2394 PDB[TIMERdat] = .temp * .DB[NSPdelay]
; 2395 end;
; 2396 If (CMP_LEQ( .PDB[DELAYmsg_num], .PDB[ACKrcv_dat]))
; 2397 and .PDB[DELAYstr_tim] neq 0
; 2398 Then
; 2399 UPDATE_DELAY( .PDB);
; 2400 If .PDB[PORTstate] eql N$SDI and
; 2401 (CMP_EQL( .PDB[NUMhigh], .PDB[ACKrcv_dat])) and
; 2402 .PDB[BUFFsync_dsc] neq 0
; 2403 Then
; 2404 begin
; 2405 If CCB_HDR_GET( 0, WK_CCB, .PDB)
; 2406 Then
; 2407 begin
; 2408 WK_CCB[C_STK] = .PDB[BUFFsync_dsc];
; 2409 CALL$E(DI_BLD, .DB[NSPns2_pix], .WK_CCB, .PDB)
; 2410 end
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 78
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (29)
; 2411 Else
; 2412 begin
; 2413 CMQIN$( PDB[MSG_queue], .PDB[BUFFsync_dsc]);
; 2414 PDB[OTHres] = true
; 2415 end;
; 2416 PDB[BUFFsync_dsc] = 0;
; 2417 end;
; 2418 end
; 2419 end;
.GLOBL $CMQIN
.SBTTL PROC.DATA.ACK
000000 004167 000000G ; PROC.DATA.ACK
U.33: JSR R1,$SAVE5 ; 2307
000004 005746 TST -(SP)
000006 016700 000002G MOV .CRDAT+2,R0 ; 2341
000012 016067 000014 000000G MOV 14(R0),KISAR6
000020 016602 000020 MOV 20(SP),R2 ; PDB,* 2342
000024 016205 000010 MOV 10(R2),R5 ; *,NDB
000030 016700 000002G MOV .CRDAT+2,R0 ; 2344
000034 012701 000060 MOV #60,R1
000040 060001 ADD R0,R1
000042 012746 000034 MOV #34,-(SP)
000046 060216 ADD R2,(SP)
000050 011100 MOV (R1),R0
000052 042700 170000 BIC #170000,R0
000056 167600 000000 SUB @0(SP),R0
000062 010003 MOV R0,R3
000064 062703 004000 ADD #4000,R3
000070 010300 MOV R3,R0
000072 042700 170000 BIC #170000,R0
000076 020027 004000 CMP R0,#4000
000102 101420 BLOS 1$
000104 011104 MOV (R1),R4 ; 2345
000106 042704 170000 BIC #170000,R4
000112 016200 000022 MOV 22(R2),R0
000116 160400 SUB R4,R0
000120 062700 004000 ADD #4000,R0
000124 042700 170000 BIC #170000,R0
000130 020027 004000 CMP R0,#4000
000134 103403 BLO 1$
000136 032711 070000 BIT #70000,(R1)
000142 001432 BEQ 3$
000144 042703 170000 1$: BIC #170000,R3 ; 2346
000150 020327 004000 CMP R3,#4000
000154 103423 BLO 2$
000156 011103 MOV (R1),R3 ; 2347
000160 042703 170000 BIC #170000,R3
000164 016200 000022 MOV 22(R2),R0
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 79
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (29)
000170 160300 SUB R3,R0
000172 062700 004000 ADD #4000,R0
000176 042700 170000 BIC #170000,R0
000202 020027 004000 CMP R0,#4000
000206 103406 BLO 2$
000210 011100 MOV (R1),R0
000212 042700 107777 BIC #107777,R0
000216 020027 010000 CMP R0,#10000
000222 001402 BEQ 3$
000224 000167 000620 2$: JMP 13$
000230 152762 000020 000042 3$: BISB #20,42(R2) ; 2350
000236 105062 000052 CLRB 52(R2) ; 2351
000242 016200 000040 MOV 40(R2),R0 ; 2352
000246 042700 163777 BIC #163777,R0
000252 020027 004000 CMP R0,#4000
000256 001016 BNE 4$
000260 011103 MOV (R1),R3 ; 2354
000262 042703 170000 BIC #170000,R3
000266 167603 000000 SUB @0(SP),R3
000272 010304 MOV R3,R4
000274 042704 170000 BIC #170000,R4
000300 005000 CLR R0
000302 156200 000037 BISB 37(R2),R0
000306 160400 SUB R4,R0
000310 110062 000037 MOVB R0,37(R2)
000314 011176 000000 4$: MOV (R1),@0(SP) ; 2355
000320 042776 170000 000000 BIC #170000,@0(SP)
000326 012701 000116 MOV #116,R1 ; 2356
000332 060201 ADD R2,R1
000334 011103 MOV (R1),R3 ; *,TEMP
000336 010366 000002 5$: MOV R3,2(SP) ; TEMP,WK.CCB 2357
000342 010304 MOV R3,R4 ; WK.CCB,*
000344 011403 MOV (R4),R3 ; *,TEMP
000346 005704 TST R4
000350 001454 BEQ 7$
000352 017600 000000 MOV @0(SP),R0 ; 2359
000356 166400 000014 SUB 14(R4),R0
000362 062700 004000 ADD #4000,R0
000366 042700 170000 BIC #170000,R0
000372 020027 004000 CMP R0,#4000
000376 103441 BLO 7$
000400 011166 000002 MOV (R1),2(SP) ; *,WK.CCB 2362
000404 011100 MOV (R1),R0 ; WK.CCB,* 2363
000406 011011 MOV (R0),(R1)
000410 032760 000004 000030 BIT #4,30(R0) ; 2364
000416 001423 BEQ 6$
000420 016004 000004 MOV 4(R0),R4 ; 2366
000424 112764 000014 000012 MOVB #14,12(R4) ; 2368
000432 012764 000001 000014 MOV #1,14(R4) ; 2369
000440 004767 000000G JSR PC,$SCHED ; 2370
000444 016204 000040 MOV 40(R2),R4 ; 2372
000450 042704 163777 BIC #163777,R4
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 80
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (29)
000454 020427 010000 CMP R4,#10000
000460 001002 BNE 6$
000462 105362 000037 DECB 37(R2) ; 2374
000466 010046 6$: MOV R0,-(SP) ; 2377
000470 010246 MOV R2,-(SP)
000472 004767 171064 JSR PC,U.14
000476 022626 CMP (SP)+,(SP)+ ; 2361
000500 000716 BR 5$ ; 2359
000502 005062 000012 7$: CLR 12(R2) ; 2383
000506 027662 000000 000022 CMP @0(SP),22(R2) ; 2384
000514 001003 BNE 8$
000516 152762 000040 000042 BISB #40,42(R2) ; 2386
000524 016200 000022 8$: MOV 22(R2),R0 ; 2388
000530 167600 000000 SUB @0(SP),R0
000534 062700 004000 ADD #4000,R0
000540 042700 170000 BIC #170000,R0
000544 020027 004000 CMP R0,#4000
000550 101424 BLOS 9$
000552 016700 000002G MOV .CRDAT+2,R0
000556 032760 070000 000060 BIT #70000,60(R0)
000564 001016 BNE 9$
000566 016067 000030 000000G MOV 30(R0),KISAR6 ; 2391
000574 016503 000040 MOV 40(R5),R3 ; *(NDB),TEMP 2392
000600 016067 000014 000000G MOV 14(R0),KISAR6 ; 2393
000606 005001 CLR R1 ; 2394
000610 156001 000006 BISB 6(R0),R1
000614 070301 MUL R1,R3
000616 010362 000012 MOV R3,12(R2)
000622 017600 000000 9$: MOV @0(SP),R0 ; 2396
000626 166200 000060 SUB 60(R2),R0
000632 062700 004000 ADD #4000,R0
000636 042700 170000 BIC #170000,R0
000642 020027 004000 CMP R0,#4000
000646 103407 BLO 10$
000650 005762 000062 TST 62(R2) ; 2397
000654 001404 BEQ 10$
000656 010246 MOV R2,-(SP) ; 2399
000660 004767 000000V JSR PC,U.44
000664 005726 TST (SP)+
000666 121227 000014 10$: CMPB (R2),#14 ; 2400
000672 001066 BNE 13$
000674 017600 000000 MOV @0(SP),R0 ; 2401
000700 166200 000026 SUB 26(R2),R0
000704 032700 007777 BIT #7777,R0
000710 001057 BNE 13$
000712 005762 000044 TST 44(R2) ; 2402
000716 001454 BEQ 13$
000720 012701 000044 MOV #44,R1 ; 2408
000724 060201 ADD R2,R1
000726 005046 CLR -(SP) ; 2405
000730 012746 000006 MOV #6,-(SP)
000734 060616 ADD SP,(SP) ; WK.CCB,*
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 81
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (29)
000736 010246 MOV R2,-(SP)
000740 004767 170440 JSR PC,U.13
000744 062706 000006 ADD #6,SP
000750 006000 ROR R0
000752 103024 BCC 11$
000754 016600 000002 MOV 2(SP),R0 ; WK.CCB,* 2408
000760 011160 000004 MOV (R1),4(R0)
000764 010246 MOV R2,-(SP) ; 2409
000766 010046 MOV R0,-(SP) ; WK.CCB,*
000770 012746 000002 MOV #2,-(SP)
000774 012746 000000G MOV #DI.BLD,-(SP)
001000 016700 000002G MOV .CRDAT+2,R0
001004 005046 CLR -(SP)
001006 116016 000047 MOVB 47(R0),(SP)
001012 004767 000000G JSR PC,$CALLE
001016 062706 000012 ADD #12,SP ; 2407
001022 000411 BR 12$ ; 2405
001024 012703 000102 11$: MOV #102,R3 ; 2413
001030 060203 ADD R2,R3
001032 011104 MOV (R1),R4
001034 004767 000000G JSR PC,$CMQIN
001040 012762 000001 000070 MOV #1,70(R2) ; 2414
001046 005011 12$: CLR (R1) ; 2416
001050 022626 13$: CMP (SP)+,(SP)+ ; 2307
001052 000207 RTS PC
; Routine Size: 278 words, Routine Base: $CODE$ + 7074
; Maximum stack depth per invocation: 14 words
; 2420
; 2421
; 2422
; 2423
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 82
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (30)
; 2424 routine PROC_OTH_ACK ( CCB, PDB) : novalue = !
; 2425
; 2426 !++
; 2427 ! FUNCTIONAL DESCRIPTION:
; 2428 ! This routine processes the NUMBER and QUAL fields of a received
; 2429 ! Other Data Acknowledgement message.
; 2430 !
; 2431 ! FORMAL PARAMETERS:
; 2432 ! PDB = Port Data Base Address
; 2433 ! CCB = CCB Address
; 2434 !
; 2435 ! IMPLICIT INPUTS:
; 2436 ! DB = NSP Data Base Address
; 2437 !
; 2438 ! IMPLICIT OUTPUTS:
; 2439 ! None
; 2440 !
; 2441 ! ROUTINE VALUE:
; 2442 ! COMPLETION CODES:
; 2443 ! None
; 2444 !
; 2445 ! SIDE EFFECTS:
; 2446 ! None
; 2447 !--
; 2448
; 2449 begin
; 2450 map CCB: ref block field(C_fields);
; 2451 map PDB: ref block field(PORT_fields);
; 2452
; 2453 local
; 2454 temp: ref block field(C_fields);
; 2455
; 2456 MAP$( .DB[BIASports]);
; 2457
; 2458 If .PDB[OTHstate] neq OTHready and
; 2459 ((.DB[NUMBER] eql ((.PDB[NUMoth] -1) and %o'7777') and .DB[QUAL] eql Q_NAK) or
; 2460 (.DB[NUMBER] eql .PDB[NUMoth] and .DB[QUAL] eql Q_ACK))
; 2461 Then
; 2462 begin
; 2463 PDB[CONFIDENCE] = true;
; 2464 PDB[COUNToth_retrans] = 0;
; 2465 PDB[TIMERoth] = 0;
; 2466
; 2467 If .DB[QUAL] eql Q_ACK
; 2468 Then
; 2469 begin
; 2470 PDB[OTHstate] = OTHready;
; 2471 PDB[NUMoth] = .PDB[NUMoth] + 1;
; 2472 If CMQRM$( PDB[OTHACK_queue], temp)
; 2473 Then
; 2474 begin
; 2475 If .temp[C_MOD] eql N_XBUF
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 83
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (30)
; 2476 Then
; 2477 begin
; 2478 temp[C_STS] = N$SSUC;
; 2479 CMQIN$( PDB[BUFF_queue], .temp);
; 2480 end
; 2481 Else
; 2482 begin
; 2483 temp[C_FNC] = FC_XCP;
; 2484 temp[C_STS] = N$SSUC;
; 2485 LLCRS$( .temp);
; 2486 end
; 2487 end;
; 2488 If .PDB[OTHtyp] eql OTHinterrupt
; 2489 Then
; 2490 PDB[FLOWint_rem] = .PDB[FLOWint_rem] - 1;
; 2491 end
; 2492 end
; 2493 end;
.SBTTL PROC.OTH.ACK
000000 004167 000000G ; PROC.OTH.ACK
U.34: JSR R1,$SAVE5 ; 2424
000004 016701 000002G MOV .CRDAT+2,R1 ; 2456
000010 016167 000014 000000G MOV 14(R1),KISAR6
000016 016600 000016 MOV 16(SP),R0 ; PDB,* 2458
000022 012702 000064 MOV #64,R2
000026 060002 ADD R0,R2
000030 105712 TSTB (R2)
000032 001513 BEQ 5$
000034 012703 000060 MOV #60,R3 ; 2459
000040 060103 ADD R1,R3
000042 016004 000024 MOV 24(R0),R4
000046 005304 DEC R4
000050 010446 MOV R4,-(SP)
000052 011305 MOV (R3),R5
000054 074516 XOR R5,(SP)
000056 032726 007777 BIT #7777,(SP)+
000062 001006 BNE 1$
000064 011304 MOV (R3),R4
000066 042704 107777 BIC #107777,R4
000072 020427 010000 CMP R4,#10000
000076 001412 BEQ 2$
000100 016005 000024 1$: MOV 24(R0),R5 ; 2460
000104 011304 MOV (R3),R4
000106 042704 170000 BIC #170000,R4
000112 020405 CMP R4,R5
000114 001062 BNE 5$
000116 032713 070000 BIT #70000,(R3)
000122 001057 BNE 5$
000124 152760 000020 000042 2$: BISB #20,42(R0) ; 2463
000132 105060 000053 CLRB 53(R0) ; 2464
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 84
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (30)
000136 005060 000014 CLR 14(R0) ; 2465
000142 032761 070000 000060 BIT #70000,60(R1) ; 2467
000150 001044 BNE 5$
000152 105012 CLRB (R2) ; 2470
000154 005260 000024 INC 24(R0) ; 2471
000160 012703 000122 MOV #122,R3 ; 2472
000164 060003 ADD R0,R3
000166 004767 000000G JSR PC,$CMQRM
000172 103425 BCS 4$
000174 126427 000013 000032 CMPB 13(R4),#32 ; *(TEMP),* 2475
000202 001011 BNE 3$
000204 012764 000001 000014 MOV #1,14(R4) ; *,*(TEMP) 2478
000212 012703 000130 MOV #130,R3 ; 2479
000216 060003 ADD R0,R3
000220 004767 000000G JSR PC,$CMQIN
000224 000410 BR 4$ ; 2474
000226 112764 000014 000012 3$: MOVB #14,12(R4) ; *,*(TEMP) 2483
000234 012764 000001 000014 MOV #1,14(R4) ; *,*(TEMP) 2484
000242 004767 000000G JSR PC,$SCHED ; 2485
000246 126227 000001 000001 4$: CMPB 1(R2),#1 ; 2488
000254 001002 BNE 5$
000256 105360 000040 DECB 40(R0) ; 2490
000262 000207 5$: RTS PC ; 2424
; Routine Size: 90 words, Routine Base: $CODE$ + 10150
; Maximum stack depth per invocation: 7 words
; 2494
; 2495
; 2496
; 2497
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 85
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (31)
; 2498 routine REAS_DATA ( CCB, PDB) : novalue = !
; 2499
; 2500 !++
; 2501 ! FUNCTIONAL DESCRIPTION:
; 2502 ! This routine is the reassembly process.
; 2503 !
; 2504 ! FORMAL PARAMETERS:
; 2505 ! CCB = CCB address
; 2506 ! PDB = Port Data Base Address
; 2507 !
; 2508 ! IMPLICIT INPUTS:
; 2509 ! DB = NSP Data Base Address
; 2510 !
; 2511 ! IMPLICIT OUTPUTS:
; 2512 ! None
; 2513 !
; 2514 ! ROUTINE VALUE:
; 2515 ! COMPLETION CODES:
; 2516 ! None
; 2517 !
; 2518 ! SIDE EFFECTS:
; 2519 ! None
; 2520 !--
; 2521
; 2522 begin
; 2523 map CCB: ref block field(C_fields);
; 2524 map PDB: ref block field(PORT_fields);
; 2525
; 2526
; 2527 bind BUFF_CCB = .PDB[BUFF_queue]: block field(C_fields);
; 2528
; 2529 local
; 2530 TO_ADDR,
; 2531 TEMP,
; 2532 size,
; 2533 XFRCNT,
; 2534 NDB : ref block field(NODE_fields),
; 2535 GOT_CCB: ref block field(C_fields);
; 2536
; 2537 NDB = .PDB[NODElnk];
; 2538
; 2539 If not .DB[Q_FLG]
; 2540 Then
; 2541 size = 7
; 2542 Else
; 2543 size = 9;
; 2544 MAP$( .DB[BIASnodes]);
; 2545 DADD( NDB[NDb_rcv], .CCB[C_CNT] - .size);
; 2546 MAP$( .DB[BIASports]);
; 2547
; 2548 If .PDB[FLOWloc_typ] eql FLOWmsg
; 2549 Then
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 86
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (31)
; 2550 begin
; 2551 If .PDB[BUFFhead] eql 0
; 2552 Then
; 2553 begin
; 2554 CCB[C_FNC] = FC_RCE;
; 2555 LLCRS$( .CCB);
; 2556 return
; 2557 end
; 2558 Else
; 2559 begin
; 2560 If .PDB[REAS_PTR] neq 0 and
; 2561 (.DB[MSGFLG] and NSPbom) neq 0
; 2562 Then
; 2563 begin
; 2564 CCB[C_FNC] = FC_RCE;
; 2565 LLCRS$( .CCB);
; 2566 return
; 2567 end;
; 2568
; 2569 XFRCNT =
; 2570 begin
; 2571 If (.PDB[REAS_PTR] + .CCB[C_CNT] - .SIZE) leq .BUFF_CCB[C_CNT]
; 2572 Then
; 2573 .CCB[C_CNT] - .SIZE
; 2574 Else
; 2575 begin
; 2576 BUFF_CCB[C_STS] = N$ELST;
; 2577 .BUFF_CCB[C_CNT] - .PDB[REAS_PTR]
; 2578 end
; 2579 end;
; 2580
; 2581 If .XFRCNT neq 0
; 2582 Then
; 2583 begin
; 2584 TEMP = ch$plus( .CCB[C_ADDR], .SIZE);
; 2585 TO_ADDR = ch$plus( .BUFF_CCB[C_ADDR], .PDB[REAS_PTR]);
; 2586 MAP$( .CCB[C_BIAS]);
; 2587 MTBF$S( .XFRCNT, .temp, .BUFF_CCB[C_BIAS], .TO_ADDR);
; 2588 MAP$( .DB[BIASports]);
; 2589 end;
; 2590 PDB[REAS_PTR] = .PDB[REAS_PTR] + .XFRCNT;
; 2591
; 2592 IF (.DB[MSGFLG] and NSPeom) neq 0
; 2593 Then
; 2594 begin
; 2595 BUFF_CCB[C_CNT] = .PDB[REAS_ptr];
; 2596 BUFF_CCB[C_FNC] = FC_XCP;
; 2597 PDB[REAS_PTR] = 0;
; 2598 LLCRS$( BUFF_CCB);
; 2599 CMQRM$( PDB[BUFF_queue], temp)
; 2600 end;
; 2601
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 87
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (31)
; 2602 CCB[C_FNC] = FC_RCE;
; 2603 LLCRS$( .CCB);
; 2604 end
; 2605 end
; 2606 Else
; 2607 begin
; 2608 If .PDB[RCVmsg_queue] eql 0 and
; 2609 CCB_GET( GOT_CCB, .PDB)
; 2610 Then
; 2611 begin
; 2612 GOT_CCB[C_STK] = .CCB;
; 2613 DATA_RECVD( .GOT_CCB, .PDB);
; 2614 end
; 2615 Else
; 2616 CMQIN$( PDB[RCVmsg_queue], .CCB);
; 2617 end;
; 2618 PDB[FLAGdat_ack] = true;
; 2619 PDB[ACKdat_xmt] = (.PDB[ACKdat_xmt] + 1 and %o'7777');
; 2620 end;
.GLOBL $MVTBF
.SBTTL REAS.DATA
000000 004167 000000G ; REAS.DATA
U.35: JSR R1,$SAVE5 ; 2498
000004 162706 000010 SUB #10,SP
000010 016666 000026 000002 MOV 26(SP),2(SP) ; PDB,* 2527
000016 016600 000002 MOV 2(SP),R0
000022 016001 000130 MOV 130(R0),R1
000026 016003 000010 MOV 10(R0),R3 ; *,NDB 2537
000032 016700 000002G MOV .CRDAT+2,R0 ; 2539
000036 005760 000060 TST 60(R0)
000042 100403 BMI 1$
000044 012702 000007 MOV #7,R2 ; *,SIZE 2541
000050 000402 BR 2$ ; 2539
000052 012702 000011 1$: MOV #11,R2 ; *,SIZE 2543
000056 016700 000002G 2$: MOV .CRDAT+2,R0 ; 2544
000062 016067 000030 000000G MOV 30(R0),KISAR6
000070 010346 MOV R3,-(SP) ; NDB,* 2545
000072 062716 000010 ADD #10,(SP)
000076 016605 000032 MOV 32(SP),R5 ; CCB,*
000102 016546 000022 MOV 22(R5),-(SP)
000106 160216 SUB R2,(SP) ; SIZE,*
000110 004767 170220 JSR PC,U.15
000114 016700 000002G MOV .CRDAT+2,R0 ; 2546
000120 016067 000014 000000G MOV 14(R0),KISAR6
000126 016603 000006 MOV 6(SP),R3 ; 2548
000132 016300 000040 MOV 40(R3),R0
000136 042700 176377 BIC #176377,R0
000142 020027 001000 CMP R0,#1000
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 88
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (31)
000146 001152 BNE 10$
000150 005701 TST R1 ; 2551
000152 001010 BNE 4$
000154 112765 000004 000012 3$: MOVB #4,12(R5) ; 2554
000162 010504 MOV R5,R4 ; 2555
000164 004767 000000G JSR PC,$SCHED
000170 000167 000436 JMP 13$ ; 2551
000174 012700 000126 4$: MOV #126,R0 ; 2560
000200 066600 000006 ADD 6(SP),R0
000204 010066 000010 MOV R0,10(SP)
000210 005710 TST (R0)
000212 001406 BEQ 5$
000214 016700 000002G MOV .CRDAT+2,R0 ; 2561
000220 132760 000040 000052 BITB #40,52(R0)
000226 001352 BNE 3$ ; 2564
000230 017600 000010 5$: MOV @10(SP),R0 ; 2571
000234 066500 000022 ADD 22(R5),R0
000240 160200 SUB R2,R0 ; SIZE,*
000242 012704 000022 MOV #22,R4
000246 060104 ADD R1,R4
000250 020014 CMP R0,(R4)
000252 003004 BGT 6$
000254 016500 000022 MOV 22(R5),R0 ; *,XFRCNT 2573
000260 160200 SUB R2,R0 ; SIZE,XFRCNT
000262 000406 BR 7$ ; 2570
000264 012761 177770 000014 6$: MOV #-10,14(R1) ; 2576
000272 011400 MOV (R4),R0 ; *,XFRCNT 2577
000274 167600 000010 SUB @10(SP),R0 ; *,XFRCNT
000300 001432 7$: BEQ 8$ ; 2581
000302 016566 000020 000004 MOV 20(R5),4(SP) ; *,TEMP 2584
000310 060266 000004 ADD R2,4(SP) ; SIZE,TEMP
000314 016102 000020 MOV 20(R1),R2 ; *,TO.ADDR 2585
000320 067602 000010 ADD @10(SP),R2 ; *,TO.ADDR
000324 016567 000016 000000G MOV 16(R5),KISAR6 ; 2586
000332 016116 000016 MOV 16(R1),(SP) ; 2587
000336 010246 MOV R2,-(SP) ; TO.ADDR,*
000340 016602 000006 MOV 6(SP),R2 ; TEMP,*
000344 010003 MOV R0,R3 ; XFRCNT,*
000346 004767 000000G JSR PC,$MVTBF
000352 016702 000002G MOV .CRDAT+2,R2 ; 2588
000356 016267 000014 000000G MOV 14(R2),KISAR6
000364 005726 TST (SP)+ ; 2583
000366 060076 000010 8$: ADD R0,@10(SP) ; XFRCNT,* 2590
000372 016702 000002G MOV .CRDAT+2,R2 ; 2592
000376 132762 000100 000052 BITB #100,52(R2)
000404 001424 BEQ 9$
000406 017614 000010 MOV @10(SP),(R4) ; 2595
000412 112761 000014 000012 MOVB #14,12(R1) ; 2596
000420 005076 000010 CLR @10(SP) ; 2597
000424 010104 MOV R1,R4 ; 2598
000426 004767 000000G JSR PC,$SCHED
000432 012700 000130 MOV #130,R0 ; 2599
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 89
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (31)
000436 066600 000006 ADD 6(SP),R0
000442 010003 MOV R0,R3
000444 004767 000000G JSR PC,$CMQRM
000450 103402 BCS 9$
000452 010466 000004 MOV R4,4(SP) ; $MCB$R4,TEMP
000456 112765 000004 000012 9$: MOVB #4,12(R5) ; 2602
000464 010504 MOV R5,R4 ; 2603
000466 004767 000000G JSR PC,$SCHED
000472 000437 BR 12$ ; 2548
000474 012700 000134 10$: MOV #134,R0 ; 2608
000500 066600 000006 ADD 6(SP),R0
000504 010003 MOV R0,R3
000506 005713 TST (R3)
000510 001025 BNE 11$
000512 012716 000012 MOV #12,(SP) ; 2609
000516 060616 ADD SP,(SP) ; GOT.CCB,*
000520 016646 000006 MOV 6(SP),-(SP)
000524 004767 167200 JSR PC,U.12
000530 005726 TST (SP)+
000532 006000 ROR R0
000534 103013 BCC 11$
000536 016600 000012 MOV 12(SP),R0 ; GOT.CCB,* 2612
000542 010560 000004 MOV R5,4(R0)
000546 010016 MOV R0,(SP) ; GOT.CCB,* 2613
000550 016646 000006 MOV 6(SP),-(SP)
000554 004767 170120 JSR PC,U.16
000560 005726 TST (SP)+ ; 2611
000562 000403 BR 12$ ; 2608
000564 010504 11$: MOV R5,R4 ; 2616
000566 004767 000000G JSR PC,$CMQIN
000572 016600 000006 12$: MOV 6(SP),R0 ; 2618
000576 052760 020000 000040 BIS #20000,40(R0)
000604 010001 MOV R0,R1 ; 2619
000606 016100 000030 MOV 30(R1),R0
000612 005200 INC R0
000614 016601 000006 MOV 6(SP),R1
000620 010061 000030 MOV R0,30(R1)
000624 042761 170000 000030 BIC #170000,30(R1)
000632 062706 000014 13$: ADD #14,SP ; 2498
000636 000207 RTS PC
; Routine Size: 208 words, Routine Base: $CODE$ + 10434
; Maximum stack depth per invocation: 14 words
; 2621
; 2622
; 2623
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 90
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (32)
; 2624 routine SEG_BLD ( CCB, PDB) : novalue = !
; 2625
; 2626 !++
; 2627 ! FUNCTIONAL DESCRIPTION:
; 2628 ! This routine formats an NSP Data Segment message and queues it to
; 2629 ! Transport.
; 2630 !
; 2631 ! FORMAL PARAMETERS:
; 2632 ! PDB = Port Data Base Address
; 2633 ! CCB = CCB Address
; 2634 !
; 2635 ! IMPLICIT INPUTS:
; 2636 ! DB = NSP Data Base Address
; 2637 !
; 2638 ! IMPLICIT OUTPUTS:
; 2639 ! None
; 2640 !
; 2641 ! ROUTINE VALUE:
; 2642 ! COMPLETION CODES:
; 2643 ! None
; 2644 !
; 2645 ! SIDE EFFECTS:
; 2646 ! None
; 2647 !--
; 2648
; 2649 begin
; 2650 map CCB: ref block field(C_fields);
; 2651 map PDB: ref block field(PORT_fields);
; 2652
; 2653 bind CHN_CCB = .CCB[C_CHN]: block field(C_fields);
; 2654
; 2655 local
; 2656 xtemp,
; 2657 PTR,
; 2658 FLG;
; 2659
; 2660 If .PDB[FLAGseg] eql false
; 2661 Then
; 2662 xtemp = .CHN_CCB[C_STS]
; 2663 Else
; 2664 xtemp = .PDB[NUMdat];
; 2665
; 2666 xtemp = (.xtemp and %o'7777');
; 2667 PTR = .CCB[C_ADDR];
; 2668 FLG = 0;
; 2669
; 2670 If (.CHN_CCB[C_PRM3] and N$FBOM) neq 0
; 2671 Then
; 2672 FLG = FLG_BOM;
; 2673 If (.CHN_CCB[C_PRM3] and N$FEOM) neq 0
; 2674 Then
; 2675 FLG = .FLG or FLG_EOM;
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 91
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (32)
; 2676
; 2677 ch$wchar_a( .FLG, PTR);
; 2678 ch$wchar_a( .PDB[L_rem_addr], PTR);
; 2679 ch$wchar_a( .PDB[H_rem_addr], PTR);
; 2680 ch$wchar_a( .PDB[PID], PTR);
; 2681 ch$wchar_a( .PDB[ADDran], PTR);
; 2682 PUT2BYTES( .PDB[ACKdat_xmt] + Q_ACK^12 + true^15, PTR);
; 2683 PUT2BYTES( .xtemp, PTR);
; 2684
; 2685 CCB[C_CNT] = ch$diff(.PTR, .CCB[C_ADDR]);
; 2686
; 2687 CCB[C_STK] = .CCB[C_CHN];
; 2688 CHN_CCB[C_STS] = .xtemp;
; 2689 CHN_CCB[C_MOD] = N_XDAT;
; 2690 PDB[FLAGdat_ack] = false;
; 2691
; 2692 If .PDB[DELAYstr_tim] eql 0
; 2693 Then
; 2694 begin
; 2695 PDB[DELAYstr_tim] = 1;
; 2696 PDB[DELAYmsg_num] = .xtemp;
; 2697 end;
; 2698 If .PDB[FLAGseg] eql true
; 2699 Then
; 2700 PDB[NUMdat] = .PDB[NUMdat] + 1
; 2701 Else
; 2702 begin
; 2703 if CMP_EQL( .xtemp, (.PDB[NUMdat] -1))
; 2704 then
; 2705 PDB[FLAGseg] = true
; 2706 end;
; 2707
; 2708 XPT_XMIT( .CCB, .PDB)
; 2709 end;
.SBTTL SEG.BLD
000000 004167 000000G ; SEG.BLD
U.36: JSR R1,$SAVE5 ; 2624
000004 016604 000020 MOV 20(SP),R4 ; CCB,* 2653
000010 016403 000002 MOV 2(R4),R3 ; 2649
000014 016602 000016 MOV 16(SP),R2 ; PDB,* 2660
000020 012746 000042 MOV #42,-(SP)
000024 060216 ADD R2,(SP)
000026 132776 000040 000000 BITB #40,@0(SP)
000034 001003 BNE 1$
000036 016301 000014 MOV 14(R3),R1 ; *,XTEMP 2662
000042 000402 BR 2$ ; 2660
000044 016201 000020 1$: MOV 20(R2),R1 ; *,XTEMP 2664
000050 042701 170000 2$: BIC #170000,R1 ; *,XTEMP 2666
000054 016405 000020 MOV 20(R4),R5 ; *,PTR 2667
000060 005000 CLR R0 ; FLG 2668
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 92
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (32)
000062 032763 000002 000030 BIT #2,30(R3) ; 2670
000070 001402 BEQ 3$
000072 012700 000040 MOV #40,R0 ; *,FLG 2672
000076 032763 000001 000030 3$: BIT #1,30(R3) ; 2673
000104 001402 BEQ 4$
000106 052700 000100 BIS #100,R0 ; *,FLG 2675
000112 110025 4$: MOVB R0,(R5)+ ; FLG,PTR 2677
000114 116225 000006 MOVB 6(R2),(R5)+ ; *,PTR 2678
000120 116225 000007 MOVB 7(R2),(R5)+ ; *,PTR 2679
000124 116225 000004 MOVB 4(R2),(R5)+ ; *,PTR 2680
000130 116225 000005 MOVB 5(R2),(R5)+ ; *,PTR 2681
000134 016200 000030 MOV 30(R2),R0 ; *,TEMP 2682
000140 162700 100000 SUB #100000,R0 ; *,TEMP
000144 110025 MOVB R0,(R5)+ ; TEMP,PTR
000146 010046 MOV R0,-(SP) ; TEMP,*
000150 000316 SWAB (SP)
000152 112625 MOVB (SP)+,(R5)+ ; *,PTR
000154 010100 MOV R1,R0 ; XTEMP,TEMP 2683
000156 110025 MOVB R0,(R5)+ ; TEMP,PTR
000160 010046 MOV R0,-(SP) ; TEMP,*
000162 000316 SWAB (SP)
000164 112625 MOVB (SP)+,(R5)+ ; *,PTR
000166 010564 000022 MOV R5,22(R4) ; PTR,* 2685
000172 166464 000020 000022 SUB 20(R4),22(R4)
000200 016464 000002 000004 MOV 2(R4),4(R4) ; 2687
000206 010163 000014 MOV R1,14(R3) ; XTEMP,* 2688
000212 112763 000022 000013 MOVB #22,13(R3) ; 2689
000220 042762 020000 000040 BIC #20000,40(R2) ; 2690
000226 012700 000062 MOV #62,R0 ; 2692
000232 060200 ADD R2,R0
000234 005710 TST (R0)
000236 001004 BNE 5$
000240 012710 000001 MOV #1,(R0) ; 2695
000244 010162 000060 MOV R1,60(R2) ; XTEMP,* 2696
000250 012700 000020 5$: MOV #20,R0 ; 2700
000254 060200 ADD R2,R0
000256 132776 000040 000000 BITB #40,@0(SP) ; 2698
000264 001402 BEQ 6$
000266 005210 INC (R0) ; 2700
000270 000411 BR 7$ ; 2698
000272 011000 6$: MOV (R0),R0 ; 2703
000274 160100 SUB R1,R0 ; XTEMP,*
000276 005300 DEC R0
000300 032700 007777 BIT #7777,R0
000304 001003 BNE 7$
000306 152776 000040 000000 BISB #40,@0(SP) ; 2705
000314 010446 7$: MOV R4,-(SP) ; 2708
000316 010246 MOV R2,-(SP)
000320 004767 000000V JSR PC,U.45
000324 062706 000006 ADD #6,SP ; 2624
000330 000207 RTS PC
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 93
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (32)
; Routine Size: 109 words, Routine Base: $CODE$ + 11274
; Maximum stack depth per invocation: 10 words
; 2710
; 2711
; 2712
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 94
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (33)
; 2713 routine SND_DATA ( PDB) : = !
; 2714
; 2715 !++
; 2716 ! functional description:
; 2717 ! This routine performs the actual segmentation of Session Control
; 2718 ! transmit buffers into NSP segments. Control is passed to to the
; 2719 ! data segment format routine.
; 2720 !
; 2721 ! formal parameters:
; 2722 ! PDB = Port Data Base Address
; 2723 !
; 2724 ! implicit inputs:
; 2725 ! DB = NSP Data Base Address
; 2726 !
; 2727 ! implicit outputs:
; 2728 ! none
; 2729 !
; 2730 ! routine value:
; 2731 ! completion codes:
; 2732 ! none
; 2733 !
; 2734 ! side effects:
; 2735 ! none
; 2736 !--
; 2737 begin
; 2738 map PDB: ref block field(PORT_fields);
; 2739
; 2740 bind CHN_CCB = .PDB[MSG_chain]: block field(C_fields);
; 2741 bind MSG_CCB = .PDB[MSG_queue]: block field(C_fields);
; 2742
; 2743 local
; 2744 SEG_CCB: ref block field(C_fields),
; 2745 NDB : ref block field(NODE_fields),
; 2746 CCB: ref block field(C_fields);
; 2747
; 2748 NDB = .PDB[NODElnk];
; 2749
; 2750 If .PDB[FLAGseg] eql false
; 2751 Then
; 2752 begin
; 2753 If CCB_HDR_GET( .PDB[ACK_queue], CCB, .PDB)
; 2754 Then
; 2755 begin
; 2756 CCB[C_CHN] = .PDB[ACK_queue];
; 2757 PDB[ACK_queue] = .(.CCB[C_CHN]);
; 2758 MAP$( .DB[BIASnodes]);
; 2759 NDB[NDtimeout] = .NDB[NDtimeout] + 1;
; 2760 MAP$( .DB[BIASports]);
; 2761 end
; 2762 Else
; 2763 begin
; 2764 PDB[DATres] = true;
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 95
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (33)
; 2765 return false
; 2766 end;
; 2767 end
; 2768 Else
; 2769 begin
; 2770 If CCB_GET( SEG_CCB, .PDB)
; 2771 Then
; 2772 begin
; 2773 If not CCB_HDR_GET( 0, CCB, .PDB)
; 2774 Then
; 2775 begin
; 2776 CCB_RETRN( .SEG_CCB, .PDB);
; 2777 PDB[DATres] = true;
; 2778 return false;
; 2779 end
; 2780 Else
; 2781 begin
; 2782 CCB[C_CHN] = .SEG_CCB;
; 2783 SEG_CCB[C_STK] = .PDB[MSG_queue];
; 2784
; 2785 If .CHN_CCB[C_CNT] - .MSG_CCB[C_STS] leq .PDB[SIZEseg]
; 2786 Then
; 2787 begin
; 2788 SEG_CCB[C_CNT] = .CHN_CCB[C_CNT] - .MSG_CCB[C_STS];
; 2789 SEG_CCB[C_ADDR] = ch$plus( .CHN_CCB[C_ADDR], .MSG_CCB[C_STS]);
; 2790 SEG_CCB[C_BIAS] = .CHN_CCB[C_BIAS];
; 2791
; 2792 If .CHN_CCB[C_CHN] neq 0
; 2793 Then
; 2794 begin
; 2795 MSG_CCB[C_STS] = 0;
; 2796 PDB[MSG_chain] = .CHN_CCB[C_CHN]
; 2797 end
; 2798 Else
; 2799 begin
; 2800 If .MSG_CCB[C_PRM1] eql N$FEOM
; 2801 Then
; 2802 SEG_CCB[C_PRM3] = N$FEOM;
; 2803 SEG_CCB[C_PRM3] = .SEG_CCB[C_PRM3] or N$FCMP;
; 2804 CMQRM$( PDB[MSG_queue], SEG_CCB[C_STK]);
; 2805 PDB[MSG_chain] = .PDB[MSGhead]
; 2806 end
; 2807 end
; 2808 Else
; 2809 begin
; 2810 SEG_CCB[C_ADDR] = ch$plus( .CHN_CCB[C_ADDR], .MSG_CCB[C_STS]);
; 2811 SEG_CCB[C_BIAS] = .CHN_CCB[C_BIAS];
; 2812 SEG_CCB[C_CNT] = .PDB[SIZEseg];
; 2813 MSG_CCB[C_STS] = .MSG_CCB[C_STS] + .PDB[SIZEseg];
; 2814 end;
; 2815 IF .PDB[FLAGnew_msg]
; 2816 Then
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 96
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (33)
; 2817 begin
; 2818 SEG_CCB[C_PRM3] = (.SEG_CCB[C_PRM3] or N$FBOM);
; 2819 PDB[FLAGnew_msg] = false
; 2820 end;
; 2821 If .SEG_CCB[C_PRM3] and N$FEOM
; 2822 Then
; 2823 PDB[FLAGnew_msg] = true;
; 2824 MAP$( .DB[BIASnodes]);
; 2825 DADD( NDB[NDb_xmt], .SEG_CCB[C_CNT]);
; 2826 MAP$( .DB[BIASports])
; 2827 end
; 2828 end
; 2829 Else
; 2830 begin
; 2831 PDB[DATres] = true;
; 2832 return false
; 2833 end
; 2834 end;
; 2835 SEG_BLD( .CCB, .PDB);
; 2836 return true;
; 2837 end;
.SBTTL SND.DATA
000000 004167 000000G ; SND.DATA
U.37: JSR R1,$SAVE5 ; 2713
000004 162706 000016 SUB #16,SP
000010 016646 000034 MOV 34(SP),-(SP) ; PDB,* 2740
000014 012700 000074 MOV #74,R0
000020 061600 ADD (SP),R0
000022 010066 000012 MOV R0,12(SP)
000026 011003 MOV (R0),R3 ; 2737
000030 012700 000102 MOV #102,R0 ; 2741
000034 061600 ADD (SP),R0
000036 010066 000010 MOV R0,10(SP)
000042 011002 MOV (R0),R2 ; 2737
000044 011600 MOV (SP),R0 ; 2748
000046 016066 000010 000002 MOV 10(R0),2(SP) ; *,NDB
000054 012700 000042 MOV #42,R0 ; 2750
000060 061600 ADD (SP),R0
000062 010066 000006 MOV R0,6(SP)
000066 132710 000040 BITB #40,(R0)
000072 001053 BNE 2$
000074 012700 000116 MOV #116,R0 ; 2753
000100 061600 ADD (SP),R0
000102 010001 MOV R0,R1
000104 011146 MOV (R1),-(SP)
000106 012746 000022 MOV #22,-(SP)
000112 060616 ADD SP,(SP) ; CCB,*
000114 016646 000004 MOV 4(SP),-(SP)
000120 004767 166526 JSR PC,U.13
000124 062706 000006 ADD #6,SP
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 97
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (33)
000130 006000 ROR R0
000132 103026 BCC 1$
000134 016600 000016 MOV 16(SP),R0 ; CCB,* 2756
000140 011160 000002 MOV (R1),2(R0)
000144 017011 000002 MOV @2(R0),(R1) ; 2757
000150 016700 000002G MOV .CRDAT+2,R0 ; 2758
000154 016067 000030 000000G MOV 30(R0),KISAR6
000162 016600 000002 MOV 2(SP),R0 ; NDB,* 2759
000166 005260 000036 INC 36(R0) ; *(NDB)
000172 016700 000002G MOV .CRDAT+2,R0 ; 2760
000176 016067 000014 000000G MOV 14(R0),KISAR6
000204 000167 000454 JMP 12$ ; 2753
000210 011600 1$: MOV (SP),R0 ; 2764
000212 012760 000001 000066 MOV #1,66(R0)
000220 000443 BR 3$ ; 2763
000222 012746 000016 2$: MOV #16,-(SP) ; 2770
000226 060616 ADD SP,(SP) ; SEG.CCB,*
000230 016646 000002 MOV 2(SP),-(SP)
000234 004767 166276 JSR PC,U.12
000240 022626 CMP (SP)+,(SP)+
000242 006000 ROR R0
000244 103361 BCC 1$
000246 016605 000014 MOV 14(SP),R5 ; SEG.CCB,* 2776
000252 005046 CLR -(SP) ; 2773
000254 012746 000022 MOV #22,-(SP)
000260 060616 ADD SP,(SP) ; CCB,*
000262 016646 000004 MOV 4(SP),-(SP)
000266 004767 166360 JSR PC,U.13
000272 062706 000006 ADD #6,SP
000276 006000 ROR R0
000300 103414 BLO 4$
000302 010546 MOV R5,-(SP) ; 2776
000304 016646 000002 MOV 2(SP),-(SP)
000310 004767 166514 JSR PC,U.14
000314 016600 000004 MOV 4(SP),R0 ; 2777
000320 012760 000001 000066 MOV #1,66(R0)
000326 022626 CMP (SP)+,(SP)+ ; 2773
000330 000567 3$: BR 13$ ; 2775
000332 016600 000016 4$: MOV 16(SP),R0 ; CCB,* 2782
000336 010560 000002 MOV R5,2(R0)
000342 017665 000010 000004 MOV @10(SP),4(R5) ; 2783
000350 012766 000022 000004 MOV #22,4(SP) ; 2788
000356 060566 000004 ADD R5,4(SP)
000362 012704 000014 MOV #14,R4 ; 2785
000366 060204 ADD R2,R4
000370 016301 000022 MOV 22(R3),R1
000374 161401 SUB (R4),R1
000376 011646 MOV (SP),-(SP)
000400 062716 000072 ADD #72,(SP)
000404 013600 MOV @(SP)+,R0
000406 020100 CMP R1,R0
000410 003046 BGT 8$
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 98
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (33)
000412 010176 000004 MOV R1,@4(SP) ; 2788
000416 016301 000020 MOV 20(R3),R1 ; 2789
000422 061401 ADD (R4),R1
000424 010165 000020 MOV R1,20(R5)
000430 016365 000016 000016 MOV 16(R3),16(R5) ; 2790
000436 016300 000002 MOV 2(R3),R0 ; 2792
000442 001404 BEQ 5$
000444 005014 CLR (R4) ; 2795
000446 010076 000012 MOV R0,@12(SP) ; 2796
000452 000440 BR 9$ ; 2792
000454 026227 000024 000001 5$: CMP 24(R2),#1 ; 2800
000462 001003 BNE 6$
000464 012765 000001 000030 MOV #1,30(R5) ; 2802
000472 052765 000004 000030 6$: BIS #4,30(R5) ; 2803
000500 016603 000010 MOV 10(SP),R3 ; 2804
000504 004767 000000G JSR PC,$CMQRM
000510 103402 BCS 7$
000512 010465 000004 MOV R4,4(R5) ; $MCB$R4,*
000516 017676 000010 000012 7$: MOV @10(SP),@12(SP) ; 2805
000524 000413 BR 9$ ; 2785
000526 016301 000020 8$: MOV 20(R3),R1 ; 2810
000532 061401 ADD (R4),R1
000534 010165 000020 MOV R1,20(R5)
000540 016365 000016 000016 MOV 16(R3),16(R5) ; 2811
000546 010076 000004 MOV R0,@4(SP) ; 2812
000552 060014 ADD R0,(R4) ; 2813
000554 132776 000002 000006 9$: BITB #2,@6(SP) ; 2815
000562 001406 BEQ 10$
000564 052765 000002 000030 BIS #2,30(R5) ; 2818
000572 142776 000002 000006 BICB #2,@6(SP) ; 2819
000600 032765 000001 000030 10$: BIT #1,30(R5) ; 2821
000606 001403 BEQ 11$
000610 152776 000002 000006 BISB #2,@6(SP) ; 2823
000616 016701 000002G 11$: MOV .CRDAT+2,R1 ; 2824
000622 016167 000030 000000G MOV 30(R1),KISAR6
000630 016646 000002 MOV 2(SP),-(SP) ; NDB,* 2825
000634 062716 000014 ADD #14,(SP)
000640 017646 000006 MOV @6(SP),-(SP)
000644 004767 166272 JSR PC,U.15
000650 016700 000002G MOV .CRDAT+2,R0 ; 2826
000654 016067 000014 000000G MOV 14(R0),KISAR6
000662 022626 CMP (SP)+,(SP)+ ; 2781
000664 016646 000016 12$: MOV 16(SP),-(SP) ; CCB,* 2835
000670 016646 000002 MOV 2(SP),-(SP)
000674 004767 176546 JSR PC,U.36
000700 022626 CMP (SP)+,(SP)+ ; 2713
000702 012700 000001 MOV #1,R0 ; 2737
000706 000401 BR 14$
000710 005000 13$: CLR R0 ; 2713
000712 062706 000020 14$: ADD #20,SP
000716 000207 RTS PC
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 99
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (33)
; Routine Size: 232 words, Routine Base: $CODE$ + 11626
; Maximum stack depth per invocation: 18 words
; 2838
; 2839
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 100
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (34)
; 2840 global routine SND_MSG ( PDB) : CALL$ novalue = !
; 2841
; 2842 !++
; 2843 ! FUNCTIONAL DESCRIPTION:
; 2844 ! This routine prioritises the message transmission process.
; 2845 !
; 2846 ! FORMAL PARAMETERS:
; 2847 ! PDB = Port Data Base Address
; 2848 !
; 2849 ! IMPLICIT INPUTS:
; 2850 ! DB = NSP Data Base Address
; 2851 !
; 2852 ! IMPLICIT OUTPUTS:
; 2853 ! None
; 2854 !
; 2855 ! ROUTINE VALUE:
; 2856 ! COMPLETION CODES:
; 2857 ! None
; 2858 !
; 2859 ! SIDE EFFECTS:
; 2860 ! None
; 2861 !--
; 2862
; 2863 begin
; 2864 local
; 2865 sts;
; 2866
; 2867 Do ( STS = CALL$L( TRICKLE, .PDB))
; 2868 While .STS eql true;
; 2869 end;
.SBTTL SND.MSG
000000 016546 000002 SND.MSG::
U.38:
000000 1$: MOV 2(R5),-(SP) ; PDB(.AP.),* 2867
000004 012746 000001 MOV #1,-(SP)
000010 012746 000000V MOV #U.43,-(SP)
000014 004767 000000G JSR PC,$CALL
000020 010001 MOV R0,R1 ; *,STS
000022 062706 000006 ADD #6,SP
000026 020127 000001 CMP R1,#1 ; STS,* 2868
000032 001762 BEQ 1$
000034 000207 RTS PC ; 2840
; Routine Size: 15 words, Routine Base: $CODE$ + 12546
; Maximum stack depth per invocation: 4 words
; 2870
; 2871
; 2872
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 101
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (35)
; 2873 global routine SND_INTERRUPT ( PDB) : call$ = !
; 2874
; 2875 !++
; 2876 ! FUNCTIONAL DESCRIPTION:
; 2877 ! This routine dequeues an INTERRUPT-XMT CCB and passes to control
; 2878 ! to the Interrupt Format routine.
; 2879 !
; 2880 ! FORMAL PARAMETERS:
; 2881 ! PDB = Port Data Base Address
; 2882 !
; 2883 ! IMPLICIT INPUTS:
; 2884 ! DB = NSP Data Base Address
; 2885 !
; 2886 ! IMPLICIT OUTPUTS:
; 2887 ! None
; 2888 !
; 2889 ! ROUTINE VALUE:
; 2890 ! COMPLETION CODES:
; 2891 ! None
; 2892 !
; 2893 ! SIDE EFFECTS:
; 2894 ! None
; 2895 !--
; 2896
; 2897 begin
; 2898 map PDB: ref block field(PORT_fields);
; 2899
; 2900 local
; 2901 NDB : ref block field(NODE_fields),
; 2902 CCB: ref block field(C_fields);
; 2903
; 2904 NDB = .PDB[NODElnk];
; 2905
; 2906 If .PDB[OTHstate] eql OTHtimeout
; 2907 Then
; 2908 begin
; 2909 If CCB_HDR_GET( 0, CCB, .PDB)
; 2910 Then
; 2911 begin
; 2912 CMQRM$( PDB[OTHack_queue], CCB[C_STK]);
; 2913 MAP$( .DB[BIASnodes]);
; 2914 NDB[NDtimeout] = .NDB[NDtimeout] + 1;
; 2915 MAP$( .DB[BIASports]);
; 2916
; 2917 Selectone .PDB[OTHtyp] of
; 2918 Set
; 2919 [OTHirequest]:
; 2920 IRQ_BLD( .CCB, .PDB);
; 2921 [OTHdrequest]:
; 2922 DRQ_BLD( .CCB, .PDB);
; 2923 [OTHinterrupt]:
; 2924 INT_BLD( .CCB, .PDB);
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 102
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (35)
; 2925 Tes;
; 2926 return true;
; 2927 end
; 2928 Else
; 2929 begin
; 2930 PDB[OTHres] = true;
; 2931 return false
; 2932 end
; 2933 end;
; 2934 If .PDB[OTHstate] eql OTHready
; 2935 Then
; 2936 begin
; 2937 If CCB_HDR_GET( 0, CCB, .PDB)
; 2938 Then
; 2939 begin
; 2940 CMQRM$( PDB[INT_queue], CCB[C_STK]);
; 2941 INT_BLD( .CCB, .PDB);
; 2942 return true;
; 2943 end
; 2944 Else
; 2945 begin
; 2946 PDB[OTHres] = true;
; 2947 return false
; 2948 end
; 2949 end;
; 2950 return false
; 2951 end;
.SBTTL SND.INTERRUPT
000000 005746 SND.INTERRUPT::
U.39: TST -(SP) ; 2873
000002 016501 000002 MOV 2(R5),R1 ; PDB(.AP.),* 2904
000006 016105 000010 MOV 10(R1),R5 ; *,NDB
000012 012702 000064 MOV #64,R2 ; 2906
000016 060102 ADD R1,R2
000020 121227 000002 CMPB (R2),#2
000024 001067 BNE 4$
000026 005046 CLR -(SP) ; 2909
000030 012746 000004 MOV #4,-(SP)
000034 060616 ADD SP,(SP) ; CCB,*
000036 010146 MOV R1,-(SP)
000040 004767 165630 JSR PC,U.13
000044 062706 000006 ADD #6,SP
000050 006000 ROR R0
000052 103112 BCC 8$
000054 012703 000122 MOV #122,R3 ; 2912
000060 060103 ADD R1,R3
000062 004767 000000G JSR PC,$CMQRM
000066 103403 BCS 1$
000070 011600 MOV (SP),R0 ; CCB,*
000072 010460 000004 MOV R4,4(R0) ; $MCB$R4,*
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 103
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (35)
000076 016700 000002G 1$: MOV .CRDAT+2,R0 ; 2913
000102 016067 000030 000000G MOV 30(R0),KISAR6
000110 005265 000036 INC 36(R5) ; *(NDB) 2914
000114 016700 000002G MOV .CRDAT+2,R0 ; 2915
000120 016067 000014 000000G MOV 14(R0),KISAR6
000126 126227 000001 000002 CMPB 1(R2),#2 ; 2917
000134 001005 BNE 2$
000136 011646 MOV (SP),-(SP) ; CCB,* 2920
000140 010146 MOV R1,-(SP)
000142 004767 170052 JSR PC,U.22
000146 000450 BR 6$
000150 126227 000001 000004 2$: CMPB 1(R2),#4 ; 2917
000156 001005 BNE 3$
000160 011646 MOV (SP),-(SP) ; CCB,* 2922
000162 010146 MOV R1,-(SP)
000164 004767 166570 JSR PC,U.18
000170 000437 BR 6$
000172 126227 000001 000001 3$: CMPB 1(R2),#1 ; 2917
000200 001034 BNE 7$
000202 000426 BR 5$ ; 2924
000204 105712 4$: TSTB (R2) ; 2934
000206 001037 BNE 9$
000210 005046 CLR -(SP) ; 2937
000212 012746 000004 MOV #4,-(SP)
000216 060616 ADD SP,(SP) ; CCB,*
000220 010146 MOV R1,-(SP)
000222 004767 165446 JSR PC,U.13
000226 062706 000006 ADD #6,SP
000232 006000 ROR R0
000234 103021 BCC 8$
000236 012703 000076 MOV #76,R3 ; 2940
000242 060103 ADD R1,R3
000244 004767 000000G JSR PC,$CMQRM
000250 103403 BCS 5$
000252 011600 MOV (SP),R0 ; CCB,*
000254 010460 000004 MOV R4,4(R0) ; $MCB$R4,*
000260 011646 5$: MOV (SP),-(SP) ; CCB,* 2941
000262 010146 MOV R1,-(SP)
000264 004767 170452 JSR PC,U.26
000270 022626 6$: CMP (SP)+,(SP)+ ; 2939
000272 012700 000001 7$: MOV #1,R0 ; 2936
000276 000404 BR 10$
000300 012761 000001 000070 8$: MOV #1,70(R1) ; 2946
000306 005000 9$: CLR R0 ; 2873
000310 005726 10$: TST (SP)+
000312 000207 RTS PC
; Routine Size: 102 words, Routine Base: $CODE$ + 12604
; Maximum stack depth per invocation: 5 words
; 2952
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 104
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (35)
; 2953
; 2954
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 105
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (36)
; 2955 routine SND_INTR_REQ ( PDB) : = !
; 2956
; 2957 !++
; 2958 ! FUNCTIONAL DESCRIPTION:
; 2959 ! This routine dequeues an INTERRUPT-REQUEST CCB and passes control
; 2960 ! to the Interrupt Request Format routine.
; 2961 !
; 2962 ! FORMAL PARAMETERS:
; 2963 ! PDB = Port Data Base Address
; 2964 !
; 2965 ! IMPLICIT INPUTS:
; 2966 ! DB = NSP Data Base Address
; 2967 !
; 2968 ! IMPLICIT OUTPUTS:
; 2969 ! None
; 2970 !
; 2971 ! ROUTINE VALUE:
; 2972 ! COMPLETION CODES:
; 2973 ! None
; 2974 !
; 2975 ! SIDE EFFECTS:
; 2976 ! None
; 2977 !--
; 2978
; 2979 begin
; 2980 map PDB: ref block field(PORT_fields);
; 2981
; 2982 local
; 2983 CCB: ref block field(C_fields);
; 2984
; 2985
; 2986 If CCB_HDR_GET( 0, CCB, .PDB)
; 2987 Then
; 2988 begin
; 2989 CMQRM$( PDB[INTR_queue], CCB[C_STK]);
; 2990 PDB[COUNTloc_int] = .PDB[COUNTloc_int] + 1;
; 2991 IRQ_BLD( .CCB, .PDB);
; 2992 return true;
; 2993 end
; 2994 Else
; 2995 PDB[OTHres] = true;
; 2996 return false
; 2997 end;
.SBTTL SND.INTR.REQ
000000 004167 000000G ; SND.INTR.REQ
U.40: JSR R1,$SAVE4 ; 2955
000004 005746 TST -(SP)
000006 005046 CLR -(SP) ; 2986
000010 012746 000004 MOV #4,-(SP)
000014 060616 ADD SP,(SP) ; CCB,*
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 106
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (36)
000016 016601 000022 MOV 22(SP),R1 ; PDB,*
000022 010146 MOV R1,-(SP)
000024 004767 165330 JSR PC,U.13
000030 062706 000006 ADD #6,SP
000034 006000 ROR R0
000036 103023 BCC 2$
000040 010103 MOV R1,R3 ; 2989
000042 062703 000106 ADD #106,R3
000046 004767 000000G JSR PC,$CMQRM
000052 103403 BCS 1$
000054 011600 MOV (SP),R0 ; CCB,*
000056 010460 000004 MOV R4,4(R0) ; $MCB$R4,*
000062 005261 000056 1$: INC 56(R1) ; 2990
000066 011646 MOV (SP),-(SP) ; CCB,* 2991
000070 010146 MOV R1,-(SP)
000072 004767 167606 JSR PC,U.22
000076 022626 CMP (SP)+,(SP)+ ; 2986
000100 012700 000001 MOV #1,R0 ; 2988
000104 000404 BR 3$
000106 012761 000001 000070 2$: MOV #1,70(R1) ; 2995
000114 005000 CLR R0 ; 2979
000116 005726 3$: TST (SP)+ ; 2955
000120 000207 RTS PC
; Routine Size: 41 words, Routine Base: $CODE$ + 13120
; Maximum stack depth per invocation: 10 words
; 2998
; 2999
; 3000
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 107
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (37)
; 3001 global routine SND_ONE_DATA ( PDB) : CALL$ novalue = !
; 3002
; 3003 !++
; 3004 ! FUNCTIONAL DESCRIPTION:
; 3005 ! This routine sends one data segment.
; 3006 !
; 3007 ! FORMAL PARAMETERS:
; 3008 ! PDB = Port Data Base Address
; 3009 !
; 3010 ! IMPLICIT INPUTS:
; 3011 ! DB = NSP Data Base Address
; 3012 !
; 3013 ! IMPLICIT OUTPUTS:
; 3014 ! None
; 3015 !
; 3016 ! ROUTINE VALUE:
; 3017 ! COMPLETION CODES:
; 3018 ! None
; 3019 !
; 3020 ! SIDE EFFECTS:
; 3021 ! None
; 3022 !--
; 3023
; 3024 begin
; 3025 If DATA_TO_SND( .PDB)
; 3026 Then
; 3027 SND_DATA( .PDB);
; 3028
; 3029 end;
.SBTTL SND.ONE.DATA
000000 016546 000002 SND.ONE.DATA::
U.41: MOV 2(R5),-(SP) ; PDB(.AP.),* 3025
000004 004767 165570 JSR PC,U.17
000010 005726 TST (SP)+
000012 006000 ROR R0
000014 103005 BCC 1$
000016 016546 000002 MOV 2(R5),-(SP) ; PDB(.AP.),* 3027
000022 004767 176336 JSR PC,U.37
000026 005726 TST (SP)+
000030 000207 1$: RTS PC ; 3001
; Routine Size: 13 words, Routine Base: $CODE$ + 13242
; Maximum stack depth per invocation: 2 words
; 3030
; 3031
; 3032
; 3033
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 108
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (38)
; 3034 routine SND_REQ_DATA ( PDB) : = !
; 3035
; 3036 !++
; 3037 ! FUNCTIONAL DESCRIPTION:
; 3038 ! This routine dequeues a DATA-REQUEST CCB and passes control to the
; 3039 ! Data Request Format routine.
; 3040 !
; 3041 ! FORMAL PARAMETERS:
; 3042 ! PDB = Port Data Base Address
; 3043 !
; 3044 ! IMPLICIT INPUTS:
; 3045 ! DB = NSP Data Base Address
; 3046 !
; 3047 ! IMPLICIT OUTPUTS:
; 3048 ! None
; 3049 !
; 3050 ! ROUTINE VALUE:
; 3051 ! COMPLETION CODES:
; 3052 ! None
; 3053 !
; 3054 ! SIDE EFFECTS:
; 3055 ! None
; 3056 !--
; 3057
; 3058 begin
; 3059 map PDB: ref block field(PORT_fields);
; 3060
; 3061 local
; 3062 CCB: ref block field(C_fields);
; 3063
; 3064 If CCB_HDR_GET( 0, CCB, .PDB)
; 3065 Then
; 3066 begin
; 3067 CMQRM$( PDB[DATR_queue], CCB[C_STK]);
; 3068 DRQ_BLD( .CCB, .PDB);
; 3069 return true;
; 3070 end
; 3071 Else
; 3072 PDB[OTHres] = true;
; 3073 return false
; 3074 end;
.SBTTL SND.REQ.DATA
000000 004167 000000G ; SND.REQ.DATA
U.42: JSR R1,$SAVE4 ; 3034
000004 005746 TST -(SP)
000006 005046 CLR -(SP) ; 3064
000010 012746 000004 MOV #4,-(SP)
000014 060616 ADD SP,(SP) ; CCB,*
000016 016601 000022 MOV 22(SP),R1 ; PDB,*
000022 010146 MOV R1,-(SP)
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 109
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (38)
000024 004767 165154 JSR PC,U.13
000030 062706 000006 ADD #6,SP
000034 006000 ROR R0
000036 103021 BCC 2$
000040 010103 MOV R1,R3 ; 3067
000042 062703 000112 ADD #112,R3
000046 004767 000000G JSR PC,$CMQRM
000052 103403 BCS 1$
000054 011600 MOV (SP),R0 ; CCB,*
000056 010460 000004 MOV R4,4(R0) ; $MCB$R4,*
000062 011646 1$: MOV (SP),-(SP) ; CCB,* 3068
000064 010146 MOV R1,-(SP)
000066 004767 166176 JSR PC,U.18
000072 022626 CMP (SP)+,(SP)+ ; 3064
000074 012700 000001 MOV #1,R0 ; 3066
000100 000404 BR 3$
000102 012761 000001 000070 2$: MOV #1,70(R1) ; 3072
000110 005000 CLR R0 ; 3058
000112 005726 3$: TST (SP)+ ; 3034
000114 000207 RTS PC
; Routine Size: 39 words, Routine Base: $CODE$ + 13274
; Maximum stack depth per invocation: 10 words
; 3075
; 3076
; 3077
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 110
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (39)
; 3078 routine UPDATE_DELAY ( PDB) : novalue = !
; 3079
; 3080 !++
; 3081 ! FUNCTIONAL DESCRIPTION:
; 3082 ! This routine calculates the round trip delay for NSp messages.
; 3083 !
; 3084 ! FORMAL PARAMETERS:
; 3085 ! PDB = Port Data Base Address
; 3086 !
; 3087 ! IMPLICIT INPUTS:
; 3088 ! DB = NSP Data Base Address
; 3089 !
; 3090 ! IMPLICIT OUTPUTS:
; 3091 ! None
; 3092 !
; 3093 ! ROUTINE VALUE:
; 3094 ! COMPLETION CODES:
; 3095 ! None
; 3096 !
; 3097 ! SIDE EFFECTS:
; 3098 ! None
; 3099 !--
; 3100
; 3101 begin
; 3102 map PDB: ref block field(PORT_fields);
; 3103
; 3104 local
; 3105 NDB : ref block field(NODE_fields),
; 3106 DELAYtime;
; 3107
; 3108 NDB = .PDB[NODElnk];
; 3109 If .PDB[DELAYstr_tim] neq 0
; 3110 Then
; 3111 begin
; 3112 DELAYtime = .PDB[DELAYstr_tim];
; 3113
; 3114 If .DELAYtime gtr 1
; 3115 Then
; 3116 DELAYtime = .DELAYtime - 1;
; 3117 MAP$( .DB[BIASnodes]);
; 3118
; 3119 If .NDB[NDdelay] eql 0
; 3120 Then
; 3121 NDB[NDdelay] = .DELAYtime
; 3122 Else
; 3123 begin
; 3124 DELAYtime = .DELAYtime - .NDB[NDdelay];
; 3125 NDB[NDdelay] = .NDB[NDdelay] + (.DELAYtime / (.DB[NSPweight] + 1))
; 3126 end;
; 3127 MAP$( .DB[BIASports]);
; 3128 PDB[DELAYstr_tim] = 0;
; 3129 end
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 111
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (39)
; 3130 end;
.SBTTL UPDATE.DELAY
000000 004167 000000G ; UPDATE.DELAY
U.44: JSR R1,$SAVE5 ; 3078
000004 016600 000016 MOV 16(SP),R0 ; PDB,* 3108
000010 016002 000010 MOV 10(R0),R2 ; *,NDB
000014 012705 000062 MOV #62,R5 ; 3109
000020 060005 ADD R0,R5
000022 005715 TST (R5)
000024 001437 BEQ 4$
000026 011501 MOV (R5),R1 ; *,DELAYTIME 3112
000030 020127 000001 CMP R1,#1 ; DELAYTIME,* 3114
000034 003401 BLE 1$
000036 005301 DEC R1 ; DELAYTIME 3116
000040 016703 000002G 1$: MOV .CRDAT+2,R3 ; 3117
000044 016367 000030 000000G MOV 30(R3),KISAR6
000052 012704 000040 MOV #40,R4 ; 3119
000056 060204 ADD R2,R4 ; NDB,*
000060 005714 TST (R4)
000062 001002 BNE 2$
000064 010114 MOV R1,(R4) ; DELAYTIME,* 3121
000066 000412 BR 3$ ; 3119
000070 161401 2$: SUB (R4),R1 ; *,DELAYTIME 3124
000072 005002 CLR R2 ; 3125
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 ; 3127
000122 005015 CLR (R5) ; 3128
000124 000207 4$: RTS PC ; 3078
; Routine Size: 43 words, Routine Base: $CODE$ + 13412
; Maximum stack depth per invocation: 7 words
; 3131
; 3132
; 3133
; 3134
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 112
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (40)
; 3135 global routine TRICKLE ( PDB) : CALL$ = !
; 3136
; 3137 !++
; 3138 ! FUNCTIONAL DESCRIPTION:
; 3139 ! This routine prioritises the message transmission process.
; 3140 !
; 3141 ! FORMAL PARAMETERS:
; 3142 ! PDB = Port Data Base Address
; 3143 !
; 3144 ! IMPLICIT INPUTS:
; 3145 ! DB = NSP Data Base Address
; 3146 !
; 3147 ! IMPLICIT OUTPUTS:
; 3148 ! None
; 3149 !
; 3150 ! ROUTINE VALUE:
; 3151 ! COMPLETION CODES:
; 3152 ! None
; 3153 !
; 3154 ! SIDE EFFECTS:
; 3155 ! None
; 3156 !--
; 3157
; 3158 begin
; 3159 map PDB: ref block field(PORT_fields);
; 3160
; 3161
; 3162 If INTERRUPT_TO_SND( .PDB)
; 3163 Then
; 3164 begin
; 3165 If CALL$L(SND_INTERRUPT, .PDB)
; 3166 Then
; 3167 return true
; 3168 Else
; 3169 return false
; 3170 end;
; 3171 If INTR_REQ_TO_SND( .PDB)
; 3172 Then
; 3173 begin
; 3174 If SND_INTR_REQ( .PDB)
; 3175 Then
; 3176 return true
; 3177 Else
; 3178 return false
; 3179 end;
; 3180 If D_REQ_TO_SND( .PDB)
; 3181 Then
; 3182 begin
; 3183 If SND_REQ_DATA( .PDB)
; 3184 Then
; 3185 return true
; 3186 Else
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 113
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (40)
; 3187 return false
; 3188 end;
; 3189 If .PDB[FLAGoth_ack]
; 3190 Then
; 3191 begin
; 3192 If ACK_OTH_SND( .PDB)
; 3193 Then
; 3194 return true
; 3195 Else
; 3196 return false
; 3197 end;
; 3198 If DATA_TO_SND( .PDB)
; 3199 Then
; 3200 begin
; 3201 If SND_DATA( .PDB)
; 3202 Then
; 3203 return true
; 3204 Else
; 3205 return false
; 3206 end;
; 3207 If .PDB[FLAGdat_ack] and
; 3208 ((.PDB[PORTstate] eql N$SRUN) or
; 3209 ((.PDB[PORTstate] eql N$SDI) and
; 3210 (CMP_NEQ(.PDB[NUMhigh], .PDB[ACKrcv_dat]))))
; 3211 Then
; 3212 begin
; 3213 If ACK_DATA_SND( .PDB)
; 3214 Then
; 3215 return true
; 3216 Else
; 3217 return false
; 3218 end;
; 3219 false
; 3220 end;
.SBTTL TRICKLE
000000 016501 000002 TRICKLE::
U.43: MOV 2(R5),R1 ; PDB(.AP.),* 3162
000004 010146 MOV R1,-(SP)
000006 004767 170742 JSR PC,U.24
000012 005726 TST (SP)+
000014 006000 ROR R0
000016 103014 BCC 1$
000020 010146 MOV R1,-(SP) ; 3165
000022 012746 000001 MOV #1,-(SP)
000026 012746 012604' MOV #SND.INTERRUPT,-(SP)
000032 004767 000000G JSR PC,$CALL
000036 062706 000006 ADD #6,SP
000042 006000 ROR R0
000044 103115 BCC 8$
000046 000511 BR 7$ ; 3164
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 114
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (40)
000050 010146 1$: MOV R1,-(SP) ; 3171
000052 004767 170754 JSR PC,U.25
000056 005726 TST (SP)+
000060 006000 ROR R0
000062 103007 BCC 2$
000064 010146 MOV R1,-(SP) ; 3174
000066 004767 177266 JSR PC,U.40
000072 005726 TST (SP)+
000074 006000 ROR R0
000076 103100 BCC 8$
000100 000474 BR 7$ ; 3173
000102 010146 2$: MOV R1,-(SP) ; 3180
000104 004767 166676 JSR PC,U.21
000110 005726 TST (SP)+
000112 006000 ROR R0
000114 103007 BCC 3$
000116 010146 MOV R1,-(SP) ; 3183
000120 004767 177410 JSR PC,U.42
000124 005726 TST (SP)+
000126 006000 ROR R0
000130 103063 BCC 8$
000132 000457 BR 7$ ; 3182
000134 032761 040000 000040 3$: BIT #40000,40(R1) ; 3189
000142 001407 BEQ 4$
000144 010146 MOV R1,-(SP) ; 3192
000146 004767 164330 JSR PC,U.11
000152 005726 TST (SP)+
000154 006000 ROR R0
000156 103050 BCC 8$
000160 000444 BR 7$ ; 3191
000162 010146 4$: MOV R1,-(SP) ; 3198
000164 004767 165112 JSR PC,U.17
000170 005726 TST (SP)+
000172 006000 ROR R0
000174 103007 BCC 5$
000176 010146 MOV R1,-(SP) ; 3201
000200 004767 175662 JSR PC,U.37
000204 005726 TST (SP)+
000206 006000 ROR R0
000210 103033 BCC 8$
000212 000427 BR 7$ ; 3200
000214 032761 020000 000040 5$: BIT #20000,40(R1) ; 3207
000222 001426 BEQ 8$
000224 121127 000013 CMPB (R1),#13 ; 3208
000230 001412 BEQ 6$
000232 121127 000014 CMPB (R1),#14 ; 3209
000236 001020 BNE 8$
000240 016100 000034 MOV 34(R1),R0 ; 3210
000244 166100 000026 SUB 26(R1),R0
000250 032700 007777 BIT #7777,R0
000254 001411 BEQ 8$
000256 010146 6$: MOV R1,-(SP) ; 3213
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 115
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (40)
000260 004767 164074 JSR PC,U.8
000264 005726 TST (SP)+
000266 006000 ROR R0
000270 103003 BCC 8$
000272 012700 000001 7$: MOV #1,R0 ; 3212
000276 000207 RTS PC
000300 005000 8$: CLR R0 ; 3135
000302 000207 RTS PC
; Routine Size: 98 words, Routine Base: $CODE$ + 13540
; Maximum stack depth per invocation: 4 words
; 3221
; 3222
; 3223
; 3224
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 116
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (41)
; 3225 routine XPT_XMIT ( CCB, XXDB) : novalue = !
; 3226
; 3227 !++
; 3228 ! FUNCTIONAL DESCRIPTION:
; 3229 ! This routine queues CCB's to Transport for transmission.
; 3230 !
; 3231 ! FORMAL PARAMETERS:
; 3232 ! XXDB = Reserved/Port Data Base Address
; 3233 ! CCB = CCB Address
; 3234 !
; 3235 ! IMPLICIT INPUTS:
; 3236 ! DB = NSP Data Base Address
; 3237 !
; 3238 ! IMPLICIT OUTPUTS:
; 3239 ! None
; 3240 !
; 3241 ! ROUTINE VALUE:
; 3242 ! COMPLETION CODES:
; 3243 ! None
; 3244 !
; 3245 ! SIDE EFFECTS:
; 3246 ! None
; 3247 !--
; 3248
; 3249 begin
; 3250 map CCB: ref block field(C_fields);
; 3251 map XXDB: ref block field(PORT_fields);
; 3252
; 3253
; 3254 local
; 3255 NDB: ref block field(NODE_fields),
; 3256 temp;
; 3257
; 3258 NDB = .XXDB[NODElnk];
; 3259
; 3260 If .XXDB[PORTstate] lss 0
; 3261 Then
; 3262 CCB[C_PRM4] = -1
; 3263 Else
; 3264 CCB[C_PRM4] = .XXDB;
; 3265 CCB[C_FNC] = FC_XME;
; 3266 CCB[C_MOD] = FM_DAT;
; 3267 CCB[C_LIX] = .XXDB[CHANNEL];
; 3268 CCB[C_PIX] = .DB[NSPxpt_pix];
; 3269 CCB[C_STS] = 0;
; 3270 CCB[C_PRM1] = .DB[NSPself];
; 3271 CCB[C_PRM2] = .XXDB[NODErem];
; 3272
; 3273 If .NDB neq 0
; 3274 Then
; 3275 begin
; 3276 SMAP$( temp);
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 117
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (41)
; 3277 MAP$( .DB[BIASnodes]);
; 3278 DADD( NDB[NDm_xmt], 1);
; 3279 MAP$( .temp);
; 3280 end;
; 3281 LLCRS$( .CCB)
; 3282 end;
.SBTTL XPT.XMIT
000000 004167 000000G ; XPT.XMIT
U.45: JSR R1,$SAVE4 ; 3225
000004 016601 000014 MOV 14(SP),R1 ; XXDB,* 3258
000010 016102 000010 MOV 10(R1),R2 ; *,NDB
000014 016604 000016 MOV 16(SP),R4 ; CCB,* 3262
000020 105711 TSTB (R1) ; 3260
000022 002004 BGE 1$
000024 012764 177777 000032 MOV #-1,32(R4) ; 3262
000032 000402 BR 2$ ; 3260
000034 010164 000032 1$: MOV R1,32(R4) ; 3264
000040 112764 000002 000012 2$: MOVB #2,12(R4) ; 3265
000046 105064 000013 CLRB 13(R4) ; 3266
000052 116164 000001 000010 MOVB 1(R1),10(R4) ; 3267
000060 016700 000002G MOV .CRDAT+2,R0 ; 3268
000064 116064 000050 000011 MOVB 50(R0),11(R4)
000072 005064 000014 CLR 14(R4) ; 3269
000076 016064 000002 000024 MOV 2(R0),24(R4) ; 3270
000104 016164 000002 000026 MOV 2(R1),26(R4) ; 3271
000112 005702 TST R2 ; NDB 3273
000114 001417 BEQ 3$
000116 016701 000000G MOV KISAR6,R1 ; *,TEMP 3276
000122 016067 000030 000000G MOV 30(R0),KISAR6 ; 3277
000130 010246 MOV R2,-(SP) ; NDB,* 3278
000132 062716 000024 ADD #24,(SP)
000136 012746 000001 MOV #1,-(SP)
000142 004767 164556 JSR PC,U.15
000146 010167 000000G MOV R1,KISAR6 ; TEMP,* 3279
000152 022626 CMP (SP)+,(SP)+ ; 3275
000154 004767 000000G 3$: JSR PC,$SCHED ; 3281
000160 000207 RTS PC ; 3225
; Routine Size: 57 words, Routine Base: $CODE$ + 14044
; Maximum stack depth per invocation: 8 words
; 3283
; 3284
; 3285 end
; 3286 eludom
; OTS external references
NS1 25-Jan-1983 10:56:56 TOPS-20 Bliss-16 2A(530) Page 118
X01080 30-Dec-1982 20:13:26 NETPKG:<NSP>NS1.BLI.8 (41)
.GLOBL $SAVE5, $SAVE4, $CALL, $STOP
; PSECT SUMMARY
;
; Psect Name Words Attributes
; ...... 16 RW , D , LCL, REL, CON
; $CODE$ 3147 RO , I , LCL, REL, CON
; $PLIT$ 3 RO , D , LCL, REL, CON
; LIBRARY STATISTICS
;
; -------- Symbols -------- Blocks
; File Total Loaded Percent Read
;
; NETPKG:<MCB>XPORTX.L16.15 599 35 5 0
; NETPKG:<MCB>MCBLIB.L16.15 372 59 15 0
; NETPKG:<MCB>NMXLIB.L16.13 200 1 0 0
; 3287
; Size: 3147 code + 19 data words
; Run Time: 00:58.7
; Elapsed Time: 03:53.9
; Memory Used: 66 pages
; Compilation Complete
A 142+ 143+ 145+ 146+ 148+ 149+ 152+ 153+
ACKDAT_XMT 349+# 787 1545 1550 2619 2682
ACKHEAD 412+# 2356
ACKNUM 239+# 240+ 2040
ACKOTH_XMT 351+# 1351 1406 1424 1433 1445 1456 1601 1650 1658 1667 1718
1835 1842 1856 2297
ACKRCV_DAT 353+# 1193 1212 1219 1495 2051 2344 2346 2354 2355 2359 2384
2388 2396 2401 3210
ACKTAIL 414+#
ACK_BLD 686 748* 826
ACK_DATA_SND 687 796* 3213
ACK_OTH_RCV 688 835* 2088
ACK_OTH_SND 690 870* 3192
ACK_QUEUE 410+# 411+ 1218 2362 2363 2753 2756 2757
ACK_RCV 689 911* 2087
ADDRAN 318+# 786 1350 1600 1717 2296 2681
ADDRLOC 315+# 316+
ADDRNODES 205+#
ADDRPORTS 187+# 2140
ADDRREM 320+# 321+
ADDRRESV 199+# 2229
B 142+ 143+ 145+ 146+ 148+ 149+ 152+ 153+
BIASNODES 203+# 1843 2391 2544 2758 2824 2913 3117 3277
BIASPORTS 185+# 1295 1401 1539 1645 1779 1827 1845 1985 2046 2080 2141
2341 2393 2456 2546 2588 2760 2826 2915 3127
BIASRESV 197+# 2228
BLISS16 514+
BLISS36 169+ 171+ 173+ 175+ 177+ 179+ 181+ 189+ 191+ 194+ 207+ 221+
518+ 523+ 527+ 531+ 536+ 541+ 546+
BUFFCTL 372+# 2154
BUFFHEAD 423+# 2551
BUFFRCV_INT 371+# 1837 1854 1936 2210 2214 2215
BUFFSYNC_DSC 370+# 2402 2408 2413 2416
BUFFTAIL 425+#
BUFF_CCB 2527# 2571 2576# 2577 2585 2587 2595# 2596# 2598
BUFF_QUEUE 421+# 422+ 2479 2527 2599
BYTE_VECTOR 513+# 516+ 520+
CALL$E 1428 1449 1663 1998 2156 2188 2190 2192 2207 2242 2244 2409
CALL$L 2100 2174 2201 2867 3165
CALL$ 709 710 717 718 720 722 2006# 2105# 2840# 2873# 3001# 3135#
CA_SIZE 452+#
CCB 134+ 136+# 137+ 138+ 748 774 780 789# 791 821 823 826
835 860 863 864# 865 897 899 902 911 936 939 940#
941 946 993# 999 1026 1050 1052 1063 1097 1218# 1219 1240
1268 1270 1282# 1285# 1297# 1298# 1299# 1300# 1301# 1302# 1303# 1304#
1305 1310 1336 1339 1344 1361# 1368 1373 1398 1405 1428 1449
1460# 1461 1509 1534 1543 1547 1553# 1554 1560 1586 1589 1594
1605# 1612 1617 1642 1649 1663 1671# 1672 1677 1703 1706 1711
1721# 1723# 1729 1734 1761 1763 1780# 1781# 1782# 1783# 1784# 1785#
1786# 1787# 1788 1792 1817 1833 1844 1850 1854 1859# 1860 1944
1970 1975 1979 1981 1992 1994 1998 1999# 2000 2006 2031 2038
2039 2078 2085 2086 2087 2088 2089 2090 2091 2092 2097# 2098
2138 2160 2163 2164 2178 2182 2188 2190 2192 2205 2207 2211
2214# 2216 2237 2242 2244 2258 2284 2290 2299# 2301 2307 2333
2424 2450 2498 2523 2545 2554# 2555 2564# 2565 2571 2573 2584
2586 2602# 2603 2612 2616 2624 2650 2653 2667 2685# 2687# 2708
2746 2753 2756# 2757 2773 2782# 2835 2902 2909 2912 2920 2922
2924 2937 2940 2941 2983 2986 2989 2991 3062 3064 3067 3068
3225 3250 3262# 3264# 3265# 3266# 3267# 3268# 3269# 3270# 3271# 3281
CCBGT$ 977 1030
CCBRT$ 1047 1097
CCB_GET 691 946* 1847 2160 2211 2609 2770
CCB_HDR_GET 692 823 899 999* 2178 2205 2237 2405 2753 2773 2909 2937
2986 3064
CCB_RETRN 693 1063* 2377 2776
CC_BLD 2190
CC_SIZE 451+#
CHANNEL 313+# 3267
CHN_CCB 2653# 2662 2670 2673 2688# 2689# 2740# 2785 2788 2789 2790 2792
2796 2810 2811
CHR 1274 1278# 1280 1283 1287# 1289 1291# 1293# 1301 1302 1767 1771#
1773 1775# 1777# 1784 1785
CI_BLD 2188
CI_SIZE 450+#
CLZ_CCB 1094 1110 1111# 1112# 1113
CMP_EQL 148+# 1545 2401 2703
CMP_LEQ 145+# 1199 1212 1219 1456 1550 1667 1856 2345 2346 2347 2359
2396
CMP_LSS 142+# 2344 2388
CMP_NEQ 152+# 1193 1495 2051 3210
CMQIN$ 2413 2479 2616
CMQPT$ 134+# 2357
CMQRM$ 1110 2064 2163 2182 2472 2599 2804 2912 2940 2989 3067
CONFIDENCE 367+# 2061 2350 2463
COUNTDAT_RETRANS 373+# 2063 2351
COUNTLOC_INT 376+# 1836 1840 1936 2990
COUNTOTH_RETRANS 374+# 2464
COUNTRES 375+# 992 1057 1102 1105
CTL_RECVD 2156
C_ADDR 780 789 983 1044 1276 1286 1302 1344 1361 1594 1605 1711
1721 1769 1785 1979 1981 2039 2290 2299 2584 2585 2667 2685
2789 2810
C_BIAS 982 1042 1277 1300 1770 1783 1975 2038 2078 2586 2587 2790
2811
C_CHN 981 1036 1723 2653 2687 2756 2757 2782 2792 2796
C_CNT 789 1301 1361 1605 1721 1784 1844 2299 2545 2571 2573 2577
2595 2685 2785 2788 2812 2825
C_FIELDS 774 821 860 897 936 975 1026 1028 1034 1094 1218 1268
1270 1336 1339 1398 1534 1586 1589 1642 1703 1706 1761 1763
1817 1823 1970 2031 2035 2138 2284 2333 2337 2367 2450 2454
2523 2527 2535 2650 2653 2740 2741 2744 2746 2902 2983 3062
3250
C_FNC 864 940 1111 1297 1460 1553 1671 1780 1859 1999 2068 2097
2368 2483 2554 2564 2596 2602 3265
C_LIX 1299 1782 3267
C_LNK 2363
C_MOD 1298 1781 2475 2689 3266
C_PIX 1304 1787 3268
C_PRM1 984 1037 1282 1285 1354 1359 2800 3270
C_PRM2 985 1038 3271
C_PRM3 986 1039 2364 2670 2673 2802 2803 2818 2821
C_PRM4 987 1040 3262 3264
C_PRM5 988 1041
C_STK 980 1035 1052 1270 1339 1589 1706 1723 1763 1850 2163 2182
2214 2367 2408 2612 2687 2783 2804 2912 2940 2989 3067
C_STS 1112 1219 1303 1362 1607 1724 1786 2067 2359 2369 2478 2484
2576 2662 2688 2785 2788 2789 2795 2810 2813 3269
DADD 694 1120* 1844 2545 2825 3278
DATA_RECVD 695 1240* 2164 2613
DATA_TO_SND 696 1164* 3025 3198
DATRES 382+# 2197 2200 2764 2777 2831
DATRHEAD 407+# 1498
DATRTAIL 409+#
DATR_QUEUE 405+# 406+ 3067
DB 744# 1295 1304 1401 1403 1406 1409 1419 1420 1423 1428 1440
1441 1444 1449 1456 1539 1541 1545 1550 1645 1647 1650 1653
1654 1655 1660 1663 1667 1779 1787 1827 1829 1835 1843 1845
1856 1977 1982# 1983# 1985 1987 1990 1998 2040# 2042 2046 2055
2056 2072 2074 2075 2079# 2080 2083 2140 2141 2143 2145 2146
2148# 2150# 2156 2188 2190 2192 2207 2228 2229 2231 2242 2244
2341 2344 2345 2346 2347 2354 2355 2388 2391 2393 2394 2409
2456 2459 2460 2467 2539 2544 2546 2561 2588 2592 2758 2760
2824 2826 2913 2915 3117 3125 3127 3268 3270 3277
DBRUSE 493+#
DC_BLD 2207
DECLARE_SEVERITY 551+
DELAYMSG_NUM 377+# 2396 2696
DELAYSTR_TIM 379+# 2397 2692 2695 3109 3112 3128
DELAYTIME 3106 3112# 3114 3116# 3121 3124# 3125
DI_BLD 2192 2409
DI_SIZE 453+#
DOUBLE_WORD 1120 1147 1149# 1152# 1155# 1156#
DRQ_BLD 697 1310* 2922 3068
DRQ_RCV 698 1373* 1994
D_RCV 699 1509* 2089 2090 2091 2092
D_REQ_TO_SND 700 1466* 3180
EQLU 149+
EVB_SIZE 490+#
EVENT_LOG 1428 1449 1663 1998
FALSE 138+ 445+# 790 829 905 979 1032 1048 1109 1198 1200 1226
1231 1235 1365 1412 1501 1504 1609 1726 1894 1899 1934 1939
2173 2181 2200 2300 2660 2690 2750 2765 2778 2819 2832 2931
2947 2950 2996 3073 3169 3178 3187 3196 3205 3217 3219
FCMOD 236+# 1409
FCOPT 253+#
FCVALINT 237+# 1990
FCVAL 255+# 1419 1420 1423 1440 1441 1444 1653 1654 1655 1660 1983
FC_DATA 480+# 1356 1358
FC_DONT 478+# 1412
FC_INTERRUPT 481+# 1603 1990
FC_NCHG 479+# 1356
FC_RCE 864 940 1460 1553 1671 1859 1999 2097 2554 2564 2602
FC_RCP 1297 1780
FC_SEND 477+# 1358 1411
FC_XCP 1111 2068 2368 2483 2596
FC_XME 3265
FILL1 226+#
FILL5 252+#
FLAGDAT_ACK 361+# 790 1552 2618 2690 3207
FLAGINUSE 364+# 1109 2151
FLAGNEW_MSG 365+# 2815 2819 2823
FLAGOTH_ACK 362+# 1365 1425 1434 1446 1458 1609 1659 1669 1726 1841 1858
2300 3189
FLAGSEG 368+# 1200 1209 1226 2386 2660 2698 2705 2750
FLAGSND_DC 363+# 2204
FLG 2658 2668# 2672# 2675# 2677
FLG_BEOM 465+# 2091
FLG_BOM 463+# 1283 2090 2672
FLG_CA 469+#
FLG_CC 468+#
FLG_CI 467+#
FLG_DAT_ACK 474+# 782 2056 2074 2087
FLG_DC 471+#
FLG_DI 470+#
FLG_EOM 464+# 1280 2089 2675
FLG_INT 473+# 1713 2055 2085
FLG_NBEOM 466+# 2092
FLG_NOP 476+#
FLG_OTH_ACK 475+# 2075 2088 2292
FLG_REQ 472+# 1346 1596 2055 2086
FLOWDAT_REM 356+# 1212 1219 1225 1419 1420 1423 1428 1444 1449 2354 2374
FLOWINT_REM 357+# 1654 1655 1660 1663 1896 2490
FLOWLOC_TYP 358+# 2548
FLOWMSG 455+# 1203 1224 1437 2372 2548
FLOWNONE 449+# 1203 1205 1430
FLOWRSV 456+#
FLOWSEG 454+# 1207 1416 2352
FLOWSW_REM 359+# 1196 1409
FLOWTYP_REM 360+# 1203 1414 2352 2372
FM_DAT 3266
FULLWORD 169+ 171+ 173+ 175+ 177+ 179+ 181+ 189+ 191+ 194+ 207+ 221+
223+ 238+ 245+ 247+ 340+ 342+ 344+ 346+ 348+ 350+ 352+ 354+
369+ 378+
GET2BYTES 504+# 2040 2079
GOT_CCB 2535 2609 2612# 2613
HDB_SIZE 488+# 1044
HI 116+# 1152 1156
H_DSTADDR 231+#
H_NSPBUF 214+#
H_REM_ADDR 323+# 784 1348 1598 1715 2294 2679
H_SIZESEG 387+#
H_SRCADDR 233+#
I 513+ 516+ 520+
INFO 256+# 257+ 551+
INTERRUPT_TO_SND 703 1865* 3162
INTHEAD 392+# 1895
INTRHEAD 402+# 1935
INTRTAIL 404+#
INTR_QUEUE 400+# 401+ 2989
INTR_REQ_TO_SND 704 1905* 3171
INTTAIL 394+#
INT_BLD 705 1677* 2924 2941
INT_QUEUE 390+# 391+ 2940
INT_RCV 706 1792* 2085
INT_RECVD 707 1734* 1851 2216
INVFLW 492+# 1428 1449 1663
INVMSG 491+# 1998
IRQ_BLD 701 1560* 2920 2991
IRQ_RCV 702 1617* 1992
J 2143 2231 2233
LCCB 975 977 980# 981# 982# 983# 984# 985# 986# 987# 988# 993
999 1028 1030 1034 1047
LLCRS$ 865 941 1113 1305 1461 1554 1672 1788 1860 2000 2069 2098
2370 2485 2555 2565 2598 2603 3281
LONG_WORD 113+# 1147
LOW 115+# 1149 1155
LSFLAGS 234+# 235+ 1982 1987
LS_RCV 708 1944* 2086
LS_RSV 482+# 1987
L_DSTADDR 230+#
L_NSPBUF 213+#
L_REM_ADDR 322+# 783 1347 1597 1714 2293 2678
L_SIZESEG 386+#
L_SRCADDR 232+#
MAP$ 1277 1295 1401 1539 1645 1770 1779 1827 1843 1845 1975 1985
2038 2046 2078 2080 2141 2228 2341 2391 2393 2456 2544 2546
2586 2588 2758 2760 2824 2826 2913 2915 3117 3127 3277 3279
MORE_FIELDS 333+# 437+
MSGFLG 224+# 225+ 2055 2056 2074 2075 2083 2561 2592
MSGHEAD 397+# 2805
MSGTAIL 399+#
MSGTYP 311+# 2234 2240 2245
MSG_CCB 2741# 2785 2788 2789 2795# 2800 2810 2813#
MSG_CHAIN 389+# 2740 2796 2805
MSG_NONE 487+# 2234 2245
MSG_QUEUE 395+# 396+ 1110 2064 2182 2413 2741 2783 2804
MSG_RCV 709 2006*
MTBF$S 2587
N 513+ 516+ 520+
N$EABL 644+#
N$EABO 636+#
N$EABR 637+#
N$ECLS 642+#
N$ECON 633+#
N$ELST 640+# 2576
N$EMTL 641+#
N$ENUR 643+#
N$EOPN 635+#
N$ERES 632+#
N$ERMO 639+#
N$ERUN 645+#
N$ESTE 634+#
N$ETMI 638+#
N$ETRN 646+#
N$FBOM 655+# 1285 2670 2818
N$FCMP 656+# 2364 2803
N$FEOM 654+# 1282 2673 2800 2802 2821
N$FMES 653+#
N$FSEG 652+#
N$HI 628+#
N$LO 647+#
N$SACC 630+#
N$SCC 666+# 2048 2054 2189
N$SCD 670+#
N$SCI 667+# 2187
N$SCL 676+# 1104
N$SCN 677+#
N$SCR 663+#
N$SDIC 674+#
N$SDI 673+# 1192 1494 2050 2191 2400 3209
N$SDN 675+#
N$SDRC 665+#
N$SDR 664+# 2191
N$SNC 669+#
N$SNR 668+#
N$SO 662+#
N$SREJ 629+#
N$SRJ 671+#
N$SRUN 672+# 1191 1493 1892 1932 2049 2059 2170 3208
N$SSUC 631+# 1112 1303 1786 2067 2369 2478 2484
NAME 736#
NDACTIVE 281+#
NDADDR 280+#
NDB 1093 1108# 1822 1825# 1844 2338 2342# 2392 2534 2537# 2545 2745
2748# 2759# 2825 2901 2904# 2914# 3105 3108# 3119 3121# 3124 3125#
3255 3258# 3273 3278
NDB_RCV 283+# 1844 2545
NDB_XMT 284+# 2825
NDC_RCV 287+#
NDC_REJ 289+#
NDC_XMT 288+#
NDDELAY 291+# 2392 3119 3121 3124 3125
NDM_RCV 285+#
NDM_XMT 286+# 3278
NDTIMEOUT 290+# 2759 2914
NDTIME_ZEROED 282+#
ND_SIZE 295+#
NL_BLD 2242
NODELNK 325+# 1108 1825 2342 2537 2748 2904 3108 3258
NODEREM 314+# 3271
NODE_FIELDS 278+# 1093 1822 2338 2534 2745 2901 3105 3255
NR_BLD 2244
NS1 1# 541+# 736
NS2 546+#
NSP 527+# 551+
NSP$_CFN 563+
NSP$_DSP 556+
NSP$_ERR 553+
NSP$_ICE 557+ 2184
NSP$_MSG 560+
NSP$_NTE 554+
NSP$_RNG 555+
NSP$_RTE 561+
NSP$_RUS 562+
NSPACT_TIM 172+# 2072
NSPBOM 109+# 2561
NSPBUF 211+# 212+
NSPDELAY 174+# 2394
NSPEOM 110+# 2592
NSPEVENT_BUF 208+#
NSPMAX 180+#
NSPNODES 201+# 202+
NSPNS0_PIX 217+#
NSPNS1_PIX 218+#
NSPNS2_PIX 219+# 1428 1449 1663 1998 2156 2188 2190 2192 2207 2242 2244
2409
NSPNXT_PORT 210+# 2145 2146 2148 2150
NSPPORTS 183+# 184+
NSPRESERVED 195+# 196+
NSPRETRANS 178+#
NSPRUNNING 259+#
NSPSC_PIX 216+# 1304 1787
NSPSELF 170+# 3270
NSPTIMER 168+#
NSPTOTAL 190+# 2143 2146
NSPT_NODES 209+#
NSPT_RSV 192+# 2231
NSPVERSION 222+#
NSPWEIGHT 176+# 3125
NSPXPT_PIX 220+# 3268
NSP_CLASS_EVENT 489+#
NSP_FIELDS 166+# 744
NSP_SIZE 263+#
NUMBER 241+# 2344 2345 2346 2347 2354 2355 2459 2460
NUMDAT 341+# 1199 1212 2664 2700 2703
NUMHIGH 347+# 1193 1199 1495 2051 2401 3210
NUMOTH 345+# 1352 1362 1602 1607 1719 1724 2459 2460 2471
NUMSENT 343+# 2345 2347 2384 2388
N_GSTA 600+#
N_GSTS 597+#
N_LNK 486+# 2240
N_PCLS 599+#
N_POPN 598+#
N_RCON 615+#
N_RDAT 617+# 1298
N_RDSC 616+#
N_RES 485+#
N_RHI 622+#
N_RINT 618+# 622+ 1781
N_SCNF 613+#
N_SCNS 614+#
N_XABT 605+#
N_XACC 602+#
N_XBUF 610+# 2475
N_XCON 601+#
N_XDAT 606+# 2689
N_XDRQ 609+#
N_XDSC 604+#
N_XHI 621+#
N_XINI 611+# 621+
N_XINT 607+#
N_XIRQ 608+#
N_XREJ 603+#
ONCE_A_SECOND 710 2105*
OTHACK_BLD 711 902 2258*
OTHACK_QUEUE 415+# 416+ 2472 2912
OTHDREQUEST 462+# 1364 2921
OTHHEAD 417+#
OTHINTERRUPT 460+# 1725 2488 2923
OTHIREQUEST 461+# 1608 2919
OTHREADY 457+# 1498 1895 1935 2458 2470 2934
OTHRES 383+# 2167 2173 2181 2414 2930 2946 2995 3072
OTHSENT 458+# 1366 1610 1727
OTHSTATE 380+# 1366 1498 1610 1727 1895 1896 1935 2458 2470 2906 2934
OTHTAIL 419+#
OTHTIMEOUT 459+# 1896 2906
OTHTYP 381+# 1364 1608 1725 2488 2917
PDB 748 775 783 784 785 786 787 790# 791 796 823 826
835 861 863 870 899 902 911 937 939 946 972 990
992# 999 1027 1055 1057# 1063 1089 1099 1102# 1104 1105 1108
1109# 1110 1164 1189 1191 1192 1193 1196 1199 1200 1203 1209
1212 1218 1219 1225 1226 1240 1267 1299 1310 1337 1347 1348
1349 1350 1351 1352 1362 1364# 1365# 1366# 1368 1373 1399 1405
1406 1409# 1414 1419 1420 1423# 1424# 1425# 1428 1433# 1434# 1444#
1445# 1446# 1449 1456 1458# 1466 1491 1493 1494 1495 1498 1509
1535 1543 1545 1547 1550 1552# 1560 1587 1597 1598 1599 1600
1601 1602 1607 1608# 1609# 1610# 1612 1617 1643 1649 1650 1654
1655 1658# 1659# 1660# 1663 1667 1669# 1677 1704 1714 1715 1716
1717 1718 1719 1724 1725# 1726# 1727# 1729 1734 1760 1782 1792
1818 1825 1833 1835 1836 1837 1840# 1841# 1842# 1847 1851 1854#
1856 1858# 1865 1890 1892 1895 1896 1905 1930 1932 1935 1936
1944 1971 1992 1994 1998 2006 2032 2048 2049 2050 2051 2054
2059# 2060 2061# 2062# 2063# 2064 2072# 2085 2086 2087 2088 2089
2090 2091 2092 2100 2145# 2151 2154 2156 2157 2160 2163 2164
2167 2170 2173# 2174 2178 2181# 2182 2185 2188 2190 2192 2197
2200# 2201 2204 2205 2207 2210 2211 2214 2215# 2216 2258 2285
2293 2294 2295 2296 2297 2300# 2301 2307 2334 2342 2344 2345
2346 2347 2350# 2351# 2352 2354# 2355# 2356 2359 2362 2363# 2372
2374# 2377 2383# 2384 2386# 2388 2394# 2396 2397 2399 2400 2401
2402 2405 2408 2409 2413 2414# 2416# 2424 2451 2458 2459 2460
2463# 2464# 2465# 2470# 2471# 2472 2479 2488 2490# 2498 2524 2527
2537 2548 2551 2560 2571 2577 2585 2590# 2595 2597# 2599 2608
2609 2613 2616 2618# 2619# 2624 2651 2660 2664 2678 2679 2680
2681 2682 2690# 2692 2695# 2696# 2698 2700# 2703 2705# 2708 2713
2738 2740 2741 2748 2750 2753 2756 2757# 2764# 2770 2773 2776
2777# 2783 2785 2796# 2804 2805# 2812 2813 2815 2819# 2823# 2831#
2835 2840 2867 2873 2898 2904 2906 2909 2912 2917 2920 2922
2924 2930# 2934 2937 2940 2941 2946# 2955 2980 2986 2989 2990#
2991 2995# 3001 3025 3027 3034 3059 3064 3067 3068 3072# 3078
3102 3108 3109 3112 3128# 3135 3159 3162 3165 3171 3174 3180
3183 3189 3192 3198 3201 3207 3208 3209 3210 3213
PDB_SIZE 434+# 2137
PID 317+# 785 1299 1349 1599 1716 1782 2295 2680
PORT 2137 2140# 2145 2227 2229# 2233
PORTSTATE 309+# 310+ 1104 1191 1192 1493 1494 1892 1932 2048 2049 2050
2054 2059 2170 2185 2400 3208 3209 3260
PORT_FIELDS 437+# 775 861 937 972 1027 1089 1189 1267 1337 1399 1491
1535 1587 1643 1704 1760 1818 1890 1930 1971 2032 2137 2145
2227 2233 2285 2334 2451 2524 2651 2738 2898 2980 3059 3102
3159 3251
PROC_DATA_ACK 712 939 1543 2307*
PROC_OTH_ACK 713 863 1405 1649 1833 2424*
PTR 496+ 500+ 501+ 504+ 507+ 508+ 778 780# 782 783 784 785
786 787 789 1273 1276# 1278 1286# 1287 1342 1344# 1346 1347
1348 1349 1350 1351 1352 1356 1358 1359 1361 1537 1592 1594#
1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1709 1711#
1713 1714 1715 1716 1717 1718 1719 1721 1766 1769# 1771 1973
1979# 1981# 1982 1983 2036 2039# 2040 2044# 2079 2288 2290# 2292
2293 2294 2295 2296 2297 2299 2657 2667# 2677 2678 2679 2680
2681 2682 2683 2685
PUT2BYTES 496+# 787 1351 1352 1601 1602 1718 1719 2297 2682 2683
QUAL 242+# 2345 2347 2388 2459 2460 2467
QUEUE 134+ 136+ 137+#
Q_ACK 483+# 787 1351 1601 1718 2297 2345 2388 2460 2467 2682
Q_FLG 243+# 1403 1541 1647 1829 1977 2042 2539
Q_NAK 484+# 2347 2459
RCVHEAD 428+#
RCVMSG_QUEUE 426+# 427+ 2157 2163 2608 2616
RCVTAIL 430+#
RDB 2233# 2234 2240 2242 2244 2245#
RDB_SIZE 330+# 2227
REASON 248+#
REAS_DATA 714 1547 2498*
REAS_PTR 420+# 2560 2571 2577 2585 2590 2595 2597
ROT 1146 1149 1152
SC 523+#
SC_CCB 2035 2064 2067# 2068# 2069 2367# 2368# 2369# 2370
SEGNUM 246+# 1406 1456 1545 1550 1650 1667 1835 1856 2079
SEGSIZE 249+#
SEG_BLD 715 2624* 2835
SEG_CCB 2744 2770 2776 2782 2783# 2788# 2789# 2790# 2802# 2803# 2804 2810#
2811# 2812# 2818# 2821 2825
SERVICES 250+# 251+
SEVERE 551+
SIZE 2532 2541# 2543# 2545 2571 2573 2584
SIZESEG 384+# 385+ 2785 2812 2813
SMAP$ 3276
SND_DATA 716 2713* 3027 3201
SND_INTERRUPT 718 2873* 3165
SND_INTR_REQ 719 2955* 3174
SND_MSG 717 2100 2840*
SND_ONE_DATA 720 2201 3001*
SND_REQ_DATA 721 3034* 3183
SOME_END 326+# 335+
SOME_FIELDS 307+# 437+
STK_CCB 1270# 1276 1277 1286 1300 1301 1302 1339# 1354 1359 1362# 1589#
1607# 1706# 1724# 1763# 1769 1770 1783 1784 1785
STS 2865 2867# 2868
SUBTYPE 228+#
TEMP 498+ 499+# 500+ 501+ 506+ 507+# 508+# 509+ 1092 1821 1826# 1832#
1844 2339 2356# 2357 2392# 2394 2454 2472 2475 2478# 2479 2483#
2484# 2485 2531 2584# 2587 2599 3256 3276 3279
TIMERCON 339+# 2062
TIMERDAT 336+# 2383 2394
TIMERINACT 355+# 2072
TIMEROTH 338+# 2465
TO_ADDR 2530 2585# 2587
TRICKLE 722 2174 2867 3135*
TRUE 138+ 446+# 787 827 903 994 1058 1206 1209 1214 1221 1228
1351 1411 1425 1434 1446 1458 1500 1552 1601 1659 1669 1718
1841 1858 1898 1938 2061 2297 2350 2386 2414 2463 2618 2682
2698 2705 2764 2777 2823 2831 2836 2868 2926 2930 2942 2946
2992 2995 3069 3072 3167 3176 3185 3194 3203 3215
TYPE 227+#
UPDATE_DELAY 723 2060 2399 3078*
V3_1 447+#
V3_2 448+#
VAL 496+ 499+
VALUE 1120 1149
VER 258+#
VERSIONREM 366+#
WK_CCB 1823 1847 1850# 1851 2337 2357 2359 2362# 2363 2364 2367 2377
2405 2408# 2409
XCCB 1034# 1035# 1036# 1037# 1038# 1039# 1040# 1041# 1042# 1044 1052#
XFRCNT 2533 2569# 2581 2587 2590
XPE 536+#
XPT 531+#
XPT_XMIT 724 791 1368 1612 1729 2301 2708 3225*
XTEMP 2656 2662# 2664# 2666# 2683 2688 2696 2703
XXDB 3225 3251 3258 3260 3264 3267 3271
$ADDRESX 183+ 185+ 187+ 195+ 197+ 199+ 201+ 203+ 205+ 325+ 370+ 371+
372+ 382+ 383+ 389+ 390+ 392+ 394+ 395+ 397+ 399+ 400+ 402+
404+ 405+ 407+ 409+ 410+ 412+ 414+ 415+ 417+ 419+ 420+ 421+
423+ 425+ 426+ 428+ 430+
$ALIGN 169+ 171+ 173+ 175+ 177+ 179+ 181+ 189+ 191+ 194+ 207+ 221+
223+ 238+ 245+ 247+ 340+ 342+ 344+ 346+ 348+ 350+ 352+ 354+
369+ 378+
$BIT 243+ 259+ 359+ 361+ 362+ 363+ 364+ 365+ 367+ 368+
$BITS 226+ 227+ 228+ 236+ 237+ 241+ 242+ 252+ 253+ 258+ 358+ 360+
366+
$BYTE 174+ 176+ 213+ 214+ 216+ 217+ 218+ 219+ 220+ 222+ 224+ 230+
231+ 232+ 233+ 234+ 250+ 255+ 256+ 313+ 317+ 318+ 322+ 323+
355+ 356+ 357+ 373+ 374+ 380+ 381+ 386+ 387+
$CONTINUE 186+ 198+ 204+ 215+ 229+ 244+ 254+ 312+ 319+ 324+ 337+ 388+
393+ 398+ 403+ 408+ 413+ 418+ 424+ 429+
$DSPCR 742
$FIELD 112+ 165+ 277+ 306+
$FIELD_SET_SIZE 120+ 263+ 295+ 330+ 434+
$INTEGER 115+ 116+ 280+ 281+ 287+ 288+ 289+ 290+ 291+ 375+
$LONG_WORD 123+# 283+ 284+ 285+ 286+
$MCB_GET_DSR 1044
$MCB_PROCESS 736
$NSP$LENGTH 120+# 124+ 127+
$NSP_INFO 560+ 561+ 562+ 563+
$NSP_SEVERE 553+ 554+ 555+ 556+ 557+
$OVERLAY 184+ 196+ 202+ 212+ 225+ 235+ 240+ 251+ 257+ 310+ 316+ 321+
335+ 385+ 391+ 396+ 401+ 406+ 411+ 416+ 422+ 427+
$POINTER 208+
$SHORT_INTEGER 168+ 170+ 172+ 178+ 180+ 190+ 192+ 209+ 210+ 211+ 239+ 246+
248+ 249+ 314+ 315+ 320+ 336+ 338+ 339+ 341+ 343+ 345+ 347+
349+ 351+ 353+ 376+ 377+ 379+ 384+
$SUB_BLOCK 124+ 326+
$TIME 282+
$TINY_INTEGER 309+ 311+