Trailing-Edge
-
PDP-10 Archives
-
TOPS-20_V6.1_DECnetSrc_7-23-85
-
mcb/sc/scxdsp.lst
There is 1 other file named scxdsp.lst in the archive. Click here to see a list.
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 1
30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (1)
; 0001 module SCXDSP ( ! RSX User Interface Module
; 0002 ident = 'X01340'
; 0003 ) =
; 0004 begin
; 0005 !
; 0006 ! COPYRIGHT (c) 1980, 1981, 1982
; 0007 ! DIGITAL EQUIPMENT CORPORATION
; 0008 ! Maynard, Massachusetts
; 0009 !
; 0010 ! This software is furnished under a license and may be used
; 0011 ! and copied only in accordance with the terms of such license
; 0012 ! and with the inclusion of the above copyright notice. This
; 0013 ! software or any other copies thereof may not be provided or
; 0014 ! otherwise made available to any other person. No title to
; 0015 ! and ownership of the software is hereby transferred.
; 0016 !
; 0017 ! The information in this software is subject to change
; 0018 ! without notice and should not be construed as a commitment
; 0019 ! by DIGITAL EQUIPMENT CORPORATION.
; 0020 !
; 0021 ! DIGITAL assumes no responsibility for the use or reliability
; 0022 ! of its software on equipment which is not supplied by
; 0023 ! DIGITAL.
; 0024 !
; 0025
; 0026
; 0027
; 0028 !++
; 0029 !
; 0030 ! FACILITY: Session Control
; 0031 !
; 0032 ! ABSTRACT: This module handles all I/O packets originating from
; 0033 ! the user, destined for Session Control. The I/O packets
; 0034 ! are handled like those in a device service routine.
; 0035 ! CCBs arriving from Session Control are also handled here.
; 0036 !
; 0037 ! ENVIRONMENT: MCB
; 0038 !
; 0039 ! AUTHOR: Buren Hoffman CREATION DATE: 1-Aug-80
; 0040 !
; 0041 ! MODIFIED BY:
; 0042 ! X01010 Changed code to use $byt_ptr macro in place of the
; 0043 ! ch$ptr macro.
; 0044 ! X01020 Fixed faulty dispatch vector processing, and
; 0045 ! fixed xportability problems, concerning number of
; 0046 ! bytes per word.
; 0047 ! X01030 Corrected memory allocation problem in U$OPN.
; 0048 ! X01040 Updated signal_stop processing to show more info.
; 0049 ! X01050 Provide own queueing - can't use the CCB queueing
; 0050 ! facilities in MCB, because they are for CCBs only.
; 0051 ! X01060 Fixed byte-vector handling problem in user interface.
; 0052 ! X01070 Use new Comm/Exec to process linkage (.CRDAT for database)
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 2
X01340 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (1)
; 0053 ! X01080 Upgraded GLN support to return node addresses, ...
; 0054 ! X01090 Updated to use library calls, instead of requires.
; 0055 ! X01100 Fixed return to RSX so that RSX$ call is done before
; 0056 ! returning.
; 0057 ! X01110 Repaired bug in LUN number calculation.
; 0058 ! X01120 Numerous minor bug fixes.
; 0059 ! X01130 Added call to AST queueing routine.
; 0060 ! X01140 Put in bullet proofing to keep user from using
; 0061 ! unopened link.
; 0062 ! X01150 Fixed resource wait dispatch vectors.
; 0063 ! X01160 Fixed disconnect/reject/timeout processing to
; 0064 ! keep proper count of active links.
; 0065 ! X01170 Fix for memory and link management in abort/disconnect
; 0066 ! processing.
; 0067 ! X01180 ?
; 0068 ! X01190 Changed code in user abort or disconnect to expect
; 0069 ! optional data as in a transfer function.
; 0070 ! X01200 Changed disconnect processing to use control format
; 0071 ! instead of the transfer function format.
; 0072 ! X01210 Fixed memory management bug in Reject processing.
; 0073 ! X01220 Took out fix of X01210, it was wrong.
; 0074 ! X01230 Did away with old LLLTM$ clock usage - went to new clock.
; 0075 ! X01240 Fixed LN2 cleanup on connect failures.
; 0076 ! X01250 Optimization work.
; 0077 ! X01260 Fixed error where database was being set up before $mcb call.
; 0078 ! X01270 Fix for disconnect-received before connect received completion,
; 0079 ! and fixed context error for $HEADR reference while in MCB mode.
; 0080 ! X01280 Cleaned up LNK deallocation bug.
; 0081 ! X01290 Fix of DSR management bug in connect-received processing.
; 0082 ! X01300 Fixed active-link count for connect failure.
; 0083 ! x01310 Use DSR space instead of LDB's for connect info
; 0084 ! X01320 Fixed connect-accept failure to properly clean up link.
; 0085 ! X01330 Repaired race condition when disconnect received.
; 0086 ! X01340 Work on bug uncovered by edit #34.
; 0087 !--
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 3
X01340 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (2)
; 0088 !
; 0089 ! INCLUDE FILES:
; 0090 !
; 0091 library 'SCPRM'; ! Our parameter and macro definitions
; 0092 library 'MCB:MCBLIB';
; 0093 library 'MCB:RSXLIB';
; 0094 library 'MCB:XPORTX';
; 0095 library 'MCB:SCSYS';
; 0096
; 0097 require 'SCRSX';
; 0191
; 0192 !
; 0193 ! TABLE OF CONTENTS:
; 0194 !
; 0195 forward routine
; 0196 U$DSP: rsx_ucb_scb_iop novalue, ! QIO dispatch
; 0197
; 0198 UFCRCP: mcb_db_ccb_mod novalue, ! Receive complete
; 0199 UFCTMO: mcb_db_ccb_mod novalue, ! Timeout
; 0200 UFCXCP: mcb_db_ccb_mod novalue; ! Transmit complete
; 0201
; 0202 !
; 0203 ! MACROS:
; 0204 !
; 0205
; 0206 !
; 0207 ! EQUATED SYMBOLS:
; 0208 !
; 0209
; 0210 !
; 0211 ! OWN STORAGE:
; 0212 !
; 0213
; 0214 !
; 0215 ! EXTERNAL REFERENCES:
; 0216 !
; 0217 external
; 0218 $DSPCR,
; 0219 $HEADR: ref block field (HDR_FIELDS);
; 0220
; 0221 external routine
; 0222 SRUDSW: novalue, ! Disconnect-received-wait
; 0223 SRUINW: novalue, ! Interrupt-received-wait
; 0224
; 0225 U$ABW: novalue, ! Abort-wait
; 0226 U$ACW: novalue, ! Accept-wait
; 0227 U$ARQ: novalue, ! * Abort-request-wait *
; 0228 U$CLW: novalue, ! Close-wait
; 0229 U$CNW: novalue, ! Connect-wait-processing
; 0230 U$DSW: novalue, ! Disconnect-wait
; 0231 U$GLW: novalue, ! Get-local-node-information-wait
; 0232 U$IRQ: novalue, ! * Interrupt-request-wait *
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 4
X01340 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (2)
; 0233 U$RCW: novalue, ! Receive-wait
; 0234 U$RJW: novalue, ! Reject-wait
; 0235 U$SNW: novalue, ! Send-wait
; 0236 U$XMW: novalue, ! Send-interrupt-wait
; 0237
; 0238 BUFCHK, ! User buffer verification and mapping
; 0239 FNDOBJ, ! Find specified object task
; 0240 GETLCB, ! Obtain and init LCB
; 0241 LCBKIL: novalue, ! Unlink and deallocate LCB
; 0242 MBPROC, ! Process mailbox queue
; 0243 NOOP: novalue, ! This routine just returns
; 0244 QUEAST, ! Queue an AST to RSX
; 0245 STXMAP, ! Map from SC codes to RSX User codes
; 0246 ULAGET, ! Find available ULA
; 0247 ULARD, ! Read specified ULA entry
; 0248 ULASET: novalue; ! Set value in specified ULA entry
; 0249
; 0250
; 0251 !++
; 0252 !
; 0253 ! *** RSX DISPATCH VECTOR ***
; 0254 !
; 0255 ! This vector is the route via which RSX dispatches
; 0256 ! IOPs to SCX.
; 0257 !
; 0258 !--
; 0259
; 0260 global bind
; 0261 $NSTBL = uplit (
; 0262 U$DSP, ! QIO dispatcher
; 0263 NOOP, ! I/O cancellation
; 0264 NOOP, ! Timeout
; 0265 NOOP), ! Power failure
; 0266
; 0267 $ODSP = uplit (
; 0268 uplit (U$SNW, U$XMW), ! IOP_XMT
; 0269 uplit (U$RCW), ! IOP_RCV
; 0270 uplit (U$CNW, U$ACW), ! IOP_CON
; 0271 uplit (U$DSW, U$ABW, U$RJW), ! IOP_DSC
; 0272 uplit (U$CLW, U$CLW, -1, -1, -1, -1, -1, U$GLW)), ! IOP_CTL
; 0273
; 0274 $IDSP = uplit (
; 0275 none_such, !
; 0276 none_such, !
; 0277 SRUINW, ! Interrupt received
; 0278 SRUDSW); ! Disconnect received
; 0279
; 0280
; 0281 !++
; 0282 !
; 0283 ! *** MCB DISPATCH VECTOR ***
; 0284 !
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 5
X01340 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (2)
; 0285 ! This vector is the route via which the MCB dispatches
; 0286 ! CCBs to SCX.
; 0287 !
; 0288 !--
; 0289
; 0290 global bind
; P 0291 $SCXLL = TABLE$ ($DSPCR, FC_CCP,
; P 0292 (FC_TIM, UFCTMO), ! UFCTMO - Timeout
; P 0293 (FC_XCP, UFCXCP), ! UFCXCP - Transmit complete
; 0294 (FC_RCP, UFCRCP)); ! UFCRCP - Receive complete
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 6
X01340 User Interface 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (3)
; 0295 %sbttl 'User Interface';
; 0296 routine U$DSP (UCB, SCB, IOP): RSX_UCB_SCB_IOP novalue =
; 0297
; 0298 !++
; 0299 ! FUNCTIONAL DESCRIPTION:
; 0300 !
; 0301 !
; 0302 ! FORMAL PARAMETERS:
; 0303 ! UCB The unit control block
; 0304 ! SCB The Status Control Block
; 0305 ! IOP The I/O packet
; 0306 !
; 0307 ! IMPLICIT INPUTS:
; 0308 ! IOP, SCB, & UCB contents
; 0309 !
; 0310 ! IMPLICIT OUTPUTS:
; 0311 ! None
; 0312 !
; 0313 ! ROUTINE VALUE:
; 0314 ! COMPLETION CODES:
; 0315 ! None
; 0316 !
; 0317 ! SIDE EFFECTS:
; 0318 ! None
; 0319 !--
; 0320
; 0321 begin
; 0322 map IOP: ref block field (IOP_FIELDS);
; 0323 local
; 0324 LUN,
; 0325 MODIFIER,
; 0326 QFLAG,
; 0327 STS,
; 0328 COUNT: byte_vector [2],
; 0329 SCXDB: ref block field (SCXDB_FIELDS),
; 0330 LCB: ref block field (LCB_FIELDS),
; 0331 MB_PREV: ref block field (MBP_FIELDS),
; 0332 MB: ref block field (MBP_FIELDS),
; 0333 STATUS: byte_vector [2],
; 0334 TNB: ref block field (TNB_FIELDS);
; 0335 bind
; 0336 COUNT_WORD = COUNT [0],
; 0337 STATUS_WORD = STATUS [0];
; 0338 label
; 0339 DATA_PROC,
; 0340 CONNECT_PROC,
; 0341 DISCONNECT_PROC,
; 0342 CONTROL_PROC;
; 0343 compiletime
; 0344 LUN_OFFSET = %fieldexpand (H_LUN, 0) * %upval;
; 0345
; 0346 ! ** Become an MCB process
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 7
X01340 User Interface 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (3)
; 0347 MCB$ (.UCB, SCXDB);
; 0348 STATUS_WORD = 0; ! Initialize the STATUS vector
; 0349 STS = 0; ! and status flag
; 0350 COUNT_WORD = 0; ! and COUNT variables
; 0351 QFLAG = true; ! Assume to queue it to LC_OQUE
; L 0352 %if %bliss (bliss36)
; U 0353 %then
; U 0354 IOP [I_LN2] = (.IOP [I_LN2])^%upval + .$HEADR + LUN_OFFSET - %upval;
; 0355 %fi
; 0356
; 0357 LUN = (.IOP [I_LN2] - .$HEADR - LUN_OFFSET + %upval) ^-%upval;
; 0358 LCB = TNB = (.(.IOP [I_LN2]) and -2);
; 0359 MODIFIER = .IOP [I_MOD] and %o'177';
; 0360
; 0361 STS =
; 0362 begin
; 0363 if (.IOP [I_FNC] eql IOP_CTL) and (.MODIFIER eql IOP$OPN) ! If OPEN
; 0364 then (if .$HEADR [H_NML] neq 0 then IE_PRI else IS_SUC) ! Can't have two
; 0365 else (if .$HEADR [H_NML] eql 0 then IE_PRI else IS_SUC) ! But must have one
; 0366 end;
; 0367
; 0368 if .STS eql IS_SUC
; 0369 then STS =
; 0370 begin
; 0371 case .IOP [I_FNC] from IOP_LO to IOP_HI of
; 0372 set
; 0373
; 0374 ! ***************************
; 0375 ! ** Send and Receive Data **
; 0376 ! ***************************
; 0377 [IOP_XMT, IOP_RCV]: DATA_PROC:
; 0378 ! Expected inputs
; 0379 ! I_PRM1 = Buffer bias
; 0380 ! I_PRM2 = Buffer address
; 0381 ! I_PRM3 = Buffer length
; 0382
; 0383 ! ***************************
; 0384 ! ** U$SND & U$INT & U$RCV **
; 0385 ! ***************************
; 0386 begin
; 0387 if (.LCB eql 0) or .LCB [LCF_DSC]
; 0388 then leave DATA_PROC with IE_PRI;
; 0389
; 0390 TNB = .LCB [LC_TNB];
; 0391 if .MODIFIER eql IOP$INT
; 0392 then
; 0393 begin
; 0394 $SCX_ENQUEUE (LCB [LC_NQUE], .IOP);
; 0395 QFLAG = false
; 0396 end;
; 0397
; 0398 IS_SUC
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 8
X01340 User Interface 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (3)
; 0399 end;
; 0400
; 0401
; 0402 ! ************************
; 0403 ! ** Connect Processing **
; 0404 ! ************************
; 0405 [IOP_CON]: CONNECT_PROC:
; 0406 begin
; 0407 if .LCB neq 0 then leave CONNECT_PROC with IE_PRI;
; 0408
; 0409 selectone .MODIFIER of
; 0410 set
; 0411
; 0412 ! ***********
; 0413 ! ** U$ACC **
; 0414 ! ***********
; 0415 [IOP$ACC]:
; 0416 ! Expected inputs
; 0417 ! I_PRM1 = Connect block bias
; 0418 ! I_PRM2 = " " address
; 0419 ! I_PRM3 = " " length
; 0420 ! I_PRM4 = Optional output buffer address
; 0421 ! I_PRM5 = " " " length
; 0422
; 0423 begin
; 0424 local
; 0425 TMP;
; 0426 bind
; 0427 CND = IOP [I_PRM2]: ref block field (CND_FIELDS);
; 0428
; 0429 if .IOP [I_PRM3] lss 2
; 0430 then leave CONNECT_PROC with IE_BAD;
; 0431
; 0432 if (TMP = BUFCHK (IOP [I_PRM4], IOP [I_PRM3], 16) lss 0)
; 0433 then leave CONNECT_PROC with .TMP;
; 0434
; 0435 TNB = .((.$HEADR [H_NML])^%upval + .$HEADR + LUN_OFFSET - %upval);
; 0436 MAP$ (.IOP [I_PRM1]); ! Look at connect block
; 0437 MB = TNB [TN_MBXQ]; ! Scan mailbox
; 0438 while (MB_PREV = .MB; MB = .MB [MB_LINK]) neq 0 do
; 0439 begin
; 0440 if .MB eql .CND [CND_TLA] then exitloop
; 0441 end;
; 0442
; 0443 if .MB eql 0 then leave CONNECT_PROC with IE_BAD;
; 0444
; 0445 if not GETLCB (TNB, LCB, .IOP [I_TCB])
; 0446 then leave CONNECT_PROC with IE_RSU;
; 0447 .IOP [I_LN2] = .LCB;
; 0448 LCB [LC_LUN] = .LUN;
; 0449 LCB [LC_LLA] = .MB [MB_LLA];
; 0450 if (MB_PREV [MB_LINK] = .MB [MB_LINK]) eql 0
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 9
X01340 User Interface 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (3)
; 0451 then TNB [TN_MBTL] = .MB_PREV;
; 0452 $MCB_RETURN_DSR (MBP_SIZE*bytes_word + .MB [MB_CNT], .MB)
; 0453 end;
; 0454
; 0455
; 0456 ! ***********
; 0457 ! ** U$CON **
; 0458 ! ***********
; 0459 [IOP$CON]:
; 0460 ! Expected inputs
; 0461 ! I_PRM1 = Connect block bias
; 0462 ! I_PRM2 = " " address
; 0463 ! I_PRM3 = " " length
; 0464 ! I_PRM4 = Optional output buffer address
; 0465 ! I_PRM5 = " " " length
; 0466 ! I_PRM6 = Optional input buffer address
; 0467 ! I_PRM7 = " " " length
; 0468
; 0469 begin
; 0470 local
; 0471 TMP;
; 0472
; 0473 if .IOP [I_PRM3] neq N_RQL
; 0474 then leave CONNECT_PROC with IE_BAD;
; 0475
; 0476 if ((TMP = BUFCHK (IOP [I_PRM4], IOP [I_PRM3], 16)) lss 0) or
; 0477 ((TMP = BUFCHK (IOP [I_PRM6], IOP [I_PRM6], 16)) lss 0)
; 0478 then leave CONNECT_PROC with .TMP;
; 0479
; 0480 if not GETLCB (TNB, LCB, .IOP [I_TCB])
; 0481 then leave CONNECT_PROC with IE_RSU;
; 0482 TNB [TN_ACT] = .TNB [TN_ACT] + 1;
; 0483 .IOP [I_LN2] = .LCB;
; 0484 LCB [LC_LUN] = .LUN
; 0485 end;
; 0486
; 0487
; 0488
; 0489 ! **********
; 0490 ! ** OOPS **
; 0491 ! **********
; 0492 [otherwise]: leave CONNECT_PROC with IE_PRI;
; 0493
; 0494 tes;
; 0495
; 0496 leave CONNECT_PROC with IS_SUC
; 0497 end;
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 10
X01340 User Interface 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (4)
; 0498 ! ***************************
; 0499 ! ** Disconnect Processing **
; 0500 ! ***************************
; 0501 [IOP_DSC]: DISCONNECT_PROC:
; 0502 ! Expected inputs
; 0503 ! I_PRM1 = " " address
; 0504 ! I_PRM2 = " " length
; 0505 ! I_PRM4 = Optional output buffer address (REJ only)
; 0506 ! I_PRM5 = " " " length ( " " )
; 0507
; 0508 begin
; 0509 local
; 0510 TMP;
; 0511
; 0512 IOP [I_PRM5] = .IOP [I_PRM4]; ! Copy PRM3 & PRM4
; 0513 IOP [I_PRM4] = .IOP [I_PRM3]; ! to make room for
; 0514 ! expanded address
; 0515 if (TMP = BUFCHK (IOP [I_PRM1], IOP [I_PRM1], 0)) lss 0
; 0516 then leave DISCONNECT_PROC with TMP;
; 0517
; 0518 selectone .MODIFIER of
; 0519 set
; 0520
; 0521 ! *******************
; 0522 ! ** U$ABO & U$DSC **
; 0523 ! *******************
; 0524 [IOP$ABO, IOP$DSC]:
; 0525 ! Expected inputs
; 0526 ! I_PRM1 = Optional Data bias
; 0527 ! I_PRM2 = " " address
; 0528 ! I_PRM3 = " " length
; 0529
; 0530 begin
; 0531 local
; 0532 TMP;
; 0533 if (.LCB eql 0) or .LCB [LCF_DSC]
; 0534 then leave DISCONNECT_PROC with IE_PRI;
; 0535 TNB = .LCB [LC_TNB];
; 0536 if .IOP [I_PRM3] gtr 16
; 0537 then leave DISCONNECT_PROC with IE_BAD;
; 0538 LCB [LCF_DSC] = true; ! Abort/Disc started
; 0539 if .MODIFIER eql IOP$ABO
; 0540 then
; 0541 begin
; 0542 $SCX_STACK (LCB [LC_NQUE], .IOP);
; 0543 QFLAG = false
; 0544 end
; 0545 end;
; 0546
; 0547
; 0548 ! ***********
; 0549 ! ** U$REJ **
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 11
X01340 User Interface 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (4)
; 0550 ! ***********
; 0551 [IOP$REJ]:
; 0552 ! Expected inputs
; 0553 ! I_PRM1 = Connect block bias
; 0554 ! I_PRM2 = " " address
; 0555 ! I_PRM3 = " " length
; 0556 ! I_PRM4 = Optional output buffer address
; 0557 ! I_PRM5 = " " " length
; 0558
; 0559 begin
; 0560 local
; 0561 TMP;
; 0562 bind
; 0563 CND = IOP [I_PRM2]: ref block field (CND_FIELDS);
; 0564
; 0565 LCB = 0;
; 0566 if .LUN neq .$HEADR [H_NML]
; 0567 then leave DISCONNECT_PROC with IE_PRI;
; 0568
; 0569 if .IOP [I_PRM3] lss 2
; 0570 then leave DISCONNECT_PROC with IE_BAD;
; 0571
; 0572 if (TMP = BUFCHK (IOP [I_PRM4], IOP [I_PRM3], 16)) lss 0
; 0573 then leave DISCONNECT_PROC with .TMP;
; 0574 MAP$ (.IOP [I_PRM1]); ! Look at connect block
; 0575 MB = TNB [TN_MBXQ]; ! Scan mailbox
; 0576 while (MB_PREV = .MB; MB = .MB [MB_LINK]) neq 0 do
; 0577 begin
; 0578 if .MB eql .CND [CND_TLA] then exitloop
; 0579 end;
; 0580
; 0581 if .MB eql 0 then leave DISCONNECT_PROC with IE_BAD;
; 0582
; 0583 IOP [I_PRM6] = .MB [MB_LLA]; ! Remember LLA
; 0584 if (MB_PREV [MB_LINK] = .MB [MB_LINK]) eql 0
; 0585 then TNB [TN_MBTL] = .MB_PREV;
; 0586 $MCB_RETURN_DSR (MBP_SIZE*bytes_word + .MB [MB_CNT], .MB);
; 0587 $SCX_ENQUEUE (TNB [TN_OQUE], .IOP);
; 0588 QFLAG = false
; 0589 end;
; 0590
; 0591
; 0592 ! **********
; 0593 ! ** OOPS **
; 0594 ! **********
; 0595 [otherwise]: leave DISCONNECT_PROC with IE_PRI;
; 0596
; 0597 tes;
; 0598
; 0599 leave DISCONNECT_PROC with IS_SUC
; 0600 end;
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 12
X01340 User Interface 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (5)
; 0601 ! *************
; 0602 ! ** Control **
; 0603 ! *************
; 0604 [IOP_CTL]: CONTROL_PROC:
; 0605 begin
; 0606 LCB = 0;
; 0607 if .MODIFIER neq IOP$OPN
; 0608 then
; 0609 begin
; 0610 if (.LUN neq .$HEADR [H_NML]) or (.TNB eql 0)
; 0611 then leave CONTROL_PROC with IE_PRI
; 0612 end;
; 0613
; 0614 selectone .MODIFIER of
; 0615 set
; 0616
; 0617 ! ***********
; 0618 ! ** U$OPN **
; 0619 ! ***********
; 0620 [IOP$OPN]:
; 0621 ! Expected inputs
; 0622 ! I_PRM1 = Maximum allowed logical links
; 0623
; 0624 begin
; 0625 ! Get TNB block of memory from DSR
; 0626 if not $MCB_GET_DSR (TNB_SIZE*bytes_word, TNB)
; 0627 then leave CONTROL_PROC with IE_RSU;
; 0628
; 0629 ! ** Zero and initialize block
; 0630 ch$fill(0, SCXDB_SIZE*bytes_word, .TNB);
; 0631 $HEADR [H_NML] = TNB [TN_LUN] = .LUN; ! Record LUN #
; 0632 TNB [TN_LINK] = .SCXDB [SCX_TNB];
; 0633 SCXDB [SCX_TNB] = .TNB;
; 0634 .(IOP [I_LN2]) = .TNB; ! Set TNB addr in LN2
; 0635 TNB [TN_TASK] = .IOP [I_TCB]; ! TCB address
; 0636 TNB [TN_MAX] = .IOP [I_PRM1]; ! Max # of links
; 0637 TNB [TN_OQTL] = TNB [TN_OQHD]; ! Init queue
; 0638 TNB [TN_MBTL] = TNB [TN_MBHD]; ! headers
; 0639 TNB [TN_IQTL] = TNB [TN_IQHD]; ! ...
; 0640
; 0641 ! ** Now move stuff from general delivery mailbox
; 0642 ! ** to the task's mailbox
; 0643 MB = SCXDB [SCX_MBHD]; ! Point to head of list
; 0644 while (MB_PREV = .MB; MB = .MB [MB_LINK]) neq 0 do ! Go thru whole list
; 0645 begin
; 0646 if .MB [MB_TASK] eql .TNB [TN_TASK] ! If for this task
; 0647 then
; 0648 begin
; 0649 if (.MB [MB_FNC] eql MB$CON) and
; 0650 ((.TNB [TN_MAX] neq 0) and (.TNB [TN_ACT] geq .TNB [TN_MAX]))
; 0651 then
; 0652 MB [MB_TIME] = 1 ! Too many links, a short timeout
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 13
X01340 User Interface 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (5)
; 0653 else
; 0654 begin
; 0655 if .MB [MB_FNC] eql MB$CON
; 0656 then TNB [TN_ACT] = .TNB [TN_ACT] + 1;
; 0657 if (MB_PREV [MB_LINK] = .MB [MB_LINK]) eql 0
; 0658 then SCXDB [SCX_MBTL] = .MB_PREV;
; 0659 $SCX_ENQUEUE (TNB [TN_MBXQ], .MB);
; 0660 MB = .MB_PREV
; 0661 end
; 0662 end
; 0663 end;
; 0664
; 0665 STATUS [0] = .STS;
; 0666 RSX$ (.SCXDB);
; 0667 IOFIN$ (.UCB, .IOP, .STATUS_WORD, .COUNT_WORD);
; 0668 return
; 0669 end;
; 0670
; 0671
; 0672 ! ***********
; 0673 ! ** U$CLS **
; 0674 ! ***********
; 0675 [IOP$CLS]:
; 0676 begin
; 0677 $SCX_STACK (TNB [TN_OQUE], .IOP); ! Do it soon
; 0678 TNB [TNF_CLS] = true; ! We started it
; 0679 QFLAG = false;
; 0680 leave CONTROL_PROC with IS_SUC
; 0681 end;
; 0682
; 0683
; 0684 ! ***********
; 0685 ! ** U$SPA **
; 0686 ! ***********
; 0687 [IOP$SPA]:
; 0688 ! Expected inputs
; 0689 ! I_PRM1 = AST address
; 0690
; 0691 begin
; 0692 TNB [TN_SPA] = .IOP [I_PRM1];
; 0693
; 0694 ! Count number of things in queue
; 0695 MB = TNB [TN_MBXQ];
; 0696 while (MB = .MB [MB_LINK]) neq 0 do
; 0697 begin
; 0698 if .MB [MB_FNC] neq MB$CNP
; 0699 then COUNT [0] = .COUNT [0] + 1
; 0700 end;
; 0701
; 0702 RSX$ (.SCXDB);
; 0703 IOFIN$ (.UCB, .IOP, IS_SUC, .COUNT_WORD);
; 0704 return
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 14
X01340 User Interface 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (5)
; 0705 end;
; 0706
; 0707 ! ***********
; 0708 ! ** U$GND **
; 0709 ! ***********
; 0710 [IOP$GND1, IOP$GND2, IOP$GND3]:
; 0711 ! Expected inputs
; 0712 ! I_PRM1 = Buffer address
; 0713 ! I_PRM2 = Buffer length
; 0714 ! I_PRM3 = Mask parameter
; 0715 ! I_PRM4 = (PRM3 will be copied to here)
; 0716
; 0717 begin
; 0718 local
; 0719 FNC,
; 0720 SELEKT;
; 0721
; 0722 IOP [I_PRM4] = .IOP [I_PRM3]; ! Copy mask parameter
; 0723 if .MODIFIER neq IOP$GND2 ! Check buffer, if must
; 0724 then
; 0725 begin
; 0726 local TMP;
; 0727 if (TMP = BUFCHK (IOP [I_PRM1], IOP [I_PRM1], 0)) lss 0
; 0728 then leave CONTROL_PROC with .TMP
; 0729 end;
; 0730
; 0731 ! Now scan the mailbox queue
; 0732 MB = TNB [TN_MBXQ];
; 0733 while (MB_PREV = .MB; MB = .MB [MB_LINK]) neq 0 do
; 0734 begin
; 0735 SELEKT = true; ! Assume success
; 0736 if (FNC = .MB [MB_FNC]) eql MB$CNP ! Pending connects are invisible to caller
; 0737 then SELEKT = false ! No good
; 0738 else
; 0739 begin
; 0740 local
; 0741 TYPE_MASK,
; 0742 LUN_MASK;
; 0743
; 0744 if .MODIFIER eql IOP$GND1 ! If normal GND
; 0745 then exitloop; ! Got it !
; 0746
; 0747 TYPE_MASK = .IOP [$sub_field (I_PRM4, LO_BYTE)];
; 0748 LUN_MASK = .IOP [$sub_field (I_PRM4, HI_BYTE)];
; 0749
; 0750 if (
; 0751 ((.TYPE_MASK neq 0) and (.TYPE_MASK neq .FNC)) or
; 0752 ((.LUN_MASK neq 0) and (.LUN_MASK neq .MB [MB_LUN])))
; 0753 then SELEKT = false; ! Didn't make it
; 0754 end;
; 0755
; 0756 if .SELEKT then exitloop
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 15
X01340 User Interface 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (5)
; 0757 end;
; 0758
; 0759 if not .SELEKT then leave CONTROL_PROC with IE_NDA;
; 0760
; 0761 if .MODIFIER eql IOP$GND2 ! Length and type only
; 0762 then
; 0763 begin
; 0764 STS = IS_SUC;
; 0765 STATUS [1] = .FNC;
; 0766 COUNT [0] = .MB [MB_CNT]
; 0767 end
; 0768 else
; 0769 begin
; 0770 COUNT [0] = min (.MB [MB_CNT], .IOP [I_PRM3]); ! Determine size of xfer
; 0771 COUNT [1] = .MB [MB_LUN]; ! Say which LUN (zero for connect)
; 0772 STS = (if .COUNT [0] geq .MB [MB_CNT] then IS_SUC else IE_DAO);
; 0773 STATUS [1] = .FNC; ! Tell user what it is
; 0774 MAP$ (.IOP [I_PRM1]); ! Map user buffer
; 0775 ch$move (.COUNT [0], byt$ptr (MB [MB_DATA]), byt$ptr (.IOP [I_PRM2]));
; 0776
; 0777 if .FNC eql MB$CON
; 0778 then
; 0779 MB [MB_FNC] = MB$CNP ! Logically dequeue connect
; 0780 else
; 0781 begin
; 0782 if (MB_PREV [MB_LINK] = .MB [MB_LINK]) eql 0 ! Physically dequeue MB
; 0783 then TNB [TN_MBTL] = .MB_PREV; ! entry, and
; 0784 LCB = ULARD (.MB [MB_ULA]); ! Get ULA address
; 0785 $MCB_RETURN_DSR (MBP_SIZE*bytes_word + .MB [MB_CNT], .MB); ! dealc memory
; 0786
; 0787 if .FNC eql MB$INT
; 0788 then U$IRQ (.LCB)
; 0789 else
; 0790 begin
; 0791 LCB [LCF_DSC] = true;
; 0792 U$ARQ( .LCB)
; 0793 end
; 0794 end
; 0795 end;
; 0796
; 0797 STATUS [0] = .STS;
; 0798 RSX$ (.SCXDB);
; 0799 IOFIN$ (.UCB, .IOP, .STATUS_WORD, .COUNT_WORD);
; 0800 return
; 0801 end;
; 0802
; 0803 ! ***********
; 0804 ! ** U$GLN **
; 0805 ! ***********
; 0806 [IOP$GLN]:
; 0807 ! Expected inputs
; 0808 ! I_PRM1 = Buffer address
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 16
X01340 User Interface 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (5)
; 0809 ! I_PRM2 = Buffer length
; 0810 ! I_PRM3 = Option selector
; 0811
; 0812 begin
; 0813 local
; 0814 TMP;
; 0815
; 0816 IOP [I_PRM4] = .IOP [I_PRM3];
; 0817 if (.IOP [I_PRM2] eql 0) or
; 0818 (TMP = BUFCHK (IOP [I_PRM1], IOP [I_PRM1], 0)) lss 0
; 0819 then leave CONTROL_PROC with .TMP;
; 0820
; 0821 $SCX_ENQUEUE (TNB [TN_OQUE], .IOP);
; 0822 QFLAG = false
; 0823 end;
; 0824
; 0825
; 0826 ! **********
; 0827 ! ** OOPS **
; 0828 ! **********
; 0829 [otherwise]: leave CONTROL_PROC with IE_PRI;
; 0830
; 0831 tes
; 0832 end;
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 17
X01340 User Interface 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (6)
; 0833 ! **********
; 0834 ! ** Zonk **
; 0835 ! **********
; 0836 [inrange, outrange]:
; 0837 begin
; 0838 selectoneu .IOP [I_FNC] of
; 0839
; 0840 set
; 0841
; 0842 ! ***********
; 0843 ! ** CLOSE **
; 0844 ! ***********
; 0845 [IOP$CLS]:
; 0846 begin
; 0847 if (.LUN neq .$HEADR [H_NML]) or (.TNB [TNF_CLS]) then return
; 0848 IOP [I_FNC] = IOP_CTL; ! Change codes awhile
; 0849 IOP [I_MOD] = IOP$CLO;
; 0850 $SCX_STACK (TNB [TN_OQUE], .IOP);
; 0851 QFLAG = false;
; 0852 IS_SUC
; 0853 end;
; 0854
; 0855
; 0856 ! ********************
; 0857 ! ** DISMOUNT, OR ? **
; 0858 ! ********************
; 0859 [otherwise]: IE_PRI;
; 0860
; 0861 tes
; 0862 end
; 0863 tes
; 0864 end;
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 18
X01340 User Interface 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (7)
; 0865 STATUS [0] = .STS;
; 0866 if .STS geq 0
; 0867 then
; 0868 begin
; 0869 if .QFLAG then $SCX_ENQUEUE (LCB [LC_OQUE], .IOP);
; 0870 if .TNB neq 0
; 0871 then $SCX_DISPATCH_OUTPUT (TNB [TN_OQUE], .TNB);
; 0872 if .LCB neq 0
; 0873 then
; 0874 begin
; 0875 $SCX_DISPATCH_OUTPUT (LCB [LC_NQUE], .LCB);
; 0876 $SCX_DISPATCH_OUTPUT (LCB [LC_OQUE], .LCB)
; 0877 end;
; 0878 RSX$ (.SCXDB)
; 0879 end
; 0880 else
; 0881 begin
; 0882 RSX$ (.SCXDB);
; 0883 IOFIN$ (.UCB, .IOP, .STATUS_WORD, .COUNT_WORD)
; 0884 end
; 0885 end;
.TITLE SCXDSP
.IDENT /X01340/
000000 .PSECT $PLIT$, RO , D
000000 000000' P.AAA: .WORD U$DSP
000002 000000G .WORD NOOP
000004 000000G .WORD NOOP
000006 000000G .WORD NOOP
000010 000000G P.AAC: .WORD U$SNW
000012 000000G .WORD U$XMW
000014 000000G P.AAD: .WORD U$RCW
000016 000000G P.AAE: .WORD U$CNW
000020 000000G .WORD U$ACW
000022 000000G P.AAF: .WORD U$DSW
000024 000000G .WORD U$ABW
000026 000000G .WORD U$RJW
000030 000000G P.AAG: .WORD U$CLW
000032 000000G .WORD U$CLW
000034 177777 .WORD -1
000036 177777 .WORD -1
000040 177777 .WORD -1
000042 177777 .WORD -1
000044 177777 .WORD -1
000046 000000G .WORD U$GLW
000050 000010' P.AAB: .WORD P.AAC
000052 000014' .WORD P.AAD
000054 000016' .WORD P.AAE
000056 000022' .WORD P.AAF
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 19
X01340 User Interface 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (7)
000060 000030' .WORD P.AAG
000062 177777 P.AAH: .WORD -1
000064 177777 .WORD -1
000066 000000G .WORD SRUINW
000070 000000G .WORD SRUDSW
000072 000000G P.AAI: .WORD $DSPCR
000074 000000G .WORD $DSPCR
000076 000000G .WORD $DSPCR
000100 000000G .WORD $DSPCR
000102 000000G .WORD $DSPCR
000104 000000V .WORD UFCTMO
000106 000000V .WORD UFCXCP
000110 000000V .WORD UFCRCP
000112 000000G .WORD $DSPCR
000114 000000G .WORD $DSPCR
.GLOBL $DSPCR, $HEADR, SRUDSW, SRUINW
.GLOBL U$ABW, U$ACW, U$ARQ, U$CLW, U$CNW
.GLOBL U$DSW, U$GLW, U$IRQ, U$RCW, U$RJW
.GLOBL U$SNW, U$XMW, BUFCHK, FNDOBJ, GETLCB
.GLOBL LCBKIL, MBPROC, NOOP, QUEAST, STXMAP
.GLOBL ULAGET, ULARD, ULASET, $MCB, $SCQIN
.GLOBL KISAR6, $DSRRT, $SCQHD, $DSRGT
.GLOBL $RSX, $IOFIN
000000' $NSTBL== P.AAA
000050' $ODSP== P.AAB
000062' $IDSP== P.AAH
000072' $SCXLL== P.AAI
000050' ODSP= P.AAB
000050' ODSP= P.AAB
000050' ODSP= P.AAB
.SBTTL U$DSP User Interface
000000 .PSECT $CODE$, RO
000000 162706 000034 U$DSP: SUB #34,SP ; 0296
000004 010166 000014 MOV R1,14(SP)
000010 010566 000012 MOV R5,12(SP)
000014 004767 000000G JSR PC,$MCB ; 0347
000020 010566 000010 MOV R5,10(SP) ; $MCB$R5,SCXDB
000024 005066 000024 CLR 24(SP) ; STATUS.WORD 0348
000030 005016 CLR (SP) ; STS 0349
000032 005066 000022 CLR 22(SP) ; COUNT.WORD 0350
000036 012766 000001 000006 MOV #1,6(SP) ; *,QFLAG 0351
000044 012700 000006 MOV #6,R0 ; 0357
000050 066600 000014 ADD 14(SP),R0
000054 010066 000004 MOV R0,4(SP)
000060 011000 MOV (R0),R0
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 20
X01340 User Interface 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (7)
000062 166700 000000G SUB $HEADR,R0
000066 162700 000074 SUB #74,R0
000072 010003 MOV R0,R3 ; *,LUN
000074 006203 ASR R3 ; LUN
000076 006203 ASR R3 ; LUN
000100 017601 000004 MOV @4(SP),R1 ; 0358
000104 011100 MOV (R1),R0
000106 042700 000001 BIC #1,R0
000112 010066 000032 MOV R0,32(SP) ; *,TNB
000116 010066 000030 MOV R0,30(SP) ; *,LCB
000122 012700 000012 MOV #12,R0 ; 0359
000126 066600 000014 ADD 14(SP),R0
000132 010002 MOV R0,R2
000134 111266 000002 MOVB (R2),2(SP) ; *,MODIFIER
000140 042766 177600 000002 BIC #177600,2(SP) ; *,MODIFIER
000146 016700 000000G MOV $HEADR,R0 ; 0364
000152 062700 000060 ADD #60,R0
000156 126227 000001 000035 CMPB 1(R2),#35 ; 0363
000164 001011 BNE 1$
000166 005766 000002 TST 2(SP) ; MODIFIER
000172 001006 BNE 1$
000174 005001 CLR R1 ; 0364
000176 156001 000001 BISB 1(R0),R1
000202 005701 TST R1
000204 001411 BEQ 3$
000206 000405 BR 2$
000210 005001 1$: CLR R1 ; 0365
000212 156001 000001 BISB 1(R0),R1
000216 005701 TST R1
000220 001003 BNE 3$
000222 012716 177760 2$: MOV #-20,(SP) ; *,STS
000226 000402 BR 4$
000230 012716 000001 3$: MOV #1,(SP) ; *,STS
000234 021627 000001 4$: CMP (SP),#1 ; STS,* 0368
000240 001402 BEQ 5$
000242 000167 003324 JMP 78$
000246 005000 5$: CLR R0 ; 0370
000250 156200 000001 BISB 1(R2),R0
000254 162700 000031 SUB #31,R0
000260 020027 000004 CMP R0,#4
000264 101003 BHI 6$
000266 006300 ASL R0
000270 066007 000116' ADD P.AAJ(R0),PC ; Case dispatch
000274 126227 000001 000010 6$: CMPB 1(R2),#10 ; 0838
000302 001025 BNE 10$
000304 020301 CMP R3,R1 ; LUN,* 0847
000306 001006 BNE 7$
000310 016600 000032 MOV 32(SP),R0 ; TNB,*
000314 032760 000400 000016 BIT #400,16(R0)
000322 001405 BEQ 8$
000324 112762 000035 000001 7$: MOVB #35,1(R2) ; 0848
000332 000167 003532 JMP 85$ ; 0847
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 21
X01340 User Interface 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (7)
000336 105012 8$: CLRB (R2) ; 0849
000340 016646 000032 MOV 32(SP),-(SP) ; TNB,* 0850
000344 000167 001042 JMP 29$
000350 016600 000030 9$: MOV 30(SP),R0 ; LCB,* 0387
000354 001002 BNE 11$
000356 000167 003200 10$: JMP 76$
000362 032760 004000 000016 11$: BIT #4000,16(R0)
000370 001372 BNE 10$ ; 0388
000372 016066 000004 000032 MOV 4(R0),32(SP) ; *,TNB 0390
000400 026627 000002 000010 CMP 2(SP),#10 ; MODIFIER,* 0391
000406 001173 BNE 19$
000410 010046 MOV R0,-(SP) ; 0394
000412 000167 001246 JMP 35$
000416 005766 000030 12$: TST 30(SP) ; LCB 0407
000422 001355 BNE 10$
000424 026627 000002 000010 CMP 2(SP),#10 ; MODIFIER,* 0409
000432 001162 BNE 20$
000434 016600 000014 MOV 14(SP),R0 ; 0429
000440 026027 000030 000002 CMP 30(R0),#2
000446 002002 BGE 14$ ; 0430
000450 000167 001122 13$: JMP 32$
000454 010046 14$: MOV R0,-(SP) ; 0432
000456 062716 000032 ADD #32,(SP)
000462 012700 000030 MOV #30,R0
000466 066600 000016 ADD 16(SP),R0
000472 010046 MOV R0,-(SP)
000474 012746 000020 MOV #20,-(SP)
000500 004767 000000G JSR PC,BUFCHK
000504 062706 000006 ADD #6,SP
000510 005001 CLR R1
000512 005700 TST R0
000514 002001 BGE 15$
000516 005201 INC R1
000520 010100 15$: MOV R1,R0 ; *,TMP
000522 006001 ROR R1
000524 103002 BHIS 16$ ; 0433
000526 000167 003036 JMP 77$
000532 016700 000000G 16$: MOV $HEADR,R0 ; 0435
000536 116000 000061 MOVB 61(R0),R0
000542 042700 177400 BIC #177400,R0
000546 006300 ASL R0
000550 006300 ASL R0
000552 066700 000000G ADD $HEADR,R0
000556 016066 000074 000032 MOV 74(R0),32(SP) ; *,TNB
000564 016600 000014 MOV 14(SP),R0 ; 0436
000570 016067 000024 000000G MOV 24(R0),KISAR6
000576 016666 000032 000016 MOV 32(SP),16(SP) ; TNB,MB 0437
000604 062766 000026 000016 ADD #26,16(SP) ; *,MB
000612 016666 000016 000020 17$: MOV 16(SP),20(SP) ; MB,MB.PREV 0438
000620 017666 000016 000016 MOV @16(SP),16(SP) ; MB,MB
000626 001710 BEQ 13$
000630 016600 000014 MOV 14(SP),R0 ; 0440
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 22
X01340 User Interface 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (7)
000634 026670 000016 000026 CMP 16(SP),@26(R0) ; MB,*
000642 001363 BNE 17$
000644 005766 000016 TST 16(SP) ; MB 0443
000650 001677 BEQ 13$
000652 012746 000034 MOV #34,-(SP) ; 0445
000656 060616 ADD SP,(SP) ; TNB,*
000660 012746 000034 MOV #34,-(SP)
000664 060616 ADD SP,(SP) ; LCB,*
000666 016046 000004 MOV 4(R0),-(SP)
000672 004767 000000G JSR PC,GETLCB
000676 062706 000006 ADD #6,SP
000702 006000 ROR R0
000704 103123 BHIS 21$ ; 0446
000706 016600 000030 MOV 30(SP),R0 ; LCB,* 0447
000712 017601 000004 MOV @4(SP),R1
000716 010011 MOV R0,(R1)
000720 110360 000016 MOVB R3,16(R0) ; LUN,* 0448
000724 016601 000016 MOV 16(SP),R1 ; MB,* 0449
000730 116160 000006 000021 MOVB 6(R1),21(R0) ; *(MB),*
000736 011176 000020 MOV (R1),@20(SP) ; MB,MB.PREV 0450
000742 001005 BNE 18$
000744 016600 000032 MOV 32(SP),R0 ; TNB,* 0451
000750 016660 000020 000030 MOV 20(SP),30(R0) ; MB.PREV,*
000756 016600 000016 18$: MOV 16(SP),R0 ; MB,* 0452
000762 016001 000002 MOV 2(R0),R1 ; *(MB),*
000766 062701 000020 ADD #20,R1
000772 004767 000000G JSR PC,$DSRRT
000776 000504 19$: BR 23$ ; 0409
001000 005766 000002 20$: TST 2(SP) ; MODIFIER
001004 001163 BNE 28$
001006 016600 000014 MOV 14(SP),R0 ; 0473
001012 026027 000030 000110 CMP 30(R0),#110
001020 001213 BNE 13$ ; 0474
001022 010046 MOV R0,-(SP) ; 0476
001024 062716 000032 ADD #32,(SP)
001030 012700 000030 MOV #30,R0
001034 066600 000016 ADD 16(SP),R0
001040 010046 MOV R0,-(SP)
001042 012746 000020 MOV #20,-(SP)
001046 004767 000000G JSR PC,BUFCHK
001052 062706 000006 ADD #6,SP
001056 010001 MOV R0,R1 ; *,TMP
001060 002516 BLT 25$
001062 016600 000014 MOV 14(SP),R0 ; 0477
001066 062700 000036 ADD #36,R0
001072 010046 MOV R0,-(SP)
001074 010046 MOV R0,-(SP)
001076 012746 000020 MOV #20,-(SP)
001102 004767 000000G JSR PC,BUFCHK
001106 062706 000006 ADD #6,SP
001112 010001 MOV R0,R1 ; *,TMP
001114 002500 BLT 25$ ; 0478
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 23
X01340 User Interface 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (7)
001116 012746 000034 MOV #34,-(SP) ; 0480
001122 060616 ADD SP,(SP) ; TNB,*
001124 012746 000034 MOV #34,-(SP)
001130 060616 ADD SP,(SP) ; LCB,*
001132 016600 000020 MOV 20(SP),R0
001136 016046 000004 MOV 4(R0),-(SP)
001142 004767 000000G JSR PC,GETLCB
001146 062706 000006 ADD #6,SP
001152 006000 ROR R0
001154 103402 21$: BLO 22$ ; 0481
001156 000167 000614 JMP 44$
001162 016600 000032 22$: MOV 32(SP),R0 ; TNB,* 0482
001166 105260 000020 INCB 20(R0)
001172 017600 000004 MOV @4(SP),R0 ; 0483
001176 016610 000030 MOV 30(SP),(R0) ; LCB,*
001202 011000 MOV (R0),R0 ; LCB,* 0484
001204 110360 000016 MOVB R3,16(R0) ; LUN,*
001210 000167 000472 23$: JMP 37$ ; 0409
001214 012700 000032 24$: MOV #32,R0 ; 0512
001220 066600 000014 ADD 14(SP),R0
001224 010005 MOV R0,R5
001226 016600 000014 MOV 14(SP),R0
001232 011560 000034 MOV (R5),34(R0)
001236 012700 000030 MOV #30,R0 ; 0513
001242 066600 000014 ADD 14(SP),R0
001246 010004 MOV R0,R4
001250 011415 MOV (R4),(R5)
001252 012700 000024 MOV #24,R0 ; 0515
001256 066600 000014 ADD 14(SP),R0
001262 010002 MOV R0,R2
001264 010246 MOV R2,-(SP)
001266 010246 MOV R2,-(SP)
001270 005046 CLR -(SP)
001272 004767 000000G JSR PC,BUFCHK
001276 062706 000006 ADD #6,SP
001302 010066 000026 MOV R0,26(SP) ; *,TMP
001306 002005 BGE 26$
001310 012701 000026 MOV #26,R1 ; 0516
001314 060601 ADD SP,R1 ; TMP,*
001316 000167 002202 25$: JMP 74$
001322 005766 000002 26$: TST 2(SP) ; MODIFIER 0518
001326 001404 BEQ 27$
001330 026627 000002 000010 CMP 2(SP),#10 ; MODIFIER,*
001336 001034 BNE 30$
001340 016600 000030 27$: MOV 30(SP),R0 ; LCB,* 0533
001344 001576 BEQ 42$
001346 032760 004000 000016 BIT #4000,16(R0)
001354 001165 28$: BNE 39$ ; 0534
001356 016066 000004 000032 MOV 4(R0),32(SP) ; *,TNB 0535
001364 021427 000020 CMP (R4),#20 ; 0536
001370 003102 BGT 32$ ; 0537
001372 052760 004000 000016 BIS #4000,16(R0) ; 0538
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 24
X01340 User Interface 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (7)
001400 026627 000002 000010 CMP 2(SP),#10 ; MODIFIER,* 0539
001406 001137 BNE 37$
001410 010046 MOV R0,-(SP) ; 0542
001412 062716 000012 29$: ADD #12,(SP)
001416 016646 000016 MOV 16(SP),-(SP)
001422 004767 000000G JSR PC,$SCQHD
001426 000524 BR 36$ ; 0543
001430 026627 000002 000020 30$: CMP 2(SP),#20 ; MODIFIER,* 0518
001436 001134 BNE 39$
001440 005066 000030 CLR 30(SP) ; LCB 0565
001444 016700 000000G MOV $HEADR,R0 ; 0566
001450 005001 CLR R1
001452 156001 000061 BISB 61(R0),R1
001456 020301 CMP R3,R1 ; LUN,*
001460 001123 BNE 39$ ; 0567
001462 021427 000002 CMP (R4),#2 ; 0569
001466 002443 BLT 32$ ; 0570
001470 010546 MOV R5,-(SP) ; 0572
001472 010446 MOV R4,-(SP)
001474 012746 000020 MOV #20,-(SP)
001500 004767 000000G JSR PC,BUFCHK
001504 062706 000006 ADD #6,SP
001510 010001 MOV R0,R1 ; *,TMP
001512 002701 BLT 25$ ; 0573
001514 011267 000000G MOV (R2),KISAR6 ; 0574
001520 016604 000032 MOV 32(SP),R4 ; TNB,* 0575
001524 010466 000016 MOV R4,16(SP) ; *,MB
001530 062766 000026 000016 ADD #26,16(SP) ; *,MB
001536 016666 000016 000020 31$: MOV 16(SP),20(SP) ; MB,MB.PREV 0576
001544 017666 000016 000016 MOV @16(SP),16(SP) ; MB,MB
001552 001411 BEQ 32$
001554 016600 000014 MOV 14(SP),R0 ; 0578
001560 026670 000016 000026 CMP 16(SP),@26(R0) ; MB,*
001566 001363 BNE 31$
001570 005766 000016 TST 16(SP) ; MB 0581
001574 001003 BNE 33$
001576 012716 177777 32$: MOV #-1,(SP) ; *,STS
001602 000477 BR 45$
001604 016600 000014 33$: MOV 14(SP),R0 ; 0583
001610 016601 000016 MOV 16(SP),R1 ; MB,*
001614 116160 000006 000036 MOVB 6(R1),36(R0) ; *(MB),*
001622 105060 000037 CLRB 37(R0)
001626 011176 000020 MOV (R1),@20(SP) ; MB,MB.PREV 0584
001632 001003 BNE 34$
001634 016664 000020 000030 MOV 20(SP),30(R4) ; MB.PREV,* 0585
001642 016600 000016 34$: MOV 16(SP),R0 ; MB,* 0586
001646 016001 000002 MOV 2(R0),R1 ; *(MB),*
001652 062701 000020 ADD #20,R1
001656 004767 000000G JSR PC,$DSRRT
001662 010446 MOV R4,-(SP) ; 0587
001664 062716 000012 35$: ADD #12,(SP)
001670 016646 000016 MOV 16(SP),-(SP)
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 25
X01340 User Interface 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (7)
001674 004767 000000G JSR PC,$SCQIN
001700 005066 000012 36$: CLR 12(SP) ; QFLAG 0588
001704 022626 CMP (SP)+,(SP)+ ; 0559
001706 012716 000001 37$: MOV #1,(SP) ; *,STS 0599
001712 000433 BR 45$ ; 0370
001714 005066 000030 38$: CLR 30(SP) ; LCB 0606
001720 005766 000002 TST 2(SP) ; MODIFIER 0607
001724 001414 BEQ 43$
001726 020301 CMP R3,R1 ; LUN,* 0610
001730 001402 39$: BEQ 41$
001732 000167 001624 40$: JMP 76$
001736 005766 000032 41$: TST 32(SP) ; TNB
001742 001773 42$: BEQ 40$ ; 0611
001744 005766 000002 TST 2(SP) ; MODIFIER 0614
001750 001402 BEQ 43$
001752 000167 000426 JMP 51$
001756 012701 000032 43$: MOV #32,R1 ; 0626
001762 004767 000000G JSR PC,$DSRGT
001766 103403 BCS 44$
001770 010066 000032 MOV R0,32(SP) ; $MCB$R0,TNB
001774 000404 BR 46$
001776 012716 177757 44$: MOV #-21,(SP) ; *,STS 0627
002002 000167 001564 45$: JMP 78$
002006 005046 46$: CLR -(SP) ; 0630
002010 012746 000030 MOV #30,-(SP)
002014 016601 000036 MOV 36(SP),R1 ; TNB,*
002020 010146 MOV R1,-(SP)
002022 004767 000000G JSR PC,BL$FIL
002026 016700 000000G MOV $HEADR,R0 ; 0631
002032 110361 000016 MOVB R3,16(R1) ; LUN,*
002036 110360 000061 MOVB R3,61(R0) ; LUN,*
002042 016600 000016 MOV 16(SP),R0 ; SCXDB,* 0632
002046 016011 000006 MOV 6(R0),(R1) ; *(SCXDB),*
002052 010160 000006 MOV R1,6(R0) ; *,*(SCXDB) 0633
002056 017600 000012 MOV @12(SP),R0 ; 0634
002062 010110 MOV R1,(R0)
002064 016600 000022 MOV 22(SP),R0 ; 0635
002070 016061 000004 000002 MOV 4(R0),2(R1)
002076 012704 000020 MOV #20,R4 ; 0636
002102 060104 ADD R1,R4
002104 116064 000024 000001 MOVB 24(R0),1(R4)
002112 012761 000012 000014 MOV #12,14(R1) ; 0637
002120 060161 000014 ADD R1,14(R1)
002124 012703 000026 MOV #26,R3 ; 0638
002130 060103 ADD R1,R3
002132 010361 000030 MOV R3,30(R1)
002136 012761 000006 000010 MOV #6,10(R1) ; 0639
002144 060161 000010 ADD R1,10(R1)
002150 016666 000016 000024 MOV 16(SP),24(SP) ; SCXDB,MB 0643
002156 062766 000012 000024 ADD #12,24(SP) ; *,MB
002164 016666 000024 000026 47$: MOV 24(SP),26(SP) ; MB,MB.PREV 0644
002172 017666 000024 000024 MOV @24(SP),24(SP) ; MB,MB
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 26
X01340 User Interface 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (7)
002200 001456 BEQ 50$
002202 016600 000024 MOV 24(SP),R0 ; MB,* 0646
002206 026061 000014 000002 CMP 14(R0),2(R1) ; *(MB),*
002214 001363 BNE 47$
002216 005000 CLR R0 ; 0649
002220 016602 000024 MOV 24(SP),R2 ; MB,*
002224 126227 000004 000001 CMPB 4(R2),#1 ; *(MB),*
002232 001014 BNE 48$
002234 005200 INC R0
002236 105764 000001 TSTB 1(R4) ; 0650
002242 001410 BEQ 48$
002244 121464 000001 CMPB (R4),1(R4)
002250 103405 BLO 48$
002252 010200 MOV R2,R0 ; MB,* 0652
002254 012760 000001 000012 MOV #1,12(R0) ; *,*(MB)
002262 000740 BR 47$ ; 0648
002264 006000 48$: ROR R0 ; 0655
002266 105514 ADCB (R4) ; 0656
002270 017676 000024 000026 MOV @24(SP),@26(SP) ; MB,MB.PREV 0657
002276 001005 BNE 49$
002300 016600 000016 MOV 16(SP),R0 ; SCXDB,* 0658
002304 016660 000026 000014 MOV 26(SP),14(R0) ; MB.PREV,*(SCXDB)
002312 010316 49$: MOV R3,(SP) ; 0659
002314 016646 000024 MOV 24(SP),-(SP) ; MB,*
002320 004767 000000G JSR PC,$SCQIN
002324 016666 000030 000026 MOV 30(SP),26(SP) ; MB.PREV,MB 0660
002332 005726 TST (SP)+ ; 0654
002334 000713 BR 47$ ; 0645
002336 116666 000006 000032 50$: MOVB 6(SP),32(SP) ; STS,STATUS 0665
002344 004767 000000G JSR PC,$RSX ; 0666
002350 016605 000020 MOV 20(SP),R5 ; 0667
002354 016603 000022 MOV 22(SP),R3
002360 016600 000032 MOV 32(SP),R0 ; STATUS.WORD,*
002364 016601 000030 MOV 30(SP),R1 ; COUNT.WORD,*
002370 004767 000000G JSR PC,$IOFIN
002374 062706 000006 ADD #6,SP ; 0614
002400 000167 001464 JMP 85$ ; 0624
002404 026627 000002 000010 51$: CMP 2(SP),#10 ; MODIFIER,* 0614
002412 001025 BNE 52$
002414 016646 000032 MOV 32(SP),-(SP) ; TNB,* 0677
002420 062716 000012 ADD #12,(SP)
002424 016646 000016 MOV 16(SP),-(SP)
002430 004767 000000G JSR PC,$SCQHD
002434 016600 000036 MOV 36(SP),R0 ; TNB,* 0678
002440 052760 000400 000016 BIS #400,16(R0)
002446 005066 000012 CLR 12(SP) ; QFLAG 0679
002452 012766 000001 000004 MOV #1,4(SP) ; *,STS 0680
002460 022626 CMP (SP)+,(SP)+
002462 000167 001104 JMP 78$
002466 026627 000002 000020 52$: CMP 2(SP),#20 ; MODIFIER,* 0614
002474 001042 BNE 55$
002476 016600 000032 MOV 32(SP),R0 ; TNB,* 0692
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 27
X01340 User Interface 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (7)
002502 016601 000014 MOV 14(SP),R1
002506 016160 000024 000024 MOV 24(R1),24(R0)
002514 010066 000016 MOV R0,16(SP) ; TNB,MB 0695
002520 062766 000026 000016 ADD #26,16(SP) ; *,MB
002526 017666 000016 000016 53$: MOV @16(SP),16(SP) ; MB,MB 0696
002534 001410 BEQ 54$
002536 016600 000016 MOV 16(SP),R0 ; MB,* 0698
002542 105760 000004 TSTB 4(R0) ; *(MB)
002546 001767 BEQ 53$
002550 105266 000022 INCB 22(SP) ; COUNT 0699
002554 000764 BR 53$ ; 0696
002556 004767 000000G 54$: JSR PC,$RSX ; 0702
002562 016605 000012 MOV 12(SP),R5 ; 0703
002566 016603 000014 MOV 14(SP),R3
002572 012700 000001 MOV #1,R0
002576 000167 001256 JMP 84$
002602 026627 000002 000030 55$: CMP 2(SP),#30 ; MODIFIER,* 0614
002610 001412 BEQ 56$
002612 026627 000002 000040 CMP 2(SP),#40 ; MODIFIER,*
002620 001406 BEQ 56$
002622 026627 000002 000050 CMP 2(SP),#50 ; MODIFIER,*
002630 001402 BEQ 56$
002632 000167 000604 JMP 73$
002636 012700 000032 56$: MOV #32,R0 ; 0722
002642 066600 000014 ADD 14(SP),R0
002646 010004 MOV R0,R4
002650 016600 000014 MOV 14(SP),R0
002654 016014 000030 MOV 30(R0),(R4)
002660 026627 000002 000040 CMP 2(SP),#40 ; MODIFIER,* 0723
002666 001416 BEQ 57$
002670 010003 MOV R0,R3 ; 0727
002672 062703 000024 ADD #24,R3
002676 010346 MOV R3,-(SP)
002700 010346 MOV R3,-(SP)
002702 005046 CLR -(SP)
002704 004767 000000G JSR PC,BUFCHK
002710 062706 000006 ADD #6,SP
002714 010001 MOV R0,R1 ; *,TMP
002716 002002 BGE 57$ ; 0728
002720 000167 000600 JMP 74$
002724 016666 000032 000016 57$: MOV 32(SP),16(SP) ; TNB,MB 0732
002732 062766 000026 000016 ADD #26,16(SP) ; *,MB
002740 016666 000016 000020 58$: MOV 16(SP),20(SP) ; MB,MB.PREV 0733
002746 017666 000016 000016 MOV @16(SP),16(SP) ; MB,MB
002754 001443 BEQ 62$
002756 012702 000001 MOV #1,R2 ; *,SELEKT 0735
002762 005003 CLR R3 ; FNC 0736
002764 016600 000016 MOV 16(SP),R0 ; MB,*
002770 156003 000004 BISB 4(R0),R3 ; *(MB),FNC
002774 005703 TST R3 ; FNC
002776 001426 BEQ 60$ ; 0737
003000 026627 000002 000030 CMP 2(SP),#30 ; MODIFIER,* 0744
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 28
X01340 User Interface 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (7)
003006 001426 BEQ 62$ ; 0745
003010 005000 CLR R0 ; TYPE.MASK 0747
003012 151400 BISB (R4),R0 ; *,TYPE.MASK
003014 005001 CLR R1 ; LUN.MASK 0748
003016 156401 000001 BISB 1(R4),R1 ; *,LUN.MASK
003022 005700 TST R0 ; TYPE.MASK 0751
003024 001402 BEQ 59$
003026 020003 CMP R0,R3 ; TYPE.MASK,FNC
003030 001011 BNE 60$
003032 005701 59$: TST R1 ; LUN.MASK 0752
003034 001410 BEQ 61$
003036 005000 CLR R0
003040 016605 000016 MOV 16(SP),R5 ; MB,*
003044 156500 000010 BISB 10(R5),R0 ; *(MB),*
003050 020100 CMP R1,R0 ; LUN.MASK,*
003052 001401 BEQ 61$
003054 005002 60$: CLR R2 ; SELEKT 0753
003056 032702 000001 61$: BIT #1,R2 ; *,SELEKT 0756
003062 001726 BEQ 58$
003064 006002 62$: ROR R2 ; SELEKT 0759
003066 103404 BLO 63$
003070 012716 177662 MOV #-116,(SP) ; *,STS
003074 000167 000472 JMP 78$
003100 110366 000025 63$: MOVB R3,25(SP) ; FNC,STATUS+1 0765
003104 012700 000002 MOV #2,R0 ; 0766
003110 066600 000016 ADD 16(SP),R0 ; MB,*
003114 010001 MOV R0,R1
003116 026627 000002 000040 CMP 2(SP),#40 ; MODIFIER,* 0761
003124 001005 BNE 64$
003126 012716 000001 MOV #1,(SP) ; *,STS 0764
003132 111166 000022 MOVB (R1),22(SP) ; *,COUNT 0766
003136 000536 BR 72$ ; 0761
003140 011100 64$: MOV (R1),R0 ; 0770
003142 016602 000014 MOV 14(SP),R2
003146 020062 000030 CMP R0,30(R2)
003152 003402 BLE 65$
003154 016200 000030 MOV 30(R2),R0
003160 110066 000022 65$: MOVB R0,22(SP) ; *,COUNT
003164 016600 000016 MOV 16(SP),R0 ; MB,* 0771
003170 116066 000010 000023 MOVB 10(R0),23(SP) ; *(MB),COUNT+1
003176 005000 CLR R0 ; 0772
003200 156600 000022 BISB 22(SP),R0 ; COUNT,*
003204 020011 CMP R0,(R1)
003206 002403 BLT 66$
003210 012716 000001 MOV #1,(SP) ; *,STS
003214 000402 BR 67$
003216 012716 177763 66$: MOV #-15,(SP) ; *,STS
003222 016600 000014 67$: MOV 14(SP),R0 ; 0774
003226 016067 000024 000000G MOV 24(R0),KISAR6
003234 005046 CLR -(SP) ; 0775
003236 116616 000024 MOVB 24(SP),(SP) ; COUNT,*
003242 012700 000020 MOV #20,R0
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 29
X01340 User Interface 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (7)
003246 066600 000020 ADD 20(SP),R0 ; MB,*
003252 010046 MOV R0,-(SP)
003254 016600 000020 MOV 20(SP),R0
003260 016046 000026 MOV 26(R0),-(SP)
003264 004767 000000G JSR PC,BL$MOV
003270 020327 000001 CMP R3,#1 ; FNC,* 0777
003274 001005 BNE 68$
003276 016600 000024 MOV 24(SP),R0 ; MB,* 0779
003302 105060 000004 CLRB 4(R0) ; *(MB)
003306 000450 BR 71$ ; 0777
003310 017676 000024 000026 68$: MOV @24(SP),@26(SP) ; MB,MB.PREV 0782
003316 001005 BNE 69$
003320 016600 000040 MOV 40(SP),R0 ; TNB,* 0783
003324 016660 000026 000030 MOV 26(SP),30(R0) ; MB.PREV,*
003332 005016 69$: CLR (SP) ; 0784
003334 016600 000024 MOV 24(SP),R0 ; MB,*
003340 116016 000007 MOVB 7(R0),(SP) ; *(MB),*
003344 004767 000000G JSR PC,ULARD
003350 010066 000036 MOV R0,36(SP) ; *,LCB
003354 011101 MOV (R1),R1 ; 0785
003356 062701 000020 ADD #20,R1
003362 016600 000024 MOV 24(SP),R0 ; MB,*
003366 004767 000000G JSR PC,$DSRRT
003372 016601 000036 MOV 36(SP),R1 ; LCB,* 0788
003376 020327 000002 CMP R3,#2 ; FNC,* 0787
003402 001004 BNE 70$
003404 010116 MOV R1,(SP) ; 0788
003406 004767 000000G JSR PC,U$IRQ
003412 000406 BR 71$ ; 0787
003414 052761 004000 000016 70$: BIS #4000,16(R1) ; 0791
003422 010116 MOV R1,(SP) ; 0792
003424 004767 000000G JSR PC,U$ARQ
003430 062706 000006 71$: ADD #6,SP ; 0769
003434 111666 000024 72$: MOVB (SP),24(SP) ; STS,STATUS 0797
003440 000577 BR 83$ ; 0798
003442 026627 000002 000070 73$: CMP 2(SP),#70 ; MODIFIER,* 0614
003450 001044 BNE 76$
003452 016600 000014 MOV 14(SP),R0 ; 0816
003456 010001 MOV R0,R1
003460 016160 000030 000032 MOV 30(R1),32(R0)
003466 005760 000026 TST 26(R0) ; 0817
003472 001414 BEQ 74$
003474 010003 MOV R0,R3 ; 0818
003476 062703 000024 ADD #24,R3
003502 010346 MOV R3,-(SP)
003504 010346 MOV R3,-(SP)
003506 005046 CLR -(SP)
003510 004767 000000G JSR PC,BUFCHK
003514 062706 000006 ADD #6,SP
003520 010001 MOV R0,R1 ; *,TMP
003522 002002 BGE 75$
003524 010116 74$: MOV R1,(SP) ; TMP,STS 0819
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 30
X01340 User Interface 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (7)
003526 000421 BR 78$
003530 016646 000032 75$: MOV 32(SP),-(SP) ; TNB,* 0821
003534 062716 000012 ADD #12,(SP)
003540 016646 000016 MOV 16(SP),-(SP)
003544 004767 000000G JSR PC,$SCQIN
003550 005066 000012 CLR 12(SP) ; QFLAG 0822
003554 022626 CMP (SP)+,(SP)+ ; 0812
003556 005000 CLR R0 ; 0614
003560 000403 BR 77$
003562 012716 177760 76$: MOV #-20,(SP) ; *,STS 0829
003566 000401 BR 78$
003570 010016 77$: MOV R0,(SP) ; *,STS 0371
003572 111666 000024 78$: MOVB (SP),24(SP) ; STS,STATUS 0865
003576 005716 TST (SP) ; STS 0866
003600 002517 BLT 83$
003602 032766 000001 000006 BIT #1,6(SP) ; *,QFLAG 0869
003610 001411 BEQ 79$
003612 016646 000030 MOV 30(SP),-(SP) ; LCB,*
003616 062716 000006 ADD #6,(SP)
003622 016646 000016 MOV 16(SP),-(SP)
003626 004767 000000G JSR PC,$SCQIN
003632 022626 CMP (SP)+,(SP)+
003634 016602 000032 79$: MOV 32(SP),R2 ; TNB,* 0870
003640 001423 BEQ 80$
003642 016200 000012 MOV 12(R2),R0 ; 0871
003646 001420 BEQ 80$
003650 005001 CLR R1
003652 156001 000013 BISB 13(R0),R1
003656 006301 ASL R1
003660 116000 000012 MOVB 12(R0),R0
003664 042700 177600 BIC #177600,R0
003670 006200 ASR R0
003672 006200 ASR R0
003674 066100 177766' ADD ODSP-62(R1),R0
003700 010246 MOV R2,-(SP)
003702 004770 000000 JSR PC,@0(R0)
003706 005726 TST (SP)+
003710 016602 000030 80$: MOV 30(SP),R2 ; LCB,* 0872
003714 001446 BEQ 82$
003716 016200 000012 MOV 12(R2),R0 ; 0875
003722 001420 BEQ 81$
003724 005001 CLR R1
003726 156001 000013 BISB 13(R0),R1
003732 006301 ASL R1
003734 116000 000012 MOVB 12(R0),R0
003740 042700 177600 BIC #177600,R0
003744 006200 ASR R0
003746 006200 ASR R0
003750 066100 177766' ADD ODSP-62(R1),R0
003754 010246 MOV R2,-(SP)
003756 004770 000000 JSR PC,@0(R0)
003762 005726 TST (SP)+
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 31
X01340 User Interface 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (7)
003764 016200 000006 81$: MOV 6(R2),R0 ; 0876
003770 001420 BEQ 82$
003772 005001 CLR R1
003774 156001 000013 BISB 13(R0),R1
004000 006301 ASL R1
004002 116000 000012 MOVB 12(R0),R0
004006 042700 177600 BIC #177600,R0
004012 006200 ASR R0
004014 006200 ASR R0
004016 066100 177766' ADD ODSP-62(R1),R0
004022 010246 MOV R2,-(SP)
004024 004770 000000 JSR PC,@0(R0)
004030 005726 TST (SP)+
004032 004767 000000G 82$: JSR PC,$RSX ; 0878
004036 000414 BR 85$ ; 0866
004040 004767 000000G 83$: JSR PC,$RSX ; 0882
004044 016605 000012 MOV 12(SP),R5 ; 0883
004050 016603 000014 MOV 14(SP),R3
004054 016600 000024 MOV 24(SP),R0 ; STATUS.WORD,*
004060 016601 000022 84$: MOV 22(SP),R1 ; COUNT.WORD,*
004064 004767 000000G JSR PC,$IOFIN
004070 062706 000034 85$: ADD #34,SP ; 0296
004074 000207 RTS PC
; Routine Size: 1055 words, Routine Base: $CODE$ + 0000
; Maximum stack depth per invocation: 19 words
000116 .PSECT $PLIT$, RO , D
P.AAJ: ; CASE Table for U$DSP+0270 0370
000116 000054 .WORD 54 ; [9$]
000120 000054 .WORD 54 ; [9$]
000122 000122 .WORD 122 ; [12$]
000124 000720 .WORD 720 ; [24$]
000126 001420 .WORD 1420 ; [38$]
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 32
X01340 Receive-Complete from Session Control 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (8)
; 0886 %sbttl 'Receive-Complete from Session Control';
; 0887 routine UFCRCP (SCXDB, CCB, FCM): mcb_db_ccb_mod novalue =
; 0888
; 0889 !++
; 0890 ! FUNCTIONAL DESCRIPTION:
; 0891 ! This routine is activated by receipt of a receive
; 0892 ! complete from Session Control.
; 0893 !
; 0894 ! FORMAL PARAMETERS:
; 0895 ! CCB CCB to pass to handler routine
; 0896 ! FCM Function code modifier
; 0897 !
; 0898 ! IMPLICIT INPUTS:
; 0899 ! CCB contents
; 0900 !
; 0901 ! IMPLICIT OUTPUTS:
; 0902 ! None
; 0903 !
; 0904 ! ROUTINE VALUE:
; 0905 ! COMPLETION CODES:
; 0906 ! None
; 0907 !
; 0908 ! SIDE EFFECTS:
; 0909 ! None
; 0910 !--
; 0911
; 0912 begin
; 0913 $scx_get_data_base (SCXDB);
; 0914 map CCB: ref block field (C_FIELDS);
; 0915 local
; 0916 LCB: ref block field (LCB_FIELDS),
; 0917 TNB: ref block field (TNB_FIELDS),
; 0918 MB: ref block field (MBP_FIELDS);
; 0919
; 0920 case .FCM^-1 from 0 to 3 of
; 0921 set
; 0922
; 0923 ! ************
; 0924 ! ** SRUCNR **
; 0925 ! ************
; 0926 [S$CNR^-1]:
; 0927 begin
; 0928 local
; 0929 STS,
; 0930 MBD: ref block field (CND_FIELDS),
; 0931 TCB: ref block field (TCB_FIELDS);
; 0932 bind
; 0933 CB = CCB [C_ADDR]: ref block field (CB_FIELDS);
; 0934 literal
; 0935 CB_L1 = (%fieldexpand (CB_SFMT, 0) - %fieldexpand (CB_DFMT, 0)) * bytes_word,
; 0936 CB_L2 = (%fieldexpand (CB_ENDD, 0) - %fieldexpand (CB_SFMT, 0)) * bytes_word;
; 0937
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 33
X01340 Receive-Complete from Session Control 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (8)
; 0938 MAP$ (.CCB [C_BIAS]); ! Look at connect block
; 0939 if not FNDOBJ (CB [CB_DFMT], TCB)
; 0940 then
; 0941 begin
; 0942 $SCX_DO_RCE (.CCB, S_EURO);
; 0943 return
; 0944 end;
; 0945 if not $MCB_GET_DSR (MBP_SIZE*bytes_word + CND_SIZE*bytes_word, MB)
; 0946 then
; 0947 begin
; 0948 $SCX_DO_RCE (.CCB, S_ERES);
; 0949 return
; 0950 end;
; 0951
; 0952 MBD = MB [MB_DATA]; ! Set cb base
; 0953 MBD [CND_TLA] = .MB; ! Temporary LLA
; 0954 MBD [CND_SEG] = 0;
; 0955 ch$move (CB_L1, byt$ptr (CB [CB_DFMT]), byt$ptr (MBD [CND_DFMT]));
; 0956 ch$move (6, byt$ptr (CB [CB_NODE]), byt$ptr (MBD [CND_NODE]));
; 0957 ch$move (CB_L2, byt$ptr (CB [CB_SFMT]), byt$ptr (MBD [CND_SFMT]));
; 0958 MB [MB_CNT] = CND_SIZE*bytes_word;
; 0959 MB [MB_FNC] = MB$CON;
; 0960 MB [MB_FLG] = 0;
; 0961 MB [MB_LLA] = .CCB [C_LIX];
; 0962 MB [MB_LUN] = 0;
; 0963 MB [MB_TIME] = .CCB [C_PRM2] - 1;
; 0964 MB [MB_TASK] = .TCB;
; 0965
; 0966 TNB = .SCXDB [SCX_TNB];
; 0967 while .TNB neq 0 do
; 0968 begin
; 0969 if .TNB [TN_TASK] eql .TCB
; 0970 then exitloop
; 0971 else TNB = .TNB [TN_LINK]
; 0972 end;
; 0973
; 0974 MB [MB_TNB] = .TNB; ! Remember where (if) the TNB
; 0975 STS = S_SSUC;
; 0976 if .TNB neq 0
; 0977 then
; 0978 begin
; 0979 if (.TNB [TN_MAX] neq 0) and (.TNB [TN_ACT] geq .TNB [TN_MAX])
; 0980 then
; 0981 begin
; 0982 $MCB_RETURN_DSR (MBP_SIZE*bytes_word + .MB [MB_CNT], .MB);
; 0983 STS = S_EOTB
; 0984 end
; 0985 else
; 0986 begin
; 0987 TNB [TN_ACT] = .TNB [TN_ACT] + 1;
; 0988 $SCX_ENQUEUE (TNB [TN_MBXQ], .MB);
; 0989 QUEAST (.TNB);
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 34
X01340 Receive-Complete from Session Control 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (8)
; 0990 end
; 0991 end
; 0992 else
; 0993 begin
; 0994 if not TSKRT$ (.TCB, 0) then MB [MBF_REQ] = true;
; 0995 $SCX_ENQUEUE (SCXDB [SCX_MBX], .MB);
; 0996 SCXDB [SCXF_KLOK] = true
; 0997 end;
; 0998
; 0999 $SCX_DO_RCE (.CCB, .STS);
; 1000 return
; 1001 end;
; 1002
; 1003
; 1004 ! *********************
; 1005 ! ** SRUINT & SRUDSR **
; 1006 ! *********************
; 1007 [S$INT^-1, S$DSR^-1]:
; 1008 begin
; 1009 if (LCB = ULARD (.CCB [$sub_field (C_PRM1, LO_BYTE)])) eql 0
; 1010 then
; 1011 begin
; 1012 $SCX_DO_RCE (.CCB);
; 1013 return
; 1014 end;
; 1015
; 1016 TNB = .LCB [LC_TNB];
; 1017 $SCX_ENQUEUE (TNB [TN_IQUE], .CCB);
; 1018 $SCX_DISPATCH_INPUT (TNB [TN_IQUE])
; 1019 end;
; 1020
; 1021 ! ************
; 1022 ! ** SRUERR **
; 1023 ! ************
; 1024 [inrange, outrange]: SIGNAL_STOP (SCX$_ISC, .CCB);
; 1025
; 1026 tes;
; 1027 end;
.GLOBL .CRDAT, $SCHED, $TSKRT
000062' IDSP= P.AAH
.SBTTL UFCRCP Receive-Complete from Session Control
004076 .PSECT $CODE$, RO
000000 162706 000012 UFCRCP: SUB #12,SP ; 0887
000004 010466 000004 MOV R4,4(SP)
000010 010566 000006 MOV R5,6(SP)
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 35
X01340 Receive-Complete from Session Control 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (8)
000014 006203 ASR R3 ; 0920
000016 020327 000003 CMP R3,#3
000022 101003 BHI 1$
000024 006303 ASL R3
000026 066307 000130' ADD P.AAK(R3),PC ; Case dispatch
000032 016646 000004 1$: MOV 4(SP),-(SP) ; 1024
000036 012746 100014 MOV #-77764,-(SP)
000042 012746 000002 MOV #2,-(SP)
000046 004767 000000G JSR PC,$STOP
000052 062706 000006 ADD #6,SP
000056 000167 000736 JMP 18$ ; 0920
000062 016600 000004 2$: MOV 4(SP),R0 ; 0938
000066 016067 000016 000000G MOV 16(R0),KISAR6
000074 016002 000020 MOV 20(R0),R2 ; 0939
000100 010203 MOV R2,R3
000102 062703 000006 ADD #6,R3
000106 010346 MOV R3,-(SP)
000110 012746 000014 MOV #14,-(SP)
000114 060616 ADD SP,(SP) ; TCB,*
000116 004767 000000G JSR PC,FNDOBJ
000122 022626 CMP (SP)+,(SP)+
000124 006000 ROR R0
000126 103411 BLO 3$
000130 016600 000004 MOV 4(SP),R0 ; 0942
000134 112760 000004 000012 MOVB #4,12(R0)
000142 012760 177774 000014 MOV #-4,14(R0)
000150 000417 BR 5$
000152 012701 000202 3$: MOV #202,R1 ; 0945
000156 004767 000000G JSR PC,$DSRGT
000162 103402 BCS 4$
000164 010005 MOV R0,R5 ; $MCB$R0,MB
000166 000412 BR 6$
000170 016600 000004 4$: MOV 4(SP),R0 ; 0948
000174 112760 000004 000012 MOVB #4,12(R0)
000202 012760 177777 000014 MOV #-1,14(R0)
000210 000167 000512 5$: JMP 15$
000214 010501 6$: MOV R5,R1 ; MB,MBD 0952
000216 062701 000020 ADD #20,R1 ; *,MBD
000222 010511 MOV R5,(R1) ; MB,MBD 0953
000224 005061 000002 CLR 2(R1) ; *(MBD) 0954
000230 012746 000024 MOV #24,-(SP) ; 0955
000234 010346 MOV R3,-(SP)
000236 012746 000004 MOV #4,-(SP)
000242 060116 ADD R1,(SP) ; MBD,*
000244 004767 000000G JSR PC,BL$MOV
000250 012716 000006 MOV #6,(SP) ; 0956
000254 010246 MOV R2,-(SP)
000256 012746 000030 MOV #30,-(SP)
000262 060116 ADD R1,(SP) ; MBD,*
000264 004767 000000G JSR PC,BL$MOV
000270 012716 000124 MOV #124,(SP) ; 0957
000274 010246 MOV R2,-(SP)
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 36
X01340 Receive-Complete from Session Control 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (8)
000276 062716 000032 ADD #32,(SP)
000302 012746 000036 MOV #36,-(SP)
000306 060116 ADD R1,(SP) ; MBD,*
000310 004767 000000G JSR PC,BL$MOV
000314 012765 000162 000002 MOV #162,2(R5) ; *,*(MB) 0958
000322 012766 000004 000016 MOV #4,16(SP) ; 0959
000330 060566 000016 ADD R5,16(SP) ; MB,*
000334 112776 000001 000016 MOVB #1,@16(SP)
000342 042776 177400 000016 BIC #177400,@16(SP) ; 0960
000350 016600 000022 MOV 22(SP),R0 ; 0961
000354 116065 000010 000006 MOVB 10(R0),6(R5) ; *,*(MB)
000362 105065 000010 CLRB 10(R5) ; *(MB) 0962
000366 016065 000026 000012 MOV 26(R0),12(R5) ; *,*(MB) 0963
000374 005365 000012 DEC 12(R5) ; *(MB)
000400 016600 000026 MOV 26(SP),R0 ; TCB,* 0964
000404 010065 000014 MOV R0,14(R5) ; *,*(MB)
000410 016601 000024 MOV 24(SP),R1 ; 0966
000414 016166 000006 000020 MOV 6(R1),20(SP) ; *,TNB
000422 001410 7$: BEQ 8$ ; 0967
000424 016601 000020 MOV 20(SP),R1 ; TNB,* 0969
000430 026100 000002 CMP 2(R1),R0 ; *(TNB),*
000434 001403 BEQ 8$ ; 0970
000436 011166 000020 MOV (R1),20(SP) ; TNB,TNB 0971
000442 000767 BR 7$ ; 0967
000444 016665 000020 000016 8$: MOV 20(SP),16(R5) ; TNB,*(MB) 0974
000452 012704 000001 MOV #1,R4 ; *,STS 0975
000456 005766 000020 TST 20(SP) ; TNB 0976
000462 001442 BEQ 10$
000464 012701 000020 MOV #20,R1 ; 0979
000470 066601 000020 ADD 20(SP),R1 ; TNB,*
000474 010102 MOV R1,R2
000476 105762 000001 TSTB 1(R2)
000502 001415 BEQ 9$
000504 121262 000001 CMPB (R2),1(R2)
000510 103412 BLO 9$
000512 016501 000002 MOV 2(R5),R1 ; *(MB),* 0982
000516 062701 000020 ADD #20,R1
000522 010500 MOV R5,R0 ; MB,*
000524 004767 000000G JSR PC,$DSRRT
000530 012704 177772 MOV #-6,R4 ; *,STS 0983
000534 000440 BR 13$ ; 0978
000536 105212 9$: INCB (R2) ; 0987
000540 016616 000020 MOV 20(SP),(SP) ; TNB,* 0988
000544 062716 000026 ADD #26,(SP)
000550 010546 MOV R5,-(SP) ; MB,*
000552 004767 000000G JSR PC,$SCQIN
000556 016616 000022 MOV 22(SP),(SP) ; TNB,* 0989
000562 004767 000000G JSR PC,QUEAST
000566 000422 BR 12$ ; 0986
000570 005001 10$: CLR R1 ; 0994
000572 004767 000000G JSR PC,$TSKRT
000576 103003 BHIS 11$
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 37
X01340 Receive-Complete from Session Control 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (8)
000600 052776 000400 000016 BIS #400,@16(SP)
000606 012700 000012 11$: MOV #12,R0 ; 0995
000612 066600 000024 ADD 24(SP),R0
000616 010016 MOV R0,(SP)
000620 010546 MOV R5,-(SP) ; MB,*
000622 004767 000000G JSR PC,$SCQIN
000626 052776 000400 000026 BIS #400,@26(SP) ; 0996
000634 005726 12$: TST (SP)+ ; 0993
000636 016600 000022 13$: MOV 22(SP),R0 ; 0999
000642 112760 000004 000012 MOVB #4,12(R0)
000650 010460 000014 MOV R4,14(R0) ; STS,*
000654 010004 MOV R0,R4
000656 004767 000000G JSR PC,$SCHED
000662 062706 000016 ADD #16,SP ; 0920
000666 000454 BR 18$ ; 0927
000670 005046 14$: CLR -(SP) ; 1009
000672 016600 000006 MOV 6(SP),R0
000676 116016 000024 MOVB 24(R0),(SP)
000702 004767 000000G JSR PC,ULARD
000706 005726 TST (SP)+
000710 005700 TST R0 ; LCB
000712 001012 BNE 16$
000714 016601 000004 MOV 4(SP),R1 ; 1012
000720 112761 000004 000012 MOVB #4,12(R1)
000726 016604 000004 15$: MOV 4(SP),R4
000732 004767 000000G JSR PC,$SCHED
000736 000430 BR 18$ ; 1011
000740 016066 000004 000002 16$: MOV 4(R0),2(SP) ; *(LCB),TNB 1016
000746 016601 000002 MOV 2(SP),R1 ; TNB,* 1017
000752 062701 000006 ADD #6,R1
000756 010146 MOV R1,-(SP)
000760 016646 000006 MOV 6(SP),-(SP)
000764 004767 000000G JSR PC,$SCQIN
000770 005711 TST (R1) ; 1018
000772 001411 BEQ 17$
000774 011100 MOV (R1),R0
000776 116000 000013 MOVB 13(R0),R0
001002 042700 177400 BIC #177400,R0
001006 016616 000006 MOV 6(SP),(SP) ; TNB,*
001012 004770 000062' JSR PC,@$IDSP(R0)
001016 022626 17$: CMP (SP)+,(SP)+ ; 1008
001020 062706 000012 18$: ADD #12,SP ; 0887
001024 000207 RTS PC
; Routine Size: 267 words, Routine Base: $CODE$ + 4076
; Maximum stack depth per invocation: 14 words
000130 .PSECT $PLIT$, RO , D
P.AAK: ; CASE Table for UFCRCP+0026 0920
000130 000030 .WORD 30 ; [2$]
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 38
X01340 Receive-Complete from Session Control 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (8)
000132 000000 .WORD 0 ; [1$]
000134 000636 .WORD 636 ; [14$]
000136 000636 .WORD 636 ; [14$]
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 39
X01340 Timeout or Initialization From Comm/Exec 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (9)
; 1028 %sbttl 'Timeout or Initialization From Comm/Exec';
; 1029 routine UFCTMO (SCXDB, CCB, FCM): mcb_db_ccb_mod novalue =
; 1030
; 1031 !++
; 1032 ! FUNCTIONAL DESCRIPTION:
; 1033 ! This routine is activated by some event noted by
; 1034 ! the Comm/Exec.
; 1035 !
; 1036 ! FORMAL PARAMETERS:
; 1037 ! CCB CCB to pass to handler routine
; 1038 ! FCM Function code modifier
; 1039 !
; 1040 ! IMPLICIT INPUTS:
; 1041 ! CCB Contents
; 1042 !
; 1043 ! IMPLICIT OUTPUTS:
; 1044 ! None
; 1045 !
; 1046 ! ROUTINE VALUE:
; 1047 ! COMPLETION CODES:
; 1048 ! None
; 1049 !
; 1050 ! SIDE EFFECTS:
; 1051 ! None
; 1052 !--
; 1053
; 1054 begin
; 1055 $scx_get_data_base (SCXDB);
; 1056 map CCB: ref block field (C_FIELDS);
; 1057
; 1058 case .FCM^-1 from 0 to 3 of
; 1059 set
; 1060
; 1061 ! ************
; 1062 ! ** CXULTM **
; 1063 ! ************
; 1064 [1]:
; 1065 begin
; 1066 local
; 1067 LCB: ref block field (LCB_FIELDS),
; 1068 TNB: ref block field (TNB_FIELDS);
; 1069
; 1070 SCXDB [SCX_TICK] = .SCXDB [SCX_TICK] + 1; ! Restart clock
; 1071 SCXDB [SCXF_SUCC] = true;
; 1072 MBPROC (SCXDB [SCX_MBX]); ! Process Gen-Deliv connects
; 1073
; 1074 TNB = .SCXDB [SCX_TNB]; ! Point to TNB list
; 1075 while .TNB neq 0 do ! Look at all TNBs
; 1076 begin
; 1077 MBPROC (TNB [TN_MBXQ]); ! Process TNB connects
; 1078
; 1079 if .SCXDB [SCXF_SUCC] and .TNB [TNF_RWT] ! Anyone wanting resources ?
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 40
X01340 Timeout or Initialization From Comm/Exec 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (9)
; 1080 then
; 1081 begin ! Yes
; 1082 TNB [TNF_RWT] = false; ! Turn off request flag
; 1083 $SCX_DISPATCH_OUTPUT (TNB [TN_OQUE], .TNB); ! Do task level stuff
; 1084
; 1085 LCB = TNB [TN_LCB]; ! Now, step thru LCBs
; 1086 while (LCB = .LCB [LC_LINK]) neq 0 do
; 1087 begin
; 1088 if .LCB [LCF_NRES] ! Interrupt request ?
; 1089 then
; 1090 begin
; 1091 LCB [LCF_NRES] = false;
; 1092 U$IRQ (.LCB)
; 1093 end;
; 1094 if .LCB [LCF_ARES] ! Abort request ?
; 1095 then
; 1096 begin
; 1097 LCB [LCF_ARES] = false;
; 1098 LCB [LCF_DSC] = true;
; 1099 U$ARQ (.LCB)
; 1100 end;
; 1101
; 1102 ! Pump the interrupt, input, and output queues
; 1103 if .SCXDB [SCXF_SUCC]
; 1104 then
; 1105 begin
; 1106 $SCX_DISPATCH_OUTPUT (LCB [LC_NQHD], .LCB);
; 1107 $SCX_DISPATCH_OUTPUT (LCB [LC_OQHD], .LCB);
; 1108 $SCX_DISPATCH_INPUT (TNB [TN_IQHD])
; 1109 end
; 1110 end
; 1111 end;
; 1112
; 1113 if .TNB [TNF_CLS] ! Net being closed ?
; 1114 then
; 1115 begin ! Yes
; 1116 local
; 1117 NXT_TNB;
; 1118
; 1119 NXT_TNB = .TNB [TN_LINK];
; 1120 U$CLW (.TNB); ! Do the close
; 1121 TNB = .NXT_TNB
; 1122 end
; 1123 else
; 1124 TNB = .TNB [TN_LINK]
; 1125 end
; 1126 end;
; 1127
; 1128
; 1129
; 1130 ! ************
; 1131 ! ** CXUPWF **
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 41
X01340 Timeout or Initialization From Comm/Exec 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (9)
; 1132 ! ************
; 1133 [2]: return;
; 1134
; 1135
; 1136
; 1137 ! ************
; 1138 ! ** CXUPIN **
; 1139 ! ************
; 1140 [3]:
; 1141 begin
; 1142 bind SC =
; L 1143 %if %bliss (bliss36)
; U 1144 %then %rad50_10 'SC'
; 1145 %else %rad50_11 'SC'
; 1146 %fi;
; 1147
; 1148 if not PDVID$ (SC, SCXDB [SCX_SCPIX]) ! Set SC PIX
; 1149 then SIGNAL_STOP (SCX$_NSC);
; 1150 RSX$ (.SCXDB, SCXDB [SCX_UCB]); ! Record UCB address
; 1151 MCB$ (.SCXDB [SCX_UCB]); ! Back to MCB
; 1152 $MCB_ENABLE_LONG_TIMER (); ! Start clock
; 1153 SCXDB [SCX_TICK] = 1 ! ...
; 1154 end;
; 1155
; 1156
; 1157
; 1158 ! ************
; 1159 ! ** CXUERR **
; 1160 ! ************
; 1161 [inrange, outrange]: SIGNAL_STOP (SCX$_ISC);
; 1162 tes
; 1163 end;
.GLOBL P.DTGT, $CALLI, $LTMEN
000050' ODSP= P.AAB
000050' ODSP= P.AAB
000050' ODSP= P.AAB
000062' IDSP= P.AAH
073470 SC= 73470
.SBTTL UFCTMO Timeout or Initialization From Comm/Exec
005124 .PSECT $CODE$, RO
000000 005746 UFCTMO: TST -(SP) ; 1029
000002 010501 MOV R5,R1 ; *,SCXDB
000004 006203 ASR R3 ; 1058
000006 020327 000003 CMP R3,#3
000012 101003 BHI 1$
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 42
X01340 Timeout or Initialization From Comm/Exec 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (9)
000014 006303 ASL R3
000016 066307 000140' ADD P.AAL(R3),PC ; Case dispatch
000022 012746 100014 1$: MOV #-77764,-(SP) ; 1161
000026 012746 000001 MOV #1,-(SP)
000032 004767 000000G JSR PC,$STOP
000036 022626 CMP (SP)+,(SP)+
000040 000167 000540 JMP 17$ ; 1058
000044 105211 2$: INCB (R1) ; SCXDB 1070
000046 052711 001000 BIS #1000,(R1) ; *,SCXDB 1071
000052 012746 000012 MOV #12,-(SP) ; 1072
000056 060116 ADD R1,(SP) ; SCXDB,*
000060 004767 000000G JSR PC,MBPROC
000064 016104 000006 MOV 6(R1),R4 ; *(SCXDB),TNB 1074
000070 001571 3$: BEQ 12$ ; 1075
000072 012716 000026 MOV #26,(SP) ; 1077
000076 060416 ADD R4,(SP) ; TNB,*
000100 004767 000000G JSR PC,MBPROC
000104 032711 001000 BIT #1000,(R1) ; *,SCXDB 1079
000110 001545 BEQ 10$
000112 032764 001000 000016 BIT #1000,16(R4) ; *,*(TNB)
000120 001541 BEQ 10$
000122 042764 001000 000016 BIC #1000,16(R4) ; *,*(TNB) 1082
000130 016400 000012 MOV 12(R4),R0 ; *(TNB),* 1083
000134 001417 BEQ 4$
000136 005003 CLR R3
000140 156003 000013 BISB 13(R0),R3
000144 006303 ASL R3
000146 116000 000012 MOVB 12(R0),R0
000152 042700 177600 BIC #177600,R0
000156 006200 ASR R0
000160 006200 ASR R0
000162 066300 177766' ADD ODSP-62(R3),R0
000166 010416 MOV R4,(SP) ; TNB,*
000170 004770 000000 JSR PC,@0(R0)
000174 012705 000004 4$: MOV #4,R5 ; *,LCB 1085
000200 060405 ADD R4,R5 ; TNB,LCB
000202 011505 5$: MOV (R5),R5 ; LCB,LCB 1086
000204 001507 BEQ 10$
000206 012703 000016 MOV #16,R3 ; 1088
000212 060503 ADD R5,R3 ; LCB,*
000214 032713 001000 BIT #1000,(R3)
000220 001405 BEQ 6$
000222 042713 001000 BIC #1000,(R3) ; 1091
000226 010516 MOV R5,(SP) ; LCB,* 1092
000230 004767 000000G JSR PC,U$IRQ
000234 032713 002000 6$: BIT #2000,(R3) ; 1094
000240 001407 BEQ 7$
000242 042713 002000 BIC #2000,(R3) ; 1097
000246 052713 004000 BIS #4000,(R3) ; 1098
000252 010516 MOV R5,(SP) ; LCB,* 1099
000254 004767 000000G JSR PC,U$ARQ
000260 032711 001000 7$: BIT #1000,(R1) ; *,SCXDB 1103
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 43
X01340 Timeout or Initialization From Comm/Exec 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (9)
000264 001746 BEQ 5$
000266 016500 000012 MOV 12(R5),R0 ; *(LCB),* 1106
000272 001417 BEQ 8$
000274 005003 CLR R3
000276 156003 000013 BISB 13(R0),R3
000302 006303 ASL R3
000304 116000 000012 MOVB 12(R0),R0
000310 042700 177600 BIC #177600,R0
000314 006200 ASR R0
000316 006200 ASR R0
000320 066300 177766' ADD ODSP-62(R3),R0
000324 010516 MOV R5,(SP) ; LCB,*
000326 004770 000000 JSR PC,@0(R0)
000332 016500 000006 8$: MOV 6(R5),R0 ; *(LCB),* 1107
000336 001417 BEQ 9$
000340 005003 CLR R3
000342 156003 000013 BISB 13(R0),R3
000346 006303 ASL R3
000350 116000 000012 MOVB 12(R0),R0
000354 042700 177600 BIC #177600,R0
000360 006200 ASR R0
000362 006200 ASR R0
000364 066300 177766' ADD ODSP-62(R3),R0
000370 010516 MOV R5,(SP) ; LCB,*
000372 004770 000000 JSR PC,@0(R0)
000376 016400 000006 9$: MOV 6(R4),R0 ; *(TNB),* 1108
000402 001677 BEQ 5$
000404 116000 000013 MOVB 13(R0),R0
000410 042700 177400 BIC #177400,R0
000414 010416 MOV R4,(SP) ; TNB,*
000416 004770 000062' JSR PC,@$IDSP(R0)
000422 000667 BR 5$ ; 1086
000424 032764 000400 000016 10$: BIT #400,16(R4) ; *,*(TNB) 1113
000432 001406 BEQ 11$
000434 011403 MOV (R4),R3 ; TNB,NXT.TNB 1119
000436 010416 MOV R4,(SP) ; TNB,* 1120
000440 004767 000000G JSR PC,U$CLW
000444 010304 MOV R3,R4 ; NXT.TNB,TNB 1121
000446 000610 BR 3$ ; 1113
000450 011404 11$: MOV (R4),R4 ; TNB,TNB 1124
000452 000606 BR 3$ ; 1075
000454 005726 12$: TST (SP)+ ; 1065
000456 000452 BR 17$ ; 1058
000460 012746 000002 13$: MOV #2,-(SP) ; 1148
000464 060616 ADD SP,(SP) ; $MCB$MY.INDEX,*
000466 012746 073470 MOV #73470,-(SP)
000472 012746 000002 MOV #2,-(SP)
000476 012746 000000G MOV #P.DTGT,-(SP)
000502 004767 000000G JSR PC,$CALLI
000506 062706 000010 ADD #10,SP
000512 010004 MOV R0,R4 ; *,$MCB$STATUS
000514 006000 ROR R0
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 44
X01340 Timeout or Initialization From Comm/Exec 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (9)
000516 103001 BCC 14$
000520 011600 MOV (SP),R0 ; $MCB$MY.INDEX,$MCB$HANDLE
000522 010403 14$: MOV R4,R3 ; $MCB$STATUS,$MCB$STATUS
000524 006004 ROR R4 ; $MCB$STATUS
000526 103002 BCC 15$
000530 110061 000002 MOVB R0,2(R1) ; $MCB$HANDLE,*(SCXDB)
000534 032703 000001 15$: BIT #1,R3 ; *,$MCB$STATUS
000540 001007 BNE 16$
000542 012746 100024 MOV #-77754,-(SP) ; 1149
000546 012746 000001 MOV #1,-(SP)
000552 004767 000000G JSR PC,$STOP
000556 022626 CMP (SP)+,(SP)+
000560 004767 000000G 16$: JSR PC,$RSX ; 1150
000564 010561 000004 MOV R5,4(R1) ; $MCB$R5,*(SCXDB)
000570 004767 000000G JSR PC,$MCB ; 1151
000574 004767 000000G JSR PC,$LTMEN ; 1152
000600 112711 000001 MOVB #1,(R1) ; *,SCXDB 1153
000604 005726 17$: TST (SP)+ ; 1029
000606 000207 RTS PC
; Routine Size: 196 words, Routine Base: $CODE$ + 5124
; Maximum stack depth per invocation: 6 words
000140 .PSECT $PLIT$, RO , D
P.AAL: ; CASE Table for UFCTMO+0016 1058
000140 000000 .WORD 0 ; [1$]
000142 000022 .WORD 22 ; [2$]
000144 000562 .WORD 562 ; [17$]
000146 000436 .WORD 436 ; [13$]
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 45
X01340 Transmit-Complete From Session Control 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (10)
; 1164 %sbttl 'Transmit-Complete From Session Control';
; 1165 routine UFCXCP (SCXDB, CCB, FCM): mcb_db_ccb_mod novalue =
; 1166
; 1167 !++
; 1168 ! FUNCTIONAL DESCRIPTION:
; 1169 ! This routine is activated by receipt of an xmit
; 1170 ! complete from Session Control.
; 1171 !
; 1172 ! FORMAL PARAMETERS:
; 1173 ! CCB CCB to pass to handler routine
; 1174 ! FCM Function code modifier
; 1175 !
; 1176 ! IMPLICIT INPUTS:
; 1177 ! CCB contents
; 1178 !
; 1179 ! IMPLICIT OUTPUTS:
; 1180 ! None
; 1181 !
; 1182 ! ROUTINE VALUE:
; 1183 ! COMPLETION CODES:
; 1184 ! None
; 1185 !
; 1186 ! SIDE EFFECTS:
; 1187 ! None
; 1188 !--
; 1189
; 1190 begin
; 1191 $scx_get_data_base (SCXDB);
; 1192 map CCB: ref block field (C_FIELDS);
; 1193 local
; 1194 COUNT,
; 1195 IOP: ref block field (IOP_FIELDS);
; 1196 compiletime
; 1197 LUN_OFFSET = %fieldexpand (H_LUN, 0) * %upval;
; 1198 label
; 1199 ABO_DIS;
; 1200
; 1201 COUNT = 0;
; 1202 IOP = .CCB [C_PRM5]; ! Set up address of IOP
; 1203
; 1204 case .FCM^-1 from 0 to 10 of
; 1205 set
; 1206
; 1207 ! ******************************
; 1208 ! ** SXUABO & SXUDIS & SXUACC **
; 1209 ! ******************************
; 1210 [S$ABO^-1, S$DIS^-1, S$ACC^-1]: ABO_DIS:
; 1211 begin
; 1212 local
; 1213 LCB: ref block field (LCB_FIELDS),
; 1214 TNB: ref block field (TNB_FIELDS),
; 1215 LIOP: ref block field (IOP_FIELDS),
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 46
X01340 Transmit-Complete From Session Control 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (10)
; 1216 MB: ref block field (MBP_FIELDS),
; 1217 MB_PREV: ref block field (MBP_FIELDS);
; 1218
; 1219 LCB = ULARD (.CCB [$sub_field (C_PRM1, LO_BYTE)]);
; 1220 TNB = .LCB [LC_TNB];
; 1221
; 1222 if .FCM eql S$ACC
; 1223 then
; 1224 begin
; 1225 COUNT = .CCB [C_CNT];
; 1226 leave ABO_DIS
; 1227 end;
; 1228
; 1229 MB = TNB [TN_MBXQ]; ! Flush mailbox for this link
; 1230 while (MB_PREV = .MB; MB = .MB [MB_LINK]) neq 0 do
; 1231 begin
; 1232 if .MB [MB_ULA] eql .CCB [$sub_field (C_PRM1, LO_BYTE)]
; 1233 then
; 1234 begin
; 1235 if (MB_PREV [MB_LINK] = .MB [MB_LINK]) eql 0
; 1236 then TNB [TN_MBTL] = .MB_PREV;
; 1237 $MCB_RETURN_DSR (MBP_SIZE*bytes_word + .MB [MB_CNT], .MB)
; 1238 end
; 1239 end;
; 1240
; 1241 ! Flush the output queues
; 1242 while $SCX_DEQUEUE (LCB [LC_OQUE], LIOP) do IOFIN$ (.SCXDB [SCX_UCB], .LIOP, IE_ABO, 0);
; 1243 while $SCX_DEQUEUE (LCB [LC_NQUE], LIOP) do IOFIN$ (.SCXDB [SCX_UCB], .LIOP, IE_ABO, 0);
; 1244
; 1245 ! Clear user's LN2 word, clear the ULA, and get rid of link
; 1246 ((.LCB [LC_LUN] ^%upval) + .$HEADR + LUN_OFFSET - %upval) = 0;
; 1247 ULASET (.LCB [LC_ULA], 0);
; 1248 TNB [TN_ACT] = .TNB [TN_ACT] - 1;
; 1249 LCBKIL (.LCB)
; 1250 end;
; 1251
; 1252
; 1253
; 1254 ! ************
; 1255 ! ** SXUCON **
; 1256 ! ************
; 1257 [S$CON^-1]:
; 1258 begin
; 1259 local
; 1260 LCB: ref block field (LCB_FIELDS);
; 1261
; 1262 LCB = (.(.IOP [I_LN2]) and -2);
; 1263 if .CCB [C_STS] neq S_SSUC
; 1264 then
; 1265 begin
; 1266 bind TNB = .LCB [LC_TNB]: block field (TNB_FIELDS);
; 1267 TNB [TN_ACT] = .TNB [TN_ACT] - 1;
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 47
X01340 Transmit-Complete From Session Control 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (10)
; 1268 LCBKIL (.LCB); ! Deallocate LCB and ULA and LN2
; 1269 ULASET (.CCB [$sub_field (C_PRM1, LO_BYTE)], 0);
; 1270 (.IOP [I_LN2]) = 0;
; 1271 end
; 1272 else
; 1273 LCB [LC_LLA] = .CCB [C_LIX];
; 1274
; 1275 IOFIN$ (.IOP [I_UCB], .IOP, STXMAP (.CCB [C_STS]), .CCB [C_PRM4]);
; 1276 $MCB_RETURN_DSR( DSR_CONNECT_BLOCK_SIZE, .CCB[C_ADDR]);
; 1277 CCBRT$( .CCB);
; 1278 return
; 1279 end;
; 1280
; 1281
; 1282
; 1283 ! ************
; 1284 ! ** SXUREJ **
; 1285 ! ************
; 1286 [S$REJ^-1]:
; 1287 begin
; 1288 bind
; 1289 TNB = CCB [C_PRM4]: ref block field (TNB_FIELDS);
; 1290
; 1291 if .TNB neq 0 then TNB [TN_ACT] = .TNB [TN_ACT] - 1;
; 1292 COUNT = .CCB [C_CNT]
; 1293 end;
; 1294
; 1295
; 1296
; 1297 ! ********************************************
; 1298 ! ** SXUGLN, SXUIRQ, SXUMRQ, SXUSND, SXUSNI **
; 1299 ! ********************************************
; 1300 [inrange]: COUNT = .CCB [C_CNT];
; 1301
; 1302
; 1303
; 1304 ! ************
; 1305 ! ** SXUERR **
; 1306 ! ************
; 1307 [outrange]: SIGNAL_STOP (SCX$_ISC, .CCB);
; 1308
; 1309 tes;
; 1310
; 1311 if .IOP neq 0 then IOFIN$ (.IOP [I_UCB], .IOP, STXMAP (.CCB [C_STS]), .COUNT);
; 1312 CCBRT$ (.CCB)
; 1313 end;
.GLOBL $SCQRM, $CCBRT
.SBTTL UFCXCP Transmit-Complete From Session Control
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 48
X01340 Transmit-Complete From Session Control 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (10)
005734 .PSECT $CODE$, RO
000000 162706 000010 UFCXCP: SUB #10,SP ; 1165
000004 010301 MOV R3,R1 ; *,FCM
000006 010446 MOV R4,-(SP)
000010 010546 MOV R5,-(SP)
000012 005046 CLR -(SP) ; COUNT 1201
000014 010400 MOV R4,R0 ; 1202
000016 016046 000034 MOV 34(R0),-(SP) ; *,IOP
000022 006203 ASR R3 ; 1204
000024 020327 000012 CMP R3,#12
000030 101003 BHI 1$
000032 006303 ASL R3
000034 066307 000150' ADD P.AAM(R3),PC ; Case dispatch
000040 016646 000006 1$: MOV 6(SP),-(SP) ; 1307
000044 012746 100014 MOV #-77764,-(SP)
000050 012746 000002 MOV #2,-(SP)
000054 004767 000000G JSR PC,$STOP
000060 062706 000006 ADD #6,SP
000064 000167 000656 JMP 17$ ; 1204
000070 005046 2$: CLR -(SP) ; 1219
000072 016600 000010 MOV 10(SP),R0
000076 116016 000024 MOVB 24(R0),(SP)
000102 004767 000000G JSR PC,ULARD
000106 010066 000014 MOV R0,14(SP) ; *,LCB
000112 016066 000004 000012 MOV 4(R0),12(SP) ; *(LCB),TNB 1220
000120 020127 000002 CMP R1,#2 ; FCM,* 1222
000124 001007 BNE 3$
000126 016600 000010 MOV 10(SP),R0 ; 1225
000132 016066 000022 000004 MOV 22(R0),4(SP) ; *,COUNT
000140 005746 TST -(SP) ; 1226
000142 000557 BR 11$
000144 016602 000012 3$: MOV 12(SP),R2 ; TNB,MB 1229
000150 062702 000026 ADD #26,R2 ; *,MB
000154 010203 4$: MOV R2,R3 ; MB,MB.PREV 1230
000156 011202 MOV (R2),R2 ; MB,MB
000160 001424 BEQ 6$
000162 016600 000010 MOV 10(SP),R0 ; 1232
000166 126260 000007 000024 CMPB 7(R2),24(R0) ; *(MB),*
000174 001367 BNE 4$
000176 011213 MOV (R2),(R3) ; MB,MB.PREV 1235
000200 001004 BNE 5$
000202 016600 000012 MOV 12(SP),R0 ; TNB,* 1236
000206 010360 000030 MOV R3,30(R0) ; MB.PREV,*(TNB)
000212 016201 000002 5$: MOV 2(R2),R1 ; *(MB),* 1237
000216 062701 000020 ADD #20,R1
000222 010200 MOV R2,R0 ; MB,*
000224 004767 000000G JSR PC,$DSRRT
000230 000751 BR 4$ ; 1230
000232 016666 000014 000016 6$: MOV 14(SP),16(SP) ; LCB,* 1242
000240 062766 000006 000016 ADD #6,16(SP)
000246 016616 000016 7$: MOV 16(SP),(SP)
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 49
X01340 Transmit-Complete From Session Control 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (10)
000252 012746 000022 MOV #22,-(SP)
000256 060616 ADD SP,(SP) ; LIOP,*
000260 004767 000000G JSR PC,$SCQRM
000264 005726 TST (SP)+
000266 032700 000001 BIT #1,R0
000272 001414 BEQ 8$
000274 016602 000006 MOV 6(SP),R2
000300 016205 000004 MOV 4(R2),R5
000304 016603 000020 MOV 20(SP),R3 ; LIOP,*
000310 012700 177761 MOV #-17,R0
000314 005001 CLR R1
000316 004767 000000G JSR PC,$IOFIN
000322 000751 BR 7$
000324 016666 000014 000016 8$: MOV 14(SP),16(SP) ; LCB,* 1243
000332 062766 000012 000016 ADD #12,16(SP)
000340 016616 000016 9$: MOV 16(SP),(SP)
000344 012746 000022 MOV #22,-(SP)
000350 060616 ADD SP,(SP) ; LIOP,*
000352 004767 000000G JSR PC,$SCQRM
000356 005726 TST (SP)+
000360 032700 000001 BIT #1,R0
000364 001414 BEQ 10$
000366 016602 000006 MOV 6(SP),R2
000372 016205 000004 MOV 4(R2),R5
000376 016603 000020 MOV 20(SP),R3 ; LIOP,*
000402 012700 177761 MOV #-17,R0
000406 005001 CLR R1
000410 004767 000000G JSR PC,$IOFIN
000414 000751 BR 9$
000416 005000 10$: CLR R0 ; 1246
000420 016601 000014 MOV 14(SP),R1 ; LCB,*
000424 156100 000016 BISB 16(R1),R0 ; *(LCB),*
000430 006300 ASL R0
000432 006300 ASL R0
000434 066700 000000G ADD $HEADR,R0
000440 005060 000074 CLR 74(R0)
000444 005016 CLR (SP) ; 1247
000446 010100 MOV R1,R0 ; LCB,*
000450 116016 000020 MOVB 20(R0),(SP) ; *(LCB),*
000454 005046 CLR -(SP)
000456 004767 000000G JSR PC,ULASET
000462 016601 000014 MOV 14(SP),R1 ; TNB,* 1248
000466 105361 000020 DECB 20(R1) ; *(TNB)
000472 016616 000016 MOV 16(SP),(SP) ; LCB,* 1249
000476 004767 000000G JSR PC,LCBKIL
000502 022626 11$: CMP (SP)+,(SP)+ ; 1204
000504 000520 BR 17$
000506 011600 12$: MOV (SP),R0 ; IOP,* 1262
000510 017001 000006 MOV @6(R0),R1 ; *(IOP),LCB
000514 042701 000001 BIC #1,R1 ; *,LCB
000520 016600 000006 MOV 6(SP),R0 ; 1263
000524 026027 000014 000001 CMP 14(R0),#1
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 50
X01340 Transmit-Complete From Session Control 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (10)
000532 001425 BEQ 13$
000534 016100 000004 MOV 4(R1),R0 ; *(LCB),* 1267
000540 105360 000020 DECB 20(R0)
000544 010146 MOV R1,-(SP) ; LCB,* 1268
000546 004767 000000G JSR PC,LCBKIL
000552 005016 CLR (SP) ; 1269
000554 016600 000010 MOV 10(SP),R0
000560 116016 000024 MOVB 24(R0),(SP)
000564 005046 CLR -(SP)
000566 004767 000000G JSR PC,ULASET
000572 016600 000004 MOV 4(SP),R0 ; IOP,* 1270
000576 005070 000006 CLR @6(R0) ; *(IOP)
000602 022626 CMP (SP)+,(SP)+ ; 1265
000604 000405 BR 14$ ; 1263
000606 016600 000006 13$: MOV 6(SP),R0 ; 1273
000612 116061 000010 000021 MOVB 10(R0),21(R1) ; *,*(LCB)
000620 016600 000006 14$: MOV 6(SP),R0 ; 1275
000624 016046 000014 MOV 14(R0),-(SP)
000630 004767 000000G JSR PC,STXMAP
000634 016602 000002 MOV 2(SP),R2 ; IOP,*
000640 016205 000010 MOV 10(R2),R5 ; *(IOP),*
000644 010203 MOV R2,R3 ; IOP,*
000646 016602 000010 MOV 10(SP),R2
000652 016201 000032 MOV 32(R2),R1
000656 004767 000000G JSR PC,$IOFIN
000662 016602 000010 MOV 10(SP),R2 ; 1276
000666 016200 000020 MOV 20(R2),R0
000672 012701 000156 MOV #156,R1
000676 004767 000000G JSR PC,$DSRRT
000702 016604 000010 MOV 10(SP),R4 ; 1277
000706 004767 000000G JSR PC,$CCBRT
000712 005726 TST (SP)+ ; 1204
000714 000442 BR 19$ ; 1258
000716 016601 000006 15$: MOV 6(SP),R1 ; 1291
000722 016100 000032 MOV 32(R1),R0
000726 001402 BEQ 16$
000730 105360 000020 DECB 20(R0)
000734 016600 000006 16$: MOV 6(SP),R0 ; 1300
000740 016066 000022 000002 MOV 22(R0),2(SP) ; *,COUNT
000746 005716 17$: TST (SP) ; IOP 1311
000750 001420 BEQ 18$
000752 016600 000006 MOV 6(SP),R0
000756 016046 000014 MOV 14(R0),-(SP)
000762 004767 000000G JSR PC,STXMAP
000766 016602 000002 MOV 2(SP),R2 ; IOP,*
000772 016205 000010 MOV 10(R2),R5 ; *(IOP),*
000776 010203 MOV R2,R3 ; IOP,*
001000 016601 000004 MOV 4(SP),R1 ; COUNT,*
001004 004767 000000G JSR PC,$IOFIN
001010 005726 TST (SP)+
001012 016604 000006 18$: MOV 6(SP),R4 ; 1312
001016 004767 000000G JSR PC,$CCBRT
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 51
X01340 Transmit-Complete From Session Control 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (10)
001022 062706 000020 19$: ADD #20,SP ; 1165
001026 000207 RTS PC
; Routine Size: 268 words, Routine Base: $CODE$ + 5734
; Maximum stack depth per invocation: 12 words
000150 .PSECT $PLIT$, RO , D
P.AAM: ; CASE Table for UFCXCP+0034 1204
000150 000446 .WORD 446 ; [12$]
000152 000030 .WORD 30 ; [2$]
000154 000656 .WORD 656 ; [15$]
000156 000674 .WORD 674 ; [16$]
000160 000674 .WORD 674 ; [16$]
000162 000674 .WORD 674 ; [16$]
000164 000674 .WORD 674 ; [16$]
000166 000674 .WORD 674 ; [16$]
000170 000030 .WORD 30 ; [2$]
000172 000030 .WORD 30 ; [2$]
000174 000674 .WORD 674 ; [16$]
; 1314
; 1315 end
; 1316 eludom
; OTS external references
.GLOBL $STOP, BL$FIL, BL$MOV
; PSECT SUMMARY
;
; Psect Name Words Attributes
; $PLIT$ 63 RO , D , LCL, REL, CON
; $CODE$ 1786 RO , I , LCL, REL, CON
; LIBRARY STATISTICS
;
; -------- Symbols -------- Blocks
; File Total Loaded Percent Read
;
; NETPKG:<SC>SCPRM.L16.4 262 118 45 0
; NETPKG:<MCB>MCBLIB.L16.15 372 57 15 0
; NETPKG:<MCB>RSXLIB.L16.13 317 129 40 0
; NETPKG:<MCB>XPORTX.L16.15 599 30 5 0
SCXDSP 25-Jan-1983 10:24:21 TOPS-20 Bliss-16 2A(530) Page 52
X01340 Transmit-Complete From Session Control 30-Dec-1982 21:02:35 NETPKG:<SC>SCXDSP.BLI.10 (10)
; NETPKG:<MCB>SCSYS.L16.13 113 41 36 0
; Size: 1786 code + 63 data words
; Run Time: 00:33.6
; Elapsed Time: 01:56.2
; Memory Used: 151 pages
; Compilation Complete
ABO_DIS 1199 1210 1226
ALL 125+
BLISS36 352 1143
BUFCHK 238 432 476 477 515 572 727 818
BYT$PTR 775 955 956 957
BYTES_WORD 152+ 452 586 626 630 785 935 936 945 958 982 1237
BYTE_VECTOR 328 333
CB 933# 939 955 956 957
CBU_ACNT 147+#
CBU_ACTL 146+#
CBU_DFMT 136+#
CBU_DOBJ 137+#
CBU_DST 138+#
CBU_FIELDS 132+#
CBU_NODE 134+#
CBU_PASL 143+#
CBU_PASW 144+#
CBU_RQDL 140+#
CBU_RQID 141+#
CBU_SIZE 151+# 152+
CB_DFMT 935 939 955
CB_ENDD 936
CB_FIELDS 933
CB_L1 935# 955
CB_L2 936# 957
CB_NODE 956
CB_SFMT 935 936 957
CCB 887 914 933 938 942 948 961 963 999 1009 1012 1017
1024 1029 1056 1165 1192 1202 1219 1225 1232 1263 1269 1273
1275 1276 1277 1289 1292 1300 1307 1311 1312
CCBRT$ 1277 1312
CND 427# 440 563# 578
CND_ACNT 178+#
CND_ACTL 177+#
CND_DFMT 161+# 955
CND_DOBJ 162+#
CND_DST 163+#
CND_FIELDS 156+# 427 563 930
CND_NODE 165+# 956
CND_OPDL 180+#
CND_OPTD 181+#
CND_PASL 174+#
CND_PASW 175+#
CND_RQDL 171+#
CND_RQID 172+#
CND_SEG 159+# 954
CND_SFMT 167+# 957
CND_SIZE 185+# 945 958
CND_SOBJ 168+#
CND_SRC 169+#
CND_TLA 158+# 440 578 953
CONNECT_PROC 340 405 407 430 433 443 446 474 478 481 492 496
CONTROL_PROC 342 604 611 627 680 728 759 819 829
COUNT_WORD 336# 350# 667 703 799 883
COUNT 328 336 699# 766# 770# 771# 772 775 1194 1201# 1225# 1292#
1300# 1311
C_ADDR 933 1276
C_BIAS 938
C_CNT 1225 1292 1300
C_FIELDS 914 1056 1192
C_LIX 961 1273
C_PRM1 1009 1219 1232 1269
C_PRM2 963
C_PRM4 1275 1289
C_PRM5 1202
C_STS 1263 1275 1311
DATA_PROC 339 377 388
DISCONNECT_PROC 341 501 516 534 537 567 570 573 581 595 599
DSR_CONNECT_BLOCK_SIZE 1276
FALSE 395 543 588 679 737 753 822 851 1082 1091 1097
FCM 887 920 1029 1058 1165 1204 1222
FC_CCP 291
FC_RCP 294
FC_TIM 292
FC_XCP 293
FNC 719 736# 751 765 773 777 787
FNDOBJ 239 939
GETLCB 240 445 480
HDR_FIELDS 219
HI_BYTE 748
H_LUN 344 1197
H_NML 364 365 435 566 610 631 847
IE_ABO 1242 1243
IE_BAD 430 443 474 537 570 581
IE_DAO 772
IE_NDA 759
IE_PRI 364 365 388 407 492 534 567 595 611 829 859
IE_RSU 446 481 627
IOFIN$ 667 703 799 883 1242 1243# 1275 1311
IOP 296 322 354# 357 358 359 363 371 394 427 429 432
436 445 447# 473 476 477 480 483# 512# 513# 515 536
542 563 569 572 574 583# 587 634 635 636 667 677
692 703 722# 727 747 748 770 774 775 799 816# 817
818 821 838 848# 849# 850 869 883 1195 1202# 1262 1270
1275 1311
IOP$ABO 524 539
IOP$ACC 415
IOP$CLO 849
IOP$CLS 675 845
IOP$CON 459
IOP$DSC 524
IOP$GLN 806
IOP$GND1 710 744
IOP$GND2 710 723 761
IOP$GND3 710
IOP$INT 391
IOP$OPN 363 607 620
IOP$REJ 551
IOP$SPA 687
IOP_CON 405
IOP_CTL 363 604 848
IOP_DSC 501
IOP_FIELDS 322 1195 1215
IOP_HI 371
IOP_LO 371
IOP_RCV 377
IOP_XMT 377
IS_SUC 364 365 368 398 496 599 680 703 764 772 852
I_FNC 363 371 838 848
I_LN2 354 357 358 447 483 634 1262 1270
I_MOD 359 849
I_PRM1 436 515 574 636 692 727 774 818
I_PRM2 427 563 775 817
I_PRM3 429 432 473 476 513 536 569 572 722 770 816
I_PRM4 432 476 512 513 572 722 747 748 816
I_PRM5 512
I_PRM6 477 583
I_TCB 445 480 635
I_UCB 1275 1311
LCB 330 358# 387 390 394 407 445 447 448# 449# 480 483
484# 533 535 538# 542 565# 606# 784# 788 791# 792 869
872 875 876 916 1009# 1016 1067 1085# 1086# 1088 1091# 1092
1094 1097# 1098# 1099 1106 1107 1213 1219# 1220 1242 1243 1246
1247 1249 1260 1262# 1266 1268 1273#
LCBKIL 241 1249 1268
LCB_FIELDS 330 916 1067 1213 1260
LCF_ARES 1094 1097
LCF_DSC 387 533 538 791 1098
LCF_NRES 1088 1091
LC_LINK 1086
LC_LLA 449 1273
LC_LUN 448 484 1246
LC_NQHD 1106
LC_NQUE 394 542 875 1243
LC_OQHD 1107
LC_OQUE 869 876 1242
LC_TNB 390 535 1016 1220 1266
LC_ULA 1247
LIOP 1215 1242 1243
LO_BYTE 747 1009 1219 1232 1269
LUN 324 357# 448 484 566 610 631 847
LUN_MASK 742 748# 752
LUN_OFFSET 344# 354 357 435 1197# 1246
MAP$ 436 574 774 938
MB 332 437# 438# 440 443 449 450 452 575# 576# 578 581
583 584 586 643# 644# 646 649 652# 655 657 659 660#
695# 696# 698 732# 733# 736 752 766 770 771 772 775
779# 782 784 785 918 945 952 953 958# 959# 960# 961#
962# 963# 964# 974# 982 988 994# 995 1216 1229# 1230# 1232
1235 1237
MB$CNP 698 736 779
MB$CON 649 655 777 959
MB$INT 787
MBD 930 952# 953# 954# 955 956 957
MBF_REQ 994
MBPROC 242 1072 1077
MBP_FIELDS 331 332 918 1216 1217
MBP_SIZE 452 586 785 945 982 1237
MB_CNT 452 586 766 770 772 785 958 982 1237
MB_DATA 775 952
MB_FLG 960
MB_FNC 649 655 698 736 779 959
MB_LINK 438 450 576 584 644 657 696 733 782 1230 1235
MB_LLA 449 583 961
MB_LUN 752 771 962
MB_PREV 331 438# 450# 451 576# 584# 585 644# 657# 658 660 733#
782# 783 1217 1230# 1235# 1236
MB_TASK 646 964
MB_TIME 652 963
MB_TNB 974
MB_ULA 784 1232
MCB$ 347 1151
MCB_DB_CCB_MOD 198 199 200 887# 1029# 1165#
MODIFIER 325 359# 363 391 409 518 539 607 614 723 744 761
NONE_SUCH 275 276
NOOP 243 263 264 265
NXT_TNB 1117 1119# 1121
N_RQL 152+# 473
PDVID$ 1148
QFLAG 326 351# 395# 543# 588# 679# 822# 851# 869
QUEAST 244 989
RSX$ 666 702 798 878 882 1150
RSX_UCB_SCB_IOP 196 296#
S$ABO 1210
S$ACC 1210 1222
S$CNR 926
S$CON 1257
S$DIS 1210
S$DSR 1007
S$INT 1007
S$REJ 1286
SC 1142# 1148
SCB 296
SCX$_ISC 1024 1161 1307
SCX$_NSC 1149
SCXDB_FIELDS 329
SCXDB_SIZE 630
SCXDB 329 347 632 633# 643 658# 666 702 798 878 882 887
913 966 995 996# 1029 1055 1070# 1071# 1072 1074 1079 1103
1148 1150 1151 1153# 1165 1191 1242 1243
SCXDSP 1#
SCXF_KLOK 996
SCXF_SUCC 1071 1079 1103
SCX_MBHD 643
SCX_MBTL 658
SCX_MBX 995 1072
SCX_SCPIX 1148
SCX_TICK 1070 1153
SCX_TNB 632 633 966 1074
SCX_UCB 1150 1151 1242 1243
SELEKT 720 735# 737# 753# 756 759
SRUDSW 222* 278
SRUINW 223 277
STATUS 333 337 665# 765# 773# 797# 865#
STATUS_WORD 337# 348# 667 799 883
STS 327 349# 361# 368 369# 665 764# 772# 797 865 866 929
975# 983# 999
STXMAP 245 1275 1311
S_EOTB 983
S_ERES 948
S_EURO 942
S_SSUC 975 1263
TABLE$ 291
TCB 931 939 964 969 994
TCB_FIELDS 931
TMP 425 432# 433 471 476# 477# 478 510 515# 516 532 561
572# 573 726 727# 728 814 818# 819
TNB 334 358# 390# 435# 437 445 451# 480 482# 535# 575 585#
587 610 626 630 631# 632# 633# 634 635# 636# 637# 638#
639# 646 650 656# 659 677 678# 692# 695 732 783# 821
847 850 870 871 917 966# 967 969 971# 974 976 979
987# 988 989 1016# 1017 1018 1068 1074# 1075 1077 1079 1082#
1083 1085 1108 1113 1119 1120 1121# 1124# 1214 1220# 1229 1236#
1248# 1266# 1267# 1289# 1291#
TNB_FIELDS 334 917 1068 1214 1266 1289
TNB_SIZE 626
TNF_CLS 678 847 1113
TNF_RWT 1079 1082
TN_ACT 482 650 656 979 987 1248 1267 1291
TN_IQHD 639 1108
TN_IQTL 639
TN_IQUE 1017 1018
TN_LCB 1085
TN_LINK 632 971 1119 1124
TN_LUN 631
TN_MAX 636 650 979
TN_MBHD 638
TN_MBTL 451 585 638 783 1236
TN_MBXQ 437 575 659 695 732 988 1077 1229
TN_OQHD 637
TN_OQTL 637
TN_OQUE 587 677 821 850 871 1083
TN_SPA 692
TN_TASK 635 646 969
TRUE 351 538 678 735 791 994 996 1071 1098
TSKRT$ 994
TYPE_MASK 741 747# 751
U$ABW 225 271
U$ACW 226 270
U$ARQ 227 792 1099
U$CLW 228 272 1120
U$CNW 229 270
U$DSP 196 262 296*
U$DSW 230 271
U$GLW 231 272
U$IRQ 232 788 1092
U$RCW 233 269
U$RJW 234 271
U$SNW 235 268
U$XMW 236 268
UCB 296 347 667 703 799 883
UFCRCP 198 294 887*
UFCTMO 199 292 1029*
UFCXCP 200 293 1165*
ULAGET 246
ULARD 247 784 1009 1219
ULASET 248 1247 1269#
XPO$K_VERSION 122+
$ADDRESS 158+
$BYTE_STRING 134+ 138+ 141+ 144+ 147+ 163+ 165+ 169+ 172+ 175+ 178+ 181+
$BYTE 136+ 137+ 161+ 162+ 167+ 168+
$DSPCR 218 291
$FIELD 132+ 156+
$FIELD_SET_SIZE 151+ 185+
$HEADR 219 354 357 364 365 435 566 610 631# 847 1246
$IDSP 274#
$MCB_ENABLE_LONG_TIMER 1152
$MCB_GET_DSR 626 945
$MCB_RETURN_DSR 452 586 785 982 1237 1276
$NSTBL 261#
$ODSP 267#
$SCXLL 291#
$SCX_DEQUEUE 1242 1243
$SCX_DISPATCH_INPUT 1018 1108
$SCX_DISPATCH_OUTPUT 871 875 876 1083 1106 1107
$SCX_DO_RCE 942 948 999 1012
$SCX_ENQUEUE 394 587 659 821 869 988 995 1017
$SCX_GET_DATA_BASE 913 1055 1191
$SCX_STACK 542 677 850
$SHORT_INTEGER 140+ 143+ 146+ 159+ 171+ 174+ 177+ 180+
$SHOW 125+
$SUB_FIELD 747 748 1009 1219 1232 1269