Google
 

Trailing-Edge - PDP-10 Archives - 704rmsf2 - 10,7/rms10/rmssrc/rmstab.b36
There are 6 other files named rmstab.b36 in the archive. Click here to see a list.

MODULE TABL =

BEGIN

GLOBAL BIND	TABLV = 1^24 + 0^18 + 3;	!EDIT DATE: 22-DEC-77

%([

THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
  OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.

!COPYRIGHT (C) 1977, 1979 BY DIGITAL EQUIPMENT CORPORATION


AUTHOR:	S. BLOUNT


	THIS MODULE CONTAINS ALL RUN-TIME PURE TABLES
	WHICH ARE USED BY RMS-20. THESE TABLES ARE INCLUDED
	HERE (AS OPPOSED TO THE GLOBAL DECLARATION MODULE)
	SO THAT THEY CAN BE READ-ONLY WHEN RMS-20 IS LOADED
	INTO USER CORE.

	THIS MODULE CURRENTLY CONTAINS TWO TABLES -- A DATA-TYPE
	TABLE WHICH DEFINES THE CHARACTERISTICS OF THE VARIOUS
	KEY DATA-TYPES, AND A TRANSLATION TABLE FOR PROCESSING
	OF ASCII RECORDS.

	THE DATA-TYPE TABLE CONTAINS ALL ATTRIBUTES FOR EACH DEFINED
	KEY DATA-TYPE.  THE ONLY ATTRIBUTE OF A DATA-TYPE
	WHICH IS CURRENTLY DEFINED IS A BYTE SIZE. HOWEVER,
	AS ATTRIBUTES ARE ADDED IN THE FUTURE, IT WILL BECOME
	NECESSARY TO EXPAND THIS TABLE TO INCLUDE THESE NEW
	ATTRIBUTES. THUS, ALL INFORMATION WHICH DESCRIBES THE
	CHARACTERISTICS OF A KEY DATA-TYPE SHOULD BE INCLUDED
	IN THIS TABLE.





REVISION HISTORY:

PRODUCT	LOCAL
EDIT	EDIT	DATE		WHO		PURPOSE
====	====	====		===		==========

1	1	18-OCT-77	SB	ADD ASCII TABLE, CHANGE NAME OF MODULE
-	2	14-NOV-77	SB	CHANGE BIND OF TABLE1
4	3	22-DEC-77	SB	ADD ABR TO ^Z,ESC

*************************************************
*						*
*		NEW REVISION HISTORY		*
*						*
*************************************************

PRODUCT	MODULE	 SPR
 EDIT	 EDIT	 QAR		DESCRIPTION
======	======	=====		===========


	***** END OF REVISION HISTORY *****




])%


REQUIRE 'RMSREQ';
UNDECLARE %QUOTE SFLG, %QUOTE ABR;




	%([ THIS MODULE CONTAINS A MAJOR ITEM: THE DATA-TYPE
	   CHARACTERISTICS TABLE FOR USE IN INDEXED FILES.
	   THIS TABLE CONTAINS ALL ATTRIBUTES OF EACH KEY
	   DATA-TYPE WHICH ARE NECESSARY TO PROCESS THE KEY.
	   THE TABLE IS CENTRALIZED HERE TO AVOID MULTIPLE
	   CASE STATEMENTS THRUOUT THE CODE.

	   THE ACTUAL STRUCTURE MACROS FOR EACH FIELD IN THIS
	   TABLE ARE CONTAINED IN THE FILE "XAB.REQ".

	   NOTE THAT THE ORDER OF THE ENTRIES IN THIS TABLE MUST
	   CORRESPOND TO THE NUMERIC VALUES OF EACH KEY DATA-TYPE.

	   NOTE THAT IF THE FORMAT OF THE DATA-TYPE TABLE CHANGES,
	   THIS BIND STATEMENT MUST ALSO BE MODIFIED ])%


	%([ MACRO TO DEFINE A NEW DATA-TYPE ])%

	MACRO	DATATYPE ( XNAME, XTYPE, XBSZ )=
		XTYPE ^ 35 + XBSZ %;

	%([ VALUES USED FOR EACH DATA TYPE ])%

	LITERAL	TYPECHARACTER	=	0,	! CHARACTER DATA TYPE
		TYPENUMERIC	=	1;	! NUMERIC DATA TYPE

	%([ THE ACTUAL TABLE OF KEY DATA-TYPE CHARACTERISTICS ])%

	BIND XXXXXX = PLIT (
		DATATYPE ( %(STREAM)%	DTPSTM,	%(TYPE)% TYPECHARACTER,	%(BYTE SIZE)% STRINGBYTESIZE),
		DATATYPE ( %(EBCDIC)%	DTPEBC,	%(TYPE)% TYPECHARACTER,	%(BYTE SIZE)% EBCDICBYTESIZE), 
		DATATYPE ( %(SIXBIT)%	DTPSIX,	%(TYPE)% TYPECHARACTER,	%(BYTE SIZE)% SIXBITBYTESIZE ) );	
	GLOBAL BIND DTPTABLE = XXXXXX;





%([
*****************************************************************
*		TRANSLATION TABLE FOR READ ASCII RECORDS	*
*****************************************************************
])%


	LITERAL	SFLG	=	BITN ( 18 ),	! SIGNIFICANCE FLAG
		ABR	=	BITN ( 20 );	! ABORT FLAG

	MACRO	TBL ( LEFTCHAR, RIGHTCHAR ) =
		( SFLG + LEFTCHAR ) ^ 18 + ( RIGHTCHAR + SFLG ) %;

BIND YYYYYY = PLIT (
		0^18 + (1+sflg),		!leading nuls not signif
		TBL ( 2, 3 ),
		TBL ( 4, 5 ),
		TBL ( 6, 7 ),
		TBL ( 8, 9 ),
		TBL ( 10+ABR, 11+ABR ),		! LF, VT
		TBL ( 12+ABR, 13 ),		! FF,
		TBL ( 14, 15 ),
		TBL ( 16, 17 ),
		TBL ( 18, 19 ),
		TBL ( 20, 21 ),
		TBL ( 22, 23 ),
		TBL ( 24, 25 ),
		TBL ( 26+ABR, 27+ABR ),		! ^Z,,ESC
		TBL ( 28, 29 ),
		TBL ( 30, 31 ),
		TBL ( 32, 33 ),
		TBL ( 34, 35 ),
		TBL ( 36, 37 ),
		TBL ( 38, 39 ),
		TBL ( 40, 41 ),
		TBL ( 42, 43 ),
		TBL ( 44, 45 ),
		TBL ( 46, 47 ),
		TBL ( 48, 49 ),
		TBL ( 50, 51 ),
		TBL ( 52, 53 ),
		TBL ( 54, 55 ),
		TBL ( 56, 57 ),
		TBL ( 58, 59 ),
		TBL ( 60, 61 ),
		TBL ( 62, 63  ),
		TBL ( 64, 65 ),
		TBL ( 66, 67 ),
		TBL ( 68, 69 ),
		TBL ( 70, 71 ),
		TBL ( 72, 73 ),
		TBL ( 74, 75 ),
		TBL ( 76, 77 ),
		TBL ( 78, 79 ),
		TBL ( 80, 81 ),
		TBL ( 82, 83 ),
		TBL ( 84, 85 ),
		TBL ( 86, 87 ),
		TBL ( 88, 89 ),
		TBL ( 90, 91 ),
		TBL ( 92, 93 ),
		TBL ( 94, 95 ),
		TBL ( 96, 97 ),
		TBL ( 98, 99 ),
		TBL ( 100, 101 ),
		TBL ( 102, 103 ),
		TBL ( 104, 105 ),
		TBL ( 106, 107 ),
		TBL ( 108, 109 ),
		TBL ( 110, 111 ),
		TBL ( 112, 113 ),
		TBL ( 114, 115 ),
		TBL ( 116, 117 ),
		TBL ( 118, 119 ),
		TBL ( 120, 121 ),
		TBL ( 122, 123 ),
		TBL ( 124, 125 ),
		TBL ( 126, 127 ) );	
GLOBAL BIND TABLE1 = YYYYYY;

%([
*****************************************************************
*			END OF RMSTAB				*
*****************************************************************
])%

END
ELUDOM