Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-06 - decus/20-153/rpgpur.mac
There is 1 other file named rpgpur.mac in the archive. Click here to see a list.
	TITLE	RPGPUR FOR RPGLIB 1
	SUBTTL	PURE AREA FOR RPGII RUNTIME SYSTEM

;
;	THIS PORTION OF RPGLIB CONTAINS THOSE CONSTANTS THAT
;	ARE CAPABLE OF SURVIVING THE HARSH RIGORS OF THE PURE
;	AREA. HEREIN FIND THOSE MYRIAD CONSTANTS THAT HAVE
;	NO RIGHT TO EXIST BUT MUST IF OUR RUNTIME SYSTEM IS
;	TO FUNCTION.
;
;	AUGUST 26, 1975		17:03:06
;
;	ALL RIGHTS RESERVED, BOB CURRIER
;

	TWOSEG
	RELOC	400000


;DEFINE AN AC SO THE THING WILL COMPILE

	TA==4
;
;	DEFINE MACROS TO DEFINE TABLES
;

DEFINE	D.PNTR (TBLNAM,TBLID),<

	DEFINE	TBLID'.ITM (ITMID,WRDNO,LFTBIT,RTBIT),<
		INTERNAL TBLID'.'ITMID
		TBLID'.'ITMID:	POINT RTBIT-LFTBIT+1,WRDNO-1(TA),RTBIT
						      >

	DEFINE	TBLID'.FLG (FLGID,WRDNO,BITNO),<
		INTERNAL TBLID'.'FLGID
		TBLID'.'FLGID:	POINT 1,WRDNO-1(TA),BITNO
						>
			      >

	RADIX	10

	SALL
;OTFTAB DEFINITIONS

	D.PNTR	OTFTAB,OT

	OT.ITM	COR,1,0,17;		POINTER TO CORE INDEX	*
	OT.ITM	ADP,1,18,35;		POINTER TO ADDROUT	*
	OT.ITM	BFP,2,0,17;		POINTER TO RECORD BUFFER*
	OT.ITM	OPC,2,18,35;		POINTER TO OUTPUT CHAIN	*
	OT.ITM	IPC,3,0,17;		POINTER TO INPUT CHAIN	*
	OT.ITM	FTB,3,18,35;		Pointer to FTBTAB item
	OT.ITM	NAM,4,0,35;		PHYSICAL NAME
	OT.ITM	TYP,5,0,2;		FILE TYPE
	OT.ITM	DES,5,3,5;		FILE DESCRIPTION
	OT.ITM	PRO,5,6,8;		PROCESSING MODE
	OT.ITM	ORG,5,9,10;		ORGANIZATION
	OT.ITM	RAF,5,11,12;		RECORD ADDRESS FORMAT
	OT.ITM	DEV,5,13,16;		DEVICE
	OT.FLG	EOF,5,17;		EOF PROCESSING FLAG
	OT.ITM	BLK,5,18,35;		BLOCKING FACTOR
	OT.ITM	KYP,6,0,11;		KEY POSITION
	OT.ITM	SEQ,6,12,13;		SEQUENCE CHECKING
	OT.ITM	BUF,6,14,19;		BUFFER OFFSET
	OT.FLG	AST,6,20;		ASCII TAPE OPTION
	OT.ITM	REW,6,21,22;		REWIND OPTION
	OT.ITM	EXT,6,23,28;		NUMBER OF EXTENTS
	OT.ITM	ADD,6,29,30;		FILE ADDITION OPTION
	OT.ITM	KYL,6,31,35;		LENGTH OF KEY FIELD
	OT.ITM	OVI,7,0,7;		OVERFLOW INDICATOR
	OT.ITM	EXI,7,8,15;		EXTERNAL INDICATOR
	OT.ITM	OVL,7,16,21;		OVERFLOW LINE
	OT.ITM	CHN,7,28,31;		CURRENT CHANNEL
	OT.ITM	CHI,7,32,35;		INDEX CHANNEL
	OT.ITM	CRS,8,0,17;		CORE INDEX SIZE
	OT.ITM	BSZ,8,18,35;		BUFFER SIZE (WORDS)
	OT.ITM	BSC,9,0,17;		BUFFER SIZE (CHARACTERS)
	OT.FLG	LAS,9,18;		I AM LAST
	OT.ITM	LPP,9,19,25;		LINES PER PAGE

OTFSIZ==:^D9;				SIZE OF OTFTAB ENTRY
;OCHTAB DEFINITIONS

	D.PNTR	OCHTAB,OC

	OC.ITM	IDX,1,0,17;		POINTER TO INDEX	*
	OC.ITM	NXR,1,18,35;		NEXT RECORD		*
	OC.ITM	NXF,2,0,17;		NEXT FIELD		*
	OC.ITM	IND,2,18,35;		INDTAB POINTER		*
	OC.ITM	SRC,3,0,35;		SOURCE POINTER		*
	OC.ITM	FLD,4,0,1;		FIELD TYPE
	OC.ITM	SIZ,4,2,13;		SIZE
	OC.ITM	DEC,4,14,17;		DECIMAL POSITIONS
	OC.ITM	STP,4,18,29;		STERLING POSITION
	OC.FLG	PRI,4,30;		MFCU PRINT & PUNCH
	OC.FLG	PRO,4,31;		MFCU PRINT ONLY
	OC.FLG	STR,4,32;		STERLING SIGN
	OC.ITM	ORT,4,33,34;		OUTPUT RECORD TYPE
	OC.FLG	ADD,4,35;		ADD A RECORD
	OC.FLG	FOV,5,0;		FORCED OVERFLOW
	OC.ITM	SKB,5,1,7;		SKIP BEFORE
	OC.ITM	SKA,5,8,14;		SKIP AFTER
	OC.ITM	SPB,5,15,16;		SPACE BEFORE
	OC.ITM	SPA,5,17,18;		SPACE AFTER
	OC.ITM	END,5,19,30;		END POSITION
	OC.ITM	STS,5,31,34;		STACKER SELECT
	OC.FLG	IMD,5,35;		INDEX IMMEDIATE
	OC.ITM	OCC,6,0,14;		OCCURS
	OC.ITM	EDT,6,15,18;		EDIT CODE
	OC.FLG	LTF,6,19;		LITERAL OUTPUT FLAG
	OC.ITM	LSZ,6,20,28;		SIZE OF LITERAL
	OC.ITM	RSV,6,29,32;		RESERVED WORD CODE
	OC.FLG	BLA,6,33;		BLANK AFTER
	OC.FLG	TAB,6,34;		TABLE FLAG
	OC.ITM	ARP,7,0,17;		ARRAY POINTER		*
	OC.ITM	EDP,7,18,35;		EDIT STRING/LITERAL POINTER
;ICHTAB DEFINITIONS

	D.PNTR	ICHTAB,IC

	IC.ITM	DES,1,0,35;		ASSIGNED CORE LOC	*
	IC.ITM	RII,2,0,17;		POINTER TO IDTTAB RII	*
	IC.ITM	NXF,2,18,35;		NEXT FIELD		*
	IC.ITM	NXR,3,0,17;		NEXT RECORD		*
	IC.ITM	ARP,3,18,35;		POINTER TO ARRAY	*
	IC.ITM	INP,4,0,17;		POINTER TO INDEX	*
	IC.ITM	FMN,5,0,7;		MINUS INDICATOR
	IC.ITM	FBZ,5,8,15;		BLANK/ZERO INDICATOR
	IC.ITM	FPL,5,16,23;		PLUS INDICATOR
	IC.ITM	CLI,5,24,31;		CONTROL LEVEL INDICATOR
	IC.ITM	NPS,5,32,33;		NUMBER PER SEQUENCE
	IC.ITM	FLD,5,34,35;		FIELD TYPE
	IC.ITM	FRR,6,0,7;		FIELD RECORD RELATION
	IC.ITM	MAT,6,8,15;		MATCHING INDICATOR
	IC.FLG	RTR,6,16;		RECORD TYPE REQUIRED
	IC.FLG	LHI,6,17;		LOOK AHEAD ITEM
	IC.ITM	STS,6,18,20;		STACKER SELECT
	IC.ITM	SIZ,6,21,32;		SIZE
	IC.ITM	SEQ,6,33,34;		SEQUENCE CHECK
	IC.FLG	IMD,6,35;		IMMEDIATE
	IC.ITM	SRC,7,0,11;		CHARACTER POSITION IS SOURCE
	IC.ITM	OCC,7,12,26;		OCCURS
	IC.ITM	FMT,7,27,31;		FIELD FORMAT
;IDTTAB DEFINITIONS

	D.PNTR	IDTTAB,ID

	ID.FLG	OR,1,0;			OR/AND FLAG
	ID.FLG	NOT,1,1;		NOT FLAG
	ID.ITM	IND,1,2,9;		INDICATOR/CHARACTER
	ID.ITM	POS,1,10,21;		POSITION
	ID.FLG	END,1,22;		END FLAG
	ID.ITM	RII,1,23,30;		RII (OR LINE ONLY)
	ID.ITM	SEQ,1,31,35;		ASSIGNED SEQ NUMBER (OR LINE ONLY)
;ARRTAB definitions

	D.PNTR	ARRTAB,AR

	AR.ITM	PNT,1,0,35;		pointer to array item
	AR.ITM	SIZ,2,0,9;		size of array item
	AR.ITM	OCC,2,10,19;		number of array entries
	AR.ITM	EPR,2,20,29;		entries per record
	AR.FLG	LDM,2,30;		dump file flag
	AR.FLG	LAS,2,31;		this is last item
	AR.ITM	FIL,3,0,17;		pointer to OTFTAB item for array file
	AR.ITM	ASZ,3,18,27;		size of alternate item
	AR.ITM	ALT,4,0,35;		pointer to alternating array

SZ.ARR==:4
;FINISH UP

	RADIX	8


	END