Trailing-Edge
-
PDP-10 Archives
-
TOPS-20_V6.1_DECnetSrc_7-23-85
-
mcb/sc/scdsp.lst
There is 1 other file named scdsp.lst in the archive. Click here to see a list.
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 1
27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (1)
; 0001 module SCDSP ( ! CCB-Level Dispatching and Initialization
; 0002 ident = 'X01500'
; 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 ! FACILITY: Session Control
; 0030 !
; 0031 ! ABSTRACT: This is the top level module in the MCB implementation
; 0032 ! of Session Control. It is through this module that all
; 0033 ! CCBs are dispatched to the appropriate processing
; 0034 ! routines. Additionally, SC initialization is performed
; 0035 ! within this module.
; 0036 !
; 0037 ! ENVIRONMENT: MCB
; 0038 !
; 0039 ! AUTHOR: Buren Hoffman CREATION DATE: 2-Apr-80
; 0040 !
; 0041 ! MODIFIED BY:
; 0042 ! X01010 Fixed NM turn on of SC to wait until NSP has returned
; 0043 ! the necessary results for SC to really be on.
; 0044 ! X01020 Changed code to use $byt_ptr macro in place of the
; 0045 ! ch$ptr macro.
; 0046 ! X01030 Corrected mapping bug in FCRCP.
; 0047 ! X01040 Fixed linkage mismatches to called external routines.
; 0048 ! X01050 Added more state checking in accept/reject completion
; 0049 ! handling.
; 0050 ! X01060 Fixed dot bug in connect-rejection processing.
; 0051 ! X01070 Corrected mapping bug in FCXCP.
; 0052 ! X01080 Simple formatting changes to make code read easier.
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 2
X01500 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (1)
; 0053 ! X01090 Fixed dot bug in timeout handling.
; 0054 ! X01100 Moved Port-Open code to routine I$CLS in SCSUB - removed
; 0055 ! it from the timeout routine in this module.
; 0056 ! X01110 Modified dispatch table definition to use the TABLE$ macro.
; 0057 ! X01120 Fixed logic error in FCRCE - nonexistent ccb was being
; 0058 ! released.
; 0059 ! X01130 Fixed resource-release problem in connect-complete processing.
; 0060 ! LDB was being released as an CCB.
; 0061 ! X01140 Fixed connect-received processing to not forward data length
; 0062 ! to user as part of data.
; 0063 ! X01150 LIX was being retrieved from wrong CCB in FCRCE.
; 0064 ! X01160 Removed redundant code in connect-received processing.
; 0065 ! X01170 Fix in abort processing to cause processing of right lnk.
; 0066 ! X01180 Dot bug fix in NR$CST
; 0067 ! X01190 Set reject reason correctly on reject
; 0068 ! X01200 Wrong state checking in NX$REJ fixed
; 0069 ! X01210 Fixed code to prevent two rejects on one link
; 0070 ! X01220 Fix to assure proper optional data format is generated
; 0071 ! X01230 Improved documentation, and added info on SIGNAL_STOPs
; 0072 ! X01240 Fixed completion of nonexistent CCB in reject code.
; 0073 ! X01250 Removed network management stuff to its own module.
; 0074 ! X01260 Made NM module an extension process.
; 0075 ! X01270 Code cleanup, and status code reporting fixes.
; 0076 ! X01280 Use new Comm/Exec to process linkage (.CRDAT for database)
; 0077 ! X01290 Fixed state checking in NX$BUF, NX$DRQ, ..., to accept
; 0078 ! ST_DIR state.
; 0079 ! X01300 Changed GET-LOCAL-NODE-INFO to also be able to return
; 0080 ! node addr / node name information. Changed data-received
; 0081 ! processing to give (beginning-of-message), (middle-of-message),
; 0082 ! and (end-of-message) indications to the user.
; 0083 ! X01310 Updated to use library calls, instead of requires.
; 0084 ! X01320 Fixed bug in link selection in abort handling code.
; 0085 ! Also, put call to I$OPN in connect received code.
; 0086 ! X01330 Changed SC's state codes to correspond to NM's code numbers.
; 0087 ! X01340 Fixed race between CNR and DSR.
; 0088 ! X01350 More fix for above race.
; 0089 ! X01360 Fixed length check for GLN function
; 0090 ! X01370 Repaired info copy length in GLN.
; 0091 ! X01380 Fixed state checking in SR$DAT and SR$INT to allow
; 0092 ! ST_DIR state.
; 0093 ! X01390 Modified connect-received processing to cause PIX-to-link
; 0094 ! binding to be performed when the received connect is
; 0095 ! acknowledged.
; 0096 ! X01400 Changed Confidence-received call to be processed like a
; 0097 ! disconnect-received, with status code of S_ENUR. This
; 0098 ! change allows the task or process to synchronize with
; 0099 ! the vanishing link - instead of being surprised when it
; 0100 ! finds it gone.
; 0101 ! X01410 Additional state check in XCP of disconnect complete from
; 0102 ! NSP.
; 0103 ! X01420 Implemented "paranoid" conditional assembly, and cleaned
; 0104 ! up node-name location.
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 3
X01500 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (1)
; 0105 ! X01430 Upgraded to use new long timer capability.
; 0106 ! X01440 User PIX was not being set for outgoing connects.
; 0107 ! X01450 Optimization work.
; 0108 ! X01460 Fixed CCB completion for NX$INI to do CCP.
; 0109 ! X01470 Added Host-Node-ID processing capability.
; 0110 ! x01480 Use DSR space instead of LDB's for connect info
; 0111 ! x01490 add some in NX$CLS
; 0112 ! x01500 Fix a race condition in FCXCP (patch around it actually).
; 0113 !
; 0114 !--
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 4
X01500 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (2)
; 0115 !
; 0116 ! REQUIRED FILES
; 0117 !
; 0118 library 'SCPRM'; ! Our parameter and macro definitions
; 0119 library 'MCB:MCBLIB';
; 0120 library 'MCB:RSXLIB';
; 0121 library 'MCB:NMXLIB';
; 0122 library 'MCB:XPORTX';
; 0123 library 'MCB:SCSYS';
; 0124
; 0125 require 'NSP:NSINFO';
; 0237
; 0238
; 0239 !
; 0240 ! TABLE OF CONTENTS:
; 0241 !
; 0242 forward routine
; 0243 FCCTL: mcb_db_ccb_mod novalue, ! Control function
; 0244 FCRCE: mcb_db_ccb_mod novalue, ! Receive enable
; 0245 FCRCP: mcb_db_ccb_mod novalue, ! Receive complete
; 0246 FCTMO: mcb_db_ccb_mod novalue, ! Timeout
; 0247 FCXCP: mcb_db_ccb_mod novalue, ! Transmit complete
; 0248 FCXME: mcb_db_ccb_mod novalue; ! Transmit enable
; 0249
; 0250 !
; 0251 ! MACROS:
; 0252 !
; 0253 macro
; M 0254 RAD50 (STR) =
; 0255 %if %bliss (bliss36) %then %rad50_10 STR %else %rad50_11 STR %fi %;
; 0256
; 0257 !
; 0258 ! EQUATED SYMBOLS:
; 0259 !
; 0260
; 0261 !
; 0262 ! OWN STORAGE:
; 0263 !
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 5
X01500 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (3)
; 0264 !
; 0265 ! EXTERNAL REFERENCES:
; 0266 !
; 0267 external
; 0268 $DSPCR;
; 0269
; 0270 external routine ! BLISS Routines
; 0271 FINDLL, ! Find a logical link
; 0272 FINDND, ! Determine node address
; 0273
; 0274 STSMAP, ! Map NSP status to SC status
; 0275
; 0276 I$CLS: novalue, ! Close
; 0277 I$OPN: novalue, ! Open
; 0278
; 0279 NR$CRW: novalue, ! Connect Received
; 0280 NR$DTW: novalue, ! Data Received
; 0281 NR$DRW: novalue, ! Disconnect Received
; 0282 NR$INW: novalue, ! Interrupt Received
; 0283
; 0284 SX$ABW: novalue, ! Abort
; 0285 SX$ACW: novalue, ! Accept
; 0286 SX$CNW: novalue, ! Connect
; 0287 SX$DRW: novalue, ! Data Segment Request
; 0288 SX$IRW: novalue, ! Interrupt Request
; 0289 SX$RJW: novalue, ! Reject
; 0290 SX$SDW: novalue, ! Data Transmit
; 0291 SX$SIW: novalue; ! Interrupt Transmit
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 6
X01500 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (4)
; 0292 !+
; 0293 !
; 0294 ! *** SESSION CONTROL DISPATCH VECTOR ***
; 0295 !
; 0296 ! This vector is the route via which the MCB
; 0297 ! dispatches CCBs to Session Control.
; 0298 !
; 0299 !-
; 0300
; 0301 global bind
; P 0302 $SCLL = TABLE$ ($DSPCR, FC_CCP,
; P 0303 (FC_XME, FCXME), ! Transmit enable
; P 0304 (FC_XCP, FCXCP), ! Transmit complete
; P 0305 (FC_RCE, FCRCE), ! Receive enable
; P 0306 (FC_RCP, FCRCP), ! Receive complete
; P 0307 (FC_CTL, FCCTL), ! Control
; 0308 (FC_TIM, FCTMO)), ! Timeout
; 0309
; 0310
; P 0311 RCPWT = TABLE$ ($DSPCR, N_RHI,
; P 0312 (N_SCNF, NR$DRW), ! Confidence (treat as disc rcv'd)
; P 0313 (N_RCON, NR$CRW), ! Connect received
; P 0314 (N_RDSC, NR$DRW), ! Disconnect received
; P 0315 (N_RDAT, NR$DTW), ! Data received
; 0316 (N_RINT, NR$INW)), ! Interrupt received
; 0317
; P 0318 XMEWT = TABLE$ ($DSPCR, S$XHI,
; P 0319 (S$CON, SX$CNW), ! Connect
; P 0320 (S$ACC, SX$ACW), ! Accept connect
; P 0321 (S$REJ, SX$RJW), ! Reject connect
; P 0322 (S$SND, SX$SDW), ! Transmit data
; P 0323 (S$MRQ, SX$DRW), ! Data message request (SX$MRW)
; P 0324 (S$DRQ, SX$DRW), ! Data segment request
; P 0325 (S$SNI, SX$SIW), ! Transmit interrupt data
; P 0326 (S$IRQ, SX$IRW), ! Interrupt data request
; P 0327 (S$DIS, SX$ABW), ! Disconnect (SX$DSW)
; 0328 (S$ABO, SX$ABW)); ! Abort
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 7
X01500 Control Enable From Network Management 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (5)
; 0329 %sbttl 'Control Enable From Network Management'
; 0330 routine FCCTL (SCDB, CCB, FCM): mcb_db_ccb_mod novalue =
; 0331
; 0332 !++
; 0333 ! FUNCTIONAL DESCRIPTION:
; 0334 ! This routine is activated by receipt of a Control
; 0335 ! Enable from Network Management.
; 0336 !
; 0337 !
; 0338 ! FORMAL PARAMETERS:
; 0339 ! CCB CCB to pass to handler routine
; 0340 ! FCM Function code modifier
; 0341 !
; 0342 ! IMPLICIT INPUTS:
; 0343 ! CCB Contents
; 0344 !
; 0345 ! IMPLICIT OUTPUTS:
; 0346 ! None
; 0347 !
; 0348 ! ROUTINE VALUE:
; 0349 ! COMPLETION CODES:
; 0350 ! None
; 0351 !
; 0352 ! SIDE EFFECTS:
; 0353 ! None
; 0354 !--
; 0355
; 0356 begin
; 0357 $sc_get_data_base (SCDB);
; 0358 map CCB: ref block field (C_FIELDS);
; 0359
; 0360 CALL$E (NM_EXT, .SCDB [SC_SNPIX], .CCB)
; 0361 end;
.TITLE SCDSP
.IDENT /X01500/
000000 .PSECT $PLIT$, RO , D
000000 000000G P.AAA: .WORD $DSPCR
000002 000000V .WORD FCXME
000004 000000V .WORD FCRCE
000006 000000G .WORD $DSPCR
000010 000000' .WORD FCCTL
000012 000000V .WORD FCTMO
000014 000000V .WORD FCXCP
000016 000000V .WORD FCRCP
000020 000000G .WORD $DSPCR
000022 000000G .WORD $DSPCR
000024 000000G P.AAB: .WORD NR$DRW
000026 000000G .WORD $DSPCR
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 8
X01500 Control Enable From Network Management 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (5)
000030 000000G .WORD NR$CRW
000032 000000G .WORD NR$DRW
000034 000000G .WORD NR$DTW
000036 000000G .WORD NR$INW
000040 000000G P.AAC: .WORD SX$CNW
000042 000000G .WORD SX$ACW
000044 000000G .WORD SX$RJW
000046 000000G .WORD SX$SDW
000050 000000G .WORD SX$DRW
000052 000000G .WORD SX$DRW
000054 000000G .WORD SX$SIW
000056 000000G .WORD SX$IRW
000060 000000G .WORD SX$ABW
000062 000000G .WORD SX$ABW
000064 000000G .WORD $DSPCR
.GLOBL $DSPCR, FINDLL, FINDND, STSMAP
.GLOBL I$CLS, I$OPN, NR$CRW, NR$DTW, NR$DRW
.GLOBL NR$INW, SX$ABW, SX$ACW, SX$CNW
.GLOBL SX$DRW, SX$IRW, SX$RJW, SX$SDW
.GLOBL SX$SIW, .CRDAT, NM.EXT, $CALLE
000000' $SCLL== P.AAA
000024' RCPWT== P.AAB
000040' XMEWT== P.AAC
.SBTTL FCCTL Control Enable From Network Management
000000 .PSECT $CODE$, RO
000000 010446 FCCTL: MOV R4,-(SP) ; CCB,* 0360
000002 012746 000001 MOV #1,-(SP)
000006 012746 000000G MOV #NM.EXT,-(SP)
000012 005046 CLR -(SP)
000014 116516 000004 MOVB 4(R5),(SP) ; *(SCDB),*
000020 004767 000000G JSR PC,$CALLE
000024 062706 000010 ADD #10,SP ; 0356
000030 000207 RTS PC ; 0330
; Routine Size: 13 words, Routine Base: $CODE$ + 0000
; Maximum stack depth per invocation: 5 words
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 9
X01500 Receive Complete From NSP 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (6)
; 0362 %sbttl 'Receive Complete From NSP'
; 0363 routine FCRCP (SCDB, CCB, FCM): mcb_db_ccb_mod novalue =
; 0364
; 0365 !++
; 0366 ! FUNCTIONAL DESCRIPTION:
; 0367 ! This routine is activated by receipt of a receive
; 0368 ! complete CCB from NSP.
; 0369 !
; 0370 !
; 0371 ! FORMAL PARAMETERS:
; 0372 ! CCB CCB to pass to handler routine
; 0373 ! FCM Function code modifier
; 0374 !
; 0375 ! IMPLICIT INPUTS:
; 0376 ! CCB Contents
; 0377 !
; 0378 ! IMPLICIT OUTPUTS:
; 0379 ! None
; 0380 !
; 0381 ! ROUTINE VALUE:
; 0382 ! COMPLETION CODES:
; 0383 ! None
; 0384 !
; 0385 ! SIDE EFFECTS:
; 0386 ! None
; 0387 !--
; 0388
; 0389 begin
; 0390 $sc_get_data_base (SCDB);
; 0391 map CCB: ref block field (C_FIELDS);
; 0392 local
; 0393 LNK: ref block field (LLT_FIELDS),
; 0394 LCCB: ref block field (C_FIELDS),
; 0395 STATUS;
; 0396 bind
; 0397 LLT = SCDB [SC_LLT_ADDR]: ref blockvector [,L_SIZE] field (LLT_FIELDS),
; 0398 PIV = LLT [.SCDB [SC_LINKS], L_TOP]: byte_vector;
; 0399
; 0400 MAP$ (.SCDB [SC_LLT_BIAS]);
; 0401 LNK = LLT [.PIV [.CCB [C_LIX]], L_TOP];
; 0402
; 0403
; 0404 case .FCM^-1 from 0 to N_RHI^-1 of
; 0405 set
; 0406
; 0407
; 0408
; 0409 ! ************
; 0410 ! ** NR$CNR **
; 0411 ! ************
; 0412 [N_RCON^-1]:
; 0413 begin
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 10
X01500 Receive Complete From NSP 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (6)
; 0414 %if paranoid %then
; 0415 if .LNK [L_STATE] neq ST_OPN
; 0416 then SIGNAL_STOP (SC$_LWS, .CCB, .LNK);
; 0417 %fi
; 0418
; 0419 CMQIF$ (LNK [L_IQUE], .CCB);
; 0420 LNK [L_STATE] = ST_CR;
; 0421 LNK [L_RNA] = .CCB [C_PRM1];
; 0422 SCDB [SC_IPORT] = .SCDB [SC_IPORT] - 1; ! We used up a port
; 0423 I$OPN () ! Try to replace it
; 0424 end;
; 0425
; 0426
; 0427
; 0428 ! ************
; 0429 ! ** NR$CST **
; 0430 ! ************
; 0431 [N_SCNS^-1]:
; 0432 begin
; 0433 if .LNK [L_STATE] eql ST_CID ! Conn-Init-Delivered ?
; 0434 then
; 0435 begin ! Yes !
; 0436 local
; 0437 CNT,
; 0438 PTR;
; 0439 CMQRM$ (LNK [L_OQUE], LCCB); ! Take user CCB off que
; 0440 LNK [L_TIMER] = 0; ! Disable timer
; 0441 if .CCB [C_STS] eql N$SACC ! Link accepted ?
; 0442 then LNK [L_STATE] = ST_RUN ! Yes, go to RUN state
; 0443 else I$CLS (.LNK); ! No, so close the port
; 0444 MAP$ (.CCB [C_BIAS]); ! Set to copy conn data
; 0445 if (CNT = .CCB [C_CNT] - 1) lss 0 then CNT = 0;
; 0446 LCCB [C_PRM4] = min (.LCCB [C_PRM4], .CNT);
; 0447 PTR = ch$plus (.CCB [C_ADDR], 1);
; 0448 MTBF$S (.LCCB [C_PRM4], .PTR, .LCCB [C_PRM2], .LCCB [C_PRM3]);
; 0449 $SC_DO_XCP (.LCCB, STSMAP (.CCB [C_STS])) ! Complete to user
; 0450 end;
; 0451
; 0452 $SC_DO_RCE (.CCB); ! Return NSP's buffer
; 0453 return
; 0454 end;
; 0455
; 0456
; 0457
; 0458 ! *********************
; 0459 ! ** NR$DAT & NR$INT **
; 0460 ! *********************
; 0461 [N_RDAT^-1, N_RINT^-1]:
; 0462 begin
; 0463 if not (
; 0464 (.LNK [L_STATE] eql ST_RUN) or
; 0465 (.LNK [L_STATE] eql ST_DI))
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 11
X01500 Receive Complete From NSP 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (6)
; 0466 then $SC_DO_RCE (.CCB)
; 0467 else
; 0468 begin
; 0469 if .FCM eql N_RDAT
; 0470 then CMQIN$ (LNK [L_IQUE], .CCB)
; 0471 else CMQIF$ (LNK [L_IQUE], .CCB)
; 0472 end
; 0473 end;
; 0474
; 0475
; 0476
; 0477 ! *********************
; 0478 ! ** NR$CNF & NR$DSR **
; 0479 ! *********************
; 0480 [N_SCNF^-1, N_RDSC^-1]:
; 0481 begin
; 0482 %if paranoid %then
; 0483 if (.LNK [L_STATE] eql ST_OFF) or
; 0484 (.LNK [L_STATE] eql ST_OI) or
; 0485 (.LNK [L_STATE] eql ST_OPN)
; 0486 then SIGNAL_STOP (SC$_LWS, .CCB, .LNK);
; 0487 %fi
; 0488
; 0489 LNK [L_STS] = (if .FCM eql N_SCNF then S_EABL else S_EABS);
; 0490 if (.LNK [L_STATE] eql ST_CIS) or
; 0491 (.LNK [L_STATE] eql ST_CLI) or
; 0492 (.LNK [L_STATE] eql ST_ABI) or
; 0493 (.LNK [L_PIX] eql 0) ! CNR was rcv'dfor no-such obj
; 0494 then
; 0495 begin
; 0496 $SC_DO_RCE (.CCB);
; 0497 I$CLS (.LNK);
; 0498 return
; 0499 end;
; 0500
; 0501 while CMQRM$ (LNK [L_IQUE], LCCB) do $SC_DO_RCE (.LCCB);
; 0502 CMQIF$ (LNK [L_IQUE], .CCB)
; 0503 end;
; 0504
; 0505
; 0506
; 0507 ! ************
; 0508 ! ** NR$ERR **
; 0509 ! ************
; 0510 [inrange, outrange]:
; 0511 %if paranoid %then
; 0512 SIGNAL_STOP (SC$_ISC, .CCB)
; 0513 %fi;
; 0514 tes;
; 0515
; 0516 $SC_DISPATCH_INPUT (LNK [L_IQUE])
; 0517 end;
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 12
X01500 Receive Complete From NSP 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (6)
.GLOBL KISAR6, $CMQIF, $CMQRM, $MVTBF
.GLOBL $SCHED, $CMQIN
.SBTTL FCRCP Receive Complete From NSP
000000 005746 FCRCP: TST -(SP) ; 0363
000002 010301 MOV R3,R1 ; *,FCM
000004 010446 MOV R4,-(SP)
000006 010502 MOV R5,R2 ; *,SCDB
000010 016205 000016 MOV 16(R2),R5 ; *(SCDB),* 0398
000014 070527 000032 MUL #32,R5
000020 066205 000046 ADD 46(R2),R5 ; *(SCDB),*
000024 016267 000044 000000G MOV 44(R2),KISAR6 ; *(SCDB),* 0400
000032 005000 CLR R0 ; 0401
000034 011603 MOV (SP),R3
000036 156300 000010 BISB 10(R3),R0
000042 060005 ADD R0,R5
000044 111505 MOVB (R5),R5
000046 042705 177400 BIC #177400,R5
000052 070527 000032 MUL #32,R5
000056 066205 000046 ADD 46(R2),R5 ; *(SCDB),*
000062 010566 000002 MOV R5,2(SP) ; *,LNK
000066 010103 MOV R1,R3 ; FCM,* 0404
000070 006203 ASR R3
000072 020327 000005 CMP R3,#5
000076 101003 BHI 1$
000100 006303 ASL R3
000102 066307 000066' ADD P.AAD(R3),PC ; Case dispatch
000106 011646 1$: MOV (SP),-(SP) ; 0512
000110 012746 100014 MOV #-77764,-(SP)
000114 012746 000002 MOV #2,-(SP)
000120 004767 000000G JSR PC,$STOP
000124 062706 000006 ADD #6,SP
000130 000445 BR 4$ ; 0404
000132 127627 000002 000004 2$: CMPB @2(SP),#4 ; LNK,* 0415
000140 001414 BEQ 3$
000142 016646 000002 MOV 2(SP),-(SP) ; LNK,* 0416
000146 016646 000002 MOV 2(SP),-(SP)
000152 012746 100024 MOV #-77754,-(SP)
000156 012746 000003 MOV #3,-(SP)
000162 004767 000000G JSR PC,$STOP
000166 062706 000010 ADD #10,SP
000172 012700 000016 3$: MOV #16,R0 ; 0419
000176 066600 000002 ADD 2(SP),R0 ; LNK,*
000202 010003 MOV R0,R3
000204 011604 MOV (SP),R4
000206 004767 000000G JSR PC,$CMQIF
000212 112776 000005 000002 MOVB #5,@2(SP) ; *,LNK 0420
000220 016600 000002 MOV 2(SP),R0 ; LNK,* 0421
000224 011601 MOV (SP),R1
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 13
X01500 Receive Complete From NSP 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (6)
000226 016160 000024 000006 MOV 24(R1),6(R0) ; *,*(LNK)
000234 105362 000006 DECB 6(R2) ; *(SCDB) 0422
000240 004767 000000G JSR PC,I$OPN ; 0423
000244 000555 4$: BR 14$ ; 0404
000246 127627 000002 000002 5$: CMPB @2(SP),#2 ; LNK,* 0433
000254 001106 BNE 11$
000256 012700 000022 MOV #22,R0 ; 0439
000262 066600 000002 ADD 2(SP),R0 ; LNK,*
000266 010003 MOV R0,R3
000270 004767 000000G JSR PC,$CMQRM
000274 103401 BCS 6$
000276 010405 MOV R4,R5 ; $MCB$R4,LCCB
000300 016600 000002 6$: MOV 2(SP),R0 ; LNK,* 0440
000304 005060 000012 CLR 12(R0) ; *(LNK)
000310 011600 MOV (SP),R0 ; 0441
000312 026027 000014 000002 CMP 14(R0),#2
000320 001004 BNE 7$
000322 112776 000014 000002 MOVB #14,@2(SP) ; *,LNK 0442
000330 000405 BR 8$ ; 0441
000332 016646 000002 7$: MOV 2(SP),-(SP) ; LNK,* 0443
000336 004767 000000G JSR PC,I$CLS
000342 005726 TST (SP)+
000344 011600 8$: MOV (SP),R0 ; 0444
000346 016067 000016 000000G MOV 16(R0),KISAR6
000354 016002 000022 MOV 22(R0),R2 ; *,CNT 0445
000360 005302 DEC R2 ; CNT
000362 100001 BPL 9$
000364 005002 CLR R2 ; CNT
000366 012704 000032 9$: MOV #32,R4 ; 0446
000372 060504 ADD R5,R4 ; LCCB,*
000374 011400 MOV (R4),R0
000376 020002 CMP R0,R2 ; *,CNT
000400 003401 BLE 10$
000402 010200 MOV R2,R0 ; CNT,*
000404 010014 10$: MOV R0,(R4)
000406 011600 MOV (SP),R0 ; 0447
000410 016002 000020 MOV 20(R0),R2 ; *,PTR
000414 005202 INC R2 ; PTR
000416 016546 000026 MOV 26(R5),-(SP) ; *(LCCB),* 0448
000422 016546 000030 MOV 30(R5),-(SP) ; *(LCCB),*
000426 011403 MOV (R4),R3
000430 004767 000000G JSR PC,$MVTBF
000434 112765 000014 000012 MOVB #14,12(R5) ; *,*(LCCB) 0449
000442 016600 000004 MOV 4(SP),R0
000446 016016 000014 MOV 14(R0),(SP)
000452 004767 000000G JSR PC,STSMAP
000456 010065 000014 MOV R0,14(R5) ; *,*(LCCB)
000462 010504 MOV R5,R4 ; LCCB,*
000464 004767 000000G JSR PC,$SCHED
000470 022626 CMP (SP)+,(SP)+ ; 0435
000472 011600 11$: MOV (SP),R0 ; 0452
000474 112760 000004 000012 MOVB #4,12(R0)
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 14
X01500 Receive Complete From NSP 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (6)
000502 010004 MOV R0,R4
000504 004767 000000G JSR PC,$SCHED
000510 000566 BR 26$ ; 0432
000512 127627 000002 000014 12$: CMPB @2(SP),#14 ; LNK,* 0464
000520 001414 BEQ 13$
000522 127627 000002 000012 CMPB @2(SP),#12 ; LNK,* 0465
000530 001410 BEQ 13$
000532 011600 MOV (SP),R0 ; 0466
000534 112760 000004 000012 MOVB #4,12(R0)
000542 010004 MOV R0,R4
000544 004767 000000G JSR PC,$SCHED
000550 000531 BR 24$ ; 0462
000552 012700 000016 13$: MOV #16,R0 ; 0470
000556 066600 000002 ADD 2(SP),R0 ; LNK,*
000562 010003 MOV R0,R3
000564 020127 000010 CMP R1,#10 ; FCM,* 0469
000570 001116 BNE 23$
000572 011604 MOV (SP),R4 ; 0470
000574 004767 000000G JSR PC,$CMQIN
000600 000515 14$: BR 24$ ; 0468
000602 105776 000002 15$: TSTB @2(SP) ; LNK 0483
000606 001410 BEQ 16$
000610 127627 000002 000003 CMPB @2(SP),#3 ; LNK,* 0484
000616 001404 BEQ 16$
000620 127627 000002 000004 CMPB @2(SP),#4 ; LNK,* 0485
000626 001014 BNE 17$
000630 016646 000002 16$: MOV 2(SP),-(SP) ; LNK,* 0486
000634 016646 000002 MOV 2(SP),-(SP)
000640 012746 100024 MOV #-77754,-(SP)
000644 012746 000003 MOV #3,-(SP)
000650 004767 000000G JSR PC,$STOP
000654 062706 000010 ADD #10,SP
000660 005701 17$: TST R1 ; FCM 0489
000662 001003 BNE 18$
000664 012700 177755 MOV #-23,R0
000670 000402 BR 19$
000672 012700 177771 18$: MOV #-7,R0
000676 016601 000002 19$: MOV 2(SP),R1 ; LNK,*
000702 010061 000014 MOV R0,14(R1) ; *,*(LNK)
000706 121127 000001 CMPB (R1),#1 ; LNK,* 0490
000712 001412 BEQ 20$
000714 121127 000010 CMPB (R1),#10 ; LNK,* 0491
000720 001407 BEQ 20$
000722 121127 000011 CMPB (R1),#11 ; LNK,* 0492
000726 001404 BEQ 20$
000730 010100 MOV R1,R0 ; LNK,* 0493
000732 105760 000005 TSTB 5(R0) ; *(LNK)
000736 001014 BNE 21$
000740 011600 20$: MOV (SP),R0 ; 0496
000742 112760 000004 000012 MOVB #4,12(R0)
000750 010004 MOV R0,R4
000752 004767 000000G JSR PC,$SCHED
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 15
X01500 Receive Complete From NSP 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (6)
000756 016646 000002 MOV 2(SP),-(SP) ; LNK,* 0497
000762 004767 000000G JSR PC,I$CLS
000766 000436 BR 25$ ; 0490
000770 012700 000016 21$: MOV #16,R0 ; 0501
000774 066600 000002 ADD 2(SP),R0 ; LNK,*
001000 010003 MOV R0,R3
001002 004767 000000G 22$: JSR PC,$CMQRM
001006 103407 BCS 23$
001010 010405 MOV R4,R5 ; $MCB$R4,LCCB
001012 112765 000004 000012 MOVB #4,12(R5) ; *,*(LCCB)
001020 004767 000000G JSR PC,$SCHED
001024 000766 BR 22$
001026 011604 23$: MOV (SP),R4 ; 0502
001030 004767 000000G JSR PC,$CMQIF
001034 016601 000002 24$: MOV 2(SP),R1 ; LNK,* 0516
001040 016100 000016 MOV 16(R1),R0 ; *(LNK),*
001044 001410 BEQ 26$
001046 116000 000013 MOVB 13(R0),R0
001052 042700 177400 BIC #177400,R0
001056 010146 MOV R1,-(SP) ; LNK,*
001060 004770 000024' JSR PC,@RCPWT(R0)
001064 005726 25$: TST (SP)+
001066 022626 26$: CMP (SP)+,(SP)+ ; 0363
001070 000207 RTS PC
; Routine Size: 285 words, Routine Base: $CODE$ + 0032
; Maximum stack depth per invocation: 7 words
000066 .PSECT $PLIT$, RO , D
P.AAD: ; CASE Table for FCRCP+0102 0404
000066 000474 .WORD 474 ; [15$]
000070 000140 .WORD 140 ; [5$]
000072 000024 .WORD 24 ; [2$]
000074 000474 .WORD 474 ; [15$]
000076 000404 .WORD 404 ; [12$]
000100 000404 .WORD 404 ; [12$]
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 16
X01500 Receive Enable From User 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (7)
; 0518 %sbttl 'Receive Enable From User'
; 0519 routine FCRCE (SCDB, CCB, FCM): mcb_db_ccb_mod novalue =
; 0520
; 0521 !++
; 0522 ! FUNCTIONAL DESCRIPTION:
; 0523 ! This routine is activated by a receive enable from
; 0524 ! a System Interface user.
; 0525 !
; 0526 ! FORMAL PARAMETERS:
; 0527 ! CCB CCB being returned
; 0528 ! FCM Function code modifier
; 0529 !
; 0530 ! IMPLICIT INPUTS:
; 0531 ! CCB Contents
; 0532 !
; 0533 ! IMPLICIT OUTPUTS:
; 0534 ! None
; 0535 !
; 0536 ! ROUTINE VALUE:
; 0537 ! COMPLETION CODES:
; 0538 ! None
; 0539 !
; 0540 ! SIDE EFFECTS:
; 0541 ! None
; 0542 !--
; 0543
; 0544 begin
; 0545 $sc_get_data_base (SCDB);
; 0546 map CCB: ref block field (C_FIELDS);
; 0547 local
; 0548 LCCB: ref block field (C_FIELDS),
; 0549 LNK: ref block field (LLT_FIELDS);
; 0550 bind
; 0551 LLT = SCDB [SC_LLT_ADDR]: ref blockvector [,L_SIZE] field (LLT_FIELDS);
; 0552
; 0553 MAP$ (.SCDB [SC_LLT_BIAS]);
; 0554 LNK = LLT [.CCB [C_LIX], L_TOP];
; 0555 LCCB = .CCB [C_STK];
; 0556
; 0557 case .FCM^-1 from 0 to S$RHI^-1 of
; 0558 set
; 0559
; 0560
; 0561 ! ************
; 0562 ! ** SR$CNR **
; 0563 ! ************
; 0564 [S$CNR^-1]:
; 0565 begin
; 0566 %if paranoid %then
; 0567 if not (
; 0568 (.LNK [L_STATE] eql ST_CR) or
; 0569 (.LNK [L_STATE] eql ST_CLI))
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 17
X01500 Receive Enable From User 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (7)
; 0570 then SIGNAL_STOP (SC$_LWS, .CCB, .LNK);
; 0571 %fi
; 0572
; 0573 $MCB_RETURN_DSR (CB_SIZE*bytes_word, .CCB [C_ADDR]);
; 0574 ! Release CB memory
; 0575 LNK [L_TIMER] = 0; ! Turn off timer
; 0576
; 0577 ! Now do state checking to see if we go to next state
; 0578 if (.LNK [L_STATE] eql ST_CR) and (.CCB [C_STS] eql S_SSUC)
; 0579 then
; 0580 begin ! OK !
; 0581 LNK [L_PIX] = .CCB [C_PIX]; ! Bind link to process
; 0582 LNK [L_STATE] = ST_CRA; ! Advance to next state
; 0583 CCBRT$ (.CCB) ! Release our CCB
; 0584 end
; 0585 else
; 0586 begin ! OOPS !
; 0587 local
; 0588 PTR;
; 0589 LNK [LL_ABTI] = true; ! Prevent two rejects
; 0590 CCB [C_ADDR] = byt$ptr (CCB [C_PRM1]);
; 0591 if (.CCB [C_STS] eql S_ERBO) or (.CCB [C_STS] gtr 0)
; 0592 then CCB [C_STS] = 0;
; 0593 if .CCB [C_STS] lss 0 then CCB [C_STS] = -.CCB [C_STS];
; 0594 PTR = byt$ptr (CCB [C_PRM1]);
; 0595 byt$short_string (CCB [C_STS], PTR);
; 0596 byt$tiny_string (uplit (0), PTR);
; 0597 CCB [C_CNT] = 3;
; 0598 $SC_DO_XME (.CCB, N_XREJ, .LNK)
; 0599 end;
; 0600
; 0601 return
; 0602 end;
; 0603
; 0604
; 0605
; 0606 ! *********************
; 0607 ! ** SR$DAT & SR$INT **
; 0608 ! *********************
; 0609 [S$DAT^-1, S$INT^-1]:
; 0610 %if paranoid %then
; 0611 if not (
; 0612 (.LNK [L_STATE] eql ST_RUN) or
; 0613 (.LNK [L_STATE] eql ST_DI) or
; 0614 (.LNK [L_STATE] eql ST_DIR) or
; 0615 (.LNK [L_STATE] eql ST_ABI) or
; 0616 (.LNK [L_STATE] eql ST_CLI))
; 0617 then SIGNAL_STOP (SC$_LWS, .CCB, .LNK)
; 0618 %fi;
; 0619
; 0620
; 0621
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 18
X01500 Receive Enable From User 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (7)
; 0622 ! ************
; 0623 ! ** SR$DSR **
; 0624 ! ************
; 0625 [S$DSR^-1]:
; 0626 %if paranoid %then
; 0627 if not (
; 0628 (.LNK [L_STATE] eql ST_DIR) or
; 0629 (.LNK [L_STATE] eql ST_CLI))
; 0630 then SIGNAL_STOP (SC$_LWS, .CCB, .LNK)
; 0631 %fi;
; 0632
; 0633
; 0634
; 0635
; 0636 ! ************
; 0637 ! ** SR$ERR **
; 0638 ! ************
; 0639 [outrange]:
; 0640 %if paranoid %then
; 0641 SIGNAL_STOP (SC$_ISC, .CCB, .LNK)
; 0642 %fi;
; 0643 tes;
; 0644
; 0645 ! Complete LCCB to NSP, and release our CCB
; 0646 $SC_DO_RCE (.LCCB);
; 0647 CCBRT$ (.CCB)
; 0648 end;
000102 000000 P.AAF: .WORD 0
.GLOBL $DSRRT, $CCBRT, DO.XME
.SBTTL FCRCE Receive Enable From User
001124 .PSECT $CODE$, RO
000000 005746 FCRCE: TST -(SP) ; 0519
000002 010402 MOV R4,R2 ; *,CCB
000004 016567 000044 000000G MOV 44(R5),KISAR6 ; *(SCDB),* 0553
000012 005001 CLR R1 ; 0554
000014 156201 000010 BISB 10(R2),R1 ; *(CCB),*
000020 070127 000032 MUL #32,R1
000024 010104 MOV R1,R4
000026 066504 000046 ADD 46(R5),R4 ; *(SCDB),*
000032 010416 MOV R4,(SP) ; *,LNK
000034 016205 000004 MOV 4(R2),R5 ; *(CCB),LCCB 0555
000040 006203 ASR R3 ; 0557
000042 020327 000003 CMP R3,#3
000046 101003 BHI 1$
000050 006303 ASL R3
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 19
X01500 Receive Enable From User 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (7)
000052 066307 000104' ADD P.AAE(R3),PC ; Case dispatch
000056 011646 1$: MOV (SP),-(SP) ; LNK,* 0641
000060 010246 MOV R2,-(SP) ; CCB,*
000062 012746 100014 MOV #-77764,-(SP)
000066 000560 BR 11$
000070 127627 000000 000005 2$: CMPB @0(SP),#5 ; LNK,* 0568
000076 001416 BEQ 3$
000100 127627 000000 000010 CMPB @0(SP),#10 ; LNK,* 0569
000106 001412 BEQ 3$
000110 011646 MOV (SP),-(SP) ; LNK,* 0570
000112 010246 MOV R2,-(SP) ; CCB,*
000114 012746 100024 MOV #-77754,-(SP)
000120 012746 000003 MOV #3,-(SP)
000124 004767 000000G JSR PC,$STOP
000130 062706 000010 ADD #10,SP
000134 016200 000020 3$: MOV 20(R2),R0 ; *(CCB),* 0573
000140 012701 000156 MOV #156,R1
000144 004767 000000G JSR PC,$DSRRT
000150 011600 MOV (SP),R0 ; LNK,* 0575
000152 005060 000012 CLR 12(R0) ; *(LNK)
000156 121027 000005 CMPB (R0),#5 ; LNK,* 0578
000162 001012 BNE 4$
000164 026227 000014 000001 CMP 14(R2),#1 ; *(CCB),*
000172 001006 BNE 4$
000174 116260 000011 000005 MOVB 11(R2),5(R0) ; *(CCB),*(LNK) 0581
000202 112710 000006 MOVB #6,(R0) ; *,LNK 0582
000206 000524 BR 13$ ; 0583
000210 052776 000400 000000 4$: BIS #400,@0(SP) ; *,LNK 0589
000216 010200 MOV R2,R0 ; CCB,* 0590
000220 062700 000024 ADD #24,R0
000224 010062 000020 MOV R0,20(R2) ; *,*(CCB)
000230 012701 000014 MOV #14,R1 ; 0591
000234 060201 ADD R2,R1 ; CCB,*
000236 021127 177754 CMP (R1),#-24
000242 001402 BEQ 5$
000244 005711 TST (R1)
000246 003402 BLE 6$
000250 005011 5$: CLR (R1) ; 0592
000252 020707 CMP PC,PC ; 0593
000254 002001 6$: BGE 7$
000256 005411 NEG (R1)
000260 010003 7$: MOV R0,R3 ; *,PTR 0594
000262 011100 MOV (R1),R0 ; *,NUM 0595
000264 110023 MOVB R0,(R3)+ ; NUM,PTR
000266 000300 SWAB R0 ; NUM
000270 110023 MOVB R0,(R3)+ ; NUM,PTR
000272 116723 000102' MOVB P.AAF,(R3)+ ; *,PTR 0596
000276 012762 000003 000022 MOV #3,22(R2) ; *,*(CCB) 0597
000304 012746 000014 MOV #14,-(SP) ; 0598
000310 016646 000002 MOV 2(SP),-(SP) ; LNK,*
000314 010204 MOV R2,R4 ; CCB,*
000316 004767 000000G JSR PC,DO.XME
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 20
X01500 Receive Enable From User 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (7)
000322 022626 CMP (SP)+,(SP)+ ; 0586
000324 000460 BR 14$ ; 0565
000326 127627 000000 000014 8$: CMPB @0(SP),#14 ; LNK,* 0612
000334 001443 BEQ 12$
000336 127627 000000 000012 CMPB @0(SP),#12 ; LNK,* 0613
000344 001437 BEQ 12$
000346 127627 000000 000013 CMPB @0(SP),#13 ; LNK,* 0614
000354 001433 BEQ 12$
000356 127627 000000 000011 CMPB @0(SP),#11 ; LNK,* 0615
000364 001427 BEQ 12$
000366 127627 000000 000010 CMPB @0(SP),#10 ; LNK,* 0616
000374 001423 BEQ 12$
000376 000410 BR 10$ ; 0617
000400 127627 000000 000013 9$: CMPB @0(SP),#13 ; LNK,* 0628
000406 001416 BEQ 12$
000410 127627 000000 000010 CMPB @0(SP),#10 ; LNK,* 0629
000416 001412 BEQ 12$
000420 011646 10$: MOV (SP),-(SP) ; LNK,* 0630
000422 010246 MOV R2,-(SP) ; CCB,*
000424 012746 100024 MOV #-77754,-(SP)
000430 012746 000003 11$: MOV #3,-(SP)
000434 004767 000000G JSR PC,$STOP
000440 062706 000010 ADD #10,SP
000444 112765 000004 000012 12$: MOVB #4,12(R5) ; *,*(LCCB) 0646
000452 010504 MOV R5,R4 ; LCCB,*
000454 004767 000000G JSR PC,$SCHED
000460 010204 13$: MOV R2,R4 ; CCB,* 0647
000462 004767 000000G JSR PC,$CCBRT
000466 005726 14$: TST (SP)+ ; 0519
000470 000207 RTS PC
; Routine Size: 157 words, Routine Base: $CODE$ + 1124
; Maximum stack depth per invocation: 6 words
000104 .PSECT $PLIT$, RO , D
P.AAE: ; CASE Table for FCRCE+0052 0557
000104 000012 .WORD 12 ; [2$]
000106 000250 .WORD 250 ; [8$]
000110 000250 .WORD 250 ; [8$]
000112 000322 .WORD 322 ; [9$]
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 21
X01500 Timeout or Initialization From Comm/Exec 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (8)
; 0649 %sbttl 'Timeout or Initialization From Comm/Exec'
; 0650 routine FCTMO (SCDB, CCB, FCM): mcb_db_ccb_mod novalue =
; 0651
; 0652 !++
; 0653 ! FUNCTIONAL DESCRIPTION:
; 0654 ! This routine is activated by some event noted by
; 0655 ! the Comm/Exec.
; 0656 !
; 0657 ! FORMAL PARAMETERS:
; 0658 ! CCB CCB to pass to handler routine
; 0659 ! FCM Function code modifier
; 0660 !
; 0661 ! IMPLICIT INPUTS:
; 0662 ! CCB Contents
; 0663 !
; 0664 ! IMPLICIT OUTPUTS:
; 0665 ! None
; 0666 !
; 0667 ! ROUTINE VALUE:
; 0668 ! COMPLETION CODES:
; 0669 ! None
; 0670 !
; 0671 ! SIDE EFFECTS:
; 0672 ! None
; 0673 !--
; 0674
; 0675 begin
; 0676 $sc_get_data_base (SCDB);
; 0677 map CCB: ref block field (C_FIELDS),
; 0678 SCDB: ref block field (SC_FIELDS);
; 0679 bind
; 0680 LLT = SCDB [SC_LLT_ADDR]: ref blockvector [,L_SIZE] field (LLT_FIELDS);
; 0681
; 0682 MAP$ (.SCDB [SC_LLT_BIAS]);
; 0683
; 0684 case .FCM^-1 from 0 to 3 of
; 0685 set
; 0686
; 0687
; 0688 ! ************
; 0689 ! ** CX$LTM ** ! Long timer
; 0690 ! ************
; 0691 [1]:
; 0692 begin
; 0693 local
; 0694 LL,
; 0695 LNK: ref block field (LLT_FIELDS),
; 0696 LCCB: ref block field (C_FIELDS);
; 0697
; 0698 SCDB [SC_TICK] = .SCDB [SC_TICK] + 1; ! Restart clock
; 0699 SCDB [SCF_SUCC] = true;
; 0700 LL = .SCDB [SC_LLINK]; ! Figure which LL to start with
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 22
X01500 Timeout or Initialization From Comm/Exec 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (8)
; 0701
; 0702 ! Check each logical link to see if something to do
; 0703 incr L from 0 to .SCDB [SC_LINKS]-1 do
; 0704 begin
; 0705
; 0706 if .SCDB [SCF_SUCC] then SCDB [SC_LLINK] = .LL; ! Remember last
; 0707 if (LL = .LL + 1) geq .SCDB [SC_LINKS] then LL = 0; ! & next link
; 0708 LNK = LLT [.LL, L_TOP];
; 0709
; 0710 if .SCDB [SCF_SUCC]
; 0711 then
; 0712 begin ! Check on ...
; 0713 $SC_DISPATCH_OUTPUT (LNK [L_INTQ]); ! ... interrupt resource wait
; 0714 $SC_DISPATCH_INPUT (LNK [L_IQUE]); ! ... input resource wait
; 0715 $SC_DISPATCH_OUTPUT (LNK [L_OQUE]) ! ... output resource wait
; 0716 end;
; 0717
; 0718 ! Finally, check to see if link timer running
; 0719 if .LNK [LL_KLOK]
; 0720 then
; 0721 begin
; 0722 if .LNK [L_TIMER] eql 0
; 0723 then LNK [LL_KLOK] = false
; 0724 else
; 0725 begin
; 0726 if (LNK [L_TIMER] = .LNK [L_TIMER] - 1) eql 0
; 0727 then
; 0728 begin
; 0729 LNK[L_STS] = S_ENRO;
; 0730 I$CLS (.LNK);
; 0731 end
; 0732 end
; 0733 end
; 0734 end;
; 0735
; 0736 I$OPN () ! Open a port if needed
; 0737 end;
; 0738
; 0739
; 0740
; 0741 ! ************
; 0742 ! ** CX$PIN ** ! Process initialization
; 0743 ! ************
; 0744 [3]:
; 0745 begin
; 0746 PDVID$ (RAD50 ('SC1'), SCDB [SC_SNPIX]);
; 0747 SCDB [SCF_STAT] = S_ST_OFF ! We are OFF
; 0748 end;
; 0749
; 0750
; 0751
; 0752 ! ************
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 23
X01500 Timeout or Initialization From Comm/Exec 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (8)
; 0753 ! ** CX$PWF ** ! Power failure recovery
; 0754 ! ************
; 0755 [2]: return;
; 0756
; 0757
; 0758
; 0759 ! ************
; 0760 ! ** CX$ERR ** ! CX$STM
; 0761 ! ************
; 0762 [inrange, outrange]:
; 0763 %if paranoid %then
; 0764 SIGNAL_STOP (SC$_ISC)
; 0765 %fi;
; 0766
; 0767 tes
; 0768 end;
.GLOBL P.DTGT, $CALLI
.SBTTL FCTMO Timeout or Initialization From Comm/Exec
001616 .PSECT $CODE$, RO
000000 024646 FCTMO: CMP -(SP),-(SP) ; 0650
000002 016567 000044 000000G MOV 44(R5),KISAR6 ; *(SCDB),* 0682
000010 006203 ASR R3 ; 0684
000012 020327 000003 CMP R3,#3
000016 101003 BHI 1$
000020 006303 ASL R3
000022 066307 000114' ADD P.AAG(R3),PC ; Case dispatch
000026 012746 100014 1$: MOV #-77764,-(SP) ; 0764
000032 012746 000001 MOV #1,-(SP)
000036 004767 000000G JSR PC,$STOP
000042 022626 CMP (SP)+,(SP)+
000044 000563 BR 15$ ; 0684
000046 105215 2$: INCB (R5) ; SCDB 0698
000050 052715 010000 BIS #10000,(R5) ; *,SCDB 0699
000054 005004 CLR R4 ; LL 0700
000056 156504 000005 BISB 5(R5),R4 ; *(SCDB),LL
000062 016516 000016 MOV 16(R5),(SP) ; *(SCDB),* 0703
000066 005002 CLR R2 ; L
000070 000511 BR 11$
000072 032715 010000 3$: BIT #10000,(R5) ; *,SCDB 0706
000076 001402 BEQ 4$
000100 110465 000005 MOVB R4,5(R5) ; LL,*(SCDB)
000104 005204 4$: INC R4 ; LL 0707
000106 020465 000016 CMP R4,16(R5) ; LL,*(SCDB)
000112 002401 BLT 5$
000114 005004 CLR R4 ; LL
000116 010403 5$: MOV R4,R3 ; LL,* 0708
000120 070327 000032 MUL #32,R3
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 24
X01500 Timeout or Initialization From Comm/Exec 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (8)
000124 066503 000046 ADD 46(R5),R3 ; *(SCDB),*
000130 010301 MOV R3,R1 ; *,LNK
000132 032715 010000 BIT #10000,(R5) ; *,SCDB 0710
000136 001441 BEQ 8$
000140 016100 000026 MOV 26(R1),R0 ; *(LNK),* 0713
000144 001410 BEQ 6$
000146 116000 000013 MOVB 13(R0),R0
000152 042700 177400 BIC #177400,R0
000156 010146 MOV R1,-(SP) ; LNK,*
000160 004770 000040' JSR PC,@XMEWT(R0)
000164 005726 TST (SP)+
000166 016100 000016 6$: MOV 16(R1),R0 ; *(LNK),* 0714
000172 001410 BEQ 7$
000174 116000 000013 MOVB 13(R0),R0
000200 042700 177400 BIC #177400,R0
000204 010146 MOV R1,-(SP) ; LNK,*
000206 004770 000024' JSR PC,@RCPWT(R0)
000212 005726 TST (SP)+
000214 016100 000022 7$: MOV 22(R1),R0 ; *(LNK),* 0715
000220 001410 BEQ 8$
000222 116000 000013 MOVB 13(R0),R0
000226 042700 177400 BIC #177400,R0
000232 010146 MOV R1,-(SP) ; LNK,*
000234 004770 000040' JSR PC,@XMEWT(R0)
000240 005726 TST (SP)+
000242 032711 010000 8$: BIT #10000,(R1) ; *,LNK 0719
000246 001421 BEQ 10$
000250 012700 000012 MOV #12,R0 ; 0722
000254 060100 ADD R1,R0 ; LNK,*
000256 005710 TST (R0)
000260 001003 BNE 9$
000262 042711 010000 BIC #10000,(R1) ; *,LNK 0723
000266 000411 BR 10$ ; 0721
000270 005310 9$: DEC (R0) ; 0726
000272 001007 BNE 10$
000274 012761 177732 000014 MOV #-46,14(R1) ; *,*(LNK) 0729
000302 010146 MOV R1,-(SP) ; LNK,* 0730
000304 004767 000000G JSR PC,I$CLS
000310 005726 TST (SP)+ ; 0728
000312 005202 10$: INC R2 ; L 0703
000314 020216 11$: CMP R2,(SP) ; L,*
000316 002665 BLT 3$
000320 004767 000000G JSR PC,I$OPN ; 0736
000324 000433 BR 15$ ; 0684
000326 012746 000004 12$: MOV #4,-(SP) ; 0746
000332 060616 ADD SP,(SP) ; $MCB$MY.INDEX,*
000334 012746 073527 MOV #73527,-(SP)
000340 012746 000002 MOV #2,-(SP)
000344 012746 000000G MOV #P.DTGT,-(SP)
000350 004767 000000G JSR PC,$CALLI
000354 062706 000010 ADD #10,SP
000360 010003 MOV R0,R3 ; *,$MCB$STATUS
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 25
X01500 Timeout or Initialization From Comm/Exec 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (8)
000362 006000 ROR R0
000364 103002 BCC 13$
000366 016600 000002 MOV 2(SP),R0 ; $MCB$MY.INDEX,$MCB$HANDLE
000372 010304 13$: MOV R3,R4 ; $MCB$STATUS,$MCB$STATUS
000374 006003 ROR R3 ; $MCB$STATUS
000376 103002 BCC 14$
000400 110065 000004 MOVB R0,4(R5) ; $MCB$HANDLE,*(SCDB)
000404 042715 001400 14$: BIC #1400,(R5) ; *,SCDB 0747
000410 052715 000400 BIS #400,(R5) ; *,SCDB
000414 022626 15$: CMP (SP)+,(SP)+ ; 0650
000416 000207 RTS PC
; Routine Size: 136 words, Routine Base: $CODE$ + 1616
; Maximum stack depth per invocation: 7 words
000114 .PSECT $PLIT$, RO , D
P.AAG: ; CASE Table for FCTMO+0022 0684
000114 000000 .WORD 0 ; [1$]
000116 000020 .WORD 20 ; [2$]
000120 000366 .WORD 366 ; [15$]
000122 000300 .WORD 300 ; [12$]
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 26
X01500 Transmit Complete From NSP 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (9)
; 0769 %sbttl 'Transmit Complete From NSP'
; 0770 routine FCXCP (SCDB, CCB, FCM): mcb_db_ccb_mod novalue =
; 0771
; 0772 !++
; 0773 ! FUNCTIONAL DESCRIPTION:
; 0774 ! This routine is activated by receipt of a transmit
; 0775 ! complete CCB from NSP.
; 0776 !
; 0777 ! FORMAL PARAMETERS:
; 0778 ! CCB CCB to pass to handler routine
; 0779 ! FCM Function code modifier
; 0780 !
; 0781 ! IMPLICIT INPUTS:
; 0782 ! CCB Contents
; 0783 !
; 0784 ! IMPLICIT OUTPUTS:
; 0785 ! None
; 0786 !
; 0787 ! ROUTINE VALUE:
; 0788 ! COMPLETION CODES:
; 0789 ! None
; 0790 !
; 0791 ! SIDE EFFECTS:
; 0792 ! None
; 0793 !--
; 0794
; 0795 begin
; 0796 $sc_get_data_base (SCDB);
; 0797 map CCB: ref block field (C_FIELDS);
; 0798 local
; 0799 LNK: ref block field (LLT_FIELDS),
; 0800 LCCB: ref block field (C_FIELDS),
; 0801 STATUS;
; 0802 bind
; 0803 LLT = SCDB [SC_LLT_ADDR]: ref blockvector [,L_SIZE] field (LLT_FIELDS),
; 0804 PIV = LLT [.SCDB [SC_LINKS], L_TOP]: byte_vector;
; 0805
; 0806 MAP$ (.SCDB [SC_LLT_BIAS]);
; 0807
; 0808 LNK = LLT [.PIV [.CCB [C_LIX]], L_TOP];
; 0809 STATUS = STSMAP (.CCB [C_STS]); ! Set appropriate status info
; 0810 LCCB = .CCB [C_STK]; ! Get user's CCB address
; 0811
; 0812
; 0813 case .FCM^-1 from 0 to N_XHI^-1 of
; 0814 set
; 0815
; 0816
; 0817
; 0818 ! *********************
; 0819 ! ** NX$ABT & NX$DSC **
; 0820 ! *********************
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 27
X01500 Transmit Complete From NSP 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (9)
; 0821 [N_XABT^-1, N_XDSC^-1]:
; 0822 begin
; 0823 %if paranoid %then
; 0824 if not (
; 0825 (.LNK [L_STATE] eql ST_ABI) or
; 0826 (.LNK [L_STATE] eql ST_DIR) or
; 0827 (.LNK [L_STATE] eql ST_DI) or
; 0828 (.LNK [L_STATE] eql ST_CLI))
; 0829 then SIGNAL_STOP (SC$_LWS, .CCB, .LNK);
; 0830 %fi
; 0831
; 0832 I$CLS (.LNK)
; 0833 end;
; 0834
; 0835
; 0836
; 0837 ! ************
; 0838 ! ** NX$ACC **
; 0839 ! ************
; 0840 [N_XACC^-1]:
; 0841 begin
; 0842 %if paranoid %then
; 0843 if not (
; 0844 (.LNK [L_STATE] eql ST_CA) or
; 0845 (.LNK [L_STATE] eql ST_CLI) or
; 0846 (.LNK [L_STATE] eql ST_DIR))
; 0847 then SIGNAL_STOP (SC$_LWS, .CCB, .LNK);
; 0848 %fi
; 0849
; 0850 if (.LNK [L_STATE] eql ST_CA) and (.STATUS eql S_SSUC)
; 0851 then LNK [L_STATE] = ST_RUN
; 0852 end;
; 0853
; 0854
; 0855
; 0856 ! ************
; 0857 ! ** NX$REJ **
; 0858 ! ************
; 0859 [N_XREJ^-1]:
; 0860 begin
; 0861 %if paranoid %then
; 0862 if not (
; 0863 (.LNK [L_STATE] eql ST_CR) or
; 0864 (.LNK [L_STATE] eql ST_CRA) or
; 0865 (.LNK [L_STATE] eql ST_DIR) or
; 0866 (.LNK [L_STATE] eql ST_CLI))
; 0867 then SIGNAL_STOP (SC$_LWS, .CCB, .LNK);
; 0868 %fi
; 0869
; 0870 I$CLS (.LNK)
; 0871 end;
; 0872
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 28
X01500 Transmit Complete From NSP 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (9)
; 0873
; 0874
; 0875 ! ************************************************
; 0876 ! ** NX$BUF & NX$DRQ & NX$IRQ & NX$SND & NX$SNI **
; 0877 ! ************************************************
; 0878 [N_XBUF^-1, N_XDRQ^-1, N_XIRQ^-1, N_XDAT^-1, N_XINT^-1]:
; 0879 begin
; 0880 %if paranoid %then
; 0881 if not (
; 0882 (.LNK [L_STATE] eql ST_RUN) or
; 0883 (.LNK [L_STATE] eql ST_DI) or
; 0884 (.LNK [L_STATE] eql ST_DIR) or
; 0885 (.LNK [L_STATE] eql ST_CLI) or
; 0886 (.LNK [L_STATE] eql ST_ABI))
; 0887 then SIGNAL_STOP (SC$_LWS, .CCB, .LNK);
; 0888 %fi
; 0889
; 0890 selectoneu .FCM of
; 0891 set
; 0892 [N_XBUF]: LCCB [C_CNT] = .CCB [C_CNT];
; 0893 [N_XINT]: LNK [LL_INTM] = false;
; 0894 tes
; 0895 end;
; 0896
; 0897
; 0898
; 0899 ! ************
; 0900 ! ** NX$CLS **
; 0901 ! ************
; 0902 [N_PCLS^-1]:
; 0903 begin
; 0904 ! The following hack prevents us from crashing due to a
; 0905 ! race condition which seems to be related to
; 0906 ! retransmitted DIs. Until a better solution is thought
; 0907 ! out, we'll just ignore the fact that the link may
; 0908 ! already be shut down here. This much is known to work.
; 0909 if .LNK [L_STATE] neq ST_OFF
; 0910 then
; 0911 begin
; 0912 %if paranoid %then
; 0913 if .LNK [L_STATE] neq ST_CLI
; 0914 then SIGNAL_STOP (SC$_LWS, .CCB, .LNK);
; 0915 %fi
; 0916
; 0917 LNK [L_STATE] = ST_OFF;
; 0918 LNK [L_FLAGS] = 0;
; 0919 while CMQRM$ (LNK [L_INTQ], LCCB) do
; 0920 $SC_DO_XCP (.LCCB, .LNK [L_STS]);
; 0921 while CMQRM$ (LNK [L_OQUE], LCCB) do
; 0922 begin
; 0923 if (.LCCB [C_MOD] neq S$DIS) and (.LCCB [C_MOD] neq S$ABO)
; 0924 then STATUS = .LNK [L_STS]
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 29
X01500 Transmit Complete From NSP 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (9)
; 0925 else STATUS =STSMAP (.CCB [C_STS]);
; 0926 $SC_DO_XCP (.LCCB, .STATUS)
; 0927 end;
; 0928
; 0929 if (LCCB = .CCB[C_STK]) neq 0
; 0930 then $SC_DO_XCP(.LCCB, S_SSUC);
; 0931 LCCB = 0
; 0932 end;
; 0933 end;
; 0934
; 0935
; 0936
; 0937 ! ************
; 0938 ! ** NX$CON **
; 0939 ! ************
; 0940 [N_XCON^-1]:
; 0941 begin
; 0942 LNK = .CCB [C_PRM5];
; 0943
; 0944 %if paranoid %then
; 0945 if not (
; 0946 (.LNK [L_STATE] eql ST_CIS) or
; 0947 (.LNK [L_STATE] eql ST_CLI))
; 0948 then SIGNAL_STOP (SC$_LWS, .CCB, .LNK);
; 0949 %fi
; 0950
; 0951 if .LNK [L_STATE] eql ST_CIS ! Connect-Initiate ?
; 0952 then
; 0953 begin
; 0954 LNK [LL_KLOK] = true; ! Say we need timer
; 0955 SCDB [SCF_KLOK] = true; ! Start the clock
; 0956 LNK [L_PID] = .CCB [C_LIX]; ! Set port id
; 0957 PIV [.CCB [C_LIX]] = .LNK [L_LLA]; ! Set reverse mapping
; 0958 if .STATUS lss 0 ! If connect failure
; 0959 then
; 0960 begin ! Connect failure
; 0961 if .CCB [C_STS] neq N$ERES ! If not resource error
; 0962 then I$CLS (.LNK) ! then close port
; 0963 else
; 0964 begin
; 0965 LNK [L_STATE] = ST_OFF; ! Resource error, so
; 0966 LNK [L_FLAGS] = 0 ! no port to close
; 0967 end
; 0968 end
; 0969 else
; 0970 begin ! Connect ok so far
; 0971 LNK [L_STATE] = ST_CID; ! Set next link state
; 0972 CMQIF$ (LNK [L_OQUE], .LCCB); ! Put user CCB on queue
; 0973 LCCB = 0 ! No CCB to complete
; 0974 end
; 0975 end
; 0976 else
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 30
X01500 Transmit Complete From NSP 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (9)
; 0977 STATUS = S_EABO; ! Link aborted
; 0978
; 0979 $MCB_RETURN_DSR( DSR_CONNECT_BLOCK_SIZE, .CCB[C_ADDR]);
; 0980 CCBRT$( .CCB);
; 0981 CCB = 0
; 0982 end;
; 0983
; 0984
; 0985
; 0986 ! ************
; 0987 ! ** NX$OPN **
; 0988 ! ************
; 0989 [N_POPN^-1]:
; 0990 begin
; 0991 LNK = .CCB [C_PRM1];
; 0992
; 0993 %if paranoid %then
; 0994 if .LNK [L_STATE] neq ST_OI
; 0995 then SIGNAL_STOP (SC$_LWS, .CCB, .LNK);
; 0996 %fi
; 0997
; 0998 LNK [L_PID] = .CCB [C_LIX];
; 0999 PIV [.LNK [L_PID]] = .LNK [L_LLA];
; 1000 if .STATUS eql S_SSUC
; 1001 then
; 1002 begin
; 1003 LNK [L_STATE] = ST_OPN;
; 1004 SCDB [SC_IPORT] = .SCDB [SC_IPORT] + 1
; 1005 end
; 1006 else
; 1007 begin
; 1008 LNK [LL_BUSY] = false;
; 1009 LNK [L_STATE] = ST_OFF
; 1010 end;
; 1011
; 1012 SCDB [SCF_OPEN] = false;
; 1013 LCCB = 0
; 1014 end;
; 1015
; 1016
; 1017
; 1018 ! ************
; 1019 ! ** NX$INI **
; 1020 ! ************
; 1021 [N_XINI^-1]:
; 1022 begin
; 1023 if .STATUS eql S_SSUC
; 1024 then
; 1025 begin
; 1026 local
; 1027 OLD_STATE;
; 1028
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 31
X01500 Transmit Complete From NSP 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (9)
; 1029 STATUS = NM$SUC; ! Say we made it
; 1030 SCDB [SC_LADDR] = .CCB [C_PRM1]; ! Get our node address
; 1031 SCDB [SC_SSIZE] = .CCB [C_CNT]; ! and segment size
; 1032 OLD_STATE = .SCDB [SCF_STAT]; ! Remember old state
; 1033 SCDB [SCF_STAT] = S_ST_ON; ! Say we are turned on
; 1034 CALL$E (NM_SIG, .SCDB [SC_SNPIX], 0, 1, .OLD_STATE);
; 1035 ! Tell NMX
; 1036 ! TYPE = 0, REASON = 1
; 1037
; 1038 $MCB_ENABLE_LONG_TIMER (); ! Start the clock
; 1039 SCDB [SC_TICK] = .SCDB [SC_TICK] + 1 ! ...
; 1040 end
; 1041 else
; 1042 STATUS = $NM$ERR_UFO;
; 1043
; 1044 $SC_DO_CCP (.LCCB, .STATUS); ! Complete the CCB
; 1045 LCCB = 0 ! ...
; 1046 end;
; 1047
; 1048
; 1049
; 1050 ! ************
; 1051 ! ** NX$ERR **
; 1052 ! ************
; 1053 [inrange, outrange]:
; 1054 begin
; 1055 %if paranoid %then
; 1056 SIGNAL_STOP (SC$_ISC, .CCB, .LNK);
; 1057 %fi
; 1058
; 1059 STATUS = S_EERR
; 1060 end;
; 1061
; 1062 tes;
; 1063
; 1064 if .CCB neq 0 then CCBRT$ (.CCB);
; 1065 if .LCCB neq 0 then $SC_DO_XCP (.LCCB, .STATUS)
; 1066 end;
.GLOBL NM.SIG, $LTMEN
.SBTTL FCXCP Transmit Complete From NSP
002236 .PSECT $CODE$, RO
000000 162706 000014 FCXCP: SUB #14,SP ; 0770
000004 010302 MOV R3,R2 ; *,FCM
000006 010466 000010 MOV R4,10(SP)
000012 010566 000012 MOV R5,12(SP)
000016 010500 MOV R5,R0 ; 0804
000020 016005 000016 MOV 16(R0),R5
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 32
X01500 Transmit Complete From NSP 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (9)
000024 070527 000032 MUL #32,R5
000030 010501 MOV R5,R1
000032 016600 000012 MOV 12(SP),R0
000036 066001 000046 ADD 46(R0),R1
000042 016067 000044 000000G MOV 44(R0),KISAR6 ; 0806
000050 012700 000010 MOV #10,R0 ; 0808
000054 066600 000010 ADD 10(SP),R0
000060 010066 000006 MOV R0,6(SP)
000064 005005 CLR R5
000066 151005 BISB (R0),R5
000070 060105 ADD R1,R5
000072 111505 MOVB (R5),R5
000074 042705 177400 BIC #177400,R5
000100 070527 000032 MUL #32,R5
000104 016600 000012 MOV 12(SP),R0
000110 066005 000046 ADD 46(R0),R5
000114 010566 000004 MOV R5,4(SP) ; *,LNK
000120 012700 000014 MOV #14,R0 ; 0809
000124 066600 000010 ADD 10(SP),R0
000130 010066 000002 MOV R0,2(SP)
000134 011046 MOV (R0),-(SP)
000136 004767 000000G JSR PC,STSMAP
000142 010005 MOV R0,R5 ; *,STATUS
000144 016600 000012 MOV 12(SP),R0 ; 0810
000150 016066 000004 000002 MOV 4(R0),2(SP) ; *,LCCB
000156 010203 MOV R2,R3 ; FCM,* 0813
000160 006203 ASR R3
000162 020327 000016 CMP R3,#16
000166 101003 BHI 1$
000170 006303 ASL R3
000172 066307 000124' ADD P.AAH(R3),PC ; Case dispatch
000176 016616 000006 1$: MOV 6(SP),(SP) ; LNK,* 1056
000202 016646 000012 MOV 12(SP),-(SP)
000206 012746 100014 MOV #-77764,-(SP)
000212 012746 000003 MOV #3,-(SP)
000216 004767 000000G JSR PC,$STOP
000222 012705 177763 MOV #-15,R5 ; *,STATUS 1059
000226 062706 000006 ADD #6,SP ; 1054
000232 000577 BR 11$ ; 0813
000234 127627 000006 000011 2$: CMPB @6(SP),#11 ; LNK,* 0825
000242 001514 BEQ 8$
000244 127627 000006 000013 CMPB @6(SP),#13 ; LNK,* 0826
000252 001510 BEQ 8$
000254 127627 000006 000012 CMPB @6(SP),#12 ; LNK,* 0827
000262 001504 BEQ 8$
000264 127627 000006 000010 CMPB @6(SP),#10 ; LNK,* 0828
000272 001500 BEQ 8$
000274 000463 BR 7$ ; 0829
000276 127627 000006 000007 3$: CMPB @6(SP),#7 ; LNK,* 0844
000304 001430 BEQ 5$
000306 127627 000006 000010 CMPB @6(SP),#10 ; LNK,* 0845
000314 001420 BEQ 4$
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 33
X01500 Transmit Complete From NSP 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (9)
000316 127627 000006 000013 CMPB @6(SP),#13 ; LNK,* 0846
000324 001414 BEQ 4$
000326 016616 000006 MOV 6(SP),(SP) ; LNK,* 0847
000332 016646 000012 MOV 12(SP),-(SP)
000336 012746 100024 MOV #-77754,-(SP)
000342 012746 000003 MOV #3,-(SP)
000346 004767 000000G JSR PC,$STOP
000352 062706 000006 ADD #6,SP
000356 127627 000006 000007 4$: CMPB @6(SP),#7 ; LNK,* 0850
000364 001131 BNE 13$
000366 020527 000001 5$: CMP R5,#1 ; STATUS,*
000372 001126 BNE 13$
000374 112776 000014 000006 MOVB #14,@6(SP) ; *,LNK 0851
000402 000522 BR 13$ ; 0813
000404 127627 000006 000005 6$: CMPB @6(SP),#5 ; LNK,* 0863
000412 001430 BEQ 8$
000414 127627 000006 000006 CMPB @6(SP),#6 ; LNK,* 0864
000422 001424 BEQ 8$
000424 127627 000006 000013 CMPB @6(SP),#13 ; LNK,* 0865
000432 001420 BEQ 8$
000434 127627 000006 000010 CMPB @6(SP),#10 ; LNK,* 0866
000442 001414 BEQ 8$
000444 016616 000006 7$: MOV 6(SP),(SP) ; LNK,* 0867
000450 016646 000012 MOV 12(SP),-(SP)
000454 012746 100024 MOV #-77754,-(SP)
000460 012746 000003 MOV #3,-(SP)
000464 004767 000000G JSR PC,$STOP
000470 062706 000006 ADD #6,SP
000474 016616 000006 8$: MOV 6(SP),(SP) ; LNK,* 0870
000500 004767 000000G JSR PC,I$CLS
000504 000461 BR 13$ ; 0813
000506 127627 000006 000014 9$: CMPB @6(SP),#14 ; LNK,* 0882
000514 001434 BEQ 10$
000516 127627 000006 000012 CMPB @6(SP),#12 ; LNK,* 0883
000524 001430 BEQ 10$
000526 127627 000006 000013 CMPB @6(SP),#13 ; LNK,* 0884
000534 001424 BEQ 10$
000536 127627 000006 000010 CMPB @6(SP),#10 ; LNK,* 0885
000544 001420 BEQ 10$
000546 127627 000006 000011 CMPB @6(SP),#11 ; LNK,* 0886
000554 001414 BEQ 10$
000556 016616 000006 MOV 6(SP),(SP) ; LNK,* 0887
000562 016646 000012 MOV 12(SP),-(SP)
000566 012746 100024 MOV #-77754,-(SP)
000572 012746 000003 MOV #3,-(SP)
000576 004767 000000G JSR PC,$STOP
000602 062706 000006 ADD #6,SP
000606 020227 000032 10$: CMP R2,#32 ; FCM,* 0890
000612 001010 BNE 12$
000614 016600 000002 MOV 2(SP),R0 ; LCCB,* 0892
000620 016602 000012 MOV 12(SP),R2
000624 016260 000022 000022 MOV 22(R2),22(R0) ; *,*(LCCB)
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 34
X01500 Transmit Complete From NSP 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (9)
000632 000406 11$: BR 13$ ; 0890
000634 020227 000024 12$: CMP R2,#24 ; FCM,*
000640 001003 BNE 13$
000642 042776 020000 000006 BIC #20000,@6(SP) ; *,LNK 0893
000650 000167 001156 13$: JMP 39$ ; 0813
000654 105776 000006 14$: TSTB @6(SP) ; LNK 0909
000660 001773 BEQ 13$
000662 127627 000006 000010 CMPB @6(SP),#10 ; LNK,* 0913
000670 001414 BEQ 15$
000672 016616 000006 MOV 6(SP),(SP) ; LNK,* 0914
000676 016646 000012 MOV 12(SP),-(SP)
000702 012746 100024 MOV #-77754,-(SP)
000706 012746 000003 MOV #3,-(SP)
000712 004767 000000G JSR PC,$STOP
000716 062706 000006 ADD #6,SP
000722 105076 000006 15$: CLRB @6(SP) ; LNK 0917
000726 042776 177400 000006 BIC #177400,@6(SP) ; *,LNK 0918
000734 012700 000026 MOV #26,R0 ; 0919
000740 066600 000006 ADD 6(SP),R0 ; LNK,*
000744 010003 MOV R0,R3
000746 004767 000000G 16$: JSR PC,$CMQRM
000752 103416 BCS 17$
000754 010466 000002 MOV R4,2(SP) ; $MCB$R4,LCCB
000760 010400 MOV R4,R0 ; LCCB,* 0920
000762 112760 000014 000012 MOVB #14,12(R0) ; *,*(LCCB)
000770 016601 000006 MOV 6(SP),R1 ; LNK,*
000774 016160 000014 000014 MOV 14(R1),14(R0) ; *(LNK),*(LCCB)
001002 004767 000000G JSR PC,$SCHED
001006 000757 BR 16$ ; 0919
001010 012700 000022 17$: MOV #22,R0 ; 0921
001014 066600 000006 ADD 6(SP),R0 ; LNK,*
001020 010003 MOV R0,R3
001022 004767 000000G 18$: JSR PC,$CMQRM
001026 103440 BCS 21$
001030 010466 000002 MOV R4,2(SP) ; $MCB$R4,LCCB
001034 010400 MOV R4,R0 ; LCCB,* 0923
001036 126027 000013 000020 CMPB 13(R0),#20 ; *(LCCB),*
001044 001411 BEQ 19$
001046 126027 000013 000022 CMPB 13(R0),#22 ; *(LCCB),*
001054 001405 BEQ 19$
001056 016600 000006 MOV 6(SP),R0 ; LNK,* 0924
001062 016005 000014 MOV 14(R0),R5 ; *(LNK),STATUS
001066 000405 BR 20$ ; 0923
001070 017616 000004 19$: MOV @4(SP),(SP) ; 0925
001074 004767 000000G JSR PC,STSMAP
001100 010005 MOV R0,R5 ; *,STATUS
001102 016600 000002 20$: MOV 2(SP),R0 ; LCCB,* 0926
001106 112760 000014 000012 MOVB #14,12(R0) ; *,*(LCCB)
001114 010560 000014 MOV R5,14(R0) ; STATUS,*(LCCB)
001120 010004 MOV R0,R4 ; LCCB,*
001122 004767 000000G JSR PC,$SCHED
001126 000735 BR 18$ ; 0921
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 35
X01500 Transmit Complete From NSP 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (9)
001130 016600 000012 21$: MOV 12(SP),R0 ; 0929
001134 016066 000004 000002 MOV 4(R0),2(SP) ; *,LCCB
001142 001002 BNE 22$
001144 000167 000656 JMP 38$
001150 016600 000002 22$: MOV 2(SP),R0 ; LCCB,* 0930
001154 112760 000014 000012 MOVB #14,12(R0) ; *,*(LCCB)
001162 012760 000001 000014 MOV #1,14(R0) ; *,*(LCCB)
001170 000167 000622 JMP 37$
001174 016600 000012 23$: MOV 12(SP),R0 ; 0942
001200 016066 000034 000006 MOV 34(R0),6(SP) ; *,LNK
001206 127627 000006 000001 CMPB @6(SP),#1 ; LNK,* 0946
001214 001423 BEQ 25$
001216 127627 000006 000010 CMPB @6(SP),#10 ; LNK,* 0947
001224 001413 BEQ 24$
001226 016616 000006 MOV 6(SP),(SP) ; LNK,* 0948
001232 010046 MOV R0,-(SP)
001234 012746 100024 MOV #-77754,-(SP)
001240 012746 000003 MOV #3,-(SP)
001244 004767 000000G JSR PC,$STOP
001250 062706 000006 ADD #6,SP
001254 127627 000006 000001 24$: CMPB @6(SP),#1 ; LNK,* 0951
001262 001062 BNE 28$
001264 052776 010000 000006 25$: BIS #10000,@6(SP) ; *,LNK 0954
001272 052776 002000 000014 BIS #2000,@14(SP) ; 0955
001300 016600 000006 MOV 6(SP),R0 ; LNK,* 0956
001304 117660 000010 000004 MOVB @10(SP),4(R0) ; *,*(LNK)
001312 005000 CLR R0 ; 0957
001314 157600 000010 BISB @10(SP),R0
001320 060001 ADD R0,R1
001322 016600 000006 MOV 6(SP),R0 ; LNK,*
001326 116011 000003 MOVB 3(R0),(R1) ; *(LNK),*
001332 005705 TST R5 ; STATUS 0958
001334 002016 BGE 27$
001336 027627 000004 177777 CMP @4(SP),#-1 ; 0961
001344 001404 BEQ 26$
001346 010016 MOV R0,(SP) ; LNK,* 0962
001350 004767 000000G JSR PC,I$CLS
001354 000427 BR 29$ ; 0960
001356 105076 000006 26$: CLRB @6(SP) ; LNK 0965
001362 042776 177400 000006 BIC #177400,@6(SP) ; *,LNK 0966
001370 000421 BR 29$ ; 0958
001372 112776 000002 000006 27$: MOVB #2,@6(SP) ; *,LNK 0971
001400 012700 000022 MOV #22,R0 ; 0972
001404 066600 000006 ADD 6(SP),R0 ; LNK,*
001410 010003 MOV R0,R3
001412 016604 000002 MOV 2(SP),R4 ; LCCB,*
001416 004767 000000G JSR PC,$CMQIF
001422 005066 000002 CLR 2(SP) ; LCCB 0973
001426 000402 BR 29$ ; 0951
001430 012705 177767 28$: MOV #-11,R5 ; *,STATUS 0977
001434 016602 000012 29$: MOV 12(SP),R2 ; 0979
001440 016200 000020 MOV 20(R2),R0
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 36
X01500 Transmit Complete From NSP 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (9)
001444 012701 000156 MOV #156,R1
001450 004767 000000G JSR PC,$DSRRT
001454 016604 000012 MOV 12(SP),R4 ; 0980
001460 004767 000000G JSR PC,$CCBRT
001464 005066 000012 CLR 12(SP) ; 0981
001470 000562 BR 40$ ; 0813
001472 016600 000012 30$: MOV 12(SP),R0 ; 0991
001476 016066 000024 000006 MOV 24(R0),6(SP) ; *,LNK
001504 127627 000006 000003 CMPB @6(SP),#3 ; LNK,* 0994
001512 001413 BEQ 31$
001514 016616 000006 MOV 6(SP),(SP) ; LNK,* 0995
001520 010046 MOV R0,-(SP)
001522 012746 100024 MOV #-77754,-(SP)
001526 012746 000003 MOV #3,-(SP)
001532 004767 000000G JSR PC,$STOP
001536 062706 000006 ADD #6,SP
001542 016600 000006 31$: MOV 6(SP),R0 ; LNK,* 0998
001546 117660 000010 000004 MOVB @10(SP),4(R0) ; *,*(LNK)
001554 005000 CLR R0 ; 0999
001556 016602 000006 MOV 6(SP),R2 ; LNK,*
001562 156200 000004 BISB 4(R2),R0 ; *(LNK),*
001566 060001 ADD R0,R1
001570 010200 MOV R2,R0 ; LNK,*
001572 116011 000003 MOVB 3(R0),(R1) ; *(LNK),*
001576 020527 000001 CMP R5,#1 ; STATUS,* 1000
001602 001007 BNE 32$
001604 112712 000004 MOVB #4,(R2) ; *,LNK 1003
001610 016601 000014 MOV 14(SP),R1 ; 1004
001614 105261 000006 INCB 6(R1)
001620 000405 BR 33$ ; 1000
001622 042776 004000 000006 32$: BIC #4000,@6(SP) ; *,LNK 1008
001630 105076 000006 CLRB @6(SP) ; LNK 1009
001634 042776 004000 000014 33$: BIC #4000,@14(SP) ; 1012
001642 000471 BR 38$ ; 1013
001644 020527 000001 34$: CMP R5,#1 ; STATUS,* 1023
001650 001051 BNE 35$
001652 012705 000001 MOV #1,R5 ; *,STATUS 1029
001656 016600 000014 MOV 14(SP),R0 ; 1030
001662 016601 000012 MOV 12(SP),R1
001666 016160 000024 000010 MOV 24(R1),10(R0)
001674 016160 000022 000014 MOV 22(R1),14(R0) ; 1031
001702 011000 MOV (R0),R0 ; *,OLD.STATE 1032
001704 072027 177770 ASH #-10,R0 ; *,OLD.STATE
001710 042700 177774 BIC #177774,R0 ; *,OLD.STATE
001714 042776 001400 000014 BIC #1400,@14(SP) ; 1033
001722 010016 MOV R0,(SP) ; OLD.STATE,* 1034
001724 010546 MOV R5,-(SP)
001726 005046 CLR -(SP)
001730 012746 000003 MOV #3,-(SP)
001734 012746 000000G MOV #NM.SIG,-(SP)
001740 005046 CLR -(SP)
001742 016600 000026 MOV 26(SP),R0
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 37
X01500 Transmit Complete From NSP 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (9)
001746 116016 000004 MOVB 4(R0),(SP)
001752 004767 000000G JSR PC,$CALLE
001756 004767 000000G JSR PC,$LTMEN ; 1038
001762 105276 000026 INCB @26(SP) ; 1039
001766 062706 000012 ADD #12,SP ; 1025
001772 000402 BR 36$ ; 1023
001774 012705 177777 35$: MOV #-1,R5 ; *,STATUS 1042
002000 016600 000002 36$: MOV 2(SP),R0 ; LCCB,* 1044
002004 112760 000022 000012 MOVB #22,12(R0) ; *,*(LCCB)
002012 010560 000014 MOV R5,14(R0) ; STATUS,*(LCCB)
002016 016604 000002 37$: MOV 2(SP),R4 ; LCCB,*
002022 004767 000000G JSR PC,$SCHED
002026 005066 000002 38$: CLR 2(SP) ; LCCB 1045
002032 005766 000012 39$: TST 12(SP) ; 1064
002036 001404 40$: BEQ 41$
002040 016604 000012 MOV 12(SP),R4
002044 004767 000000G JSR PC,$CCBRT
002050 005766 000002 41$: TST 2(SP) ; LCCB 1065
002054 001412 BEQ 42$
002056 016600 000002 MOV 2(SP),R0 ; LCCB,*
002062 112760 000014 000012 MOVB #14,12(R0) ; *,*(LCCB)
002070 010560 000014 MOV R5,14(R0) ; STATUS,*(LCCB)
002074 010004 MOV R0,R4 ; LCCB,*
002076 004767 000000G JSR PC,$SCHED
002102 062706 000016 42$: ADD #16,SP ; 0770
002106 000207 RTS PC
; Routine Size: 548 words, Routine Base: $CODE$ + 2236
; Maximum stack depth per invocation: 13 words
000124 .PSECT $PLIT$, RO , D
P.AAH: ; CASE Table for FCXCP+0172 0813
000124 000000 .WORD 0 ; [1$]
000126 001274 .WORD 1274 ; [30$]
000130 000456 .WORD 456 ; [14$]
000132 000000 .WORD 0 ; [1$]
000134 000776 .WORD 776 ; [23$]
000136 000100 .WORD 100 ; [3$]
000140 000206 .WORD 206 ; [6$]
000142 000036 .WORD 36 ; [2$]
000144 000036 .WORD 36 ; [2$]
000146 000310 .WORD 310 ; [9$]
000150 000310 .WORD 310 ; [9$]
000152 000310 .WORD 310 ; [9$]
000154 000310 .WORD 310 ; [9$]
000156 000310 .WORD 310 ; [9$]
000160 001446 .WORD 1446 ; [34$]
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 38
X01500 Transmit Enable From User 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (10)
; 1067 %sbttl 'Transmit Enable From User'
; 1068 routine FCXME (SCDB, CCB, FCM): mcb_db_ccb_mod novalue =
; 1069
; 1070 !++
; 1071 ! FUNCTIONAL DESCRIPTION:
; 1072 ! This routine is activated by a transmit enable from
; 1073 ! a System Interface user.
; 1074 !
; 1075 ! FORMAL PARAMETERS:
; 1076 ! CCB CCB to pass to handler routine
; 1077 ! FCM Function code modifier
; 1078 !
; 1079 ! IMPLICIT INPUTS:
; 1080 ! CCB Contents
; 1081 !
; 1082 ! IMPLICIT OUTPUTS:
; 1083 ! None
; 1084 !
; 1085 ! ROUTINE VALUE:
; 1086 ! COMPLETION CODES:
; 1087 ! None
; 1088 !
; 1089 ! SIDE EFFECTS:
; 1090 ! None
; 1091 !--
; 1092
; 1093 begin
; 1094 $sc_get_data_base (SCDB);
; 1095 map CCB: ref block field (C_FIELDS);
; 1096 local
; 1097 LNK: ref block field (LLT_FIELDS),
; 1098 QUE_TO_TAIL,
; 1099 STATUS;
; 1100 bind
; 1101 LLT = SCDB [SC_LLT_ADDR]: ref blockvector [,L_SIZE] field (LLT_FIELDS);
; 1102
; 1103 MAP$ (.SCDB [SC_LLT_BIAS]);
; 1104 LNK = LLT [.CCB [C_LIX], L_TOP];
; 1105 QUE_TO_TAIL = true;
; 1106 STATUS = S_SSUC;
; 1107
; 1108 if .SCDB [SCF_STAT] neq S_ST_ON
; 1109 then STATUS = S_ELNS
; 1110 else case .FCM^-1 from 0 to S$XHI^-1 of
; 1111 set
; 1112
; 1113
; 1114
; 1115 ! ************
; 1116 ! ** SX$ABO **
; 1117 ! ************
; 1118 [S$ABO^-1]:
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 39
X01500 Transmit Enable From User 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (10)
; 1119 begin
; 1120 ! Locate which LL the user is talking about
; 1121 STATUS = S_ENSL; ! Assume no such link
; 1122 incr LL from 0 to .SCDB [SC_LINKS]-1 do
; 1123 begin
; 1124 LNK = LLT [.LL, L_TOP];
; 1125 if (.LNK [L_ULA] eql .CCB [$sub_field (C_PRM1, LO_BYTE)]) and
; 1126 (.LNK [L_PIX] eql .CCB [C_PIX]) and
; 1127 (.LNK [L_STATE] neq ST_OFF) and
; 1128 (.LNK [L_STATE] neq ST_OPN) and
; 1129 (.LNK [L_STATE] neq ST_OI)
; 1130 then
; 1131 begin
; 1132 STATUS = S_SSUC; ! We have a link
; 1133 LNK [L_STS] = S_EABO; ! User abort
; 1134 CCB [C_LIX] = .LNK [L_LLA];
; 1135 if
; 1136 begin
; 1137 (not .LNK [LL_ABTI]) and
; 1138 ((.LNK [L_STATE] eql ST_RUN) or
; 1139 (.LNK [L_STATE] eql ST_DI) or
; 1140 (.LNK [L_STATE] eql ST_CA) or
; 1141 (.LNK [L_STATE] eql ST_CID) or
; 1142 (.LNK [L_STATE] eql ST_DIR) or
; 1143 not (.LNK [L_STATE] eql ST_CIS))
; 1144 end
; 1145 then
; 1146 begin
; 1147 local
; 1148 LCCB;
; 1149 if .LNK [L_STATE] neq ST_DIR
; 1150 then
; 1151 begin
; 1152 LNK [LL_KLOK] = false;
; 1153 LNK [LL_ABTI] = true ! Abort started
; 1154 end;
; 1155
; 1156 ! *** Now to free queued input CCBs
; 1157 while CMQRM$ (LNK [L_IQUE], LCCB) do $SC_DO_RCE (.LCCB)
; 1158 end
; 1159 else
; 1160 STATUS = (if .LNK [L_STATE] eql ST_CLI then S_ENOF else S_ELWS);
; 1161
; 1162 exitloop
; 1163 end
; 1164 end;
; 1165
; 1166 QUE_TO_TAIL = false
; 1167 end;
; 1168
; 1169
; 1170
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 40
X01500 Transmit Enable From User 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (10)
; 1171 ! *********************
; 1172 ! ** SX$ACC & SX$REJ **
; 1173 ! *********************
; 1174 [S$ACC^-1, S$REJ^-1]:
; 1175 begin
; 1176 if (.LNK [L_STATE] eql ST_CRA) and not .LNK [LL_ABTI]
; 1177 then
; 1178 begin
; 1179 if .FCM eql S$REJ then LNK [LL_ABTI] = true;
; 1180 LNK [LL_KLOK] = false
; 1181 end
; 1182 else
; 1183 STATUS = (if .LNK [L_STATE] eql ST_CLI then S_ENOF else S_ELWS)
; 1184 end;
; 1185
; 1186
; 1187
; 1188 ! ************
; 1189 ! ** SX$CON **
; 1190 ! ************
; 1191 [S$CON^-1]:
; 1192 begin
; 1193 local
; 1194 LL;
; 1195
; 1196 if FINDLL (LL) ! Get logical link
; 1197 then
; 1198 ! We have found an available LL, so enqueue CCB,
; 1199 ! record user link address, determine destination
; 1200 ! node address, and call the resource-wait routine.
; 1201 begin
; 1202 LNK = LLT [.LL, L_TOP]; ! Record link block address
; 1203 LNK [L_ULA] = .CCB [C_PRM1]; ! Set ULA
; 1204 LNK [L_PIX] = .CCB [C_PIX]; ! Remember user PIX
; 1205 CCB [C_LIX] = .LL; ! Tell user the LLA
; 1206
; 1207 if FINDND (.CCB, .LNK) ! Find the node
; 1208 then LNK [LL_BUSY] = true ! Mark the link in-use
; 1209 else STATUS = S_EUNN
; 1210 end
; 1211 else
; 1212 STATUS = S_ERES ! No logical links available
; 1213 end;
; 1214
; 1215
; 1216
; 1217 ! ************
; 1218 ! ** SX$DIS **
; 1219 ! ************
; 1220 [S$DIS^-1]:
; 1221 begin
; 1222 if (not (
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 41
X01500 Transmit Enable From User 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (10)
; 1223 (.LNK [L_STATE] eql ST_RUN) or
; 1224 (.LNK [L_STATE] eql ST_DIR))) or
; 1225 (.LNK [LL_ACDW] neq 0)
; 1226 then
; 1227 STATUS = (if .LNK [L_STATE] eql ST_CLI then S_ENOF else S_ELWS)
; 1228 else
; 1229 begin
; 1230 if .LNK [L_STATE] neq ST_DIR
; 1231 then LNK [LL_DSCI] = true
; 1232 end
; 1233 end;
; 1234
; 1235
; 1236
; 1237 ! ******************************
; 1238 ! ** SX$DRQ & SX$IRQ & SX$MRQ **
; 1239 ! ******************************
; 1240 [S$DRQ^-1, S$IRQ^-1, S$MRQ^-1]:
; 1241 begin
; 1242 if (not
; 1243 ((.LNK [L_STATE] eql ST_RUN) or
; 1244 (.LNK [L_STATE] eql ST_DI))) or
; 1245 (.LNK [LL_ABTI] neq 0)
; 1246 then
; 1247 STATUS = (if .LNK [L_STATE] eql ST_CLI then S_ENOF else S_ELWS)
; 1248 else
; 1249 begin
; 1250 if .FCM eql S$IRQ
; 1251 then
; 1252 begin
; 1253 CMQIF$ (LNK [L_INTQ], .CCB);
; 1254 $SC_DISPATCH_OUTPUT (LNK [L_INTQ]);
; 1255 return
; 1256 end
; 1257 end
; 1258 end;
; 1259
; 1260
; 1261
; 1262 ! ************
; 1263 ! ** SX$GLN **
; 1264 ! ************
; 1265 [S$GLN^-1]:
; 1266 begin
; 1267 local
; 1268 PTR,
; 1269 DPTR,
; 1270 LPTR,
; 1271 TMP,
; 1272 NAML,
; 1273 BUF: vector [NODE_ENTITY_LEN];
; 1274
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 42
X01500 Transmit Enable From User 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (10)
; 1275 if .CCB [C_CNT] lss 9
; 1276 then
; 1277 begin
; 1278 $SC_DO_XCP (.CCB, S_ELST);
; 1279 return
; 1280 end;
; 1281
; 1282 PTR = byt$ptr (BUF);
; 1283
; 1284 case .CCB [C_PRM1] from 0 to 3 of
; 1285 set
; 1286
; 1287 [0, 1, 3]:
; 1288 begin
; 1289 LPTR = .PTR;
; 1290 TMP = (if .CCB [C_PRM1] eql 3 then .SCDB [SC_HADDR] else .SCDB [SC_LADDR]);
; 1291 byt$short_string (TMP, LPTR); ! Specify our node addr
; 1292 ch$wchar_a (0, LPTR) ! Zero length name
; 1293 end;
; 1294
; 1295 [2]:
; 1296 MFBF$S (9, .CCB [C_BIAS], .CCB [C_ADDR], .PTR);
; 1297
; 1298 [outrange]:
; 1299 begin
; 1300 $SC_DO_XCP (.CCB, S_EERR);
; 1301 return
; 1302 end;
; 1303 tes;
; 1304
; 1305 CALL$E (NM_NOD, .SCDB [SC_SNPIX], .PTR);
; 1306 LPTR = .PTR; ! Now, look at address
; 1307 byt$string_short (LPTR, TMP); ! ...
; 1308 if .TMP eql -1
; 1309 then
; 1310 begin
; 1311 $SC_DO_XCP (.CCB, S_EUNN); ! Zero means no findum
; 1312 return
; 1313 end;
; 1314
; 1315 NAML = ch$rchar_a (LPTR); ! Get name length
; 1316 MAP$ (.CCB [C_BIAS]);
; 1317 DPTR = .CCB [C_ADDR];
; 1318
; 1319 case .CCB [C_PRM1] from 0 to 3 of
; 1320 set
; 1321
; 1322 [0]:
; 1323 begin
; 1324 local
; 1325 DPTR;
; 1326 DPTR = ch$move (.NAML, .LPTR, .DPTR);
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 43
X01500 Transmit Enable From User 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (10)
; 1327 DPTR = ch$fill (%c' ', (6 - .NAML), .DPTR);
; 1328 TMP = .SCDB [SC_SSIZE];
; 1329 byt$short_string (TMP, DPTR)
; 1330 end;
; 1331
; 1332 [1, 2, 3]:
; 1333 DPTR = ch$move (.NAML + 3, .PTR, .DPTR);
; 1334
; 1335 tes;
; 1336
; 1337 CCB [C_CNT] = ch$diff (.DPTR, .CCB [C_ADDR]);
; 1338 $SC_DO_XCP (.CCB, S_SSUC);
; 1339 return
; 1340 end;
; 1341
; 1342
; 1343
; 1344 ! *********************
; 1345 ! ** SX$SND & SX$SNI **
; 1346 ! *********************
; 1347 [S$SND^-1, S$SNI^-1]:
; 1348 begin
; 1349 if (.LNK [L_STATE] eql ST_RUN) and
; 1350 (.LNK [LL_ACDW] eql 0)
; 1351 then
; 1352 begin
; 1353 if .FCM eql S$SNI
; 1354 then
; 1355 begin
; 1356 CMQIN$ (LNK [L_INTQ], .CCB);
; 1357 $SC_DISPATCH_OUTPUT (LNK [L_INTQ]);
; 1358 return
; 1359 end
; 1360 end
; 1361 else
; 1362 STATUS = (if .LNK [L_STATE] eql ST_CLI then S_ENOF else S_ELWS)
; 1363 end;
; 1364
; 1365
; 1366
; 1367 ! ************
; 1368 ! ** SX$ERR **
; 1369 ! ************
; 1370 [outrange, inrange]: STATUS = S_EERR;
; 1371
; 1372 tes;
; 1373
; 1374
; 1375
; 1376 if .STATUS neq S_SSUC then $SC_DO_XCP (.CCB, .STATUS)
; 1377 else
; 1378 begin
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 44
X01500 Transmit Enable From User 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (10)
; 1379 if .QUE_TO_TAIL
; 1380 then CMQIN$ (LNK [L_OQUE], .CCB)
; 1381 else CMQIF$ (LNK [L_OQUE], .CCB);
; 1382 $SC_DISPATCH_OUTPUT (LNK [L_OQUE])
; 1383 end
; 1384 end;
.GLOBL $MVFBF, NM.NOD
.SBTTL FCXME Transmit Enable From User
004346 .PSECT $CODE$, RO
000000 162706 000032 FCXME: SUB #32,SP ; 1068
000004 010302 MOV R3,R2 ; *,FCM
000006 010466 000006 MOV R4,6(SP)
000012 010566 000004 MOV R5,4(SP)
000016 010500 MOV R5,R0 ; 1103
000020 016067 000044 000000G MOV 44(R0),KISAR6
000026 016005 000046 MOV 46(R0),R5 ; 1104
000032 012700 000010 MOV #10,R0
000036 060400 ADD R4,R0
000040 010066 000010 MOV R0,10(SP)
000044 005003 CLR R3
000046 151003 BISB (R0),R3
000050 070327 000032 MUL #32,R3
000054 060503 ADD R5,R3
000056 010366 000002 MOV R3,2(SP) ; *,LNK
000062 012766 000001 000012 MOV #1,12(SP) ; *,QUE.TO.TAIL 1105
000070 012701 000001 MOV #1,R1 ; *,STATUS 1106
000074 032776 001400 000004 BIT #1400,@4(SP) ; 1108
000102 001403 BEQ 1$
000104 012701 177765 MOV #-13,R1 ; *,STATUS 1109
000110 000575 BR 13$ ; 1108
000112 010203 1$: MOV R2,R3 ; FCM,* 1110
000114 006203 ASR R3
000116 020327 000012 CMP R3,#12
000122 101003 BHI 2$
000124 006303 ASL R3
000126 066307 000162' ADD P.AAI(R3),PC ; Case dispatch
000132 012701 177763 2$: MOV #-15,R1 ; *,STATUS 1370
000136 000562 BR 13$ ; 1110
000140 012701 177756 3$: MOV #-22,R1 ; *,STATUS 1121
000144 005000 CLR R0 ; LL 1122
000146 000547 BR 11$
000150 010003 4$: MOV R0,R3 ; LL,* 1124
000152 070327 000032 MUL #32,R3
000156 060503 ADD R5,R3
000160 010366 000002 MOV R3,2(SP) ; *,LNK
000164 016602 000006 MOV 6(SP),R2 ; 1125
000170 126362 000002 000024 CMPB 2(R3),24(R2) ; *(LNK),*
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 45
X01500 Transmit Enable From User 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (10)
000176 001132 BNE 10$
000200 017603 000010 MOV @10(SP),R3 ; 1126
000204 105003 CLRB R3
000206 000303 SWAB R3
000210 005002 CLR R2
000212 016604 000002 MOV 2(SP),R4 ; LNK,*
000216 156402 000005 BISB 5(R4),R2 ; *(LNK),*
000222 020203 CMP R2,R3
000224 001117 BNE 10$
000226 105714 TSTB (R4) ; LNK 1127
000230 001515 BEQ 10$
000232 121427 000004 CMPB (R4),#4 ; LNK,* 1128
000236 001512 BEQ 10$
000240 121427 000003 CMPB (R4),#3 ; LNK,* 1129
000244 001507 BEQ 10$
000246 012701 000001 MOV #1,R1 ; *,STATUS 1132
000252 010402 MOV R4,R2 ; LNK,* 1133
000254 012762 177767 000014 MOV #-11,14(R2) ; *,*(LNK)
000262 116276 000003 000010 MOVB 3(R2),@10(SP) ; *(LNK),* 1134
000270 032776 000400 000002 BIT #400,@2(SP) ; *,LNK 1137
000276 001060 BNE 8$
000300 127627 000002 000014 CMPB @2(SP),#14 ; LNK,* 1138
000306 001423 BEQ 5$
000310 127627 000002 000012 CMPB @2(SP),#12 ; LNK,* 1139
000316 001417 BEQ 5$
000320 127627 000002 000007 CMPB @2(SP),#7 ; LNK,* 1140
000326 001413 BEQ 5$
000330 127627 000002 000002 CMPB @2(SP),#2 ; LNK,* 1141
000336 001407 BEQ 5$
000340 127627 000002 000013 CMPB @2(SP),#13 ; LNK,* 1142
000346 001415 BEQ 6$
000350 127601 000002 CMPB @2(SP),R1 ; LNK,* 1143
000354 001431 BEQ 8$
000356 127627 000002 000013 5$: CMPB @2(SP),#13 ; LNK,* 1149
000364 001406 BEQ 6$
000366 042776 010000 000002 BIC #10000,@2(SP) ; *,LNK 1152
000374 052776 000400 000002 BIS #400,@2(SP) ; *,LNK 1153
000402 012702 000016 6$: MOV #16,R2 ; 1157
000406 066602 000002 ADD 2(SP),R2 ; LNK,*
000412 010203 MOV R2,R3
000414 004767 000000G 7$: JSR PC,$CMQRM
000420 103427 BCS 12$
000422 010402 MOV R4,R2 ; $MCB$R4,LCCB
000424 112762 000004 000012 MOVB #4,12(R2) ; *,*(LCCB)
000432 004767 000000G JSR PC,$SCHED
000436 000766 BR 7$
000440 127627 000002 000010 8$: CMPB @2(SP),#10 ; LNK,* 1160
000446 001003 BNE 9$
000450 012701 177732 MOV #-46,R1 ; *,STATUS
000454 000411 BR 12$
000456 012701 177760 9$: MOV #-20,R1 ; *,STATUS
000462 000406 BR 12$ ; 1162
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 46
X01500 Transmit Enable From User 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (10)
000464 005200 10$: INC R0 ; LL 1122
000466 016602 000004 11$: MOV 4(SP),R2
000472 020062 000016 CMP R0,16(R2) ; LL,*
000476 002624 BLT 4$
000500 005066 000012 12$: CLR 12(SP) ; QUE.TO.TAIL 1166
000504 000540 13$: BR 24$ ; 1110
000506 127627 000002 000006 14$: CMPB @2(SP),#6 ; LNK,* 1176
000514 001016 BNE 16$
000516 032776 000400 000002 BIT #400,@2(SP) ; *,LNK
000524 001012 BNE 16$
000526 020227 000004 CMP R2,#4 ; FCM,* 1179
000532 001003 BNE 15$
000534 052776 000400 000002 BIS #400,@2(SP) ; *,LNK
000542 042776 010000 000002 15$: BIC #10000,@2(SP) ; *,LNK 1180
000550 000516 BR 24$ ; 1175
000552 127627 000002 000010 16$: CMPB @2(SP),#10 ; LNK,* 1183
000560 001133 BNE 28$
000562 000535 BR 29$
000564 012746 000020 17$: MOV #20,-(SP) ; 1196
000570 060616 ADD SP,(SP) ; LL,*
000572 004767 000000G JSR PC,FINDLL
000576 005726 TST (SP)+
000600 006000 ROR R0
000602 103046 BCC 19$
000604 016603 000016 MOV 16(SP),R3 ; LL,* 1202
000610 070327 000032 MUL #32,R3
000614 060503 ADD R5,R3
000616 010366 000002 MOV R3,2(SP) ; *,LNK
000622 010300 MOV R3,R0 ; LNK,* 1203
000624 016602 000006 MOV 6(SP),R2
000630 116260 000024 000002 MOVB 24(R2),2(R0) ; *,*(LNK)
000636 017600 000010 MOV @10(SP),R0 ; 1204
000642 000300 SWAB R0
000644 010302 MOV R3,R2 ; LNK,*
000646 110062 000005 MOVB R0,5(R2) ; *,*(LNK)
000652 116676 000016 000010 MOVB 16(SP),@10(SP) ; LL,* 1205
000660 016646 000006 MOV 6(SP),-(SP) ; 1207
000664 016646 000004 MOV 4(SP),-(SP) ; LNK,*
000670 004767 000000G JSR PC,FINDND
000674 022626 CMP (SP)+,(SP)+
000676 006000 ROR R0
000700 103004 BCC 18$
000702 052776 004000 000002 BIS #4000,@2(SP) ; *,LNK 1208
000710 000436 BR 24$ ; 1207
000712 012701 177776 18$: MOV #-2,R1 ; *,STATUS 1209
000716 000433 BR 24$ ; 1196
000720 012701 177777 19$: MOV #-1,R1 ; *,STATUS 1212
000724 000430 BR 24$ ; 1110
000726 127627 000002 000014 20$: CMPB @2(SP),#14 ; LNK,* 1223
000734 001404 BEQ 21$
000736 127627 000002 000013 CMPB @2(SP),#13 ; LNK,* 1224
000744 001004 BNE 22$
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 47
X01500 Transmit Enable From User 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (10)
000746 032776 003400 000002 21$: BIT #3400,@2(SP) ; *,LNK 1225
000754 001405 BEQ 23$
000756 127627 000002 000010 22$: CMPB @2(SP),#10 ; LNK,* 1227
000764 001031 BNE 28$
000766 000433 BR 29$
000770 127627 000002 000013 23$: CMPB @2(SP),#13 ; LNK,* 1230
000776 001403 BEQ 24$
001000 052776 002000 000002 BIS #2000,@2(SP) ; *,LNK 1231
001006 000167 001052 24$: JMP 49$ ; 1110
001012 127627 000002 000014 25$: CMPB @2(SP),#14 ; LNK,* 1243
001020 001404 BEQ 26$
001022 127627 000002 000012 CMPB @2(SP),#12 ; LNK,* 1244
001030 001004 BNE 27$
001032 032776 000400 000002 26$: BIT #400,@2(SP) ; *,LNK 1245
001040 001410 BEQ 30$
001042 127627 000002 000010 27$: CMPB @2(SP),#10 ; LNK,* 1247
001050 001402 28$: BEQ 29$
001052 000167 001002 JMP 48$
001056 000167 000770 29$: JMP 47$
001062 020227 000016 30$: CMP R2,#16 ; FCM,* 1250
001066 001347 BNE 24$
001070 012700 000026 MOV #26,R0 ; 1253
001074 066600 000002 ADD 2(SP),R0 ; LNK,*
001100 010003 MOV R0,R3
001102 016604 000006 MOV 6(SP),R4
001106 004767 000000G JSR PC,$CMQIF
001112 005713 TST (R3) ; 1254
001114 001002 BNE 31$
001116 000167 001072 JMP 56$
001122 000167 001042 31$: JMP 55$
001126 016600 000006 32$: MOV 6(SP),R0 ; 1275
001132 026027 000022 000011 CMP 22(R0),#11
001140 002007 BGE 33$
001142 112760 000014 000012 MOVB #14,12(R0) ; 1278
001150 012760 177761 000014 MOV #-17,14(R0)
001156 000425 BR 35$
001160 012716 000020 33$: MOV #20,(SP) ; *,PTR 1282
001164 060616 ADD SP,(SP) ; BUF,PTR
001166 016602 000006 MOV 6(SP),R2 ; 1284
001172 016200 000024 MOV 24(R2),R0
001176 020027 000003 CMP R0,#3
001202 101003 BHI 34$
001204 006300 ASL R0
001206 066007 000210' ADD P.AAJ(R0),PC ; Case dispatch
001212 016600 000006 34$: MOV 6(SP),R0 ; 1300
001216 112760 000014 000012 MOVB #14,12(R0)
001224 012760 177763 000014 MOV #-15,14(R0)
001232 000167 000652 35$: JMP 50$
001236 011666 000010 36$: MOV (SP),10(SP) ; PTR,LPTR 1289
001242 016600 000006 MOV 6(SP),R0 ; 1290
001246 026027 000024 000003 CMP 24(R0),#3
001254 001005 BNE 37$
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 48
X01500 Transmit Enable From User 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (10)
001256 016600 000004 MOV 4(SP),R0
001262 016005 000012 MOV 12(R0),R5
001266 000404 BR 38$
001270 016600 000004 37$: MOV 4(SP),R0
001274 016005 000010 MOV 10(R0),R5
001300 010566 000014 38$: MOV R5,14(SP) ; *,TMP
001304 010500 MOV R5,R0 ; TMP,NUM 1291
001306 110076 000010 MOVB R0,@10(SP) ; NUM,LPTR
001312 005266 000010 INC 10(SP) ; LPTR
001316 000300 SWAB R0 ; NUM
001320 110076 000010 MOVB R0,@10(SP) ; NUM,LPTR
001324 005266 000010 INC 10(SP) ; LPTR
001330 105076 000010 CLRB @10(SP) ; LPTR 1292
001334 005266 000010 INC 10(SP) ; LPTR
001340 000415 BR 40$ ; 1284
001342 016600 000006 39$: MOV 6(SP),R0 ; 1296
001346 016046 000016 MOV 16(R0),-(SP)
001352 016046 000020 MOV 20(R0),-(SP)
001356 016602 000004 MOV 4(SP),R2 ; PTR,*
001362 012703 000011 MOV #11,R3
001366 004767 000000G JSR PC,$MVFBF
001372 022626 CMP (SP)+,(SP)+
001374 011646 40$: MOV (SP),-(SP) ; PTR,* 1305
001376 012746 000001 MOV #1,-(SP)
001402 012746 000000G MOV #NM.NOD,-(SP)
001406 005046 CLR -(SP)
001410 016600 000014 MOV 14(SP),R0
001414 116016 000004 MOVB 4(R0),(SP)
001420 004767 000000G JSR PC,$CALLE
001424 016666 000010 000020 MOV 10(SP),20(SP) ; PTR,LPTR 1306
001432 005266 000020 INC 20(SP) ; LPTR 1307
001436 016600 000020 MOV 20(SP),R0 ; LPTR,*
001442 116066 177777 000024 MOVB -1(R0),24(SP) ; *(LPTR),TMP
001450 005266 000020 INC 20(SP) ; LPTR
001454 016600 000020 MOV 20(SP),R0 ; LPTR,*
001460 116066 177777 000025 MOVB -1(R0),25(SP) ; *(LPTR),TMP+1
001466 026627 000024 177777 CMP 24(SP),#-1 ; TMP,* 1308
001474 001016 BNE 41$
001476 016600 000016 MOV 16(SP),R0 ; 1311
001502 112760 000014 000012 MOVB #14,12(R0)
001510 012760 177776 000014 MOV #-2,14(R0)
001516 010004 MOV R0,R4
001520 004767 000000G JSR PC,$SCHED
001524 062706 000010 ADD #10,SP ; 1308
001530 000573 BR 51$ ; 1310
001532 005266 000020 41$: INC 20(SP) ; LPTR 1315
001536 005002 CLR R2 ; NAML
001540 016600 000020 MOV 20(SP),R0 ; LPTR,*
001544 156002 177777 BISB -1(R0),R2 ; *(LPTR),NAML
001550 016600 000016 MOV 16(SP),R0 ; 1316
001554 016067 000016 000000G MOV 16(R0),KISAR6
001562 016004 000020 MOV 20(R0),R4 ; *,DPTR 1317
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 49
X01500 Transmit Enable From User 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (10)
001566 010003 MOV R0,R3 ; 1319
001570 016300 000024 MOV 24(R3),R0
001574 006300 ASL R0
001576 066007 000220' ADD P.AAK(R0),PC ; Case dispatch
001602 010216 42$: MOV R2,(SP) ; NAML,* 1326
001604 016646 000020 MOV 20(SP),-(SP) ; LPTR,*
001610 010346 MOV R3,-(SP) ; DPTR,*
001612 004767 000000G JSR PC,BL$MOV
001616 010003 MOV R0,R3 ; *,DPTR
001620 012716 000040 MOV #40,(SP) ; 1327
001624 012746 000006 MOV #6,-(SP)
001630 160216 SUB R2,(SP) ; NAML,*
001632 010346 MOV R3,-(SP) ; DPTR,*
001634 004767 000000G JSR PC,BL$FIL
001640 010003 MOV R0,R3 ; *,DPTR
001642 016600 000024 MOV 24(SP),R0 ; 1328
001646 016066 000014 000034 MOV 14(R0),34(SP) ; *,TMP
001654 016600 000034 MOV 34(SP),R0 ; TMP,NUM 1329
001660 110023 MOVB R0,(R3)+ ; NUM,DPTR
001662 000300 SWAB R0 ; NUM
001664 110023 MOVB R0,(R3)+ ; NUM,DPTR
001666 022626 CMP (SP)+,(SP)+ ; 1323
001670 000411 BR 44$ ; 1319
001672 010216 43$: MOV R2,(SP) ; NAML,* 1333
001674 062716 000003 ADD #3,(SP)
001700 016646 000010 MOV 10(SP),-(SP) ; PTR,*
001704 010446 MOV R4,-(SP) ; DPTR,*
001706 004767 000000G JSR PC,BL$MOV
001712 010004 MOV R0,R4 ; *,DPTR
001714 016600 000022 44$: MOV 22(SP),R0 ; 1337
001720 010460 000022 MOV R4,22(R0) ; DPTR,*
001724 010002 MOV R0,R2
001726 166260 000020 000022 SUB 20(R2),22(R0)
001734 112760 000014 000012 MOVB #14,12(R0) ; 1338
001742 012760 000001 000014 MOV #1,14(R0)
001750 010204 MOV R2,R4
001752 004767 000000G JSR PC,$SCHED
001756 062706 000014 ADD #14,SP ; 1110
001762 000514 BR 56$ ; 1266
001764 127627 000002 000014 45$: CMPB @2(SP),#14 ; LNK,* 1349
001772 001023 BNE 46$
001774 032776 003400 000002 BIT #3400,@2(SP) ; *,LNK 1350
002002 001017 BNE 46$
002004 020227 000014 CMP R2,#14 ; FCM,* 1353
002010 001025 BNE 49$
002012 012700 000026 MOV #26,R0 ; 1356
002016 066600 000002 ADD 2(SP),R0 ; LNK,*
002022 010003 MOV R0,R3
002024 016604 000006 MOV 6(SP),R4
002030 004767 000000G JSR PC,$CMQIN
002034 005713 TST (R3) ; 1357
002036 001466 BEQ 56$
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 50
X01500 Transmit Enable From User 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (10)
002040 000453 BR 55$
002042 127627 000002 000010 46$: CMPB @2(SP),#10 ; LNK,* 1362
002050 001003 BNE 48$
002052 012701 177732 47$: MOV #-46,R1 ; *,STATUS
002056 000402 BR 49$
002060 012701 177760 48$: MOV #-20,R1 ; *,STATUS
002064 020127 000001 49$: CMP R1,#1 ; STATUS,* 1376
002070 001414 BEQ 52$
002072 016600 000006 MOV 6(SP),R0
002076 112760 000014 000012 MOVB #14,12(R0)
002104 010160 000014 MOV R1,14(R0) ; STATUS,*
002110 016604 000006 50$: MOV 6(SP),R4
002114 004767 000000G JSR PC,$SCHED
002120 000435 51$: BR 56$
002122 016603 000002 52$: MOV 2(SP),R3 ; LNK,* 1380
002126 062703 000022 ADD #22,R3
002132 032766 000001 000012 BIT #1,12(SP) ; *,QUE.TO.TAIL 1379
002140 001405 BEQ 53$
002142 016604 000006 MOV 6(SP),R4 ; 1380
002146 004767 000000G JSR PC,$CMQIN
002152 000404 BR 54$ ; 1379
002154 016604 000006 53$: MOV 6(SP),R4 ; 1381
002160 004767 000000G JSR PC,$CMQIF
002164 005713 54$: TST (R3) ; 1382
002166 001412 BEQ 56$
002170 011300 55$: MOV (R3),R0
002172 116000 000013 MOVB 13(R0),R0
002176 042700 177400 BIC #177400,R0
002202 016646 000002 MOV 2(SP),-(SP) ; LNK,*
002206 004770 000040' JSR PC,@XMEWT(R0)
002212 005726 TST (SP)+
002214 062706 000032 56$: ADD #32,SP ; 1068
002220 000207 RTS PC
; Routine Size: 585 words, Routine Base: $CODE$ + 4346
; Maximum stack depth per invocation: 22 words
000162 .PSECT $PLIT$, RO , D
P.AAI: ; CASE Table for FCXME+0126 1110
000162 000432 .WORD 432 ; [17$]
000164 000354 .WORD 354 ; [14$]
000166 000354 .WORD 354 ; [14$]
000170 001632 .WORD 1632 ; [45$]
000172 000660 .WORD 660 ; [25$]
000174 000660 .WORD 660 ; [25$]
000176 001632 .WORD 1632 ; [45$]
000200 000660 .WORD 660 ; [25$]
000202 000574 .WORD 574 ; [20$]
000204 000006 .WORD 6 ; [3$]
000206 000774 .WORD 774 ; [32$]
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 51
X01500 Transmit Enable From User 27-Nov-1984 13:18:37 RATS:<BANKS.MCB.SC>SCDSP.BLI.2 (10)
P.AAJ: ; CASE Table for FCXME+1206 1284
000210 000024 .WORD 24 ; [36$]
000212 000024 .WORD 24 ; [36$]
000214 000130 .WORD 130 ; [39$]
000216 000024 .WORD 24 ; [36$]
P.AAK: ; CASE Table for FCXME+1576 1319
000220 000000 .WORD 0 ; [42$]
000222 000070 .WORD 70 ; [43$]
000224 000070 .WORD 70 ; [43$]
000226 000070 .WORD 70 ; [43$]
; 1385
; 1386 end
; 1387 eludom
; OTS external references
.GLOBL $STOP, BL$FIL, BL$MOV
; PSECT SUMMARY
;
; Psect Name Words Attributes
; $PLIT$ 76 RO , D , LCL, REL, CON
; $CODE$ 1724 RO , I , LCL, REL, CON
; LIBRARY STATISTICS
;
; -------- Symbols -------- Blocks
; File Total Loaded Percent Read
;
; RATS:<BANKS.MCB.SC>SCPRM.L16.6 262 95 36 0
; RATS:<BANKS.MCB.MCB>MCBLIB.L16.6 372 62 16 0
; RATS:<BANKS.MCB.MCB>RSXLIB.L16.5 317 0 0 0
; RATS:<BANKS.MCB.MCB>NMXLIB.L16.5 200 4 2 0
; RATS:<BANKS.MCB.MCB>XPORTX.L16.10 599 8 1 0
; RATS:<BANKS.MCB.MCB>SCSYS.L16.5 113 32 28 0
; Size: 1724 code + 76 data words
; Run Time: 00:34.8
SCDSP 27-Nov-1984 13:23:09 TOPS-20 Bliss-16 2A(530) Page 52
X01500 Transmit Enable From User
; Elapsed Time: 03:04.3
; Memory Used: 100 pages
; Compilation Complete