Trailing-Edge
-
PDP-10 Archives
-
BB-P363B-SM_1985
-
mcb/cex/dtr.lst
There are no other files named dtr.lst in the archive.
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 1
30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (1)
; 0001 module DTR ( ! DECnet Test Receiver
; 0002 ident = 'X01110',
; 0003 language (bliss16) ,
; 0004 list (require)
; 0005 ) =
; 0006 begin
; 0007 !
; 0008 ! COPYRIGHT (c) 1980, 1981, 1982
; 0009 ! DIGITAL EQUIPMENT CORPORATION
; 0010 ! Maynard, Massachusetts
; 0011 !
; 0012 ! This software is furnished under a license and may be used
; 0013 ! and copied only in accordance with the terms of such license
; 0014 ! and with the inclusion of the above copyright notice. This
; 0015 ! software or any other copies thereof may not be provided or
; 0016 ! otherwise made available to any other person. No title to
; 0017 ! and ownership of the software is hereby transferred.
; 0018 !
; 0019 ! The information in this software is subject to change
; 0020 ! without notice and should not be construed as a commitment
; 0021 ! by DIGITAL EQUIPMENT CORPORATION.
; 0022 !
; 0023 ! DIGITAL assumes no responsibility for the use or reliability
; 0024 ! of its software on equipment which is not supplied by
; 0025 ! DIGITAL.
; 0026 !
; 0027
; 0028 !++
; 0029 !
; 0030 ! FACILITY: DECnet Test Receiver
; 0031 !
; 0032 ! ABSTRACT:
; 0033 !
; 0034 ! This is a hack attempt to implement DTR in the DN20.
; 0035 !
; 0036 ! ENVIRONMENT: MCB V3.0
; 0037 !
; 0038 ! AUTHOR: Alan D. Peckham CREATION DATE: 25-Nov-80
; 0039 !
; 0040 ! MODIFIED BY:
; 0041 !
; 0042 ! Alan Peckham, 27-Nov-80
; 0043 ! 01 - New process for DN20 testing.
; 0044 ! 02 - Various bug fixes.
; 0045 ! 03 - Add disconnect test.
; 0046 ! 04 - Update for MCB V3.1
; 0047 ! 05 - Add interrupt sink and received tests.
; 0048 ! 06 - Pass EOM from received segment to sent during data test.
; 0049 !
; 0050 ! Ron Platukis, 23-jan-81
; 0051 ! 07 - Add sequence and pattern tests for interrupt and normal data.
; 0052 ! 08 - On Reject set C_PRM2 eql S_ERBO.
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 2
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (1)
; 0053 ! 09 - Clear ls_active in RCV_ACC if accept failed.
; 0054 ! 10 - Source/Object skew. This is to make sure it is updated.
; 0055 ! 11 - Do not use SDBs.
; 0056 !--
; 0057
; 0058 !
; 0059 ! INCLUDE FILES:
; 0060 !
; 0061
; 0062 library 'MCB:MCBLIB';
; 0063
; 0064 library 'MCB:XPORTX';
; 0065
; 0066 require 'MCB:SCSYS';
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 3
X01110 30-Dec-1982 17:27:41 NETPKG:<MCB>SCSYS.REQ.7 (1)
; R0067 ! COPYRIGHT (c) 1980, 1981, 1982
; R0068 ! DIGITAL EQUIPMENT CORPORATION
; R0069 ! Maynard, Massachusetts
; R0070 !
; R0071 ! This software is furnished under a license and may be used
; R0072 ! and copied only in accordance with the terms of such license
; R0073 ! and with the inclusion of the above copyright notice. This
; R0074 ! software or any other copies thereof may not be provided or
; R0075 ! otherwise made available to any other person. No title to
; R0076 ! and ownership of the software is hereby transferred.
; R0077 !
; R0078 ! The information in this software is subject to change
; R0079 ! without notice and should not be construed as a commitment
; R0080 ! by DIGITAL EQUIPMENT CORPORATION.
; R0081 !
; R0082 ! DIGITAL assumes no responsibility for the use or reliability
; R0083 ! of its software on equipment which is not supplied by
; R0084 ! DIGITAL.
; R0085
; R0086 !+
; R0087 ! *** Start of SCSYS ***
; R0088 ! System Interface Parameters
; R0089 !-
; R0090
; R0091 %if not %declared (XPO$K_VERSION) %then library 'MCB:XPORTX' %fi;
; R0092 $show (all);
; R0093
; R0094 !+
; R0095 ! Function modifier codes for the System User Interface
; R0096 !-
; R0097 literal
; R0098 S$CON = 0, ! Connect
; R0099 S$ACC = 2, ! Accept
; R0100 S$REJ = 4, ! Reject
; R0101 S$SND = 6, ! Send data segment
; R0102 S$MRQ = 8, ! Data message request
; R0103 S$DRQ = 10, ! Data segment request
; R0104 S$SNI = 12, ! Send interrupt
; R0105 S$IRQ = 14, ! Interrupt request
; R0106 S$DIS = 16, ! Disconnect
; R0107 S$ABO = 18, ! Abort
; R0108 S$GLN = 20, ! Get local node info
; R0109 S$CNR = 0, ! Connect received
; R0110 S$DAT = 2, ! Return data segment
; R0111 S$INT = 4, ! Return interrupt data segment
; R0112 S$DSR = 6, ! Disconnect received
; R0113
; R0114 S$XHI = S$GLN, ! Highest XME modifier
; R0115 S$RHI = S$DSR; ! Highest RCE modifier
; R0116
; R0117 !+
; R0118 ! Miscellaneous Flags/Values
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 4
X01110 30-Dec-1982 17:27:41 NETPKG:<MCB>SCSYS.REQ.7 (1)
; R0119 !-
; R0120 literal
; R0121 S$PSEG = 1, ! Segment flow control
; R0122 S$PMSG = 2, ! Message flow control
; R0123
; R0124 S$PBOM = 1, ! Beginning of message
; R0125 S$PMOM = 2, ! Middle of message
; R0126 S$PEOM = 4; ! End of message
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 5
X01110 30-Dec-1982 17:27:41 NETPKG:<MCB>SCSYS.REQ.7 (2)
; R0127 !+
; R0128 ! Status codes
; R0129 !-
; R0130 literal
; R0131 S_EHI = 1, ! Highest code
; R0132 S_SSUC = 1, ! Operation successful
; R0133
; R0134 ! The following codes may appear in reject and disconnect data,
; R0135 ! but in their positive form. For the first two values, since
; R0136 ! there is no negative zero, a synonym value of 20 is used.
; R0137 ! The zero values are seen by SC only.
; R0138 ! S_ERBO = 0, ! Rejected by object
; R0139 ! S_EDBO = 0, ! Disconnect by object
; R0140 S_ERES = -1, ! Insufficient network resources
; R0141 S_EUNN = -2, ! Unrecognized node name
; R0142 S_ERNS = -3, ! Remote node shut down
; R0143 S_EURO = -4, ! Unrecognized object
; R0144 S_EIOF = -5, ! Invalid object name format
; R0145 S_EOTB = -6, ! Object too busy
; R0146 S_EABS = -7, ! Abort by remote Session Control
; R0147 S_EABM = -8, ! Abort by management
; R0148 S_EABO = -9, ! Abort by object
; R0149 S_EINF = -10, ! Invalid node name format
; R0150 S_ELNS = -11, ! Local node shut down
; R0151 S_ECBE = -12, ! Connect block format error
; R0152 S_EERR = -13, ! General, unspecified error
; R0153 S_EIDM = -14, ! Invalid data mode
; R0154 S_ELST = -15, ! Data lost buffer too small
; R0155 S_ELWS = -16, ! Link in wrong state
; R0156 S_EMTL = -17, ! Message too long
; R0157 S_ENSL = -18, ! No such link
; R0158 S_EABL = -19, ! Abort by local SC
; R0159 S_ERBO = -20, ! Rejected by object
; R0160 S_EDBO = -20, ! Disconnect by object
; R0161 S_ETMI = -21, ! Too many interrupt messages requested
; R0162 S_EACR = -34, ! Access control rejection
; R0163 S_ENRO = -38, ! No response from object
; R0164 S_ENOF = -38, ! Node or object failed
; R0165 S_ENUR = -39, ! Node unreachable
; R0166 S_ELO = -39; ! Lowest code
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 6
X01110 30-Dec-1982 17:27:41 NETPKG:<MCB>SCSYS.REQ.7 (3)
; R0167 !+
; R0168 ! System Interface Macros
; R0169 !-
; R0170 macro ! First, a support macro or two
; R0171 $SC$LO_BYTE = 0,0,bits_byte,0 %,
; R0172
; R0173 $SC$HI_BYTE = 0,bits_byte,bits_byte,0 %,
; R0174
; MR0175 $SC$QUE (fnc, mdf) =
; MR0176 %if not %null (fnc) %then $SC$CCB [C_FNC] = fnc; %fi
; MR0177 %if not %null (mdf) %then $SC$CCB [C_MOD] = mdf; %fi
; R0178 LLCRS$ ($SC$CCB) %,
; R0179
; MR0180 $SC$CND (val, loc) =
; R0181 %if not %null (val) %then loc = val; %fi %,
; R0182
; MR0183 $SC$BUF (bias, addr, count) =
; MR0184 $SC$CND (bias, $SC$CCB [C_BIAS])
; MR0185 $SC$CND (addr, $SC$CCB [C_ADDR])
; R0186 $SC$CND (count, $SC$CCB [C_CNT]) %,
; R0187
; R0188 !+
; R0189 ! Structure Access Macros
; R0190 !-
; MR0191 $SC_GET_LLA (ccb, lla) =
; MR0192 begin
; MR0193 bind $SC$CCB = ccb: block field (C_FIELDS);
; MR0194 lla = .$SC$CCB [C_LIX]
; R0195 end %,
; R0196
; MR0197 $SC_GET_ULA (ccb, ula) =
; MR0198 begin
; MR0199 bind $SC$CCB = ccb: block field (C_FIELDS);
; MR0200 ula = .$SC$CCB [$sub_field (C_PRM1, $SC$LO_BYTE)]
; R0201 end %,
; R0202
; R0203
; R0204 !+
; R0205 ! Interface Macros
; R0206 !-
; MR0207 $SC_ABORT (ccb, pix, ula, buf) =
; MR0208 begin
; MR0209 bind $SC$CCB = ccb: block field (C_FIELDS);
; MR0210 $SC$CND (pix, $SC$CCB [C_PIX])
; MR0211 $SC$CND (ula, $SC$CCB [$sub_field (C_PRM1, $SC$LO_BYTE)])
; MR0212 $SC$BUF (%remove (buf))
; MR0213 $SC$QUE (FC_XME, S$ABO)
; R0214 end %,
; R0215
; MR0216 $SC_ACCEPT (ccb, pix, lla, ula, flg, buf) =
; MR0217 begin
; MR0218 bind $SC$CCB = ccb: block field (C_FIELDS);
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 7
X01110 30-Dec-1982 17:27:41 NETPKG:<MCB>SCSYS.REQ.7 (3)
; MR0219 $SC$CND (pix, $SC$CCB [C_PIX])
; MR0220 $SC$CND (lla, $SC$CCB [C_LIX])
; MR0221 $SC$CND (ula, $SC$CCB [$sub_field (C_PRM1, $SC$LO_BYTE)])
; MR0222 $SC$CND (flg, $SC$CCB [$sub_field (C_PRM1, $SC$HI_BYTE)])
; MR0223 $SC$BUF (%remove (buf))
; MR0224 $SC$QUE (FC_XME, S$ACC)
; R0225 end %,
; R0226
; MR0227 $SC_CONNECT (ccb, pix, ula, flg, buf) =
; MR0228 begin
; MR0229 bind $SC$CCB = ccb: block field (C_FIELDS);
; MR0230 $SC$CND (pix, $SC$CCB [C_PIX])
; MR0231 $SC$CND (ula, $SC$CCB [$sub_field (C_PRM1, $SC$LO_BYTE)])
; MR0232 $SC$CND (flg, $SC$CCB [$sub_field (C_PRM1, $SC$HI_BYTE)])
; MR0233 $SC$BUF (%remove (buf))
; MR0234 $SC$QUE (FC_XME, S$CON)
; R0235 end %,
; R0236
; MR0237 $SC_CONNECT_RECEIVED (ccb, ula, sts) =
; MR0238 begin
; MR0239 bind $SC$CCB = ccb: block field (C_FIELDS);
; MR0240 $SC$CND (ula, $SC$CCB [$sub_field (C_PRM1, $SC$LO_BYTE)])
; MR0241 $SC$CND (sts, $SC$CCB [C_STS])
; MR0242 $SC$QUE (FC_RCE)
; R0243 end %,
; R0244
; MR0245 $SC_DATA_SEGMENT_RETURN (ccb) =
; MR0246 begin
; MR0247 bind $SC$CCB = ccb: block field (C_FIELDS);
; MR0248 $SC$QUE (FC_RCE)
; R0249 end %,
; R0250
; MR0251 $SC_DATA_MESSAGE_REQUEST (ccb, pix, lla, ula, buf) =
; MR0252 begin
; MR0253 bind $SC$CCB = ccb: block field (C_FIELDS);
; MR0254 $SC$CND (pix, $SC$CCB [C_PIX])
; MR0255 $SC$CND (lla, $SC$CCB [C_LIX])
; MR0256 $SC$CND (ula, $SC$CCB [$sub_field (C_PRM1, $SC$LO_BYTE)])
; MR0257 $SC$BUF (%remove (buf))
; MR0258 $SC$QUE (FC_XME, S$MRQ)
; R0259 end %,
; R0260
; MR0261 $SC_DATA_SEGMENT_REQUEST (ccb, pix, lla, ula, num) =
; MR0262 begin
; MR0263 bind $SC$CCB = ccb: block field (C_FIELDS);
; MR0264 $SC$CND (pix, $SC$CCB [C_PIX])
; MR0265 $SC$CND (lla, $SC$CCB [C_LIX])
; MR0266 $SC$CND (ula, $SC$CCB [$sub_field (C_PRM1, $SC$LO_BYTE)])
; MR0267 $SC$CND (num, $SC$CCB [$sub_field (C_PRM1, $SC$HI_BYTE)])
; MR0268 $SC$QUE (FC_XME, S$DRQ)
; R0269 end %,
; R0270
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 8
X01110 30-Dec-1982 17:27:41 NETPKG:<MCB>SCSYS.REQ.7 (3)
; MR0271 $SC_DATA_SEGMENT_TRANSMIT (ccb, pix, lla, ula, flg, buf) =
; MR0272 begin
; MR0273 bind $SC$CCB = ccb: block field (C_FIELDS);
; MR0274 $SC$CND (pix, $SC$CCB [C_PIX])
; MR0275 $SC$CND (lla, $SC$CCB [C_LIX])
; MR0276 $SC$CND (ula, $SC$CCB [$sub_field (C_PRM1, $SC$LO_BYTE)])
; MR0277 $SC$CND (flg, $SC$CCB [$sub_field (C_PRM1, $SC$HI_BYTE)])
; MR0278 $SC$BUF (%remove (buf))
; MR0279 $SC$QUE (FC_XME, S$SND)
; R0280 end %,
; R0281
; MR0282 $SC_DISCONNECT (ccb, pix, lla, ula, buf) =
; MR0283 begin
; MR0284 bind $SC$CCB = ccb: block field (C_FIELDS);
; MR0285 $SC$CND (pix, $SC$CCB [C_PIX])
; MR0286 $SC$CND (lla, $SC$CCB [C_LIX])
; MR0287 $SC$CND (ula, $SC$CCB [$sub_field (C_PRM1, $SC$LO_BYTE)])
; MR0288 $SC$BUF (%remove (buf))
; MR0289 $SC$QUE (FC_XME, S$DIS)
; R0290 end %,
; R0291
; MR0292 $SC_DISCONNECTED (ccb) =
; MR0293 begin
; MR0294 bind $SC$CCB = ccb: block field (C_FIELDS);
; MR0295 $SC$QUE (FC_RCE)
; R0296 end %,
; R0297
; MR0298 $SC_INTERRUPT_REQUEST (ccb, pix, lla, ula, num) =
; MR0299 begin
; MR0300 bind $SC$CCB = ccb: block field (C_FIELDS);
; MR0301 $SC$CND (pix, $SC$CCB [C_PIX])
; MR0302 $SC$CND (lla, $SC$CCB [C_LIX])
; MR0303 $SC$CND (ula, $SC$CCB [$sub_field (C_PRM1, $SC$LO_BYTE)])
; MR0304 $SC$CND (num, $SC$CCB [$sub_field (C_PRM1, $SC$HI_BYTE)])
; MR0305 $SC$QUE (FC_XME, S$IRQ)
; R0306 end %,
; R0307
; MR0308 $SC_INTERRUPT_RETURN (ccb) =
; MR0309 begin
; MR0310 bind $SC$CCB = ccb: block field (C_FIELDS);
; MR0311 $SC$QUE (FC_RCE)
; R0312 end %,
; R0313
; MR0314 $SC_INTERRUPT_TRANSMIT (ccb, pix, lla, ula, buf) =
; MR0315 begin
; MR0316 bind $SC$CCB = ccb: block field (C_FIELDS);
; MR0317 $SC$CND (pix, $SC$CCB [C_PIX])
; MR0318 $SC$CND (lla, $SC$CCB [C_LIX])
; MR0319 $SC$CND (ula, $SC$CCB [$sub_field (C_PRM1, $SC$LO_BYTE)])
; MR0320 $SC$BUF (%remove (buf))
; MR0321 $SC$QUE (FC_XME, S$SNI)
; R0322 end %,
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 9
X01110 30-Dec-1982 17:27:41 NETPKG:<MCB>SCSYS.REQ.7 (3)
; R0323
; MR0324 $SC_LOCAL_NODE_INFO (ccb, pix, flg, buf) =
; MR0325 begin
; MR0326 bind $SC$CCB = ccb: block field (C_FIELDS);
; MR0327 $SC$CND (pix, $SC$CCB [C_PIX])
; MR0328 $SC$CND (flg, $SC$CCB [C_PRM1])
; MR0329 $SC$BUF (%remove (buf))
; MR0330 $SC$QUE (FC_XME, S$GLN)
; R0331 end %,
; R0332
; MR0333 $SC_REJECT (ccb, pix, lla, rej, buf) =
; MR0334 begin
; MR0335 bind $SC$CCB = ccb: block field (C_FIELDS);
; MR0336 $SC$CND (pix, $SC$CCB [C_PIX])
; MR0337 $SC$CND (lla, $SC$CCB [C_LIX])
; MR0338 $SC$CND (rej, $SC$CCB [C_PRM2])
; MR0339 $SC$BUF (%remove (buf))
; MR0340 $SC$QUE (FC_XME, S$REJ)
; R0341 end %;
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 10
X01110 30-Dec-1982 17:27:41 NETPKG:<MCB>SCSYS.REQ.7 (4)
; R0342 !+
; R0343 ! Field mapping for the Connect Block
; R0344 !-
; R0345 $field CB_FIELDS =
; R0346 set
; LR0347 CB_NODE = [$byte_string (6)], ! Destination node name
; %PRINT: [0,0,0,0] (+%O'0')
; R0348
; LR0349 CB_DFMT = [$byte], ! Destination object format
; %PRINT: [3,0,8,0] (+%O'6')
; LR0350 CB_DOBJ = [$byte], ! " " type
; %PRINT: [3,8,8,0] (+%O'7')
; LR0351 CB_DST = [$byte_string (18)], ! " " descriptor
; %PRINT: [4,0,0,0] (+%O'10')
; R0352
; LR0353 CB_SFMT = [$byte], ! Source object format
; %PRINT: [13,0,8,0] (+%O'32')
; LR0354 CB_SOBJ = [$byte], ! " " type
; %PRINT: [13,8,8,0] (+%O'33')
; LR0355 CB_SRC = [$byte_string (18)], ! " " descriptor
; %PRINT: [14,0,0,0] (+%O'34')
; R0356
; LR0357 CB_RQDL = [$short_integer], ! Requester ID length
; %PRINT: [23,0,16,1] (+%O'56')
; LR0358 CB_RQID = [$byte_string (16)], ! " "
; %PRINT: [24,0,0,0] (+%O'60')
; R0359
; LR0360 CB_PASL = [$short_integer], ! Password length
; %PRINT: [32,0,16,1] (+%O'100')
; LR0361 CB_PASW = [$byte_string (8)], ! "
; %PRINT: [33,0,0,0] (+%O'102')
; R0362
; LR0363 CB_ACTL = [$short_integer], ! Accounting data length
; %PRINT: [37,0,16,1] (+%O'112')
; LR0364 CB_ACNT = [$byte_string (16)], ! " "
; %PRINT: [38,0,0,0] (+%O'114')
; R0365
; LR0366 CB_OPDL = [$short_integer], ! Optional data length
; %PRINT: [46,0,16,1] (+%O'134')
; LR0367 CB_OPTD = [$byte_string (16)], ! " "
; %PRINT: [47,0,0,0] (+%O'136')
; LR0368 CB_ENDD = [$sub_block (0)], ! End marker
; %PRINT: [55,0,0,0] (+%O'156')
; R0369
; R0370 $overlay (CB_DST) ! Format 1
; LR0371 CB_DPL1 = [$short_integer], ! Destination process name length
; %PRINT: [4,0,16,1] (+%O'10')
; LR0372 CB_DPR1 = [$byte_string (16)], ! " " "
; %PRINT: [5,0,0,0] (+%O'12')
; R0373 $continue
; R0374
; R0375 $overlay(CB_DST) ! Format 2
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 11
X01110 30-Dec-1982 17:27:41 NETPKG:<MCB>SCSYS.REQ.7 (4)
; LR0376 CB_DGRP = [$short_integer], ! Destination group code
; %PRINT: [4,0,16,1] (+%O'10')
; LR0377 CB_DUSR = [$short_integer], ! " user "
; %PRINT: [5,0,16,1] (+%O'12')
; LR0378 CB_DPL2 = [$short_integer], ! " process name length
; %PRINT: [6,0,16,1] (+%O'14')
; LR0379 CB_DPR2 = [$byte_string (12)], ! " " "
; %PRINT: [7,0,0,0] (+%O'16')
; R0380 $continue
; R0381
; R0382 $overlay(CB_SRC) ! Format 1
; LR0383 CB_SPL1 = [$short_integer], ! Source process name length
; %PRINT: [14,0,16,1] (+%O'34')
; LR0384 CB_SPR1 = [$byte_string (16)], ! " " "
; %PRINT: [15,0,0,0] (+%O'36')
; R0385 $continue
; R0386
; R0387 $overlay(CB_SRC) ! Format 2
; LR0388 CB_SGRP = [$short_integer], ! Source group code
; %PRINT: [14,0,16,1] (+%O'34')
; LR0389 CB_SUSR = [$short_integer], ! " user "
; %PRINT: [15,0,16,1] (+%O'36')
; LR0390 CB_SPL2 = [$short_integer], ! " process name length
; %PRINT: [16,0,16,1] (+%O'40')
; LR0391 CB_SPR2 = [$byte_string (12)] ! " " "
; %PRINT: [17,0,0,0] (+%O'42')
; R0392 $continue
; R0393 tes;
; R0394
; R0395 literal
; LR0396 CB_SIZE = $field_set_size;
; %PRINT: 55 fullwords
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 12
X01110 30-Dec-1982 17:27:41 NETPKG:<MCB>SCSYS.REQ.7 (5)
; R0397 !+
; R0398 ! Field mapping for either source or destination sub_blocks
; R0399 !-
; R0400 $field CBSD_FIELDS =
; R0401 set
; LR0402 CB_FMT = [$byte], ! Format
; %PRINT: [0,0,8,0] (+%O'0')
; LR0403 CB_OBJ = [$byte], ! Object type
; %PRINT: [0,8,8,0] (+%O'1')
; LR0404 CB_DES = [$byte_string (18)], ! Descriptor
; %PRINT: [1,0,0,0] (+%O'2')
; R0405
; R0406 $overlay (CB_DES) ! Format #1
; LR0407 CB_LEN = [$short_integer],
; %PRINT: [1,0,16,1] (+%O'2')
; LR0408 CB_NAM = [$byte_string (16)],
; %PRINT: [2,0,0,0] (+%O'4')
; R0409 $continue
; R0410
; R0411 $overlay (CB_DES) ! Format #2
; LR0412 CB_GRP = [$short_integer],
; %PRINT: [1,0,16,1] (+%O'2')
; LR0413 CB_USR = [$short_integer],
; %PRINT: [2,0,16,1] (+%O'4')
; LR0414 CB_LN2 = [$short_integer],
; %PRINT: [3,0,16,1] (+%O'6')
; LR0415 CB_NM2 = [$byte_string (12)]
; %PRINT: [4,0,0,0] (+%O'10')
; R0416 $continue
; R0417 tes;
; R0418
; R0419
; R0420 !+
; R0421 ! *** End of SCSYS ***
; R0422 !-
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 13
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (1)
; 0423
; 0424 require 'DTRDAT';
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 14
X01110 30-Dec-1982 01:51:19 NETPKG:<CEX>DTRDAT.R16.8 (1)
; R0425 ! [Beginning of DTRDAT]
; R0426 !
; R0427 !
; R0428 ! COPYRIGHT (c) 1980, 1981, 1982
; R0429 ! DIGITAL EQUIPMENT CORPORATION
; R0430 ! Maynard, Massachusetts
; R0431 !
; R0432 ! This software is furnished under a license and may be used
; R0433 ! and copied only in accordance with the terms of such license
; R0434 ! and with the inclusion of the above copyright notice. This
; R0435 ! software or any other copies thereof may not be provided or
; R0436 ! otherwise made available to any other person. No title to
; R0437 ! and ownership of the software is hereby transferred.
; R0438 !
; R0439 ! The information in this software is subject to change
; R0440 ! without notice and should not be construed as a commitment
; R0441 ! by DIGITAL EQUIPMENT CORPORATION.
; R0442 !
; R0443 ! DIGITAL assumes no responsibility for the use or reliability
; R0444 ! of its software on equipment which is not supplied by
; R0445 ! DIGITAL.
; R0446 !
; R0447
; R0448 !++
; R0449 !
; R0450 ! FACILITY: DECnet Test Receiver
; R0451 !
; R0452 ! ABSTRACT:
; R0453 !
; R0454 ! This contains the data structure definitions for DTR.
; R0455 !
; R0456 ! ENVIRONMENT: MCB V3.0
; R0457 !
; R0458 ! AUTHOR: Alan D. Peckham CREATION DATE: 27-Nov-80
; R0459 !
; R0460 ! MODIFIED BY:
; R0461 !
; R0462 ! Alan Peckham, 27-Nov-80
; R0463 ! 01 - New process for DN20 testing.
; R0464 ! 02 - New status code.
; R0465 !--
; R0466
; R0467 $SHOW (FIELDS, LITERALS)
; R0468
; R0469 !
; R0470 ! Status Codes:
; R0471 !
; R0472
; R0473 DECLARE_SEVERITY (DTR, INFO, SEVERE, ERROR);
; R0474
; R0475 $DTR_ERROR (DTR$_DISPATCH, 'Unexpected dispatch')
; R0476 $DTR_SEVERE (DTR$_NO_SC, 'The SC process does not exist')
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 15
X01110 30-Dec-1982 01:51:19 NETPKG:<CEX>DTRDAT.R16.8 (1)
; R0477 $DTR_SEVERE (DTR$_NO_CCB, 'Could not get CCB')
; R0478 $DTR_INFO (DTR$_TEST_INVALID, 'Invalid test type received')
; R0479 $DTR_INFO (DTR$_TEST_UNSUPPORTED, 'Unsupported test type received')
; R0480 $DTR_INFO (DTR$_NO_ABORT, 'Abort rejected by Session Control')
; R0481 $DTR_INFO (DTR$_NO_ACCEPT, 'Accept rejected by Session Control')
; R0482 $DTR_INFO (DTR$_NO_DISCONNECT, 'Disconnect rejected by Session Control')
; R0483 $DTR_INFO (DTR$_NO_REJECT, 'Reject rejected by Session Control')
; R0484 $DTR_INFO (DTR$_NO_SEND_DATA, 'Data rejected by Session Control')
; R0485 $DTR_INFO (DTR$_NO_DATA_REQUEST, 'Data request rejected by Session Control')
; R0486 $DTR_INFO (DTR$_NO_DATA_PLEASE, 'Data received on non-data test')
; R0487 $DTR_INFO (DTR$_NO_INTERRUPT_PLEASE, 'Interrupt data received on non-interrupt test')
; R0488 $DTR_INFO (DTR$_NO_INTERRUPT_REQUEST, 'Interrupt data request rejected by Session Control')
; R0489 $DTR_INFO (DTR$_NO_SEND_INTERRUPT, 'Interrupt data rejected by Session Control')
; R0490 $DTR_INFO (DTR$_BAD_SEQUENCE_NUMBER, 'Bad sequence number received from DTS')
; R0491 $DTR_INFO (DTR$_BAD_PATTERN, 'Bad data pattern received from DTS')
; R0492
; R0493 !
; R0494 ! INI process data base
; R0495 !
; R0496
; R0497 $FIELD
; R0498 D_FIELDS =
; R0499 set
; LR0500 D_CLOCK = [$SHORT_INTEGER],
; %PRINT: [0,0,16,1] (+%O'0')
; LR0501 D_LINKS = [$SHORT_INTEGER],
; %PRINT: [1,0,16,1] (+%O'2')
; LR0502 D_ADDR = [$ADDRESS]
; %PRINT: [2,0,16,0] (+%O'4')
; R0503 tes;
; R0504
; R0505 literal
; LR0506 D_LENGTH = $FIELD_SET_SIZE;
; %PRINT: 3 fullwords
; R0507
; R0508 $FIELD
; R0509 L_FIELDS =
; R0510 set
; LR0511 L_ULA = [$TINY_INTEGER],
; %PRINT: [0,0,8,1] (+%O'0')
; LR0512 LS_DIP = [$BIT],
; %PRINT: [0,8,1,0] (+%O'1')
; LR0513 LS_XOFF = [$BIT],
; %PRINT: [0,9,1,0] (+%O'1')
; LR0514 LS_PROPT = [$BIT],
; %PRINT: [0,10,1,0] (+%O'1')
; LR0515 LS_ACTIVE = [$BIT],
; %PRINT: [0,11,1,0] (+%O'1')
; R0516 $ALIGN (FULLWORD)
; LR0517 L_LLA = [$BYTE],
; %PRINT: [1,0,8,0] (+%O'2')
; LR0518 L_TEST = [$TINY_INTEGER],
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 16
X01110 30-Dec-1982 01:51:19 NETPKG:<CEX>DTRDAT.R16.8 (1)
; %PRINT: [1,8,8,1] (+%O'3')
; LR0519 L_SUB_TEST = [$TINY_INTEGER],
; %PRINT: [2,0,8,1] (+%O'4')
; LR0520 L_FLOW_TYPE = [$TINY_INTEGER],
; %PRINT: [2,8,8,1] (+%O'5')
; LR0521 L_FLOW_COUNT = [$INTEGER],
; %PRINT: [3,0,16,1] (+%O'6')
; LR0522 L_NAK_COUNT = [$TINY_INTEGER],
; %PRINT: [4,0,8,1] (+%O'10')
; LR0523 L_BPC_COUNT = [$TINY_INTEGER],
; %PRINT: [4,8,8,1] (+%O'11')
; LR0524 L_MESSAGE_SIZE = [$INTEGER],
; %PRINT: [5,0,16,1] (+%O'12')
; LR0525 L_NAK_MESSAGES = [$INTEGER],
; %PRINT: [6,0,16,1] (+%O'14')
; LR0526 L_BPC_MESSAGES = [$INTEGER],
; %PRINT: [7,0,16,1] (+%O'16')
; LR0527 L_SEND_NUMBER = [$SUB_BLOCK (2)],
; %PRINT: [8,0,0,0] (+%O'20')
; LR0528 L_RECEIVE_NUMBER = [$SUB_BLOCK (2)],
; %PRINT: [10,0,0,0] (+%O'24')
; LR0529 L_RECEIVE_COUNT = [$SUB_BLOCK (2)],
; %PRINT: [12,0,0,0] (+%O'30')
; LR0530 L_PATTERN_CHARACTER = [$INTEGER],
; %PRINT: [14,0,16,1] (+%O'34')
; LR0531 L_PATTERN_ROUTINE = [$ADDRESS],
; %PRINT: [15,0,16,0] (+%O'36')
; R0532 $OVERLAY (L_MESSAGE_SIZE)
; LR0533 L_DISCONNECT_LENGTH = [$INTEGER],
; %PRINT: [5,0,16,1] (+%O'12')
; LR0534 L_DISCONNECT_DATA = [$string (16)]
; %PRINT: [6,0,0,0] (+%O'14')
; R0535 $CONTINUE
; R0536 tes;
; R0537
; R0538 literal
; LR0539 L_LENGTH = $FIELD_SET_SIZE;
; %PRINT: 16 fullwords
; R0540
; R0541 !
; R0542 ! [End of DTRDAT]
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 17
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (1)
; 0543
; 0544 !
; 0545 ! TABLE OF CONTENTS:
; 0546 !
; 0547
; 0548 forward routine
; 0549 DTRTIM : MCB_DB_MOD novalue,
; 0550 RCV_ABO : MCB_DB_CCB novalue,
; 0551 RCV_ACC : MCB_DB_CCB novalue,
; 0552 RCV_CNR : MCB_DB_CCB novalue,
; 0553 RCV_DAT : MCB_DB_CCB novalue,
; 0554 RCV_DIS : MCB_DB_CCB novalue,
; 0555 RCV_DRQ : MCB_DB_CCB novalue,
; 0556 RCV_DSR : MCB_DB_CCB novalue,
; 0557 RCV_INT : MCB_DB_CCB novalue,
; 0558 RCV_IRQ : MCB_DB_CCB novalue,
; 0559 RCV_REJ : MCB_DB_CCB novalue,
; 0560 RCV_SND : MCB_DB_CCB novalue,
; 0561 RCV_SNI : MCB_DB_CCB novalue,
; 0562 SND_ABO : LINKAGE_DB_CCB novalue,
; 0563 SND_ACC : LINKAGE_DB_CCB novalue,
; 0564 SND_DIS : LINKAGE_DB_CCB novalue,
; 0565 SND_DRQ : LINKAGE_DB_CCB novalue,
; 0566 SND_IRQ : LINKAGE_DB_CCB novalue,
; 0567 SND_REJ : LINKAGE_DB_CCB novalue,
; 0568 SND_SND : LINKAGE_DB_CCB novalue,
; 0569 SND_SNI : LINKAGE_DB_CCB novalue,
; 0570 PATTERN_CHECK: LINKAGE_DB_CCB;
; 0571
; 0572 !
; 0573 ! MACROS:
; 0574 !
; 0575 ! None
; 0576 !
; 0577 ! EQUATED SYMBOLS:
; 0578 !
; 0579
; 0580 literal
; 0581 FALSE = 1 eql 0,
; 0582 NO_OPERATION = 0,
; 0583 TRUE = 1 eql 1;
; 0584
; 0585 global literal
; 0586 %name ('D.LEN') = D_LENGTH^1,
; 0587 %name ('L.LEN') = L_LENGTH^1;
; 0588
; 0589 field word_0 = [0, 0, 16, 0],
; 0590 word_1 = [1, 0, 16, 0],
; 0591 byte_0 = [0, 0, 8, 0],
; 0592 byte_1 = [0, 8, 8, 0];
; 0593
; 0594 !
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 18
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (1)
; 0595 ! OWN STORAGE:
; 0596 !
; 0597
; 0598 external routine
; 0599 $DSPCR : novalue;
; 0600
; 0601 routine SCRCP (DB, CCB, MODF) : MCB_DB_CCB_MOD novalue =
; P 0602 DISPATCH$ (TABLE$ ($DSPCR, 6,
; P 0603 (S$CNR, RCV_CNR),
; P 0604 (S$DAT, RCV_DAT),
; P 0605 (S$DSR, RCV_DSR),
; P 0606 (S$INT, RCV_INT)),
; 0607 .MODF, (.DB, .CCB), MCB_DB_CCB);
.TITLE DTR
.IDENT /X01110/
000000 .PSECT $PLIT$, RO , D
000000 000000V P.AAA: .WORD RCV.CNR
000002 000000V .WORD RCV.DAT
000004 000000V .WORD RCV.INT
000006 000000V .WORD RCV.DSR
.GLOBL $DSPCR
000006 D.LEN== 6
000040 L.LEN== 40
.SBTTL SCRCP
000000 .PSECT $CODE$, RO
000000 004773 000000' SCRCP: JSR PC,@P.AAA(R3) ; *,*(MODF) 0607
000004 000207 RTS PC ; 0601
; Routine Size: 3 words, Routine Base: $CODE$ + 0000
; Maximum stack depth per invocation: 1 word
; 0608
; 0609 routine SCXCP (DB, CCB, MODF) : MCB_DB_CCB_MOD novalue =
; P 0610 DISPATCH$ (TABLE$ ($DSPCR, 20,
; P 0611 (S$ABO, RCV_ABO),
; P 0612 (S$ACC, RCV_ACC),
; P 0613 (S$DIS, RCV_DIS),
; P 0614 (S$DRQ, RCV_DRQ),
; P 0615 (S$IRQ, RCV_IRQ),
; P 0616 (S$REJ, RCV_REJ),
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 19
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (1)
; P 0617 (S$SND, RCV_SND),
; P 0618 (S$SNI, RCV_SNI)),
; 0619 .MODF, (.DB, .CCB), MCB_DB_CCB);
000010 .PSECT $PLIT$, RO , D
000010 000000G P.AAB: .WORD $DSPCR
000012 000000V .WORD RCV.ACC
000014 000000V .WORD RCV.REJ
000016 000000V .WORD RCV.SND
000020 000000G .WORD $DSPCR
000022 000000V .WORD RCV.DRQ
000024 000000V .WORD RCV.SNI
000026 000000V .WORD RCV.IRQ
000030 000000V .WORD RCV.DIS
000032 000000V .WORD RCV.ABO
000034 000000G .WORD $DSPCR
.SBTTL SCXCP
000006 .PSECT $CODE$, RO
000000 004773 000010' SCXCP: JSR PC,@P.AAB(R3) ; *,*(MODF) 0619
000004 000207 RTS PC ; 0609
; Routine Size: 3 words, Routine Base: $CODE$ + 0006
; Maximum stack depth per invocation: 1 word
; 0620
; P 0621 $MCB_PROCESS (NAME = DTR, ! Process name
; P 0622 LLC_DISPATCH = TABLE$ ($DSPCR, FC_CCP, ! LLC Dispatch vector:
; P 0623 (FC_RCP, SCRCP),
; P 0624 (FC_XCP, SCXCP),
; 0625 (FC_TIM, DTRTIM))); ! timeout
; 0626 !
; 0627 ! EXTERNAL REFERENCES:
; 0628 !
; 0629 ! None
; 0630
; 0631
; 0632
; 0633
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 20
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (2)
; 0634 routine DTRTIM (DB, MODF) : MCB_DB_MOD novalue =
; 0635
; 0636 !++
; 0637 ! FUNCTIONAL DESCRIPTION:
; 0638 !
; 0639 !
; 0640 ! FORMAL PARAMETERS:
; 0641 ! None
; 0642 !
; 0643 ! IMPLICIT INPUTS:
; 0644 ! None
; 0645 !
; 0646 ! IMPLICIT OUTPUTS:
; 0647 ! None
; 0648 !
; 0649 ! ROUTINE VALUE:
; 0650 ! COMPLETION CODES:
; 0651 ! None
; 0652 !
; 0653 ! SIDE EFFECTS:
; 0654 ! None
; 0655 !--
; 0656
; 0657 begin
; 0658
; 0659 map
; 0660 DB : ref block field (D_FIELDS);
; 0661
; 0662 0
; 0663 end; !of routine DTRTIM
000000 .PSECT ......, D
000000 016062 HEADER: .RAD50 /DTR/
000002 000403 .WORD 403
000004 000000 .WORD 0
000006 000000 .WORD 0
000010 000000 .WORD 0
000012 000036' .WORD P.AAC
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
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 21
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (2)
000036 .PSECT $PLIT$, RO , D
000036 000000G P.AAC: .WORD $DSPCR
000040 000000G .WORD $DSPCR
000042 000000G .WORD $DSPCR
000044 000000G .WORD $DSPCR
000046 000000G .WORD $DSPCR
000050 000014' .WORD DTRTIM
000052 000006' .WORD SCXCP
000054 000000' .WORD SCRCP
000056 000000G .WORD $DSPCR
000060 000000G .WORD $DSPCR
.GLOBL .DSPCR, MCB$V0, MCB$V1
.SBTTL DTRTIM
000014 .PSECT $CODE$, RO
000000 000207 DTRTIM: RTS PC ; 0634
; Routine Size: 1 word, Routine Base: $CODE$ + 0014
; Maximum stack depth per invocation: 0 words
; 0664
; 0665
; 0666
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 22
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (3)
; 0667 routine RCV_ABO (DB, CCB) : MCB_DB_CCB novalue =
; 0668
; 0669 !++
; 0670 ! FUNCTIONAL DESCRIPTION:
; 0671 !
; 0672 !
; 0673 ! FORMAL PARAMETERS:
; 0674 ! None
; 0675 !
; 0676 ! IMPLICIT INPUTS:
; 0677 ! None
; 0678 !
; 0679 ! IMPLICIT OUTPUTS:
; 0680 ! None
; 0681 !
; 0682 ! ROUTINE VALUE:
; 0683 ! COMPLETION CODES:
; 0684 ! None
; 0685 !
; 0686 ! SIDE EFFECTS:
; 0687 ! None
; 0688 !--
; 0689
; 0690 begin
; 0691
; 0692 map
; 0693 CCB : ref block field (C_FIELDS),
; 0694 DB : ref block field (D_FIELDS);
; 0695
; 0696 bind
; 0697 LINK = blockvector [.DB [D_ADDR], .CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] - 1, 0, 0, 0, 0; 0, L_LENGTH]
; 0698 : block field (L_FIELDS);
; 0699
; 0700 if .CCB [C_STS] neq S_SSUC
; 0701 then
; 0702 SIGNAL (DTR$_NO_ABORT, .CCB, .CCB [C_STS]);
; 0703
; 0704 LINK [ls_dip] = false;
; 0705 LINK [LS_ACTIVE] = FALSE;
; 0706 CCBRT$ (.CCB);
; 0707 end; !of routine RCV_ABO
.GLOBL $CCBRT
.SBTTL RCV.ABO
000000 010401 RCV.ABO:MOV R4,R1 ; *,CCB 0667
000002 005004 CLR R4 ; 0697
000004 156104 000024 BISB 24(R1),R4 ; *(CCB),*
000010 072427 000005 ASH #5,R4
000014 066504 000004 ADD 4(R5),R4 ; *(DB),*
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 23
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (3)
000020 162704 000040 SUB #40,R4 ; 0690
000024 026127 000014 000001 CMP 14(R1),#1 ; *(CCB),* 0700
000032 001413 BEQ 1$
000034 016146 000014 MOV 14(R1),-(SP) ; *(CCB),* 0702
000040 010146 MOV R1,-(SP) ; CCB,*
000042 012746 100053 MOV #-77725,-(SP)
000046 012746 000003 MOV #3,-(SP)
000052 004767 000000G JSR PC,$IGNAL
000056 062706 000010 ADD #10,SP
000062 042714 004400 1$: BIC #4400,(R4) ; 0705
000066 010104 MOV R1,R4 ; CCB,* 0706
000070 004767 000000G JSR PC,$CCBRT
000074 000207 RTS PC ; 0667
; Routine Size: 31 words, Routine Base: $CODE$ + 0016
; Maximum stack depth per invocation: 5 words
; 0708
; 0709
; 0710
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 24
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (4)
; 0711 routine RCV_ACC (DB, CCB) : MCB_DB_CCB novalue =
; 0712
; 0713 !++
; 0714 ! FUNCTIONAL DESCRIPTION:
; 0715 !
; 0716 !
; 0717 ! FORMAL PARAMETERS:
; 0718 ! None
; 0719 !
; 0720 ! IMPLICIT INPUTS:
; 0721 ! None
; 0722 !
; 0723 ! IMPLICIT OUTPUTS:
; 0724 ! None
; 0725 !
; 0726 ! ROUTINE VALUE:
; 0727 ! COMPLETION CODES:
; 0728 ! None
; 0729 !
; 0730 ! SIDE EFFECTS:
; 0731 ! None
; 0732 !--
; 0733
; 0734 begin
; 0735
; 0736 map
; 0737 CCB : ref block field (C_FIELDS),
; 0738 DB : ref block field (D_FIELDS);
; 0739
; 0740 bind
; 0741 LINK = blockvector [.DB [D_ADDR], .CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] - 1, 0, 0, 0, 0; 0, L_LENGTH]
; 0742 : block field (L_FIELDS);
; 0743
; 0744 if .CCB [C_STS] neq S_SSUC
; 0745 then
; 0746 begin
; 0747 SIGNAL (DTR$_NO_ACCEPT, .CCB, .CCB [C_STS]);
; 0748 LINK[ LS_active] = false;
; 0749 return CCBRT$ (.CCB);
; 0750 end;
; 0751
; 0752 case .LINK [L_TEST] from 0 to 3 of
; 0753 set
; 0754 [0] :
; 0755 CCBRT$ (.CCB);
; 0756
; 0757 [1] :
; 0758
; 0759 selectone .LINK [L_FLOW_TYPE] of
; 0760 set
; 0761 [0] :
; 0762 CCBRT$ (.CCB);
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 25
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (4)
; 0763
; 0764 [1] :
; 0765 begin
; 0766 CCB [C_BIAS] = CCB [C_ADDR] = CCB [C_CNT] = 0;
; 0767 SND_DRQ (.DB, .CCB, .CCB [C_PIX], .CCB [C_LIX], .CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)], .LINK [L_FLOW_COUNT])
; 0768 end;
; 0769
; 0770 [2] :
; 0771 CCBRT$ (.CCB);
; 0772 tes;
; 0773
; 0774 [2] :
; 0775 begin
; 0776 CCB [C_BIAS] = 0;
; 0777 CCB [C_ADDR] = ch$ptr (LINK [L_DISCONNECT_DATA]);
; 0778 CCB [C_CNT] = .LINK [L_DISCONNECT_LENGTH];
; 0779
; 0780 if .LINK [$SUB_FIELD (L_SUB_TEST, 0, 0, 1, 0)] eql 0
; 0781 then
; 0782 SND_DIS (.DB, .CCB, .CCB [C_PIX], .LINK [L_LLA], .LINK [L_ULA])
; 0783 else
; 0784 SND_ABO (.DB, .CCB, .CCB [C_PIX], .LINK [L_LLA], .LINK [L_ULA]);
; 0785
; 0786 end;
; 0787
; 0788 [inrange] :
; 0789 CCBRT$ (.CCB);
; 0790 tes;
; 0791
; 0792 end; !of routine RCV_ACC
.SBTTL RCV.ACC
000000 010401 RCV.ACC:MOV R4,R1 ; *,CCB 0711
000002 005004 CLR R4 ; 0741
000004 156104 000024 BISB 24(R1),R4 ; *(CCB),*
000010 072427 000005 ASH #5,R4
000014 066504 000004 ADD 4(R5),R4 ; *(DB),*
000020 012703 177740 MOV #-40,R3 ; 0734
000024 060403 ADD R4,R3
000026 026127 000014 000001 CMP 14(R1),#1 ; *(CCB),* 0744
000034 001417 BEQ 1$
000036 016146 000014 MOV 14(R1),-(SP) ; *(CCB),* 0747
000042 010146 MOV R1,-(SP) ; CCB,*
000044 012746 100063 MOV #-77715,-(SP)
000050 012746 000003 MOV #3,-(SP)
000054 004767 000000G JSR PC,$IGNAL
000060 042713 004000 BIC #4000,(R3) ; 0748
000064 010104 MOV R1,R4 ; CCB,* 0749
000066 004767 000000G JSR PC,$CCBRT
000072 000443 BR 4$ ; 0744
000074 012702 000002 1$: MOV #2,R2 ; 0752
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 26
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (4)
000100 060302 ADD R3,R2
000102 116200 000001 MOVB 1(R2),R0
000106 006300 ASL R0
000110 066007 000062' ADD P.AAD(R0),PC ; Case dispatch
000114 000507 2$: BR 9$ ; 0755
000116 116300 000005 3$: MOVB 5(R3),R0 ; 0759
000122 001504 BEQ 9$ ; 0762
000124 020027 000001 CMP R0,#1 ; 0759
000130 001027 BNE 5$
000132 005061 000022 CLR 22(R1) ; *(CCB) 0766
000136 005061 000020 CLR 20(R1) ; *(CCB)
000142 005061 000016 CLR 16(R1) ; *(CCB)
000146 005046 CLR -(SP) ; 0767
000150 116116 000011 MOVB 11(R1),(SP) ; *(CCB),*
000154 005046 CLR -(SP)
000156 116116 000010 MOVB 10(R1),(SP) ; *(CCB),*
000162 005046 CLR -(SP)
000164 116116 000024 MOVB 24(R1),(SP) ; *(CCB),*
000170 016346 000006 MOV 6(R3),-(SP)
000174 010104 MOV R1,R4 ; CCB,*
000176 004767 000000V JSR PC,SND.DRQ
000202 062706 000010 4$: ADD #10,SP ; 0765
000206 000207 RTS PC ; 0759
000210 020027 000002 5$: CMP R0,#2
000214 001052 BNE 10$
000216 000446 BR 9$ ; 0771
000220 005061 000016 6$: CLR 16(R1) ; *(CCB) 0776
000224 010361 000020 MOV R3,20(R1) ; *,*(CCB) 0777
000230 062761 000014 000020 ADD #14,20(R1) ; *,*(CCB)
000236 016361 000012 000022 MOV 12(R3),22(R1) ; *,*(CCB) 0778
000244 132763 000001 000004 BITB #1,4(R3) ; 0780
000252 001013 BNE 7$
000254 005046 CLR -(SP) ; 0782
000256 116116 000011 MOVB 11(R1),(SP) ; *(CCB),*
000262 005046 CLR -(SP)
000264 111216 MOVB (R2),(SP)
000266 111300 MOVB (R3),R0
000270 010046 MOV R0,-(SP)
000272 010104 MOV R1,R4 ; CCB,*
000274 004767 000000V JSR PC,SND.DIS
000300 000412 BR 8$ ; 0780
000302 005046 7$: CLR -(SP) ; 0784
000304 116116 000011 MOVB 11(R1),(SP) ; *(CCB),*
000310 005046 CLR -(SP)
000312 111216 MOVB (R2),(SP)
000314 111300 MOVB (R3),R0
000316 010046 MOV R0,-(SP)
000320 010104 MOV R1,R4 ; CCB,*
000322 004767 000000V JSR PC,SND.ABO
000326 062706 000006 8$: ADD #6,SP ; 0775
000332 000207 RTS PC ; 0752
000334 010104 9$: MOV R1,R4 ; CCB,* 0789
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 27
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (4)
000336 004767 000000G JSR PC,$CCBRT
000342 000207 10$: RTS PC ; 0711
; Routine Size: 114 words, Routine Base: $CODE$ + 0114
; Maximum stack depth per invocation: 5 words
000062 .PSECT $PLIT$, RO , D
P.AAD: ; CASE Table for RCV.ACC+0110 0752
000062 000220 .WORD 220 ; [9$]
000064 000002 .WORD 2 ; [3$]
000066 000104 .WORD 104 ; [6$]
000070 000220 .WORD 220 ; [9$]
; 0793
; 0794
; 0795
; 0796
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 28
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (5)
; 0797 routine RCV_CNR (DB, CCB) : MCB_DB_CCB novalue =
; 0798
; 0799 !++
; 0800 ! FUNCTIONAL DESCRIPTION:
; 0801 !
; 0802 !
; 0803 ! FORMAL PARAMETERS:
; 0804 ! None
; 0805 !
; 0806 ! IMPLICIT INPUTS:
; 0807 ! None
; 0808 !
; 0809 ! IMPLICIT OUTPUTS:
; 0810 ! None
; 0811 !
; 0812 ! ROUTINE VALUE:
; 0813 ! COMPLETION CODES:
; 0814 ! None
; 0815 !
; 0816 ! SIDE EFFECTS:
; 0817 ! None
; 0818 !--
; 0819
; 0820 begin
; 0821
; 0822 map
; 0823 CCB : ref block field (C_FIELDS),
; 0824 DB : ref block field (D_FIELDS);
; 0825
; 0826 local
; 0827 LINK : ref block field (L_FIELDS),
; 0828 SC_PIX;
; 0829
; 0830 SC_PIX = .CCB [C_PIX];
; 0831 LINK = .DB [D_ADDR];
; 0832
; 0833 while .LINK [LS_ACTIVE] do
; 0834 begin
; 0835
; 0836 if .LINK [L_ULA] geq .DB [D_LINKS]
; 0837 then
; 0838 begin
; 0839 CCB [C_STS] = S_ERES %(no resources)%;
; 0840 CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] = .CCB [C_LIX];
; 0841 CCB [C_FNC] = FC_RCE;
; 0842 LLCRS$ (.CCB);
; 0843 return;
; 0844 end;
; 0845
; 0846 LINK = vector [.LINK, L_LENGTH];
; 0847 end;
; 0848
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 29
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (5)
; 0849 begin
; 0850
; 0851 local
; 0852 PTR;
; 0853
; 0854 LINK [L_LLA] = .CCB [C_LIX];
; 0855 MAP$ (.CCB [C_BIAS]);
; 0856 PTR = ch$ptr (block [.CCB [C_ADDR], CB_OPTD],, 8);
; 0857 LINK [L_TEST] = ch$rchar_a (PTR);
; 0858 LINK [LS_PROPT] = .LINK [$SUB_FIELD (L_TEST, 0, 7, 1, 1)];
; 0859 LINK [$SUB_FIELD (L_TEST, 0, 7, 1, 1)] = 0;
; 0860
; 0861 case .LINK [L_TEST] from 0 to 3 of
; 0862 set
; 0863 [0] :
; 0864 begin
; 0865
; 0866 case (LINK [L_SUB_TEST] =
; 0867 begin
; 0868 local char;
; 0869 char = ch$rchar_a (PTR);
; 0870 .char
; 0871 end) from 0 to 5 of
; 0872
; 0873 set
; 0874 [0, 1] :
; 0875 LINK [L_DISCONNECT_LENGTH] = 0;
; 0876
; 0877 [2, 3] :
; 0878 ch$move ((LINK [L_DISCONNECT_LENGTH] = 16),
; 0879 ch$ptr (uplit ('ABCDEFGHIJKLMNOP')),
; 0880 ch$ptr (LINK [L_DISCONNECT_DATA]));
; 0881
; 0882 [4, 5] :
; 0883 ch$move ((LINK [L_DISCONNECT_LENGTH] = .block [.CCB [C_ADDR], CB_OPDL]),
; 0884 ch$ptr (block [.CCB [C_ADDR], CB_OPTD]),
; 0885 ch$ptr (LINK [L_DISCONNECT_DATA]));
; 0886
; 0887 [outrange] :
; 0888 begin
; 0889 CCB [C_STS] = S_ERBO %(invalid test sub-type)%;
; 0890 CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] = .LINK [L_ULA];
; 0891 CCB [C_FNC] = FC_RCE;
; 0892 LLCRS$ (.CCB);
; 0893 return;
; 0894 end;
; 0895
; 0896 tes;
; 0897
; 0898 begin
; 0899
; 0900 local
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 30
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (5)
; 0901 ACC_CCB : ref block field (C_FIELDS);
; 0902
; 0903 if not CCBGT$ (ACC_CCB)
; 0904 then
; 0905 begin
; 0906 CCB [C_STS] = S_ERES %(no resources)%;
; 0907 CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] = .LINK [L_ULA];
; 0908 CCB [C_FNC] = FC_RCE;
; 0909 LLCRS$ (.CCB);
; 0910 return;
; 0911 end;
; 0912
; 0913 CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] = .LINK [L_ULA];
; 0914 CCB [C_FNC] = FC_RCE;
; 0915 LLCRS$ (.CCB);
; 0916
; 0917 ACC_CCB [C_BIAS] = 0;
; 0918 ACC_CCB [C_ADDR] = ch$ptr (LINK [L_DISCONNECT_DATA]);
; 0919 ACC_CCB [C_CNT] = .LINK [L_DISCONNECT_LENGTH];
; 0920
; 0921 if .LINK [$SUB_FIELD (L_SUB_TEST, 0, 0, 1, 0)] eql 0
; 0922 then
; 0923 SND_REJ (.DB, .ACC_CCB, .SC_PIX, .LINK [L_LLA], .LINK [L_ULA])
; 0924 else
; 0925 SND_ACC (.DB, .ACC_CCB, .SC_PIX, .LINK [L_LLA], .LINK [L_ULA], S$PMSG);
; 0926
; 0927 end;
; 0928 LINK [LS_ACTIVE] = TRUE;
; 0929 end;
; 0930
; 0931 [1] :
; 0932 begin
; 0933
; 0934 local
; 0935 CHAR;
; 0936
; 0937 selectone (CHAR = ch$rchar_a (PTR)) of
; 0938 set
; 0939 [0, 1, 2, 3] :
; 0940 LINK [L_SUB_TEST] = .CHAR;
; 0941
; 0942 [otherwise] :
; 0943 begin
; 0944 CCB [C_STS] = S_ERBO %(invalid data type)%;
; 0945 CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] = .LINK [L_ULA];
; 0946 CCB [C_FNC] = FC_RCE;
; 0947 LLCRS$ (.CCB);
; 0948 return;
; 0949 end;
; 0950 tes;
; 0951
; 0952 selectone (CHAR = ch$rchar_a (PTR)) of
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 31
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (5)
; 0953 set
; 0954 [1] :
; 0955 LINK [L_FLOW_TYPE] = .CHAR;
; 0956
; 0957 [0, 2] :
; 0958 begin
; 0959 CCB [C_STS] = S_ERBO %(unsupported flow type)%;
; 0960 CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] = .LINK [L_ULA];
; 0961 CCB [C_FNC] = FC_RCE;
; 0962 LLCRS$ (.CCB);
; 0963 return;
; 0964 end;
; 0965
; 0966 [otherwise] :
; 0967 begin
; 0968 CCB [C_STS] = S_ERBO %(invalid flow control option)%;
; 0969 CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] = .LINK [L_ULA];
; 0970 CCB [C_FNC] = FC_RCE;
; 0971 LLCRS$ (.CCB);
; 0972 return;
; 0973 end;
; 0974 tes;
; 0975
; 0976 selectone (CHAR = ch$rchar_a (PTR)) of
; 0977 set
; 0978 [1 to 127] :
; 0979 LINK [L_FLOW_COUNT] = .CHAR;
; 0980
; 0981 [otherwise] :
; 0982 begin
; 0983 CCB [C_STS] = S_ERBO %(invalid flow control value)%;
; 0984 CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] = .LINK [L_ULA];
; 0985 CCB [C_FNC] = FC_RCE;
; 0986 LLCRS$ (.CCB);
; 0987 return;
; 0988 end;
; 0989 tes;
; 0990
; 0991 selectone (CHAR = ch$rchar_a (PTR)) of
; 0992 set
; 0993 [0] :
; 0994 LINK [L_NAK_COUNT] = .CHAR;
; 0995
; 0996 [1 to 128] :
; 0997 begin
; 0998 CCB [C_STS] = S_ERBO %(unsupported nak frequency)%;
; 0999 CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] = .LINK [L_ULA];
; 1000 CCB [C_FNC] = FC_RCE;
; 1001 LLCRS$ (.CCB);
; 1002 return;
; 1003 end;
; 1004
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 32
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (5)
; 1005 [otherwise] :
; 1006 begin
; 1007 CCB [C_STS] = S_ERBO %(invalid nak frequency)%;
; 1008 CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] = .LINK [L_ULA];
; 1009 CCB [C_FNC] = FC_RCE;
; 1010 LLCRS$ (.CCB);
; 1011 return;
; 1012 end;
; 1013 tes;
; 1014
; 1015 selectone (CHAR = ch$rchar_a (PTR)) of
; 1016 set
; 1017 [0] :
; 1018 LINK [L_BPC_COUNT] = .CHAR;
; 1019
; 1020 [1 to 128] :
; 1021 begin
; 1022 CCB [C_STS] = S_ERBO %(unsupported back-pressure frequency)%;
; 1023 CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] = .LINK [L_ULA];
; 1024 CCB [C_FNC] = FC_RCE;
; 1025 LLCRS$ (.CCB);
; 1026 return;
; 1027 end;
; 1028
; 1029 [otherwise] :
; 1030 begin
; 1031 CCB [C_STS] = S_ERBO %(invalid back-pressure frequency)%;
; 1032 CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] = .LINK [L_ULA];
; 1033 CCB [C_FNC] = FC_RCE;
; 1034 LLCRS$ (.CCB);
; 1035 return;
; 1036 end;
; 1037 tes;
; 1038
; 1039 LINK [$SUB_FIELD (L_MESSAGE_SIZE, 0, 0, 8, 0)] = ch$rchar_a (PTR);
; 1040 LINK [$SUB_FIELD (L_MESSAGE_SIZE, 0, 8, 8, 0)] = ch$rchar_a (PTR);
; 1041
; 1042 incra ADDRESS from LINK [L_SEND_NUMBER] to LINK [L_PATTERN_ROUTINE] by %upval do .ADDRESS = 0;
; 1043
; 1044 begin
; 1045
; 1046 local
; 1047 ACC_CCB : ref block field (C_FIELDS);
; 1048
; 1049 bind
; 1050 FLOW = uplit (0, S$PSEG, S$PMSG) : vector;
; 1051
; 1052 if not CCBGT$ (ACC_CCB)
; 1053 then
; 1054 begin
; 1055 CCB [C_STS] = S_ERES %(no resources)%;
; 1056 CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] = .LINK [L_ULA];
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 33
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (5)
; 1057 CCB [C_FNC] = FC_RCE;
; 1058 LLCRS$ (.CCB);
; 1059 return;
; 1060 end;
; 1061
; 1062 CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] = .LINK [L_ULA];
; 1063 CCB [C_FNC] = FC_RCE;
; 1064 LLCRS$ (.CCB);
; 1065 ACC_CCB [C_BIAS] = ACC_CCB [C_ADDR] = ACC_CCB [C_CNT] = 0;
; 1066 SND_ACC (.DB, .ACC_CCB, .SC_PIX, .LINK [L_LLA], .LINK [L_ULA], .FLOW [.LINK [L_FLOW_TYPE]]);
; 1067 end;
; 1068 LINK [LS_ACTIVE] = TRUE;
; 1069 end;
; 1070
; 1071 [2] :
; 1072 begin
; 1073
; 1074 case (LINK [L_SUB_TEST] =
; 1075 begin
; 1076 local char;
; 1077 char = ch$rchar_a (PTR);
; 1078 .char
; 1079 end) from 0 to 5 of
; 1080
; 1081 set
; 1082 [0, 1] :
; 1083 LINK [L_DISCONNECT_LENGTH] = 0;
; 1084
; 1085 [2, 3] :
; 1086 ch$move ((LINK [L_DISCONNECT_LENGTH] = 16),
; 1087 ch$ptr (uplit ('ABCDEFGHIJKLMNOP')),
; 1088 ch$ptr (LINK [L_DISCONNECT_DATA]));
; 1089
; 1090 [4, 5] :
; 1091 ch$move ((LINK [L_DISCONNECT_LENGTH] = .block [.CCB [C_ADDR], CB_OPDL]),
; 1092 ch$ptr (block [.CCB [C_ADDR], CB_OPTD]),
; 1093 ch$ptr (LINK [L_DISCONNECT_DATA]));
; 1094
; 1095 [outrange] :
; 1096 begin
; 1097 CCB [C_STS] = S_ERBO %(invalid test sub-type)%;
; 1098 CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] = .LINK [L_ULA];
; 1099 CCB [C_FNC] = FC_RCE;
; 1100 LLCRS$ (.CCB);
; 1101 return;
; 1102 end;
; 1103
; 1104 tes;
; 1105
; 1106 begin
; 1107
; 1108 local
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 34
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (5)
; 1109 ACC_CCB : ref block field (C_FIELDS);
; 1110
; 1111 if not CCBGT$ (ACC_CCB)
; 1112 then
; 1113 begin
; 1114 CCB [C_STS] = S_ERES %(no resources)%;
; 1115 CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] = .LINK [L_ULA];
; 1116 CCB [C_FNC] = FC_RCE;
; 1117 LLCRS$ (.CCB);
; 1118 return;
; 1119 end;
; 1120
; 1121 CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] = .LINK [L_ULA];
; 1122 CCB [C_FNC] = FC_RCE;
; 1123 LLCRS$ (.CCB);
; 1124
; 1125 ACC_CCB [C_BIAS] = ACC_CCB [C_ADDR] = ACC_CCB [C_CNT] = 0;
; 1126 SND_ACC (.DB, .ACC_CCB, .SC_PIX, .LINK [L_LLA], .LINK [L_ULA], S$PMSG);
; 1127 end;
; 1128 LINK [LS_ACTIVE] = TRUE;
; 1129 end;
; 1130
; 1131 [3] :
; 1132 begin
; 1133
; 1134 local
; 1135 CHAR;
; 1136
; 1137 selectone (CHAR = ch$rchar_a (PTR)) of
; 1138 set
; 1139 [0, 1, 2, 3] :
; 1140 LINK [L_SUB_TEST] = .CHAR;
; 1141
; 1142 [otherwise] :
; 1143 begin
; 1144 CCB [C_STS] = S_ERBO %(invalid data type)%;
; 1145 CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] = .LINK [L_ULA];
; 1146 CCB [C_FNC] = FC_RCE;
; 1147 LLCRS$ (.CCB);
; 1148 return;
; 1149 end;
; 1150 tes;
; 1151
; 1152 selectone (CHAR = ch$rchar_a (PTR)) of
; 1153 set
; 1154 [1] :
; 1155 LINK [L_FLOW_COUNT] = .CHAR;
; 1156
; 1157 [otherwise] :
; 1158 begin
; 1159 CCB [C_STS] = S_ERBO %(invalid flow control value)%;
; 1160 CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] = .LINK [L_ULA];
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 35
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (5)
; 1161 CCB [C_FNC] = FC_RCE;
; 1162 LLCRS$ (.CCB);
; 1163 return;
; 1164 end;
; 1165 tes;
; 1166
; 1167 incra ADDRESS from LINK [L_SEND_NUMBER] to LINK [L_PATTERN_ROUTINE] by %upval do .ADDRESS = 0;
; 1168
; 1169 begin
; 1170
; 1171 local
; 1172 ACC_CCB : ref block field (C_FIELDS);
; 1173
; 1174 if not CCBGT$ (ACC_CCB)
; 1175 then
; 1176 begin
; 1177 CCB [C_STS] = S_ERES %(no resources)%;
; 1178 CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] = .LINK [L_ULA];
; 1179 CCB [C_FNC] = FC_RCE;
; 1180 LLCRS$ (.CCB);
; 1181 return;
; 1182 end;
; 1183
; 1184 CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] = .LINK [L_ULA];
; 1185 CCB [C_FNC] = FC_RCE;
; 1186 LLCRS$ (.CCB);
; 1187 ACC_CCB [C_BIAS] = ACC_CCB [C_ADDR] = ACC_CCB [C_CNT] = 0;
; 1188 SND_ACC (.DB, .ACC_CCB, .SC_PIX, .LINK [L_LLA], .LINK [L_ULA], S$PSEG);
; 1189 end;
; 1190 LINK [LS_ACTIVE] = TRUE;
; 1191 end;
; 1192
; 1193 [inrange] :
; 1194 begin
; 1195 SIGNAL (DTR$_TEST_UNSUPPORTED, .LINK [L_TEST]);
; 1196 CCB [C_STS] = S_ERBO %(unsupported test type)%;
; 1197 CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] = .LINK [L_ULA];
; 1198 CCB [C_FNC] = FC_RCE;
; 1199 LLCRS$ (.CCB);
; 1200 return;
; 1201 end;
; 1202
; 1203 [outrange] :
; 1204 begin
; 1205 SIGNAL (DTR$_TEST_INVALID, .LINK [L_TEST]);
; 1206 CCB [C_STS] = S_ERBO %(invalid test type)%;
; 1207 CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] = .LINK [L_ULA];
; 1208 CCB [C_FNC] = FC_RCE;
; 1209 LLCRS$ (.CCB);
; 1210 return;
; 1211 end;
; 1212
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 36
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (5)
; 1213 tes;
; 1214
; 1215 end;
; 1216 end; !of routine RCV_CNR
000072 101 102 103 P.AAG: .ASCII /ABC/
000075 104 105 106 .ASCII /DEF/
000100 107 110 111 .ASCII /GHI/
000103 112 113 114 .ASCII /JKL/
000106 115 116 117 .ASCII /MNO/
000111 120 .ASCII /P/
000112 000000 P.AAH: .WORD 0
000114 000001 .WORD 1
000116 000002 .WORD 2
000120 101 102 103 P.AAJ: .ASCII /ABC/
000123 104 105 106 .ASCII /DEF/
000126 107 110 111 .ASCII /GHI/
000131 112 113 114 .ASCII /JKL/
000134 115 116 117 .ASCII /MNO/
000137 120 .ASCII /P/
.GLOBL $SCHED, KISAR6, $CCBGT
000112' FLOW= P.AAH
.SBTTL RCV.CNR
000460 .PSECT $CODE$, RO
000000 162706 000012 RCV.CNR:SUB #12,SP ; 0797
000004 010403 MOV R4,R3 ; *,CCB
000006 010546 MOV R5,-(SP)
000010 012700 000010 MOV #10,R0 ; 0830
000014 060300 ADD R3,R0 ; CCB,*
000016 116066 000001 000012 MOVB 1(R0),12(SP) ; *,SC.PIX
000024 105066 000013 CLRB 13(SP) ; SC.PIX
000030 010501 MOV R5,R1 ; 0831
000032 016166 000004 000010 MOV 4(R1),10(SP) ; *,LINK
000040 032776 004000 000010 1$: BIT #4000,@10(SP) ; *,LINK 0833
000046 001421 BEQ 3$
000050 117601 000010 MOVB @10(SP),R1 ; LINK,* 0836
000054 011602 MOV (SP),R2
000056 020162 000002 CMP R1,2(R2)
000062 002407 BLT 2$
000064 012763 177777 000014 MOV #-1,14(R3) ; *,*(CCB) 0839
000072 111063 000024 MOVB (R0),24(R3) ; *,*(CCB) 0840
000076 000167 001460 JMP 36$ ; 0841
000102 062766 000040 000010 2$: ADD #40,10(SP) ; *,LINK 0846
000110 000753 BR 1$ ; 0833
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 37
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (5)
000112 012701 000002 3$: MOV #2,R1 ; 0854
000116 066601 000010 ADD 10(SP),R1 ; LINK,*
000122 010166 000006 MOV R1,6(SP)
000126 111011 MOVB (R0),(R1)
000130 016367 000016 000000G MOV 16(R3),KISAR6 ; *(CCB),* 0855
000136 016301 000020 MOV 20(R3),R1 ; *(CCB),* 0856
000142 010105 MOV R1,R5
000144 062705 000136 ADD #136,R5
000150 010502 MOV R5,R2 ; *,PTR
000152 017646 000006 MOV @6(SP),-(SP) ; 0857
000156 112266 000001 MOVB (R2)+,1(SP) ; PTR,*
000162 012676 000006 MOV (SP)+,@6(SP)
000166 042776 002000 000010 BIC #2000,@10(SP) ; *,LINK 0858
000174 005776 000006 TST @6(SP)
000200 100003 BPL 4$
000202 052776 002000 000010 BIS #2000,@10(SP) ; *,LINK
000210 042776 100000 000006 4$: BIC #100000,@6(SP) ; 0859
000216 012766 000024 000004 MOV #24,4(SP) ; 1207
000224 060366 000004 ADD R3,4(SP) ; CCB,*
000230 012766 000012 000002 MOV #12,2(SP) ; 1208
000236 060366 000002 ADD R3,2(SP) ; CCB,*
000242 017600 000006 MOV @6(SP),R0 ; 0861
000246 000300 SWAB R0
000250 110000 MOVB R0,R0
000252 020027 000003 CMP R0,#3
000256 101003 BHI 5$
000260 006300 ASL R0
000262 066007 000140' ADD P.AAE(R0),PC ; Case dispatch
000266 017600 000006 5$: MOV @6(SP),R0 ; 1205
000272 000300 SWAB R0
000274 110000 MOVB R0,R0
000276 010046 MOV R0,-(SP)
000300 012746 100033 MOV #-77745,-(SP)
000304 012746 000002 MOV #2,-(SP)
000310 004767 000000G JSR PC,$IGNAL
000314 012763 177754 000014 MOV #-24,14(R3) ; *,*(CCB) 1206
000322 117676 000016 000012 MOVB @16(SP),@12(SP) ; LINK,* 1207
000330 112776 000004 000010 MOVB #4,@10(SP) ; 1208
000336 010304 MOV R3,R4 ; CCB,* 1209
000340 004767 000000G JSR PC,$SCHED
000344 000553 BR 15$ ; 0861
000346 005000 6$: CLR R0 ; CHAR 0869
000350 152200 BISB (R2)+,R0 ; PTR,CHAR
000352 016604 000010 MOV 10(SP),R4 ; LINK,* 0866
000356 110064 000004 MOVB R0,4(R4) ; CHAR,*(LINK)
000362 020027 000005 CMP R0,#5
000366 101003 BHI 7$
000370 006300 ASL R0
000372 066007 000150' ADD P.AAF(R0),PC ; Case dispatch
000376 000167 001064 7$: JMP 30$ ; 0889
000402 016600 000010 8$: MOV 10(SP),R0 ; LINK,* 0875
000406 005060 000012 CLR 12(R0) ; *(LINK)
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 38
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (5)
000412 000431 BR 12$ ; 0866
000414 012746 000020 9$: MOV #20,-(SP) ; 0878
000420 016600 000012 MOV 12(SP),R0 ; LINK,*
000424 011660 000012 MOV (SP),12(R0) ; *,*(LINK)
000430 012746 000072' MOV #P.AAG,-(SP) ; 0880
000434 000407 BR 11$
000436 016146 000134 10$: MOV 134(R1),-(SP) ; 0883
000442 016600 000012 MOV 12(SP),R0 ; LINK,*
000446 011660 000012 MOV (SP),12(R0) ; *,*(LINK)
000452 010546 MOV R5,-(SP) ; 0885
000454 012700 000014 11$: MOV #14,R0
000460 066600 000014 ADD 14(SP),R0 ; LINK,*
000464 010046 MOV R0,-(SP)
000466 004767 000000G JSR PC,BL$MOV
000472 062706 000006 ADD #6,SP
000476 004767 000000G 12$: JSR PC,$CCBGT ; 0903
000502 103574 BCS 19$
000504 010401 MOV R4,R1 ; $MCB$R4,ACC.CCB
000506 117676 000010 000004 MOVB @10(SP),@4(SP) ; LINK,* 0913
000514 112776 000004 000002 MOVB #4,@2(SP) ; 0914
000522 010304 MOV R3,R4 ; CCB,* 0915
000524 004767 000000G JSR PC,$SCHED
000530 005061 000016 CLR 16(R1) ; *(ACC.CCB) 0917
000534 012700 000014 MOV #14,R0 ; 0918
000540 066600 000010 ADD 10(SP),R0 ; LINK,*
000544 010061 000020 MOV R0,20(R1) ; *,*(ACC.CCB)
000550 016600 000010 MOV 10(SP),R0 ; LINK,* 0919
000554 016061 000012 000022 MOV 12(R0),22(R1) ; *(LINK),*(ACC.CCB)
000562 010004 MOV R0,R4 ; LINK,* 0921
000564 132764 000001 000004 BITB #1,4(R4) ; *,*(LINK)
000572 001015 BNE 13$
000574 016646 000012 MOV 12(SP),-(SP) ; SC.PIX,* 0923
000600 005046 CLR -(SP)
000602 117616 000012 MOVB @12(SP),(SP)
000606 111000 MOVB (R0),R0 ; LINK,*
000610 010046 MOV R0,-(SP)
000612 016605 000006 MOV 6(SP),R5
000616 010104 MOV R1,R4 ; ACC.CCB,*
000620 004767 000000V JSR PC,SND.REJ
000624 000420 BR 14$ ; 0921
000626 016646 000012 13$: MOV 12(SP),-(SP) ; SC.PIX,* 0925
000632 005046 CLR -(SP)
000634 117616 000012 MOVB @12(SP),(SP)
000640 117600 000014 MOVB @14(SP),R0 ; LINK,*
000644 010046 MOV R0,-(SP)
000646 012746 000002 MOV #2,-(SP)
000652 016605 000010 MOV 10(SP),R5
000656 010104 MOV R1,R4 ; ACC.CCB,*
000660 004767 000000V JSR PC,SND.ACC
000664 005726 TST (SP)+
000666 052776 004000 000016 14$: BIS #4000,@16(SP) ; *,LINK 0928
000674 062706 000006 15$: ADD #6,SP ; 0864
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 39
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (5)
000700 000167 001002 JMP 39$ ; 0861
000704 005000 16$: CLR R0 ; CHAR 0937
000706 152200 BISB (R2)+,R0 ; PTR,CHAR
000710 005700 TST R0 ; CHAR
000712 002631 BLT 7$
000714 020027 000003 CMP R0,#3 ; CHAR,*
000720 003226 BGT 7$
000722 016604 000010 MOV 10(SP),R4 ; LINK,* 0940
000726 110064 000004 MOVB R0,4(R4) ; CHAR,*(LINK)
000732 005000 CLR R0 ; CHAR 0952
000734 152200 BISB (R2)+,R0 ; PTR,CHAR
000736 020027 000001 CMP R0,#1 ; CHAR,*
000742 001215 BNE 7$
000744 010401 MOV R4,R1 ; LINK,* 0955
000746 110061 000005 MOVB R0,5(R1) ; CHAR,*(LINK)
000752 005000 CLR R0 ; CHAR 0976
000754 152200 BISB (R2)+,R0 ; PTR,CHAR
000756 005700 TST R0 ; CHAR
000760 003606 BLE 7$
000762 020027 000177 CMP R0,#177 ; CHAR,*
000766 003203 BGT 7$
000770 010061 000006 MOV R0,6(R1) ; CHAR,*(LINK) 0979
000774 005000 CLR R0 ; CHAR 0991
000776 152200 BISB (R2)+,R0 ; PTR,CHAR
001000 005700 TST R0 ; CHAR
001002 001111 BNE 21$
001004 110061 000010 MOVB R0,10(R1) ; CHAR,*(LINK) 0994
001010 005000 CLR R0 ; CHAR 1015
001012 152200 BISB (R2)+,R0 ; PTR,CHAR
001014 005700 TST R0 ; CHAR
001016 001103 BNE 21$
001020 110061 000011 MOVB R0,11(R1) ; CHAR,*(LINK) 1018
001024 010100 MOV R1,R0 ; LINK,* 1039
001026 112260 000012 MOVB (R2)+,12(R0) ; PTR,*(LINK)
001032 112260 000013 MOVB (R2)+,13(R0) ; PTR,*(LINK) 1040
001036 012701 000036 MOV #36,R1 ; 1042
001042 060001 ADD R0,R1 ; LINK,*
001044 010100 MOV R1,R0
001046 010401 MOV R4,R1 ; LINK,ADDRESS
001050 062701 000016 ADD #16,R1 ; *,ADDRESS
001054 000401 BR 18$
001056 005011 17$: CLR (R1) ; ADDRESS
001060 062701 000002 18$: ADD #2,R1 ; *,ADDRESS
001064 020100 CMP R1,R0 ; ADDRESS,*
001066 101773 BLOS 17$
001070 004767 000000G JSR PC,$CCBGT ; 1052
001074 103515 19$: BCS 27$
001076 010400 MOV R4,R0 ; $MCB$R4,ACC.CCB
001100 117676 000010 000004 MOVB @10(SP),@4(SP) ; LINK,* 1062
001106 112776 000004 000002 MOVB #4,@2(SP) ; 1063
001114 010304 MOV R3,R4 ; CCB,* 1064
001116 004767 000000G JSR PC,$SCHED
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 40
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (5)
001122 005060 000022 CLR 22(R0) ; *(ACC.CCB) 1065
001126 005060 000020 CLR 20(R0) ; *(ACC.CCB)
001132 005060 000016 CLR 16(R0) ; *(ACC.CCB)
001136 016646 000012 MOV 12(SP),-(SP) ; SC.PIX,* 1066
001142 005046 CLR -(SP)
001144 117616 000012 MOVB @12(SP),(SP)
001150 117601 000014 MOVB @14(SP),R1 ; LINK,*
001154 010146 MOV R1,-(SP)
001156 016602 000016 MOV 16(SP),R2 ; LINK,*
001162 116201 000005 MOVB 5(R2),R1 ; *(LINK),*
001166 006301 ASL R1
001170 016146 000112' MOV FLOW(R1),-(SP)
001174 000510 BR 28$
001176 005000 20$: CLR R0 ; CHAR 1077
001200 152200 BISB (R2)+,R0 ; PTR,CHAR
001202 016604 000010 MOV 10(SP),R4 ; LINK,* 1074
001206 110064 000004 MOVB R0,4(R4) ; CHAR,*(LINK)
001212 020027 000005 CMP R0,#5
001216 101123 BHI 30$
001220 006300 ASL R0
001222 066007 000164' ADD P.AAI(R0),PC ; Case dispatch
001226 000517 21$: BR 30$ ; 1097
001230 016600 000010 22$: MOV 10(SP),R0 ; LINK,* 1083
001234 005060 000012 CLR 12(R0) ; *(LINK)
001240 000431 BR 26$ ; 1074
001242 012746 000020 23$: MOV #20,-(SP) ; 1086
001246 016600 000012 MOV 12(SP),R0 ; LINK,*
001252 011660 000012 MOV (SP),12(R0) ; *,*(LINK)
001256 012746 000120' MOV #P.AAJ,-(SP) ; 1088
001262 000407 BR 25$
001264 016146 000134 24$: MOV 134(R1),-(SP) ; 1091
001270 016600 000012 MOV 12(SP),R0 ; LINK,*
001274 011660 000012 MOV (SP),12(R0) ; *,*(LINK)
001300 010546 MOV R5,-(SP) ; 1093
001302 012700 000014 25$: MOV #14,R0
001306 066600 000014 ADD 14(SP),R0 ; LINK,*
001312 010046 MOV R0,-(SP)
001314 004767 000000G JSR PC,BL$MOV
001320 062706 000006 ADD #6,SP
001324 004767 000000G 26$: JSR PC,$CCBGT ; 1111
001330 103506 27$: BCS 34$
001332 010400 MOV R4,R0 ; $MCB$R4,ACC.CCB
001334 117676 000010 000004 MOVB @10(SP),@4(SP) ; LINK,* 1121
001342 112776 000004 000002 MOVB #4,@2(SP) ; 1122
001350 010304 MOV R3,R4 ; CCB,* 1123
001352 004767 000000G JSR PC,$SCHED
001356 005060 000022 CLR 22(R0) ; *(ACC.CCB) 1125
001362 005060 000020 CLR 20(R0) ; *(ACC.CCB)
001366 005060 000016 CLR 16(R0) ; *(ACC.CCB)
001372 016646 000012 MOV 12(SP),-(SP) ; SC.PIX,* 1126
001376 005046 CLR -(SP)
001400 117616 000012 MOVB @12(SP),(SP)
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 41
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (5)
001404 117601 000014 MOVB @14(SP),R1 ; LINK,*
001410 010146 MOV R1,-(SP)
001412 012746 000002 MOV #2,-(SP)
001416 000521 28$: BR 38$
001420 005000 29$: CLR R0 ; CHAR 1137
001422 152200 BISB (R2)+,R0 ; PTR,CHAR
001424 005700 TST R0 ; CHAR
001426 002417 BLT 30$
001430 020027 000003 CMP R0,#3 ; CHAR,*
001434 003014 BGT 30$
001436 016601 000010 MOV 10(SP),R1 ; LINK,* 1140
001442 110061 000004 MOVB R0,4(R1) ; CHAR,*(LINK)
001446 005000 CLR R0 ; CHAR 1152
001450 152200 BISB (R2)+,R0 ; PTR,CHAR
001452 020027 000001 CMP R0,#1 ; CHAR,*
001456 001003 BNE 30$
001460 010061 000006 MOV R0,6(R1) ; CHAR,*(LINK) 1155
001464 000404 BR 31$ ; 1152
001466 012763 177754 000014 30$: MOV #-24,14(R3) ; *,*(CCB) 1159
001474 000427 BR 35$ ; 1160
001476 012701 000036 31$: MOV #36,R1 ; 1167
001502 066601 000010 ADD 10(SP),R1 ; LINK,*
001506 010100 MOV R1,R0
001510 016601 000010 MOV 10(SP),R1 ; LINK,ADDRESS
001514 062701 000016 ADD #16,R1 ; *,ADDRESS
001520 000401 BR 33$
001522 005011 32$: CLR (R1) ; ADDRESS
001524 062701 000002 33$: ADD #2,R1 ; *,ADDRESS
001530 020100 CMP R1,R0 ; ADDRESS,*
001532 101773 BLOS 32$
001534 004767 000000G JSR PC,$CCBGT ; 1174
001540 103402 BCS 34$
001542 010400 MOV R4,R0 ; $MCB$R4,ACC.CCB
001544 000415 BR 37$
001546 012763 177777 000014 34$: MOV #-1,14(R3) ; *,*(CCB) 1177
001554 117663 000010 000024 35$: MOVB @10(SP),24(R3) ; LINK,*(CCB) 1178
001562 112763 000004 000012 36$: MOVB #4,12(R3) ; *,*(CCB) 1179
001570 010304 MOV R3,R4 ; CCB,* 1180
001572 004767 000000G JSR PC,$SCHED
001576 000443 BR 39$ ; 1176
001600 117676 000010 000004 37$: MOVB @10(SP),@4(SP) ; LINK,* 1184
001606 112776 000004 000002 MOVB #4,@2(SP) ; 1185
001614 010304 MOV R3,R4 ; CCB,* 1186
001616 004767 000000G JSR PC,$SCHED
001622 005060 000022 CLR 22(R0) ; *(ACC.CCB) 1187
001626 005060 000020 CLR 20(R0) ; *(ACC.CCB)
001632 005060 000016 CLR 16(R0) ; *(ACC.CCB)
001636 016646 000012 MOV 12(SP),-(SP) ; SC.PIX,* 1188
001642 005046 CLR -(SP)
001644 117616 000012 MOVB @12(SP),(SP)
001650 117601 000014 MOVB @14(SP),R1 ; LINK,*
001654 010146 MOV R1,-(SP)
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 42
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (5)
001656 012746 000001 MOV #1,-(SP)
001662 016605 000010 38$: MOV 10(SP),R5
001666 010004 MOV R0,R4 ; ACC.CCB,*
001670 004767 000000V JSR PC,SND.ACC
001674 052776 004000 000020 BIS #4000,@20(SP) ; *,LINK 1190
001702 062706 000010 ADD #10,SP ; 1132
001706 062706 000014 39$: ADD #14,SP ; 0797
001712 000207 RTS PC
; Routine Size: 486 words, Routine Base: $CODE$ + 0460
; Maximum stack depth per invocation: 11 words
000140 .PSECT $PLIT$, RO , D
P.AAE: ; CASE Table for RCV.CNR+0262 0861
000140 000060 .WORD 60 ; [6$]
000142 000416 .WORD 416 ; [16$]
000144 000710 .WORD 710 ; [20$]
000146 001132 .WORD 1132 ; [29$]
P.AAF: ; CASE Table for RCV.CNR+0372 0866
000150 000004 .WORD 4 ; [8$]
000152 000004 .WORD 4 ; [8$]
000154 000016 .WORD 16 ; [9$]
000156 000016 .WORD 16 ; [9$]
000160 000040 .WORD 40 ; [10$]
000162 000040 .WORD 40 ; [10$]
P.AAI: ; CASE Table for RCV.CNR+1222 1074
000164 000002 .WORD 2 ; [22$]
000166 000002 .WORD 2 ; [22$]
000170 000014 .WORD 14 ; [23$]
000172 000014 .WORD 14 ; [23$]
000174 000036 .WORD 36 ; [24$]
000176 000036 .WORD 36 ; [24$]
; 1217
; 1218
; 1219
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 43
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (6)
; 1220 routine RCV_DAT (DB, CCB) : MCB_DB_CCB novalue =
; 1221
; 1222 !++
; 1223 ! FUNCTIONAL DESCRIPTION:
; 1224 !
; 1225 !
; 1226 ! FORMAL PARAMETERS:
; 1227 ! None
; 1228 !
; 1229 ! IMPLICIT INPUTS:
; 1230 ! None
; 1231 !
; 1232 ! IMPLICIT OUTPUTS:
; 1233 ! None
; 1234 !
; 1235 ! ROUTINE VALUE:
; 1236 ! COMPLETION CODES:
; 1237 ! None
; 1238 !
; 1239 ! SIDE EFFECTS:
; 1240 ! None
; 1241 !--
; 1242
; 1243 begin
; 1244
; 1245 map
; 1246 CCB : ref block field (C_FIELDS),
; 1247 DB : ref block field (D_FIELDS);
; 1248
; 1249 bind
; 1250 LINK = blockvector [.DB [D_ADDR], .CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] - 1, 0, 0, 0, 0; 0, L_LENGTH]
; 1251 : block field (L_FIELDS);
; 1252
; 1253 if .LINK [L_TEST] neq 1
; 1254 then
; 1255 begin
; 1256 SIGNAL (DTR$_NO_DATA_PLEASE, .CCB);
; 1257 CCB [C_FNC] = FC_RCE;
; 1258 LLCRS$ (.CCB);
; 1259 return;
; 1260 end;
; 1261
; 1262 if ( .CCB[$sub_field( C_PRM1, byte_1)] and S$PBOM) neq 0
; 1263 then
; 1264 begin
; 1265 if (LINK[$sub_field( L_RECEIVE_NUMBER, word_0)] = .LINK[$sub_field( L_RECEIVE_NUMBER, word_0)] + 1) eql 0
; 1266 then
; 1267 LINK[$sub_field( L_RECEIVE_NUMBER, word_1)] = .LINK[$sub_field( L_RECEIVE_NUMBER, word_1)] + 1;
; 1268 end;
; 1269
; 1270 MAP$( .CCB[C_BIAS]);
; 1271 selectone .LINK [L_SUB_TEST] of
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 44
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (6)
; 1272 set
; 1273 [0]:
; 1274 begin
; 1275 local
; 1276 DRQ_CCB : ref block field (C_FIELDS);
; 1277
; 1278 if not CCBGT$ (DRQ_CCB) then return SIGNAL (DTR$_NO_CCB);
; 1279 DRQ_CCB [C_BIAS] = DRQ_CCB [C_ADDR] = DRQ_CCB [C_CNT] = 0;
; 1280 SND_DRQ (.DB, .DRQ_CCB, .CCB[C_PIX], .LINK [L_LLA], .LINK [L_ULA], 1);
; 1281 CCB [C_FNC] = FC_RCE;
; 1282 LLCRS$ (.CCB);
; 1283
; 1284 end;
; 1285
; 1286 [1, 2]:
; 1287 begin
; 1288 if
; 1289 begin
; 1290 if ( .CCB[$sub_field( C_PRM1, byte_1)] and S$PBOM) neq 0
; 1291 then
; 1292 begin
; 1293 if ch$eql( 4, .CCB[C_ADDR], 4, ch$ptr(LINK[$sub_field( L_RECEIVE_NUMBER, word_0)]), 0)
; 1294 then
; 1295 true
; 1296 else
; 1297 begin
; 1298 SIGNAL (DTR$_BAD_SEQUENCE_NUMBER, .CCB);
; 1299 false
; 1300 end
; 1301 end
; 1302 else
; 1303 true
; 1304 end
; 1305 and
; 1306 begin
; 1307 if .LINK[L_SUB_TEST] eql 2
; 1308 then
; 1309 begin
; 1310 if PATTERN_CHECK( .DB, .CCB)
; 1311 then
; 1312 true
; 1313 else
; 1314 begin
; 1315 SIGNAL (DTR$_BAD_PATTERN, .CCB);
; 1316 false
; 1317 end
; 1318 end
; 1319 else
; 1320 true
; 1321 end
; 1322 then
; 1323 begin
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 45
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (6)
; 1324 local
; 1325 DRQ_CCB : ref block field (C_FIELDS);
; 1326
; 1327 if not CCBGT$ (DRQ_CCB) then return SIGNAL (DTR$_NO_CCB);
; 1328 DRQ_CCB [C_BIAS] = DRQ_CCB [C_ADDR] = DRQ_CCB [C_CNT] = 0;
; 1329 SND_DRQ (.DB, .DRQ_CCB, .CCB[C_PIX], .LINK [L_LLA], .LINK [L_ULA], 1);
; 1330 end
; 1331 else
; 1332 begin
; 1333 local
; 1334 DIS_CCB: ref block field (C_FIELDS);
; 1335 if not CCBGT$ (DIS_CCB) then signal_stop (DTR$_NO_CCB);
; 1336 DIS_CCB [C_BIAS] = DIS_CCB [C_ADDR] = DIS_CCB [C_CNT] = 0;
; 1337 SND_DIS (.DB, .DIS_CCB, .CCB[C_PIX], .LINK[L_LLA], .LINK[L_ULA]);
; 1338 end;
; 1339
; 1340 CCB [C_FNC] = FC_RCE;
; 1341 LLCRS$ (.CCB);
; 1342 end;
; 1343
; 1344 [3] :
; 1345 begin
; 1346
; 1347 local
; 1348 SND_CCB : ref block field (C_FIELDS);
; 1349
; 1350 if not CCBGT$ (SND_CCB) then return SIGNAL (DTR$_NO_CCB);
; 1351
; 1352 SND_CCB [C_STK] = .CCB;
; 1353 SND_CCB [C_BIAS] = .CCB [C_BIAS];
; 1354 SND_CCB [C_ADDR] = .CCB [C_ADDR];
; 1355 SND_CCB [C_CNT] = .CCB [C_CNT];
; 1356 SND_CCB [C_CHN] = .CCB [C_CHN];
; 1357 SND_SND (.DB, .SND_CCB, .CCB [C_PIX], .LINK [L_LLA], .LINK [L_ULA],
; 1358 (if ( .CCB[$sub_field( C_PRM1, byte_1)] and S$PEOM) neq 0 then S$PEOM else 0));
; 1359 end;
; 1360 tes;
; 1361
; 1362 end; !of routine RCV_DAT
.SBTTL RCV.DAT
002374 .PSECT $CODE$, RO
000000 010402 RCV.DAT:MOV R4,R2 ; *,CCB 1220
000002 005004 CLR R4 ; 1250
000004 156204 000024 BISB 24(R2),R4 ; *(CCB),*
000010 072427 000005 ASH #5,R4
000014 066504 000004 ADD 4(R5),R4 ; *(DB),*
000020 012701 177740 MOV #-40,R1 ; 1243
000024 060401 ADD R4,R1
000026 012746 000002 MOV #2,-(SP) ; 1253
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 46
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (6)
000032 060116 ADD R1,(SP)
000034 017600 000000 MOV @0(SP),R0
000040 105000 CLRB R0
000042 020027 000400 CMP R0,#400
000046 001410 BEQ 1$
000050 010246 MOV R2,-(SP) ; CCB,* 1256
000052 012746 100133 MOV #-77645,-(SP)
000056 012746 000002 MOV #2,-(SP)
000062 004767 000000G JSR PC,$IGNAL
000066 000561 BR 8$ ; 1257
000070 005003 1$: CLR R3 ; 1262
000072 032762 000400 000024 BIT #400,24(R2) ; *,*(CCB)
000100 001406 BEQ 2$
000102 005203 INC R3
000104 005261 000024 INC 24(R1) ; 1265
000110 001002 BNE 2$
000112 005261 000026 INC 26(R1) ; 1267
000116 016267 000016 000000G 2$: MOV 16(R2),KISAR6 ; *(CCB),* 1270
000124 116100 000004 MOVB 4(R1),R0 ; 1271
000130 001035 BNE 3$
000132 004767 000000G JSR PC,$CCBGT ; 1278
000136 103511 BLO 7$
000140 005064 000022 CLR 22(R4) ; *(DRQ.CCB) 1279
000144 005064 000020 CLR 20(R4) ; *(DRQ.CCB)
000150 005064 000016 CLR 16(R4) ; *(DRQ.CCB)
000154 005046 CLR -(SP) ; 1280
000156 116216 000011 MOVB 11(R2),(SP) ; *(CCB),*
000162 005046 CLR -(SP)
000164 117616 000004 MOVB @4(SP),(SP)
000170 111100 MOVB (R1),R0
000172 010046 MOV R0,-(SP)
000174 012746 000001 MOV #1,-(SP)
000200 004767 000000V JSR PC,SND.DRQ
000204 112762 000004 000012 MOVB #4,12(R2) ; *,*(CCB) 1281
000212 010204 MOV R2,R4 ; CCB,* 1282
000214 004767 000000G JSR PC,$SCHED
000220 000167 000452 JMP 17$ ; 1274
000224 003546 3$: BLE 12$ ; 1271
000226 020027 000002 CMP R0,#2
000232 003143 BGT 12$
000234 006003 ROR R3 ; 1290
000236 103024 BCC 4$
000240 012746 000004 MOV #4,-(SP) ; 1293
000244 016246 000020 MOV 20(R2),-(SP) ; *(CCB),*
000250 012746 000004 MOV #4,-(SP)
000254 010146 MOV R1,-(SP)
000256 062716 000024 ADD #24,(SP)
000262 005046 CLR -(SP)
000264 004767 000000G JSR PC,BL$EQL
000270 062706 000012 ADD #12,SP
000274 006000 ROR R0
000276 103404 BLO 4$
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 47
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (6)
000300 010246 MOV R2,-(SP) ; CCB,* 1298
000302 012746 100173 MOV #-77605,-(SP)
000306 000414 BR 5$
000310 126127 000004 000002 4$: CMPB 4(R1),#2 ; 1307
000316 001017 BNE 6$
000320 010204 MOV R2,R4 ; CCB,* 1310
000322 004767 000000V JSR PC,PATTERN.CHECK
000326 006000 ROR R0
000330 103412 BLO 6$
000332 010246 MOV R2,-(SP) ; CCB,* 1315
000334 012746 100203 MOV #-77575,-(SP)
000340 012746 000002 5$: MOV #2,-(SP)
000344 004767 000000G JSR PC,$IGNAL
000350 062706 000006 ADD #6,SP
000354 000427 BR 9$ ; 1314
000356 004767 000000G 6$: JSR PC,$CCBGT ; 1327
000362 103475 7$: BLO 13$
000364 005064 000022 CLR 22(R4) ; *(DRQ.CCB) 1328
000370 005064 000020 CLR 20(R4) ; *(DRQ.CCB)
000374 005064 000016 CLR 16(R4) ; *(DRQ.CCB)
000400 005046 CLR -(SP) ; 1329
000402 116216 000011 MOVB 11(R2),(SP) ; *(CCB),*
000406 005046 CLR -(SP)
000410 117616 000004 MOVB @4(SP),(SP)
000414 111100 MOVB (R1),R0
000416 010046 MOV R0,-(SP)
000420 012746 000001 MOV #1,-(SP)
000424 004767 000000V JSR PC,SND.DRQ
000430 005726 TST (SP)+ ; 1323
000432 000432 8$: BR 11$ ; 1288
000434 004767 000000G 9$: JSR PC,$CCBGT ; 1335
000440 103007 BHIS 10$
000442 012746 100024 MOV #-77754,-(SP)
000446 012746 000001 MOV #1,-(SP)
000452 004767 000000G JSR PC,$STOP
000456 022626 CMP (SP)+,(SP)+
000460 005064 000022 10$: CLR 22(R4) ; *(DIS.CCB) 1336
000464 005064 000020 CLR 20(R4) ; *(DIS.CCB)
000470 005064 000016 CLR 16(R4) ; *(DIS.CCB)
000474 005046 CLR -(SP) ; 1337
000476 116216 000011 MOVB 11(R2),(SP) ; *(CCB),*
000502 005046 CLR -(SP)
000504 117616 000004 MOVB @4(SP),(SP)
000510 111100 MOVB (R1),R0
000512 010046 MOV R0,-(SP)
000514 004767 000000V JSR PC,SND.DIS
000520 112762 000004 000012 11$: MOVB #4,12(R2) ; *,*(CCB) 1340
000526 010204 MOV R2,R4 ; CCB,* 1341
000530 004767 000000G JSR PC,$SCHED
000534 062706 000006 ADD #6,SP ; 1287
000540 000460 BR 18$ ; 1271
000542 020027 000003 12$: CMP R0,#3
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 48
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (6)
000546 001055 BNE 18$
000550 004767 000000G JSR PC,$CCBGT ; 1350
000554 103010 BHIS 14$
000556 012746 100024 13$: MOV #-77754,-(SP)
000562 012746 000001 MOV #1,-(SP)
000566 004767 000000G JSR PC,$IGNAL
000572 022626 CMP (SP)+,(SP)+
000574 000442 BR 18$
000576 010264 000004 14$: MOV R2,4(R4) ; CCB,*(SND.CCB) 1352
000602 016264 000016 000016 MOV 16(R2),16(R4) ; *(CCB),*(SND.CCB) 1353
000610 016264 000020 000020 MOV 20(R2),20(R4) ; *(CCB),*(SND.CCB) 1354
000616 016264 000022 000022 MOV 22(R2),22(R4) ; *(CCB),*(SND.CCB) 1355
000624 016264 000002 000002 MOV 2(R2),2(R4) ; *(CCB),*(SND.CCB) 1356
000632 005046 CLR -(SP) ; 1357
000634 116216 000011 MOVB 11(R2),(SP) ; *(CCB),*
000640 005046 CLR -(SP)
000642 117616 000004 MOVB @4(SP),(SP)
000646 111100 MOVB (R1),R0
000650 010046 MOV R0,-(SP)
000652 032762 002000 000024 BIT #2000,24(R2) ; *,*(CCB) 1358
000660 001403 BEQ 15$
000662 012746 000004 MOV #4,-(SP)
000666 000401 BR 16$
000670 005046 15$: CLR -(SP)
000672 004767 000000V 16$: JSR PC,SND.SND ; 1357
000676 062706 000010 17$: ADD #10,SP ; 1345
000702 005726 18$: TST (SP)+ ; 1220
000704 000207 RTS PC
; Routine Size: 227 words, Routine Base: $CODE$ + 2374
; Maximum stack depth per invocation: 7 words
; 1363
; 1364
; 1365
; 1366
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 49
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (7)
; 1367 routine RCV_DIS (DB, CCB) : MCB_DB_CCB novalue =
; 1368
; 1369 !++
; 1370 ! FUNCTIONAL DESCRIPTION:
; 1371 !
; 1372 !
; 1373 ! FORMAL PARAMETERS:
; 1374 ! None
; 1375 !
; 1376 ! IMPLICIT INPUTS:
; 1377 ! None
; 1378 !
; 1379 ! IMPLICIT OUTPUTS:
; 1380 ! None
; 1381 !
; 1382 ! ROUTINE VALUE:
; 1383 ! COMPLETION CODES:
; 1384 ! None
; 1385 !
; 1386 ! SIDE EFFECTS:
; 1387 ! None
; 1388 !--
; 1389
; 1390 begin
; 1391
; 1392 map
; 1393 CCB : ref block field (C_FIELDS),
; 1394 DB : ref block field (D_FIELDS);
; 1395
; 1396 bind
; 1397 LINK = blockvector [.DB [D_ADDR], .CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] - 1, 0, 0, 0, 0; 0, L_LENGTH]
; 1398 : block field (L_FIELDS);
; 1399
; 1400 if .CCB [C_STS] neq S_SSUC
; 1401 then
; 1402 SIGNAL (DTR$_NO_DISCONNECT, .CCB, .CCB [C_STS]);
; 1403
; 1404 LINK [ls_dip] = false;
; 1405 LINK [LS_ACTIVE] = FALSE;
; 1406 CCBRT$ (.CCB);
; 1407 end; !of routine RCV_DIS
.SBTTL RCV.DIS
000000 010401 RCV.DIS:MOV R4,R1 ; *,CCB 1367
000002 005004 CLR R4 ; 1397
000004 156104 000024 BISB 24(R1),R4 ; *(CCB),*
000010 072427 000005 ASH #5,R4
000014 066504 000004 ADD 4(R5),R4 ; *(DB),*
000020 162704 000040 SUB #40,R4 ; 1390
000024 026127 000014 000001 CMP 14(R1),#1 ; *(CCB),* 1400
000032 001413 BEQ 1$
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 50
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (7)
000034 016146 000014 MOV 14(R1),-(SP) ; *(CCB),* 1402
000040 010146 MOV R1,-(SP) ; CCB,*
000042 012746 100073 MOV #-77705,-(SP)
000046 012746 000003 MOV #3,-(SP)
000052 004767 000000G JSR PC,$IGNAL
000056 062706 000010 ADD #10,SP
000062 042714 004400 1$: BIC #4400,(R4) ; 1405
000066 010104 MOV R1,R4 ; CCB,* 1406
000070 004767 000000G JSR PC,$CCBRT
000074 000207 RTS PC ; 1367
; Routine Size: 31 words, Routine Base: $CODE$ + 3302
; Maximum stack depth per invocation: 5 words
; 1408
; 1409
; 1410
; 1411
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 51
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (8)
; 1412 routine RCV_DRQ (DB, CCB) : MCB_DB_CCB novalue =
; 1413
; 1414 !++
; 1415 ! FUNCTIONAL DESCRIPTION:
; 1416 !
; 1417 !
; 1418 ! FORMAL PARAMETERS:
; 1419 ! None
; 1420 !
; 1421 ! IMPLICIT INPUTS:
; 1422 ! None
; 1423 !
; 1424 ! IMPLICIT OUTPUTS:
; 1425 ! None
; 1426 !
; 1427 ! ROUTINE VALUE:
; 1428 ! COMPLETION CODES:
; 1429 ! None
; 1430 !
; 1431 ! SIDE EFFECTS:
; 1432 ! None
; 1433 !--
; 1434
; 1435 begin
; 1436
; 1437 map
; 1438 CCB : ref block field (C_FIELDS),
; 1439 DB : ref block field (D_FIELDS);
; 1440
; 1441 if .CCB [C_STS] neq S_SSUC
; 1442 then
; 1443 SIGNAL (DTR$_NO_DATA_REQUEST, .CCB, .CCB [C_STS]);
; 1444
; 1445 $MCB_RETURN_CCB (.CCB);
; 1446 end; !of routine RCV_DRQ
.SBTTL RCV.DRQ
000000 026427 000014 000001 RCV.DRQ:CMP 14(R4),#1 ; *(CCB),* 1441
000006 001413 BEQ 1$
000010 016446 000014 MOV 14(R4),-(SP) ; *(CCB),* 1443
000014 010446 MOV R4,-(SP) ; CCB,*
000016 012746 100123 MOV #-77655,-(SP)
000022 012746 000003 MOV #3,-(SP)
000026 004767 000000G JSR PC,$IGNAL
000032 062706 000010 ADD #10,SP
000036 004767 000000G 1$: JSR PC,$CCBRT ; 1445
000042 000207 RTS PC ; 1412
; Routine Size: 18 words, Routine Base: $CODE$ + 3400
; Maximum stack depth per invocation: 5 words
; 1447
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 52
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (8)
; 1448
; 1449
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 53
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (9)
; 1450 routine RCV_DSR (DB, CCB) : MCB_DB_CCB novalue =
; 1451
; 1452 !++
; 1453 ! FUNCTIONAL DESCRIPTION:
; 1454 !
; 1455 !
; 1456 ! FORMAL PARAMETERS:
; 1457 ! None
; 1458 !
; 1459 ! IMPLICIT INPUTS:
; 1460 ! None
; 1461 !
; 1462 ! IMPLICIT OUTPUTS:
; 1463 ! None
; 1464 !
; 1465 ! ROUTINE VALUE:
; 1466 ! COMPLETION CODES:
; 1467 ! None
; 1468 !
; 1469 ! SIDE EFFECTS:
; 1470 ! None
; 1471 !--
; 1472
; 1473 begin
; 1474
; 1475 map
; 1476 CCB : ref block field (C_FIELDS),
; 1477 DB : ref block field (D_FIELDS);
; 1478
; 1479 local
; 1480 DIS_CCB : ref block field (C_FIELDS),
; 1481 LLA,
; 1482 SC_PIX,
; 1483 ULA;
; 1484
; 1485 SC_PIX = .CCB [C_PIX];
; 1486 LLA = .CCB [C_LIN];
; 1487 ULA = .CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)];
; 1488 CCB [C_FNC] = FC_RCE;
; 1489 LLCRS$ (.CCB);
; 1490
; 1491 if not CCBGT$ (DIS_CCB) then signal_stop (DTR$_NO_CCB);
; 1492
; 1493 DIS_CCB [C_BIAS] = DIS_CCB [C_ADDR] = DIS_CCB [C_CNT] = 0;
; 1494 SND_DIS (.DB, .DIS_CCB, .SC_PIX, .LLA, .ULA);
; 1495 end; !of routine RCV_DSR
.SBTTL RCV.DSR
000000 005001 RCV.DSR:CLR R1 ; SC.PIX 1485
000002 156401 000011 BISB 11(R4),R1 ; *(CCB),SC.PIX
000006 005002 CLR R2 ; LLA 1486
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 54
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (9)
000010 156402 000010 BISB 10(R4),R2 ; *(CCB),LLA
000014 005003 CLR R3 ; ULA 1487
000016 156403 000024 BISB 24(R4),R3 ; *(CCB),ULA
000022 112764 000004 000012 MOVB #4,12(R4) ; *,*(CCB) 1488
000030 004767 000000G JSR PC,$SCHED ; 1489
000034 004767 000000G JSR PC,$CCBGT ; 1491
000040 103007 BHIS 1$
000042 012746 100024 MOV #-77754,-(SP)
000046 012746 000001 MOV #1,-(SP)
000052 004767 000000G JSR PC,$STOP
000056 022626 CMP (SP)+,(SP)+
000060 005064 000022 1$: CLR 22(R4) ; *(DIS.CCB) 1493
000064 005064 000020 CLR 20(R4) ; *(DIS.CCB)
000070 005064 000016 CLR 16(R4) ; *(DIS.CCB)
000074 010146 MOV R1,-(SP) ; SC.PIX,* 1494
000076 010246 MOV R2,-(SP) ; LLA,*
000100 010346 MOV R3,-(SP) ; ULA,*
000102 004767 000000V JSR PC,SND.DIS
000106 062706 000006 ADD #6,SP ; 1473
000112 000207 RTS PC ; 1450
; Routine Size: 38 words, Routine Base: $CODE$ + 3444
; Maximum stack depth per invocation: 4 words
; 1496
; 1497
; 1498
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 55
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (10)
; 1499 routine RCV_INT (DB, CCB) : MCB_DB_CCB novalue =
; 1500
; 1501 !++
; 1502 ! FUNCTIONAL DESCRIPTION:
; 1503 !
; 1504 !
; 1505 ! FORMAL PARAMETERS:
; 1506 ! None
; 1507 !
; 1508 ! IMPLICIT INPUTS:
; 1509 ! None
; 1510 !
; 1511 ! IMPLICIT OUTPUTS:
; 1512 ! None
; 1513 !
; 1514 ! ROUTINE VALUE:
; 1515 ! COMPLETION CODES:
; 1516 ! None
; 1517 !
; 1518 ! SIDE EFFECTS:
; 1519 ! None
; 1520 !--
; 1521
; 1522 begin
; 1523
; 1524 map
; 1525 CCB : ref block field (C_FIELDS),
; 1526 DB : ref block field (D_FIELDS);
; 1527
; 1528 bind
; 1529 LINK = blockvector [.DB [D_ADDR], .CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] - 1, 0, 0, 0, 0; 0, L_LENGTH]
; 1530 : block field (L_FIELDS);
; 1531
; 1532 if .LINK [L_TEST] neq 3
; 1533 then
; 1534 begin
; 1535 SIGNAL (DTR$_NO_INTERRUPT_PLEASE, .CCB);
; 1536 CCB [C_FNC] = FC_RCE;
; 1537 LLCRS$ (.CCB);
; 1538 return;
; 1539 end;
; 1540
; 1541 if (LINK[$sub_field( L_RECEIVE_NUMBER, word_0)] = .LINK[$sub_field( L_RECEIVE_NUMBER, word_0)] + 1) eql 0
; 1542 then
; 1543 LINK[$sub_field( L_RECEIVE_NUMBER, word_1)] = .LINK[$sub_field( L_RECEIVE_NUMBER, word_1)] + 1;
; 1544
; 1545 MAP$( .CCB[C_BIAS]);
; 1546
; 1547 selectone .LINK [L_SUB_TEST] of
; 1548 set
; 1549 [0] :
; 1550 begin
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 56
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (10)
; 1551
; 1552 local
; 1553 IRQ_CCB : ref block field (C_FIELDS);
; 1554
; 1555 if not CCBGT$ (IRQ_CCB) then return SIGNAL (DTR$_NO_CCB);
; 1556 IRQ_CCB [C_BIAS] = IRQ_CCB [C_ADDR] = IRQ_CCB [C_CNT] = 0;
; 1557 SND_IRQ (.DB, .IRQ_CCB, .CCB[C_PIX], .LINK [L_LLA], .LINK [L_ULA]);
; 1558
; 1559 CCB [C_FNC] = FC_RCE;
; 1560 LLCRS$ (.CCB);
; 1561 end;
; 1562
; 1563 [1, 2]:
; 1564 begin
; 1565 if
; 1566 begin
; 1567 if ch$eql( 4, .CCB[C_ADDR], 4, ch$ptr(LINK[$sub_field( L_RECEIVE_NUMBER, word_0)]), 0)
; 1568 then
; 1569 true
; 1570 else
; 1571 begin
; 1572 SIGNAL (DTR$_BAD_SEQUENCE_NUMBER, .CCB);
; 1573 false
; 1574 end
; 1575 end
; 1576 and
; 1577 begin
; 1578 if .LINK[L_SUB_TEST] eql 2
; 1579 then
; 1580 begin
; 1581 if PATTERN_CHECK( .DB, .CCB)
; 1582 then
; 1583 true
; 1584 else
; 1585 begin
; 1586 SIGNAL (DTR$_BAD_PATTERN, .CCB);
; 1587 false
; 1588 end
; 1589 end
; 1590 else
; 1591 true
; 1592 end
; 1593
; 1594 then
; 1595 begin
; 1596 local
; 1597 IRQ_CCB : ref block field (C_FIELDS);
; 1598
; 1599 if not CCBGT$ (IRQ_CCB) then return SIGNAL (DTR$_NO_CCB);
; 1600 IRQ_CCB [C_BIAS] = IRQ_CCB [C_ADDR] = IRQ_CCB [C_CNT] = 0;
; 1601 SND_IRQ (.DB, .IRQ_CCB, .CCB[C_PIX], .LINK [L_LLA], .LINK [L_ULA]);
; 1602 end
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 57
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (10)
; 1603 else
; 1604 begin
; 1605 local
; 1606 DIS_CCB: ref block field (C_FIELDS);
; 1607
; 1608 SIGNAL (DTR$_BAD_SEQUENCE_NUMBER, .CCB);
; 1609 if not CCBGT$ (DIS_CCB) then signal_stop (DTR$_NO_CCB);
; 1610 DIS_CCB [C_BIAS] = DIS_CCB [C_ADDR] = DIS_CCB [C_CNT] = 0;
; 1611 SND_DIS (.DB, .DIS_CCB, .CCB[C_PIX], .LINK[L_LLA], .LINK[L_ULA]);
; 1612 end;
; 1613 CCB [C_FNC] = FC_RCE;
; 1614 LLCRS$ (.CCB);
; 1615 end;
; 1616
; 1617 [3] :
; 1618 begin
; 1619
; 1620 local
; 1621 SNI_CCB : ref block field (C_FIELDS);
; 1622
; 1623 if not CCBGT$ (SNI_CCB) then return SIGNAL (DTR$_NO_CCB);
; 1624
; 1625 SNI_CCB [C_STK] = .CCB;
; 1626 SNI_CCB [C_BIAS] = .CCB [C_BIAS];
; 1627 SNI_CCB [C_ADDR] = .CCB [C_ADDR];
; 1628 SNI_CCB [C_CNT] = .CCB [C_CNT];
; 1629 SNI_CCB [C_CHN] = .CCB [C_CHN];
; 1630 SND_SNI (.DB, .SNI_CCB, .CCB [C_PIX], .LINK [L_LLA], .LINK [L_ULA]);
; 1631 end;
; 1632 tes;
; 1633
; 1634 end; !of routine RCV_INT
.SBTTL RCV.INT
000000 010402 RCV.INT:MOV R4,R2 ; *,CCB 1499
000002 005004 CLR R4 ; 1529
000004 156204 000024 BISB 24(R2),R4 ; *(CCB),*
000010 072427 000005 ASH #5,R4
000014 066504 000004 ADD 4(R5),R4 ; *(DB),*
000020 012701 177740 MOV #-40,R1 ; 1522
000024 060401 ADD R4,R1
000026 012746 000002 MOV #2,-(SP) ; 1532
000032 060116 ADD R1,(SP)
000034 017600 000000 MOV @0(SP),R0
000040 105000 CLRB R0
000042 020027 001400 CMP R0,#1400
000046 001410 BEQ 1$
000050 010246 MOV R2,-(SP) ; CCB,* 1535
000052 012746 100143 MOV #-77635,-(SP)
000056 012746 000002 MOV #2,-(SP)
000062 004767 000000G JSR PC,$IGNAL
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 58
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (10)
000066 000560 BR 10$ ; 1536
000070 012703 000024 1$: MOV #24,R3 ; 1541
000074 060103 ADD R1,R3
000076 005213 INC (R3)
000100 001002 BNE 2$
000102 005261 000026 INC 26(R1) ; 1543
000106 016267 000016 000000G 2$: MOV 16(R2),KISAR6 ; *(CCB),* 1545
000114 116100 000004 MOVB 4(R1),R0 ; 1547
000120 001004 BNE 3$
000122 004767 000000G JSR PC,$CCBGT ; 1555
000126 103555 BLO 12$
000130 000454 BR 7$ ; 1556
000132 003545 3$: BLE 11$ ; 1547
000134 020027 000002 CMP R0,#2
000140 003142 BGT 11$
000142 012746 000004 MOV #4,-(SP) ; 1567
000146 016246 000020 MOV 20(R2),-(SP) ; *(CCB),*
000152 012746 000004 MOV #4,-(SP)
000156 010346 MOV R3,-(SP)
000160 005046 CLR -(SP)
000162 004767 000000G JSR PC,BL$EQL
000166 062706 000012 ADD #12,SP
000172 006000 ROR R0
000174 103404 BLO 4$
000176 010246 MOV R2,-(SP) ; CCB,* 1572
000200 012746 100173 MOV #-77605,-(SP)
000204 000414 BR 5$
000206 126127 000004 000002 4$: CMPB 4(R1),#2 ; 1578
000214 001017 BNE 6$
000216 010204 MOV R2,R4 ; CCB,* 1581
000220 004767 000000V JSR PC,PATTERN.CHECK
000224 006000 ROR R0
000226 103412 BLO 6$
000230 010246 MOV R2,-(SP) ; CCB,* 1586
000232 012746 100203 MOV #-77575,-(SP)
000236 012746 000002 5$: MOV #2,-(SP)
000242 004767 000000G JSR PC,$IGNAL
000246 062706 000006 ADD #6,SP
000252 000424 BR 8$ ; 1585
000254 004767 000000G 6$: JSR PC,$CCBGT ; 1599
000260 103500 BLO 12$
000262 005064 000022 7$: CLR 22(R4) ; *(IRQ.CCB) 1600
000266 005064 000020 CLR 20(R4) ; *(IRQ.CCB)
000272 005064 000016 CLR 16(R4) ; *(IRQ.CCB)
000276 005046 CLR -(SP) ; 1601
000300 116216 000011 MOVB 11(R2),(SP) ; *(CCB),*
000304 005046 CLR -(SP)
000306 117616 000004 MOVB @4(SP),(SP)
000312 111100 MOVB (R1),R0
000314 010046 MOV R0,-(SP)
000316 004767 000000V JSR PC,SND.IRQ
000322 000442 BR 10$ ; 1565
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 59
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (10)
000324 010246 8$: MOV R2,-(SP) ; CCB,* 1608
000326 012746 100173 MOV #-77605,-(SP)
000332 012746 000002 MOV #2,-(SP)
000336 004767 000000G JSR PC,$IGNAL
000342 004767 000000G JSR PC,$CCBGT ; 1609
000346 103007 BHIS 9$
000350 012716 100024 MOV #-77754,(SP)
000354 012746 000001 MOV #1,-(SP)
000360 004767 000000G JSR PC,$STOP
000364 005726 TST (SP)+
000366 005064 000022 9$: CLR 22(R4) ; *(DIS.CCB) 1610
000372 005064 000020 CLR 20(R4) ; *(DIS.CCB)
000376 005064 000016 CLR 16(R4) ; *(DIS.CCB)
000402 005016 CLR (SP) ; 1611
000404 116216 000011 MOVB 11(R2),(SP) ; *(CCB),*
000410 005046 CLR -(SP)
000412 117616 000010 MOVB @10(SP),(SP)
000416 111100 MOVB (R1),R0
000420 010046 MOV R0,-(SP)
000422 004767 000000V JSR PC,SND.DIS
000426 022626 CMP (SP)+,(SP)+ ; 1604
000430 112762 000004 000012 10$: MOVB #4,12(R2) ; *,*(CCB) 1613
000436 010204 MOV R2,R4 ; CCB,* 1614
000440 004767 000000G JSR PC,$SCHED
000444 000446 BR 14$ ; 1564
000446 020027 000003 11$: CMP R0,#3 ; 1547
000452 001045 BNE 15$
000454 004767 000000G JSR PC,$CCBGT ; 1623
000460 103010 BHIS 13$
000462 012746 100024 12$: MOV #-77754,-(SP)
000466 012746 000001 MOV #1,-(SP)
000472 004767 000000G JSR PC,$IGNAL
000476 022626 CMP (SP)+,(SP)+
000500 000432 BR 15$
000502 010264 000004 13$: MOV R2,4(R4) ; CCB,*(SNI.CCB) 1625
000506 016264 000016 000016 MOV 16(R2),16(R4) ; *(CCB),*(SNI.CCB) 1626
000514 016264 000020 000020 MOV 20(R2),20(R4) ; *(CCB),*(SNI.CCB) 1627
000522 016264 000022 000022 MOV 22(R2),22(R4) ; *(CCB),*(SNI.CCB) 1628
000530 016264 000002 000002 MOV 2(R2),2(R4) ; *(CCB),*(SNI.CCB) 1629
000536 005046 CLR -(SP) ; 1630
000540 116216 000011 MOVB 11(R2),(SP) ; *(CCB),*
000544 005046 CLR -(SP)
000546 117616 000004 MOVB @4(SP),(SP)
000552 111100 MOVB (R1),R0
000554 010046 MOV R0,-(SP)
000556 004767 000000V JSR PC,SND.SNI
000562 062706 000006 14$: ADD #6,SP ; 1618
000566 005726 15$: TST (SP)+ ; 1499
000570 000207 RTS PC
; Routine Size: 189 words, Routine Base: $CODE$ + 3560
; Maximum stack depth per invocation: 7 words
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 60
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (10)
; 1635
; 1636
; 1637
; 1638
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 61
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (11)
; 1639 routine RCV_IRQ (DB, CCB) : MCB_DB_CCB novalue =
; 1640
; 1641 !++
; 1642 ! FUNCTIONAL DESCRIPTION:
; 1643 !
; 1644 !
; 1645 ! FORMAL PARAMETERS:
; 1646 ! None
; 1647 !
; 1648 ! IMPLICIT INPUTS:
; 1649 ! None
; 1650 !
; 1651 ! IMPLICIT OUTPUTS:
; 1652 ! None
; 1653 !
; 1654 ! ROUTINE VALUE:
; 1655 ! COMPLETION CODES:
; 1656 ! None
; 1657 !
; 1658 ! SIDE EFFECTS:
; 1659 ! None
; 1660 !--
; 1661
; 1662 begin
; 1663
; 1664 map
; 1665 CCB : ref block field (C_FIELDS),
; 1666 DB : ref block field (D_FIELDS);
; 1667
; 1668 if .CCB [C_STS] neq S_SSUC
; 1669 then
; 1670 SIGNAL (DTR$_NO_INTERRUPT_REQUEST, .CCB, .CCB [C_STS]);
; 1671
; 1672 $MCB_RETURN_CCB (.CCB);
; 1673 end; !of routine RCV_IRQ
.SBTTL RCV.IRQ
000000 026427 000014 000001 RCV.IRQ:CMP 14(R4),#1 ; *(CCB),* 1668
000006 001413 BEQ 1$
000010 016446 000014 MOV 14(R4),-(SP) ; *(CCB),* 1670
000014 010446 MOV R4,-(SP) ; CCB,*
000016 012746 100153 MOV #-77625,-(SP)
000022 012746 000003 MOV #3,-(SP)
000026 004767 000000G JSR PC,$IGNAL
000032 062706 000010 ADD #10,SP
000036 004767 000000G 1$: JSR PC,$CCBRT ; 1672
000042 000207 RTS PC ; 1639
; Routine Size: 18 words, Routine Base: $CODE$ + 4352
; Maximum stack depth per invocation: 5 words
; 1674
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 62
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (11)
; 1675
; 1676
; 1677
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 63
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (12)
; 1678 routine RCV_REJ (DB, CCB) : MCB_DB_CCB novalue =
; 1679
; 1680 !++
; 1681 ! FUNCTIONAL DESCRIPTION:
; 1682 !
; 1683 !
; 1684 ! FORMAL PARAMETERS:
; 1685 ! None
; 1686 !
; 1687 ! IMPLICIT INPUTS:
; 1688 ! None
; 1689 !
; 1690 ! IMPLICIT OUTPUTS:
; 1691 ! None
; 1692 !
; 1693 ! ROUTINE VALUE:
; 1694 ! COMPLETION CODES:
; 1695 ! None
; 1696 !
; 1697 ! SIDE EFFECTS:
; 1698 ! None
; 1699 !--
; 1700
; 1701 begin
; 1702
; 1703 map
; 1704 CCB : ref block field (C_FIELDS),
; 1705 DB : ref block field (D_FIELDS);
; 1706
; 1707 bind
; 1708 LINK = blockvector [.DB [D_ADDR], .CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] - 1, 0, 0, 0, 0; 0, L_LENGTH]
; 1709 : block field (L_FIELDS);
; 1710
; 1711 if .CCB [C_STS] neq S_SSUC
; 1712 then
; 1713 SIGNAL (DTR$_NO_REJECT, .CCB, .CCB [C_STS]);
; 1714
; 1715 LINK [ls_dip] = false;
; 1716 LINK [LS_ACTIVE] = FALSE;
; 1717 CCBRT$ (.CCB);
; 1718 end; !of routine RCV_REJ
.SBTTL RCV.REJ
000000 010401 RCV.REJ:MOV R4,R1 ; *,CCB 1678
000002 005004 CLR R4 ; 1708
000004 156104 000024 BISB 24(R1),R4 ; *(CCB),*
000010 072427 000005 ASH #5,R4
000014 066504 000004 ADD 4(R5),R4 ; *(DB),*
000020 162704 000040 SUB #40,R4 ; 1701
000024 026127 000014 000001 CMP 14(R1),#1 ; *(CCB),* 1711
000032 001413 BEQ 1$
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 64
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (12)
000034 016146 000014 MOV 14(R1),-(SP) ; *(CCB),* 1713
000040 010146 MOV R1,-(SP) ; CCB,*
000042 012746 100103 MOV #-77675,-(SP)
000046 012746 000003 MOV #3,-(SP)
000052 004767 000000G JSR PC,$IGNAL
000056 062706 000010 ADD #10,SP
000062 042714 004400 1$: BIC #4400,(R4) ; 1716
000066 010104 MOV R1,R4 ; CCB,* 1717
000070 004767 000000G JSR PC,$CCBRT
000074 000207 RTS PC ; 1678
; Routine Size: 31 words, Routine Base: $CODE$ + 4416
; Maximum stack depth per invocation: 5 words
; 1719
; 1720
; 1721
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 65
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (13)
; 1722 routine RCV_SND (DB, CCB) : MCB_DB_CCB novalue =
; 1723
; 1724 !++
; 1725 ! FUNCTIONAL DESCRIPTION:
; 1726 !
; 1727 !
; 1728 ! FORMAL PARAMETERS:
; 1729 ! None
; 1730 !
; 1731 ! IMPLICIT INPUTS:
; 1732 ! None
; 1733 !
; 1734 ! IMPLICIT OUTPUTS:
; 1735 ! None
; 1736 !
; 1737 ! ROUTINE VALUE:
; 1738 ! COMPLETION CODES:
; 1739 ! None
; 1740 !
; 1741 ! SIDE EFFECTS:
; 1742 ! None
; 1743 !--
; 1744
; 1745 begin
; 1746
; 1747 map
; 1748 CCB : ref block field (C_FIELDS),
; 1749 DB : ref block field (D_FIELDS);
; 1750
; 1751 begin
; 1752
; 1753 bind
; 1754 RCV_CCB = .CCB [C_STK] : block field (C_FIELDS);
; 1755
; 1756 if .CCB [C_STS] neq S_SSUC
; 1757 then
; 1758 SIGNAL (DTR$_NO_SEND_DATA, .CCB, .CCB [C_STS]);
; 1759
; 1760 if .CCB [C_BIAS] eql .RCV_CCB [C_BIAS]
; 1761 then
; 1762 CCB [C_BIAS] = CCB [C_ADDR] = CCB [C_CNT] = 0;
; 1763
; 1764 CCB [C_CHN] = 0;
; 1765 RCV_CCB [C_FNC] = FC_RCE;
; 1766 LLCRS$ (RCV_CCB);
; 1767 CCB [C_STK] = 0;
; 1768 end;
; 1769 SND_DRQ (.DB, .CCB, .CCB [C_PIX], .CCB [C_LIX], .CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)], 1);
; 1770 end; !of routine RCV_SND
.SBTTL RCV.SND
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 66
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (13)
000000 010401 RCV.SND:MOV R4,R1 ; *,CCB 1722
000002 016104 000004 MOV 4(R1),R4 ; *(CCB),* 1751
000006 026127 000014 000001 CMP 14(R1),#1 ; *(CCB),* 1756
000014 001413 BEQ 1$
000016 016146 000014 MOV 14(R1),-(SP) ; *(CCB),* 1758
000022 010146 MOV R1,-(SP) ; CCB,*
000024 012746 100113 MOV #-77665,-(SP)
000030 012746 000003 MOV #3,-(SP)
000034 004767 000000G JSR PC,$IGNAL
000040 062706 000010 ADD #10,SP
000044 026164 000016 000016 1$: CMP 16(R1),16(R4) ; *(CCB),* 1760
000052 001006 BNE 2$
000054 005061 000022 CLR 22(R1) ; *(CCB) 1762
000060 005061 000020 CLR 20(R1) ; *(CCB)
000064 005061 000016 CLR 16(R1) ; *(CCB)
000070 005061 000002 2$: CLR 2(R1) ; *(CCB) 1764
000074 112764 000004 000012 MOVB #4,12(R4) ; 1765
000102 004767 000000G JSR PC,$SCHED ; 1766
000106 005061 000004 CLR 4(R1) ; *(CCB) 1767
000112 005046 CLR -(SP) ; 1769
000114 116116 000011 MOVB 11(R1),(SP) ; *(CCB),*
000120 005046 CLR -(SP)
000122 116116 000010 MOVB 10(R1),(SP) ; *(CCB),*
000126 005046 CLR -(SP)
000130 116116 000024 MOVB 24(R1),(SP) ; *(CCB),*
000134 012746 000001 MOV #1,-(SP)
000140 010104 MOV R1,R4 ; CCB,*
000142 004767 000000V JSR PC,SND.DRQ
000146 062706 000010 ADD #10,SP ; 1745
000152 000207 RTS PC ; 1722
; Routine Size: 54 words, Routine Base: $CODE$ + 4514
; Maximum stack depth per invocation: 5 words
; 1771
; 1772
; 1773
; 1774
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 67
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (14)
; 1775 routine RCV_SNI (DB, CCB) : MCB_DB_CCB novalue =
; 1776
; 1777 !++
; 1778 ! FUNCTIONAL DESCRIPTION:
; 1779 !
; 1780 !
; 1781 ! FORMAL PARAMETERS:
; 1782 ! None
; 1783 !
; 1784 ! IMPLICIT INPUTS:
; 1785 ! None
; 1786 !
; 1787 ! IMPLICIT OUTPUTS:
; 1788 ! None
; 1789 !
; 1790 ! ROUTINE VALUE:
; 1791 ! COMPLETION CODES:
; 1792 ! None
; 1793 !
; 1794 ! SIDE EFFECTS:
; 1795 ! None
; 1796 !--
; 1797
; 1798 begin
; 1799
; 1800 map
; 1801 CCB : ref block field (C_FIELDS),
; 1802 DB : ref block field (D_FIELDS);
; 1803
; 1804 begin
; 1805
; 1806 bind
; 1807 RCV_CCB = .CCB [C_STK] : block field (C_FIELDS);
; 1808
; 1809 if .CCB [C_STS] neq S_SSUC
; 1810 then
; 1811 SIGNAL (DTR$_NO_SEND_INTERRUPT, .CCB, .CCB [C_STS]);
; 1812
; 1813 if .CCB [C_BIAS] eql .RCV_CCB [C_BIAS]
; 1814 then
; 1815 CCB [C_BIAS] = CCB [C_ADDR] = CCB [C_CNT] = 0;
; 1816
; 1817 CCB [C_CHN] = 0;
; 1818 RCV_CCB [C_FNC] = FC_RCE;
; 1819 LLCRS$ (RCV_CCB);
; 1820 CCB [C_STK] = 0;
; 1821 end;
; 1822 SND_IRQ (.DB, .CCB, .CCB [C_PIX], .CCB [C_LIX], .CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)]);
; 1823 end; !of routine RCV_SNI
.SBTTL RCV.SNI
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 68
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (14)
000000 010401 RCV.SNI:MOV R4,R1 ; *,CCB 1775
000002 016104 000004 MOV 4(R1),R4 ; *(CCB),* 1804
000006 026127 000014 000001 CMP 14(R1),#1 ; *(CCB),* 1809
000014 001413 BEQ 1$
000016 016146 000014 MOV 14(R1),-(SP) ; *(CCB),* 1811
000022 010146 MOV R1,-(SP) ; CCB,*
000024 012746 100163 MOV #-77615,-(SP)
000030 012746 000003 MOV #3,-(SP)
000034 004767 000000G JSR PC,$IGNAL
000040 062706 000010 ADD #10,SP
000044 026164 000016 000016 1$: CMP 16(R1),16(R4) ; *(CCB),* 1813
000052 001006 BNE 2$
000054 005061 000022 CLR 22(R1) ; *(CCB) 1815
000060 005061 000020 CLR 20(R1) ; *(CCB)
000064 005061 000016 CLR 16(R1) ; *(CCB)
000070 005061 000002 2$: CLR 2(R1) ; *(CCB) 1817
000074 112764 000004 000012 MOVB #4,12(R4) ; 1818
000102 004767 000000G JSR PC,$SCHED ; 1819
000106 005061 000004 CLR 4(R1) ; *(CCB) 1820
000112 005046 CLR -(SP) ; 1822
000114 116116 000011 MOVB 11(R1),(SP) ; *(CCB),*
000120 005046 CLR -(SP)
000122 116116 000010 MOVB 10(R1),(SP) ; *(CCB),*
000126 005046 CLR -(SP)
000130 116116 000024 MOVB 24(R1),(SP) ; *(CCB),*
000134 010104 MOV R1,R4 ; CCB,*
000136 004767 000000V JSR PC,SND.IRQ
000142 062706 000006 ADD #6,SP ; 1798
000146 000207 RTS PC ; 1775
; Routine Size: 52 words, Routine Base: $CODE$ + 4670
; Maximum stack depth per invocation: 5 words
; 1824
; 1825
; 1826
; 1827
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 69
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (15)
; 1828 routine SND_ABO (DB, CCB, PIX, LLA, ULA) : LINKAGE_DB_CCB novalue =
; 1829
; 1830 !++
; 1831 ! FUNCTIONAL DESCRIPTION:
; 1832 !
; 1833 !
; 1834 ! FORMAL PARAMETERS:
; 1835 ! None
; 1836 !
; 1837 ! IMPLICIT INPUTS:
; 1838 ! None
; 1839 !
; 1840 ! IMPLICIT OUTPUTS:
; 1841 ! None
; 1842 !
; 1843 ! ROUTINE VALUE:
; 1844 ! COMPLETION CODES:
; 1845 ! None
; 1846 !
; 1847 ! SIDE EFFECTS:
; 1848 ! None
; 1849 !--
; 1850
; 1851 begin
; 1852
; 1853 map
; 1854 CCB : ref block field (C_FIELDS),
; 1855 DB : ref block field (D_FIELDS);
; 1856
; 1857 bind
; 1858 LINK = blockvector [.DB [D_ADDR], .ULA - 1, 0, 0, 0, 0; 0, L_LENGTH]
; 1859 : block field (L_FIELDS);
; 1860
; 1861 LINK [ls_dip] = true;
; 1862 CCB [C_PIX] = .PIX;
; 1863 CCB [C_LIX] = .LLA;
; 1864 CCB [C_FNC] = FC_XME;
; 1865 CCB [C_MOD] = S$ABO;
; 1866 CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] = .ULA;
; 1867 LLCRS$ (.CCB);
; 1868 end; !of routine SND_ABO
.SBTTL SND.ABO
000000 010446 SND.ABO:MOV R4,-(SP) ; 1828
000002 010400 MOV R4,R0 ; *,CCB
000004 016604 000004 MOV 4(SP),R4 ; ULA,* 1858
000010 072427 000005 ASH #5,R4
000014 066504 000004 ADD 4(R5),R4 ; *(DB),*
000020 052764 000400 177740 BIS #400,-40(R4) ; 1861
000026 116660 000010 000011 MOVB 10(SP),11(R0) ; PIX,*(CCB) 1862
000034 116660 000006 000010 MOVB 6(SP),10(R0) ; LLA,*(CCB) 1863
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 70
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (15)
000042 112760 000002 000012 MOVB #2,12(R0) ; *,*(CCB) 1864
000050 112760 000022 000013 MOVB #22,13(R0) ; *,*(CCB) 1865
000056 116660 000004 000024 MOVB 4(SP),24(R0) ; ULA,*(CCB) 1866
000064 010004 MOV R0,R4 ; CCB,* 1867
000066 004767 000000G JSR PC,$SCHED
000072 012604 MOV (SP)+,R4 ; 1828
000074 000207 RTS PC
; Routine Size: 31 words, Routine Base: $CODE$ + 5040
; Maximum stack depth per invocation: 2 words
; 1869
; 1870
; 1871
; 1872
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 71
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (16)
; 1873 routine SND_ACC (DB, CCB, PIX, LLA, ULA, FLOW) : LINKAGE_DB_CCB novalue =
; 1874
; 1875 !++
; 1876 ! FUNCTIONAL DESCRIPTION:
; 1877 !
; 1878 !
; 1879 ! FORMAL PARAMETERS:
; 1880 ! None
; 1881 !
; 1882 ! IMPLICIT INPUTS:
; 1883 ! None
; 1884 !
; 1885 ! IMPLICIT OUTPUTS:
; 1886 ! None
; 1887 !
; 1888 ! ROUTINE VALUE:
; 1889 ! COMPLETION CODES:
; 1890 ! None
; 1891 !
; 1892 ! SIDE EFFECTS:
; 1893 ! None
; 1894 !--
; 1895
; 1896 begin
; 1897
; 1898 map
; 1899 CCB : ref block field (C_FIELDS),
; 1900 DB : ref block field (D_FIELDS);
; 1901
; 1902 CCB [C_PIX] = .PIX;
; 1903 CCB [C_FNC] = FC_XME;
; 1904 CCB [C_MOD] = S$ACC;
; 1905 CCB [C_LIN] = .LLA;
; 1906 CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] = .ULA;
; 1907 CCB [$SUB_FIELD (C_PRM1, 0, 8, 8, 0)] = .FLOW;
; 1908 LLCRS$ (.CCB);
; 1909 end; !of routine SND_ACC
.SBTTL SND.ACC
000000 010446 SND.ACC:MOV R4,-(SP) ; 1873
000002 116664 000012 000011 MOVB 12(SP),11(R4) ; PIX,*(CCB) 1902
000010 112764 000002 000012 MOVB #2,12(R4) ; *,*(CCB) 1903
000016 112764 000002 000013 MOVB #2,13(R4) ; *,*(CCB) 1904
000024 116664 000010 000010 MOVB 10(SP),10(R4) ; LLA,*(CCB) 1905
000032 116664 000006 000024 MOVB 6(SP),24(R4) ; ULA,*(CCB) 1906
000040 116664 000004 000025 MOVB 4(SP),25(R4) ; FLOW,*(CCB) 1907
000046 004767 000000G JSR PC,$SCHED ; 1908
000052 012604 MOV (SP)+,R4 ; 1873
000054 000207 RTS PC
; Routine Size: 23 words, Routine Base: $CODE$ + 5136
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 72
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (16)
; Maximum stack depth per invocation: 2 words
; 1910
; 1911
; 1912
; 1913
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 73
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (17)
; 1914 routine SND_DIS (DB, CCB, PIX, LLA, ULA) : LINKAGE_DB_CCB novalue =
; 1915
; 1916 !++
; 1917 ! FUNCTIONAL DESCRIPTION:
; 1918 !
; 1919 !
; 1920 ! FORMAL PARAMETERS:
; 1921 ! None
; 1922 !
; 1923 ! IMPLICIT INPUTS:
; 1924 ! None
; 1925 !
; 1926 ! IMPLICIT OUTPUTS:
; 1927 ! None
; 1928 !
; 1929 ! ROUTINE VALUE:
; 1930 ! COMPLETION CODES:
; 1931 ! None
; 1932 !
; 1933 ! SIDE EFFECTS:
; 1934 ! None
; 1935 !--
; 1936
; 1937 begin
; 1938
; 1939 map
; 1940 CCB : ref block field (C_FIELDS),
; 1941 DB : ref block field (D_FIELDS);
; 1942
; 1943 bind
; 1944 LINK = blockvector [.DB [D_ADDR], .ULA - 1, 0, 0, 0, 0; 0, L_LENGTH]
; 1945 : block field (L_FIELDS);
; 1946
; 1947 LINK [ls_dip] = true;
; 1948 CCB [C_PIX] = .PIX;
; 1949 CCB [C_LIX] = .LLA;
; 1950 CCB [C_FNC] = FC_XME;
; 1951 CCB [C_MOD] = S$DIS;
; 1952 CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] = .ULA;
; 1953 LLCRS$ (.CCB);
; 1954 end; !of routine SND_DIS
.SBTTL SND.DIS
000000 010446 SND.DIS:MOV R4,-(SP) ; 1914
000002 010400 MOV R4,R0 ; *,CCB
000004 016604 000004 MOV 4(SP),R4 ; ULA,* 1944
000010 072427 000005 ASH #5,R4
000014 066504 000004 ADD 4(R5),R4 ; *(DB),*
000020 052764 000400 177740 BIS #400,-40(R4) ; 1947
000026 116660 000010 000011 MOVB 10(SP),11(R0) ; PIX,*(CCB) 1948
000034 116660 000006 000010 MOVB 6(SP),10(R0) ; LLA,*(CCB) 1949
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 74
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (17)
000042 112760 000002 000012 MOVB #2,12(R0) ; *,*(CCB) 1950
000050 112760 000020 000013 MOVB #20,13(R0) ; *,*(CCB) 1951
000056 116660 000004 000024 MOVB 4(SP),24(R0) ; ULA,*(CCB) 1952
000064 010004 MOV R0,R4 ; CCB,* 1953
000066 004767 000000G JSR PC,$SCHED
000072 012604 MOV (SP)+,R4 ; 1914
000074 000207 RTS PC
; Routine Size: 31 words, Routine Base: $CODE$ + 5214
; Maximum stack depth per invocation: 2 words
; 1955
; 1956
; 1957
; 1958
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 75
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (18)
; 1959 routine SND_DRQ (DB, CCB, PIX, LLA, ULA, SEG) : LINKAGE_DB_CCB novalue =
; 1960
; 1961 !++
; 1962 ! FUNCTIONAL DESCRIPTION:
; 1963 !
; 1964 !
; 1965 ! FORMAL PARAMETERS:
; 1966 ! None
; 1967 !
; 1968 ! IMPLICIT INPUTS:
; 1969 ! None
; 1970 !
; 1971 ! IMPLICIT OUTPUTS:
; 1972 ! None
; 1973 !
; 1974 ! ROUTINE VALUE:
; 1975 ! COMPLETION CODES:
; 1976 ! None
; 1977 !
; 1978 ! SIDE EFFECTS:
; 1979 ! None
; 1980 !--
; 1981
; 1982 begin
; 1983
; 1984 map
; 1985 CCB : ref block field (C_FIELDS),
; 1986 DB : ref block field (D_FIELDS);
; 1987
; 1988 CCB [C_PIX] = .PIX;
; 1989 CCB [C_LIX] = .LLA;
; 1990 CCB [C_FNC] = FC_XME;
; 1991 CCB [C_MOD] = S$DRQ;
; 1992 CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] = .ULA;
; 1993 CCB [$SUB_FIELD (C_PRM1, 0, 8, 8, 0)] = .SEG;
; 1994 LLCRS$ (.CCB);
; 1995 end; !of routine SND_DRQ
.SBTTL SND.DRQ
000000 010446 SND.DRQ:MOV R4,-(SP) ; 1959
000002 116664 000012 000011 MOVB 12(SP),11(R4) ; PIX,*(CCB) 1988
000010 116664 000010 000010 MOVB 10(SP),10(R4) ; LLA,*(CCB) 1989
000016 112764 000002 000012 MOVB #2,12(R4) ; *,*(CCB) 1990
000024 112764 000012 000013 MOVB #12,13(R4) ; *,*(CCB) 1991
000032 116664 000006 000024 MOVB 6(SP),24(R4) ; ULA,*(CCB) 1992
000040 116664 000004 000025 MOVB 4(SP),25(R4) ; SEG,*(CCB) 1993
000046 004767 000000G JSR PC,$SCHED ; 1994
000052 012604 MOV (SP)+,R4 ; 1959
000054 000207 RTS PC
; Routine Size: 23 words, Routine Base: $CODE$ + 5312
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 76
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (18)
; Maximum stack depth per invocation: 2 words
; 1996
; 1997
; 1998
; 1999
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 77
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (19)
; 2000 routine SND_IRQ (DB, CCB, PIX, LLA, ULA) : LINKAGE_DB_CCB novalue =
; 2001
; 2002 !++
; 2003 ! FUNCTIONAL DESCRIPTION:
; 2004 !
; 2005 !
; 2006 ! FORMAL PARAMETERS:
; 2007 ! None
; 2008 !
; 2009 ! IMPLICIT INPUTS:
; 2010 ! None
; 2011 !
; 2012 ! IMPLICIT OUTPUTS:
; 2013 ! None
; 2014 !
; 2015 ! ROUTINE VALUE:
; 2016 ! COMPLETION CODES:
; 2017 ! None
; 2018 !
; 2019 ! SIDE EFFECTS:
; 2020 ! None
; 2021 !--
; 2022
; 2023 begin
; 2024
; 2025 map
; 2026 CCB : ref block field (C_FIELDS),
; 2027 DB : ref block field (D_FIELDS);
; 2028
; 2029 CCB [C_PIX] = .PIX;
; 2030 CCB [C_LIX] = .LLA;
; 2031 CCB [C_FNC] = FC_XME;
; 2032 CCB [C_MOD] = S$IRQ;
; 2033 CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] = .ULA;
; 2034 CCB [$SUB_FIELD (C_PRM1, 0, 8, 8, 0)] = 1;
; 2035 LLCRS$ (.CCB);
; 2036 end; !of routine SND_IRQ
.SBTTL SND.IRQ
000000 010446 SND.IRQ:MOV R4,-(SP) ; 2000
000002 116664 000010 000011 MOVB 10(SP),11(R4) ; PIX,*(CCB) 2029
000010 116664 000006 000010 MOVB 6(SP),10(R4) ; LLA,*(CCB) 2030
000016 112764 000002 000012 MOVB #2,12(R4) ; *,*(CCB) 2031
000024 112764 000016 000013 MOVB #16,13(R4) ; *,*(CCB) 2032
000032 116664 000004 000024 MOVB 4(SP),24(R4) ; ULA,*(CCB) 2033
000040 112764 000001 000025 MOVB #1,25(R4) ; *,*(CCB) 2034
000046 004767 000000G JSR PC,$SCHED ; 2035
000052 012604 MOV (SP)+,R4 ; 2000
000054 000207 RTS PC
; Routine Size: 23 words, Routine Base: $CODE$ + 5370
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 78
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (19)
; Maximum stack depth per invocation: 2 words
; 2037
; 2038
; 2039
; 2040
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 79
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (20)
; 2041 routine SND_REJ (DB, CCB, PIX, LLA, ULA) : LINKAGE_DB_CCB novalue =
; 2042
; 2043 !++
; 2044 ! FUNCTIONAL DESCRIPTION:
; 2045 !
; 2046 !
; 2047 ! FORMAL PARAMETERS:
; 2048 ! None
; 2049 !
; 2050 ! IMPLICIT INPUTS:
; 2051 ! None
; 2052 !
; 2053 ! IMPLICIT OUTPUTS:
; 2054 ! None
; 2055 !
; 2056 ! ROUTINE VALUE:
; 2057 ! COMPLETION CODES:
; 2058 ! None
; 2059 !
; 2060 ! SIDE EFFECTS:
; 2061 ! None
; 2062 !--
; 2063
; 2064 begin
; 2065
; 2066 map
; 2067 CCB : ref block field (C_FIELDS),
; 2068 DB : ref block field (D_FIELDS);
; 2069
; 2070 bind
; 2071 LINK = blockvector [.DB [D_ADDR], .ULA - 1, 0, 0, 0, 0; 0, L_LENGTH]
; 2072 : block field (L_FIELDS);
; 2073
; 2074 LINK [ls_dip] = true;
; 2075 CCB [C_PIX] = .PIX;
; 2076 CCB [C_FNC] = FC_XME;
; 2077 CCB [C_MOD] = S$REJ;
; 2078 CCB [C_LIN] = .LLA;
; 2079 CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] = .ULA;
; 2080 CCB [C_PRM2] = S_ERBO;
; 2081 LLCRS$ (.CCB);
; 2082 end; !of routine SND_REJ
.SBTTL SND.REJ
000000 010446 SND.REJ:MOV R4,-(SP) ; 2041
000002 010400 MOV R4,R0 ; *,CCB
000004 016604 000004 MOV 4(SP),R4 ; ULA,* 2071
000010 072427 000005 ASH #5,R4
000014 066504 000004 ADD 4(R5),R4 ; *(DB),*
000020 052764 000400 177740 BIS #400,-40(R4) ; 2074
000026 116660 000010 000011 MOVB 10(SP),11(R0) ; PIX,*(CCB) 2075
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 80
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (20)
000034 112760 000002 000012 MOVB #2,12(R0) ; *,*(CCB) 2076
000042 112760 000004 000013 MOVB #4,13(R0) ; *,*(CCB) 2077
000050 116660 000006 000010 MOVB 6(SP),10(R0) ; LLA,*(CCB) 2078
000056 116660 000004 000024 MOVB 4(SP),24(R0) ; ULA,*(CCB) 2079
000064 012760 177754 000026 MOV #-24,26(R0) ; *,*(CCB) 2080
000072 010004 MOV R0,R4 ; CCB,* 2081
000074 004767 000000G JSR PC,$SCHED
000100 012604 MOV (SP)+,R4 ; 2041
000102 000207 RTS PC
; Routine Size: 34 words, Routine Base: $CODE$ + 5446
; Maximum stack depth per invocation: 2 words
; 2083
; 2084
; 2085
; 2086
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 81
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (21)
; 2087 routine SND_SND (DB, CCB, PIX, LLA, ULA, EOM) : LINKAGE_DB_CCB novalue =
; 2088
; 2089 !++
; 2090 ! FUNCTIONAL DESCRIPTION:
; 2091 !
; 2092 !
; 2093 ! FORMAL PARAMETERS:
; 2094 ! None
; 2095 !
; 2096 ! IMPLICIT INPUTS:
; 2097 ! None
; 2098 !
; 2099 ! IMPLICIT OUTPUTS:
; 2100 ! None
; 2101 !
; 2102 ! ROUTINE VALUE:
; 2103 ! COMPLETION CODES:
; 2104 ! None
; 2105 !
; 2106 ! SIDE EFFECTS:
; 2107 ! None
; 2108 !--
; 2109
; 2110 begin
; 2111
; 2112 map
; 2113 CCB : ref block field (C_FIELDS),
; 2114 DB : ref block field (D_FIELDS);
; 2115
; 2116 CCB [C_PIX] = .PIX;
; 2117 CCB [C_LIX] = .LLA;
; 2118 CCB [C_FNC] = FC_XME;
; 2119 CCB [C_MOD] = S$SND;
; 2120 CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] = .ULA;
; 2121 CCB [$SUB_FIELD (C_PRM1, 0, 8, 8, 0)] = .EOM;
; 2122 LLCRS$ (.CCB);
; 2123 end; !of routine SND_SND
.SBTTL SND.SND
000000 010446 SND.SND:MOV R4,-(SP) ; 2087
000002 116664 000012 000011 MOVB 12(SP),11(R4) ; PIX,*(CCB) 2116
000010 116664 000010 000010 MOVB 10(SP),10(R4) ; LLA,*(CCB) 2117
000016 112764 000002 000012 MOVB #2,12(R4) ; *,*(CCB) 2118
000024 112764 000006 000013 MOVB #6,13(R4) ; *,*(CCB) 2119
000032 116664 000006 000024 MOVB 6(SP),24(R4) ; ULA,*(CCB) 2120
000040 116664 000004 000025 MOVB 4(SP),25(R4) ; EOM,*(CCB) 2121
000046 004767 000000G JSR PC,$SCHED ; 2122
000052 012604 MOV (SP)+,R4 ; 2087
000054 000207 RTS PC
; Routine Size: 23 words, Routine Base: $CODE$ + 5552
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 82
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (21)
; Maximum stack depth per invocation: 2 words
; 2124
; 2125
; 2126
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 83
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (22)
; 2127 routine SND_SNI (DB, CCB, PIX, LLA, ULA) : LINKAGE_DB_CCB novalue =
; 2128
; 2129 !++
; 2130 ! FUNCTIONAL DESCRIPTION:
; 2131 !
; 2132 !
; 2133 ! FORMAL PARAMETERS:
; 2134 ! None
; 2135 !
; 2136 ! IMPLICIT INPUTS:
; 2137 ! None
; 2138 !
; 2139 ! IMPLICIT OUTPUTS:
; 2140 ! None
; 2141 !
; 2142 ! ROUTINE VALUE:
; 2143 ! COMPLETION CODES:
; 2144 ! None
; 2145 !
; 2146 ! SIDE EFFECTS:
; 2147 ! None
; 2148 !--
; 2149
; 2150 begin
; 2151
; 2152 map
; 2153 CCB : ref block field (C_FIELDS),
; 2154 DB : ref block field (D_FIELDS);
; 2155
; 2156 CCB [C_PIX] = .PIX;
; 2157 CCB [C_LIX] = .LLA;
; 2158 CCB [C_FNC] = FC_XME;
; 2159 CCB [C_MOD] = S$SNI;
; 2160 CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] = .ULA;
; 2161 LLCRS$ (.CCB);
; 2162 end; !of routine SND_SNI
.SBTTL SND.SNI
000000 010446 SND.SNI:MOV R4,-(SP) ; 2127
000002 116664 000010 000011 MOVB 10(SP),11(R4) ; PIX,*(CCB) 2156
000010 116664 000006 000010 MOVB 6(SP),10(R4) ; LLA,*(CCB) 2157
000016 112764 000002 000012 MOVB #2,12(R4) ; *,*(CCB) 2158
000024 112764 000014 000013 MOVB #14,13(R4) ; *,*(CCB) 2159
000032 116664 000004 000024 MOVB 4(SP),24(R4) ; ULA,*(CCB) 2160
000040 004767 000000G JSR PC,$SCHED ; 2161
000044 012604 MOV (SP)+,R4 ; 2127
000046 000207 RTS PC
; Routine Size: 20 words, Routine Base: $CODE$ + 5630
; Maximum stack depth per invocation: 2 words
; 2163
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 84
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (22)
; 2164
; 2165
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 85
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (23)
; 2166 routine PATTERN_CHECK (DB, CCB) : LINKAGE_DB_CCB =
; 2167
; 2168 !++
; 2169 ! FUNCTIONAL DESCRIPTION:
; 2170 !
; 2171 !
; 2172 ! FORMAL PARAMETERS:
; 2173 ! None
; 2174 !
; 2175 ! IMPLICIT INPUTS:
; 2176 ! None
; 2177 !
; 2178 ! IMPLICIT OUTPUTS:
; 2179 ! None
; 2180 !
; 2181 ! ROUTINE VALUE:
; 2182 ! COMPLETION CODES:
; 2183 ! None
; 2184 !
; 2185 ! SIDE EFFECTS:
; 2186 ! None
; 2187 !--
; 2188
; 2189 begin
; 2190
; 2191 map
; 2192 CCB : ref block field (C_FIELDS),
; 2193 DB : ref block field (D_FIELDS);
; 2194
; 2195 bind
; 2196 LINK = blockvector [.DB [D_ADDR], .CCB [$SUB_FIELD (C_PRM1, 0, 0, 8, 0)] - 1, 0, 0, 0, 0; 0, L_LENGTH]
; 2197 : block field (L_FIELDS);
; 2198
; 2199 local
; 2200 chr,
; 2201 chr_ptr,
; 2202 buff_ptr,
; 2203 count;
; 2204
; 2205
; 2206 count = .CCB[C_CNT];
; 2207 buff_ptr = .CCB[C_ADDR];
; 2208 chr_ptr = ch$ptr( chr);
; 2209
; 2210 if ((( .CCB[$sub_field( C_PRM1, byte_1)] and S$PBOM) neq 0) and
; 2211 .LINK[L_TEST] eql 1) or
; 2212 (.LINK[L_TEST] eql 3)
; 2213 then
; 2214 begin
; 2215 buff_ptr = ch$plus( .CCB[C_ADDR], 4);
; 2216 count = .count -4;
; 2217 chr = %c'A';
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 86
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (23)
; 2218 end
; 2219 else
; 2220 chr = .LINK[L_PATTERN_CHARACTER];
; 2221
; 2222 While .count neq 0 do
; 2223 begin
; 2224 if ch$eql( 1, .chr_ptr, 1, .buff_ptr, 0)
; 2225 then
; 2226 begin
; 2227 count = .count - 1;
; 2228 buff_ptr = ch$plus( .buff_ptr, 1);
; 2229 if .chr eql %c'Z'
; 2230 then
; 2231 chr = %c'0'
; 2232 else
; 2233 begin
; 2234 if .chr eql %c'9'
; 2235 then
; 2236 chr = %c'A'
; 2237 else
; 2238 chr = .chr + 1;
; 2239 end
; 2240 end
; 2241 else
; 2242 return false;
; 2243 end;
; 2244 LINK[L_PATTERN_CHARACTER] = .chr;
; 2245 return true;
; 2246 end;
.SBTTL PATTERN.CHECK
000000 004167 000000G PATTERN.CHECK:
JSR R1,$SAVE5 ; 2166
000004 005746 TST -(SP)
000006 010400 MOV R4,R0 ; *,CCB
000010 005004 CLR R4 ; 2196
000012 156004 000024 BISB 24(R0),R4 ; *(CCB),*
000016 072427 000005 ASH #5,R4
000022 066504 000004 ADD 4(R5),R4 ; *(DB),*
000026 162704 000040 SUB #40,R4 ; 2189
000032 016005 000022 MOV 22(R0),R5 ; *(CCB),COUNT 2206
000036 016001 000020 MOV 20(R0),R1 ; *(CCB),BUFF.PTR 2207
000042 010602 MOV SP,R2 ; CHR,CHR.PTR 2208
000044 032760 000400 000024 BIT #400,24(R0) ; *,*(CCB) 2210
000052 001404 BEQ 1$
000054 126427 000003 000001 CMPB 3(R4),#1 ; 2211
000062 001404 BEQ 2$
000064 126427 000003 000003 1$: CMPB 3(R4),#3 ; 2212
000072 001007 BNE 3$
000074 016001 000020 2$: MOV 20(R0),R1 ; *(CCB),BUFF.PTR 2215
000100 062701 000004 ADD #4,R1 ; *,BUFF.PTR
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 87
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (23)
000104 162705 000004 SUB #4,R5 ; *,COUNT 2216
000110 000434 BR 6$ ; 2217
000112 016416 000034 3$: MOV 34(R4),(SP) ; *,CHR 2220
000116 005705 4$: TST R5 ; COUNT 2222
000120 001435 BEQ 8$
000122 012746 000001 MOV #1,-(SP) ; 2224
000126 010246 MOV R2,-(SP) ; CHR.PTR,*
000130 012746 000001 MOV #1,-(SP)
000134 010146 MOV R1,-(SP) ; BUFF.PTR,*
000136 005046 CLR -(SP)
000140 004767 000000G JSR PC,BL$EQL
000144 062706 000012 ADD #12,SP
000150 006000 ROR R0
000152 103025 BCC 9$
000154 005305 DEC R5 ; COUNT 2227
000156 005201 INC R1 ; BUFF.PTR 2228
000160 021627 000132 CMP (SP),#132 ; CHR,* 2229
000164 001003 BNE 5$
000166 012716 000060 MOV #60,(SP) ; *,CHR 2231
000172 000751 BR 4$ ; 2229
000174 021627 000071 5$: CMP (SP),#71 ; CHR,* 2234
000200 001003 BNE 7$
000202 012716 000101 6$: MOV #101,(SP) ; *,CHR 2236
000206 000743 BR 4$ ; 2234
000210 005216 7$: INC (SP) ; CHR 2238
000212 000741 BR 4$ ; 2224
000214 011664 000034 8$: MOV (SP),34(R4) ; CHR,* 2244
000220 012700 000001 MOV #1,R0 ; 2189
000224 000401 BR 10$
000226 005000 9$: CLR R0 ; 2166
000230 005726 10$: TST (SP)+
000232 000207 RTS PC
; Routine Size: 78 words, Routine Base: $CODE$ + 5700
; Maximum stack depth per invocation: 13 words
; 2247
; 2248 end
; 2249
; 2250 eludom
; OTS external references
.GLOBL $SAVE5, $STOP, $IGNAL, BL$EQL
.GLOBL BL$MOV
; PSECT SUMMARY
;
; Psect Name Words Attributes
DTR 25-Jan-1983 10:48:44 TOPS-20 Bliss-16 2A(530) Page 88
X01110 30-Dec-1982 01:50:57 NETPKG:<CEX>DTR.B16.8 (23)
; $PLIT$ 64 RO , D , LCL, REL, CON
; $CODE$ 1582 RO , I , LCL, REL, CON
; ...... 16 RW , D , LCL, REL, CON
; LIBRARY STATISTICS
;
; -------- Symbols -------- Blocks
; File Total Loaded Percent Read
;
; NETPKG:<MCB>MCBLIB.L16.15 372 57 15 0
; NETPKG:<MCB>XPORTX.L16.15 599 40 6 0
; Size: 1582 code + 80 data words
; Run Time: 00:47.2
; Elapsed Time: 02:39.3
; Memory Used: 124 pages
; Compilation Complete