Google
 

Trailing-Edge - PDP-10 Archives - BB-H506D-SM_1983 - cobol/source/albstb.mac
There are 7 other files named albstb.mac in the archive. Click here to see a list.
; UPD ID= 1228 on 9/5/78 at 1:39 PM
TITLE	ALBSTB FOR LIBOL
SUBTTL	ALPHANUMERIC CONVERSION TABLES FOR BIS.



;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED
;  OR COPIED IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
;
;COPYRIGHT (C) 1975, 1981 BY DIGITAL EQUIPMENT CORPORATION


;REVISION HISTORY:

;V10 *****

;	6-JUL-75	/ACK	EXTRACTED THIS MODULE FROM EASTBL.

;*****

	SEARCH	LBLPRM		;DEFINE ASSEMBLY PARAMETERS.
	%%LBLP==:%%LBLP
	BIS==BIS

	SEARCH	CHREQV		;DEFINE THE CHARACTER SET EQUIVALENCES.

	SEARCH	NUMEQV		;DEFINE THE NUMERIC EQUIVALENCES.

	SEARCH	FLGDF		;DEFINE THE FLAGS.
	LDGCH.==:LDGCH.
	SPCCH.==:SPCCH.
	IBNCH.==:IBNCH.
	VALCH.==:VALCH.

	SALL

	HISEG
; ALP.XX TABLES
;
;	THESE ARE USED BY:
;
;	EDIT	- TO PROCESS ALPHA EDITS AND NON-EDITED BLANK WITH ZERO
;		MOVES.  THE N FLAG IS SET WHEN ANY NON-ZERO CHARACTER
;		IS ENCOUNTERED.
;
;	CD.XX	- FOR THE CONVERTED MOVES
;
;	ALPHAS	- USES THE 6/7/9TO7 TABLES TO DETECT ALPHAS
;		THE M FLAG IS SET WHEN A NON-ALPHA CHARACTER IS SEEN


; BASIC ALP.XX GENERATION MACRO

DEFINE	ALP.TB(SRC,DST,MCHKST)  
<	.XCREF
	BTBMAC(SRC,DST)		;GENERATE MACROS
	DEFINE	MCHK<MCHKST>	;DEFINE M FLAG USAGE
	%CHAR==0
	DEFINE	SYMBL
	<	IFDIF	<SRC><DST>,<SYM%==ALPSYM(\%CHAR)>
		IFIDN	<SRC><DST>,<SYM%==%CHAR>
		ZERO		;IS IT ZERO - IF NOT SIGSET
		IFALSE	VAL,<SIGSET>

		MCHK		;SET M FLAG IF NECESSARY
		%CHAR==%CHAR+1
	>
 	TBLSIZ
	 REPEAT	VAL,<
	  SYMBL
	  SYM1==SYM%
	  SYMBL
	  XWD	SYM1,SYM%
	>
	.CREF
>
; DEFINE THE ALP.X6 TABLES
;    SIXBIT IS ENCOMPASSED BY THE ASCII

ENTRY	ALP.76
ALP.76::
ENTRY	ALP.66
ALP.66=:.+20
IFN BIS,<
	ALP.TB	(A,S,<>)	;ASCII TO SIXBIT CONVERSION
>

ENTRY	ALP.96
ALP.96::

IFN BIS,<
	ALP.TB	(E,S,<>)		;EBCDIC TO SIXBIT
>

;NOW THE ALP.X7 TABLES


ENTRY	ALP.77
ALP.77::
ENTRY	ALPS.7
ALPS.7=.
ENTRY	ALP.67
ALP.67=.+20
ENTRY	ALPS.6
ALPS.6=:.+20

IFN BIS,<
	ALP.TB	(A,A,< IFALSE ALPHAB(\%CHAR),<MSET>>)		;ASCII TO ASCII
>

ENTRY	ALP.97
ALP.97::
ENTRY	ALPS.9
ALPS.9=.

IFN BIS,<
	ALP.TB	(E,A,< IFALSE ALPHAB(\%CHAR),<MSET>>)	;EBCDIC TO ASCII
>
; NOW THE ALP.X9 TABLES


ENTRY	ALP.79
ALP.79::
ENTRY	ALP.69
ALP.69=.+20

IFN BIS,<
	ALP.TB	(A,E,<>)	;ASCII TO EBCDIC
>

ENTRY	ALP.99
ALP.99::

IFN BIS,<
	ALP.TB	(E,E,<>)		;EBCDIC TO EBCDIC
>
; DEFINE THE ASCII LOWER CASE TO UPPER CASE CONVERSION TABLE

ENTRY ALP.7U
ALP.7U:
IFN BIS&TCS,<
	ALP.TB	(A,U,<>)	;ASCII LOWER TO UPPER CONVERSION
>

;DEFINE THE EBCDIC TO UPPER CASE ASCII CONVERSION TABLE

ENTRY ALP.9U
ALP.9U:
IFN BIS&TCS,<
	ALP.TB	(E,U,< IFALSE ALPHAB (\%CHAR),<MSET>>)	;EBCDIC TO UPPER ASCII
>

	END	;ALBSTB.MAC