Trailing-Edge
-
PDP-10 Archives
-
BB-H506D-SM_1983
-
cobol/source/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