Google
 

Trailing-Edge - PDP-10 Archives - decuslib10-05 - 43,50337/20/simddd.mac
There are 2 other files named simddd.mac in the archive. Click here to see a list.
	SEARCH	SIMRPA,SIMMCR,SIMMAC
	SALL
	RTITLE	SIMDDD
	SUBTTL	SIMDDD, SIMDDT dummy version

	Comment;

	Author:	Lars Enderin

	VERSION: 1
	Purpose:
		Replaces SIMDDT for programs which do not want the standard
		action on errors, ^C-REENTER, etc.

	Contents:
		Entry points:
			DSINI	start SIMDDT
			DSINB	entry from breakpoint
			DSINE	process error
			DSINC	return from RTS routine if garbage collection
				may have been invoked
			DSINR	REENTER (or CONTINUE) command
			DSINS	removes all breakpoints
			DSINM	starts program execution when SIMDDT
				was loaded together with main program
;
	RELOC	0
	MACINIT
	INTERN	DSSTART

	EXTERN	.MAIN			; SIMULA main program start address
					; Used if SIMDDT loaded/linked together
					; with SIMULA main program
	EXTERN	.JBSA,.JBUUO,.JBFF
	%DSVER=:VERRTS
	SUBTTL	ZDN record for SIMDDT
DSSTAR:	;First word in SIMDDT module, used by SUTABS program
	;XDBAS must point to this word when SIMDDT is executing.



;	ZDN record for SIMDDT, not including ZSDZTE
;	 must be placed here
	EXP	<QZYS>B<%ZDNTYP>
	EXP	DSEND-DSSTART	;Length of SIMDDT
				;Not including ZSDZTE
	SUBTTL	DSIN main routine

	Comment;

	Purposes:	Performs initialization for the different types
			of entries to SIMDDT.

	Entries:	DSINI,DSINE,DSINB,DSINR,DSINC,DSINM,DSINS

	Normal exits:	DSCM, accept command
			DSBP, process breakpoint
			Return via SIMDDT stack if error found in RTS routine
			when called from SIMDDT.
			Return via RTS stack if ^C command interrupted
			SIMDDT processing.
			Return via SIMDDT stack if entry is DSINC
			Return via RTS stack if entry is DSINS
			BRANCH to .MAIN+2 if entry is DSINM

	Error exit:	See above normal exits
	;

	OPDEF OUTOCT [XEC .OCOO]

	DEFINE X(P)<
	IRP P,<
	RELOC Q'P
P:	GOTO P'.
	>>

	PROC
X<DSINI,DSINB,DSINR,DSINS,DSINE>

DSINI.:	LOWADR
	LI DSSTAR
	ST YDSBAS(XLOW)

DSINB.:	RET

DSINR.:	RET

DSINS.:	RET

DSINE.:	OUTSTR [ASCIZ/
?ZYQREZ SIMULA RTS Error ZYQ/]
	LOWADR X1
	L YDSENR(XLOW)
	OUTOCT
	OUTSTR [ASCIZ/
/]
	RET

	EPROC
	SUBTTL	DSINM

DSINM::	;Start here when loaded with main prog
	HRRZ X1,.JBSA
	SUBI X1,DSINM-DSSTART ;SIMDDT base address
	BRANCH	.MAIN+2
	SUBTTL	OUTOCT	;[61]

	IFE QDEC20,<OPDEF PBOUT [OUTCHR X1]>

.OCOO:	PROC	;Output last 9 bits of X0 as 3 octal digits
	SAVE	<X1,X2>
	LI	X2,3
	ROT	^D27
	LOOP
		ROT	3
		L	X1,X0
		ANDI	X1,7
		ADDI	X1,"0"
		PBOUT		;[225]
	AS	SOJG	X2,TRUE
	SA
	RETURN
	EPROC
DSEND:
	END DSINM