Trailing-Edge
-
PDP-10 Archives
-
BB-P363B-SM_1985
-
mcb/cex/cexcom.m11
There are no other files named cexcom.m11 in the archive.
.TITLE CEXCOM - Comm/Exec Identification
.IDENT /003400/
MCB$V0 == ^R003
MCB$V1 == ^R400
.ENABL LC
;
; 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 Communications Executive
;
; FUNCTIONAL ABSTRACT:
;
; This module contains the Comm/Exec version identification.
;
; ENVIRONMENT: RSX kernel mode with EIS
;
; AUTHOR: Alan D. Peckham, CREATION DATE: 27-MAR-80
;
; MODIFIED BY:
;
; Alan D. Peckham, 2-Jul-80: VERSION 3.0
; 01 - Change CRSH$ references to CRSH$S (all modules).
; 02 - Define some useful global symbols
; 03 - Global data module created and all read-write data
; moved to that module (everything else can be read-only).
; Insert CEXCOM ident into blank psect for in-core record
; of CEXCOM version.
; 04 - Correct multiply bugs in $SCHRQ and $LLCDS dispatch bug.
; Put meaningful data in registers on system crash.
; 05 - Add global symbol delimeters for global data module.
; 06 - Maintain .CEXDP properly.
; Correct $CNV18 shift bug.
; Also fix PDT access in synchronous dispatches.
; 07 - Fix mapping bug in $SDBRT.
; Remove LIX requirement from $SYNCH.
; Repair damage done in $SCHRQ by edit #6.
; 08 - Fix CCB link problem in CEXSCH.
; Support diagnostic crash for SYNCH block interlock
; in CEXPRE, CEXINT and CEXSCH.
; 09 - Fix PIX access bug in CEXSYN.
; Add support for SDB header in CEXBUF:
; Take free-pool links out of buffer area.
; Add flags and owner PIX.
; Support CCB active flag in CEXBUF.
; 10 - Add BLISS synchronous process extension call to CEXSYN.
; Pull in BLISS support routine $CALL.
; 11 - Add CCB/RDB confusion protection in CEXBUF.
; Set up CRSH$S contexts in a consistent manner.
; 12 - Fix LIX check in CEXDLC and CEXDDM.
; SIGNAL processing rewritten in CEXSGE and CEXDAT.
; MCB Debuging Tool added in new module CEXMDT.
; Set panic dump call to CEX process.
; Add global definitions for SR0,SR1,SR2.
; Move CEXMDT exception handlers to CEXINT.
; Move panic dumper call to CEXSGE (eliminates CEXMDT).
; 13 - Handle APR5 mapping accross synchronous calls in CEXSYN
; when looking for SIGNAL condition handlers.
; Funnel exception handling from CEXINT through CEXSGE routine.
; New procedures called from CEXSGE:
; Panic dump process to dump crippled system to load device.
; Debug process for system debugging.
; Correct power failure handling to distinguish a failure
; due to DTE "magic finger".
; 14 - Correct exception handlers in CEXSGE to be able to return
; from the exception after the debug process is called.
; Define crash codes globally here.
; 15 - Bug fix fixes in CEXSGE.
; More work on crash code definitions.
; 16 - Allow debug process to UNWIND into a panic dump in CEXSGE.
; 17 - Fixes to debug UNWINDing in CEXSGE.
; Rename SS$ODD to SS$NXM in CEXINT.
; 18 - New SIGNAL strategy based on VAX VME signal handling:
; Signalling sequence in CEXSGE includes primary, secondary
; and last chance signals.
; Only R0 and APR5 saved.
; Routine $ETEXV added to set hardwire exceptions.
; Debug handling removed from CEXSGE and CEX process.
; CEXSGE data base altered in CEXDAT.
; Panic dumper moved from CEXSGE to CEX process.
; Synchronous call condition handlers standardized.
; Process activation signalling added to
; CEXSYN, CEXRSX, CEXSCH.
; Change priority word in X.PRI and support in CEXINT.
; 19 - Fix bug introduced by 18 in CEXSCH.
; Remove unneeded definitions in CEXSGE.
; New signal statuses for process activetion to avoid conflicts.
; Re-arrange the process descriptor for better efficiency.
; 20 - Correct context restoration in CEXSGE.
; Remove process activation signals in CEXSYN, CEXRSX and CEXSCH.
; Add process synchronization for devices attached to LLCs
; in CEXINT and CEXSCH.
; 21 - Don't check CCB links in buffer returns in CEXBUF.
; Don't let $STOP create second mechanism vector in CEXSGE.
; Check PIX properly in CEXSUB.
; Insert proper handler for parity error trap in CEXINT.
; Add module CEXNMX for line management.
; 22 - Correct $GTPRC LIX check in CEXNMX.
; 23 - Correct $MCB and $RSX calls in CEXRSX.
; 24 - Correct MMU register save in CEXINT.
; Remove resume address from stack on CE$SYN error.
; Add BLISS debug trace facility to CEXSGE and CEXDAT.
; Fix $RND in CEXSUB.
; Alan D. Peckham, 9-Dec-80: VERSION 3.1
; 25 - Update all modules for MCB V3.1
; Detect out-of-range CCB addresses.
; 26 - Add interrupt-within-interrupt checking in CEXINT.
; Add priority 7 interrupt priority block in CEXDAT.
; Add DSR checking crashes in CEXBUF.
; 27 - Fix bug introduced in 26/CEXINT.
; 28 - Fix data base access bugs in CEXDDM and CEXDLC.
; Fix priority block test bug in CEXINT.
; Add mapped data base support for DDMs in CEXINT and CEXDDM.
; Add user-accessable data base bias/address words in CEXDAT
; and support them in CEXDDM, CEXDLC, CEXLLC, CEXRSX, CEXSCH, CEXSYN.
; Add CCB allocation failure recovery in CEXBUF and CEXDAT.
; Alan D. Peckham, 30-Jan-80: VERSION 3.2
; 29 - Priority block test was not fixed in CEXINT.
; Some bugs from 3.1(28) fixed in CEXSCH.
; Speed up CCB queueing subroutines in CEXSUB.
; Change exception vector data base in CEXDAT and CEXSGE.
; Speed up code in CEXRSX.
; Support new SYNCH block in CEXINT and CEXSCH.
; Merge CEXLLC into CEXSCH.
; Merge CEXDDM and CEXDLC into CEXSLT.
; Current process descriptor .CRPDB in CEXDAT, CEXBUF, CEXSLT, CEXSYN,
; CEXRSX, CEXSCH, and CEXTIM.
; Support new C.DST and C.SRC in CEXBUF, CEXSLT, and CEXSCH.
; Change input parameters for $PRCDS in CEXSCH, and CEXTIM.
; Alter access to process descriptors in CEXDAT, CEXBUF, CEXSYN,
; CEXRSX, CEXSCH, CEXSGE.
; 30 - BIG bug in signalling through $CALLP. Fix context switch in CEXSYN.
; Support current dispatch table in CEXDAT, CEXSLT, CEXSYN, CEXRSX
; and CEXSCH.
; Disallow PIX #0 in CEXSCH and CEXSYN.
; Add process destruction support in CEXDAT.
; 31 - Fix level checks and instruction fetches in CEXINT.
; Correct the CEXVER version label in CEXCOM.
; Add pointers to CEX global data region in CEXCOM.
; 32 - Correct APR5 bug in CEXSYN.
; 33 - Correct CCB/buffer service routine bugs in CEXBUF.
; Correct process remapping bug in CEXSGE.
; Correct address conversion bug in CEXSUB.
; Add $PAUSE routine to CEXSCH.
; Add $CALLI function with signal status return to CEXSYN.
; De-support the LLC timer in CEXTIM.
; 34 - Fix copy length bug in CEXSUB.
; Fix block allocation calculation in CEXSUB.
; Remove $CALLC from CEXSYN.
; 35 - Correct crash stack context in CEXBUF, CEXSUB, CEXSYN.
; Add routines for support of UNIBUS mapping in CEXSUB.
; Add UNIBUS mapping pointer to CEXDAT.
; Add global definition of SR3 and UBMPR.
; Add 32 bit utility routines in CEXSUB.
; Correct and expand functionality of time interval determination
; in CEXTIM.
; Conditionalize out signal unwinding support.
; 36 - Remove .SDBSZ and add .LOGPT, .BLKTB to CEXDAT.
; Add global CEX dispatch indices to CEXCOM.
; Add $BLKGT ot CEXBUF.
; 37 - Add CEXNMX Network Management support routines.
; 38 - Fix mechanism vector access bug in CEXSYN.
; Add new routines $IDSTS and $IDVAL to CEXSUB.
; Conditionalize CEXSGE further.
; Remove process signal handler dispatch in CEXSGE.
; Add more parameters to CEXNMX.
; Add interrupt control to CEXINT.
; 39 - Alter Interrupt Priority Block to include interrupt count.
; Add statistics counters to CEXDAT.
; Support interrupt counters in CEXINT.
; 40 - Correct buffer overflow accounting for counters in CEXNMX.
; Correct D$$BUG conditionalization in CEXBUF, CEXRSX, and CEXSLT.
;--
.PSECT
.RAD50 /CEXCOM/
CEXVER::.WORD MCB$V0,MCB$V1
.WORD .CEBEG,.CEEND
.WORD .KNLRG,.PANSP
.PSECT $PLIT$,D,RO
KISAR6 == 172354 ; APR6 mapping register.
PS == 177776 ; Processor status register.
SR0 == 177572 ; SR0 MMU register
SR1:: .WORD 0 ; No SR1 for 11/34
SR2 == 177576 ; SR2 MMU register
SR3 == 172516 ; MMR3
UBMPR == 170200 ; Unibus Mapping Registers
;
; Define the crash codes
;
.MACRO DFNSTS nam,lvl,cod,txt
.IF NB,<nam>
.IF NDF,nam
nam == cod*10+lvl
.IFF
.IIF NE,<nam-<cod*10+lvl>>,.ERROR nam; Multiply defined
.ENDC
.ENDC
.ENDM DFNSTS
MCBDF$ DFNSTS
;
; Define the CEX dispatch indices
;
E.XVST == 0.*2 ; SET_EXCEPTION_VECTOR
P.DTST == 1.*2 ; SET_PROCESS
P.DTCL == 2.*2 ; CLEAR_PROCESS
P.DTGT == 3.*2 ; GET_PROCESS
P.NMGT == 4.*2 ; GET_PROCESS_NAME
P.NMST == 5.*2 ; SET_PROCESS_NAME
P.NMCL == 6.*2 ; CLEAR_PROCESS_NAME
V.ECST == 7.*2 ; SET_VECTOR
V.ECCL == 8.*2 ; CLEAR_VECTOR
; == 9.*2 ;(GET_LINE_NAME)
S.LTST == 10.*2 ; SET_LINE_PROCESSES
S.LTGT == 11.*2 ; GET_LINE_PROCESSES
D.NMGT == 12.*2 ; GET_DEVICE_NAME
.END