Google
 

Trailing-Edge - PDP-10 Archives - BB-P363B-SM_1985 - mcb/drivers/dmr.b16
There are no other files named dmr.b16 in the archive.
module DMR (	! Driver for DMR11
		ident = 'X04030',
		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 DMR Driver
!
! ABSTRACT:
!
!	This is the vestigial process to start up a DMR11 synchronous
!	line interface.  Control is passed to the DMC process.
!
! ENVIRONMENT: MCB V3.0
!
! AUTHOR: Alan D. Peckham	CREATION DATE: 6-Aug-81
!
! MODIFIED BY:
!
!	Alan D. Peckham, 6-Aug-81: Version 4
! 01	- New process for MCB V3.2
! 02	- Alter system line DLC to new process.
! 03	- Eliminate extraneous functionality to save space.
!--
!
! INCLUDE FILES:
!

library 'MCBLIB';

library 'XPORTX';

$SHOW (NONE)
require 'DLLLIB';

library 'NMXLIB';

library 'DMCDAT';

!
! TABLE OF CONTENTS:
!

forward routine
    DMRTIM : MCB_DB_MOD novalue,
    TIMPIN : MCB_DB novalue;

!
! MACROS:
!
!	None
!
! EQUATED SYMBOLS:
!

literal
    TRUE = 1 EQL 1,
    FALSE = 1 EQL 0,
    NO_OPERATION = 0;

global literal
    %name ('DD.INI') = DD_CLEARED,
    %name ('D.LEN') = %fieldexpand (D_BUF, 0)^1;

!
! OWN STORAGE:
!

external routine
    $DSPCR : novalue;

$MCB_PROCESS (
    NAME = DMR,					! Process name
    DLC_DISPATCH = TABLE$ ($DSPCR, FC_CCP,	! DLL dispatch vector:
	(FC_TIM, DMRTIM)))			!  Timeout

!
! EXTERNAL REFERENCES:
!

external
    MCB$GAW_PROCESS_DATA_BASE : vector [2],
    MCB$GW_PROCESS_HANDLE;

bind
    DB_BIAS = MCB$GAW_PROCESS_DATA_BASE [0];
routine DMRTIM

!++
! FUNCTIONAL DESCRIPTION:
!
!
! FORMAL PARAMETERS:
!
       (DB : ref block field (D_FIELDS),
	MODIFIER)
!
! IMPLICIT INPUTS:
!	None
!
! IMPLICIT OUTPUTS:
!	None
!
! ROUTINE VALUE:
!
	: MCB_DB_MOD novalue =
!
! SIDE EFFECTS:
!	None
!--

    begin
    DISPATCH$ (
	.MODIFIER,
	TABLE$ ($DSPCR, FD_TIM,		! Timer dispatch table:
	    (FM_PIN, TIMPIN)),		!  RDB available
	(DB [D_TIM]),
	MCB_DB);
    end;			!of routine DMRTIM
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
    begin

    local
	BUF : vector [3],
	PIX;

    DB [DF_DMR_LINE] = TRUE;

    if $MCB_SET_PROCESS (%rad50_11 'DMC', PIX)
    then
	begin
	$MCB_GET_LINE_PROCESSES (.DB [D_CIRCUIT_ENTITY], BUF);
	BUF [1] = .PIX;
	$MCB_SET_LINE_PROCESSES (.DB [D_CIRCUIT_ENTITY], BUF);
	CALL$P (DMCDB, .PIX, .DB_BIAS, DB [D_TIM]);
	MCB$GAW_PROCESS_DATA_BASE [0] = 0;
	MCB$GAW_PROCESS_DATA_BASE [1] = 0;
	$MCB_CLEAR_PROCESS ();
	end;

    end;
    end;			!of routine TIMPIN
end
eludom