TITLE S$$BKT BREAK TABLE POINTERS TABLE ENTRY S$$BKT SEARCH S$$NDF SALL COMMENT/ CALL: LDB R0,S$$BKT(R2) ; WHERE R1 CONTAINS THE 3.5 WORD BREAK TABLE POINTER AND R2 CONTAINS THE CHARACTER TO BE TESTED FOR MEMBERSHIP/ ; ENTRY DEFINING MACRO DEFINE TABENT(CHR) < IFLE C1-107, < TBL'CHR= POINT 1,C1&3(R1),^D35-C1/4> IFG C1-107, < TBL'CHR= POINT 1,1+C1-*3(R1),^D17-/3> C1=C1+1> ; DEFINE TABLE ENTRIES, GIVING CHARACTERS IN ORDER OF DECLINING ; PROBABLE RELATIVE FREQUENCY C1=0 ; INITIAL BREAK TABLE POSITION (BEST) C2=40 ; NORMAL CHARACTER CODES 040-137 REPEAT 100, < TABENT(\C2) C2=C2+1> TABENT(0) ; NULL CHARACTER C2=7 ; SPECIAL CONTROL CODES 007-015 REPEAT 7, < TABENT(\C2) C2=C2+1> C2=140 ; UPPERCASE CODES 140-177 REPEAT 40, < TABENT(\C2) C2=C2+1> C2=1 ; CONTROL CODES 001-006 REPEAT 6, < TABENT(\C2) C2=C2+1> C2=16 ; CONTROL CODES 016-034 REPEAT 17, < TABENT(\C2) C2=C2+1> TBL35=TBL34 ; CONTROL CODE 035 TABENT(36) ; CONTROL CODE 036 TBL37=TBL36 ; CONTROL CODE 037 ; BUILD TABLE DEFINE TABDEF(CHR) < TBL'CHR> C2=0 S$$BKT: REPEAT 200, < TABDEF(\C2) C2=C2+1> XALL END END