Trailing-Edge
-
PDP-10 Archives
-
BB-P363B-SM_1985
-
mcb/drivers/dte.lst
There are no other files named dte.lst in the archive.
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 1
30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (1)
; 0001 module DTE ( ! DTE20 driver for MCB V3.2
; 0002 ident = 'X01560',
; 0003 language (bliss16)
; 0004 ) =
; 0005 begin
; 0006
; 0007 !
; 0008 ! COPYRIGHT (c) 1980, 1981, 1982
; 0009 ! DIGITAL EQUIPMENT CORPORATION
; 0010 ! Maynard, Massachusetts
; 0011 !
; 0012 ! This software is furnished under a license and may be used
; 0013 ! and copied only in accordance with the terms of such license
; 0014 ! and with the inclusion of the above copyright notice. This
; 0015 ! software or any other copies thereof may not be provided or
; 0016 ! otherwise made available to any other person. No title to
; 0017 ! and ownership of the software is hereby transferred.
; 0018 !
; 0019 ! The information in this software is subject to change
; 0020 ! without notice and should not be construed as a commitment
; 0021 ! by DIGITAL EQUIPMENT CORPORATION.
; 0022 !
; 0023 ! DIGITAL assumes no responsibility for the use or reliability
; 0024 ! of its software on equipment which is not supplied by
; 0025 ! DIGITAL.
; 0026 !
; 0027
; 0028 !++
; 0029 !
; 0030 ! FACILITY: MCB DTE Driver
; 0031 !
; 0032 ! ABSTRACT:
; 0033 !
; 0034 ! This is the DLC process which services the DTE20 device
; 0035 !
; 0036 ! ENVIRONMENT: MCB V3.2
; 0037 !
; 0038 ! AUTHOR: Alan D. Peckham CREATION DATE: 28-May-80
; 0039 !
; 0040 ! MODIFIED BY:
; 0041 !
; 0042 ! Alan D. Peckham, 28-May-80: Version 1
; 0043 ! 01 - New version for MCB V3.0
; 0044 ! 06 - Move data base to DTEDAT for dump analyzer.
; 0045 ! 07 - Catch interrupts during DS_COM state.
; 0046 ! 08 - Seperate DLC and DDM dispatch tables to avoid C.MOD bug.
; 0047 ! 09 - Clear doorbell on DS_COM interrupt.
; 0048 ! 10 - Add debugging SIGNALs to find DTE_2 bug.
; 0049 ! 11 - Bug found! Remove signals...
; 0050 ! 12 - Bug not found! Fix TENAD1 reset problem in PRTDEP and PRTEXM.
; 0051 ! 13 - Add global data base symbols for DTEDLC.
; 0052 ! 14 - MCB V3.1 update:
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 2
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (1)
; 0053 ! Replace process header.
; 0054 ! Use CNV22$ instead of CNV18$.
; 0055 ! Supply routine address in SYNCH$.
; 0056 ! 15 - Added network management code.
; 0057 ! Clear QSIZE on line down to avoid TRANSMIT_SEGMENT activation.
; 0058 ! 16 - Copy messages into contiguous buffer.
; 0059 ! 17 - DTE shutdown could occur before all receive buffers were back.
; 0060 ! 18 - Add internal event logging.
; 0061 ! 19 - Do not start new receive in RECEIVE_MESSAGE until old one is finished.
; 0062 ! 20 - Map the data base.
; 0063 ! Update the network management code.
; 0064 ! 21 - Insert Network Management event logging.
; 0065 ! 22 - Bug in handling buffers that cross 32K boundries.
; 0066 ! 23 - Clean up current Network Management code.
; 0067 ! 24 - Correct transmit/receive contention for bus extension bits.
; 0068 ! 25 - Signal when event logging buffer too small.
; 0069 ! 26 - Add DTE directory process.
; 0070 ! 27 - Add long timer control.
; 0071 ! 28 - Identify line and circuit to NMX in DTENMX.
; 0072 ! 29 - Do not SYNCH unless interrupt enable is on.
; 0073 ! 30 - Flush transmits before waiting for the cows to come home in SHUTDN.
; 0074 ! 31 - Toss recovery RDB if receive already in progress in TIMRDB.
; 0075 ! 32 - Integrate DLL interface
; 0076 ! 33 - Add protocol pause timeout.
; 0077 ! Cover all cases where initialization should be checked for.
; 0078 ! 34 - Fix FLUSH_QUEUE linkage bug.
; 0079 ! 35 - Replace DLC with DLL interface.
; 0080 ! 36 - Rework initialization code.
; 0081 ! Fix mapping bug.
; 0082 ! 37 - Maintain requested protocol state.
; 0083 ! Handle all INIT states in ANSWER_DOORBELL.
; 0084 ! 38 - Eliminate CNV18.
; 0085 ! Create CHANGE_PROTOCOL_STATE routine.
; 0086 ! 39 - Correct NM parameters.
; 0087 ! 40 - Correct linkage errors to SEND_PERSISTENT_ERROR.
; 0088 ! 41 - Adapt to using new UNIBUS address conversion routines.
; 0089 ! 42 - Eliminate duplicate state notifications.
; 0090 ! 43 - Set protocol pause timeout to use DLL$_PAUSE_TIMEOUT status.
; 0091 ! 44 - Always update keep-alive if we can get at the comm region.
; 0092 ! 45 - Do not start transmit until -10's doorbell has stopped ringing.
; 0093 ! Add GET_HIS_STATUS to clear status word if examine failure.
; 0094 ! Check for PAUSE and INITIALIZATION requests in TIMLTM before
; 0095 ! trying to restart transmit/receive.
; 0096 ! 46 - Correct GETCOM to compensate for TOPS20 not initializing
; 0097 ! inactive to-him regions with their lengths.
; 0098 ! 47 - Update to NM V3.0.0 .
; 0099 ! 48 - Make sure address passed to PARAMETER_DEVICE_REGISTERS begins
; 0100 ! at beginning of DTE register set.
; 0101 ! 49 - Remove 'counters zeroed' event in DTENMX.
; 0102 !
; 0103 ! 50 - Ron Platukis 26-february-82
; 0104 ! a) in routine TIMLTM add check for lost TO-10 doorbell on xmits.
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 3
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (1)
; 0105 ! b) in routine TRANSMIT_SEGMENT start long timer after an xmit.
; 0106 ! c) in routine T10DON shut off long timer if in run state.
; 0107 ! 51 - Add pause timeout display in DTENMX.
; 0108 ! 52 - Rework supported counters: add system specific line counters.
; 0109 ! 53 - Fix areas in DTE_SYNCHRONIZE and TIMLTM to recognize a PAUSED KL.
; 0110 ! 54 - Correct register display of SHOW_LINE in DTENMX.
; 0111 ! 55 - Modify CTLSTR to return the CIRCUIT COST to XPT in C_PRM1.
; 0112 ! 56 - Correct for possible loss of interrupt enable during KL reload
; 0113 ! by re-enableing interrupts in ANSWER_DOORBELL during initialization.
; 0114 !--
; 0115 !
; 0116 ! INCLUDE FILES:
; 0117 !
; 0118
; 0119 library 'MCBLIB';
; 0120
; 0121 library 'XPORTX';
; 0122
; 0123 library 'NMXLIB';
; 0124
; 0125 $SHOW (NONE)
; 0126 require 'DLLLIB';
; 0380
; 0381 library 'DTEDAT';
; 0382
; 0383 !
; 0384 ! TABLE OF CONTENTS:
; 0385 !
; 0386
; 0387 linkage
; 0388 DTE_CCB_DB = jsr (register = 4, register = 5) : nopreserve (4),
; 0389 DTE_CCB_DB_STS = jsr (register = 4, register = 5, register = 0) : nopreserve (4),
; 0390 DTE_DB = jsr (register = 5) : nopreserve (0, 1, 2, 3, 4),
; 0391 DTE_DB_CCB = jsr (register = 5, register = 4) : nopreserve (0, 1, 2, 3, 4),
; 0392 DTE_DB_DTE = jsr (register = 5, register = 1),
; 0393 DTE_DB_STS = jsr (register = 5, register = 0) : nopreserve (4, 0),
; 0394 DTE_REG = jsr (register = 1) : nopreserve (1),
; 0395 EXM_LINKAGE = jsr (register = 5) : nopreserve (0, 1, 2, 3),
; 0396 EXDP_LINKAGE = jsr (register = 5, register = 2, register = 3) : nopreserve (0, 1, 2);
; 0397
; 0398 forward routine
; 0399 ANSWER_DOORBELL : DTE_DB novalue,
; 0400 CHANGE_PROTOCOL_STATE : DTE_DB novalue,
; 0401 CLEAR_DOORBELL : DTE_DB,
; 0402 CTLSTP : DTE_DB_CCB novalue,
; 0403 CTLSTR : DTE_DB_CCB novalue,
; 0404 CURRENT_STATUS : LINKAGE_DB,
; 0405 DEPMYG : EXDP_LINKAGE,
; 0406 DEPMYH : EXDP_LINKAGE,
; 0407 DEVICE_BROKEN : DTE_DB novalue,
; 0408 DLLINI : DTE_DB_CCB novalue,
; 0409 DLLMOP : DTE_DB_CCB novalue,
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 4
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (1)
; 0410 DLLSTP : DTE_DB_CCB novalue,
; 0411 DLLXMT : DTE_DB_CCB novalue,
; 0412 DTE_INTERRUPT : MCB_INTERRUPT novalue,
; 0413 DTE_SYNCHRONIZE : MCB_DB novalue,
; 0414 DTECTL : MCB_DB_CCB_MOD novalue,
; 0415 DTERCE : MCB_DB_CCB novalue,
; 0416 DTESTP : DTE_DB novalue,
; 0417 DTESTR : DTE_DB novalue,
; 0418 DTETIM : MCB_DB_MOD novalue,
; 0419 DTEXME : MCB_DB_CCB_MOD novalue,
; 0420 EXMHSG : EXDP_LINKAGE,
; 0421 EXMHSM : EXDP_LINKAGE,
; 0422 EXMMYG : EXDP_LINKAGE,
; 0423 EXMMYH : EXDP_LINKAGE,
; 0424 GET_HIS_STATUS : EXM_LINKAGE novalue,
; 0425 GETCOM : DTE_DB novalue,
; 0426 INITIALIZATION_REQUESTED : DTE_DB,
; 0427 NEW_RCB : DTE_DB novalue,
; 0428 PARAMETER_DEVICE_REGISTERS : DTE_REG novalue,
; 0429 PAUSED : DTE_DB,
; 0430 PROTOCOL_BROKEN : DTE_DB novalue,
; 0431 PRTDEP : EXDP_LINKAGE,
; 0432 PRTEXM : EXDP_LINKAGE,
; 0433 RECEIVE_MESSAGE : DTE_DB novalue,
; 0434 RECEIVE_SEGMENT : DTE_DB novalue,
; 0435 SCHEDULE_PERSISTENT_AST : DTE_CCB_DB novalue,
; 0436 SCHEDULE_RECEIVE : DTE_CCB_DB novalue,
; 0437 SCHEDULE_STATE_AST : DTE_CCB_DB novalue,
; 0438 SCHEDULE_TRANSIENT_AST : DTE_CCB_DB novalue,
; 0439 SCHEDULE_TRANSMIT : DTE_CCB_DB_STS novalue,
; 0440 SEND_PERSISTENT_ERROR : DTE_DB_STS novalue,
; 0441 SEND_STATE : DTE_DB novalue,
; 0442 SEND_TRANSIENT_ERROR : DTE_DB_STS novalue,
; 0443 TIMCCB : MCB_DB_CCB novalue,
; 0444 TIMLTM : MCB_DB novalue,
; 0445 TIMPIN : MCB_DB novalue,
; 0446 TIMPWF : MCB_DB novalue,
; 0447 TIMRDB : MCB_DB_CCB novalue,
; 0448 TRANSMIT_MESSAGE : DTE_DB novalue,
; 0449 TRANSMIT_SEGMENT : DTE_DB novalue,
; 0450 T10DON : DTE_DB novalue,
; 0451 T11DON : DTE_DB novalue,
; 0452 WTEXDP : DTE_DB_DTE;
; 0453
; 0454 global bind routine
; 0455 DTEIN = DTE_INTERRUPT : MCB_INTERRUPT novalue;
; 0456
; 0457 !
; 0458 ! MACROS:
; 0459 !
; 0460
; 0461 macro
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 5
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (1)
; M 0462 FLUSH_QUEUE (QUEUE, RETURN_CALL) =
; M 0463 while 1 eql 1 do
; M 0464 begin
; M 0465
; M 0466 local
; M 0467 CCB;
; M 0468
; M 0469 if not CMQRM$ (QUEUE, CCB) then exitloop;
; M 0470
; M 0471 RETURN_CALL (.CCB %if not %null (%remaining) %then , %remaining %fi);
; 0472 end %;
; 0473
; 0474 macro
; 0475 !
; 0476 ! Add the specified value to an 18 bit address in the data base
; 0477 !
; M 0478 PHYSICAL_ADD (DB, FLD, VALUE) =
; M 0479 begin
; M 0480
; M 0481 builtin
; M 0482 rot;
; M 0483
; M 0484 if rot (DB [$SUB_FIELD (FLD, PHYSICAL_LOW)] =
; M 0485 .DB [$SUB_FIELD (FLD, PHYSICAL_LOW)] + VALUE, 1)
; M 0486 then
; M 0487 DB [$SUB_FIELD (FLD, PHYSICAL_HIGH)] =
; M 0488 .DB [$SUB_FIELD (FLD, PHYSICAL_HIGH)] + 1;
; M 0489
; 0490 end %;
; 0491
; 0492 macro
; 0493 !
; 0494 ! Produce a mask for the given field
; 0495 !
; M 0496 DTE_BIT [FLD] =
; 0497 (1^%fieldexpand (FLD, 2) - 1)^%fieldexpand (FLD, 1) %,
; 0498 !
; 0499 ! Set the buss extension bits and the delay count
; 0500 !
; M 0501 DTE_EXT (CSR, BITS) =
; M 0502 begin
; M 0503
; M 0504 field
; M 0505 DLYOFF = [-%fieldexpand (DLYCNT, 0), 0, 16, 0],
; M 0506 DLYWRD = [0, 0, 16, 0];
; M 0507
; M 0508 bind
; M 0509 REG = CSR : block volatile;
; M 0510
; M 0511 local
; M 0512 VALUE : block [1] FIELD (DLYWRD);
; M 0513
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 6
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (1)
; M 0514 VALUE [DLYWRD] = 0;
; M 0515 VALUE [$SUB_FIELD (DLYOFF, BUSEXT)] = BITS;
; M 0516 REG [$SUB_FIELD (DLYCNT, DLYWRD)] = .VALUE [DLYWRD];
; 0517 end %,
; 0518 !
; 0519 ! Reset the DTE
; 0520 !
; M 0521 DTE_RESET (CSR) =
; M 0522 begin
; M 0523
; M 0524 bind
; M 0525 REG = CSR : block volatile field (DIAG2);
; M 0526
; M 0527 REG [DIAG2] = DTE_BIT (DRESET)
; 0528 end %,
; 0529 !
; 0530 ! Check if the TO-11 doorbell is ringing
; 0531 !
; M 0532 DTE_RINGING (CSR) =
; M 0533 begin
; M 0534
; M 0535 bind
; M 0536 REG = CSR : volatile;
; M 0537
; M 0538 (.REG and DTE_BIT (TO11DB)) neq 0
; 0539 end %,
; 0540 !
; 0541 ! Set the specified bits in the DTE status register
; 0542 !
; M 0543 DTE_SET (CSR) =
; M 0544 begin
; M 0545
; M 0546 bind
; M 0547 REG = CSR : volatile;
; M 0548
; M 0549 REG = +DTE_BIT (%remaining)
; 0550 end %,
; 0551 !
; 0552 ! Test if any of the specified bits are on in the DTE status register
; 0553 !
; M 0554 DTE_TEST (CSR) =
; M 0555 begin
; M 0556
; M 0557 bind
; M 0558 REG = CSR : volatile;
; M 0559
; M 0560 (.REG and +DTE_BIT (%remaining)) neq 0
; 0561 end %;
; 0562
; 0563 !
; 0564 ! EQUATED SYMBOLS:
; 0565 !
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 7
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (1)
; 0566
; 0567 literal
; 0568 TRUE = 1 EQL 1,
; 0569 FALSE = 1 EQL 0,
; 0570 NO_OPERATION = 0;
; 0571
; 0572 literal
; 0573 LCL = 0,
; 0574 RMT = 1;
; 0575
; 0576 global literal
; 0577 %name ('D.LEN') = %fieldexpand (D_XBUF, 0)*%upval;
; 0578
; 0579 macro
; 0580 C_HANDLE = %fieldexpand (C_LIX, 0), 0, 16, 0 %;
; 0581
; 0582 !
; 0583 ! OWN STORAGE:
; 0584 !
; 0585
; 0586 external routine
; 0587 $DSPCR : novalue;
; 0588
; P 0589 $MCB_PROCESS (
; P 0590 NAME = DTE, ! Process name
; P 0591 DLC_DISPATCH = TABLE$ ($DSPCR, FC_CCP, ! DLL interface dispatch vector
; P 0592 (FC_CTL, DTECTL), ! Control functions
; P 0593 (FC_XME, DTEXME), ! Transmit functions
; P 0594 (FC_RCE, DTERCE), ! Receive buffer returns
; 0595 (FC_TIM, DTETIM))) ! Timeout
; 0596
; 0597 external routine
; 0598 DTENM : MCB_CCB novalue;
; 0599
; 0600 !
; 0601 ! EXTERNAL REFERENCES:
; 0602 !
; 0603
; 0604 external routine
; 0605 DTEDBI : novalue,
; 0606 DTEDVI,
; 0607 DTENMI;
; 0608
; 0609 external
; 0610 MCB$GA_PROCESS_DISPATCH : ref vector,
; 0611 MCB$GAW_PROCESS_DATA_BASE : vector [2],
; 0612 MCB$GW_PROCESS_HANDLE,
; 0613 MCB$GW_RDB_SIZE; ! Size of RDB buffer.
; 0614
; 0615 bind
; 0616 DB_BIAS = MCB$GAW_PROCESS_DATA_BASE [0];
; 0617
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 8
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (1)
; 0618 macro
; M 0619 GET_DTE_DATA_BASE (NAME) =
; M 0620 %if %declared (NAME)
; M 0621 %then map NAME : ref
; M 0622 %else bind NAME = .MCB$GAW_PROCESS_DATA_BASE [1] :
; 0623 %fi block field (D_FIELDS); %;
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 9
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (2)
; 0624 routine ANSWER_DOORBELL (DB) : DTE_DB novalue =
; 0625
; 0626 !++
; 0627 ! FUNCTIONAL DESCRIPTION:
; 0628 !
; 0629 !
; 0630 ! FORMAL PARAMETERS:
; 0631 ! DB = address of DTE data base.
; 0632 !
; 0633 ! IMPLICIT INPUTS:
; 0634 ! None
; 0635 !
; 0636 ! IMPLICIT OUTPUTS:
; 0637 ! None
; 0638 !
; 0639 ! ROUTINE VALUE:
; 0640 ! COMPLETION CODES:
; 0641 ! None
; 0642 !
; 0643 ! SIDE EFFECTS:
; 0644 ! None
; 0645 !--
; 0646
; 0647 begin
; 0648 GET_DTE_DATA_BASE (DB)
; 0649 CLEAR_DOORBELL (DB [D_TIM]);
; 0650
; 0651 case .DB [D_PROTOCOL_STATE] from DS_STA_LOW to DS_STA_HIGH of
; 0652 set
; 0653
; 0654 [DS_INITIALIZING] :
; 0655
; 0656 if .DB [$SUB_FIELD (D_RST, V)]
; 0657 then
; 0658
; 0659 if .DB [$SUB_FIELD (D_RST, I)]
; 0660 then
; 0661 begin
; 0662 ! *************** Protocol deviation ******************
; 0663 ! Our INIT bit is on, and would normally be turned off.
; 0664 ! But the -20 never expects us to initialize protocol,
; 0665 ! so we must leave our init bit on until he drops his.
; 0666 ! *****************************************************
; 0667 DEPMYH (DB [D_TIM], STATUS, DB [D_XST]);
; 0668 DTE_SET (.DB [D_REGISTER], INT10S, INTRON);
; 0669 DB [D_LONG_TIMER] = DTE_K_START_TIMEOUT;
; 0670 end
; 0671 else
; 0672 begin
; 0673
; 0674 if .DB [$SUB_FIELD (D_XST, I)]
; 0675 then
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 10
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (2)
; 0676 begin
; 0677 DB [$SUB_FIELD (D_XST, I)] = 0;
; 0678 DEPMYH (DB [D_TIM], STATUS, DB [D_XST]);
; 0679 DTE_SET (.DB [D_REGISTER], INT10S, INTRON);
; 0680 DB [D_LONG_TIMER] = DTE_K_START_TIMEOUT;
; 0681 CHANGE_PROTOCOL_STATE (DB [D_TIM], DS_RUNNING, LCL);
; 0682 end
; 0683 else
; 0684 CHANGE_PROTOCOL_STATE (DB [D_TIM], DS_RUNNING, RMT);
; 0685
; 0686 TRANSMIT_MESSAGE (DB [D_TIM]);
; 0687 RECEIVE_MESSAGE (DB [D_TIM]);
; 0688 end;
; 0689
; 0690 [DS_RUNNING] :
; 0691
; 0692 if not PAUSED (DB [D_TIM])
; 0693 then
; 0694
; 0695 if not INITIALIZATION_REQUESTED (DB [D_TIM])
; 0696 then
; 0697 RECEIVE_MESSAGE (DB [D_TIM]);
; 0698
; 0699 [DS_PAUSED] :
; 0700
; 0701 if .DB [$SUB_FIELD (D_RST, V)]
; 0702 then
; 0703 begin
; 0704 CHANGE_PROTOCOL_STATE (DB [D_TIM], DS_RUNNING, RMT);
; 0705
; 0706 if not INITIALIZATION_REQUESTED (DB [D_TIM])
; 0707 then
; 0708 RECEIVE_MESSAGE (DB [D_TIM]);
; 0709
; 0710 end;
; 0711
; 0712 [inrange] :
; 0713 NO_OPERATION;
; 0714
; 0715 tes;
; 0716
; 0717 end; !of routine ANSWER_DOORBELL
.TITLE DTE
.IDENT /X01560/
000000 .PSECT ......, D
000000 016045 HEADER: .RAD50 /DTE/
000002 000403 .WORD 403
000004 000000 .WORD 0
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 11
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (2)
000006 000000 .WORD 0
000010 000000 .WORD 0
000012 000000G .WORD .DSPCR
000014 000000' .WORD P.AAA
000016 000000G .WORD .DSPCR
000020 000000G .WORD MCB$V0
000022 000000G .WORD MCB$V1
000024 140310 .WORD 140310
000026 143716 .WORD 143716
000030 001400 .WORD 1400
000032 000000 .WORD 0
000034 000000 .WORD 0
000036 000000 .WORD 0
000000 .PSECT $PLIT$, RO , D
000000 000000G P.AAA: .WORD $DSPCR
000002 000000V .WORD DTEXME
000004 000000V .WORD DTERCE
000006 000000G .WORD $DSPCR
000010 000000V .WORD DTECTL
000012 000000V .WORD DTETIM
000014 000000G .WORD $DSPCR
000016 000000G .WORD $DSPCR
000020 000000G .WORD $DSPCR
000022 000000G .WORD $DSPCR
.GLOBL $DSPCR, .DSPCR, MCB$V0, MCB$V1
.GLOBL DTENM, DTEDBI, DTEDVI, DTENMI
.GLOBL .CRDSP, .CRDAT, .CRPIX, .RDBSZ
000174 D.LEN== 174
.SBTTL ANSWER.DOORBELL
000000 .PSECT $CODE$, RO
000000 004767 000000V ANSWER.DOORBELL:
JSR PC,CLEAR.DOORBELL ; 0649
000004 116500 000012 MOVB 12(R5),R0 ; *(DB),* 0651
000010 006300 ASL R0
000012 066007 000024' ADD P.AAB(R0),PC ; Case dispatch
000016 132765 000001 000062 1$: BITB #1,62(R5) ; *,*(DB) 0656
000024 001521 BEQ 9$
000026 132765 000002 000062 BITB #2,62(R5) ; *,*(DB) 0659
000034 001417 BEQ 2$
000036 010500 MOV R5,R0 ; DB,* 0667
000040 062700 000072 ADD #72,R0
000044 012702 000002 MOV #2,R2
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 12
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (2)
000050 010003 MOV R0,R3
000052 004767 000000V JSR PC,DEPMYH
000056 012775 000440 000002 MOV #440,@2(R5) ; *,*(DB) 0668
000064 112765 000005 000020 MOVB #5,20(R5) ; *,*(DB) 0669
000072 000207 RTS PC ; 0659
000074 132765 000002 000076 2$: BITB #2,76(R5) ; *,*(DB) 0674
000102 001425 BEQ 3$
000104 142765 000002 000076 BICB #2,76(R5) ; *,*(DB) 0677
000112 010500 MOV R5,R0 ; DB,* 0678
000114 062700 000072 ADD #72,R0
000120 012702 000002 MOV #2,R2
000124 010003 MOV R0,R3
000126 004767 000000V JSR PC,DEPMYH
000132 012775 000440 000002 MOV #440,@2(R5) ; *,*(DB) 0679
000140 112765 000005 000020 MOVB #5,20(R5) ; *,*(DB) 0680
000146 012746 000003 MOV #3,-(SP) ; 0681
000152 005046 CLR -(SP)
000154 000404 BR 4$
000156 012746 000003 3$: MOV #3,-(SP) ; 0684
000162 012746 000001 MOV #1,-(SP)
000166 004767 000000V 4$: JSR PC,CHANGE.PROTOCOL.STATE
000172 004767 000000V JSR PC,TRANSMIT.MESSAGE ; 0686
000176 000431 BR 7$ ; 0687
000200 004767 000000V 5$: JSR PC,PAUSED ; 0692
000204 006000 ROR R0
000206 103430 BLO 9$
000210 004767 000000V JSR PC,INITIALIZATION.REQUESTED ; 0695
000214 006000 ROR R0
000216 103424 BLO 9$
000220 004767 000000V JSR PC,RECEIVE.MESSAGE ; 0697
000224 000207 RTS PC ; 0651
000226 132765 000001 000062 6$: BITB #1,62(R5) ; *,*(DB) 0701
000234 001415 BEQ 9$
000236 012746 000003 MOV #3,-(SP) ; 0704
000242 012746 000001 MOV #1,-(SP)
000246 004767 000000V JSR PC,CHANGE.PROTOCOL.STATE
000252 004767 000000V JSR PC,INITIALIZATION.REQUESTED ; 0706
000256 006000 ROR R0
000260 103402 BLO 8$
000262 004767 000000V 7$: JSR PC,RECEIVE.MESSAGE ; 0708
000266 022626 8$: CMP (SP)+,(SP)+ ; 0703
000270 000207 9$: RTS PC ; 0624
; Routine Size: 93 words, Routine Base: $CODE$ + 0000
; Maximum stack depth per invocation: 3 words
000024 .PSECT $PLIT$, RO , D
P.AAB: ; CASE Table for ANSWER.DOORBELL+0012 0651
000024 000252 .WORD 252 ; [9$]
000026 000252 .WORD 252 ; [9$]
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 13
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (2)
000030 000000 .WORD 0 ; [1$]
000032 000162 .WORD 162 ; [5$]
000034 000210 .WORD 210 ; [6$]
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 14
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (3)
; 0718 routine CHANGE_PROTOCOL_STATE (DB, STATE, REASON) : DTE_DB novalue =
; 0719
; 0720 !++
; 0721 ! FUNCTIONAL DESCRIPTION:
; 0722 !
; 0723 !
; 0724 ! FORMAL PARAMETERS:
; 0725 ! DB = address of DTE data base.
; 0726 !
; 0727 ! IMPLICIT INPUTS:
; 0728 ! None
; 0729 !
; 0730 ! IMPLICIT OUTPUTS:
; 0731 ! None
; 0732 !
; 0733 ! ROUTINE VALUE:
; 0734 ! COMPLETION CODES:
; 0735 ! None
; 0736 !
; 0737 ! SIDE EFFECTS:
; 0738 ! None
; 0739 !--
; 0740
; 0741 begin
; 0742 GET_DTE_DATA_BASE (DB)
; 0743 DB [D_PROTOCOL_STATE] = .STATE;
; 0744 SEND_STATE (DB [D_TIM]);
; 0745 end; !of routine CHANGE_PROTOCOL_STATE
.SBTTL CHANGE.PROTOCOL.STATE
000272 .PSECT $CODE$, RO
000000 116665 000004 000012 CHANGE.PROTOCOL.STATE:
MOVB 4(SP),12(R5) ; STATE,*(DB) 0743
000006 004767 000000V JSR PC,SEND.STATE ; 0744
000012 000207 RTS PC ; 0718
; Routine Size: 6 words, Routine Base: $CODE$ + 0272
; Maximum stack depth per invocation: 1 word
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 15
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (4)
; 0746 routine CLEAR_DOORBELL (DB) : DTE_DB =
; 0747
; 0748 !++
; 0749 ! FUNCTIONAL DESCRIPTION:
; 0750 !
; 0751 !
; 0752 ! FORMAL PARAMETERS:
; 0753 ! DB = address of DTE data base.
; 0754 !
; 0755 ! IMPLICIT INPUTS:
; 0756 ! None
; 0757 !
; 0758 ! IMPLICIT OUTPUTS:
; 0759 ! None
; 0760 !
; 0761 ! ROUTINE VALUE:
; 0762 ! COMPLETION CODES:
; 0763 ! None
; 0764 !
; 0765 ! SIDE EFFECTS:
; 0766 ! None
; 0767 !--
; 0768
; 0769 begin
; 0770 GET_DTE_DATA_BASE (DB)
; 0771
; 0772 local
; 0773 STATUS;
; 0774
; 0775 STATUS = FALSE;
; 0776
; 0777 do
; 0778 begin
; 0779 DTE_SET (.DB [D_REGISTER], INT11C);
; 0780
; 0781 if not DTE_RINGING (.DB [D_REGISTER]) then return STATUS = TRUE;
; 0782
; 0783 end
; 0784 until (STATUS = .STATUS - 1) eql FALSE;
; 0785
; 0786 COUNTER_INCREMENT (DB, D_DOORBELL_STUCK);
; 0787 COUNTER_INCREMENT (DB, D_DEVICE_SERVICE_ERRORS);
; 0788 .STATUS
; 0789 end; !of routine CLEAR_DOORBELL
.GLOBL $IC8
.SBTTL CLEAR.DOORBELL
000000 010546 CLEAR.DOORBELL:
MOV R5,-(SP) ; 0746
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 16
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (4)
000002 005001 CLR R1 ; STATUS 0775
000004 012775 002000 000002 1$: MOV #2000,@2(R5) ; *,*(DB) 0779
000012 032775 004000 000002 BIT #4000,@2(R5) ; *,*(DB) 0781
000020 001003 BNE 2$
000022 012701 000001 MOV #1,R1 ; *,STATUS
000026 000411 BR 3$
000030 077113 2$: SOB R1,1$ ; STATUS,* 0784
000032 052765 040000 000166 BIS #40000,166(R5) ; *,*(DB) 0786
000040 062705 000164 ADD #164,R5 ; *,DB 0787
000044 010500 MOV R5,R0
000046 004767 000000G JSR PC,$IC8
000052 010100 3$: MOV R1,R0 ; STATUS,* 0746
000054 012605 MOV (SP)+,R5
000056 000207 RTS PC
; Routine Size: 24 words, Routine Base: $CODE$ + 0306
; Maximum stack depth per invocation: 2 words
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 17
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (5)
; 0790 routine CTLSTP (DB, CCB) : DTE_DB_CCB novalue =
; 0791
; 0792 !++
; 0793 ! FUNCTIONAL DESCRIPTION:
; 0794 !
; 0795 !
; 0796 ! FORMAL PARAMETERS:
; 0797 ! DB = address of DTE data base.
; 0798 ! CCB = address of CTL/STP CCB.
; 0799 !
; 0800 ! IMPLICIT INPUTS:
; 0801 ! None
; 0802 !
; 0803 ! IMPLICIT OUTPUTS:
; 0804 ! None
; 0805 !
; 0806 ! ROUTINE VALUE:
; 0807 ! COMPLETION CODES:
; 0808 ! None
; 0809 !
; 0810 ! SIDE EFFECTS:
; 0811 ! None
; 0812 !--
; 0813
; 0814 begin
; 0815 GET_DTE_DATA_BASE (DB)
; 0816
; 0817 map
; 0818 CCB : ref block field (C_FIELDS);
; 0819
; 0820 DB [DF_NOTIFY_STATE] = FALSE;
; 0821 DB [D_TRANSIENT_ERROR] = 0;
; 0822 DB [D_PERSISTENT_ERROR] = 0;
; 0823 DB [D_OWNER_HANDLE] = 0;
; 0824 CCB [C_STS] = DLL$_SUCCESS;
; 0825 CCB [C_FNC] = FC_CCP;
; 0826
; 0827 if .DB [D_ACTIVE_BUFFERS] neq 0
; 0828 then
; 0829 begin
; 0830 DB [DF_CONTROL_WAITING] = TRUE;
; 0831 CMQIN$ (DB [D_PENDING_CONTROLS], .CCB);
; 0832 end
; 0833 else
; 0834 $MCB_SCHEDULE_CCB (.CCB);
; 0835
; 0836 end; !of routine CTLSTP
.GLOBL $CMQIN, $SCHED
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 18
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (5)
.SBTTL CTLSTP
000000 042715 004000 CTLSTP: BIC #4000,(R5) ; *,DB 0820
000004 005065 000024 CLR 24(R5) ; *(DB) 0821
000010 005065 000026 CLR 26(R5) ; *(DB) 0822
000014 005065 000022 CLR 22(R5) ; *(DB) 0823
000020 012764 100001 000014 MOV #-77777,14(R4) ; *,*(CCB) 0824
000026 112764 000022 000012 MOVB #22,12(R4) ; *,*(CCB) 0825
000034 005765 000034 TST 34(R5) ; *(DB) 0827
000040 001410 BEQ 1$
000042 052715 010000 BIS #10000,(R5) ; *,DB 0830
000046 012703 000030 MOV #30,R3 ; 0831
000052 060503 ADD R5,R3 ; DB,*
000054 004767 000000G JSR PC,$CMQIN
000060 000207 RTS PC ; 0827
000062 004767 000000G 1$: JSR PC,$SCHED ; 0834
000066 000207 RTS PC ; 0790
; Routine Size: 28 words, Routine Base: $CODE$ + 0366
; Maximum stack depth per invocation: 1 word
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 19
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (6)
; 0837 routine CTLSTR (DB, CCB) : DTE_DB_CCB novalue =
; 0838
; 0839 !++
; 0840 ! FUNCTIONAL DESCRIPTION:
; 0841 !
; 0842 !
; 0843 ! FORMAL PARAMETERS:
; 0844 ! DB = address of DTE data base.
; 0845 ! CCB = address of CTL/STP CCB.
; 0846 !
; 0847 ! IMPLICIT INPUTS:
; 0848 ! None
; 0849 !
; 0850 ! IMPLICIT OUTPUTS:
; 0851 ! None
; 0852 !
; 0853 ! ROUTINE VALUE:
; 0854 ! COMPLETION CODES:
; 0855 ! None
; 0856 !
; 0857 ! SIDE EFFECTS:
; 0858 ! None
; 0859 !--
; 0860
; 0861 begin
; 0862 GET_DTE_DATA_BASE (DB)
; 0863
; 0864 map
; 0865 CCB : ref block field (C_FIELDS);
; 0866
; 0867 bind
; P 0868 STATUS = TABLE$ (0, 0,
; P 0869 (DS_HALTED^1, DLL$_STATE_OFF),
; P 0870 (DS_COM^1, DLL$_STATE_SYNCHRONIZING),
; P 0871 (DS_INITIALIZING^1, DLL$_STATE_SYNCHRONIZING),
; P 0872 (DS_RUNNING^1, DLL$_STATE_RUNNING),
; 0873 (DS_PAUSED^1, DLL$_STATE_RUNNING)) : vector [5];
; 0874
; 0875 DB [D_OWNER_HANDLE] = .CCB [C_HANDLE];
; 0876
; 0877 if .CCB [C_PRM1] eql 0
; 0878 then
; 0879 CCB [C_PRM1] = .DB [D_CIRCUIT_COST];
; 0880
; 0881 CCB [C_STS] = CURRENT_STATUS (DB [D_TIM]);
; 0882 CCB [C_FNC] = FC_CCP;
; 0883 $MCB_SCHEDULE_CCB (.CCB);
; 0884 end; !of routine CTLSTR
000036 .PSECT $PLIT$, RO , D
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 20
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (6)
000036 100043 P.AAC: .WORD -77735
000040 100053 .WORD -77725
000042 100053 .WORD -77725
000044 100063 .WORD -77715
000046 100063 .WORD -77715
000036' STATUS= P.AAC
.SBTTL CTLSTR
000456 .PSECT $CODE$, RO
000000 016465 000010 000022 CTLSTR: MOV 10(R4),22(R5) ; *(CCB),*(DB) 0875
000006 012700 000024 MOV #24,R0 ; 0877
000012 060400 ADD R4,R0 ; CCB,*
000014 005710 TST (R0)
000016 001002 BNE 1$
000020 016510 000036 MOV 36(R5),(R0) ; *(DB),* 0879
000024 004767 000000V 1$: JSR PC,CURRENT.STATUS ; 0881
000030 010064 000014 MOV R0,14(R4) ; *,*(CCB)
000034 112764 000022 000012 MOVB #22,12(R4) ; *,*(CCB) 0882
000042 004767 000000G JSR PC,$SCHED ; 0883
000046 000207 RTS PC ; 0837
; Routine Size: 20 words, Routine Base: $CODE$ + 0456
; Maximum stack depth per invocation: 1 word
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 21
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (7)
; 0885 routine CURRENT_STATUS (DB) : LINKAGE_DB =
; 0886
; 0887 !++
; 0888 ! FUNCTIONAL DESCRIPTION:
; 0889 !
; 0890 !
; 0891 ! FORMAL PARAMETERS:
; 0892 ! DB = address of DTE data base.
; 0893 !
; 0894 ! IMPLICIT INPUTS:
; 0895 ! None
; 0896 !
; 0897 ! IMPLICIT OUTPUTS:
; 0898 ! None
; 0899 !
; 0900 ! ROUTINE VALUE:
; 0901 ! COMPLETION CODES:
; 0902 ! None
; 0903 !
; 0904 ! SIDE EFFECTS:
; 0905 ! None
; 0906 !--
; 0907
; 0908 begin
; 0909 GET_DTE_DATA_BASE (DB)
; 0910
; 0911 literal
; 0912 DLL_OFF = 0,
; 0913 DLL_SYNCHRONIZING = 1,
; 0914 DLL_RUNNING = 2,
; 0915 DLL_MAINTENANCE = 3;
; 0916
; 0917 bind
; P 0918 REPORT_STATUS = TABLE$ (0, 0,
; P 0919 (DS_HALTED^1, DLL_OFF),
; P 0920 (DS_COM^1, DLL_SYNCHRONIZING),
; P 0921 (DS_INITIALIZING^1, DLL_SYNCHRONIZING),
; P 0922 (DS_RUNNING^1, DLL_RUNNING),
; 0923 (DS_PAUSED^1, DLL_RUNNING)) : vector,
; P 0924 DLL_STATUS = TABLE$ (0, 0,
; P 0925 (DLL_OFF^1, DLL$_STATE_OFF),
; P 0926 (DLL_SYNCHRONIZING^1, DLL$_STATE_SYNCHRONIZING),
; P 0927 (DLL_RUNNING^1, DLL$_STATE_RUNNING),
; 0928 (DLL_MAINTENANCE^1, DLL$_STATE_MAINTENANCE)) : vector;
; 0929
; 0930 if .DB [DF_NOTIFY_OFF]
; 0931 then
; 0932 begin
; 0933 DB [DF_NOTIFY_OFF] = FALSE;
; 0934
; 0935 if .DB [D_PROTOCOL_STATE] eql DS_HALTED
; 0936 then
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 22
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (7)
; 0937 DB [DF_NOTIFY_STATE] = FALSE;
; 0938
; 0939 return .DLL_STATUS [DB [D_REPORTED_STATE] = DLL_OFF];
; 0940 end;
; 0941
; 0942 DB [DF_NOTIFY_STATE] = FALSE;
; 0943 .DLL_STATUS [DB [D_REPORTED_STATE] = .REPORT_STATUS [.DB [D_PROTOCOL_STATE]]]
; 0944 end; !of routine CURRENT_STATUS
000050 .PSECT $PLIT$, RO , D
000050 000000 P.AAD: .WORD 0
000052 000001 .WORD 1
000054 000001 .WORD 1
000056 000002 .WORD 2
000060 000002 .WORD 2
000062 100043 P.AAE: .WORD -77735
000064 100053 .WORD -77725
000066 100063 .WORD -77715
000070 100073 .WORD -77705
000050' REPORT.STATUS= P.AAD
000062' DLL.STATUS= P.AAE
.SBTTL CURRENT.STATUS
000526 .PSECT $CODE$, RO
000000 010546 CURRENT.STATUS:
MOV R5,-(SP) ; 0885
000002 010500 MOV R5,R0 ; *,DB
000004 032710 002000 BIT #2000,(R0) ; *,DB 0930
000010 001414 BEQ 2$
000012 042710 002000 BIC #2000,(R0) ; *,DB 0933
000016 105760 000012 TSTB 12(R0) ; *(DB) 0935
000022 001002 BNE 1$
000024 042710 004000 BIC #4000,(R0) ; *,DB 0937
000030 105060 000014 1$: CLRB 14(R0) ; *(DB) 0939
000034 016700 000062' MOV DLL.STATUS,R0 ; 0932
000040 000414 BR 3$
000042 042710 004000 2$: BIC #4000,(R0) ; *,DB 0942
000046 116005 000012 MOVB 12(R0),R5 ; *(DB),* 0943
000052 006305 ASL R5
000054 016505 000050' MOV REPORT.STATUS(R5),R5
000060 110560 000014 MOVB R5,14(R0) ; *,*(DB)
000064 006305 ASL R5
000066 016500 000062' MOV DLL.STATUS(R5),R0 ; 0885
000072 012605 3$: MOV (SP)+,R5
000074 000207 RTS PC
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 23
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (7)
; Routine Size: 31 words, Routine Base: $CODE$ + 0526
; Maximum stack depth per invocation: 2 words
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 24
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (8)
; 0945 routine DEPMYG (DB, OFFSET, BUFFER) : EXDP_LINKAGE =
; 0946
; 0947 !++
; 0948 ! FUNCTIONAL DESCRIPTION:
; 0949 !
; 0950 !
; 0951 ! FORMAL PARAMETERS:
; 0952 ! DB = address of DTE data base.
; 0953 ! OFFSET = comm/region offset.
; 0954 ! BUFFER = address of 3 word buffer of data to deposit.
; 0955 !
; 0956 ! IMPLICIT INPUTS:
; 0957 ! None
; 0958 !
; 0959 ! IMPLICIT OUTPUTS:
; 0960 ! None
; 0961 !
; 0962 ! ROUTINE VALUE:
; 0963 ! COMPLETION CODES:
; 0964 ! None
; 0965 !
; 0966 ! SIDE EFFECTS:
; 0967 ! None
; 0968 !--
; 0969
; 0970 begin
; 0971 GET_DTE_DATA_BASE (DB)
; 0972 PRTDEP (DB [D_TIM], .OFFSET, .BUFFER)
; 0973 end; !of routine DEPMYG
.SBTTL DEPMYG
000000 004767 000000V DEPMYG: JSR PC,PRTDEP ; 0972
000004 000207 RTS PC ; 0945
; Routine Size: 3 words, Routine Base: $CODE$ + 0624
; Maximum stack depth per invocation: 1 word
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 25
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (9)
; 0974 routine DEPMYH (DB, OFFSET, BUFFER) : EXDP_LINKAGE =
; 0975
; 0976 !++
; 0977 ! FUNCTIONAL DESCRIPTION:
; 0978 !
; 0979 !
; 0980 ! FORMAL PARAMETERS:
; 0981 ! DB = address of DTE data base.
; 0982 ! OFFSET = comm/region offset.
; 0983 ! BUFFER = address of 3 word buffer of data to deposit.
; 0984 !
; 0985 ! IMPLICIT INPUTS:
; 0986 ! None
; 0987 !
; 0988 ! IMPLICIT OUTPUTS:
; 0989 ! None
; 0990 !
; 0991 ! ROUTINE VALUE:
; 0992 ! COMPLETION CODES:
; 0993 ! None
; 0994 !
; 0995 ! SIDE EFFECTS:
; 0996 ! None
; 0997 !--
; 0998
; 0999 begin
; 1000 GET_DTE_DATA_BASE (DB)
; 1001 PRTDEP (DB [D_TIM], .OFFSET + .DB [D_DMH], .BUFFER)
; 1002 end; !of routine DEPMYH
.SBTTL DEPMYH
000000 066502 000054 DEPMYH: ADD 54(R5),R2 ; *(DB),* 1001
000004 004767 000000V JSR PC,PRTDEP
000010 000207 RTS PC ; 0974
; Routine Size: 5 words, Routine Base: $CODE$ + 0632
; Maximum stack depth per invocation: 1 word
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 26
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (10)
; 1003 routine DEVICE_BROKEN (DB) : DTE_DB novalue =
; 1004
; 1005 !++
; 1006 ! FUNCTIONAL DESCRIPTION:
; 1007 !
; 1008 !
; 1009 ! FORMAL PARAMETERS:
; 1010 ! DB = address of DTE data base.
; 1011 !
; 1012 ! IMPLICIT INPUTS:
; 1013 ! None
; 1014 !
; 1015 ! IMPLICIT OUTPUTS:
; 1016 ! None
; 1017 !
; 1018 ! ROUTINE VALUE:
; 1019 ! COMPLETION CODES:
; 1020 ! None
; 1021 !
; 1022 ! SIDE EFFECTS:
; 1023 ! None
; 1024 !--
; 1025
; 1026 begin
; 1027 GET_DTE_DATA_BASE (DB)
; 1028 DTESTP (DB [D_TIM]);
; 1029 end; !of routine DEVICE_BROKEN
.SBTTL DEVICE.BROKEN
000000 004767 000000V DEVICE.BROKEN:
JSR PC,DTESTP ; 1028
000004 000207 RTS PC ; 1003
; Routine Size: 3 words, Routine Base: $CODE$ + 0644
; Maximum stack depth per invocation: 1 word
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 27
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (11)
; 1030 routine DLLINI (DB, CCB) : DTE_DB_CCB novalue =
; 1031
; 1032 !++
; 1033 ! FUNCTIONAL DESCRIPTION:
; 1034 !
; 1035 !
; 1036 ! FORMAL PARAMETERS:
; 1037 ! DB = address of DTE data base.
; 1038 ! CCB = address of CCB.
; 1039 !
; 1040 ! IMPLICIT INPUTS:
; 1041 ! None
; 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 GET_DTE_DATA_BASE (DB)
; 1056
; 1057 map
; 1058 CCB : ref block field (C_FIELDS);
; 1059
; 1060 if .DB [D_PROTOCOL_STATE] neq DS_HALTED
; 1061 then
; 1062 DTESTP (DB [D_TIM]);
; 1063
; 1064 DB [D_REQUESTED_STATE] = DS_RUNNING;
; 1065
; 1066 if .DB [D_LINE_STATE] eql DL_ON
; 1067 then
; 1068 DTESTR (DB [D_TIM]);
; 1069
; 1070 CCB [C_FNC] = FC_XCP;
; 1071 CCB [C_STS] = DLL$_SUCCESS;
; 1072 $MCB_SCHEDULE_CCB (.CCB);
; 1073
; 1074 if .DB [D_DEVICE_STATE] eql DD_CLEARED
; 1075 then
; 1076 begin
; 1077 SEND_PERSISTENT_ERROR (DB [D_TIM], DLL$_DEVICE_OPERATION_ERROR);
; 1078 SEND_STATE (DB [D_TIM]);
; 1079 end;
; 1080
; 1081 end; !of routine DLLINI
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 28
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (11)
.SBTTL DLLINI
000000 010446 DLLINI: MOV R4,-(SP) ; 1030
000002 012746 000012 MOV #12,-(SP) ; 1060
000006 060516 ADD R5,(SP) ; DB,*
000010 105776 000000 TSTB @0(SP)
000014 001402 BEQ 1$
000016 004767 000000V JSR PC,DTESTP ; 1062
000022 042776 177400 000000 1$: BIC #177400,@0(SP) ; 1064
000030 052776 001400 000000 BIS #1400,@0(SP)
000036 105765 000015 TSTB 15(R5) ; *(DB) 1066
000042 001002 BNE 2$
000044 004767 000000V JSR PC,DTESTR ; 1068
000050 016600 000002 2$: MOV 2(SP),R0 ; 1070
000054 112760 000014 000012 MOVB #14,12(R0)
000062 012760 100001 000014 MOV #-77777,14(R0) ; 1071
000070 010004 MOV R0,R4 ; 1072
000072 004767 000000G JSR PC,$SCHED
000076 105765 000016 TSTB 16(R5) ; *(DB) 1074
000102 001006 BNE 3$
000104 012700 100174 MOV #-77604,R0 ; 1077
000110 004767 000000V JSR PC,SEND.PERSISTENT.ERROR
000114 004767 000000V JSR PC,SEND.STATE ; 1078
000120 022626 3$: CMP (SP)+,(SP)+ ; 1030
000122 000207 RTS PC
; Routine Size: 42 words, Routine Base: $CODE$ + 0652
; Maximum stack depth per invocation: 3 words
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 29
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (12)
; 1082 routine DLLMOP (DB, CCB) : DTE_DB_CCB novalue =
; 1083
; 1084 !++
; 1085 ! FUNCTIONAL DESCRIPTION:
; 1086 !
; 1087 !
; 1088 ! FORMAL PARAMETERS:
; 1089 ! DB = address of DTE data base.
; 1090 ! CCB = address of CCB.
; 1091 !
; 1092 ! IMPLICIT INPUTS:
; 1093 ! None
; 1094 !
; 1095 ! IMPLICIT OUTPUTS:
; 1096 ! None
; 1097 !
; 1098 ! ROUTINE VALUE:
; 1099 ! COMPLETION CODES:
; 1100 ! None
; 1101 !
; 1102 ! SIDE EFFECTS:
; 1103 ! None
; 1104 !--
; 1105
; 1106 begin
; 1107 GET_DTE_DATA_BASE (DB)
; 1108
; 1109 map
; 1110 CCB : ref block field (C_FIELDS);
; 1111
; 1112 CCB [C_FNC] = FC_XCP;
; 1113 CCB [C_STS] = DLL$_NOT_SUPPORTED;
; 1114 $MCB_SCHEDULE_CCB (.CCB);
; 1115 end; !of routine DLLMOP
.SBTTL DLLMOP
000000 112764 000014 000012 DLLMOP: MOVB #14,12(R4) ; *,*(CCB) 1112
000006 012764 100022 000014 MOV #-77756,14(R4) ; *,*(CCB) 1113
000014 004767 000000G JSR PC,$SCHED ; 1114
000020 000207 RTS PC ; 1082
; Routine Size: 9 words, Routine Base: $CODE$ + 0776
; Maximum stack depth per invocation: 1 word
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 30
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (13)
; 1116 routine DLLSTP (DB, CCB) : DTE_DB_CCB novalue =
; 1117
; 1118 !++
; 1119 ! FUNCTIONAL DESCRIPTION:
; 1120 !
; 1121 !
; 1122 ! FORMAL PARAMETERS:
; 1123 ! DB = address of DTE data base.
; 1124 ! CCB = address of CCB.
; 1125 !
; 1126 ! IMPLICIT INPUTS:
; 1127 ! None
; 1128 !
; 1129 ! IMPLICIT OUTPUTS:
; 1130 ! None
; 1131 !
; 1132 ! ROUTINE VALUE:
; 1133 ! COMPLETION CODES:
; 1134 ! None
; 1135 !
; 1136 ! SIDE EFFECTS:
; 1137 ! None
; 1138 !--
; 1139
; 1140 begin
; 1141 GET_DTE_DATA_BASE (DB)
; 1142
; 1143 map
; 1144 CCB : ref block field (C_FIELDS);
; 1145
; 1146 DB [D_REQUESTED_STATE] = DS_HALTED;
; 1147
; 1148 if .DB [D_PROTOCOL_STATE] neq DS_HALTED
; 1149 then
; 1150 DTESTP (DB [D_TIM]);
; 1151
; 1152 CCB [C_FNC] = FC_XCP;
; 1153 CCB [C_STS] = DLL$_SUCCESS;
; 1154 $MCB_SCHEDULE_CCB (.CCB);
; 1155 end; !of routine DLLSTP
.SBTTL DLLSTP
000000 010446 DLLSTP: MOV R4,-(SP) ; 1116
000002 105065 000013 CLRB 13(R5) ; *(DB) 1146
000006 105765 000012 TSTB 12(R5) ; *(DB) 1148
000012 001402 BEQ 1$
000014 004767 000000V JSR PC,DTESTP ; 1150
000020 011600 1$: MOV (SP),R0 ; 1152
000022 112760 000014 000012 MOVB #14,12(R0)
000030 012760 100001 000014 MOV #-77777,14(R0) ; 1153
000036 010004 MOV R0,R4 ; 1154
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 31
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (13)
000040 004767 000000G JSR PC,$SCHED
000044 005726 TST (SP)+ ; 1116
000046 000207 RTS PC
; Routine Size: 20 words, Routine Base: $CODE$ + 1020
; Maximum stack depth per invocation: 2 words
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 32
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (14)
; 1156 routine DLLXMT (DB, CCB) : DTE_DB_CCB novalue =
; 1157
; 1158 !++
; 1159 ! FUNCTIONAL DESCRIPTION:
; 1160 !
; 1161 !
; 1162 ! FORMAL PARAMETERS:
; 1163 ! DB = address of DTE data base.
; 1164 ! CCB = address of transmit CCB.
; 1165 ! MODIFIER = transmit function modifier (from C_MOD of CCB).
; 1166 !
; 1167 ! IMPLICIT INPUTS:
; 1168 ! None
; 1169 !
; 1170 ! IMPLICIT OUTPUTS:
; 1171 ! None
; 1172 !
; 1173 ! ROUTINE VALUE:
; 1174 ! COMPLETION CODES:
; 1175 ! None
; 1176 !
; 1177 ! SIDE EFFECTS:
; 1178 ! None
; 1179 !--
; 1180
; 1181 begin
; 1182 GET_DTE_DATA_BASE (DB)
; 1183
; 1184 map
; 1185 CCB : ref block field (C_FIELDS);
; 1186
; 1187 DB [D_ACTIVE_BUFFERS] = .DB [D_ACTIVE_BUFFERS] + 1;
; 1188
; 1189 case .DB [D_PROTOCOL_STATE] from DS_STA_LOW to DS_STA_HIGH of
; 1190 set
; 1191 [DS_RUNNING, DS_PAUSED] :
; 1192 begin
; 1193 CMQIN$ (DB [D_XMQ], .CCB);
; 1194
; 1195 if .CCB [C_CHN] neqa 0
; 1196 then
; 1197 begin
; 1198
; 1199 local
; 1200 MSG_CNT;
; 1201
; 1202 MSG_CNT = .DB [D_DL_BLK];
; 1203
; 1204 do
; 1205 begin
; 1206
; 1207 if (MSG_CNT = .MSG_CNT - .CCB [C_CNT]) lss 0
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 33
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (14)
; 1208 then
; 1209 SIGNAL_STOP (DTE$_XMT_MTL, .DB [D_DL_BLK]);
; 1210
; 1211 end
; 1212 while (CCB = .CCB [C_CHN]) neqa 0;
; 1213
; 1214 end;
; 1215
; 1216 if .DB [D_PROTOCOL_STATE] eql DS_RUNNING
; 1217 then
; 1218 TRANSMIT_MESSAGE (DB [D_TIM]);
; 1219
; 1220 end;
; 1221 [inrange] :
; 1222 SCHEDULE_TRANSMIT (.CCB, DB [D_TIM], DLL$_ABORTED);
; 1223 tes;
; 1224
; 1225 end; !of routine DLLXMT
.SBTTL DLLXMT
000000 010546 DLLXMT: MOV R5,-(SP) ; 1156
000002 010502 MOV R5,R2 ; *,DB
000004 005262 000034 INC 34(R2) ; *(DB) 1187
000010 116200 000012 MOVB 12(R2),R0 ; *(DB),* 1189
000014 006300 ASL R0
000016 066007 000072' ADD P.AAF(R0),PC ; Case dispatch
000022 010205 1$: MOV R2,R5 ; DB,* 1193
000024 062705 000120 ADD #120,R5
000030 010503 MOV R5,R3
000032 004767 000000G JSR PC,$CMQIN
000036 005764 000002 TST 2(R4) ; *(CCB) 1195
000042 001422 BEQ 4$
000044 016201 000172 MOV 172(R2),R1 ; *(DB),MSG.CNT 1202
000050 166401 000022 2$: SUB 22(R4),R1 ; *(CCB),MSG.CNT 1207
000054 100012 BPL 3$
000056 016246 000172 MOV 172(R2),-(SP) ; *(DB),* 1209
000062 012746 100043 MOV #-77735,-(SP)
000066 012746 000002 MOV #2,-(SP)
000072 004767 000000G JSR PC,$STOP
000076 062706 000006 ADD #6,SP
000102 016404 000002 3$: MOV 2(R4),R4 ; *(CCB),CCB 1212
000106 001360 BNE 2$
000110 126227 000012 000003 4$: CMPB 12(R2),#3 ; *(DB),* 1216
000116 001011 BNE 6$
000120 010205 MOV R2,R5 ; DB,* 1218
000122 004767 000000V JSR PC,TRANSMIT.MESSAGE
000126 000405 BR 6$ ; 1189
000130 010205 5$: MOV R2,R5 ; DB,* 1222
000132 012700 100030 MOV #-77750,R0
000136 004767 000000V JSR PC,SCHEDULE.TRANSMIT
000142 012605 6$: MOV (SP)+,R5 ; 1156
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 34
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (14)
000144 000207 RTS PC
; Routine Size: 51 words, Routine Base: $CODE$ + 1070
; Maximum stack depth per invocation: 5 words
000072 .PSECT $PLIT$, RO , D
P.AAF: ; CASE Table for DLLXMT+0016 1189
000072 000106 .WORD 106 ; [5$]
000074 000106 .WORD 106 ; [5$]
000076 000106 .WORD 106 ; [5$]
000100 000000 .WORD 0 ; [1$]
000102 000000 .WORD 0 ; [1$]
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 35
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (15)
; 1226 routine DTE_INTERRUPT (DB) : MCB_INTERRUPT novalue =
; 1227
; 1228 !++
; 1229 ! FUNCTIONAL DESCRIPTION:
; 1230 !
; 1231 !
; 1232 ! FORMAL PARAMETERS:
; 1233 ! DB = address of DTE data base.
; 1234 !
; 1235 ! IMPLICIT INPUTS:
; 1236 ! None
; 1237 !
; 1238 ! IMPLICIT OUTPUTS:
; 1239 ! None
; 1240 !
; 1241 ! ROUTINE VALUE:
; 1242 ! COMPLETION CODES:
; 1243 ! None
; 1244 !
; 1245 ! SIDE EFFECTS:
; 1246 ! None
; 1247 !--
; 1248
; 1249 begin
; 1250 GET_DTE_DATA_BASE (DB)
; 1251
; 1252 if .DB [DF_SYNCHRONIZING] then return;
; 1253
; 1254 DB [DF_SYNCHRONIZING] = TRUE;
; 1255 SYNCH$ (.DB [D_SYNCH_BLOCK], DTE_SYNCHRONIZE);
; 1256 end; !of routine DTE_INTERRUPT
.GLOBL $SYNCH
.SBTTL DTE.INTERRUPT
001236 .PSECT $CODE$, RO
000000 032715 040000 DTE.INTERRUPT:
BIT #40000,(R5) ; *,DB 1252
000004 001011 BNE 1$
000006 052715 040000 BIS #40000,(R5) ; *,DB 1254
000012 016504 000010 MOV 10(R5),R4 ; *(DB),* 1255
000016 012764 000000V 000004 MOV #DTE.SYNCHRONIZE,4(R4)
000024 004767 000000G JSR PC,$SYNCH
000030 000207 1$: RTS PC ; 1226
; Routine Size: 13 words, Routine Base: $CODE$ + 1236
; Maximum stack depth per invocation: 1 word
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 36
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (16)
; 1257 routine DTE_SYNCHRONIZE (DB) : MCB_DB novalue =
; 1258
; 1259 !++
; 1260 ! FUNCTIONAL DESCRIPTION:
; 1261 !
; 1262 !
; 1263 ! FORMAL PARAMETERS:
; 1264 ! DB = address of DTE data base.
; 1265 !
; 1266 ! IMPLICIT INPUTS:
; 1267 ! None
; 1268 !
; 1269 ! IMPLICIT OUTPUTS:
; 1270 ! None
; 1271 !
; 1272 ! ROUTINE VALUE:
; 1273 ! COMPLETION CODES:
; 1274 ! None
; 1275 !
; 1276 ! SIDE EFFECTS:
; 1277 ! None
; 1278 !--
; 1279
; 1280 begin
; 1281 GET_DTE_DATA_BASE (DB)
; 1282 DB [DF_SYNCHRONIZING] = FALSE;
; 1283
; 1284 case .DB [D_PROTOCOL_STATE] from DS_STA_LOW to DS_STA_HIGH of
; 1285 set
; 1286 [DS_COM] :
; 1287 GETCOM (DB [D_TIM]);
; 1288
; 1289 [DS_RUNNING, DS_PAUSED] :
; 1290
; 1291 if DTE_TEST (.DB [D_REGISTER], TO10ER, TO11ER)
; 1292 then
; 1293 begin
; P 1294 $NM_PLL_EVENT (3, .DB [D_LINE_ENTITY],
; 1295 PARAMETER_DEVICE_REGISTERS (.DB [D_REGISTER]));
; 1296 SEND_PERSISTENT_ERROR (DB [D_TIM], DLL$_DEVICE_OPERATION_ERROR);
; 1297 ! Transfer error.
; 1298 DEVICE_BROKEN (DB [D_TIM]);
; 1299 end
; 1300 else
; 1301 begin
; 1302
; 1303 if DTE_TEST (.DB [D_REGISTER], TO10DN) then T10DON (DB [D_TIM]);
; 1304
; 1305 if DTE_TEST (.DB [D_REGISTER], TO11DN) then T11DON (DB [D_TIM]);
; 1306
; 1307 end;
; 1308
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 37
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (16)
; 1309 [inrange] :
; 1310 NO_OPERATION;
; 1311
; 1312 tes;
; 1313
; 1314 case .DB [D_PROTOCOL_STATE] from DS_STA_LOW to DS_STA_HIGH of
; 1315 set
; 1316 [DS_INITIALIZING, DS_RUNNING, DS_PAUSED] :
; 1317 begin
; 1318 GET_HIS_STATUS (DB [D_TIM]);
; 1319
; 1320 if DTE_RINGING (.DB [D_REGISTER])
; 1321 then
; 1322 ANSWER_DOORBELL (DB [D_TIM]);
; 1323
; 1324 end;
; 1325
; 1326 [inrange] :
; 1327 NO_OPERATION;
; 1328
; 1329 tes;
; 1330
; 1331 if .DB [D_PROTOCOL_STATE] eql DS_RUNNING
; 1332 then
; 1333
; 1334 if not PAUSED (DB [D_TIM])
; 1335 then
; 1336
; 1337 if not INITIALIZATION_REQUESTED (DB [D_TIM])
; 1338 then
; 1339 begin
; 1340 TRANSMIT_MESSAGE (DB [D_TIM]);
; 1341 RECEIVE_MESSAGE (DB [D_TIM]);
; 1342 end;
; 1343
; 1344 end; !of routine DTE_SYNCHRONIZE
.GLOBL $NLBEG, $NLEND
.SBTTL DTE.SYNCHRONIZE
000000 042715 040000 DTE.SYNCHRONIZE:
BIC #40000,(R5) ; *,DB 1282
000004 012746 000012 MOV #12,-(SP) ; 1284
000010 060516 ADD R5,(SP) ; DB,*
000012 117600 000000 MOVB @0(SP),R0
000016 006300 ASL R0
000020 066007 000104' ADD P.AAG(R0),PC ; Case dispatch
000024 004767 000000V 1$: JSR PC,GETCOM ; 1287
000030 000440 BR 5$ ; 1284
000032 016501 000002 2$: MOV 2(R5),R1 ; *(DB),* 1291
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 38
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (16)
000036 032711 020002 BIT #20002,(R1)
000042 001421 BEQ 3$
000044 004767 000000G JSR PC,$NLBEG ; 1295
000050 004767 000000V JSR PC,PLL0
000054 012700 000603 MOV #603,R0
000060 016501 000042 MOV 42(R5),R1 ; *(DB),*
000064 004767 000000G JSR PC,$NLEND
000070 012700 100174 MOV #-77604,R0 ; 1296
000074 004767 000000V JSR PC,SEND.PERSISTENT.ERROR
000100 004767 177250 JSR PC,DEVICE.BROKEN ; 1298
000104 000412 BR 5$ ; 1291
000106 032711 100000 3$: BIT #-100000,(R1) ; 1303
000112 001402 BEQ 4$
000114 004767 000000V JSR PC,T10DON
000120 105775 000002 4$: TSTB @2(R5) ; *(DB) 1305
000124 100002 BPL 5$
000126 004767 000000V JSR PC,T11DON
000132 117600 000000 5$: MOVB @0(SP),R0 ; 1314
000136 006300 ASL R0
000140 066007 000116' ADD P.AAH(R0),PC ; Case dispatch
000144 004767 000000V 6$: JSR PC,GET.HIS.STATUS ; 1318
000150 032775 004000 000002 BIT #4000,@2(R5) ; *,*(DB) 1320
000156 001402 BEQ 7$
000160 004767 176324 JSR PC,ANSWER.DOORBELL ; 1322
000164 127627 000000 000003 7$: CMPB @0(SP),#3 ; 1331
000172 001014 BNE 8$
000174 004767 000000V JSR PC,PAUSED ; 1334
000200 006000 ROR R0
000202 103410 BLO 8$
000204 004767 000000V JSR PC,INITIALIZATION.REQUESTED ; 1337
000210 006000 ROR R0
000212 103404 BLO 8$
000214 004767 000000V JSR PC,TRANSMIT.MESSAGE ; 1340
000220 004767 000000V JSR PC,RECEIVE.MESSAGE ; 1341
000224 005726 8$: TST (SP)+ ; 1257
000226 000207 RTS PC
; Routine Size: 76 words, Routine Base: $CODE$ + 1270
; Maximum stack depth per invocation: 2 words
000104 .PSECT $PLIT$, RO , D
P.AAG: ; CASE Table for DTE.SYNCHRONIZE+0020 1284
000104 000106 .WORD 106 ; [5$]
000106 000000 .WORD 0 ; [1$]
000110 000106 .WORD 106 ; [5$]
000112 000006 .WORD 6 ; [2$]
000114 000006 .WORD 6 ; [2$]
P.AAH: ; CASE Table for DTE.SYNCHRONIZE+0140 1314
000116 000020 .WORD 20 ; [7$]
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 39
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (16)
000120 000020 .WORD 20 ; [7$]
000122 000000 .WORD 0 ; [6$]
000124 000000 .WORD 0 ; [6$]
000126 000000 .WORD 0 ; [6$]
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 40
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (17)
; 1345 routine DTECTL (DB, CCB, MODIFIER) : MCB_DB_CCB_MOD novalue =
; 1346
; 1347 !++
; 1348 ! FUNCTIONAL DESCRIPTION:
; 1349 !
; 1350 !
; 1351 ! FORMAL PARAMETERS:
; 1352 ! DB = address of DTE data base.
; 1353 ! CCB = address of CTL CCB.
; 1354 ! MODIFIER = control function modifier (from C_MOD of CCB).
; 1355 !
; 1356 ! IMPLICIT INPUTS:
; 1357 ! None
; 1358 !
; 1359 ! IMPLICIT OUTPUTS:
; 1360 ! None
; 1361 !
; 1362 ! ROUTINE VALUE:
; 1363 ! COMPLETION CODES:
; 1364 ! None
; 1365 !
; 1366 ! SIDE EFFECTS:
; 1367 ! None
; 1368 !--
; 1369
; 1370 begin
; 1371 GET_DTE_DATA_BASE (DB)
; 1372
; 1373 map
; 1374 CCB : ref block field (C_FIELDS);
; 1375
; P 1376 DISPATCH$ (.MODIFIER,
; P 1377 TABLE$ ($DSPCR, FD_CTL,
; P 1378 (FM_NM, DTENM),
; P 1379 (FM_STR, CTLSTR),
; P 1380 (FM_STP, CTLSTP)),
; P 1381 (DB [D_TIM], .CCB),
; 1382 MCB_DB_CCB);
; 1383 end; !of routine DTECTL
000130 000000G P.AAI: .WORD $DSPCR
000132 000456' .WORD CTLSTR
000134 000366' .WORD CTLSTP
000136 000000G .WORD DTENM
000140 000000G .WORD $DSPCR
000142 000000G .WORD $DSPCR
000144 000000G .WORD $DSPCR
.SBTTL DTECTL
001520 .PSECT $CODE$, RO
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 41
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (17)
000000 004773 000130' DTECTL: JSR PC,@P.AAI(R3) ; *,*(MODIFIER) 1382
000004 000207 RTS PC ; 1345
; Routine Size: 3 words, Routine Base: $CODE$ + 1520
; Maximum stack depth per invocation: 1 word
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 42
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (18)
; 1384 routine DTERCE (DB, CCB) : MCB_DB_CCB novalue =
; 1385
; 1386 !++
; 1387 ! FUNCTIONAL DESCRIPTION:
; 1388 !
; 1389 !
; 1390 ! FORMAL PARAMETERS:
; 1391 ! DB = address of DTE data base.
; 1392 ! CCB = address of returned data RDB.
; 1393 !
; 1394 ! IMPLICIT INPUTS:
; 1395 ! None
; 1396 !
; 1397 ! IMPLICIT OUTPUTS:
; 1398 ! None
; 1399 !
; 1400 ! ROUTINE VALUE:
; 1401 ! COMPLETION CODES:
; 1402 ! None
; 1403 !
; 1404 ! SIDE EFFECTS:
; 1405 ! None
; 1406 !--
; 1407
; 1408 begin
; 1409 GET_DTE_DATA_BASE (DB)
; 1410 RDBRT$ (.CCB);
; 1411 DB [D_ACTIVE_BUFFERS] = .DB [D_ACTIVE_BUFFERS] - 1;
; 1412
; 1413 if .DB [D_ACTIVE_BUFFERS] neq 0 then return;
; 1414
; 1415 if .DB [DF_CONTROL_WAITING]
; 1416 then
; 1417 begin
; 1418 DB [DF_CONTROL_WAITING] = FALSE;
; 1419 FLUSH_QUEUE (DB [D_PENDING_CONTROLS], %quote $MCB_SCHEDULE_CCB);
; 1420 end;
; 1421
; 1422 end; !of routine DTERCE
.GLOBL $RDBRT, $CMQRM
.SBTTL DTERCE
000000 004767 000000G DTERCE: JSR PC,$RDBRT ; 1410
000004 005365 000034 DEC 34(R5) ; *(DB) 1411
000010 001016 BNE 2$ ; 1413
000012 032715 010000 BIT #10000,(R5) ; *,DB 1415
000016 001413 BEQ 2$
000020 042715 010000 BIC #10000,(R5) ; *,DB 1418
000024 012703 000030 MOV #30,R3 ; 1419
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 43
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (18)
000030 060503 ADD R5,R3 ; DB,*
000032 004767 000000G 1$: JSR PC,$CMQRM
000036 103403 BCS 2$
000040 004767 000000G JSR PC,$SCHED
000044 000772 BR 1$
000046 000207 2$: RTS PC ; 1384
; Routine Size: 20 words, Routine Base: $CODE$ + 1526
; Maximum stack depth per invocation: 1 word
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 44
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (19)
; 1423 global routine DTESTP (DB) : DTE_DB novalue =
; 1424
; 1425 !++
; 1426 ! FUNCTIONAL DESCRIPTION:
; 1427 !
; 1428 !
; 1429 ! FORMAL PARAMETERS:
; 1430 ! DB = address of DTE data base.
; 1431 !
; 1432 ! IMPLICIT INPUTS:
; 1433 ! None
; 1434 !
; 1435 ! IMPLICIT OUTPUTS:
; 1436 ! None
; 1437 !
; 1438 ! ROUTINE VALUE:
; 1439 ! COMPLETION CODES:
; 1440 ! None
; 1441 !
; 1442 ! SIDE EFFECTS:
; 1443 ! None
; 1444 !--
; 1445
; 1446 begin
; 1447 GET_DTE_DATA_BASE (DB)
; 1448 DTE_SET (.DB [D_REGISTER], INTROF);
; 1449 DB [$SUB_FIELD (D_XQZ, CSIZE)] = 0;
; 1450 DB [$SUB_FIELD (D_XQZ, PSIZE)] = 0;
; 1451 DEPMYH (DB [D_TIM], QSIZE, DB [D_XQZ]);
; 1452 DB [D_XCB] = 0;
; 1453 DB [D_XCT] = 0;
; 1454 DB [$SUB_FIELD (D_XST, V)] = 0;
; 1455 DB [$SUB_FIELD (D_XST, RCV)] = 0;
; 1456 DB [$SUB_FIELD (D_XST, CPQCNT)] = 0;
; 1457 DB [$SUB_FIELD (D_XST, QCOUNT)] = 0;
; 1458 DEPMYH (DB [D_TIM], STATUS, DB [D_XST]);
; 1459 DB [D_TIM] = 0;
; 1460 DB [D_LONG_TIMER] = 0;
; 1461 DTE_RESET (.DB [D_REGISTER]);
; 1462 FLUSH_QUEUE (DB [D_XMQ], %quote SCHEDULE_TRANSMIT, DB [D_TIM], DLL$_ABORTED);
; 1463 begin
; 1464
; 1465 local
; 1466 CCB;
; 1467
; 1468 if (CCB = .DB [D_RCB]) neq 0
; 1469 then
; 1470 begin
; 1471 RDBRT$ (.CCB);
; 1472 DB [D_RCB] = 0;
; 1473 DB [D_RCT] = 0;
; 1474 end;
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 45
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (19)
; 1475
; 1476 end;
; 1477 CHANGE_PROTOCOL_STATE (DB [D_TIM], DS_HALTED, LCL);
; 1478 end; !of routine DTESTP
.SBTTL DTESTP
000000 012775 000010 000002 DTESTP::MOV #10,@2(R5) ; *,*(DB) 1448
000006 005065 000100 CLR 100(R5) ; *(DB) 1449
000012 005065 000102 CLR 102(R5) ; *(DB) 1450
000016 012703 000100 MOV #100,R3 ; 1451
000022 060503 ADD R5,R3 ; DB,*
000024 012702 000003 MOV #3,R2
000030 004767 177000 JSR PC,DEPMYH
000034 005065 000126 CLR 126(R5) ; *(DB) 1452
000040 005065 000134 CLR 134(R5) ; *(DB) 1453
000044 142765 000001 000076 BICB #1,76(R5) ; *,*(DB) 1454
000052 142765 000001 000074 BICB #1,74(R5) ; *,*(DB) 1455
000060 012703 000072 MOV #72,R3 ; 1456
000064 060503 ADD R5,R3 ; DB,*
000066 105063 000001 CLRB 1(R3)
000072 105013 CLRB (R3) ; 1457
000074 012702 000002 MOV #2,R2 ; 1458
000100 004767 176730 JSR PC,DEPMYH
000104 105015 CLRB (R5) ; DB 1459
000106 105065 000020 CLRB 20(R5) ; *(DB) 1460
000112 016500 000002 MOV 2(R5),R0 ; *(DB),* 1461
000116 012760 000100 177776 MOV #100,-2(R0)
000124 012703 000120 MOV #120,R3 ; 1462
000130 060503 ADD R5,R3 ; DB,*
000132 004767 000000G 1$: JSR PC,$CMQRM
000136 103405 BCS 2$
000140 012700 100030 MOV #-77750,R0
000144 004767 000000V JSR PC,SCHEDULE.TRANSMIT
000150 000770 BR 1$
000152 016504 000110 2$: MOV 110(R5),R4 ; *(DB),CCB 1468
000156 001406 BEQ 3$
000160 004767 000000G JSR PC,$RDBRT ; 1471
000164 005065 000110 CLR 110(R5) ; *(DB) 1472
000170 005065 000116 CLR 116(R5) ; *(DB) 1473
000174 005046 3$: CLR -(SP) ; 1477
000176 005046 CLR -(SP)
000200 004767 176270 JSR PC,CHANGE.PROTOCOL.STATE
000204 022626 CMP (SP)+,(SP)+ ; 1446
000206 000207 RTS PC ; 1423
; Routine Size: 68 words, Routine Base: $CODE$ + 1576
; Maximum stack depth per invocation: 3 words
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 46
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (20)
; 1479 global routine DTESTR (DB) : DTE_DB novalue =
; 1480
; 1481 !++
; 1482 ! FUNCTIONAL DESCRIPTION:
; 1483 !
; 1484 !
; 1485 ! FORMAL PARAMETERS:
; 1486 ! DB = address of DTE data base.
; 1487 !
; 1488 ! IMPLICIT INPUTS:
; 1489 ! None
; 1490 !
; 1491 ! IMPLICIT OUTPUTS:
; 1492 ! None
; 1493 !
; 1494 ! ROUTINE VALUE:
; 1495 ! COMPLETION CODES:
; 1496 ! None
; 1497 !
; 1498 ! SIDE EFFECTS:
; 1499 ! None
; 1500 !--
; 1501
; 1502 begin
; 1503 GET_DTE_DATA_BASE (DB)
; 1504
; 1505 if .DB [D_DEVICE_STATE] eql DD_CLEARED
; 1506 then
; 1507 return;
; 1508
; 1509 CHANGE_PROTOCOL_STATE (DB [D_TIM], DS_COM, LCL);
; 1510 DB [D_START_THRESHOLD] = 7;
; 1511 DTE_SET (.DB [D_REGISTER], INTRON);
; 1512 DB [D_TIM] = .DB [D_TIM] + 1;
; 1513 GETCOM (DB [D_TIM]);
; 1514 end; !of routine DTESTR
.SBTTL DTESTR
000000 105765 000016 DTESTR::TSTB 16(R5) ; *(DB) 1505
000004 001417 BEQ 1$ ; 1507
000006 012746 000001 MOV #1,-(SP) ; 1509
000012 005046 CLR -(SP)
000014 004767 176244 JSR PC,CHANGE.PROTOCOL.STATE
000020 112765 000007 000021 MOVB #7,21(R5) ; *,*(DB) 1510
000026 012775 000040 000002 MOV #40,@2(R5) ; *,*(DB) 1511
000034 105215 INCB (R5) ; DB 1512
000036 004767 000000V JSR PC,GETCOM ; 1513
000042 022626 CMP (SP)+,(SP)+ ; 1502
000044 000207 1$: RTS PC ; 1479
; Routine Size: 19 words, Routine Base: $CODE$ + 2006
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 47
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (20)
; Maximum stack depth per invocation: 3 words
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 48
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (21)
; 1515 routine DTETIM (DB, MODIFIER) : MCB_DB_MOD novalue =
; 1516
; 1517 !++
; 1518 ! FUNCTIONAL DESCRIPTION:
; 1519 !
; 1520 !
; 1521 ! FORMAL PARAMETERS:
; 1522 ! DB = address of DTE data base.
; 1523 ! MODIFIER = timer function modifier.
; 1524 !
; 1525 ! IMPLICIT INPUTS:
; 1526 ! None
; 1527 !
; 1528 ! IMPLICIT OUTPUTS:
; 1529 ! None
; 1530 !
; 1531 ! ROUTINE VALUE:
; 1532 ! COMPLETION CODES:
; 1533 ! None
; 1534 !
; 1535 ! SIDE EFFECTS:
; 1536 ! None
; 1537 !--
; 1538
; 1539 begin
; 1540 GET_DTE_DATA_BASE (DB)
; P 1541 DISPATCH$ (
; P 1542 .MODIFIER,
; P 1543 TABLE$ ($DSPCR, FD_TIM, ! Dispatch table:
; P 1544 (FM_LTM, TIMLTM), ! Long timer
; P 1545 (FM_CCB, TIMCCB), ! CCB available
; P 1546 (FM_RDB, TIMRDB), ! RDB available
; P 1547 (FM_PWF, TIMPWF), ! Power failure
; P 1548 (FM_PIN, TIMPIN)), ! Process initialization
; P 1549 (DB [D_TIM]),
; 1550 MCB_DB);
; 1551 end; !of routine DTETIM
000146 .PSECT $PLIT$, RO , D
000146 000000G P.AAJ: .WORD $DSPCR
000150 000000V .WORD TIMLTM
000152 000000V .WORD TIMPWF
000154 000000V .WORD TIMPIN
000156 000000V .WORD TIMCCB
000160 000000V .WORD TIMRDB
.SBTTL DTETIM
002054 .PSECT $CODE$, RO
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 49
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (21)
000000 004773 000146' DTETIM: JSR PC,@P.AAJ(R3) ; *,*(MODIFIER) 1550
000004 000207 RTS PC ; 1515
; Routine Size: 3 words, Routine Base: $CODE$ + 2054
; Maximum stack depth per invocation: 1 word
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 50
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (22)
; 1552 routine DTEXME (DB, CCB, MODIFIER) : MCB_DB_CCB_MOD novalue =
; 1553
; 1554 !++
; 1555 ! FUNCTIONAL DESCRIPTION:
; 1556 !
; 1557 !
; 1558 ! FORMAL PARAMETERS:
; 1559 ! DB = address of DTE data base.
; 1560 ! CCB = address of transmit CCB.
; 1561 ! MODIFIER = transmit function modifier (from C_MOD of CCB).
; 1562 !
; 1563 ! IMPLICIT INPUTS:
; 1564 ! None
; 1565 !
; 1566 ! IMPLICIT OUTPUTS:
; 1567 ! None
; 1568 !
; 1569 ! ROUTINE VALUE:
; 1570 ! COMPLETION CODES:
; 1571 ! None
; 1572 !
; 1573 ! SIDE EFFECTS:
; 1574 ! None
; 1575 !--
; 1576
; 1577 begin
; 1578 GET_DTE_DATA_BASE (DB)
; 1579
; 1580 map
; 1581 CCB : ref block field (C_FIELDS);
; 1582
; P 1583 DISPATCH$ (
; P 1584 .MODIFIER,
; P 1585 TABLE$ ($DSPCR, 0,
; P 1586 (DLL$K_ENTER_MAINTENANCE, DLLMOP),
; P 1587 (DLL$K_INITIALIZE_LINK, DLLINI),
; P 1588 (DLL$K_STOP_LINK, DLLSTP),
; P 1589 (DLL$K_TRANSMIT, DLLXMT),
; P 1590 (DLL$K_TRANSMIT_AND_TIME, DLLXMT)),
; P 1591 (DB [D_TIM], .CCB),
; 1592 DTE_DB_CCB);
; 1593 end; !of routine DTEXME
000162 .PSECT $PLIT$, RO , D
000162 001070' P.AAK: .WORD DLLXMT
000164 000652' .WORD DLLINI
000166 001020' .WORD DLLSTP
000170 000776' .WORD DLLMOP
000172 001070' .WORD DLLXMT
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 51
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (22)
.SBTTL DTEXME
002062 .PSECT $CODE$, RO
000000 004773 000162' DTEXME: JSR PC,@P.AAK(R3) ; *,*(MODIFIER) 1592
000004 000207 RTS PC ; 1552
; Routine Size: 3 words, Routine Base: $CODE$ + 2062
; Maximum stack depth per invocation: 1 word
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 52
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (23)
; 1594 routine EXMHSG (DB, OFFSET, BUFFER) : EXDP_LINKAGE =
; 1595
; 1596 !++
; 1597 ! FUNCTIONAL DESCRIPTION:
; 1598 !
; 1599 !
; 1600 ! FORMAL PARAMETERS:
; 1601 ! DB = address of DTE data base.
; 1602 ! OFFSET = comm/region offset.
; 1603 ! BUFFER = address of 3 word buffer to receive examined data.
; 1604 !
; 1605 ! IMPLICIT INPUTS:
; 1606 ! None
; 1607 !
; 1608 ! IMPLICIT OUTPUTS:
; 1609 ! None
; 1610 !
; 1611 ! ROUTINE VALUE:
; 1612 ! COMPLETION CODES:
; 1613 ! None
; 1614 !
; 1615 ! SIDE EFFECTS:
; 1616 ! None
; 1617 !--
; 1618
; 1619 begin
; 1620 GET_DTE_DATA_BASE (DB)
; 1621 PRTEXM (DB [D_TIM], .OFFSET + .DB [D_EHG], .BUFFER)
; 1622 end; !of routine EXMHSG
.SBTTL EXMHSG
000000 066502 000046 EXMHSG: ADD 46(R5),R2 ; *(DB),* 1621
000004 004767 000000V JSR PC,PRTEXM
000010 000207 RTS PC ; 1594
; Routine Size: 5 words, Routine Base: $CODE$ + 2070
; Maximum stack depth per invocation: 1 word
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 53
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (24)
; 1623 routine EXMHSM (DB, OFFSET, BUFFER) : EXDP_LINKAGE =
; 1624
; 1625 !++
; 1626 ! FUNCTIONAL DESCRIPTION:
; 1627 !
; 1628 !
; 1629 ! FORMAL PARAMETERS:
; 1630 ! DB = address of DTE data base.
; 1631 ! OFFSET = comm/region offset.
; 1632 ! BUFFER = address of 3 word buffer to receive examined data.
; 1633 !
; 1634 ! IMPLICIT INPUTS:
; 1635 ! None
; 1636 !
; 1637 ! IMPLICIT OUTPUTS:
; 1638 ! None
; 1639 !
; 1640 ! ROUTINE VALUE:
; 1641 ! COMPLETION CODES:
; 1642 ! None
; 1643 !
; 1644 ! SIDE EFFECTS:
; 1645 ! None
; 1646 !--
; 1647
; 1648 begin
; 1649 GET_DTE_DATA_BASE (DB)
; 1650 PRTEXM (DB [D_TIM], .OFFSET + .DB [D_EHM], .BUFFER)
; 1651 end; !of routine EXMHSM
.SBTTL EXMHSM
000000 066502 000050 EXMHSM: ADD 50(R5),R2 ; *(DB),* 1650
000004 004767 000000V JSR PC,PRTEXM
000010 000207 RTS PC ; 1623
; Routine Size: 5 words, Routine Base: $CODE$ + 2102
; Maximum stack depth per invocation: 1 word
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 54
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (25)
; 1652 routine EXMMYG (DB, OFFSET, BUFFER) : EXDP_LINKAGE =
; 1653
; 1654 !++
; 1655 ! FUNCTIONAL DESCRIPTION:
; 1656 !
; 1657 !
; 1658 ! FORMAL PARAMETERS:
; 1659 ! DB = address of DTE data base.
; 1660 ! OFFSET = comm/region offset.
; 1661 ! BUFFER = address of 3 word buffer to receive examined data.
; 1662 !
; 1663 ! IMPLICIT INPUTS:
; 1664 ! None
; 1665 !
; 1666 ! IMPLICIT OUTPUTS:
; 1667 ! None
; 1668 !
; 1669 ! ROUTINE VALUE:
; 1670 ! COMPLETION CODES:
; 1671 ! None
; 1672 !
; 1673 ! SIDE EFFECTS:
; 1674 ! None
; 1675 !--
; 1676
; 1677 begin
; 1678 GET_DTE_DATA_BASE (DB)
; 1679 PRTEXM (DB [D_TIM], .OFFSET + .DB [D_EMG], .BUFFER)
; 1680 end; !of routine EXMMYG
.SBTTL EXMMYG
000000 066502 000052 EXMMYG: ADD 52(R5),R2 ; *(DB),* 1679
000004 004767 000000V JSR PC,PRTEXM
000010 000207 RTS PC ; 1652
; Routine Size: 5 words, Routine Base: $CODE$ + 2114
; Maximum stack depth per invocation: 1 word
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 55
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (26)
; 1681 routine EXMMYH (DB, OFFSET, BUFFER) : EXDP_LINKAGE =
; 1682
; 1683 !++
; 1684 ! FUNCTIONAL DESCRIPTION:
; 1685 !
; 1686 !
; 1687 ! FORMAL PARAMETERS:
; 1688 ! DB = address of DTE data base.
; 1689 ! OFFSET = comm/region offset.
; 1690 ! BUFFER = address of 3 word buffer to receive examined data.
; 1691 !
; 1692 ! IMPLICIT INPUTS:
; 1693 ! None
; 1694 !
; 1695 ! IMPLICIT OUTPUTS:
; 1696 ! None
; 1697 !
; 1698 ! ROUTINE VALUE:
; 1699 ! COMPLETION CODES:
; 1700 ! None
; 1701 !
; 1702 ! SIDE EFFECTS:
; 1703 ! None
; 1704 !--
; 1705
; 1706 begin
; 1707 GET_DTE_DATA_BASE (DB)
; 1708 PRTEXM (DB [D_TIM], .OFFSET + .DB [D_DMH] + .DB [D_EMG], .BUFFER)
; 1709 end; !of routine EXMMYH
.SBTTL EXMMYH
000000 066502 000054 EXMMYH: ADD 54(R5),R2 ; *(DB),* 1708
000004 066502 000052 ADD 52(R5),R2 ; *(DB),*
000010 004767 000000V JSR PC,PRTEXM
000014 000207 RTS PC ; 1681
; Routine Size: 7 words, Routine Base: $CODE$ + 2126
; Maximum stack depth per invocation: 1 word
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 56
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (27)
; 1710 routine GET_HIS_STATUS (DB) : EXM_LINKAGE novalue =
; 1711
; 1712 !++
; 1713 ! FUNCTIONAL DESCRIPTION:
; 1714 !
; 1715 !
; 1716 ! FORMAL PARAMETERS:
; 1717 ! DB = address of DTE data base.
; 1718 !
; 1719 ! IMPLICIT INPUTS:
; 1720 ! None
; 1721 !
; 1722 ! IMPLICIT OUTPUTS:
; 1723 ! None
; 1724 !
; 1725 ! ROUTINE VALUE:
; 1726 ! COMPLETION CODES:
; 1727 ! None
; 1728 !
; 1729 ! SIDE EFFECTS:
; 1730 ! None
; 1731 !--
; 1732
; 1733 begin
; 1734 GET_DTE_DATA_BASE (DB)
; 1735
; 1736 local
; 1737 BUFFER : ref vector;
; 1738
; 1739 BUFFER = DB [D_RST];
; 1740
; 1741 if not EXMHSM (DB [D_TIM], STATUS, .BUFFER)
; 1742 then
; 1743 begin
; 1744 BUFFER [0] = 0;
; 1745 BUFFER [1] = 0;
; 1746 BUFFER [2] = 0;
; 1747 BUFFER = BUFFER [2]; %(to force auto-increment)%
; 1748 end;
; 1749
; 1750 end; !of routine GET_HIS_STATUS
.SBTTL GET.HIS.STATUS
000000 010503 GET.HIS.STATUS:
MOV R5,R3 ; DB,BUFFER 1739
000002 062703 000056 ADD #56,R3 ; *,BUFFER
000006 012702 000002 MOV #2,R2 ; 1741
000012 004767 177720 JSR PC,EXMHSM
000016 006000 ROR R0
000020 103403 BLO 1$
000022 005023 CLR (R3)+ ; BUFFER 1744
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 57
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (27)
000024 005023 CLR (R3)+ ; BUFFER 1745
000026 005013 CLR (R3) ; BUFFER 1746
000030 000207 1$: RTS PC ; 1710
; Routine Size: 13 words, Routine Base: $CODE$ + 2144
; Maximum stack depth per invocation: 1 word
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 58
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (28)
; 1751 routine GETCOM (DB) : DTE_DB novalue =
; 1752
; 1753 !++
; 1754 ! FUNCTIONAL DESCRIPTION:
; 1755 !
; 1756 !
; 1757 ! FORMAL PARAMETERS:
; 1758 ! DB = address of DTE data base.
; 1759 !
; 1760 ! IMPLICIT INPUTS:
; 1761 ! None
; 1762 !
; 1763 ! IMPLICIT OUTPUTS:
; 1764 ! None
; 1765 !
; 1766 ! ROUTINE VALUE:
; 1767 ! COMPLETION CODES:
; 1768 ! None
; 1769 !
; 1770 ! SIDE EFFECTS:
; 1771 ! None
; 1772 !--
; 1773
; 1774 begin
; 1775 GET_DTE_DATA_BASE (DB)
; 1776
; 1777 literal
; 1778 SUCCESS = not -1 %(while 0 do 0)%;
; 1779
; 1780 local
; 1781 BUFFER : ref block field (COM_FIELDS);
; 1782
; 1783 DB [D_LONG_TIMER] = DTE_K_START_TIMEOUT;
; 1784 BUFFER = DB [D_RST];
; 1785
; 1786 if not PRTEXM (DB [D_TIM], 0, .BUFFER) then return;
; 1787
; 1788 DB [D_MPN] = .BUFFER [PRCNUM];
; 1789 DB [D_EMG] = .DB [D_MPN] + 1 + .BUFFER [RELADR];
; 1790
; 1791 if not EXMMYG (DB [D_TIM], PIDENT, .BUFFER) then return;
; 1792
; 1793 DB [D_DMH] = .BUFFER [NPRSIZ]^3;
; 1794
; 1795 if (decr INDEX from .BUFFER [NPRCNT] to 1 do
; 1796 begin
; 1797
; 1798 if not EXMMYH (DB [D_TIM], FORPRO, .BUFFER) then return;
; 1799
; 1800 if .BUFFER [D] and
; 1801 .BUFFER [DTN] eql .DB [D_CONTROLLER]
; 1802 then
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 59
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (28)
; 1803 exitloop SUCCESS;
; 1804
; 1805 begin
; 1806
; 1807 local
; 1808 SIZE;
; 1809
; 1810 SIZE = .BUFFER [PROSIZ];
; 1811
; 1812 if .SIZE eql 0 then SIZE = .SIZE + 1;
; 1813
; 1814 DB [D_DMH] = .DB [D_DMH] + .SIZE^3;
; 1815 end
; 1816 end) neq SUCCESS
; 1817 then
; 1818 return;
; 1819
; 1820 if .BUFFER [PROTYP] neq 1 then return;
; 1821
; 1822 DB [D_HPN] = .BUFFER [TOPRCN];
; 1823
; 1824 if not EXMMYH (DB [D_TIM], PROPNT, .BUFFER) then return;
; 1825
; 1826 DB [D_EHG] = .DB [D_MPN] + 1 + .BUFFER [0, 0, 16, 0];
; 1827
; 1828 if not EXMHSG (DB [D_TIM], PIDENT, .BUFFER) then return;
; 1829
; 1830 DB [D_EHM] = .BUFFER [NPRSIZ]^3 + .DB [D_EHG];
; 1831
; 1832 if (decr INDEX from .BUFFER [NPRCNT] to 1 do
; 1833 begin
; 1834
; 1835 if not EXMHSM (DB [D_TIM], FORPRO, .BUFFER) then return;
; 1836
; 1837 if .BUFFER [TOPRCN] eql .DB [D_MPN]
; 1838 then
; 1839 exitloop SUCCESS;
; 1840
; 1841 begin
; 1842
; 1843 local
; 1844 SIZE;
; 1845
; 1846 SIZE = .BUFFER [PROSIZ];
; 1847
; 1848 if .SIZE eql 0 then SIZE = .SIZE + 1;
; 1849
; 1850 DB [D_EHM] = .DB [D_EHM] + .SIZE^3;
; 1851 end
; 1852 end) neq SUCCESS
; 1853 then
; 1854 return;
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 60
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (28)
; 1855
; 1856 if not EXMHSM (DB [D_TIM], STATUS, .BUFFER) then return;
; 1857
; 1858 if not .BUFFER [V] then return;
; 1859
; 1860 CHANGE_PROTOCOL_STATE (DB [D_TIM], DS_INITIALIZING, LCL);
; 1861 DB [D_START_THRESHOLD] = 7;
; 1862 CLEAR_DOORBELL (DB [D_TIM]);
; 1863 DEPMYH (DB [D_TIM], QSIZE, DB [D_XQZ]);
; 1864 DB [$SUB_FIELD (D_XST, I)] = 1;
; 1865 DB [$SUB_FIELD (D_XST, V)] = 1;
; 1866 DEPMYH (DB [D_TIM], STATUS, DB [D_XST]);
; 1867 DTE_SET (.DB [D_REGISTER], INT10S);
; 1868 end; !of routine GETCOM
.SBTTL GETCOM
000000 162706 000006 GETCOM: SUB #6,SP ; 1751
000004 112765 000005 000020 MOVB #5,20(R5) ; *,*(DB) 1783
000012 010503 MOV R5,R3 ; DB,BUFFER 1784
000014 062703 000056 ADD #56,R3 ; *,BUFFER
000020 005002 CLR R2 ; 1786
000022 004767 000000V JSR PC,PRTEXM
000026 006000 ROR R0
000030 103167 BHIS 6$
000032 012766 000044 000002 MOV #44,2(SP) ; 1788
000040 060566 000002 ADD R5,2(SP) ; DB,*
000044 012766 000002 000004 MOV #2,4(SP)
000052 060366 000004 ADD R3,4(SP) ; BUFFER,*
000056 017600 000004 MOV @4(SP),R0
000062 072027 177770 ASH #-10,R0
000066 042700 177760 BIC #177760,R0
000072 105076 000002 CLRB @2(SP)
000076 150076 000002 BISB R0,@2(SP)
000102 117600 000002 MOVB @2(SP),R0 ; 1774
000106 061300 ADD (R3),R0 ; BUFFER,*
000110 010065 000052 MOV R0,52(R5) ; *,*(DB) 1789
000114 005265 000052 INC 52(R5) ; *(DB)
000120 005002 CLR R2 ; 1791
000122 004767 177570 JSR PC,EXMMYG
000126 006000 ROR R0
000130 103155 BHIS 8$
000132 117665 000004 000054 MOVB @4(SP),54(R5) ; *,*(DB) 1793
000140 042765 177770 000054 BIC #177770,54(R5) ; *,*(DB)
000146 006365 000054 ASL 54(R5) ; *(DB)
000152 006365 000054 ASL 54(R5) ; *(DB)
000156 006365 000054 ASL 54(R5) ; *(DB)
000162 012716 000004 MOV #4,(SP) ; 1800
000166 060316 ADD R3,(SP) ; BUFFER,*
000170 117604 000004 MOVB @4(SP),R4 ; *,INDEX 1795
000174 072427 177775 ASH #-3,R4 ; *,INDEX
000200 042704 177740 BIC #177740,R4 ; *,INDEX
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 61
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (28)
000204 003440 BLE 4$
000206 005002 1$: CLR R2 ; 1798
000210 004767 177514 JSR PC,EXMMYH
000214 006000 ROR R0
000216 103156 BHIS 13$
000220 132776 000004 000000 BITB #4,@0(SP) ; 1800
000226 001412 BEQ 2$
000230 116501 000007 MOVB 7(R5),R1 ; *(DB),* 1801
000234 117600 000000 MOVB @0(SP),R0
000240 042700 177774 BIC #177774,R0
000244 020001 CMP R0,R1
000246 001002 BNE 2$
000250 005000 CLR R0 ; 1803
000252 000417 BR 5$
000254 117600 000004 2$: MOVB @4(SP),R0 ; *,SIZE 1810
000260 042700 177770 BIC #177770,R0 ; *,SIZE
000264 001001 BNE 3$ ; 1812
000266 005200 INC R0 ; SIZE
000270 072027 000003 3$: ASH #3,R0 ; 1814
000274 066500 000054 ADD 54(R5),R0 ; *(DB),*
000300 010065 000054 MOV R0,54(R5) ; *,*(DB)
000304 077440 SOB R4,1$ ; INDEX,* 0000
000306 012700 177777 4$: MOV #-1,R0 ; 1795
000312 001166 5$: BNE 14$ ; 1818
000314 117600 000004 MOVB @4(SP),R0 ; 1820
000320 042700 177407 BIC #177407,R0
000324 020027 000010 CMP R0,#10
000330 001157 BNE 14$
000332 017646 000002 MOV @2(SP),-(SP) ; 1822
000336 111366 000001 MOVB (R3),1(SP) ; BUFFER,*
000342 012676 000002 MOV (SP)+,@2(SP)
000346 012702 000001 MOV #1,R2 ; 1824
000352 004767 177352 JSR PC,EXMMYH
000356 006000 ROR R0
000360 103143 BHIS 14$
000362 117600 000002 MOVB @2(SP),R0 ; 1774
000366 061300 ADD (R3),R0 ; BUFFER,*
000370 010065 000046 MOV R0,46(R5) ; *,*(DB) 1826
000374 005265 000046 INC 46(R5) ; *(DB)
000400 005002 CLR R2 ; 1828
000402 004767 177264 JSR PC,EXMHSG
000406 006000 ROR R0
000410 103127 6$: BHIS 14$
000412 117600 000004 MOVB @4(SP),R0 ; 1830
000416 042700 177770 BIC #177770,R0
000422 072027 000003 ASH #3,R0
000426 066500 000046 ADD 46(R5),R0 ; *(DB),*
000432 010065 000050 MOV R0,50(R5) ; *,*(DB)
000436 117604 000004 MOVB @4(SP),R4 ; *,INDEX 1832
000442 072427 177775 ASH #-3,R4 ; *,INDEX
000446 042704 177740 BIC #177740,R4 ; *,INDEX
000452 003430 BLE 11$
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 62
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (28)
000454 005002 7$: CLR R2 ; 1835
000456 004767 177222 JSR PC,EXMHSM
000462 006000 ROR R0
000464 103101 8$: BHIS 14$
000466 117600 000002 MOVB @2(SP),R0 ; 1837
000472 021300 CMP (R3),R0 ; BUFFER,*
000474 001002 BNE 9$
000476 005000 CLR R0 ; 1839
000500 000417 BR 12$
000502 117600 000004 9$: MOVB @4(SP),R0 ; *,SIZE 1846
000506 042700 177770 BIC #177770,R0 ; *,SIZE
000512 001001 BNE 10$ ; 1848
000514 005200 INC R0 ; SIZE
000516 072027 000003 10$: ASH #3,R0 ; 1850
000522 066500 000050 ADD 50(R5),R0 ; *(DB),*
000526 010065 000050 MOV R0,50(R5) ; *,*(DB)
000532 077430 SOB R4,7$ ; INDEX,* 0000
000534 012700 177777 11$: MOV #-1,R0 ; 1832
000540 001053 12$: BNE 14$ ; 1854
000542 012702 000002 MOV #2,R2 ; 1856
000546 004767 177132 JSR PC,EXMHSM
000552 006000 ROR R0
000554 103045 13$: BHIS 14$
000556 132776 000001 000000 BITB #1,@0(SP) ; 1858
000564 001441 BEQ 14$
000566 012746 000002 MOV #2,-(SP) ; 1860
000572 005046 CLR -(SP)
000574 004767 175274 JSR PC,CHANGE.PROTOCOL.STATE
000600 112765 000007 000021 MOVB #7,21(R5) ; *,*(DB) 1861
000606 004767 175276 JSR PC,CLEAR.DOORBELL ; 1862
000612 010500 MOV R5,R0 ; DB,* 1863
000614 062700 000100 ADD #100,R0
000620 012702 000003 MOV #3,R2
000624 010003 MOV R0,R3
000626 004767 175602 JSR PC,DEPMYH
000632 152765 000003 000076 BISB #3,76(R5) ; *,*(DB) 1865
000640 010500 MOV R5,R0 ; DB,* 1866
000642 062700 000072 ADD #72,R0
000646 012702 000002 MOV #2,R2
000652 010003 MOV R0,R3
000654 004767 175554 JSR PC,DEPMYH
000660 012775 000400 000002 MOV #400,@2(R5) ; *,*(DB) 1867
000666 022626 CMP (SP)+,(SP)+ ; 1774
000670 062706 000006 14$: ADD #6,SP ; 1751
000674 000207 RTS PC
; Routine Size: 223 words, Routine Base: $CODE$ + 2176
; Maximum stack depth per invocation: 6 words
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 63
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (29)
; 1869 routine INITIALIZATION_REQUESTED (DB) : DTE_DB =
; 1870
; 1871 !++
; 1872 ! FUNCTIONAL DESCRIPTION:
; 1873 !
; 1874 !
; 1875 ! FORMAL PARAMETERS:
; 1876 ! DB = address of DTE data base.
; 1877 !
; 1878 ! IMPLICIT INPUTS:
; 1879 ! None
; 1880 !
; 1881 ! IMPLICIT OUTPUTS:
; 1882 ! None
; 1883 !
; 1884 ! ROUTINE VALUE:
; 1885 ! COMPLETION CODES:
; 1886 ! None
; 1887 !
; 1888 ! SIDE EFFECTS:
; 1889 ! None
; 1890 !--
; 1891
; 1892 begin
; 1893 GET_DTE_DATA_BASE (DB)
; 1894
; 1895 if .DB [$SUB_FIELD (D_RST, I)]
; 1896 then
; 1897 begin
; 1898 SEND_PERSISTENT_ERROR (DB [D_TIM], DLL$_START_RECEIVED);
; 1899 DTESTP (DB [D_TIM]);
; 1900 TRUE
; 1901 end
; 1902 else
; 1903 false
; 1904
; 1905 end; !of routine INITIALIZATION_REQUESTED
.SBTTL INITIALIZATION.REQUESTED
000000 132765 000002 000062 INITIALIZATION.REQUESTED:
BITB #2,62(R5) ; *,*(DB) 1895
000006 001411 BEQ 1$
000010 012700 100130 MOV #-77650,R0 ; 1898
000014 004767 000000V JSR PC,SEND.PERSISTENT.ERROR
000020 004767 176456 JSR PC,DTESTP ; 1899
000024 012700 000001 MOV #1,R0 ; 1895
000030 000207 RTS PC
000032 005000 1$: CLR R0
000034 000207 RTS PC ; 1869
; Routine Size: 15 words, Routine Base: $CODE$ + 3074
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 64
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (29)
; Maximum stack depth per invocation: 1 word
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 65
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (30)
; 1906 routine NEW_RCB (DB, CCB) : DTE_DB novalue =
; 1907
; 1908 !++
; 1909 ! FUNCTIONAL DESCRIPTION:
; 1910 !
; 1911 !
; 1912 ! FORMAL PARAMETERS:
; 1913 ! DB = address of DTE data base.
; 1914 ! CCB = address of new receive buffer CCB.
; 1915 !
; 1916 ! IMPLICIT INPUTS:
; 1917 ! None
; 1918 !
; 1919 ! IMPLICIT OUTPUTS:
; 1920 ! None
; 1921 !
; 1922 ! ROUTINE VALUE:
; 1923 ! COMPLETION CODES:
; 1924 ! None
; 1925 !
; 1926 ! SIDE EFFECTS:
; 1927 ! None
; 1928 !--
; 1929
; 1930 begin
; 1931 GET_DTE_DATA_BASE (DB)
; 1932
; 1933 map
; 1934 CCB : ref block field (C_FIELDS);
; 1935
; 1936 CCB [C_CNT] = 0;
; 1937 DB [D_RCB] = .CCB;
; P 1938 $MCB_CONVERT_TO_UBA_ADDRESS ((.CCB [C_BIAS], .CCB [C_ADDR]),
; P 1939 DB [$SUB_FIELD (D_RBA, PHYSICAL_LOW)],
; 1940 DB [$SUB_FIELD (D_RBA, PHYSICAL_HIGH)]);
; 1941 end; !of routine NEW_RCB
.GLOBL $PHY18
.SBTTL NEW.RCB
000000 016600 000002 NEW.RCB:MOV 2(SP),R0 ; CCB,* 1936
000004 005060 000022 CLR 22(R0)
000010 010065 000110 MOV R0,110(R5) ; *,*(DB) 1937
000014 016002 000016 MOV 16(R0),R2 ; 1940
000020 016003 000020 MOV 20(R0),R3
000024 004767 000000G JSR PC,$PHY18
000030 010365 000114 MOV R3,114(R5) ; *,*(DB)
000034 010265 000112 MOV R2,112(R5) ; *,*(DB)
000040 000207 RTS PC ; 1906
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 66
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (30)
; Routine Size: 17 words, Routine Base: $CODE$ + 3132
; Maximum stack depth per invocation: 1 word
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 67
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (31)
; 1942 global routine PARAMETER_DEVICE_REGISTERS
; 1943
; 1944 !++
; 1945 ! FUNCTIONAL DESCRIPTION:
; 1946 !
; 1947 !
; 1948 ! FORMAL PARAMETERS:
; 1949 (REG : ref vector)
; 1950 !
; 1951 ! IMPLICIT INPUTS:
; 1952 ! None
; 1953 !
; 1954 ! IMPLICIT OUTPUTS:
; 1955 ! None
; 1956 !
; 1957 ! ROUTINE VALUE:
; 1958 : DTE_REG novalue =
; 1959 !
; 1960 ! SIDE EFFECTS:
; 1961 ! None
; 1962 !--
; 1963
; 1964 begin
; 1965
; 1966 !
; 1967 ! Adjust to beginning of register set
; 1968 !
; 1969
; 1970 REG <0, 5> = 0;
; 1971
; 1972 !
; 1973 ! DTE registers
; 1974 !
; 1975
; 1976 decr COUNT from 16 to 1 do
; 1977 begin
; 1978 PARAMETER_H_2 (0, REG [0]);
; 1979 REG = REG [1];
; 1980 end;
; 1981
; 1982 end; !of routine PARAMETER_DEVICE_REGISTERS
.GLOBL $DPH2
.SBTTL PLL0
000000 010246 PLL0:: MOV R2,-(SP) ; 1942
000002 142701 000037 BICB #37,R1 ; *,REG 1970
000006 012702 000020 MOV #20,R2 ; *,COUNT 1976
000012 005046 1$: CLR -(SP) ; 1978
000014 011100 MOV (R1),R0 ; REG,*
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 68
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (31)
000016 004767 000000G JSR PC,$DPH2
000022 062701 000002 ADD #2,R1 ; *,REG 1979
000026 005726 TST (SP)+ ; 1977
000030 077210 SOB R2,1$ ; COUNT,* 0000
000032 012602 MOV (SP)+,R2 ; 1942
000034 000207 RTS PC
; Routine Size: 15 words, Routine Base: $CODE$ + 3174
; Maximum stack depth per invocation: 3 words
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 69
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (32)
; 1983 routine PAUSED (DB) : DTE_DB =
; 1984
; 1985 !++
; 1986 ! FUNCTIONAL DESCRIPTION:
; 1987 !
; 1988 !
; 1989 ! FORMAL PARAMETERS:
; 1990 ! DB = address of DTE data base.
; 1991 !
; 1992 ! IMPLICIT INPUTS:
; 1993 ! None
; 1994 !
; 1995 ! IMPLICIT OUTPUTS:
; 1996 ! None
; 1997 !
; 1998 ! ROUTINE VALUE:
; 1999 ! COMPLETION CODES:
; 2000 ! None
; 2001 !
; 2002 ! SIDE EFFECTS:
; 2003 ! None
; 2004 !--
; 2005
; 2006 begin
; 2007 GET_DTE_DATA_BASE (DB)
; 2008
; 2009 if not .DB [$SUB_FIELD (D_RST, V)]
; 2010 then
; 2011 begin
; 2012 CHANGE_PROTOCOL_STATE (DB [D_TIM], DS_PAUSED, RMT);
; 2013 DB [D_LONG_TIMER] = DTE_K_PAUSE_TIMEOUT;
; 2014 TRUE
; 2015 end
; 2016 else
; 2017 false
; 2018
; 2019 end; !of routine PAUSED
.SBTTL PAUSED
000000 132765 000001 000062 PAUSED: BITB #1,62(R5) ; *,*(DB) 2009
000006 001015 BNE 1$
000010 012746 000004 MOV #4,-(SP) ; 2012
000014 012746 000001 MOV #1,-(SP)
000020 004767 175014 JSR PC,CHANGE.PROTOCOL.STATE
000024 112765 000036 000020 MOVB #36,20(R5) ; *,*(DB) 2013
000032 022626 CMP (SP)+,(SP)+ ; 2011
000034 012700 000001 MOV #1,R0 ; 2009
000040 000207 RTS PC
000042 005000 1$: CLR R0
000044 000207 RTS PC ; 1983
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 70
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (32)
; Routine Size: 19 words, Routine Base: $CODE$ + 3232
; Maximum stack depth per invocation: 3 words
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 71
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (33)
; 2020 routine PROTOCOL_BROKEN (DB) : DTE_DB novalue =
; 2021
; 2022 !++
; 2023 ! FUNCTIONAL DESCRIPTION:
; 2024 !
; 2025 !
; 2026 ! FORMAL PARAMETERS:
; 2027 ! DB = address of DTE data base.
; 2028 !
; 2029 ! IMPLICIT INPUTS:
; 2030 ! None
; 2031 !
; 2032 ! IMPLICIT OUTPUTS:
; 2033 ! None
; 2034 !
; 2035 ! ROUTINE VALUE:
; 2036 ! COMPLETION CODES:
; 2037 ! None
; 2038 !
; 2039 ! SIDE EFFECTS:
; 2040 ! None
; 2041 !--
; 2042
; 2043 begin
; 2044 GET_DTE_DATA_BASE (DB)
; 2045 DTESTP (DB [D_TIM]);
; 2046 end; !of routine PROTOCOL_BROKEN
.SBTTL PROTOCOL.BROKEN
000000 004767 176272 PROTOCOL.BROKEN:
JSR PC,DTESTP ; 2045
000004 000207 RTS PC ; 2020
; Routine Size: 3 words, Routine Base: $CODE$ + 3300
; Maximum stack depth per invocation: 1 word
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 72
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (34)
; 2047 routine PRTDEP (DB, OFFSET, BUFFER) : EXDP_LINKAGE =
; 2048
; 2049 !++
; 2050 ! FUNCTIONAL DESCRIPTION:
; 2051 !
; 2052 !
; 2053 ! FORMAL PARAMETERS:
; 2054 ! DB = address of DTE data base.
; 2055 ! OFFSET = comm/region offset.
; 2056 ! BUFFER = address of 3 word buffer of data to deposit.
; 2057 !
; 2058 ! IMPLICIT INPUTS:
; 2059 ! None
; 2060 !
; 2061 ! IMPLICIT OUTPUTS:
; 2062 ! None
; 2063 !
; 2064 ! ROUTINE VALUE:
; 2065 ! COMPLETION CODES:
; 2066 ! None
; 2067 !
; 2068 ! SIDE EFFECTS:
; 2069 ! None
; 2070 !--
; 2071
; 2072 begin
; 2073 GET_DTE_DATA_BASE (DB)
; 2074
; 2075 map
; 2076 BUFFER : ref vector [3];
; 2077
; 2078 local
; 2079 DTE : ref block field (DTE_FIELDS);
; 2080
; 2081 DTE = .DB [D_REGISTER];
; 2082 DTE [$SUB_FIELD (DEXWD, DEXWD3)] = .BUFFER [0];
; 2083 DTE [$SUB_FIELD (DEXWD, DEXWD2)] = .BUFFER [1];
; 2084 DTE [$SUB_FIELD (DEXWD, DEXWD1)] = .BUFFER [2];
; 2085 DTE [$SUB_FIELD (TENAD, TENAD1)] = DTE_BIT (DEP);
; 2086 DTE [$SUB_FIELD (TENAD, TENAD2)] = .OFFSET;
; 2087 WTEXDP (DB [D_TIM], .DTE)
; 2088 end; !of routine PRTDEP
.SBTTL PRTDEP
000000 016501 000002 PRTDEP: MOV 2(R5),R1 ; *(DB),DTE 2081
000004 011361 177746 MOV (R3),-32(R1) ; BUFFER,*(DTE) 2082
000010 016361 000002 177750 MOV 2(R3),-30(R1) ; *(BUFFER),*(DTE) 2083
000016 016361 000004 177752 MOV 4(R3),-26(R1) ; *(BUFFER),*(DTE) 2084
000024 012761 010000 177754 MOV #10000,-24(R1) ; *,*(DTE) 2085
000032 010261 177756 MOV R2,-22(R1) ; OFFSET,*(DTE) 2086
000036 004767 000000V JSR PC,WTEXDP ; 2087
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 73
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (34)
000042 000207 RTS PC ; 2047
; Routine Size: 18 words, Routine Base: $CODE$ + 3306
; Maximum stack depth per invocation: 1 word
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 74
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (35)
; 2089 routine PRTEXM (DB, OFFSET, BUFFER) : EXDP_LINKAGE =
; 2090
; 2091 !++
; 2092 ! FUNCTIONAL DESCRIPTION:
; 2093 !
; 2094 !
; 2095 ! FORMAL PARAMETERS:
; 2096 ! DB = address of DTE data base.
; 2097 ! OFFSET = comm/region offset.
; 2098 ! BUFFER = address of 3 word buffer to receive examined data.
; 2099 !
; 2100 ! IMPLICIT INPUTS:
; 2101 ! None
; 2102 !
; 2103 ! IMPLICIT OUTPUTS:
; 2104 ! None
; 2105 !
; 2106 ! ROUTINE VALUE:
; 2107 ! COMPLETION CODES:
; 2108 ! None
; 2109 !
; 2110 ! SIDE EFFECTS:
; 2111 ! None
; 2112 !--
; 2113
; 2114 begin
; 2115 GET_DTE_DATA_BASE (DB)
; 2116
; 2117 map
; 2118 BUFFER : ref vector [3];
; 2119
; 2120 local
; 2121 DTE : ref block field (DTE_FIELDS);
; 2122
; 2123 local
; 2124 STATUS;
; 2125
; 2126 DTE = .DB [D_REGISTER];
; 2127 DTE [$SUB_FIELD (TENAD, TENAD1)] = 0;
; 2128 DTE [$SUB_FIELD (TENAD, TENAD2)] = .OFFSET;
; 2129 STATUS = WTEXDP (DB [D_TIM], .DTE);
; 2130 BUFFER [0] = .DTE [$SUB_FIELD (DEXWD, DEXWD3)];
; 2131 BUFFER [1] = .DTE [$SUB_FIELD (DEXWD, DEXWD2)];
; 2132 BUFFER [2] = .DTE [$SUB_FIELD (DEXWD, DEXWD1)];
; 2133 .STATUS
; 2134 end; !of routine PRTEXM
.SBTTL PRTEXM
000000 016501 000002 PRTEXM: MOV 2(R5),R1 ; *(DB),DTE 2126
000004 005061 177754 CLR -24(R1) ; *(DTE) 2127
000010 010261 177756 MOV R2,-22(R1) ; OFFSET,*(DTE) 2128
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 75
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (35)
000014 004767 000000V JSR PC,WTEXDP ; 2129
000020 016113 177746 MOV -32(R1),(R3) ; *(DTE),BUFFER 2130
000024 016163 177750 000002 MOV -30(R1),2(R3) ; *(DTE),*(BUFFER) 2131
000032 016163 177752 000004 MOV -26(R1),4(R3) ; *(DTE),*(BUFFER) 2132
000040 000207 RTS PC ; 2089
; Routine Size: 17 words, Routine Base: $CODE$ + 3352
; Maximum stack depth per invocation: 1 word
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 76
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (36)
; 2135 routine RECEIVE_MESSAGE (DB) : DTE_DB novalue =
; 2136
; 2137 !++
; 2138 ! FUNCTIONAL DESCRIPTION:
; 2139 !
; 2140 !
; 2141 ! FORMAL PARAMETERS:
; 2142 ! DB = address of DTE data base.
; 2143 !
; 2144 ! IMPLICIT INPUTS:
; 2145 ! None
; 2146 !
; 2147 ! IMPLICIT OUTPUTS:
; 2148 ! None
; 2149 !
; 2150 ! ROUTINE VALUE:
; 2151 ! COMPLETION CODES:
; 2152 ! None
; 2153 !
; 2154 ! SIDE EFFECTS:
; 2155 ! None
; 2156 !--
; 2157
; 2158 begin
; 2159 GET_DTE_DATA_BASE (DB)
; 2160
; 2161 if .DB [$SUB_FIELD (D_RQZ, PSIZE)] neq 0
; 2162 then
; 2163 begin
; 2164 RECEIVE_SEGMENT (DB [D_TIM]);
; 2165 return;
; 2166 end;
; 2167
; 2168 ! *********************** Protocol deviation **************************
; 2169 ! The -20 monitors MY CPQCNT instead of MY QCOUNT for TO-HIM transfers,
; 2170 ! so the roles of MY QCOUNT and MY CPQCNT are reversed from those in
; 2171 ! the protocol specification.
; 2172 ! *********************************************************************
; 2173
; 2174 if .DB [$SUB_FIELD (D_RST, QCOUNT)] eql .DB [$SUB_FIELD (D_XST, QCOUNT)] then return;
; 2175
; 2176 DB [$SUB_FIELD (D_XST, QCOUNT)] = .DB [$SUB_FIELD (D_XST, QCOUNT)] + 1;
; 2177
; 2178 if .DB [$SUB_FIELD (D_RST, QCOUNT)] neq .DB [$SUB_FIELD (D_XST, QCOUNT)]
; 2179 then
; 2180 begin
; P 2181 $NM_PLL_EVENT (4, .DB [D_LINE_ENTITY],
; 2182 PARAMETER_DEVICE_REGISTERS (.DB [D_REGISTER]));
; 2183 DB [$SUB_FIELD (D_XST, QCOUNT)] = .DB [$SUB_FIELD (D_XST, QCOUNT)] - 1;
; 2184 SEND_PERSISTENT_ERROR (DB [D_TIM], DLL$_DEVICE_OPERATION_ERROR);
; 2185 COUNTER_INCREMENT (DB, D_INVALID_QCOUNT);
; 2186 COUNTER_INCREMENT (DB, D_PROTOCOL_ERRORS);
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 77
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (36)
; 2187 DEVICE_BROKEN (DB [D_TIM]);
; 2188 return;
; 2189 end;
; 2190
; 2191 if .DB [D_RCB] eql 0
; 2192 then
; 2193 begin
; 2194
; 2195 local
; 2196 CCB;
; 2197
; 2198 if RDBGT$ (CCB) then NEW_RCB (DB [D_TIM], .CCB);
; 2199
; 2200 end;
; 2201
; 2202 if .DB [D_RCB] eql 0
; 2203 then
; 2204 begin
; 2205 DB [$SUB_FIELD (D_XST, QCOUNT)] = .DB [$SUB_FIELD (D_XST, QCOUNT)] - 1;
; 2206 RDBRQ$ ();
; 2207 return;
; 2208 end;
; 2209
; 2210 EXMHSM (DB [D_TIM], QSIZE, DB [D_RQZ]);
; 2211
; 2212 if .DB [$SUB_FIELD (D_RQZ, PSIZE)] gtr .DB [D_DL_BLK]
; 2213 then
; 2214 begin
; P 2215 $NM_DLL_EVENT (9, .DB [D_CIRCUIT_ENTITY],
; P 2216 PARAMETER_DU_2 (7, DB [$SUB_FIELD (D_RQZ, PSIZE)]),
; 2217 PARAMETER_DU_2 (8, DB [D_DL_BLK]));
; 2218 DB [$SUB_FIELD (D_XST, QCOUNT)] = .DB [$SUB_FIELD (D_XST, QCOUNT)] - 1;
; 2219 SEND_PERSISTENT_ERROR (DB [D_TIM], DLL$_DEVICE_OPERATION_ERROR);
; 2220 COUNTER_INCREMENT (DB, D_MESSAGE_TOO_LONG);
; 2221 COUNTER_INCREMENT (DB, D_PROTOCOL_ERRORS);
; 2222 PROTOCOL_BROKEN (DB [D_TIM]);
; 2223 return;
; 2224 end;
; 2225
; 2226 DB [$SUB_FIELD (D_XST, RCV)] = 1;
; 2227 DEPMYH (DB [D_TIM], STATUS, DB [D_XST]);
; 2228 RECEIVE_SEGMENT (DB [D_TIM]);
; 2229 end; !of routine RECEIVE_MESSAGE
.GLOBL $RDBGT, $RDBRQ, $DPDU2
.SBTTL RECEIVE.MESSAGE
000000 024646 RECEIVE.MESSAGE:
CMP -(SP),-(SP) ; 2135
000002 012746 000066 MOV #66,-(SP) ; 2161
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 78
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (36)
000006 060516 ADD R5,(SP) ; DB,*
000010 005776 000000 TST @0(SP)
000014 001177 BNE 5$ ; 2164
000016 012766 000072 000004 MOV #72,4(SP) ; 2174
000024 060566 000004 ADD R5,4(SP) ; DB,*
000030 126576 000056 000004 CMPB 56(R5),@4(SP) ; *(DB),*
000036 001570 BEQ 6$
000040 105276 000004 INCB @4(SP) ; 2176
000044 126576 000056 000004 CMPB 56(R5),@4(SP) ; *(DB),* 2178
000052 001435 BEQ 1$
000054 004767 000000G JSR PC,$NLBEG ; 2182
000060 016501 000002 MOV 2(R5),R1 ; *(DB),*
000064 004767 177470 JSR PC,PLL0
000070 012700 000604 MOV #604,R0
000074 016501 000042 MOV 42(R5),R1 ; *(DB),*
000100 004767 000000G JSR PC,$NLEND
000104 105376 000004 DECB @4(SP) ; 2183
000110 012700 100174 MOV #-77604,R0 ; 2184
000114 004767 000000V JSR PC,SEND.PERSISTENT.ERROR
000120 052765 002000 000170 BIS #2000,170(R5) ; *,*(DB) 2185
000126 012700 000170 MOV #170,R0 ; 2186
000132 060500 ADD R5,R0 ; DB,*
000134 004767 000000G JSR PC,$IC8
000140 004767 175064 JSR PC,DEVICE.BROKEN ; 2187
000144 000525 BR 6$ ; 2180
000146 012766 000110 000002 1$: MOV #110,2(SP) ; 2191
000154 060566 000002 ADD R5,2(SP) ; DB,*
000160 005776 000002 TST @2(SP)
000164 001020 BNE 3$
000166 004767 000000G JSR PC,$RDBGT ; 2198
000172 103405 BCS 2$
000174 010400 MOV R4,R0 ; $MCB$R4,CCB
000176 010046 MOV R0,-(SP) ; CCB,*
000200 004767 177312 JSR PC,NEW.RCB
000204 005726 TST (SP)+
000206 005776 000002 2$: TST @2(SP) ; 2202
000212 001005 BNE 3$
000214 105376 000004 DECB @4(SP) ; 2205
000220 004767 000000G JSR PC,$RDBRQ ; 2206
000224 000475 BR 6$ ; 2204
000226 010500 3$: MOV R5,R0 ; DB,* 2210
000230 062700 000064 ADD #64,R0
000234 012702 000003 MOV #3,R2
000240 010003 MOV R0,R3
000242 004767 176220 JSR PC,EXMHSM
000246 027665 000000 000172 CMP @0(SP),172(R5) ; *,*(DB) 2212
000254 003446 BLE 4$
000256 004767 000000G JSR PC,$NLBEG ; 2217
000262 012746 000007 MOV #7,-(SP)
000266 017600 000002 MOV @2(SP),R0
000272 004767 000000G JSR PC,$DPDU2
000276 012716 000010 MOV #10,(SP)
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 79
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (36)
000302 016500 000172 MOV 172(R5),R0 ; *(DB),*
000306 004767 000000G JSR PC,$DPDU2
000312 012700 000511 MOV #511,R0
000316 016501 000040 MOV 40(R5),R1 ; *(DB),*
000322 004767 000000G JSR PC,$NLEND
000326 105376 000006 DECB @6(SP) ; 2218
000332 012700 100174 MOV #-77604,R0 ; 2219
000336 004767 000000V JSR PC,SEND.PERSISTENT.ERROR
000342 052765 004000 000170 BIS #4000,170(R5) ; *,*(DB) 2220
000350 012700 000170 MOV #170,R0 ; 2221
000354 060500 ADD R5,R0 ; DB,*
000356 004767 000000G JSR PC,$IC8
000362 004767 177276 JSR PC,PROTOCOL.BROKEN ; 2222
000366 005726 TST (SP)+ ; 2212
000370 000413 BR 6$ ; 2214
000372 152765 000001 000074 4$: BISB #1,74(R5) ; *,*(DB) 2226
000400 012702 000002 MOV #2,R2 ; 2227
000404 016603 000004 MOV 4(SP),R3
000410 004767 174602 JSR PC,DEPMYH
000414 004767 000000V 5$: JSR PC,RECEIVE.SEGMENT ; 2228
000420 062706 000006 6$: ADD #6,SP ; 2135
000424 000207 RTS PC
; Routine Size: 139 words, Routine Base: $CODE$ + 3414
; Maximum stack depth per invocation: 5 words
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 80
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (37)
; 2230 routine RECEIVE_SEGMENT (DB) : DTE_DB novalue =
; 2231
; 2232 !++
; 2233 ! FUNCTIONAL DESCRIPTION:
; 2234 !
; 2235 !
; 2236 ! FORMAL PARAMETERS:
; 2237 ! DB = address of DTE data base.
; 2238 !
; 2239 ! IMPLICIT INPUTS:
; 2240 ! None
; 2241 !
; 2242 ! IMPLICIT OUTPUTS:
; 2243 ! None
; 2244 !
; 2245 ! ROUTINE VALUE:
; 2246 ! COMPLETION CODES:
; 2247 ! None
; 2248 !
; 2249 ! SIDE EFFECTS:
; 2250 ! None
; 2251 !--
; 2252
; 2253 begin
; 2254 GET_DTE_DATA_BASE (DB)
; 2255
; 2256 local
; 2257 DTE : ref block field (DTE_FIELDS);
; 2258
; 2259 if .DB [D_RCT] neq 0 then return;
; 2260
; 2261 if .DB [$SUB_FIELD (D_RQZ, PSIZE)] eql 0 then return;
; 2262
; 2263 if .DB [$SUB_FIELD (D_RQZ, CSIZE)] eql 0 then return;
; 2264
; 2265 if .DB [$SUB_FIELD (D_XMQ, LIST_FIRST)] neq 0 and
; 2266 .DB [$SUB_FIELD (D_RBA, PHYSICAL_HIGH)] neq
; 2267 .DB [$SUB_FIELD (D_XBA, PHYSICAL_HIGH)] then return;
; 2268
; 2269 if .DB [DF_FLUSHING_DTE] then return;
; 2270
; 2271 DTE = .DB [D_REGISTER];
; 2272 DTE_EXT (.DTE, .DB [$SUB_FIELD (D_RBA, PHYSICAL_HIGH)]);
; 2273 DTE [TO11AD] = .DB [$SUB_FIELD (D_RBA, PHYSICAL_LOW)];
; 2274 DB [D_RCT] = (if .DB [$SUB_FIELD (D_RBA, PHYSICAL_LOW)] eql 0
; 2275 then .DB [$SUB_FIELD (D_RQZ, CSIZE)]
; 2276 else MINU (-.DB [$SUB_FIELD (D_RBA, PHYSICAL_LOW)],
; 2277 .DB [$SUB_FIELD (D_RQZ, CSIZE)]));
; 2278 begin
; 2279
; 2280 local
; 2281 VALUE : block [1] field (TO11BM, TO11IB, TO11CM);
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 81
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (37)
; 2282
; 2283 VALUE = 0;
; 2284
; 2285 if .DB [$SUB_FIELD (D_RQZ, CSIZE)] eql .DB [D_RCT] then VALUE [TO11IB] = 1;
; 2286
; 2287 VALUE [TO11CM] = -(if .DB [$SUB_FIELD (D_RQZ, TMODE)] eql 0
; 2288 then
; 2289 begin
; 2290 VALUE [TO11BM] = 1;
; 2291 .DB [D_RCT]
; 2292 end
; 2293 else
; 2294 (.DB [D_RCT] + 1)^-1);
; 2295
; 2296 DTE [TO11BC] = .VALUE;
; 2297 end;
; 2298 DB [D_LONG_TIMER] = DTE_K_TRANSMIT_DOORBELL_TIMEOUT + 2;
; 2299 end; !of routine RECEIVE_SEGMENT
.SBTTL RECEIVE.SEGMENT
000000 012703 000116 RECEIVE.SEGMENT:
MOV #116,R3 ; 2259
000004 060503 ADD R5,R3 ; DB,*
000006 005713 TST (R3)
000010 001103 BNE 7$
000012 005765 000066 TST 66(R5) ; *(DB) 2261
000016 001500 BEQ 7$
000020 016501 000064 MOV 64(R5),R1 ; *(DB),* 2263
000024 001475 BEQ 7$
000026 005765 000120 TST 120(R5) ; *(DB) 2265
000032 001404 BEQ 1$
000034 026565 000112 000130 CMP 112(R5),130(R5) ; *(DB),*(DB) 2266
000042 001066 BNE 7$ ; 2267
000044 032715 020000 1$: BIT #20000,(R5) ; *,DB 2269
000050 001063 BNE 7$
000052 016502 000002 MOV 2(R5),R2 ; *(DB),DTE 2271
000056 005000 CLR R0 ; VALUE 2272
000060 016504 000112 MOV 112(R5),R4 ; *(DB),*
000064 072427 000016 ASH #16,R4
000070 042700 140000 BIC #140000,R0 ; *,VALUE
000074 050400 BIS R4,R0 ; *,VALUE
000076 010062 177744 MOV R0,-34(R2) ; VALUE,*(DTE)
000102 016500 000114 MOV 114(R5),R0 ; *(DB),* 2273
000106 010062 177766 MOV R0,-12(R2) ; *,*(DTE)
000112 001403 BEQ 2$ ; 2274
000114 005400 NEG R0 ; 2276
000116 020001 CMP R0,R1
000120 101401 BLOS 3$
000122 010100 2$: MOV R1,R0
000124 010013 3$: MOV R0,(R3) ; 2274
000126 005001 CLR R1 ; VALUE 2283
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 82
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (37)
000130 026500 000064 CMP 64(R5),R0 ; *(DB),* 2285
000134 001002 BNE 4$
000136 052701 100000 BIS #100000,R1 ; *,VALUE
000142 132765 000017 000070 4$: BITB #17,70(R5) ; *,*(DB) 2287
000150 001004 BNE 5$
000152 052701 020000 BIS #20000,R1 ; *,VALUE 2290
000156 011300 MOV (R3),R0 ; 2287
000160 000403 BR 6$
000162 011300 5$: MOV (R3),R0 ; 2294
000164 005200 INC R0
000166 006200 ASR R0
000170 005400 6$: NEG R0 ; 2287
000172 010003 MOV R0,R3
000174 042703 170000 BIC #170000,R3
000200 042701 007777 BIC #7777,R1 ; *,VALUE
000204 050301 BIS R3,R1 ; *,VALUE
000206 010162 177762 MOV R1,-16(R2) ; VALUE,*(DTE) 2296
000212 112765 000005 000020 MOVB #5,20(R5) ; *,*(DB) 2298
000220 000207 7$: RTS PC ; 2230
; Routine Size: 73 words, Routine Base: $CODE$ + 4042
; Maximum stack depth per invocation: 0 words
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 83
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (38)
; 2300 routine SCHEDULE_PERSISTENT_AST (CCB, DB) : DTE_CCB_DB novalue =
; 2301
; 2302 !++
; 2303 ! FUNCTIONAL DESCRIPTION:
; 2304 !
; 2305 !
; 2306 ! FORMAL PARAMETERS:
; 2307 ! CCB = address of CCB to use for status nodification.
; 2308 ! DB = address of DTE data base.
; 2309 !
; 2310 ! IMPLICIT INPUTS:
; 2311 ! None
; 2312 !
; 2313 ! IMPLICIT OUTPUTS:
; 2314 ! None
; 2315 !
; 2316 ! ROUTINE VALUE:
; 2317 ! COMPLETION CODES:
; 2318 ! None
; 2319 !
; 2320 ! SIDE EFFECTS:
; 2321 ! None
; 2322 !--
; 2323
; 2324 begin
; 2325 GET_DTE_DATA_BASE (DB)
; 2326
; 2327 map
; 2328 CCB : ref block field (C_FIELDS);
; 2329
; 2330 CCB [C_HANDLE] = .DB [D_OWNER_HANDLE];
; 2331 CCB [C_FNC] = FC_AST;
; 2332 CCB [C_MOD] = DLL$K_PERSISTENT_ERROR;
; 2333 CCB [C_STS] = .DB [D_PERSISTENT_ERROR];
; 2334 $MCB_SCHEDULE_CCB (.CCB);
; 2335 DB [D_PERSISTENT_ERROR] = 0;
; 2336 end; !of routine SCHEDULE_PERSISTENT_AST
.SBTTL SCHEDULE.PERSISTENT.AST
000000 016564 000022 000010 SCHEDULE.PERSISTENT.AST:
MOV 22(R5),10(R4) ; *(DB),*(CCB) 2330
000006 105064 000012 CLRB 12(R4) ; *(CCB) 2331
000012 112764 000004 000013 MOVB #4,13(R4) ; *,*(CCB) 2332
000020 016564 000026 000014 MOV 26(R5),14(R4) ; *(DB),*(CCB) 2333
000026 004767 000000G JSR PC,$SCHED ; 2334
000032 005065 000026 CLR 26(R5) ; *(DB) 2335
000036 000207 RTS PC ; 2300
; Routine Size: 16 words, Routine Base: $CODE$ + 4264
; Maximum stack depth per invocation: 1 word
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 84
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (39)
; 2337 routine SCHEDULE_RECEIVE (CCB, DB) : DTE_CCB_DB novalue =
; 2338
; 2339 !++
; 2340 ! FUNCTIONAL DESCRIPTION:
; 2341 !
; 2342 !
; 2343 ! FORMAL PARAMETERS:
; 2344 ! DB = address of DTE data base.
; 2345 !
; 2346 ! IMPLICIT INPUTS:
; 2347 ! None
; 2348 !
; 2349 ! IMPLICIT OUTPUTS:
; 2350 ! None
; 2351 !
; 2352 ! ROUTINE VALUE:
; 2353 ! COMPLETION CODES:
; 2354 ! None
; 2355 !
; 2356 ! SIDE EFFECTS:
; 2357 ! None
; 2358 !--
; 2359
; 2360 begin
; 2361 GET_DTE_DATA_BASE (DB)
; 2362
; 2363 map
; 2364 CCB : ref block field (C_FIELDS);
; 2365
; 2366 CCB [C_HANDLE] = .DB [D_OWNER_HANDLE];
; 2367
; 2368 if .CCB [C_HANDLE] eqlu 0 then return RDBRT$ (.CCB);
; 2369
; 2370 DB [D_ACTIVE_BUFFERS] = .DB [D_ACTIVE_BUFFERS] + 1;
; 2371 CCB [C_FNC] = FC_RCP;
; 2372 CCB [C_MOD] = DLL$K_DATA_RECEIVED;
; 2373 CCB [C_STS] = DLL$_SUCCESS;
; 2374 $MCB_SCHEDULE_CCB (.CCB);
; 2375 end; !of routine SCHEDULE_RECEIVE
.SBTTL SCHEDULE.RECEIVE
000000 010400 SCHEDULE.RECEIVE:
MOV R4,R0 ; *,CCB 2337
000002 016560 000022 000010 MOV 22(R5),10(R0) ; *(DB),*(CCB) 2366
000010 001003 BNE 1$ ; 2368
000012 004767 000000G JSR PC,$RDBRT
000016 000207 RTS PC
000020 005265 000034 1$: INC 34(R5) ; *(DB) 2370
000024 112760 000016 000012 MOVB #16,12(R0) ; *,*(CCB) 2371
000032 105060 000013 CLRB 13(R0) ; *(CCB) 2372
000036 012760 100001 000014 MOV #-77777,14(R0) ; *,*(CCB) 2373
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 85
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (39)
000044 010004 MOV R0,R4 ; CCB,* 2374
000046 004767 000000G JSR PC,$SCHED
000052 000207 RTS PC ; 2337
; Routine Size: 22 words, Routine Base: $CODE$ + 4324
; Maximum stack depth per invocation: 1 word
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 86
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (40)
; 2376 routine SCHEDULE_STATE_AST (CCB, DB) : DTE_CCB_DB novalue =
; 2377
; 2378 !++
; 2379 ! FUNCTIONAL DESCRIPTION:
; 2380 !
; 2381 !
; 2382 ! FORMAL PARAMETERS:
; 2383 ! CCB = address of CCB to use for status nodification.
; 2384 ! DB = address of DTE data base.
; 2385 !
; 2386 ! IMPLICIT INPUTS:
; 2387 ! None
; 2388 !
; 2389 ! IMPLICIT OUTPUTS:
; 2390 ! None
; 2391 !
; 2392 ! ROUTINE VALUE:
; 2393 ! COMPLETION CODES:
; 2394 ! None
; 2395 !
; 2396 ! SIDE EFFECTS:
; 2397 ! None
; 2398 !--
; 2399
; 2400 begin
; 2401 GET_DTE_DATA_BASE (DB)
; 2402
; 2403 map
; 2404 CCB : ref block field (C_FIELDS);
; 2405
; 2406 if not .DB [DF_NOTIFY_STATE] then return $MCB_RETURN_CCB (.CCB);
; 2407
; 2408 CCB [C_HANDLE] = .DB [D_OWNER_HANDLE];
; 2409 CCB [C_FNC] = FC_AST;
; 2410 CCB [C_MOD] = DLL$K_STATE;
; 2411 CCB [C_STS] = CURRENT_STATUS (DB [D_TIM]);
; 2412 $MCB_SCHEDULE_CCB (.CCB);
; 2413
; 2414 if .DB [DF_NOTIFY_STATE]
; 2415 then
; 2416
; 2417 if $MCB_GET_CCB (CCB)
; 2418 then
; 2419 SCHEDULE_STATE_AST (.CCB, DB [D_TIM])
; 2420 else
; 2421 $MCB_REQUEST_CCB ();
; 2422
; 2423 end; !of routine SCHEDULE_STATE_AST
.GLOBL $CCBRT, $CCBGT, $CCBRQ
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 87
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (40)
.SBTTL SCHEDULE.STATE.AST
000000 010146 SCHEDULE.STATE.AST:
MOV R1,-(SP) ; 2376
000002 010401 MOV R4,R1 ; *,CCB
000004 032715 004000 BIT #4000,(R5) ; *,DB 2406
000010 001003 BNE 1$
000012 004767 000000G JSR PC,$CCBRT
000016 000432 BR 3$
000020 016561 000022 000010 1$: MOV 22(R5),10(R1) ; *(DB),*(CCB) 2408
000026 105061 000012 CLRB 12(R1) ; *(CCB) 2409
000032 105061 000013 CLRB 13(R1) ; *(CCB) 2410
000036 004767 174064 JSR PC,CURRENT.STATUS ; 2411
000042 010061 000014 MOV R0,14(R1) ; *,*(CCB)
000046 010104 MOV R1,R4 ; CCB,* 2412
000050 004767 000000G JSR PC,$SCHED
000054 032715 004000 BIT #4000,(R5) ; *,DB 2414
000060 001411 BEQ 3$
000062 004767 000000G JSR PC,$CCBGT ; 2417
000066 103404 BCS 2$
000070 010401 MOV R4,R1 ; $MCB$R4,CCB
000072 004767 177702 JSR PC,SCHEDULE.STATE.AST ; 2419
000076 000402 BR 3$ ; 2417
000100 004767 000000G 2$: JSR PC,$CCBRQ ; 2421
000104 012601 3$: MOV (SP)+,R1 ; 2376
000106 000207 RTS PC
; Routine Size: 36 words, Routine Base: $CODE$ + 4400
; Maximum stack depth per invocation: 2 words
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 88
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (41)
; 2424 routine SCHEDULE_TRANSIENT_AST (CCB, DB) : DTE_CCB_DB novalue =
; 2425
; 2426 !++
; 2427 ! FUNCTIONAL DESCRIPTION:
; 2428 !
; 2429 !
; 2430 ! FORMAL PARAMETERS:
; 2431 ! CCB = address of CCB to use for status nodification.
; 2432 ! DB = address of DTE data base.
; 2433 !
; 2434 ! IMPLICIT INPUTS:
; 2435 ! None
; 2436 !
; 2437 ! IMPLICIT OUTPUTS:
; 2438 ! None
; 2439 !
; 2440 ! ROUTINE VALUE:
; 2441 ! COMPLETION CODES:
; 2442 ! None
; 2443 !
; 2444 ! SIDE EFFECTS:
; 2445 ! None
; 2446 !--
; 2447
; 2448 begin
; 2449 GET_DTE_DATA_BASE (DB)
; 2450
; 2451 map
; 2452 CCB : ref block field (C_FIELDS);
; 2453
; 2454 CCB [C_HANDLE] = .DB [D_OWNER_HANDLE];
; 2455 CCB [C_FNC] = FC_AST;
; 2456 CCB [C_MOD] = DLL$K_TRANSIENT_ERROR;
; 2457 CCB [C_STS] = .DB [D_TRANSIENT_ERROR];
; 2458 $MCB_SCHEDULE_CCB (.CCB);
; 2459 DB [D_TRANSIENT_ERROR] = 0;
; 2460 end; !of routine SCHEDULE_TRANSIENT_AST
.SBTTL SCHEDULE.TRANSIENT.AST
000000 016564 000022 000010 SCHEDULE.TRANSIENT.AST:
MOV 22(R5),10(R4) ; *(DB),*(CCB) 2454
000006 105064 000012 CLRB 12(R4) ; *(CCB) 2455
000012 112764 000002 000013 MOVB #2,13(R4) ; *,*(CCB) 2456
000020 016564 000024 000014 MOV 24(R5),14(R4) ; *(DB),*(CCB) 2457
000026 004767 000000G JSR PC,$SCHED ; 2458
000032 005065 000024 CLR 24(R5) ; *(DB) 2459
000036 000207 RTS PC ; 2424
; Routine Size: 16 words, Routine Base: $CODE$ + 4510
; Maximum stack depth per invocation: 1 word
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 89
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (42)
; 2461 routine SCHEDULE_TRANSMIT (CCB, DB, STATUS) : DTE_CCB_DB_STS novalue =
; 2462
; 2463 !++
; 2464 ! FUNCTIONAL DESCRIPTION:
; 2465 !
; 2466 !
; 2467 ! FORMAL PARAMETERS:
; 2468 ! DB = address of DTE data base.
; 2469 !
; 2470 ! IMPLICIT INPUTS:
; 2471 ! None
; 2472 !
; 2473 ! IMPLICIT OUTPUTS:
; 2474 ! None
; 2475 !
; 2476 ! ROUTINE VALUE:
; 2477 ! COMPLETION CODES:
; 2478 ! None
; 2479 !
; 2480 ! SIDE EFFECTS:
; 2481 ! None
; 2482 !--
; 2483
; 2484 begin
; 2485 GET_DTE_DATA_BASE (DB)
; 2486
; 2487 map
; 2488 CCB : ref block field (C_FIELDS);
; 2489
; 2490 CCB [C_FNC] = FC_XCP;
; 2491 CCB [C_STS] = .STATUS;
; 2492 $MCB_SCHEDULE_CCB (.CCB);
; 2493 DB [D_ACTIVE_BUFFERS] = .DB [D_ACTIVE_BUFFERS] - 1;
; 2494
; 2495 if .DB [D_ACTIVE_BUFFERS] neq 0 then return;
; 2496
; 2497 if .DB [DF_CONTROL_WAITING]
; 2498 then
; 2499 begin
; 2500 DB [DF_CONTROL_WAITING] = FALSE;
; 2501 FLUSH_QUEUE (DB [D_PENDING_CONTROLS], %quote $MCB_SCHEDULE_CCB);
; 2502 end;
; 2503
; 2504 end; !of routine SCHEDULE_TRANSMIT
.SBTTL SCHEDULE.TRANSMIT
000000 010346 SCHEDULE.TRANSMIT:
MOV R3,-(SP) ; 2461
000002 112764 000014 000012 MOVB #14,12(R4) ; *,*(CCB) 2490
000010 010064 000014 MOV R0,14(R4) ; STATUS,*(CCB) 2491
000014 004767 000000G JSR PC,$SCHED ; 2492
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 90
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (42)
000020 005365 000034 DEC 34(R5) ; *(DB) 2493
000024 001016 BNE 2$ ; 2495
000026 032715 010000 BIT #10000,(R5) ; *,DB 2497
000032 001413 BEQ 2$
000034 042715 010000 BIC #10000,(R5) ; *,DB 2500
000040 012703 000030 MOV #30,R3 ; 2501
000044 060503 ADD R5,R3 ; DB,*
000046 004767 000000G 1$: JSR PC,$CMQRM
000052 103403 BCS 2$
000054 004767 000000G JSR PC,$SCHED
000060 000772 BR 1$
000062 012603 2$: MOV (SP)+,R3 ; 2461
000064 000207 RTS PC
; Routine Size: 27 words, Routine Base: $CODE$ + 4550
; Maximum stack depth per invocation: 2 words
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 91
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (43)
; 2505 routine SEND_PERSISTENT_ERROR (DB, STATUS) : DTE_DB_STS novalue =
; 2506
; 2507 !++
; 2508 ! FUNCTIONAL DESCRIPTION:
; 2509 !
; 2510 !
; 2511 ! FORMAL PARAMETERS:
; 2512 ! DB = address of DTE data base.
; 2513 !
; 2514 ! IMPLICIT INPUTS:
; 2515 ! None
; 2516 !
; 2517 ! IMPLICIT OUTPUTS:
; 2518 ! None
; 2519 !
; 2520 ! ROUTINE VALUE:
; 2521 ! COMPLETION CODES:
; 2522 ! None
; 2523 !
; 2524 ! SIDE EFFECTS:
; 2525 ! None
; 2526 !--
; 2527
; 2528 begin
; 2529 GET_DTE_DATA_BASE (DB)
; 2530
; 2531 local
; 2532 CCB : ref block field (C_FIELDS);
; 2533
; 2534 if .DB [D_OWNER_HANDLE] eql 0 then return;
; 2535
; 2536 DB [D_PERSISTENT_ERROR] = .STATUS;
; 2537
; 2538 if $MCB_GET_CCB (CCB)
; 2539 then
; 2540 SCHEDULE_PERSISTENT_AST (.CCB, DB [D_TIM])
; 2541 else
; 2542 $MCB_REQUEST_CCB ();
; 2543
; 2544 end; !of routine SEND_PERSISTENT_ERROR
.SBTTL SEND.PERSISTENT.ERROR
000000 005765 000022 SEND.PERSISTENT.ERROR:
TST 22(R5) ; *(DB) 2534
000004 001412 BEQ 2$
000006 010065 000026 MOV R0,26(R5) ; STATUS,*(DB) 2536
000012 004767 000000G JSR PC,$CCBGT ; 2538
000016 103403 BCS 1$
000020 004767 177402 JSR PC,SCHEDULE.PERSISTENT.AST ; 2540
000024 000207 RTS PC ; 2538
000026 004767 000000G 1$: JSR PC,$CCBRQ ; 2542
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 92
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (43)
000032 000207 2$: RTS PC ; 2505
; Routine Size: 14 words, Routine Base: $CODE$ + 4636
; Maximum stack depth per invocation: 1 word
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 93
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (44)
; 2545 routine SEND_STATE (DB) : DTE_DB novalue =
; 2546
; 2547 !++
; 2548 ! FUNCTIONAL DESCRIPTION:
; 2549 !
; 2550 !
; 2551 ! FORMAL PARAMETERS:
; 2552 ! DB = address of DTE data base.
; 2553 !
; 2554 ! IMPLICIT INPUTS:
; 2555 ! None
; 2556 !
; 2557 ! IMPLICIT OUTPUTS:
; 2558 ! None
; 2559 !
; 2560 ! ROUTINE VALUE:
; 2561 ! COMPLETION CODES:
; 2562 ! None
; 2563 !
; 2564 ! SIDE EFFECTS:
; 2565 ! None
; 2566 !--
; 2567
; 2568 begin
; 2569 GET_DTE_DATA_BASE (DB)
; 2570
; 2571 local
; 2572 CCB : ref block field (C_FIELDS);
; 2573
; 2574 if .DB [D_OWNER_HANDLE] eql 0 then return;
; 2575
; 2576 if .DB [D_PROTOCOL_STATE] eql DS_HALTED then DB [DF_NOTIFY_OFF] = TRUE;
; 2577
; 2578 DB [DF_NOTIFY_STATE] = TRUE;
; 2579
; 2580 if $MCB_GET_CCB (CCB)
; 2581 then
; 2582 SCHEDULE_STATE_AST (.CCB, DB [D_TIM])
; 2583 else
; 2584 $MCB_REQUEST_CCB ();
; 2585
; 2586 end; !of routine SEND_STATE
.SBTTL SEND.STATE
000000 005765 000022 SEND.STATE:
TST 22(R5) ; *(DB) 2574
000004 001417 BEQ 3$
000006 105765 000012 TSTB 12(R5) ; *(DB) 2576
000012 001002 BNE 1$
000014 052715 002000 BIS #2000,(R5) ; *,DB
000020 052715 004000 1$: BIS #4000,(R5) ; *,DB 2578
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 94
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (44)
000024 004767 000000G JSR PC,$CCBGT ; 2580
000030 103403 BCS 2$
000032 004767 177450 JSR PC,SCHEDULE.STATE.AST ; 2582
000036 000207 RTS PC ; 2580
000040 004767 000000G 2$: JSR PC,$CCBRQ ; 2584
000044 000207 3$: RTS PC ; 2545
; Routine Size: 19 words, Routine Base: $CODE$ + 4672
; Maximum stack depth per invocation: 1 word
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 95
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (45)
; 2587 routine SEND_TRANSIENT_ERROR (DB, STATUS) : DTE_DB_STS novalue =
; 2588
; 2589 !++
; 2590 ! FUNCTIONAL DESCRIPTION:
; 2591 !
; 2592 !
; 2593 ! FORMAL PARAMETERS:
; 2594 ! DB = address of DTE data base.
; 2595 !
; 2596 ! IMPLICIT INPUTS:
; 2597 ! None
; 2598 !
; 2599 ! IMPLICIT OUTPUTS:
; 2600 ! None
; 2601 !
; 2602 ! ROUTINE VALUE:
; 2603 ! COMPLETION CODES:
; 2604 ! None
; 2605 !
; 2606 ! SIDE EFFECTS:
; 2607 ! None
; 2608 !--
; 2609
; 2610 begin
; 2611 GET_DTE_DATA_BASE (DB)
; 2612
; 2613 local
; 2614 CCB : ref block field (C_FIELDS);
; 2615
; 2616 if .DB [D_OWNER_HANDLE] eql 0 then return;
; 2617
; 2618 DB [D_TRANSIENT_ERROR] = .STATUS;
; 2619
; 2620 if $MCB_GET_CCB (CCB)
; 2621 then
; 2622 SCHEDULE_TRANSIENT_AST (.CCB, DB [D_TIM])
; 2623 else
; 2624 $MCB_REQUEST_CCB ();
; 2625
; 2626 end; !of routine SEND_TRANSIENT_ERROR
.SBTTL SEND.TRANSIENT.ERROR
000000 005765 000022 SEND.TRANSIENT.ERROR:
TST 22(R5) ; *(DB) 2616
000004 001412 BEQ 2$
000006 010065 000024 MOV R0,24(R5) ; STATUS,*(DB) 2618
000012 004767 000000G JSR PC,$CCBGT ; 2620
000016 103403 BCS 1$
000020 004767 177524 JSR PC,SCHEDULE.TRANSIENT.AST ; 2622
000024 000207 RTS PC ; 2620
000026 004767 000000G 1$: JSR PC,$CCBRQ ; 2624
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 96
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (45)
000032 000207 2$: RTS PC ; 2587
; Routine Size: 14 words, Routine Base: $CODE$ + 4740
; Maximum stack depth per invocation: 1 word
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 97
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (46)
; 2627 routine TIMCCB (DB, CCB) : MCB_DB_CCB novalue =
; 2628
; 2629 !++
; 2630 ! FUNCTIONAL DESCRIPTION:
; 2631 !
; 2632 !
; 2633 ! FORMAL PARAMETERS:
; 2634 ! DB = address of DTE data base.
; 2635 ! CCB =
; 2636 !
; 2637 ! IMPLICIT INPUTS:
; 2638 ! None
; 2639 !
; 2640 ! IMPLICIT OUTPUTS:
; 2641 ! None
; 2642 !
; 2643 ! ROUTINE VALUE:
; 2644 ! COMPLETION CODES:
; 2645 ! None
; 2646 !
; 2647 ! SIDE EFFECTS:
; 2648 ! None
; 2649 !--
; 2650
; 2651 begin
; 2652 GET_DTE_DATA_BASE (DB)
; 2653
; 2654 map
; 2655 CCB : ref block field (C_FIELDS);
; 2656
; 2657 label
; 2658 RECOVERY;
; 2659
; 2660 if .DB [D_OWNER_HANDLE] eql 0 then return $MCB_RETURN_CCB (.CCB);
; 2661
; 2662 do RECOVERY :
; 2663 begin
; 2664
; 2665 if .DB [DF_NOTIFY_STATE] or .DB [DF_NOTIFY_OFF]
; 2666 then
; 2667 leave RECOVERY with SCHEDULE_STATE_AST (.CCB, DB [D_TIM]);
; 2668
; 2669 if .DB [D_TRANSIENT_ERROR] neq 0
; 2670 then
; 2671 leave RECOVERY with SCHEDULE_TRANSIENT_AST (.CCB, DB [D_TIM]);
; 2672
; 2673 if .DB [D_PERSISTENT_ERROR] neq 0
; 2674 then
; 2675 leave RECOVERY with SCHEDULE_PERSISTENT_AST (.CCB, DB [D_TIM]);
; 2676
; 2677 return $MCB_RETURN_CCB (.CCB);
; 2678 end
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 98
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (46)
; 2679 while $MCB_GET_CCB (CCB);
; 2680
; 2681 end; !of routine TIMCCB
.SBTTL TIMCCB
000000 010401 TIMCCB: MOV R4,R1 ; *,CCB 2627
000002 005765 000022 TST 22(R5) ; *(DB) 2660
000006 001430 BEQ 5$
000010 032715 004000 1$: BIT #4000,(R5) ; *,DB 2665
000014 001003 BNE 2$
000016 032715 002000 BIT #2000,(R5) ; *,DB
000022 001404 BEQ 3$
000024 010104 2$: MOV R1,R4 ; CCB,* 2667
000026 004767 177352 JSR PC,SCHEDULE.STATE.AST
000032 000422 BR 7$
000034 005765 000024 3$: TST 24(R5) ; *(DB) 2669
000040 001404 BEQ 4$
000042 010104 MOV R1,R4 ; CCB,* 2671
000044 004767 177444 JSR PC,SCHEDULE.TRANSIENT.AST
000050 000413 BR 7$
000052 005765 000026 4$: TST 26(R5) ; *(DB) 2673
000056 001404 BEQ 5$
000060 010104 MOV R1,R4 ; CCB,* 2675
000062 004767 177202 JSR PC,SCHEDULE.PERSISTENT.AST
000066 000404 BR 7$
000070 010104 5$: MOV R1,R4 ; CCB,* 2677
000072 004767 000000G JSR PC,$CCBRT
000076 000207 6$: RTS PC ; 2662
000100 004767 000000G 7$: JSR PC,$CCBGT ; 2679
000104 103774 BCS 6$
000106 010401 MOV R4,R1 ; $MCB$R4,CCB
000110 000737 BR 1$
; Routine Size: 37 words, Routine Base: $CODE$ + 4774
; Maximum stack depth per invocation: 1 word
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 99
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (47)
; 2682 routine TIMLTM (DB) : MCB_DB novalue =
; 2683
; 2684 !++
; 2685 ! FUNCTIONAL DESCRIPTION:
; 2686 !
; 2687 !
; 2688 ! FORMAL PARAMETERS:
; 2689 ! DB = address of DTE data base.
; 2690 !
; 2691 ! IMPLICIT INPUTS:
; 2692 ! None
; 2693 !
; 2694 ! IMPLICIT OUTPUTS:
; 2695 ! None
; 2696 !
; 2697 ! ROUTINE VALUE:
; 2698 ! COMPLETION CODES:
; 2699 ! None
; 2700 !
; 2701 ! SIDE EFFECTS:
; 2702 ! None
; 2703 !--
; 2704
; 2705 begin
; 2706 GET_DTE_DATA_BASE (DB)
; 2707 DB [D_TIM] = .DB [D_TIM] + 1;
; 2708
; 2709 if .DB [D_DEVICE_STATE] eql DD_CLEARED then return;
; 2710
; 2711 !
; 2712 ! Update my keep-alive and get his status.
; 2713 ! Handle lost doorbells
; 2714 !
; 2715
; 2716 case .DB [D_PROTOCOL_STATE] from DS_STA_LOW to DS_STA_HIGH of
; 2717 set
; 2718
; 2719 [DS_INITIALIZING, DS_RUNNING, DS_PAUSED] :
; 2720 begin
; 2721 DB [D_MKA] = .DB [D_MKA] + 1;
; 2722 DEPMYG (DB [D_TIM], KPALIV, DB [D_MKA]);
; 2723 GET_HIS_STATUS (DB [D_TIM]);
; 2724
; 2725 if DTE_RINGING (.DB [D_REGISTER])
; 2726 then
; 2727 ANSWER_DOORBELL (DB [D_TIM]);
; 2728
; 2729 if .DB [D_PROTOCOL_STATE] EQL DS_RUNNING
; 2730 then
; 2731
; 2732 if not PAUSED (DB [D_TIM])
; 2733 then
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 100
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (47)
; 2734
; 2735 if not INITIALIZATION_REQUESTED (DB [D_TIM])
; 2736 then
; 2737 begin
; 2738 TRANSMIT_MESSAGE (DB [D_TIM]);
; 2739 RECEIVE_MESSAGE (DB [D_TIM]);
; 2740 end;
; 2741
; 2742 end;
; 2743
; 2744 [inrange] :
; 2745 NO_OPERATION;
; 2746
; 2747 tes;
; 2748
; 2749 if .DB [D_LONG_TIMER] neq 0
; 2750 then
; 2751
; 2752 if (DB [D_LONG_TIMER] = .DB [D_LONG_TIMER] - 1) eql 0
; 2753 then
; 2754
; 2755 case .DB [D_PROTOCOL_STATE] from DS_STA_LOW to DS_STA_HIGH of
; 2756 set
; 2757
; 2758 [DS_COM] :
; 2759 begin
; 2760 GETCOM (DB [D_TIM]);
; 2761
; 2762 if .DB [D_PROTOCOL_STATE] eql DS_COM
; 2763 then %(device not ready)%
; 2764
; 2765 if (DB [D_START_THRESHOLD] = .DB [D_START_THRESHOLD] - 1) eql 0
; 2766 then
; 2767 begin
; 2768 SEND_TRANSIENT_ERROR (DB [D_TIM], DLL$_TRANSMIT_THRESHOLD);
; 2769 DB [D_START_THRESHOLD] = 7;
; 2770 end;
; 2771
; 2772 end;
; 2773
; 2774 [DS_INITIALIZING] :
; 2775 begin %(initialization timeout)%
; 2776 DB [D_LONG_TIMER] = DTE_K_START_TIMEOUT;
; 2777
; 2778 if (DB [D_START_THRESHOLD] = .DB [D_START_THRESHOLD] - 1) eql 0
; 2779 then
; 2780 begin
; 2781 SEND_TRANSIENT_ERROR (DB [D_TIM], DLL$_TRANSMIT_THRESHOLD);
; 2782 DB [D_START_THRESHOLD] = 7;
; 2783 end;
; 2784
; 2785 end;
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 101
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (47)
; 2786
; 2787 [DS_RUNNING] :
; 2788 begin
; 2789 if .DB[ $sub_field( D_RST, RCV)] eql 0
; 2790 then
; 2791 begin
; 2792 COUNTER_INCREMENT( DB, D_LOST_DOORBELL);
; 2793 COUNTER_INCREMENT( DB, D_DEVICE_SERVICE_ERRORS);
; 2794 DTE_SET ( .DB[ D_REGISTER], INT10S);
; 2795 DB[ D_LONG_TIMER] = DTE_K_TRANSMIT_DOORBELL_TIMEOUT;
; 2796 end;
; 2797 end;
; 2798
; 2799 [DS_PAUSED] :
; 2800 if .DB [$SUB_FIELD (D_RST, V)]
; 2801 then
; 2802 begin
; 2803 CHANGE_PROTOCOL_STATE (DB [D_TIM], DS_RUNNING, RMT);
; 2804
; 2805 if not INITIALIZATION_REQUESTED (DB [D_TIM])
; 2806 then
; 2807 begin
; 2808 TRANSMIT_MESSAGE (DB [D_TIM]);
; 2809 RECEIVE_MESSAGE (DB [D_TIM]);
; 2810 end;
; 2811 end
; 2812 else
; 2813 begin
; 2814 SEND_PERSISTENT_ERROR (DB [D_TIM], DLL$_PAUSE_TIMEOUT);
; 2815 ! Pause too long
; 2816 DEVICE_BROKEN (DB [D_TIM]);
; 2817 end;
; 2818
; 2819 [inrange] :
; 2820 NO_OPERATION;
; 2821
; 2822 tes;
; 2823
; 2824 end; !of routine TIMLTM
.SBTTL TIMLTM
000000 024646 TIMLTM: CMP -(SP),-(SP) ; 2682
000002 105215 INCB (R5) ; DB 2707
000004 105765 000016 TSTB 16(R5) ; *(DB) 2709
000010 001577 BEQ 8$
000012 012766 000012 000002 MOV #12,2(SP) ; 2716
000020 060566 000002 ADD R5,2(SP) ; DB,*
000024 117600 000002 MOVB @2(SP),R0
000030 006300 ASL R0
000032 066007 000174' ADD P.AAL(R0),PC ; Case dispatch
000036 005265 000106 1$: INC 106(R5) ; *(DB) 2721
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 102
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (47)
000042 012703 000106 MOV #106,R3 ; 2722
000046 060503 ADD R5,R3 ; DB,*
000050 012702 000005 MOV #5,R2
000054 004767 173436 JSR PC,DEPMYG
000060 004767 174752 JSR PC,GET.HIS.STATUS ; 2723
000064 032775 004000 000002 BIT #4000,@2(R5) ; *,*(DB) 2725
000072 001402 BEQ 2$
000074 004767 172572 JSR PC,ANSWER.DOORBELL ; 2727
000100 127627 000002 000003 2$: CMPB @2(SP),#3 ; 2729
000106 001014 BNE 3$
000110 004767 176010 JSR PC,PAUSED ; 2732
000114 006000 ROR R0
000116 103410 BLO 3$
000120 004767 175642 JSR PC,INITIALIZATION.REQUESTED ; 2735
000124 006000 ROR R0
000126 103404 BLO 3$
000130 004767 000000V JSR PC,TRANSMIT.MESSAGE ; 2738
000134 004767 176146 JSR PC,RECEIVE.MESSAGE ; 2739
000140 012716 000020 3$: MOV #20,(SP) ; 2749
000144 060516 ADD R5,(SP) ; DB,*
000146 105776 000000 TSTB @0(SP)
000152 001551 BEQ 12$
000154 005000 CLR R0 ; 2752
000156 157600 000000 BISB @0(SP),R0
000162 005300 DEC R0
000164 110076 000000 MOVB R0,@0(SP)
000170 005700 TST R0
000172 001141 BNE 12$
000174 117600 000002 MOVB @2(SP),R0 ; 2755
000200 006300 ASL R0
000202 066007 000206' ADD P.AAM(R0),PC ; Case dispatch
000206 004767 174656 4$: JSR PC,GETCOM ; 2760
000212 127627 000002 000001 CMPB @2(SP),#1 ; 2762
000220 001126 BNE 12$
000222 017600 000000 MOV @0(SP),R0 ; 2765
000226 105000 CLRB R0
000230 000300 SWAB R0
000232 005300 DEC R0
000234 017646 000000 MOV @0(SP),-(SP)
000240 110066 000001 MOVB R0,1(SP)
000244 012676 000000 MOV (SP)+,@0(SP)
000250 005700 TST R0
000252 001111 BNE 12$
000254 000420 BR 6$ ; 2768
000256 112776 000005 000000 5$: MOVB #5,@0(SP) ; 2776
000264 017600 000000 MOV @0(SP),R0 ; 2778
000270 105000 CLRB R0
000272 000300 SWAB R0
000274 005300 DEC R0
000276 017646 000000 MOV @0(SP),-(SP)
000302 110066 000001 MOVB R0,1(SP)
000306 012676 000000 MOV (SP)+,@0(SP)
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 103
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (47)
000312 005700 TST R0
000314 001070 BNE 12$
000316 012700 100100 6$: MOV #-77700,R0 ; 2781
000322 004767 177304 JSR PC,SEND.TRANSIENT.ERROR
000326 042776 177400 000000 BIC #177400,@0(SP) ; 2782
000334 052776 003400 000000 BIS #3400,@0(SP)
000342 000455 BR 12$ ; 2755
000344 132765 000001 000060 7$: BITB #1,60(R5) ; *,*(DB) 2789
000352 001051 BNE 12$
000354 052765 010000 000164 BIS #10000,164(R5) ; *,*(DB) 2792
000362 012700 000164 MOV #164,R0 ; 2793
000366 060500 ADD R5,R0 ; DB,*
000370 004767 000000G JSR PC,$IC8
000374 012775 000400 000002 MOV #400,@2(R5) ; *,*(DB) 2794
000402 112776 000003 000000 MOVB #3,@0(SP) ; 2795
000410 000432 8$: BR 12$ ; 2755
000412 132765 000001 000062 9$: BITB #1,62(R5) ; *,*(DB) 2800
000420 001420 BEQ 11$
000422 012746 000003 MOV #3,-(SP) ; 2803
000426 012746 000001 MOV #1,-(SP)
000432 004767 172526 JSR PC,CHANGE.PROTOCOL.STATE
000436 004767 175324 JSR PC,INITIALIZATION.REQUESTED ; 2805
000442 006000 ROR R0
000444 103404 BLO 10$
000446 004767 000000V JSR PC,TRANSMIT.MESSAGE ; 2808
000452 004767 175630 JSR PC,RECEIVE.MESSAGE ; 2809
000456 022626 10$: CMP (SP)+,(SP)+ ; 2802
000460 000406 BR 12$ ; 2800
000462 012700 100200 11$: MOV #-77600,R0 ; 2814
000466 004767 177036 JSR PC,SEND.PERSISTENT.ERROR
000472 004767 173040 JSR PC,DEVICE.BROKEN ; 2816
000476 022626 12$: CMP (SP)+,(SP)+ ; 2682
000500 000207 RTS PC
; Routine Size: 161 words, Routine Base: $CODE$ + 5106
; Maximum stack depth per invocation: 5 words
000174 .PSECT $PLIT$, RO , D
P.AAL: ; CASE Table for TIMLTM+0032 2716
000174 000102 .WORD 102 ; [3$]
000176 000102 .WORD 102 ; [3$]
000200 000000 .WORD 0 ; [1$]
000202 000000 .WORD 0 ; [1$]
000204 000000 .WORD 0 ; [1$]
P.AAM: ; CASE Table for TIMLTM+0202 2755
000206 000270 .WORD 270 ; [12$]
000210 000000 .WORD 0 ; [4$]
000212 000050 .WORD 50 ; [5$]
000214 000136 .WORD 136 ; [7$]
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 104
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (47)
000216 000204 .WORD 204 ; [9$]
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 105
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (48)
; 2825 routine TIMPIN (DB) : MCB_DB novalue =
; 2826
; 2827 !++
; 2828 ! FUNCTIONAL DESCRIPTION:
; 2829 !
; 2830 !
; 2831 ! FORMAL PARAMETERS:
; 2832 ! DB = address of DTE data base.
; 2833 !
; 2834 ! IMPLICIT INPUTS:
; 2835 ! None
; 2836 !
; 2837 ! IMPLICIT OUTPUTS:
; 2838 ! None
; 2839 !
; 2840 ! ROUTINE VALUE:
; 2841 ! COMPLETION CODES:
; 2842 ! None
; 2843 !
; 2844 ! SIDE EFFECTS:
; 2845 ! None
; 2846 !--
; 2847
; 2848 begin
; 2849 GET_DTE_DATA_BASE (DB)
; 2850 DTEDBI ();
; 2851 DTEDVI ();
; 2852 DTENMI ();
; 2853
; 2854 if .DB [D_LINE_STATE] eql DL_ON
; 2855 then
; 2856 $MCB_ENABLE_LONG_TIMER ();
; 2857
; 2858 end; !of routine TIMPIN
.GLOBL $LTMEN
.SBTTL TIMPIN
005610 .PSECT $CODE$, RO
000000 004767 000000G TIMPIN: JSR PC,DTEDBI ; 2850
000004 004767 000000G JSR PC,DTEDVI ; 2851
000010 004767 000000G JSR PC,DTENMI ; 2852
000014 105765 000015 TSTB 15(R5) ; *(DB) 2854
000020 001002 BNE 1$
000022 004767 000000G JSR PC,$LTMEN ; 2856
000026 000207 1$: RTS PC ; 2825
; Routine Size: 12 words, Routine Base: $CODE$ + 5610
; Maximum stack depth per invocation: 1 word
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 106
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (49)
; 2859 routine TIMPWF (DB) : MCB_DB novalue =
; 2860
; 2861 !++
; 2862 ! FUNCTIONAL DESCRIPTION:
; 2863 !
; 2864 !
; 2865 ! FORMAL PARAMETERS:
; 2866 ! DB = address of DTE data base.
; 2867 !
; 2868 ! IMPLICIT INPUTS:
; 2869 ! None
; 2870 !
; 2871 ! IMPLICIT OUTPUTS:
; 2872 ! None
; 2873 !
; 2874 ! ROUTINE VALUE:
; 2875 ! COMPLETION CODES:
; 2876 ! None
; 2877 !
; 2878 ! SIDE EFFECTS:
; 2879 ! None
; 2880 !--
; 2881
; 2882 begin
; 2883 SIGNAL_STOP (DTE$_PWF);
; 2884 end; !of routine TIMPWF
.SBTTL TIMPWF
000000 012746 100024 TIMPWF: MOV #-77754,-(SP) ; 2883
000004 012746 000001 MOV #1,-(SP)
000010 004767 000000G JSR PC,$STOP
000014 022626 CMP (SP)+,(SP)+ ; 2882
000016 000207 RTS PC ; 2859
; Routine Size: 8 words, Routine Base: $CODE$ + 5640
; Maximum stack depth per invocation: 3 words
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 107
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (50)
; 2885 routine TIMRDB (DB, CCB) : MCB_DB_CCB novalue =
; 2886
; 2887 !++
; 2888 ! FUNCTIONAL DESCRIPTION:
; 2889 !
; 2890 !
; 2891 ! FORMAL PARAMETERS:
; 2892 ! DB = address of DTE data base.
; 2893 ! CCB = address of requested RDB.
; 2894 !
; 2895 ! IMPLICIT INPUTS:
; 2896 ! None
; 2897 !
; 2898 ! IMPLICIT OUTPUTS:
; 2899 ! None
; 2900 !
; 2901 ! ROUTINE VALUE:
; 2902 ! COMPLETION CODES:
; 2903 ! None
; 2904 !
; 2905 ! SIDE EFFECTS:
; 2906 ! None
; 2907 !--
; 2908
; 2909 begin
; 2910 GET_DTE_DATA_BASE (DB)
; 2911
; 2912 if .DB [D_RCB] neqa 0 then return RDBRT$ (.CCB);
; 2913
; 2914 case .DB [D_PROTOCOL_STATE] from DS_STA_LOW to DS_STA_HIGH of
; 2915 set
; 2916
; 2917 [DS_RUNNING] :
; 2918 begin
; 2919 NEW_RCB (DB [D_TIM], .CCB);
; 2920 RECEIVE_MESSAGE (DB [D_TIM]);
; 2921 end;
; 2922
; 2923 [DS_PAUSED] :
; 2924 NEW_RCB (DB [D_TIM], .CCB);
; 2925
; 2926 [inrange] :
; 2927 RDBRT$ (.CCB);
; 2928
; 2929 tes;
; 2930
; 2931 end; !of routine TIMRDB
.SBTTL TIMRDB
000000 010400 TIMRDB: MOV R4,R0 ; *,CCB 2885
000002 005765 000110 TST 110(R5) ; *(DB) 2912
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 108
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (50)
000006 001020 BNE 4$
000010 116501 000012 MOVB 12(R5),R1 ; *(DB),* 2914
000014 006301 ASL R1
000016 066107 000220' ADD P.AAN(R1),PC ; Case dispatch
000022 010046 1$: MOV R0,-(SP) ; CCB,* 2919
000024 004767 175222 JSR PC,NEW.RCB
000030 004767 175500 JSR PC,RECEIVE.MESSAGE ; 2920
000034 000403 BR 3$ ; 2918
000036 010046 2$: MOV R0,-(SP) ; CCB,* 2924
000040 004767 175206 JSR PC,NEW.RCB
000044 005726 3$: TST (SP)+
000046 000207 RTS PC ; 2914
000050 010004 4$: MOV R0,R4 ; CCB,* 2927
000052 004767 000000G JSR PC,$RDBRT
000056 000207 RTS PC ; 2885
; Routine Size: 24 words, Routine Base: $CODE$ + 5660
; Maximum stack depth per invocation: 2 words
000220 .PSECT $PLIT$, RO , D
P.AAN: ; CASE Table for TIMRDB+0016 2914
000220 000026 .WORD 26 ; [4$]
000222 000026 .WORD 26 ; [4$]
000224 000026 .WORD 26 ; [4$]
000226 000000 .WORD 0 ; [1$]
000230 000014 .WORD 14 ; [2$]
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 109
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (51)
; 2932 routine TRANSMIT_MESSAGE (DB) : DTE_DB novalue =
; 2933
; 2934 !++
; 2935 ! FUNCTIONAL DESCRIPTION:
; 2936 !
; 2937 !
; 2938 ! FORMAL PARAMETERS:
; 2939 ! DB = address of DTE data base.
; 2940 !
; 2941 ! IMPLICIT INPUTS:
; 2942 ! None
; 2943 !
; 2944 ! IMPLICIT OUTPUTS:
; 2945 ! None
; 2946 !
; 2947 ! ROUTINE VALUE:
; 2948 ! COMPLETION CODES:
; 2949 ! None
; 2950 !
; 2951 ! SIDE EFFECTS:
; 2952 ! None
; 2953 !--
; 2954
; 2955 begin
; 2956 GET_DTE_DATA_BASE (DB)
; 2957
; 2958 if .DB [$SUB_FIELD (D_XQZ, PSIZE)] eql 0 and .DB [$SUB_FIELD (D_XMQ, LIST_FIRST)] neq 0
; 2959 then
; 2960 begin
; 2961
; 2962 local
; 2963 CCB : ref block field (C_FIELDS);
; 2964
; 2965 CCB = .DB [$SUB_FIELD (D_XMQ, LIST_FIRST)];
; 2966 DB [D_XLN] = 0;
; 2967
; 2968 if .CCB [C_CHN] eql 0
; 2969 then
; 2970 begin
; 2971 DB [D_XCB] = .CCB;
; P 2972 $MCB_CONVERT_TO_UBA_ADDRESS ((.CCB [C_BIAS], .CCB [C_ADDR]),
; P 2973 DB [$SUB_FIELD (D_XBA, PHYSICAL_LOW)],
; 2974 DB [$SUB_FIELD (D_XBA, PHYSICAL_HIGH)]);
; 2975 DB [D_XCT] = .CCB [C_CNT];
; 2976
; 2977 do
; 2978 DB [D_XLN] = .DB [D_XLN] + .CCB [C_CNT]
; 2979 while (CCB = .CCB [C_CHN]) neq 0;
; 2980
; 2981 end
; 2982 else
; 2983 begin
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 110
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (51)
; 2984 DB [D_XCB] = 0;
; P 2985 $MCB_CONVERT_TO_UBA_ADDRESS ((.DB_BIAS, DB [D_XBUF]),
; P 2986 DB [$SUB_FIELD (D_XBA, PHYSICAL_LOW)],
; 2987 DB [$SUB_FIELD (D_XBA, PHYSICAL_HIGH)]);
; 2988
; 2989 begin
; 2990
; 2991 local
; 2992 LENGTH;
; 2993
; 2994 LENGTH = $MCB_COPY_CHAIN_TO_BUFFER (.CCB, (.DB_BIAS, DB [D_XBUF]));
; 2995 MAP$ (.DB_BIAS);
; 2996 DB [D_XCT] = DB [D_XLN] = .LENGTH;
; 2997 end;
; 2998 end;
; 2999
; 3000 DB [$SUB_FIELD (D_XQZ, PSIZE)] = .DB [D_XLN];
; 3001 end;
; 3002
; 3003 TRANSMIT_SEGMENT (DB [D_TIM]);
; 3004 end; !of routine TRANSMIT_MESSAGE
.GLOBL $CPTBF, KISAR6
.SBTTL TRANSMIT.MESSAGE
005740 .PSECT $CODE$, RO
000000 005746 TRANSMIT.MESSAGE:
TST -(SP) ; 2932
000002 012701 000102 MOV #102,R1 ; 2958
000006 060501 ADD R5,R1 ; DB,*
000010 005711 TST (R1)
000012 001100 BNE 4$
000014 005765 000120 TST 120(R5) ; *(DB)
000020 001475 BEQ 4$
000022 016504 000120 MOV 120(R5),R4 ; *(DB),CCB 2965
000026 012716 000124 MOV #124,(SP) ; 2966
000032 060516 ADD R5,(SP) ; DB,*
000034 005076 000000 CLR @0(SP)
000040 005764 000002 TST 2(R4) ; *(CCB) 2968
000044 001026 BNE 2$
000046 010465 000126 MOV R4,126(R5) ; CCB,*(DB) 2971
000052 016402 000016 MOV 16(R4),R2 ; *(CCB),* 2974
000056 016403 000020 MOV 20(R4),R3 ; *(CCB),*
000062 004767 000000G JSR PC,$PHY18
000066 010365 000132 MOV R3,132(R5) ; *,*(DB)
000072 010265 000130 MOV R2,130(R5) ; *,*(DB)
000076 016465 000022 000134 MOV 22(R4),134(R5) ; *(CCB),*(DB) 2975
000104 066476 000022 000000 1$: ADD 22(R4),@0(SP) ; *(CCB),* 2978
000112 016404 000002 MOV 2(R4),R4 ; *(CCB),CCB 2979
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 111
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (51)
000116 001434 BEQ 3$
000120 000771 BR 1$
000122 005065 000126 2$: CLR 126(R5) ; *(DB) 2984
000126 010500 MOV R5,R0 ; DB,* 2987
000130 062700 000174 ADD #174,R0
000134 016702 000000G MOV .CRDAT,R2
000140 010003 MOV R0,R3
000142 004767 000000G JSR PC,$PHY18
000146 010365 000132 MOV R3,132(R5) ; *,*(DB)
000152 010265 000130 MOV R2,130(R5) ; *,*(DB)
000156 016746 000000G MOV .CRDAT,-(SP) ; 2994
000162 010046 MOV R0,-(SP)
000164 004767 000000G JSR PC,$CPTBF
000170 016767 000000G 000000G MOV .CRDAT,KISAR6 ; 2995
000176 010076 000004 MOV R0,@4(SP) ; LENGTH,* 2996
000202 010065 000134 MOV R0,134(R5) ; LENGTH,*(DB)
000206 022626 CMP (SP)+,(SP)+ ; 2983
000210 017611 000000 3$: MOV @0(SP),(R1) ; 3000
000214 004767 000000V 4$: JSR PC,TRANSMIT.SEGMENT ; 3003
000220 005726 TST (SP)+ ; 2932
000222 000207 RTS PC
; Routine Size: 74 words, Routine Base: $CODE$ + 5740
; Maximum stack depth per invocation: 4 words
; 3005
; 3006
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 112
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (52)
; 3007 routine TRANSMIT_SEGMENT (DB) : DTE_DB novalue =
; 3008
; 3009 !++
; 3010 ! FUNCTIONAL DESCRIPTION:
; 3011 !
; 3012 !
; 3013 ! FORMAL PARAMETERS:
; 3014 ! DB = address of DTE data base.
; 3015 !
; 3016 ! IMPLICIT INPUTS:
; 3017 ! None
; 3018 !
; 3019 ! IMPLICIT OUTPUTS:
; 3020 ! None
; 3021 !
; 3022 ! ROUTINE VALUE:
; 3023 ! COMPLETION CODES:
; 3024 ! None
; 3025 !
; 3026 ! SIDE EFFECTS:
; 3027 ! None
; 3028 !--
; 3029
; 3030 begin
; 3031 GET_DTE_DATA_BASE (DB)
; 3032
; 3033 local
; 3034 DTE : ref block field (DTE_FIELDS);
; 3035
; 3036 if .DB [$SUB_FIELD (D_XQZ, PSIZE)] eql 0 then return;
; 3037
; 3038 if .DB [$SUB_FIELD (D_XQZ, CSIZE)] neq 0 then return;
; 3039
; 3040 if .DB [D_RCT] neq 0 and
; 3041 .DB [$SUB_FIELD (D_XBA, PHYSICAL_HIGH)] neq
; 3042 .DB [$SUB_FIELD (D_RBA, PHYSICAL_HIGH)] then return;
; 3043
; 3044 if .DB [DF_FLUSHING_DTE] then return;
; 3045
; 3046 DTE = .DB [D_REGISTER];
; 3047
; 3048 if DTE_TEST (.DTE, TO10DB) then return;
; 3049
; 3050 DTE_EXT (.DTE, .DB [$SUB_FIELD (D_XBA, PHYSICAL_HIGH)]);
; 3051 DB [$SUB_FIELD (D_XQZ, CSIZE)] =
; 3052 (if .DB [$SUB_FIELD (D_XBA, PHYSICAL_LOW)] eql 0
; 3053 then .DB [D_XCT]
; 3054 else MINU (-.DB [$SUB_FIELD (D_XBA, PHYSICAL_LOW)],
; 3055 .DB [D_XCT]));
; 3056 DB [$SUB_FIELD (D_XQZ, TMODE)] = 0;
; 3057 DEPMYH (DB [D_TIM], QSIZE, DB [D_XQZ]);
; 3058 DTE [TO10AD] = .DB [$SUB_FIELD (D_XBA, PHYSICAL_LOW)];
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 113
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (52)
; 3059 begin
; 3060
; 3061 local
; 3062 VALUE : block [1] field (TO10BM);
; 3063
; 3064 VALUE = 0;
; 3065 VALUE [TO10BM] = 1;
; 3066 DTE [DIAG3] = .VALUE;
; 3067 end;
; 3068 ! *********************** Protocol deviation **************************
; 3069 ! The -20 monitors MY CPQCNT instead of MY QCOUNT for TO-HIM transfers,
; 3070 ! so the roles of MY QCOUNT and MY CPQCNT are reversed from those in
; 3071 ! the protocol specification.
; 3072 ! *********************************************************************
; 3073 DB [$SUB_FIELD (D_XST, CPQCNT)] = .DB [$SUB_FIELD (D_XST, CPQCNT)] + 1;
; 3074 DEPMYH (DB [D_TIM], STATUS, DB [D_XST]);
; 3075 DTE_SET (.DB [D_REGISTER], INT10S);
; 3076 DB[ D_LONG_TIMER] = DTE_K_TRANSMIT_DOORBELL_TIMEOUT;
; 3077 end; !of routine TRANSMIT_SEGMENT
.SBTTL TRANSMIT.SEGMENT
000000 010546 TRANSMIT.SEGMENT:
MOV R5,-(SP) ; 3007
000002 005746 TST -(SP)
000004 010546 MOV R5,-(SP)
000006 010500 MOV R5,R0 ; 3036
000010 005760 000102 TST 102(R0)
000014 001540 BEQ 4$
000016 012700 000100 MOV #100,R0 ; 3038
000022 060500 ADD R5,R0
000024 010003 MOV R0,R3
000026 005713 TST (R3)
000030 001132 BNE 4$
000032 010500 MOV R5,R0 ; 3040
000034 005760 000116 TST 116(R0)
000040 001405 BEQ 1$
000042 010501 MOV R5,R1 ; 3041
000044 026160 000130 000112 CMP 130(R1),112(R0)
000052 001121 BNE 4$ ; 3042
000054 032776 020000 000000 1$: BIT #20000,@0(SP) ; 3044
000062 001115 BNE 4$
000064 011600 MOV (SP),R0 ; 3046
000066 016066 000002 000002 MOV 2(R0),2(SP) ; *,DTE
000074 032776 000400 000002 BIT #400,@2(SP) ; *,DTE 3048
000102 001105 BNE 4$
000104 005000 CLR R0 ; VALUE 3050
000106 011602 MOV (SP),R2
000110 016201 000130 MOV 130(R2),R1
000114 072127 000016 ASH #16,R1
000120 042700 140000 BIC #140000,R0 ; *,VALUE
000124 050100 BIS R1,R0 ; *,VALUE
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 114
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (52)
000126 016601 000002 MOV 2(SP),R1 ; DTE,*
000132 010061 177744 MOV R0,-34(R1) ; VALUE,*(DTE)
000136 012700 000132 MOV #132,R0 ; 3052
000142 060200 ADD R2,R0
000144 010004 MOV R0,R4
000146 005714 TST (R4)
000150 001406 BEQ 2$
000152 011405 MOV (R4),R5 ; 3054
000154 005405 NEG R5
000156 010200 MOV R2,R0
000160 020560 000134 CMP R5,134(R0)
000164 101403 BLOS 3$
000166 011600 2$: MOV (SP),R0
000170 016005 000134 MOV 134(R0),R5
000174 010513 3$: MOV R5,(R3) ; 3051
000176 011600 MOV (SP),R0 ; 3056
000200 142760 000017 000104 BICB #17,104(R0)
000206 010005 MOV R0,R5 ; 3057
000210 012702 000003 MOV #3,R2
000214 004767 172226 JSR PC,DEPMYH
000220 016600 000002 MOV 2(SP),R0 ; DTE,* 3058
000224 011460 177764 MOV (R4),-14(R0) ; *,*(DTE)
000230 005000 CLR R0 ; VALUE 3064
000232 152700 000001 BISB #1,R0 ; *,VALUE 3065
000236 016601 000002 MOV 2(SP),R1 ; DTE,* 3066
000242 010061 000002 MOV R0,2(R1) ; VALUE,*(DTE)
000246 011601 MOV (SP),R1 ; 3073
000250 105261 000073 INCB 73(R1)
000254 012700 000072 MOV #72,R0 ; 3074
000260 060100 ADD R1,R0
000262 010003 MOV R0,R3
000264 010105 MOV R1,R5
000266 012702 000002 MOV #2,R2
000272 004767 172150 JSR PC,DEPMYH
000276 011600 MOV (SP),R0 ; 3075
000300 012770 000400 000002 MOV #400,@2(R0)
000306 011600 MOV (SP),R0 ; 3076
000310 112760 000003 000020 MOVB #3,20(R0)
000316 022626 4$: CMP (SP)+,(SP)+ ; 3007
000320 012605 MOV (SP)+,R5
000322 000207 RTS PC
; Routine Size: 106 words, Routine Base: $CODE$ + 6164
; Maximum stack depth per invocation: 4 words
; 3078
; 3079
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 115
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (53)
; 3080 routine T10DON (DB) : DTE_DB novalue =
; 3081
; 3082 !++
; 3083 ! FUNCTIONAL DESCRIPTION:
; 3084 !
; 3085 !
; 3086 ! FORMAL PARAMETERS:
; 3087 ! DB = address of DTE data base.
; 3088 !
; 3089 ! IMPLICIT INPUTS:
; 3090 ! None
; 3091 !
; 3092 ! IMPLICIT OUTPUTS:
; 3093 ! None
; 3094 !
; 3095 ! ROUTINE VALUE:
; 3096 ! COMPLETION CODES:
; 3097 ! None
; 3098 !
; 3099 ! SIDE EFFECTS:
; 3100 ! None
; 3101 !--
; 3102
; 3103 begin
; 3104 GET_DTE_DATA_BASE (DB)
; 3105 PHYSICAL_ADD (DB, D_XBA, .DB [$SUB_FIELD (D_XQZ, CSIZE)]);
; 3106 if .DB[ D_PROTOCOL_STATE] eql DS_RUNNING
; 3107 then
; 3108 DB[ D_LONG_TIMER] = 0;
; 3109
; 3110 if .block [.DB [D_REGISTER], $SUB_FIELD (TO10BC, TO10CM)] or
; 3111 begin
; 3112 DTE_SET (.DB [D_REGISTER], DON10C, ERR10C);
; 3113 .block [.DB [D_REGISTER], TO10AD] neq .DB [$SUB_FIELD (D_XBA, PHYSICAL_LOW)]
; 3114 end
; 3115 then
; 3116 begin ! Incomplete transfer.
; P 3117 $NM_PLL_EVENT (4, .DB [D_LINE_ENTITY],
; 3118 PARAMETER_DEVICE_REGISTERS (.DB [D_REGISTER]));
; 3119 SEND_PERSISTENT_ERROR (DB [D_TIM], DLL$_DEVICE_OPERATION_ERROR);
; 3120 COUNTER_INCREMENT (DB, D_TRANSMIT_BA_MISMATCH);
; 3121 COUNTER_INCREMENT (DB, D_FATAL_DEVICE_ERRORS);
; 3122 DEVICE_BROKEN (DB [D_TIM]);
; 3123 return;
; 3124 end;
; 3125
; 3126 DB [$SUB_FIELD (D_XQZ, PSIZE)] = .DB [$SUB_FIELD (D_XQZ, PSIZE)] -
; 3127 .DB [$SUB_FIELD (D_XQZ, CSIZE)];
; 3128
; 3129 if .DB [$SUB_FIELD (D_XQZ, PSIZE)] gtr 0
; 3130 then
; 3131 begin
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 116
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (53)
; 3132 DB [D_XCT] = .DB [D_XCT] - .DB [$SUB_FIELD (D_XQZ, CSIZE)];
; 3133
; 3134 if .DB [D_XCT] eql 0
; 3135 then
; 3136 begin
; 3137
; 3138 local
; 3139 CCB : ref block field (C_FIELDS);
; 3140
; 3141 DB [D_XCB] = CCB = .block [.DB [D_XCB], C_CHN];
; P 3142 $MCB_CONVERT_TO_UBA_ADDRESS ((.CCB [C_BIAS], .CCB [C_ADDR]),
; P 3143 DB [$SUB_FIELD (D_XBA, PHYSICAL_LOW)],
; 3144 DB [$SUB_FIELD (D_XBA, PHYSICAL_HIGH)]);
; 3145 DB [D_XCT] = .CCB [C_CNT];
; 3146 end;
; 3147
; 3148 DB [$SUB_FIELD (D_XQZ, CSIZE)] = 0;
; 3149 TRANSMIT_SEGMENT (DB [D_TIM]);
; 3150 end
; 3151 else
; 3152 begin
; 3153
; 3154 local
; 3155 CCB : ref block field (C_FIELDS);
; 3156
; 3157 DB [$SUB_FIELD (D_XQZ, CSIZE)] = 0;
; 3158 DEPMYH (DB [D_TIM], QSIZE, DB [D_XQZ]);
; 3159
; 3160 if not CMQRM$ (DB [D_XMQ], CCB) then SIGNAL_STOP (DTE$_QUE, DB [D_XMQ]);
; 3161
; 3162 COUNTER_ADD (DB, D_BYTES_SENT, .DB [D_XLN]);
; 3163 COUNTER_INCREMENT (DB, D_DATA_BLOCKS_SENT);
; 3164 DB [D_XLN] = 0;
; 3165 SCHEDULE_TRANSMIT (.CCB, DB [D_TIM], DLL$_SUCCESS);
; 3166 end;
; 3167
; 3168 if .DB [DF_FLUSHING_DTE] and (.DB [D_RCT] eql 0)
; 3169 then
; 3170 DB [DF_FLUSHING_DTE] = FALSE;
; 3171
; 3172 end; !of routine T10DON
.GLOBL $AC32, $IC32
.SBTTL T10DON
000000 012746 000132 T10DON: MOV #132,-(SP) ; 3105
000004 060516 ADD R5,(SP) ; DB,*
000006 012746 000100 MOV #100,-(SP)
000012 060516 ADD R5,(SP) ; DB,*
000014 017600 000002 MOV @2(SP),R0
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 117
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (53)
000020 067600 000000 ADD @0(SP),R0
000024 010076 000002 MOV R0,@2(SP)
000030 005565 000130 ADC 130(R5) ; *(DB)
000034 126527 000012 000003 CMPB 12(R5),#3 ; *(DB),* 3106
000042 001002 BNE 1$
000044 105065 000020 CLRB 20(R5) ; *(DB) 3108
000050 016501 000002 1$: MOV 2(R5),R1 ; *(DB),* 3110
000054 032761 000001 177760 BIT #1,-20(R1)
000062 001006 BNE 2$
000064 012711 050000 MOV #50000,(R1) ; 3112
000070 026176 177764 000002 CMP -14(R1),@2(SP) ; 3113
000076 001431 BEQ 3$
000100 004767 000000G 2$: JSR PC,$NLBEG ; 3118
000104 004767 174354 JSR PC,PLL0
000110 012700 000604 MOV #604,R0
000114 016501 000042 MOV 42(R5),R1 ; *(DB),*
000120 004767 000000G JSR PC,$NLEND
000124 012700 100174 MOV #-77604,R0 ; 3119
000130 004767 175772 JSR PC,SEND.PERSISTENT.ERROR
000134 052765 002000 000166 BIS #2000,166(R5) ; *,*(DB) 3120
000142 012700 000166 MOV #166,R0 ; 3121
000146 060500 ADD R5,R0 ; DB,*
000150 004767 000000G JSR PC,$IC8
000154 004767 171754 JSR PC,DEVICE.BROKEN ; 3122
000160 000522 BR 8$ ; 3116
000162 167665 000000 000102 3$: SUB @0(SP),102(R5) ; *,*(DB) 3126
000170 000243 .WORD CLV!CLC
; 3129
000172 003435 BLE 5$
000174 012701 000134 MOV #134,R1 ; 3132
000200 060501 ADD R5,R1 ; DB,*
000202 167611 000000 SUB @0(SP),(R1)
000206 001022 BNE 4$ ; 3134
000210 016500 000126 MOV 126(R5),R0 ; *(DB),* 3141
000214 016000 000002 MOV 2(R0),R0 ; *,CCB
000220 010065 000126 MOV R0,126(R5) ; CCB,*(DB)
000224 016002 000016 MOV 16(R0),R2 ; *(CCB),* 3144
000230 016003 000020 MOV 20(R0),R3 ; *(CCB),*
000234 004767 000000G JSR PC,$PHY18
000240 010376 000002 MOV R3,@2(SP)
000244 010265 000130 MOV R2,130(R5) ; *,*(DB)
000250 016011 000022 MOV 22(R0),(R1) ; *(CCB),* 3145
000254 005076 000000 4$: CLR @0(SP) ; 3148
000260 004767 177170 JSR PC,TRANSMIT.SEGMENT ; 3149
000264 000450 BR 7$ ; 3129
000266 005076 000000 5$: CLR @0(SP) ; 3157
000272 012702 000003 MOV #3,R2 ; 3158
000276 011603 MOV (SP),R3
000300 004767 171616 JSR PC,DEPMYH
000304 012703 000120 MOV #120,R3 ; 3160
000310 060503 ADD R5,R3 ; DB,*
000312 004767 000000G JSR PC,$CMQRM
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 118
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (53)
000316 103011 BHIS 6$
000320 010346 MOV R3,-(SP)
000322 012746 100034 MOV #-77744,-(SP)
000326 012746 000002 MOV #2,-(SP)
000332 004767 000000G JSR PC,$STOP
000336 062706 000006 ADD #6,SP
000342 012700 000142 6$: MOV #142,R0 ; 3162
000346 060500 ADD R5,R0 ; DB,*
000350 016501 000124 MOV 124(R5),R1 ; *(DB),*
000354 004767 000000G JSR PC,$AC32
000360 012700 000152 MOV #152,R0 ; 3163
000364 060500 ADD R5,R0 ; DB,*
000366 004767 000000G JSR PC,$IC32
000372 005065 000124 CLR 124(R5) ; *(DB) 3164
000376 012700 100001 MOV #-77777,R0 ; 3165
000402 004767 175432 JSR PC,SCHEDULE.TRANSMIT
000406 032715 020000 7$: BIT #20000,(R5) ; *,DB 3168
000412 001405 BEQ 8$
000414 005765 000116 TST 116(R5) ; *(DB)
000420 001002 BNE 8$
000422 042715 020000 BIC #20000,(R5) ; *,DB 3170
000426 022626 8$: CMP (SP)+,(SP)+ ; 3080
000430 000207 RTS PC
; Routine Size: 141 words, Routine Base: $CODE$ + 6510
; Maximum stack depth per invocation: 6 words
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 119
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (54)
; 3173 routine T11DON (DB) : DTE_DB novalue =
; 3174
; 3175 !++
; 3176 ! FUNCTIONAL DESCRIPTION:
; 3177 !
; 3178 !
; 3179 ! FORMAL PARAMETERS:
; 3180 ! DB = address of DTE data base.
; 3181 !
; 3182 ! IMPLICIT INPUTS:
; 3183 ! None
; 3184 !
; 3185 ! IMPLICIT OUTPUTS:
; 3186 ! None
; 3187 !
; 3188 ! ROUTINE VALUE:
; 3189 ! COMPLETION CODES:
; 3190 ! None
; 3191 !
; 3192 ! SIDE EFFECTS:
; 3193 ! None
; 3194 !--
; 3195
; 3196 begin
; 3197 GET_DTE_DATA_BASE (DB)
; 3198 PHYSICAL_ADD (DB, D_RBA, .DB [D_RCT]);
; 3199
; 3200 if .block [.DB [D_REGISTER], $SUB_FIELD (TO11BC, TO11CM)] neq 0 or
; 3201 begin
; 3202 DTE_SET (.DB [D_REGISTER], DON11C, ERR11C);
; 3203 .block [.DB [D_REGISTER], TO11AD] neq .DB [$SUB_FIELD (D_RBA, PHYSICAL_LOW)]
; 3204 end
; 3205 then
; 3206 begin ! Incomplete transfer.
; P 3207 $NM_PLL_EVENT (4, .DB [D_LINE_ENTITY],
; 3208 PARAMETER_DEVICE_REGISTERS (.DB [D_REGISTER]));
; 3209 SEND_PERSISTENT_ERROR (DB [D_TIM], DLL$_DEVICE_OPERATION_ERROR);
; 3210 COUNTER_INCREMENT (DB, D_RECEIVE_BA_MISMATCH);
; 3211 COUNTER_INCREMENT (DB, D_FATAL_DEVICE_ERRORS);
; 3212 DEVICE_BROKEN (DB [D_TIM]);
; 3213 return;
; 3214 end;
; 3215
; 3216 begin
; 3217
; 3218 bind
; 3219 CCB = DB [D_RCB] : ref block field (C_FIELDS);
; 3220
; 3221 CCB [C_CNT] = .CCB [C_CNT] + .DB [D_RCT];
; 3222 end;
; 3223 DB [$SUB_FIELD (D_RQZ, CSIZE)] = .DB [$SUB_FIELD (D_RQZ, CSIZE)] - .DB [D_RCT];
; 3224 DB [$SUB_FIELD (D_RQZ, PSIZE)] = .DB [$SUB_FIELD (D_RQZ, PSIZE)] - .DB [D_RCT];
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 120
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (54)
; 3225 DB [D_RCT] = 0;
; 3226
; 3227 if .DB [$SUB_FIELD (D_RQZ, PSIZE)] neq 0
; 3228 then
; 3229 RECEIVE_SEGMENT (DB [D_TIM])
; 3230 else
; 3231 begin
; 3232
; 3233 bind
; 3234 CCB = DB [D_RCB] : ref block field (C_FIELDS);
; 3235
; 3236 DB [$SUB_FIELD (D_XST, RCV)] = 0;
; 3237 DEPMYH (DB [D_TIM], STATUS, DB [D_XST]);
; 3238 COUNTER_ADD (DB, D_BYTES_RECEIVED, .CCB [C_CNT]);
; 3239 COUNTER_INCREMENT (DB, D_DATA_BLOCKS_RECEIVED);
; 3240 SCHEDULE_RECEIVE (.CCB, DB [D_TIM]);
; 3241 DB [D_RCB] = 0;
; 3242 end;
; 3243
; 3244 if .DB [DF_FLUSHING_DTE] and (.DB [$SUB_FIELD (D_XQZ, CSIZE)] eql 0)
; 3245 then
; 3246 DB [DF_FLUSHING_DTE] = FALSE;
; 3247
; 3248 end; !of routine T11DON
.SBTTL T11DON
000000 010546 T11DON: MOV R5,-(SP) ; 3173
000002 005746 TST -(SP)
000004 010546 MOV R5,-(SP)
000006 012700 000116 MOV #116,R0 ; 3198
000012 060500 ADD R5,R0
000014 010046 MOV R0,-(SP)
000016 010500 MOV R5,R0
000020 016005 000114 MOV 114(R0),R5
000024 067605 000000 ADD @0(SP),R5
000030 016600 000002 MOV 2(SP),R0
000034 010560 000114 MOV R5,114(R0)
000040 005560 000112 ADC 112(R0)
000044 016001 000002 MOV 2(R0),R1 ; 3200
000050 032761 007777 177762 BIT #7777,-16(R1)
000056 001005 BNE 1$
000060 012711 000101 MOV #101,(R1) ; 3202
000064 026105 177766 CMP -12(R1),R5 ; 3203
000070 001442 BEQ 2$
000072 004767 000000G 1$: JSR PC,$NLBEG ; 3208
000076 004767 173730 JSR PC,PLL0
000102 012700 000604 MOV #604,R0
000106 016602 000002 MOV 2(SP),R2
000112 016201 000042 MOV 42(R2),R1
000116 004767 000000G JSR PC,$NLEND
000122 016605 000002 MOV 2(SP),R5 ; 3209
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 121
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (54)
000126 012700 100174 MOV #-77604,R0
000132 004767 175336 JSR PC,SEND.PERSISTENT.ERROR
000136 016600 000002 MOV 2(SP),R0 ; 3210
000142 052760 001000 000166 BIS #1000,166(R0)
000150 012701 000166 MOV #166,R1 ; 3211
000154 060001 ADD R0,R1
000156 010100 MOV R1,R0
000160 004767 000000G JSR PC,$IC8
000164 016605 000002 MOV 2(SP),R5 ; 3212
000170 004767 171306 JSR PC,DEVICE.BROKEN
000174 000522 BR 5$ ; 3206
000176 012700 000110 2$: MOV #110,R0 ; 3219
000202 066600 000002 ADD 2(SP),R0
000206 010066 000004 MOV R0,4(SP)
000212 011000 MOV (R0),R0 ; 3221
000214 067660 000000 000022 ADD @0(SP),22(R0)
000222 016600 000002 MOV 2(SP),R0 ; 3223
000226 167660 000000 000064 SUB @0(SP),64(R0)
000234 167660 000000 000066 SUB @0(SP),66(R0) ; 3224
000242 005076 000000 CLR @0(SP) ; 3225
000246 016600 000002 MOV 2(SP),R0 ; 3227
000252 005760 000066 TST 66(R0)
000256 001404 BEQ 3$
000260 010005 MOV R0,R5 ; 3229
000262 004767 174412 JSR PC,RECEIVE.SEGMENT
000266 000452 BR 4$ ; 3227
000270 016600 000002 3$: MOV 2(SP),R0 ; 3236
000274 142760 000001 000074 BICB #1,74(R0)
000302 012700 000072 MOV #72,R0 ; 3237
000306 066600 000002 ADD 2(SP),R0
000312 010003 MOV R0,R3
000314 016605 000002 MOV 2(SP),R5
000320 012702 000002 MOV #2,R2
000324 004767 171140 JSR PC,DEPMYH
000330 012701 000136 MOV #136,R1 ; 3238
000334 066601 000002 ADD 2(SP),R1
000340 010100 MOV R1,R0
000342 017602 000004 MOV @4(SP),R2
000346 016201 000022 MOV 22(R2),R1
000352 004767 000000G JSR PC,$AC32
000356 012701 000146 MOV #146,R1 ; 3239
000362 066601 000002 ADD 2(SP),R1
000366 010100 MOV R1,R0
000370 004767 000000G JSR PC,$IC32
000374 017604 000004 MOV @4(SP),R4 ; 3240
000400 016605 000002 MOV 2(SP),R5
000404 004767 174552 JSR PC,SCHEDULE.RECEIVE
000410 005076 000004 CLR @4(SP) ; 3241
000414 032776 020000 000002 4$: BIT #20000,@2(SP) ; 3244
000422 001407 BEQ 5$
000424 016600 000002 MOV 2(SP),R0
000430 005760 000100 TST 100(R0)
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 122
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (54)
000434 001002 BNE 5$
000436 042710 020000 BIC #20000,(R0) ; 3246
000442 062706 000006 5$: ADD #6,SP ; 3173
000446 012605 MOV (SP)+,R5
000450 000207 RTS PC
; Routine Size: 149 words, Routine Base: $CODE$ + 7142
; Maximum stack depth per invocation: 5 words
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 123
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (55)
; 3249 routine WTEXDP
; 3250
; 3251 !++
; 3252 ! FUNCTIONAL DESCRIPTION:
; 3253 !
; 3254 !
; 3255 ! FORMAL PARAMETERS:
; 3256 !
; 3257 (DB : ref block field (D_FIELDS),
; 3258 DTE : ref block field (DTE_FIELDS) volatile)
; 3259 !
; 3260 ! IMPLICIT INPUTS:
; 3261 ! None
; 3262 !
; 3263 ! IMPLICIT OUTPUTS:
; 3264 ! None
; 3265 !
; 3266 ! ROUTINE VALUE:
; 3267 !
; 3268 : DTE_DB_DTE =
; 3269 !
; 3270 ! SIDE EFFECTS:
; 3271 ! None
; 3272 !--
; 3273
; 3274 begin
; 3275
; 3276 local
; 3277 STATUS;
; 3278
; 3279 STATUS = 1536;
; 3280
; 3281 do
; 3282 begin
; 3283
; 3284 if .DTE [$SUB_FIELD (STAT11, DEXDON)]
; 3285 then
; 3286 begin
; 3287
; 3288 if not .DTE [$SUB_FIELD (STAT11, BPARER)]
; 3289 then
; 3290 STATUS = TRUE;
; 3291
; 3292 exitloop;
; 3293 end;
; 3294
; 3295 end
; 3296 while (STATUS = .STATUS - 1) neq FALSE;
; 3297
; 3298 .STATUS
; 3299 end; !of routine WTEXDP
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 124
X01560 30-Dec-1982 02:52:49 NETPKG:<DRIVERS>DTE.B16.9 (55)
.SBTTL WTEXDP
000000 012700 003000 WTEXDP: MOV #3000,R0 ; *,STATUS 3279
000004 132711 000004 1$: BITB #4,(R1) ; *,DTE 3284
000010 001406 BEQ 2$
000012 132711 000020 BITB #20,(R1) ; *,DTE 3288
000016 001004 BNE 3$
000020 012700 000001 MOV #1,R0 ; *,STATUS 3290
000024 000207 RTS PC ; 3286
000026 077012 2$: SOB R0,1$ ; STATUS,* 3296
000030 000207 3$: RTS PC ; 3249
; Routine Size: 13 words, Routine Base: $CODE$ + 7614
; Maximum stack depth per invocation: 0 words
; 3300 end
; 3301 eludom
; OTS external references
.GLOBL $STOP
; PSECT SUMMARY
;
; Psect Name Words Attributes
; $PLIT$ 77 RO , D , LCL, REL, CON
; ...... 16 RW , D , LCL, REL, CON
; $CODE$ 2003 RO , I , LCL, REL, CON
; LIBRARY STATISTICS
;
; -------- Symbols -------- Blocks
; File Total Loaded Percent Read
;
; NETPKG:<V3P0>MCBLIB.L16.7 372 95 25 0
; NETPKG:<MCB>XPORTX.L16.15 599 9 1 0
; NETPKG:<MCB>NMXLIB.L16.13 200 13 6 0
; NETPKG:<DRIVERS>DTEDAT.L16.2 244 209 85 0
; Size: 2003 code + 93 data words
; Run Time: 00:46.4
; Elapsed Time: 02:31.8
DTE 25-Jan-1983 10:04:51 TOPS-20 Bliss-16 3(552) Page 125
X01560
; Memory Used: 64 pages
; Compilation Complete
ANSWER_DOORBELL 399 624* 1322 2727
BITS 501 515
BLISS16 3
BPARER 3288
BUFFER 945 972 974 1001 1594 1621 1623 1650 1652 1679 1681 1708
1737 1739# 1741 1744# 1745# 1746# 1747# 1781 1784# 1786 1788 1789
1791 1793 1795 1798 1800 1801 1810 1820 1822 1824 1826 1828
1830 1832 1835 1837 1846 1856 1858 2047 2076 2082 2083 2084
2089 2118 2130# 2131# 2132#
BUSEXT 515
CCB 201+ 205+ 217+ 221+ 244+ 248+ 257+ 261+ 270+ 274+ 292+ 296+
467 469 471 790 818 824# 825# 831 834 837 865 875
877 879# 881# 882# 883 1030 1058 1070# 1071# 1072 1082 1110
1112# 1113# 1114 1116 1144 1152# 1153# 1154 1156 1185 1193 1195
1207 1212# 1222 1345 1374 1381 1384 1410 1466 1468# 1471 1552
1581 1591 1906 1934 1936# 1937 1938 2196 2198 2300 2328 2330#
2331# 2332# 2333# 2334 2337 2364 2366# 2368 2371# 2372# 2373# 2374
2376 2404 2406 2408# 2409# 2410# 2411# 2412 2417 2419 2424 2452
2454# 2455# 2456# 2457# 2458 2461 2488 2490# 2491# 2492 2532 2538
2540 2572 2580 2582 2614 2620 2622 2627 2655 2660 2667 2671
2675 2677 2679 2885 2912 2919 2924 2927 2963 2965# 2968 2971
2972 2975 2978 2979# 2994 3139 3141# 3142 3145 3155 3160 3165
3219# 3221# 3234# 3238 3240
CHANGE_PROTOCOL_STATE 400 681 684 704 718* 1477 1509 1860 2012 2803
CLEAR_DOORBELL 401 649 746* 1862
CMQIN$ 831 1193
CMQRM$ 469 3160
COM_FIELDS 1781
COUNTER_ADD 3162 3238
COUNTER_INCREMENT 786 787 2185 2186 2220 2221 2792 2793 3120 3121 3163 3210
3211 3239
COUNT 1976
CPQCNT 1456 3073
CSIZE 1449 2263 2275 2277 2285 3038 3051 3105 3127 3132 3148 3157
3223 3244
CSR 501 509 521 525 532 536 543 547 554 558
CTLSTP 402 790* 1380
CTLSTR 403 837* 1379
CURRENT_STATUS 404 881 885* 2411
C_ADDR 1938 2972 3142
C_BIAS 1938 2972 3142
C_CHN 1195 1212 2968 2979 3141
C_CNT 1207 1936 2975 2978 3145 3221 3238
C_FIELDS 205+ 221+ 248+ 261+ 274+ 296+ 818 865 1058 1110 1144 1185
1374 1581 1934 2328 2364 2404 2452 2488 2532 2572 2614 2655
2963 3139 3155 3219 3234
C_FNC 213+ 226+ 253+ 266+ 279+ 301+ 825 882 1070 1112 1152 2331
2371 2409 2455 2490
C_HANDLE 580# 875 2330 2366 2368 2408 2454
C_LIN 211+
C_LIX 580
C_LNK 215+ 228+ 255+ 268+ 281+ 303+
C_MOD 214+ 227+ 254+ 267+ 280+ 302+ 2332 2372 2410 2456
C_PIX 208+ 224+ 251+ 264+ 277+ 299+
C_PRM1 877 879
C_STS 824 881 1071 1113 1153 2333 2373 2411 2457 2491
D 1800
DB 478 484# 485 487# 488 624 648 649 651 656 659 667
668 669# 674 677# 678 679 680# 681 684 686 687 692
695 697 701 704 706 708 718 742 743# 744 746 770
779 781 786 787 790 815 820# 821# 822# 823# 827 830#
831 837 862 875# 879 881 885 909 930 933# 935 937#
939# 942# 943# 945 971 972 974 1000 1001 1003 1027 1028
1030 1055 1060 1062 1064# 1066 1068 1074 1077 1078 1082 1107
1116 1141 1146# 1148 1150 1156 1182 1187# 1189 1193 1202 1209
1216 1218 1222 1226 1250 1252 1254# 1255 1257 1281 1282# 1284
1287 1291 1294 1295 1296 1298 1303 1305 1314 1318 1320 1322
1331 1334 1337 1340 1341 1345 1371 1381 1384 1409 1411# 1413
1415 1418# 1419 1423 1447 1448 1449# 1450# 1451 1452# 1453# 1454#
1455# 1456# 1457# 1458 1459# 1460# 1461 1462 1468 1472# 1473# 1477
1479 1503 1505 1509 1510# 1511 1512# 1513 1515 1540 1549 1552
1578 1591 1594 1620 1621 1623 1649 1650 1652 1678 1679 1681
1707 1708 1710 1734 1739 1741 1751 1775 1783# 1784 1786 1788#
1789# 1791 1793# 1798 1801 1814# 1822# 1824 1826# 1828 1830# 1835
1837 1850# 1856 1860 1861# 1862 1863 1864# 1865# 1866 1867 1869
1893 1895 1898 1899 1906 1931 1937# 1939 1940 1983 2007 2009
2012 2013# 2020 2044 2045 2047 2073 2081 2087 2089 2115 2126
2129 2135 2159 2161 2164 2174 2176# 2178 2181 2182 2183# 2184
2185 2186 2187 2191 2198 2202 2205# 2210 2212 2215 2216 2217
2218# 2219 2220 2221 2222 2226# 2227 2228 2230 2254 2259 2261
2263 2265 2266 2267 2269 2271 2272 2273 2274# 2275 2276 2277
2285 2287 2291 2294 2298# 2300 2325 2330 2333 2335# 2337 2361
2366 2370# 2376 2401 2406 2408 2411 2414 2419 2424 2449 2454
2457 2459# 2461 2485 2493# 2495 2497 2500# 2501 2505 2529 2534
2536# 2540 2545 2569 2574 2576# 2578# 2582 2587 2611 2616 2618#
2622 2627 2652 2660 2665 2667 2669 2671 2673 2675 2682 2706
2707# 2709 2716 2721# 2722 2723 2725 2727 2729 2732 2735 2738
2739 2749 2752# 2755 2760 2762 2765# 2768 2769# 2776# 2778# 2781
2782# 2789 2792 2793 2794 2795# 2800 2803 2805 2808 2809 2814
2816 2825 2849 2854 2859 2885 2910 2912 2914 2919 2920 2924
2932 2956 2958 2965 2966# 2971# 2973 2974 2975# 2978# 2984# 2985
2986 2987 2994 2996# 3000# 3003 3007 3031 3036 3038 3040 3041
3042 3044 3046 3050 3051# 3052 3053 3054 3055 3056# 3057 3058
3073# 3074 3075 3076# 3080 3104 3105 3106 3108# 3110 3112 3113
3117 3118 3119 3120 3121 3122 3126# 3127 3129 3132# 3134 3141#
3143 3144 3145# 3148# 3149 3157# 3158 3160 3162 3163 3164# 3165
3168 3170# 3173 3197 3198 3200 3202 3203 3207 3208 3209 3210
3211 3212 3219 3221 3223# 3224# 3225# 3227 3229 3234 3236# 3237
3238 3239 3240 3241# 3244 3246# 3257
DB_BIAS 616# 2985 2994 2995
DD_CLEARED 1074 1505 2709
DECLARE_SEVERITY 306+
DEP 2085
DEPMYG 405 945* 2722
DEPMYH 406 667 678 974* 1451 1458 1863 1866 2227 3057 3074 3158
3237
DEVICE_BROKEN 407 1003* 1298 2187 2816 3122 3212
DEXDON 3284
DEXWD 2082 2083 2084 2130 2131 2132
DEXWD1 2084 2132
DEXWD2 2083 2131
DEXWD3 2082 2130
DF_CONTROL_WAITING 830 1415 1418 2497 2500
DF_FLUSHING_DTE 2269 3044 3168 3170 3244 3246
DF_NOTIFY_OFF 930 933 2576 2665
DF_NOTIFY_STATE 820 937 942 2406 2414 2578 2665
DF_SYNCHRONIZING 1252 1254 1282
DIAG2 525 527
DIAG3 3066
DISPATCH$ 1376 1541 1583
DLC_DISPATCH 591#
DLL 306+
DLL$A_CIRCUIT_NAME 181+#
DLL$B_PROVIDER_LINE_INDEX 176+#
DLL$B_PROVIDER_PROCESS_INDEX 177+#
DLL$FW_START_CCB_PRM1 174+#
DLL$FW_START_CCB_PRM2 179+#
DLL$FW_START_CCB_PRM3 183+#
DLL$K_DATA_RECEIVED 320+# 2372
DLL$K_ENTER_MAINTENANCE 280+ 314+# 1586
DLL$K_INITIALIZE_LINK 254+ 312+# 1587
DLL$K_MAINTENANCE_RECEIVED 321+#
DLL$K_PERSISTENT_ERROR 328+# 2332
DLL$K_STATE 326+# 2410
DLL$K_STOP_LINK 267+ 313+# 1588
DLL$K_TRANSIENT_ERROR 327+# 2456
DLL$K_TRANSMIT 302+ 311+# 1589
DLL$K_TRANSMIT_AND_TIME 315+# 1590
DLL$V_DTE_CIRCUIT 185+#
DLL$_ABORTED 335+ 1222 1462
DLL$_DEVICE_OPERATION_ERROR 364+ 1077 1296 2184 2219 3119 3209
DLL$_DEVICE_RESPONSE_ERROR 360+
DLL$_DEVICE_SERVICE_ERROR 362+
DLL$_MAINTENANCE_RECEIVED 358+
DLL$_NOT_SUPPORTED 334+ 1113
DLL$_PAUSE_TIMEOUT 367+ 2814
DLL$_PRIVLEDGE_VIOLATION 333+
DLL$_RECEIVE_ERROR 374+
DLL$_RECEIVE_THRESHOLD 348+
DLL$_SELECTION_THRESHOLD 350+
DLL$_SERVICE_TIMEOUT 372+
DLL$_START_RECEIVED 356+ 1898
DLL$_STATE_MAINTENANCE 342+ 928
DLL$_STATE_OFF 339+ 869 925
DLL$_STATE_RUNNING 341+ 872 873 927
DLL$_STATE_SYNCHRONIZING 340+ 870 871 926
DLL$_SUCCESS 332+ 824 1071 1153 2373 3165
DLL$_TRANSMIT_THRESHOLD 346+ 2768 2781
DLLINI 408 1030* 1587
DLLMOP 409 1082* 1586
DLLSTP 410 1116* 1588
DLLXMT 411 1156* 1589 1590
DLL_MAINTENANCE 915# 928
DLL_OFF 912# 919 925 939
DLL_RUNNING 914# 922 923 927
DLL_STATUS 924# 939 943
DLL_SYNCHRONIZING 913# 920 921 926
DLYCNT 505 516
DLYOFF 505# 515
DLYWRD 506# 512 514 516
DL_ON 1066 2854
DON10C 3112
DON11C 3202
DRESET 527
DS_COM 870 920 1286 1509 2758 2762
DS_HALTED 869 919 935 1060 1146 1148 1477 2576
DS_INITIALIZING 654 871 921 1316 1860 2719 2774
DS_PAUSED 699 873 923 1191 1289 1316 2012 2719 2799 2923
DS_RUNNING 681 684 690 704 872 922 1064 1191 1216 1289 1316 1331
2719 2729 2787 2803 2917 3106
DS_STA_HIGH 651 1189 1284 1314 2716 2755 2914
DS_STA_LOW 651 1189 1284 1314 2716 2755 2914
DTE 1# 590 2079 2081# 2082# 2083# 2084# 2085# 2086# 2087 2121 2126#
2127# 2128# 2129 2130 2131 2132 2257 2271# 2272 2273# 2296# 3034
3046# 3048 3050 3058# 3066# 3258 3284 3288
DTE$_PWF 2883
DTE$_QUE 3160
DTE$_XMT_MTL 1209
DTECTL 414 592 1345*
DTEDBI 605* 2850
DTEDVI 606 2851
DTEIN 455*
DTENMI 607 2852
DTENM 598* 1378
DTERCE 415 594 1384*
DTESTP 416 1028 1062 1150 1423* 1899 2045
DTESTR 417 1068 1479*
DTETIM 418 595 1515*
DTEXME 419 593 1552*
DTE_BIT 496# 527 538 549 560 2085
DTE_CCB_DB_STS 389# 439 2461#
DTE_CCB_DB 388# 435 436 437 438 2300# 2337# 2376# 2424#
DTE_DB 390# 399 400 401 407 416 417 425 426 427 429 430
433 434 441 448 449 450 451 624# 718# 746# 1003# 1423#
1479# 1751# 1869# 1906# 1983# 2020# 2135# 2230# 2545# 2932# 3007# 3080#
3173#
DTE_DB_CCB 391# 402 403 408 409 410 411 790# 837# 1030# 1082# 1116#
1156# 1592
DTE_DB_DTE 392# 452 3268#
DTE_DB_STS 393# 440 442 2505# 2587#
DTE_EXT 501# 2272 3050
DTE_FIELDS 2079 2121 2257 3034 3258
DTE_INTERRUPT 412 455 1226*
DTE_K_PAUSE_TIMEOUT 2013
DTE_K_START_TIMEOUT 669 680 1783 2776
DTE_K_TRANSMIT_DOORBELL_TIMEOUT 2298 2795 3076
DTE_REG 394# 428 1958#
DTE_RESET 521# 1461
DTE_RINGING 532# 781 1320 2725
DTE_SET 543# 668 679 779 1448 1511 1867 2794 3075 3112 3202
DTE_SYNCHRONIZE 413 1255 1257*
DTE_TEST 554# 1291 1303 1305 3048
DTN 1801
D_ACTIVE_BUFFERS 827 1187 1411 1413 2370 2493 2495
D_BYTES_RECEIVED 3238
D_BYTES_SENT 3162
D_CIRCUIT_COST 879
D_CIRCUIT_ENTITY 2215
D_CONTROLLER 1801
D_DATA_BLOCKS_RECEIVED 3239
D_DATA_BLOCKS_SENT 3163
D_DEVICE_SERVICE_ERRORS 787 2793
D_DEVICE_STATE 1074 1505 2709
D_DL_BLK 1202 1209 2212 2217
D_DMH 1001 1708 1793 1814
D_DOORBELL_STUCK 786
D_EHG 1621 1826 1830
D_EHM 1650 1830 1850
D_EMG 1679 1708 1789
D_FATAL_DEVICE_ERRORS 3121 3211
D_FIELDS 623 3257
D_HPN 1822
D_INVALID_QCOUNT 2185
D_LINE_ENTITY 1294 2181 3117 3207
D_LINE_STATE 1066 2854
D_LONG_TIMER 669 680 1460 1783 2013 2298 2749 2752 2776 2795 3076 3108
D_LOST_DOORBELL 2792
D_MESSAGE_TOO_LONG 2220
D_MKA 2721 2722
D_MPN 1788 1789 1826 1837
D_OWNER_HANDLE 823 875 2330 2366 2408 2454 2534 2574 2616 2660
D_PENDING_CONTROLS 831 1419 2501
D_PERSISTENT_ERROR 822 2333 2335 2536 2673
D_PROTOCOL_ERRORS 2186 2221
D_PROTOCOL_STATE 651 743 935 943 1060 1148 1189 1216 1284 1314 1331 2576
2716 2729 2755 2762 2914 3106
D_RBA 1939 1940 2266 2272 2273 2274 2276 3042 3198 3203
D_RCB 1468 1472 1937 2191 2202 2912 3219 3234 3241
D_RCT 1473 2259 2274 2285 2291 2294 3040 3168 3198 3221 3223 3224
3225
D_RECEIVE_BA_MISMATCH 3210
D_REGISTER 668 679 779 781 1291 1295 1303 1305 1320 1448 1461 1511
1867 2081 2126 2182 2271 2725 2794 3046 3075 3110 3112 3113
3118 3200 3202 3203 3208
D_REPORTED_STATE 939 943
D_REQUESTED_STATE 1064 1146
D_RQZ 2161 2210 2212 2216 2261 2263 2275 2277 2285 2287 3223 3224
3227
D_RST 656 659 701 1739 1784 1895 2009 2174 2178 2789 2800
D_START_THRESHOLD 1510 1861 2765 2769 2778 2782
D_SYNCH_BLOCK 1255
D_TIM 649 667 678 681 684 686 687 692 695 697 704 706
708 744 881 972 1001 1028 1062 1068 1077 1078 1150 1218
1222 1287 1296 1298 1303 1305 1318 1322 1334 1337 1340 1341
1381 1451 1458 1459 1462 1477 1509 1512 1513 1549 1591 1621
1650 1679 1708 1741 1786 1791 1798 1824 1828 1835 1856 1860
1862 1863 1866 1898 1899 2012 2045 2087 2129 2164 2184 2187
2198 2210 2219 2222 2227 2228 2411 2419 2540 2582 2622 2667
2671 2675 2707 2722 2723 2727 2732 2735 2738 2739 2760 2768
2781 2803 2805 2808 2809 2814 2816 2919 2920 2924 3003 3057
3074 3119 3122 3149 3158 3165 3209 3212 3229 3237 3240
D_TRANSIENT_ERROR 821 2457 2459 2618 2669
D_TRANSMIT_BA_MISMATCH 3120
D_XBA 2267 2973 2974 2986 2987 3041 3050 3052 3054 3058 3105 3113
3143 3144
D_XBUF 577 2985 2994
D_XCB 1452 2971 2984 3141
D_XCT 1453 2975 2996 3053 3055 3132 3134 3145
D_XLN 2966 2978 2996 3000 3162 3164
D_XMQ 1193 1462 2265 2958 2965 3160
D_XQZ 1449 1450 1451 1863 2958 3000 3036 3038 3051 3056 3057 3105
3126 3127 3129 3132 3148 3157 3158 3244
D_XST 667 674 677 678 1454 1455 1456 1457 1458 1864 1865 1866
2174 2176 2178 2183 2205 2218 2226 2227 3073 3074 3236 3237
EQLU 2368
ERR10C 3112
ERR11C 3202
ERROR 306+
EXDP_LINKAGE 396# 405 406 420 421 422 423 431 432 945# 974# 1594#
1623# 1652# 1681# 2047# 2089#
EXMHSG 420 1594* 1828
EXMHSM 421 1623* 1741 1835 1856 2210
EXMMYG 422 1652* 1791
EXMMYH 423 1681* 1798 1824
EXM_LINKAGE 395# 424 1710#
FALSE 569# 775 784 820 933 937 942 1282 1418 1903 2017 2500
3170 3246 3296
FC_AST 2331 2409 2455
FC_CCP 591 825 882
FC_CTL 213+ 226+ 592
FC_RCE 594
FC_RCP 2371
FC_TIM 595
FC_XCP 1070 1112 1152 2490
FC_XME 253+ 266+ 279+ 301+ 593
FD_CTL 1377
FD_TIM 1543
FLD 478 484 485 487 488 496 497
FLUSH_QUEUE 462# 1419 1462 2501
FM_CCB 1545
FM_LTM 1544
FM_NM 1378
FM_PIN 1548
FM_PWF 1547
FM_RDB 1546
FM_STP 227+ 1380
FM_STR 214+ 1379
FORPRO 1798 1835
GETCOM 425 1287 1513 1751* 2760
GET_DTE_DATA_BASE 619# 648 742 770 815 862 909 971 1000 1027 1055 1107
1141 1182 1250 1281 1371 1409 1447 1503 1540 1578 1620 1649
1678 1707 1734 1775 1893 1931 2007 2044 2073 2115 2159 2254
2325 2361 2401 2449 2485 2529 2569 2611 2652 2706 2849 2910
2956 3031 3104 3197
GET_HIS_STATUS 424 1318 1710* 2723
I 659 674 677 1864 1895
INDEX 1795 1832
INFO 306+
INITIALIZATION_REQUESTED 426 695 706 1337 1869* 2735 2805
INT10S 668 679 1867 2794 3075
INT11C 779
INTROF 1448
INTRON 668 679 1511
KPALIV 2722
LANGUAGE 3
LCL 573# 681 1477 1509 1860
LIN 201+ 210+ 211+
LINKAGE_DB 404 885#
LIST_FIRST 2265 2958 2965
MAP$ 2995
MCB$GAW_PROCESS_DATA_BASE 611 616 622
MCB$GA_PROCESS_DISPATCH 610
MCB$GW_PROCESS_HANDLE 612
MCB$GW_RDB_SIZE 613
MCB_CCB 598
MCB_DB 413 444 445 446 1257# 1550 2682# 2825# 2859#
MCB_DB_CCB_MOD 414 419 1345# 1552#
MCB_DB_CCB 415 443 447 1382 1384# 2627# 2885#
MCB_DB_MOD 418 1515#
MCB_INTERRUPT 412 455 1226#
MODIFIER 1345 1376 1515 1542 1552 1584
MSG_CNT 1200 1202# 1207#
NAME 590# 619 620 621 622#
NEW_RCB 427 1906* 2198 2919 2924
NONE 125
NO_OPERATION 570# 713 1310 1327 2745 2820
NPRCNT 1795 1832
NPRSIZ 1793 1830
OFFSET 945 972 974 1001 1594 1621 1623 1650 1652 1679 1681 1708
2047 2086 2089 2128
PARAMETER_DEVICE_REGISTERS 428 1295 1942* 2182 3118 3208
PARAMETER_DU_2 2216 2217
PARAMETER_H_2 1978
PAUSED 429 692 1334 1983* 2732
PHYSICAL_ADD 478# 3105 3198
PHYSICAL_HIGH 487 488 1940 2266 2267 2272 2974 2987 3041 3042 3050 3144
PHYSICAL_LOW 484 485 1939 2273 2274 2276 2973 2986 3052 3054 3058 3113
3143 3203
PIDENT 1791 1828
PRCNUM 1788
PROPNT 1824
PROSIZ 1810 1846
PROTOCOL_BROKEN 430 2020* 2222
PROTYP 1820
PROVIDER_PIX 201+ 207+ 208+ 217+ 223+ 224+ 244+ 250+ 251+ 257+ 263+ 264+
270+ 276+ 277+ 292+ 298+ 299+
PRTDEP 431 972 1001 2047*
PRTEXM 432 1621 1650 1679 1708 1786 2089*
PSIZE 1450 2161 2212 2216 2261 2958 3000 3036 3126 3129 3224 3227
QCOUNT 1457 2174 2176 2178 2183 2205 2218
QSIZE 1451 1863 2210 3057 3158
QUEUE 462 469
RCV 1455 2226 2789 3236
RDBGT$ 2198
RDBRQ$ 2206
RDBRT$ 1410 1471 2368 2912 2927
REASON 718
RECEIVE_MESSAGE 433 687 697 708 1341 2135* 2739 2809 2920
RECEIVE_SEGMENT 434 2164 2228 2230* 3229
RECOVERY 2658 2662 2667 2671 2675
REG 509# 516# 525# 527# 536# 538 547# 549# 558# 560 1949 1970#
1978 1979#
RELADR 1789
REPORT_STATUS 918# 943
RETURN_CALL 462 471
RMT 574# 684 704 2012 2803
ROT 482 484
SCHEDULE_PERSISTENT_AST 435 2300* 2540 2675
SCHEDULE_RECEIVE 436 2337* 3240
SCHEDULE_STATE_AST 437 2376* 2419 2582 2667
SCHEDULE_TRANSIENT_AST 438 2424* 2622 2671
SCHEDULE_TRANSMIT 439 1222 1462 2461* 3165
SEND_PERSISTENT_ERROR 440 1077 1296 1898 2184 2219 2505* 2814 3119 3209
SEND_STATE 441 744 1078 2545*
SEND_TRANSIENT_ERROR 442 2587* 2768 2781
SEVERE 306+
SIZE 1808 1810# 1812# 1814 1844 1846# 1848# 1850
STAT11 3284 3288
STATE 718 743
STATUS 667 678 773 775# 781# 784# 788 868# 1458 1741 1856 1866
2124 2129# 2133 2227 2461 2491 2505 2536 2587 2618 3074 3237
3277 3279# 3290# 3296# 3298
SUCCESS 306+ 1778# 1803 1816 1839 1852
SYNCH$ 1255
T10DON 450 1303 3080*
T11DON 451 1305 3173*
TABLE$ 591 868 918 924 1377 1543 1585
TENAD 2085 2086 2127 2128
TENAD1 2085 2127
TENAD2 2086 2128
TIMCCB 443 1545 2627*
TIMLTM 444 1544 2682*
TIMPIN 445 1548 2825*
TIMPWF 446 1547 2859*
TIMRDB 447 1546 2885*
TMODE 2287 3056
TO10AD 3058 3113
TO10BC 3110
TO10BM 3062 3065
TO10CM 3110
TO10DB 3048
TO10DN 1303
TO10ER 1291
TO11AD 2273 3203
TO11BC 2296 3200
TO11BM 2281 2290
TO11CM 2281 2287 3200
TO11DB 538
TO11DN 1305
TO11ER 1291
TO11IB 2281 2285
TOPRCN 1822 1837
TRANSMIT_MESSAGE 448 686 1218 1340 2738 2808 2932*
TRANSMIT_SEGMENT 449 3003 3007* 3149
TRUE 568# 781 830 1254 1900 2014 2576 2578 3290
V 656 701 1454 1858 1865 2009 2800
VALUE 478 485 512 514# 515# 516 2281 2283# 2285# 2287# 2290# 2296
3062 3064# 3065# 3066
WARNING 306+
WTEXDP 452 2087 2129 3249*
$DLL$CCB 205+# 208+# 211+# 213+# 214+# 215+ 221+# 224+# 226+# 227+# 228+ 248+#
251+# 253+# 254+# 255+ 261+# 264+# 266+# 267+# 268+ 274+# 277+# 279+#
280+# 281+ 296+# 299+# 301+# 302+# 303+
$DLL_ENTER_MAINTENANCE 270+#
$DLL_ERROR 333+ 334+ 358+
$DLL_INFO 339+ 340+ 341+ 342+
$DLL_INITIALIZE 244+#
$DLL_RELEASE_CIRCUIT 217+#
$DLL_REQUEST_CIRCUIT 201+#
$DLL_SEVERE 360+ 362+ 364+
$DLL_STOP 257+#
$DLL_SUCCESS 332+
$DLL_TRANSMIT 292+#
$DLL_WARNING 335+ 346+ 348+ 350+ 356+ 367+ 372+ 374+
$DSPCR 587* 591 1377 1543 1585
$MCB_CONVERT_TO_UBA_ADDRESS 1938 2972 2985# 3142
$MCB_COPY_CHAIN_TO_BUFFER 2994
$MCB_ENABLE_LONG_TIMER 2856
$MCB_GET_CCB 2417 2538 2580 2620 2679
$MCB_PROCESS 589
$MCB_REQUEST_CCB 2421 2542 2584 2624
$MCB_RETURN_CCB 2406 2660 2677
$MCB_SCHEDULE_CCB 215+ 228+ 255+ 268+ 281+ 303+ 834 883 1072 1114 1154 1419
2334 2374 2412 2458 2492 2501
$NM_DLL_EVENT 2215
$NM_PLL_EVENT 1294 2181 3117 3207
$SHOW 125
$SUB_FIELD 484 485 487 488 515 516 656 659 674 677 701 1449
1450 1454 1455 1456 1457 1864 1865 1895 1939 1940 2009 2082
2083 2084 2085 2086 2127 2128 2130 2131 2132 2161 2174 2176
2178 2183 2205 2212 2216 2218 2226 2261 2263 2265 2266 2267
2272 2273 2274 2275 2276 2277 2285 2287 2789 2800 2958 2965
2973 2974 2986 2987 3000 3036 3038 3041 3042 3050 3051 3052
3054 3056 3058 3073 3105 3110 3113 3126 3127 3129 3132 3143
3144 3148 3157 3200 3203 3223 3224 3227 3236 3244 3284 3288
%REMAINING 471 549 560