Google
 

Trailing-Edge - PDP-10 Archives - klad_sources - klad.sources/spccpu.ksm
There are no other files named spccpu.ksm in the archive.
SUBTTL	*SPCCPU* SPECIAL BASIC CPU PROCESSOR CONTROL, MARCH 1978

AC0=	0
DIAGNOS=30000		;PDP-10 DIAGNOSTIC START ADDRESS
DDT=	10000		;PDP-10 DDT START ADDRESS
DIAMON=	20000		;PDP-10 DIAGNOSTIC LOADER START ADDRESS

;KS-10 EPT COMMUNICATION AREA

$STD=	440		;PDP-10 DIAGNOSTIC START ADDRESS
$DDT=	441		;PDP-10 DDT START ADDRESS
$STL=	442		;PDP-10 LOADER START ADDRESS
$STM=	443		;PDP-10 MONITOR START ADDRESS

;SPECIAL "FIXED" REASSIGNMENTS

	$$LOC=.			;SAVE CURRENT LOCATION

	LOC	30000
$$BEGIN:JRST	$$START		;SETUP SPECIAL START
	JRST	$$START		;"DIAMON" CHAIN START ADDRESS

	LOC	440
$STD:	JRST	BEGIN		;SETUP FOR "STD"

	LOC	30057
$BEGEND:JRST	$SPBEND		;SETUP SPECIAL "BEGEND"

;SPECIAL MUUO, TRAP & PAGE FAIL SETUP

	LOC	420
$$420:	HALT	.
$$421:	JFCL			;OVERFLOW
$$422:	HALT	.		;PUSHDOWN OVERFLOW
$$423:	HALT	.		;TRAP 3
$$424:	0			;MMUO
$$425:	0			;MMUO PC
$$426:	0			;KS-10 PROCESS CONTEXT
$$427:	HALT	.
$$430:	427			;MMUO NEW PC'S
$$431:	427
$$432:	427
$$433:	427
$$434:	427
$$435:	427
$$436:	427
$$437:	427

	LOC	500
$$500:	0			;KS-10 PAGE FAIL WORD
$$501:	0			;KS-10 PAGE FAIL PC
$$502:	503			;KS-10 PAGE FAIL NEW PC
$$503:	HALT	.
	LOC	$$LOC		;RESET CURRENT LOCATION

;SPECIAL STARTUP SEQUENCE

$$START:SETZM	USER
	JSP	0,.+1		;IN USER MODE ?
	TLNE	0,USERF
	SETOM	USER		;YES, SET CONTROL WORD
	SKIPN	MONFLG		;SPECIAL USER MODE ?
	SETZM	USER		;YES, RUN AS EXEC
	SKIPE	USER
	JRST	START		;USER MODE, DON'T NEED CPU TYPE

$STKIL:	SKIPN	MONTEN		;LOADED BY "DIAMON" ?
	SETOM	ITRCNT		;NO, RUN FOREVER
	JRST	START		;KS-10, NO ADDITIONAL SETUP

;SPECIAL "BEGEND" ROUTINE

$SPBEND:AOS	PASCNT		;INCREMENT PASS COUNT
	SOS	ITRCNT		;DECREMENT ITERATION COUNT
$SPB1:	SKIPN	USER
	JRST	$SPBEX		;EXEC MODE

$SPBUS:	SKIPE	ITRCNT		;USER MODE, COMPLETED ?
	JRST	STARTA		;NO, KEEP RUNNING
	SKIPN	MONTEN		;DONE, LOADED BY "DIAMON" ?
	EXIT			;NO, RETURN TO MONITOR
	JRST	@RETURN		;YES, RETURN TO "DIAMON"

$SPBEX:	SKIPE	ITRCNT
	JRST	STARTA		;NOT COMPLETED YET
	SKIPN	MONTEN		;DONE, LOADED BY "DIAMON" ?
	HALT	BEGIN		;NO, HALT AT BEGINNING
	JRST	@RETURN		;DONE