Google
 

Trailing-Edge - PDP-10 Archives - BB-H580C-SB_1981 - nubstb.mac
There are 7 other files named nubstb.mac in the archive. Click here to see a list.
; UPD ID= 2742 on 4/4/80 at 10:51 AM by WRIGHT                          
TITLE	NUBSTB FOR LIBOL.
SUBTTL	NUMERIC TEST 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 *****

;	13-AUG-76	ADD ASNII STANDARD NUMERIC TESTING
;	6-JUL-75	/ACK	EXTRACTED THIS MODULE FROM EASTBL.

;*****

	SEARCH	LBLPRM		;DEFINE ASSEMBLY PARAMETERS.
	%%LBLP==:%%LBLP
	NUMSTD==NUMSTD		; [450] STD NUMERIC TEST
	BIS==BIS

	SEARCH	NUMEQV		;[12B] GET NUMERIC EQUIVALENCES
	SEARCH	FLGDF		;DEFINE THE FLAGS.

	SALL

	HISEG
; NUMERIC TEST TABLES

; THESE ARE NEEDED BECAUSE THE DISPLAY NUMERIC CONVERSION TABLES
; ARE NOT STRICT ENOUGH

DEFINE	NUMS.TB(SRC)
<	.XCREF
	BTBMAC(SRC,S)		;;DEFINE NEEDED MACROS
	%CHAR==0		;;CHARACTER INDEX
	DEFINE	SYMBL		;;BUILD VALUE OF NEXT SYMBOL AND SET SYM%
	<	SYM%==0		;;START WITH ZERO VALUE

	IFE NUMSTD,<
		;IGNORE NULS
		IFE	TOKEN%(\%CHAR)-TK.TAB,<ABTSIG>	;;ABORT ON TRAILING
		IFE	TOKEN%(\%CHAR)-TK.BLK,<ABTSIG>	;;ABORT ON TRAILING
		IFE	TOKEN%(\%CHAR)-TK.DIG,<SIGSET>	;;NOTE DIGITS
		IFE	TOKEN%(\%CHAR)-TK.OVP,<ABORT>	;;SEE IF LAST
		IFE	TOKEN%(\%CHAR)-TK.SGN,<ABORT>	;LEADING/TRAILING
		IFE	TOKEN%(\%CHAR)-TK.OTH,<ABORT>	;NOT NUMERIC
	> ; END IFE NUMSTD
	IFN NUMSTD,<
;	ANSII STD NUMERIC TEST NO TABS,NULLS, BLANKS ALLOWED
		IFE	TOKEN%(\%CHAR)-TK.NUL,<ABORT>	;; [450] ABORT ON NULLS
		IFE	TOKEN%(\%CHAR)-TK.TAB,<ABORT>	;; [450] ABORT ON TABS
		IFE	TOKEN%(\%CHAR)-TK.BLK,<ABORT>	;; [450] ABORT ON BLANKS
		IFE	TOKEN%(\%CHAR)-TK.DIG,<		;[12B]
			%ADD==NUMVAL
			SIGSET+%ADD>			;;[450] NOTE DIGITS
		IFE	TOKEN%(\%CHAR)-TK.OVP,<ABORT>	;; [450] SEE IF LAST
		IFE	TOKEN%(\%CHAR)-TK.SGN,<ABORT>	; [450] LEADING/TRAILING
		IFE	TOKEN%(\%CHAR)-TK.OTH,<ABORT>	; [450] NOT NUMERIC
	> 	; END IFN NUMSTD

		%CHAR==%CHAR+1	;;INCREMENT INDEX

		;; NOTE SYM% NEVER HAS ANY VALUE ONLY FLAGS
	>
	TBLSIZ			;;DETERMINE SIZE OF TABLE
	REPEAT	VAL,<		;;VAL IS HALFF NUMBER OF SYMBOLS
		SYMBL		;;GET NEXT SYMBOL
		SYM1==SYM%	;;SAVE IT
		SYMBL		;;NEXT ONE
		XWD	SYM1,SYM%	;;BUILD WORD OF TWO ENTRIES
	>
	.CREF
>

ENTRY	NUMS.7
NUMS.7::	BLOCK	0
ENTRY	NUMS.6
NUMS.6=:.+20

IFN BIS,<
	NUMS.T(A)		;ASCII AND SIXBIT
>

ENTRY	NUMS.9
NUMS.9::	BLOCK	0

IFN BIS,<
	NUMS.T(E)		;EBCDIC
>


	END	;NUBSTB.MAC