mirror of
https://github.com/PDP-10/stacken.git
synced 2026-03-06 19:11:04 +00:00
473 lines
14 KiB
Plaintext
473 lines
14 KiB
Plaintext
! CEXLIB.R16 - CEX Structure definitions for MCBDA
|
|
!
|
|
! COPYRIGHT (C) 1980
|
|
! DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754
|
|
!
|
|
! THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A SINGLE
|
|
! COMPUTER SYSTEM AND MAY BE COPIED ONLY 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
|
|
! EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO THESE LICENSE
|
|
! TERMS. TITLE TO AND OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES
|
|
! REMAIN IN DEC.
|
|
!
|
|
! THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
|
|
! AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
|
|
! CORPORATION.
|
|
!
|
|
! DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
|
|
! SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
|
|
!
|
|
|
|
!++
|
|
! FACILITY: MCB Communications Executive
|
|
!
|
|
! FUNCTIONAL ABSTRACT:
|
|
!
|
|
! This module contains the Comm/Exec specific macros
|
|
!
|
|
! ENVIRONMENT: RSX kernel mode with EIS
|
|
!
|
|
! AUTHOR: Alan D. Peckham, CREATION DATE: 20-MAR-80
|
|
!
|
|
! MODIFIED BY:
|
|
!
|
|
! 01 - Use macros from MCBLIB
|
|
! 02 - Process descriptor re-organized.
|
|
!--
|
|
|
|
%if not %declared (XPO$K_VERSION) %then library 'BLI:XPORT'; %fi
|
|
|
|
%if not %declared (MCB$K_VERSION) %then library 'MCB:MCBLIB'; %fi
|
|
|
|
$SHOW (FIELDS) $SHOW (LITERALS)
|
|
|
|
!
|
|
! EQUATED SYMBOLS:
|
|
!
|
|
|
|
%if %bliss (bliss16) %then
|
|
linkage
|
|
CEX_LL_ADD_LOW_HIGH = jsr (register = 2, register = 1, register = 0; register = 1, register = 0),
|
|
CEX_LL_BLKS = jsr (register = 1) : preserve (0) clearstack valuecbit,
|
|
CEX_LL_CNT_LOW_HIGH = jsr (register = 2, register = 1, register = 0; register = 1, register = 0),
|
|
CEX_LL_NUM_LOW_HIGH = jsr (register = 2, register = 1, register = 0; register = 0, register = 1),
|
|
CEX_LL_NUM_NUM = jsr (register = 2, register = 0; register = 1, register = 0),
|
|
CEX_LL_PDB_FNC_MOD = jsr (register = 0, register = 2, register = 3)
|
|
: nopreserve (0, 1, 2, 3, 4, 5),
|
|
CEX_LL_PDB_DSP = jsr (register = 0, register = 2)
|
|
: nopreserve (0, 1, 2, 3, 4, 5);
|
|
%fi
|
|
|
|
macro
|
|
CEX$$ADD_32 = %name ('$ADD32') %,
|
|
CEX$$ADDRESS_ERROR_TRAP = %name ('$EX4') %,
|
|
CEX$$ALLOCATE_CORE = %name ('$BLKGT') %,
|
|
CEX$$BREAKPOINT_TRAP = %name ('$EX14') %,
|
|
CEX$$CLEAR_PROCESS = %name ('$PDBCL') %,
|
|
CEX$$CLEAR_PROCESS_NAME = %name ('$PNMCL') %,
|
|
CEX$$CLEAR_VECTOR = %name ('$VECCL') %,
|
|
CEX$$DISPATCH_PROCESS = %name ('$PRCDS') %,
|
|
CEX$$DIVIDE_32 = %name ('$DIV32') %,
|
|
CEX$$EMT_INSTRUCTION_TRAP = %name ('$EX30') %,
|
|
CEX$$ENTER_CEX = %name ('$CEXSV') %,
|
|
CEX$$EXIT_CEX = %name ('$CEXXT') %,
|
|
CEX$$GET_LINE_NAME = %name ('$SLTNM') %,
|
|
CEX$$GET_LINE_PROCESSES = %name ('$SLTGT') %,
|
|
CEX$$GET_PROCESS_INDEX = %name ('$PNMGT') %,
|
|
CEX$$GET_PROCESS_NAME = %name ('$PRCNM') %,
|
|
CEX$$ILLEGAL_INSTRUCTION_TRAP = %name ('$EX10') %,
|
|
CEX$$IOT_INSTRUCTION_TRAP = %name ('$EX20') %,
|
|
CEX$$MULTIPLY_32 = %name ('$MUL32') %,
|
|
CEX$$PARITY_ERROR_TRAP = %name ('$EX114') %,
|
|
CEX$$POWER_FAILURE_TRAP = %name ('$EX24') %,
|
|
CEX$$SEGMENT_FAULT_TRAP = %name ('$EX250') %,
|
|
CEX$$SET_EXCEPTION = %name ('$EXVEN') %,
|
|
CEX$$SET_LINE_PROCESSES = %name ('$SLTST') %,
|
|
CEX$$SET_PROCESS = %name ('$PDBST') %,
|
|
CEX$$SET_PROCESS_NAME = %name ('$PNMST') %,
|
|
CEX$$SET_VECTOR = %name ('$VECST') %,
|
|
CEX$$SHIFT_32 = %name ('$ASH32') %,
|
|
CEX$$SYNCHRONIZE_PROCESS = %name ('$SYNDS') %,
|
|
CEX$$TRAP_INSTRUCTION_TRAP = %name ('$EX34') %,
|
|
|
|
CEX$GW_AVG_CCB_DISPATCHES = %name ('.SMDSP') %,
|
|
CEX$GW_AVG_INTERRUPTS = %name ('.SMINT') %,
|
|
CEX$GW_AVG_LONG_TIMERS = %name ('.SMLTM') %,
|
|
CEX$GW_AVG_SHORT_TIMERS = %name ('.SMSTM') %,
|
|
CEX$GW_AVG_SYNCHS = %name ('.SMSYN') %,
|
|
CEX$GW_BLOCK_POOL_BIAS = %name ('.BLKTB') %,
|
|
CEX$GH_BUFFER_POOL_COUNT = %name ('.CORNM') %,
|
|
CEX$GA_BUFFER_POOL_TABLE = %name ('.CORTA') %,
|
|
CEX$GW_CCB_DISPATCH_COUNT = %name ('.DSPCT') %,
|
|
CEX$AG_CCB_DSR_ALLOCATION = %name ('.CCBDM') %,
|
|
CEX$GR_CCB_POOL = %name ('.CCBTB') %,
|
|
CEX$AA_CCB_QUEUE_H = %name ('.CBHQH') %,
|
|
CEX$AA_CCB_QUEUE_L = %name ('.CBLQH') %,
|
|
CEX$GA_CEX_FORK_BLOCK = %name ('.FRKBK') %,
|
|
CEX$GG_CEX_PROCESSING_DEPTH = %name ('.CEXDP') %,
|
|
CEX$AR_CEX_SYNCH_BLOCK = %name ('.PDSYN') %,
|
|
CEX$GB_CURRENT_PROCESS_INDEX = %name ('.CRPIX') %,
|
|
CEX$GA_CURRENT_INTERRUPT = %name ('.INTCB') %,
|
|
CEX$GA_CURRENT_PROCESS = %name ('.CRPDB') %,
|
|
CEX$GA_DTE_BOOT_ROM_ADDRESS = %name ('.DTERG') %,
|
|
CEX$GR_DUMP_EXCEPTION = %name ('.MEXVD') %,
|
|
CEX$GR_INTERRUPT_4_BLOCK = %name ('.INTC4') %,
|
|
CEX$GR_INTERRUPT_5_BLOCK = %name ('.INTC5') %,
|
|
CEX$GR_INTERRUPT_6_BLOCK = %name ('.INTC6') %,
|
|
CEX$GR_INTERRUPT_7_BLOCK = %name ('.INTC7') %,
|
|
CEX$GR_LAST_CHANCE_EXCEPTION = %name ('.MEXVL') %,
|
|
CEX$GW_LONG_TIMER_COUNT = %name ('.LTMCT') %,
|
|
CEX$GW_MAXIMUM_PROCESSES = %name ('') %,
|
|
CEX$GA_PANIC_STACK = %name ('.PANSP') %,
|
|
CEX$GW_PANIC_STATUS = %name ('.PANPS') %,
|
|
CEX$GG_POWER_FAIL_COUNT = %name ('.PWRFL') %,
|
|
CEX$GR_PRIMARY_EXCEPTION = %name ('.MEXV1') %,
|
|
CEX$GH_PROCESS_COUNT = %name ('.PDBNM') %,
|
|
CEX$AG_PROCESS_DATA_BASE = %name ('.CRDAT') %,
|
|
CEX$GH_PROCESS_NAME_COUNT = %name ('.PNMNM') %,
|
|
CEX$GA_PROCESS_NAME_TABLE = %name ('.PNMTA') %,
|
|
CEX$AA_PROCESS_TABLE = %name ('.PDBVB') %,
|
|
CEX$GA_PROCESS_TABLE_END = %name ('.PDBVE') %,
|
|
CEX$AW_RANDOM_NUMBER_SEED = %name ('.RND') %,
|
|
CEX$AG_RDB_CORE_ALLOCATION = %name ('.RDBCM') %,
|
|
CEX$AG_RDB_DSR_ALLOCATION = %name ('.RDBDM') %,
|
|
CEX$GR_RDB_POOL = %name ('.RDBTB') %,
|
|
CEX$GG_RSX_APR6_MAPPING = %name ('.RSXMP') %,
|
|
CEX$GH_SCHEDULING_REQUESTS = %name ('.CEXRQ') %,
|
|
CEX$GR_SECONDARY_EXCEPTION = %name ('.MEXV2') %,
|
|
CEX$GW_SHORT_TIMER_COUNT = %name ('.STMCT') %,
|
|
CEX$GA_SHORT_TIMER_DISPATCH = %name ('.TIMDS') %,
|
|
CEX$GU_SIGNAL_CALLS = %name ('.DBGST') %,
|
|
CEX$GA_SIGNAL_CALL_FRAME = %name ('.DBGFP') %,
|
|
CEX$GA_SIGNAL_FRAME = %name ('.$IGREG') %,
|
|
CEX$GA_SIGNAL_MECHANISM = %name ('.MCHVC') %,
|
|
CEX$GG_SIGNAL_STACK_RELOCATION = %name ('$HANSP') %,
|
|
CEX$GG_SIGNAL_STATUS = %name ('.CEXST') %,
|
|
CEX$GU_SIGNAL_UNWIND_REQUEST = %name ('.UNWLV') %,
|
|
CEX$GW_STATISTICS_INTERVAL = %name ('.SMSEC') %,
|
|
CEX$GW_STATISTICS_TIMER = %name ('.SITIM') %,
|
|
CEX$GW_SYNCH_COUNT = %name ('.SYNCT') %,
|
|
CEX$AA_SYNCH_QUEUE = %name ('.SYNQH') %,
|
|
CEX$GH_SYSTEM_LINE_COUNT = %name ('.SLTNM') %,
|
|
CEX$GA_SYSTEM_LINE_TABLE = %name ('.SLTTA') %,
|
|
CEX$GA_UBM_DATA_BASE = %name ('.UBMTA') %;
|
|
|
|
literal
|
|
MCB$K_SET_EXCEPTION = 0^1,
|
|
MCB$K_SET_PROCESS = 1^1,
|
|
MCB$K_CLEAR_PROCESS = 2^1,
|
|
MCB$K_GET_PROCESS_INDEX = 3^1,
|
|
MCB$K_GET_PROCESS_NAME = 4^1,
|
|
MCB$K_SET_PROCESS_NAME = 5^1,
|
|
MCB$K_CLEAR_PROCESS_NAME = 6^1,
|
|
MCB$K_SET_VECTOR = 7^1,
|
|
MCB$K_CLEAR_VECTOR = 8^1,
|
|
MCB$K_GET_LINE_NAME = 9^1,
|
|
MCB$K_SET_LINE_PROCESSES = 10^1,
|
|
MCB$K_GET_LINE_PROCESSES = 11^1,
|
|
MCB$K_GET_DEVICE_NAME = 12^1;
|
|
|
|
!
|
|
! Buffer pool entry and buffer header.
|
|
!
|
|
|
|
macro
|
|
$CEX_BFPDEF =
|
|
field
|
|
$CEX_BFPFIELDS =
|
|
set
|
|
BFP$H_SIZE = [0, 0, 16, 0],
|
|
BFP$H_FREE_COUNT = [1, 0, 16, 0],
|
|
BFP$V_QUEUE = [2, 0, 0 %(4*16)%, 0],
|
|
BFP$W_QUEUE_FIRST_BIAS = [2, 0, 16, 0],
|
|
BFP$A_QUEUE_FIRST_ADDR = [3, 0, 16, 0],
|
|
BFP$W_QUEUE_LAST_BIAS = [4, 0, 16, 0],
|
|
BFP$A_QUEUE_LAST_ADDR = [5, 0, 16, 0],
|
|
BFP$G_ALLOCATION_FAILURES = [6, 0, 16, 0],
|
|
BFP$H_ALLOCATED = [7, 0, 16, 0],
|
|
BFP$W_ALLOCATED_BIAS = [8, 0, 16, 0],
|
|
BFP$W_ALLOCATED_BLKS = [9, 0, 16, 0],
|
|
! Initialization data
|
|
BFP$H_ALLOCATION_MAXIMUM = [8, 0, 16, 0],
|
|
BFP$H_ALLOCATION_MINIMUM = [9, 0, 16, 0]
|
|
tes,
|
|
$CEX_BFHFIELDS =
|
|
set
|
|
BFH$W_BIAS = [0, 0, 16, 0],
|
|
BFH$A_ADDRESS = [1, 0, 16, 0],
|
|
BFH$H_SIZE = [2, 0, 16, 0],
|
|
BFH$A_PROCESS = [3, 0, 16, 0]
|
|
tes;
|
|
|
|
literal
|
|
BFP$K_LENGTH = 10,
|
|
BFH$K_LENGTH = 4; %,
|
|
|
|
!
|
|
! CCB pool entry.
|
|
!
|
|
|
|
$CEX_CBPDEF =
|
|
field
|
|
$CEX_CBPFIELDS =
|
|
set
|
|
CBP$H_SIZE = [0, 0, 16, 0],
|
|
CBP$H_ALLOCATED = [1, 0, 16, 0],
|
|
CBP$G_ALLOCATION_FAILURES = [2, 0, 16, 0],
|
|
CBP$V_QUEUE = [3, 0, 0 %(2*16)%, 0],
|
|
CBP$A_QUEUE_FIRST = [3, 0, 16, 0],
|
|
CBP$A_QUEUE_LAST = [4, 0, 16, 0],
|
|
CBP$H_FREE_COUNT = [5, 0, 16, 0],
|
|
CBP$H_REQUESTS = [6, 0, 16, 0],
|
|
CBP$A_NEXT_PROCESS = [7, 0, 16, 0],
|
|
CBP$G_REQUEST_FLAG = [8, 0, 16, 0],
|
|
CBP$B_FUNCTION = [9, 0, 8, 0],
|
|
CBP$B_MODIFIER = [9, 8, 8, 0],
|
|
CBP$W_ALLOCATED_BIAS = [10, 0, 16, 0],
|
|
CBP$W_ALLOCATED_BLKS = [11, 0, 16, 0],
|
|
CBP$A_ALLOCATED_ADDRESS = [12, 0, 16, 0],
|
|
CBP$W_ALLOCATED_LENGTH = [13, 0, 16, 0],
|
|
! Initialization data
|
|
CBP$H_ALLOCATION_MAXIMUM = [10, 0, 16, 0],
|
|
CBP$H_ALLOCATION_MINIMUM = [11, 0, 16, 0]
|
|
tes;
|
|
|
|
literal
|
|
CBP$K_LENGTH = 14; %,
|
|
|
|
!
|
|
! CCB extensions
|
|
!
|
|
|
|
$CEX_CCBDEF =
|
|
field
|
|
$CEX_CCBFIELDS =
|
|
set
|
|
CCB$A_LINK = [0, 0, 16, 0],
|
|
CCB$A_CHAIN = [1, 0, 16, 0],
|
|
CCB$A_STACK = [2, 0, 16, 0],
|
|
CCB$B_OWNER_PROCESS_INDEX = [3, 0, 8, 0],
|
|
CCB$V_FLAGS = [3, 8, 8, 0],
|
|
CCB$V_RDB = [3, 8, 1, 0],
|
|
CCB$V_ACTIVE = [3, 9, 1, 0],
|
|
CCB$V_USED = [3, 10, 1, 0],
|
|
CCB$B_LINE_INDEX = [4, 0, 8, 0],
|
|
CCB$B_PROCESS_INDEX = [4, 8, 8, 0],
|
|
CCB$B_FUNCTION = [5, 0, 8, 0],
|
|
CCB$B_MODIFIER = [5, 8, 8, 0],
|
|
CCB$G_STATUS = [6, 0, 16, 1],
|
|
CCB$W_BIAS = [7, 0, 16, 0],
|
|
CCB$A_ADDRESS = [8, 0, 16, 0],
|
|
CCB$G_COUNT = [9, 0, 16, 0],
|
|
CCB$G_PARAMETER_1 = [10, 0, 16, 0],
|
|
CCB$G_PARAMETER_2 = [11, 0, 16, 0],
|
|
CCB$G_PARAMETER_3 = [12, 0, 16, 0],
|
|
CCB$G_PARAMETER_4 = [13, 0, 16, 0],
|
|
CCB$G_PARAMETER_5 = [14, 0, 16, 0],
|
|
CCB$A_DESTINATION_PROCESS = [15, 0, 16, 0],
|
|
CCB$A_SOURCE_PROCESS = [16, 0, 16, 0]
|
|
tes;
|
|
|
|
literal
|
|
CCB$K_LENGTH = 17; %,
|
|
|
|
!
|
|
! Exception vector
|
|
!
|
|
|
|
$CEX_EXVDEF =
|
|
field
|
|
$CEX_EXVFIELDS =
|
|
set
|
|
EXV$G_LEVEL = [0, 0, 16, 1],
|
|
EXV$A_PROCESS = [1, 0, 16, 0],
|
|
EXV$A_DISPATCH = [2, 0, 16, 0],
|
|
EXV$A_ENABLE_DATA = [3, 0, 16, 0]
|
|
tes;
|
|
|
|
literal
|
|
EXV$K_LENGTH = 4,
|
|
EXV$K_PRIMARY = 0,
|
|
EXV$K_SECONDARY = 1,
|
|
EXV$K_LAST_CHANCE = 2; %,
|
|
|
|
!
|
|
! Interrupt transfer and priority blocks
|
|
!
|
|
|
|
$CEX_ITBDEF =
|
|
field
|
|
$CEX_ITBFIELDS =
|
|
set
|
|
ITB$V_JSR_5 = [0, 0, 0 %(2*16)%, 0],
|
|
ITB$W_JSR_5_INSTRUCTION = [0, 0, 16, 0],
|
|
ITB$A_JSR_5_ADDRESS = [1, 0, 16, 0],
|
|
ITB$A_PROCESS = [2, 0, 16, 0],
|
|
ITB$A_DISPATCH = [3, 0, 16, 0]
|
|
tes,
|
|
$CEX_IPBFIELDS =
|
|
set
|
|
IPB$V_JSR_4 = [0, 0, 0 %(2*16)%, 0],
|
|
IPB$W_JSR_4_INSTRUCTION = [0, 0, 16, 0],
|
|
IPB$A_JSR_4_ADDRESS = [1, 0, 16, 0],
|
|
IPB$A_LINK = [2, 0, 16, 0],
|
|
IPB$A_PROCESS = [3, 0, 16, 0],
|
|
IPB$W_COUNT = [4, 0, 16, 0],
|
|
IPB$B_PRIORITY = [5, 0, 8, 0]
|
|
tes;
|
|
|
|
literal
|
|
ITB$K_LENGTH = 4,
|
|
IPB$K_LENGTH = 6; %,
|
|
|
|
!
|
|
! Process descriptor table
|
|
!
|
|
|
|
$CEX_PDTDEF =
|
|
field
|
|
$CEX_PDTFIELDS =
|
|
set
|
|
PDT$W_CODE_BIAS = [0, 0, 16, 0],
|
|
PDT$A_CODE_DISPATCH = [1, 0, 16, 0],
|
|
PDT$W_DATA_BIAS = [2, 0, 16, 0],
|
|
PDT$A_DATA_ADDRESS = [3, 0, 16, 0],
|
|
PDT$B_INDEX = [4, 0, 8, 0],
|
|
PDT$V_FLAGS = [4, 8, 8, 1],
|
|
PDT$V_UCB_INCLUDED = [4, 8, 1, 0],
|
|
PDT$V_DATA_BASE_INCLUDED = [4, 9, 1, 0],
|
|
PDT$V_PERMANENT = [4, 10, 1, 0],
|
|
PDT$V_KILL_PROCESS = [4, 11, 1, 0],
|
|
PDT$V_CCB_REQUESTED = [4, 12, 1, 0],
|
|
PDT$V_RDB_REQUESTED = [4, 14, 1, 0],
|
|
PDT$V_LONG_TIMER = [4, 15, 1, 1],
|
|
PDT$A_UCB = [5, 0, 16, 0],
|
|
! Initialization data
|
|
PDT$W_CODE_NAME = [0, 0, 16, 0],
|
|
PDT$A_DISPATCH_ADDRESS_ADDRESS = [1, 0, 16, 0]
|
|
tes;
|
|
|
|
literal
|
|
PDT$K_LENGTH = 6; %,
|
|
|
|
!
|
|
! Process header
|
|
!
|
|
|
|
$CEX_PHDDEF =
|
|
field
|
|
$CEX_PHDFIELDS =
|
|
set
|
|
PHD$W_NAME = [0, 0, 16, 0],
|
|
PHD$B_MCB_VERSION = [1, 0, 8, 0],
|
|
PHD$B_MCB_LEVEL = [1, 8, 8, 0],
|
|
PHD$W_BLKS = [2, 0, 16, 0],
|
|
PHD$A_PATCH = [3, 0, 16, 0],
|
|
PHD$A_SIGNAL = [4, 0, 16, 0],
|
|
PHD$A_LLC_TABLE = [5, 0, 16, 0],
|
|
PHD$A_DLC_TABLE = [6, 0, 16, 0],
|
|
PHD$A_DDM_TABLE = [7, 0, 16, 0],
|
|
PHD$L_CEX_IDENT = [8, 0, 0 %(32)%, 0],
|
|
PHD$W_CEX_IDENT_1 = [8, 0, 16, 0],
|
|
PHD$W_CEX_IDENT_2 = [9, 0, 16, 0],
|
|
PHD$V_BLISS = [12, 8, 1, 0],
|
|
PHD$V_RSX_TABLE_INCLUDED = [12, 9, 1, 0],
|
|
PHD$A_RSX_TABLE = [13, 0, 16, 0],
|
|
PHD$A_CEX_TABLE = [14, 0, 16, 0]
|
|
tes; %,
|
|
|
|
!
|
|
! Process name table
|
|
!
|
|
|
|
$CEX_PNMDEF =
|
|
field
|
|
$CEX_PNMFIELDS =
|
|
set
|
|
PNM$A_PROCESS = [0, 0, 16, 0],
|
|
PNM$W_NAME = [1, 0, 16, 0],
|
|
! Initialization data
|
|
PNM$W_PROCESS_INDEX = [0, 0, 16, 0]
|
|
tes;
|
|
|
|
literal
|
|
PNM$K_LENGTH = 2; %,
|
|
|
|
!
|
|
! System line table
|
|
!
|
|
|
|
$CEX_SLTDEF =
|
|
field
|
|
$CEX_SLTFIELDS =
|
|
set
|
|
SLT$V_BASE = [0, 0, %bpval, 0],
|
|
SLT$B_DDM_PROCESS_INDEX = [0, 0, 8, 0],
|
|
SLT$B_LINE_INDEX = [0, 8, 8, 0],
|
|
SLT$B_DLC_PROCESS_INDEX = [1, 0, 8, 0],
|
|
SLT$B_CONTROLLER = [1, 8, 8, 0],
|
|
SLT$B_LLC_PROCESS_INDEX = [2, 0, 8, 0],
|
|
SLT$B_UNIT = [2, 8, 8, 0],
|
|
SLT$A_DEVICE = [3, 0, 16, 0]
|
|
tes;
|
|
|
|
literal
|
|
SLT$K_LENGTH = 4; %,
|
|
|
|
!
|
|
! SYNCH block
|
|
!
|
|
|
|
$CEX_SYNDEF =
|
|
field
|
|
$CEX_SYNFIELDS =
|
|
set
|
|
SYN$A_LINK = [0, 0, 16, 0],
|
|
SYN$A_PROCESS = [1, 0, 16, 0],
|
|
SYN$A_DISPATCH = [2, 0, 16, 0]
|
|
tes;
|
|
|
|
literal
|
|
SYN$K_LENGTH = 3; %,
|
|
|
|
!
|
|
! Timer block
|
|
!
|
|
|
|
$CEX_TMBDEF =
|
|
field
|
|
$CEX_TMBFIELDS =
|
|
set
|
|
TMB$B_UNIT = [1, 8, 8, 0],
|
|
TMB$W_IDENTIFIER = [2, 0, 16, 0],
|
|
TMB$G_MAGNITUDE = [7, 0, 16, 0],
|
|
TMB$A_PROCESS = [8, 0, 16, 0]
|
|
tes;
|
|
|
|
literal
|
|
TMB$K_LENGTH = 9,
|
|
TMB$K_MILLISECONDS = 0,
|
|
TMB$K_SECONDS = 2; %,
|
|
|
|
!
|
|
! Unibus Mapping tabld
|
|
!
|
|
|
|
$CEX_UBMDEF =
|
|
|
|
field
|
|
$CEX_UBMFIELDS =
|
|
set
|
|
UBM$A_LINK = [0,0,16,0],
|
|
UBM$W_START_BLK = [1,0,16,0],
|
|
UBM$W_END_BLK = [2,0,16,0],
|
|
UBM$B_BASE_UBMR = [3,0,8,0]
|
|
tes;
|
|
|
|
literal
|
|
UBM$K_LENGTH = 4 ; %;
|
|
|
|
!
|
|
! [End of CEXLIB.R16]
|