Trailing-Edge
-
PDP-10 Archives
-
BB-P363B-SM_1985
-
mcb/drivers/dcpini.b16
There are no other files named dcpini.b16 in the archive.
module DCPINI ( ! DDCMP Initialization
ident = 'X01070',
language (bliss16)
) =
begin
!
! COPYRIGHT (c) 1980, 1981, 1982
! DIGITAL EQUIPMENT CORPORATION
! Maynard, Massachusetts
!
! This software is furnished under a license and may be used
! and copied only in accordance with the terms of such license
! and with the inclusion of the above copyright notice. This
! software or any other copies thereof may not be provided or
! otherwise made available to any other person. No title to
! and ownership of the software is hereby transferred.
!
! The information in this software is subject to change
! without notice and should not be construed as a commitment
! by DIGITAL EQUIPMENT CORPORATION.
!
! DIGITAL assumes no responsibility for the use or reliability
! of its software on equipment which is not supplied by
! DIGITAL.
!
!++
!
! FACILITY: MCB DDCMP Protocol Driver
!
! ABSTRACT:
!
! This module contains the DDCMP initialization routines.
!
! ENVIRONMENT: MCB V3.2
!
! AUTHOR: Alan D. Peckham CREATION DATE: 16-Apr-81
!
! MODIFIED BY:
!
! Alan D. Peckham, 16-Apr-81: Version 1
! 01 - New module for DCP.
! 03 - Use $MCB_GET_DEVICE_NAME to get circuit/line name.
! 04 - Save NMX process index for later.
! 05 - Get KDP parameters from PLL.
! 06 - Turn on NMX$FLG_maintenance_allowed for the circuit.
! 07 - Zero the time-last-zeroed counter.
!--
!
! INCLUDE FILES:
!
library 'MCBLIB';
library 'XPORTX';
library 'NMXLIB';
library 'DCPDAT';
!
! TABLE OF CONTENTS:
!
linkage
DDM_CCB = jsr (register = 4) : nopreserve (4);
forward routine
TIMPIN : MCB_DB novalue;
!
! MACROS:
!
! None
!
! EQUATED SYMBOLS:
!
literal
TRUE = 1 EQL 1,
FALSE = 1 EQL 0,
NO_OPERATION = 0;
macro
C_HANDLE = %fieldexpand (C_LIN, 0), 0, %bpval, 0 %;
!
! OWN STORAGE:
!
external routine
$DSPCR : novalue;
!
! EXTERNAL REFERENCES:
!
external
MCB$GAW_PROCESS_DATA_BASE : vector [2],
MCB$GW_PROCESS_HANDLE;
bind
DB_BIAS = MCB$GAW_PROCESS_DATA_BASE [0];
macro
GET_DCP_DATA_BASE (NAME) =
%if %declared (NAME)
%then map NAME : ref
%else bind NAME = .MCB$GAW_PROCESS_DATA_BASE [1] :
%fi block field (D_FIELDS) %;
global routine TIMPIN
!++
! FUNCTIONAL DESCRIPTION:
!
!
! FORMAL PARAMETERS:
!
(DB : ref block field (D_FIELDS))
!
! IMPLICIT INPUTS:
! None
!
! IMPLICIT OUTPUTS:
! None
!
! ROUTINE VALUE:
!
: MCB_DB novalue =
!
! SIDE EFFECTS:
! None
!--
begin
DB [L_PROTOCOL] = DP_DMC;
if .DB [LI_HDX] then DB [L_DUPLEX] = 1;
$NM_TIME (DB [L_TIME_LINE_ZEROED]);
begin
local
NMXPIX;
if $MCB_GET_PROCESS_HANDLE (%rad50_11 'NMX', NMXPIX)
then
begin
local
NAME_BUFFER : vector [ch$allocation (17)],
NMXID;
bind
NAME_PTR = ch$ptr (NAME_BUFFER);
DB [D_NMX_PIX] = .NMXPIX;
$MCB_GET_DEVICE_NAME (.DB [L_LINE_ENTITY], NAME_PTR);
NMX$CREATE_LINE (.NMXPIX, NAME_PTR, 0, NMXID);
NMX$MODIFY_LINE_PROVIDER (.NMXPIX, NAME_PTR,
.MCB$GW_PROCESS_HANDLE^8 + DCP_K_LINE_PROVIDER,
DB [L_LINE_ENTITY]);
NMX$MODIFY_LINE_OWNER (.NMXPIX, NAME_PTR,
.MCB$GW_PROCESS_HANDLE^8 + DCP_K_LINE_OWNER,
NMXID);
NMX$CREATE_CIRCUIT (.NMXPIX, NAME_PTR, NMX$FLG_maintenance_allowed, NMXID);
NMX$MODIFY_CIRCUIT_PROVIDER (.NMXPIX, NAME_PTR,
.MCB$GW_PROCESS_HANDLE^8 + DCP_K_CIRCUIT_PROVIDER,
DB [S_CIRCUIT_ENTITY]);
end;
end;
begin
local
CCB : ref block field (C_FIELDS);
external routine
$DDGET : DDM_CCB novalue;
if not $MCB_GET_CCB (CCB) then return;
CCB [C_HANDLE] = .DB [L_DRIVER_HANDLE];
$DDGET (.CCB);
end;
end;
end
eludom