Google
 

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