perm filename SIMDS7.MAC[SIM,SYS] blob sn#462251 filedate 1979-07-31 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00006 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	
C00003 00003		SUBTTL	ZBR RECORD
C00010 00004		LIT
C00011 00005		SUBTTL	ZTE RECORD
C00012 00006	
C00013 ENDMK
CāŠ—;
	SUBTTL	ZBR RECORD
DSZBRS:	;START OF ZBR RECORD ,XDZBR MUST POINT TO HERE
	;NOTE THAT THIS RECORD IS PLACED WITHIN THE SIMDDT RECORD
	;IT IS NOT RECOGNIZED BY GARBAGE COLLECTOR
	;ZBR COINTAINS ALL VARIABLE DATA AREAS IN SIMDDT AND
	;IT MUST NOT BE PLACED IN THE HIGH SEGMENT

	;CREATE ZDN RECORD
	<QZYS>B<%ZDNTYP>
	YDSCZBR-DSZBRS+1
	CZBEN=QBRN*2+2+1
DEFINE	CZBE	<
	CZBEN=CZBEN+QZBEL
	XWD	CZBEN,0
	BLOCK	QZBEL-1

	>

DSZBRU:	XWD	CZBEN,0		;LINK TO UNUSED ZBE ENTRIES
QZBRUN=DSZBRU-DSZBRS

DSZBRF:	BLOCK	QBRN*2		;BREAKPOINT LINE NUMBER ENTRIES
				;


	;CREATE ALL ZBE ENTRIES LINKED TOGETHER
	;FIRST LINK POINTER IS PLACED IN DSZBRU

	REPEAT	<QZBEN-1>,<CZBE>	
	XWD	0,0		;LAST ZBE ENTRY
	BLOCK	QZBEL-1		


	;CREATE SIMDDT STACK
DSZBRK:	;BOTTOM ADDRESS
	XWD	0,0		;STACK UNDERFLOW ADDRESS   ,INITIALIZE IN DSIS
	BLOCK	QSTAKL



	;TEMPORARY WORK AREA FOR SIMDDT 
	;NOT RELOCATED BY GARBAGE COLLECT

YDSIPO:	0			;INPUT BYTE POINTER
YDSOPO:	0			;OUTPUT BYTE POINTER
YDSIPE:	0			;EXTRA INPUT BYTE POINTER
YDSFLG:	0
YDSTTX:	0			;TEMPORARY TEXT VARIABLE
	0
YDST1:	0			;TEMPORARY WORK AREA
YDST2:	0			;TEMPORARY WORK AREA
YDST3:	0			;TEMPORARY WORK AREA
YDSTIC:	0			;SAVE AREA FOR INPUT POINTER
YDSILP:	0			;IDENTIFIER START POINTER
YDSSTP:	0			;SAVE IDENTIFIER TYPE
YDSTYP:	0			;SAVE AREA FOR TYPE
YDSTIP:	BLOCK	3		;TEMPORARY SAVE AREA USED IN DSIP ROUTINE
YDSBRD:	0			;DUMMY ZBR RECORD
				;USED IN INPUT AND OUTPUT COMMAND
				;WHEN THE ZBE ENTRIES HOLDS THE
				;IDENTIFICATION INFO.

YDSCZL:	0			;ADDRESS OF CURRENT LINE NUMBER ENTRY
				;POINTER TO CURRENT BLOCK
YDSCZS:	0			;START  OF ZLN TABLE CONTAINING YDSCZL

YDSEBL:	0			;SAVE AREA FOR EFFECTIVE BLOCK LEVEL
YDSSLN:	0		; <2> SAVE LINE NUMBER TABLE POINTER ,USED IN DSRUC,DSPL AND DSSS
YDSNLN:	0		; <2> POINTER TO SUBBLOCK ENTRY IN ZLN
YDSSLS:	0			;SAVE START OF ZLN TABLE USED IN DSCH
YDSSBA:	0			;SAVE CURRENT BLOCK INSTANCE ADDRESS
				;<2> SAVE AREAS FOR NEW ENVIRONMENT VARIABLES
				;USED IN INSPECT
YDSRZL:	0			;YDSCZL BEFORE LAST INSPECT /RETURN
YDSRZS:0
YDSRZE:0			;YDSZLN BEFORE LAST INSPECT /RETURN

YDSSZL:0			;YDSCZL AT SIMDDT ENTRY
YDSSZS:0			;YDSCZS AT SIMDDT ENTRY 
YDSSZE:0			;YDSZLN AT SIMDDT ENTRY

YDSSZN:0			;SAVE AREA FOR YDSZLN
YDSSYM:	0			;SAVE AREA FOR SYMBOL
	0			;SAVE AREA FOR SYMBOL
YDSTRA:	XWD	700000,0	;YDSTXT ARRAY ELEMENTS RESERVATION BITS
				;0 IF FREE AND 1 IF IN USE
				;3 FIRST ELEMENTS USED BY TEXT BUFFERS
YDSRRA:	0			;YDSREF ARRAY ELEMENTS RESERVATION BITS
YDSTRB:	0			;SAVE AREA FOR YDSTRA
YDSRRB:	0			;SAVE AREA FOR YDSRRA
YDSOBR:	0			;SAVE AREA FOR XDZBR NOT RELOCATED
YDSOST:	0			;SAVE AREA FOR STACK POINTER NOT RELOCATED
YDSOXPDP:0			;SAVE AREA FOR RTS POINTER
YDSOSAGCN:0			;SAVE AREA FOR NUMBER OF GARBAGE COLLECT
YDSNDL:0			;NEW DISPLAY LINE
				;INITIATED IN DSGL AND USED IN DSDP
YDSCDL:0			;CURRENT DISPLAY LINE FOUND IN SOURCE FILE OR
				;CALCULATED. INITIAL VALUE 0
YDSLDL:0			;LAST DISPLAY LINE FROM INPUT DISPLAY COMMAND
YDSDZLN:0			;DISPLAY MODULE IF DISPLAY FILE OPENED
				;SINCE SIMDDT WAS ENTERED THIS TIME
YDSCDZLN:0			;CURRENT DISPLAY MODULE FOUND IN DISPLAY COMMAND

YDSSPV:	BLOCK	2		;[2] STORE SYSTEM PROCEDURE VALUE
				; 2 WORDS NEEDED FOR TEXT.MAIN
YDSSQU:0			;[41] QUALIFICATION PROTOTYPE SAVED IN DSNI
YDSTHD:BLOCK	3		;[41] DUMMY ZSD ENTRY USED FOR THIS AND QUA
YDSSENR:0				;[41] SAVE AREA FOR ERROR NUMBER


	;INSTRUCTIONS USED TO PROCEED FROM A BREAKPOINT
	;THESE INSTRUCTIONS ARE RELOCATED IN DSIS
YDSBRETUR:
	ST	XDTA,YDSBSAV
	XCT	X1		;INTERPRET SPECIAL INSTRUCTIONS
	JRSTF	@YDSBSAV	;RESTORE STATUS FLAG AND
				;EXECUTE BREAKPOINT INSTRUCTION OR
				;RETURN IF SPECIAL INSTRUCTION
YDSLEAVE:
	Z			;BREAKPOINT INSTRUCTION PLACED HERE
	JRST	@YDSBCOM	;RETURN
	AOS	YDSBCOM
	JRST	@YDSBCOM	;RETURN IF SKIP INSTRUCTION

YDSCZBR:Z			;CURRENT BREAKPOINT POINTER TO ZBR
				;ADDRESS OF ZBR ENTRY =(XDZBR)+3+(YDSCZBR)


	LIT
	IFG <.-DSSTAR-QDSLG+<3*<QDSION+5>/5+ZTE%S>> <PRINTX QDSLG TOO SMALL>
	RELOC	QDSLG-<3*<QDSION+5>/5+ZTE%S>
DSEND:	;LAST WORD IN SIMDDT NOT  INCLUDING ZDSZTE

	SUBTTL	ZTE RECORD

	;THIS TEXT RECORD IS NOT CREATED DYNAMICALLY BY SIMRTS
	;IT IS PART OF THE SIMDDT.ABS FILE
	;THE ADDRESS OF ZDSZTE IS PLACED
	;IN THE STATIC LOW AREA AND
	;KNOWN BY G,C. SO IT WILL NOT BE DELETED
	;NOT INCLUDED IN SIMDDT LENGTH USED BY G.C.
ZDSZTE:	;TEXT RECORD FOR INPUT OUTPUT TEXTS
	;CREATE ZDN RECORD
	<ZTE%V>B<%ZDNTYP>
	XWD	3*<QDSION+5>,3*<QDSION+5>/5+ZTE%S
	BLOCK	3*<QDSION+5>/5		;3 BUFFERS WITH QDSION+5 CHARACTERS

	END	DSINM