Trailing-Edge
-
PDP-10 Archives
-
klad_sources
-
klad.sources/msdpmd.beg
There are no other files named msdpmd.beg in the archive.
%TITLE 'STIRS FAULT ISOLATION DATA FOR M8621 (DPM) BOARD'
MODULE MSDPMD (
LANGUAGE(BLISS36)
) =
BEGIN
!
! COPYRIGHT (C) 1979 BY
! DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
!
! 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: DECSYSTEM 2020 DIAGNOSTIC RELEASE TAPE 'DSTIR'
!
! ABSTRACT:
!
! THIS MODULE CONTAINS THE FAULT ISOLATION DATA FOR THE KS10
! STIMULUS/RESPONSE (STIRS) DIAGNOSTIC FOR THE M8621 (DPM) BOARD.
! IT IS LINKED TO THE 'MSSTRC' AND 'MSDPMT' MODULES TO PRODUCE
! THE 'MSDPM.EXE' FILE.
!
! ENVIRONMENT: RUNS UNDER 'CSL' ON A TOPS-20 SYSTEM.
!
! AUTHOR: ARON INSINGA , CREATION DATE: 01-SEP-78!
! MODIFIED BY:
!
! ARON INSINGA, 23-MAY-79; VERSION 0.1
!--
!
! EQUATED SYMBOLS:
!
GLOBAL LITERAL
DATA_VERSION = 1,
DATA_EDIT = 0;
COMPILETIME
ALLOC_B = 35, ! PDP-11 STYLE BIT # IN WORD, READY TO OVERFLOW
ALLOC_W = -1, ! WORD #, SO WE WILL START WITH 0 AFTER OVERFLOW
ALLOC_N = 0, ! NUMBER OF THINGS ALLOCATED
ALLOC_N_1 = 0, ! (ALLOC_N - 1) TEMPORARY
ALLOC_W_1 = 0, ! (ALLOC_W + 1) TEMPORARY
ALLOC_B_1 = 0; ! (35 - ALLOC_B) TEMPORARY
!
! MACROS:
!
MACRO
ALLOC(ALLOC_NAME,ALLOC_SLIT) = ! ALLOCATE FAULT ANALYSIS BITS
%ASSIGN(ALLOC_B,ALLOC_B + 1)
%IF ALLOC_B EQL 36
%THEN
%ASSIGN(ALLOC_B,0)
%ASSIGN(ALLOC_W,ALLOC_W + 1)
COMPILETIME
%NAME(W_,%NUMBER(ALLOC_W)) = 0;
%FI
! PRINT THE WORD # AND PDP-10 BIT # INTO THE LISTING
%ASSIGN(ALLOC_B_1,35 - ALLOC_B)
%PRINT(%NUMBER(ALLOC_W),',',%NUMBER(ALLOC_B_1))
MACRO
ALLOC_NAME =
%QUOTE %ASSIGN
(
%QUOTE %EXPAND %NAME(W_,%NUMBER(ALLOC_W)),
%QUOTE %EXPAND %NAME(W_,%NUMBER(ALLOC_W)) OR
(1 ^ %QUOTE %EXPAND %NUMBER(ALLOC_B))
)
%QUOTE % ;
BIND
%NAME(N_,%NUMBER(ALLOC_N)) =
%IF %NULL(ALLOC_SLIT)
%THEN
%ASSIGN(ALLOC_N_1,ALLOC_N - 1)
%NAME(N_,%NUMBER(ALLOC_N_1))
%ELSE
UPLIT(%ASCIZ ALLOC_SLIT)
%FI ;
%ASSIGN(ALLOC_N,ALLOC_N + 1)
%,
DUMP(X,N)[] = ! X0, ... XN
%IF %COUNT GEQ N %THEN %EXITMACRO %FI
%IF %COUNT NEQ 0 %THEN , %FI
%NAME(X,%NUMBER(%COUNT))
DUMP(X,N)
%,
DUMP_ASSIGN(N)[] = ! %ASSIGN(X0,0) ... %ASSIGN(XN,0)
%IF %COUNT GEQ N %THEN %EXITMACRO %FI
%QUOTE %ASSIGN (%NAME(W_,%NUMBER(%COUNT)),0)
DUMP_ASSIGN(N)
%;
! DPM 1
ALLOC(DBM_SEL_SCAD,'DPM1: DBM MUX SELECT')
ALLOC(DBM_SEL_PF)
ALLOC(DBM_SEL_APR)
ALLOC(DBM_SEL_APR_EN)
ALLOC(DBM_SEL_BYTES)
ALLOC(DBM_SEL_BYTES35)
ALLOC(DBM_SEL_EXP)
ALLOC(DBM_SEL_MSEC)
ALLOC(DBM_SEL_DP)
ALLOC(DBM_SEL_DP_SWAP)
ALLOC(DBM_SEL_VMA)
ALLOC(DBM_SEL_MEM)
ALLOC(DBM_SEL_N)
! DPM 1,2
ALLOC(DBM_SCAD,'DPM1,2: DBM MUX')
ALLOC(DBM_PF)
ALLOC(DBM_APR)
ALLOC(DBM_APR_EN)
ALLOC(DBM_BYTES)
ALLOC(DBM_BYTES35)
ALLOC(DBM_EXP)
ALLOC(DBM_MSEC)
ALLOC(DBM_DP)
ALLOC(DBM_DP_SWAP)
ALLOC(DBM_VMA)
ALLOC(DBM_VMA_MEM)
ALLOC(DBM_MEM)
ALLOC(DBM_N)
! DPM 3
ALLOC(SCADA_SC,'DPM3: SCAD A MUX')
ALLOC(SCADA_SN)
ALLOC(SCADA_44)
ALLOC(SCADA_BYTE1)
ALLOC(SCADA_BYTE2)
ALLOC(SCADA_BYTE3)
ALLOC(SCADA_BYTE4)
ALLOC(SCADA_BYTE5)
ALLOC(SCADA_SEL_SC,'DPM3: SCAD A MUX SELECT')
ALLOC(SCADA_SEL_SN)
ALLOC(SCADA_SEL_44)
ALLOC(SCADA_SEL_BYTE1)
ALLOC(SCADA_SEL_BYTE2)
ALLOC(SCADA_SEL_BYTE3)
ALLOC(SCADA_SEL_BYTE4)
ALLOC(SCADA_SEL_BYTE5)
ALLOC(SCADB_FE,'DPM3: SCAD B MUX')
ALLOC(SCADB_EXP)
ALLOC(SCADB_SHIFT)
ALLOC(SCADB_SIZE)
ALLOC(SCADB_SEL_FE,'DPM3: SCAD B MUX SELECT')
ALLOC(SCADB_SEL_EXP)
ALLOC(SCADB_SEL_SHIFT)
ALLOC(SCADB_SEL_SIZE)
! DPM 3,4
ALLOC(SCAD_A_MUL2,'DPB3,4: SCAD')
ALLOC(SCAD_OR)
ALLOC(SCAD_SUBB)
ALLOC(SCAD_SUB)
ALLOC(SCAD_ADD)
ALLOC(SCAD_AND)
ALLOC(SCAD_A_DEC)
ALLOC(SCAD_A)
! DPM 4
ALLOC(VMA_USER_DP,'DPM4: VMA USER')
ALLOC(VMA_USER_N)
ALLOC(VMA_PREV_DP,'DPM4: VMA PREVIOUS')
ALLOC(VMA_PREV_N)
ALLOC(VMA_PHYS_DP,'DPM4: VMA PHYSICAL')
ALLOC(VMA_PHYS_N)
ALLOC(VMA_FETCH_DP,'DPM4: VMA FETCH')
ALLOC(VMA_FETCH_N)
ALLOC(VMA_CYCLE_DP,'DPM4: VMA CYCLE')
ALLOC(VMA_CYCLE_N)
ALLOC(VMA_SWEEP,'DPM4: VMA SWEEP')
ALLOC(VMA_SWEEP_CD)
ALLOC(VMA_SWEEP_PT)
ALLOC(VMA,'DPM4: VMA REGISTER')
ALLOC(FE,'DPM4: FE REGISTER')
ALLOC(FE_EN,'DPM4: FE ENABLE')
ALLOC(FE_SIGN,'DPM4: FE SIGN')
ALLOC(SC,'DPM4: SC REGISTER')
ALLOC(SC_EN,'DPM4: SC ENABLE')
ALLOC(SC_SIGN,'DPM4: SC SIGN')
ALLOC(AC_REF,'DPM4: VMA IS AC')
! DPM 5
ALLOC(MEM_READ_N,'DPM5: MEM READ')
ALLOC(MEM_READ_DP)
ALLOC(MEM_READ_DRO)
ALLOC(MEM_WRITE_N,'DPM5: MEM WRITE')
ALLOC(MEM_WRITE_DP)
ALLOC(MEM_WRITE_DRO)
ALLOC(MEM_WR_TEST_N,'DPM5: MEM WRITE TEST')
ALLOC(MEM_WR_TEST_DP)
ALLOC(MEM_WR_TEST_DRO)
ALLOC(MEM_CAC_INH_N,'DPM5: MEM CACHE INHIBIT')
ALLOC(MEM_CAC_INH_DP)
ALLOC(MEM_CAC_INH_DRO)
ALLOC(BUS_REQ,'DPM5: BUS REQUEST')
ALLOC(BUS_REQ_A)
ALLOC(CLK_APR,'DPM5: CLOCK APR')
ALLOC(MEM_DELAY,'DPM5: MEM DELAY')
ALLOC(VMA_EN,'DPM5: VMA EN')
ALLOC(MEM_EN,'DPM5: MEM EN')
ALLOC(SPEC,'DPM5: SPEC')
ALLOC(STOP,'DPM5: STOP MEM')
ALLOC(MEM_WAIT,'DPM5: MEM WAIT')
ALLOC(FORCE,'DPM5: FORCE RAMFILE')
! DPM 5,6,C
ALLOC(BUS_CYCLE,'DPM5,6,C: BUS CYCLE CONTROL')
! DPM 6
ALLOC(PT_ADR,'DPM6: PAGE TABLE')
ALLOC(PT_IO)
ALLOC(PT_VAL_WRT)
ALLOC(PT_USR)
ALLOC(PT_CAC)
ALLOC(PT_PAR)
ALLOC(PT_RAM_PAG_USR)
ALLOC(PT_RAM_VAL_WRT)
ALLOC(PT_RAM_CAC)
ALLOC(PT_RAM_PAR)
ALLOC(PF,'DPM6: PAGE FAIL')
ALLOC(PF_WT)
ALLOC(PF_NXM)
ALLOC(PF_BAD)
ALLOC(PF_OK)
ALLOC(PT_PAR_GEN,'DPM6: PT PARITY')
ALLOC(PAR_ERR,'DPM6: PARITY ERR')
! DPM 7
ALLOC(CD_ADR,'DPM7: CACHE DIR')
ALLOC(CD_IO)
ALLOC(CD_VAL)
ALLOC(CD_CMP,'DPM7: CD COMPARATOR')
ALLOC(CD_HIT,'DPM7: CD HIT')
ALLOC(CD_PAR,'DPM7: CD PARITY')
ALLOC(CD_RAM_PAG_USR)
ALLOC(CD_RAM_VAL)
ALLOC(CD_RAM_PAR)
! DPM 8,9
ALLOC(BUS_MUX_DP,'DPM8,9: DBM MUX')
ALLOC(BUS_MUX_VMA)
ALLOC(BUS_MUX_PAGE)
ALLOC(BUS_PAR,'DPM8,9: BUS PARITY')
! DPM 8,9,C
ALLOC(BUS_T,'DPM8,9: BUS XCVR')
ALLOC(BUS_R);
! DPM A
ALLOC(CLK,'DPMA: CLOCK')
ALLOC(RAM_CLK,'DPMA: RAM CLOCK')
ALLOC(BUS_CLK,'DPMA: BUS CLOCK')
ALLOC(BUS_XMIT,'DPMA: BUS XMIT')
ALLOC(RESET,'DPMA: RESET')
ALLOC(PXCT,'DPMA: PXCT')
ALLOC(PXCT_MUX,'DPMA: PXCT MUX')
ALLOC(PXCT_MUX_DPE)
ALLOC(SPEC_PREV,'DPMA: SPEC 10')
ALLOC(SPEC_APR)
ALLOC(SPEC_SWEEP)
ALLOC(SPEC_APR_EN)
ALLOC(SPEC_PXCT_OFF)
ALLOC(SPEC_MEMCLR)
ALLOC(SPEC_MEMCLR_NXM)
ALLOC(SPEC_MEMCLR_BAD)
ALLOC(SPEC_MSEC,'DPMA: SPEC 20')
ALLOC(SPEC_PAGE)
ALLOC(SPEC_PXCT_EN)
! DPM A,C
ALLOC(PT_CLK,'DPMA,C: PT CLOCK')
! DPM B
ALLOC(APR,'DPMB: APR FLAGS')
ALLOC(APR_EN,'DPMB: APR EN')
ALLOC(TRAP_EN,'DPMB: TRAP EN')
ALLOC(PAGE_EN,'DPMB: PAGE EN')
! DPM C
ALLOC(BUS_TIMEOUT,'DPMC: BUS TIMEOUT')
ALLOC(BUS_NXM,'DPMC: NXM ERR')
ALLOC(BAD_DATA,'DPMC: BAD DATA')
ALLOC(MEM_CYCLE,'DPMC: MEM CYCLE')
ALLOC(IO_CYCLE,'DPMC: IO CYCLE')
ALLOC(MSEC,'DPMC: MSEC')
ALLOC(MSEC_FREQ,'DPMC: MSEC FREQUENCY')
! COMBINATIONS
MACRO
BUS = BUS_T BUS_R %,
BUS_MUX = BUS_MUX_DP BUS_MUX_VMA BUS_MUX_PAGE %,
BUS_ALL = BUS BUS_REQ BUS_TIMEOUT BUS_CYCLE BUS_CLK BUS_XMIT BUS_NXM %,
VMA_ALL_DP = VMA_CYCLE_DP VMA_EN VMA VMA_PHYS_DP VMA_PREV_DP VMA_USER_DP %,
VMA_ALL_N = VMA_CYCLE_N VMA_EN VMA VMA_PHYS_N VMA_PREV_N VMA_USER_N N_ALL %,
N_ALL = DBM_N DBM_SEL_N %,
PT_MESS = SPEC_PAGE PF BUS_ALL MEM_EN BUS_REQ MEM_WRITE_N MEM_READ_N BUS_MUX_PAGE VMA_ALL_N %,
PF_CODE = PF DBM_PF DBM_SEL_PF %,
VMA_USER_PREV = VMA_USER_DP VMA_USER_N VMA_PREV_DP VMA_PREV_N %,
SPEC_PXCT = SPEC_PXCT_OFF SPEC_PXCT_EN %;
!
! EQUATED SYMBOLS:
!
GLOBAL LITERAL
MAXNETS = ALLOC_N;
MACRO
NTWK =
%ASSIGN(ALLOC_W_1,ALLOC_W + 1)
DUMP(W_,%NUMBER(ALLOC_W_1))
DUMP_ASSIGN(%NUMBER(ALLOC_W_1))
%;
! THIS MAKES A V E R Y LONG LISTING WITH EXPANSIONS
SWITCHES LIST(NOEXPAND);
GLOBAL BIND
NET_NAMES = PLIT
(
DUMP(N_,%NUMBER(ALLOC_N))
);
! DOCUMENT WHAT JUST HAPPENED
%PRINT(%NUMBER(ALLOC_N))
%PRINT(%NUMBER(ALLOC_W))
%PRINT(%NUMBER(ALLOC_B))