.TITLE HYPHEN C00-01 ; ; ; ; ; ; ; COPYRIGHT (C) 1974, DIGITAL EQUIPMENT CORP., MAYNARD, MASSACHUSETTS 01754. ; ; ; THE SOFTWARE DESCRIBED IN THIS DOCUMENT, INCLUDING BUT NOT LIMITED TO, IN- ; STRUCTION EXECUTION TIMES AND OPERATING SPEEDS IS FOR INFORMATION PURPOSES ; ONLY. ALL SUCH MATERIAL IS SUBJECT TO CHANGE WITHOUT NOTICE. ; CONSEQUENTLY DIGITAL MAKES NO CLAIM AND SHALL NOT BE LIABLE FOR ITS ACCU- ; RACY. ; ; THE SOFTWARE DESCRIBED IS FURNISHED TO THE PURCHASER UNDER A LICENSE FOR ; USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH THE INCLUSION OF ; DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT AS MAY ; OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. ; ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. ; ADAPTED FROM THE BELL LABS. HYPHENATION ALGORITHM ; FOR RUNOFF ; ; R0 = %0 R1 = %1 R2 = %2 R3 = %3 R4 = %4 R5 = %5 SP = %6 PC = %7 ; ; .GLOBL MQ,MUL ; ; LOWER CASE CHARACTER VALUES ; A=141 B=142 C=143 D=144 E=145 F=146 G=147 H=150 I=151 J=152 K=153 L=154 M=155 N=156 O=157 P=160 Q=161 R=162 S=163 T=164 U=165 V=166 W=167 X=170 Y=171 Z=172 ; THRESH: .WORD 20 WCH: .WORD 0 HSTART: .WORD 0 NHSTAR: .WORD 0 MAXLOC: .WORD 0 MAXDIG: .WORD 0 SUFB: .BLKW 20 NHYPH: .WORD 0 HYPEDF: .WORD 0 HYF: .WORD 1 WORDP: .WORD 0 ; MAIN HYPHENATION ROUTINE. UPON ENTRY, R0 CONTAINS ; THE ADDRESS OF A SINGLE WORD, TERMINATED BY A ; ZERO BYTE WHICH IS TO BE HYPHENATED. ;"HYPHEN" GOES THROUGH THE WORD FROM RIGHT TO LEFT LOOKING ;FIRST FOR A LEGAL SUFFIX FROM ITS SUFFIX TABLES. WHEN IT FINDS A ;LEGAL PLACE FOR A HYPHEN ACCORDING TO THE TABLE IT SETS THE PARITY ;BIT OF THE CHARACTER THE HYPHEN IS TO BE IN FRONT OF. THEN AFTER ;THAT IS DONE ONCE, IT MAY REPEAT THE OPERATION TREATING THE ;REMAINDER OF THE WORD (WITH THE SUFFIX DROPPED) AS AN ENTIRELY NEW ;ENTITY TO BE HYPHENATED AND LOOKED UP IN THE SUFFIX TABLES. THAT IS, ;IF IT DOES THE RECURSION IT DROPS THE FIRST SUFFIX IT FOUND AND ;PRETENDS THE REMAINDER OF THE WORD HAS A SUFFIX THAT CAN BE LOOKED ;UP IN THE SUFFIX TABLES FOR LEGAL HYPHENATIONS. THIS DOES NOT OCCUR ;IN ALL CASES; IF THE "40" BIT IS SET IN THE FIRST BYTE OF THE ;SUFFIX TABLE ENTRY, IT WILL DO IT, OTHERWISE, NOT. ; .GLOBL HYPHEN,HYPEDF HYPHEN: MOV R0,WORDP INC WORDP ;POINT TO SECOND CHAR TST HYPEDF BNE HYP06 TST HYF BEQ HYP06 INC HYPEDF CLR NHYPH HYP01: JSR PC,PUNCT ;IS THE CHAR. A PUNCT. MARK? BNE HYP02 ;NO INC R0 ;SKIP OVER IT BR HYP01 ;AND RE-LOOP HYP02: JSR PC,ALPH ;IS CHARACTER ALPHABETIC? BNE HYP06 ;NO, SO DON'T HYPHENATE HYP03: INC R0 ;SKIP OVER IT JSR PC,ALPH ;FIND END OF BEQ HYP03 ;ALPHABETIC STRING DEC R0 ;POINT TO LAST CHARACTER MOV R0,HSTART ;SAVE POINTER HYP04: INC R0 ;IS THE FOLLOWING TSTB (R0) ;CHARACTER BEQ HYP05 ;THE WORD TERMINATOR?? JSR PC,PUNCT ;OR A KNOWN PUNCTUATION? BNE HYP06 ;NO, DON'T HYPHENATE BR HYP04 ;LOOP UNTIL TERM. FOUND HYP05: MOV HSTART,R0 ;COMPUTE LENGTH OF WORD SUB WORDP,R0 ; (LENGTH-2 REALLY) CMP R0,#<5-2> ;DON'T HYPHENATE 5-LETTER WORDS BLE HYP06 ; OR SHORTER JSR R5,SUFFIX ;GO GET THE SUFFIX FORMS ALLOWED JSR R5,DIGRAM HYP06: BICB #200,@WORDP ;DISALLOW SINGLE CHAR. BREAK RTS PC ;RETURN TO CALLER ; IS THE CHARACTER UNDER SCAN IN THE CLASS OF KNOWN ; PUNCTUATION MARKS?? ; PUNCT: MOVB (R0),R2 CMP R2,#" / BEQ PU01 CMP R2,#'. BEQ PU01 CMP R2,#', BEQ PU01 CMP R2,#'( BEQ PU01 CMP R2,#') BEQ PU01 CMP R2,#'" BEQ PU01 CMP R2,#'\ BEQ PU01 CMP R2,#'@ PU01: RTS PC ; ;ROUTINE TO CHECK A CHARACTER FOR UPPER OR LOWER CASE ; ALPHABETICS ; ALPH: MOVB (R0),R2 ALPH2: CMP R2,#'A BLO ALP02 CMP R2,#'Z BLOS ALP01 CMP R2,#A BLO ALP02 CMP R2,#Z BHI ALP02 ALP01: SEZ RTS PC ALP02: CLZ RTS PC ; ;MAP UPPER CASE TO LOWER CASE ; MAPLOW: CMP R2,#A BHIS MAP01 ADD #A-'A,R2 MAP01: RTS PC ; ;CHECK TO SEE IF CHARACTER IS A VOWEL (Y IS CONSIDERED ; A VOWEL HERE) ; VOWEL: CMP R2,#A ;IT CAN BE AN A BEQ VO001 CMP R2,#E ;OR E BEQ VO001 CMP R2,#I ;OR I BEQ VO001 CMP R2,#O ;OR O BEQ VO001 CMP R2,#U ;OR U BEQ VO001 CMP R2,#Y ;OR EVEN Y VO001: RTS PC ; ;CHECK TO SEE IF ANY VOWELS PRECEDE THE CURRENT CHARACTER ; POSITION ; CHECKVOW: MOV R0,-(SP) CK01: MOVB -(R0),R2 JSR PC,ALPH2 BNE CK03 JSR PC,MAPLOW ;MAP TO LOWER CASE JSR PC,VOWEL BEQ CK02 JSR PC,ALPH BEQ CK01 CK03: MOV (SP)+,R0 CLZ RTS R5 CK02: MOV (SP)+,R0 SEZ RTS R5 ; HYP2 -- SUFFIX AND DIGRAM ;AFTER THE INITIAL HYPHENATION GETS DONE LOOKING FOR LEGAL SUFFIXES, ;WE MAKE A PASS THROUGH DIGRAM. WHAT THIS DOES IS MAKE GUESSES FOR ;GOOD PLACES TO PUT A HYPHEN IN THE ROOT OF THE WORD THAT IS LEFT AFTER ;WE'VE FOUND ALL POSSIBLE HYPHENATION PLACES IN THE SUFFIX. THAT IS, ;IT WORKS ON THE PART OF THE WORD TO THE LEFT OF THE LEFTMOST HYPHEN ;INSERTED BY THE "HYPHEN" ROUTINE. AS AN EXAMPLE OF WHAT IT CONSIDERS ;A "GOOD GUESS", IT TENDS TO LIKE DOUBLE CONSONANTS; BB, FF, ETC. ;IT ALSO HAS PROBABILITIES WORKED OUT FOR OTHER COMBINATIONS AND EACH ;IS ASSIGNED A GOODNESS VALUE. DIGRAM GOES THROUGH AND MUNGS THINGS ;AROUND, THEN COMPARES WHAT IT GETS TO THE VALUE OF "THRESH". IF THE ;GOODNESS RATING IT GETS FOR A POSSIBLE HYPEHANTION POINT IS ABOVE ;THE VLUE OF THRESH, IT ACCEPTS IT. IF NOT, IT THROWS IT AWAY. ;THERE ARE FOUR MAIN DIGRAM TABLES FOR THE CASES OF -XX, XX- WITH ;THE XX AT THE BEGINNING OF THE WORD (NO CHARS PRECEDING), X-X, ;AND XX- WITH OTHER CHARACTERS PRECEDING XX. (XX REPRESENTING ANY TWO ;CHARACTERS.) DIGRAM: MOV HSTART,R0 ;GET PTR TO CHAR PRECEDING LEFTMOST HYPHEN DIG01: JSR PC,ALPH ;IS CHAR ALPHABETIC? BNE DIG09 ;IF NOT, GO AWAY JSR PC,MAPLOW ;MAP UC TO LC JSR PC,VOWEL ;IS CHAR A VOWEL? BEQ DIG02 ;IF SO DEC R0 ;KEEP GOING BR DIG01 ;TILL WE FIND A VOWEL DIG02: MOV R0,HSTART ;RESET LAST CHAR PTR TO VOWEL DIG03: MOVB -(R0),R2 ;GET CHAR PRECEDING JSR PC,ALPH2 ;IS IT ALPHA? BNE DIG09 ;IF NOT, GO AWAY JSR PC,MAPLOW ;CHANGE UC TO LC JSR PC,VOWEL ;IS IT A VOWEL? BNE DIG03 ;IF NOT, TRY AGAIN CLR MAXDIG ;CLEAR OUR GOODNESS VALUE WORD MOV R0,NHSTART ;SAVE PTR TO 2ND VOWEL DIG04: MOV #1,MQ ;SET UP FOR FIRST MUNGING MOVB -1(R0),R2 ;GET CHAR BEFORE FIRST VOWEL JSR PC,ALPH2 ;MAKE SURE OF ALPHA BEQ DIG05 ;IF SO MOVB (R0),R2 ;GET CURRENT CHAR MOV #A,R1 JSR R5,DILOOK ;GET VALUE FACTOR FOR X- WHEN X IS AT BEGINNING OF WORD BXH BR DIG07 DIG05: MOVB -2(R0),R2 ;GET TWO CHARS BEFORE MOV #XXH,DIG10 ;ASSUME CHARS PRECEDE XX JSR PC,ALPH2 ;FIND OUT ABOUT THAT BEQ DIG06 ;IF SO MOV #BXXH,DIG10 ;IF NOT, CORRCT FOR XX AT BEGINNING OF WORD DIG06: MOVB -1(R0),R1 ;GET THE LEFT "X" CHAR MOVB (R0),R2 ;NOW THE RIGHT "X" CHAR JSR R5,DILOOK ;MUNG! DIG10: XXH ;USING TABLE BXXH OR XXH DIG07: MOVB (R0)+,R1 ;GET VOWEL MOVB (R0),R2 ;GET CHAR AFTER VOWEL JSR R5,DILOOK ;MUNG! XHX MOVB (R0),R1 ;MUNG! MOVB 1(R0),R2 JSR R5,DILOOK HXX CMP MQ,MAXDIG ;SEE IF WE BETTERED OUR BEST BLOS DIG08 ;IF NOT, KEEF THE OLD MOV MQ,MAXDIG ;IF SO, SAVE OUR BEST GUESS SO FAR MOV R0,MAXLOC ;SAVE ITS LOCATION DIG08: CMP R0,HSTART ;SEE IF MORE BLO DIG04 ;RUN THAT BY ME ONE MORE TIME MOV NHSTART,HSTART CMP MAXDIG,THRESH ;SEE IF OUR BEST WAS GOOD ENOUGH BLO DIGRAM ;IF NOT, TRY FOR SOMETHING BETTER BISB #200,@MAXLOC ;SAY WE CAN HYPHENATE HERE INC NHYPH ;COUNT HOW MANY HYPHENS ; MOV MAXDIG,@OCTBUFP ; INC OCTCNT ; ADD #2,OCTBUFP BR DIGRAM ;KEEP LOOKING DIG09: RTS R5 ;THIS TAKES TWO CHARS PASSED IN R1 AND R2 AND INDEXES ;INTO THE APPROPRIATE DIGRAM TABLE. IT DOES THIS BY ;BASICALLY DOING: ; ; (R1*13.)/2 + R2 ; ;EACH DIGRAM TABLE (EXCEPT BXH) HAS 26. ROWS OF 26. 4-BIT BYTES EACH. ;SO R1 INDEXES TO THE RIGHT ROW AND R2 INDEXES TO THE RIGHT BYTE ;AND THE REMAINDER OF THE DIVISION BY 2 TELLS YOU IF YOU WANT THE LEFT ;FOUR BITS OR THE RIGHT 4 BITS OF THE BYTE. IN THE FOUR BITS YOU FINALLY ;GET IS A VALUE FROM 0 TO 17. DILOOK: BIC #-177-1,R2 BIC #-177-1,R1 JSR PC,MAPLOW SUB #A,R2 CMP R2,#Z-A BHI DIL02 MOV R2,R3 MOV R1,R2 JSR PC,MAPLOW SUB #A,R2 CMP R2,#Z-A BHI DIL02 MOV MQ,-(SP) MOV R2,MQ ASL MQ ; * 2 ASL MQ ; * 4 MOV MQ, -(SP) ASL MQ ; * 8 ADD (SP)+, MQ ; * 12 ADD R2, MQ ; * 13 CLR R2 CLC ROR R3 ADC R2 ADD MQ,R3 ADD (R5)+,R3 MOVB (R3),R3 TST R2 BNE DIL01 ASR R3 ASR R3 ASR R3 ASR R3 DIL01: BIC #-17-1,R3 CLR MQ MOV (SP)+,MUL BEQ 20$ 10$: ADD R3, MQ DEC MUL BNE 10$ 20$: RTS R5 DIL02: CLR MQ TST (R5)+ RTS R5 ; ;MARK ANY LEGAL SUFFIX FORMS IN THE PROTOTYPE AND RETURN ; SUFFIX: MOV HSTART,R0 ;GET POINTER TO LAST CHAR. JSR PC,ALPH ;IS CHARACTER ALPHABETIC? BNE SUF08 ;NO, EXIT JSR PC,MAPLOW ;MAP CHAR. TO LOWER CASE SUB #A,R2 ;GET TABLE OFFSET ASL R2 ;CONVERT TO WORD INDEX MOV SUFTAB(R2),-(SP) ;GET ADDRESS OF SUFFIX DICTIONARY BEQ SUF07 ;EXIT IF NO DICTIONARY ENTRY SUF01: MOV HSTART,R0 ;ADDRESS OF LAST CHARACTER MOV (SP),R1 ;ADDRESS OF SUFFIX DICTIONARY JSR PC,RDSUF ;GET A SUFFIX DICT. ENTRY MOVB (R1),R3 ;GET ENTRY LENGTH BEQ SUF07 ;END OF DICTIONARY BIC #-17-1,R3 ;CLEAR FLAG BITS ADD R3,(SP) ;ADDRESS OF NEXT ENTRY ADD R1,R3 ;ADDRESS OF END OF ENTRY SUF02: MOVB -(R3),R2 ;GET A CHARACTER CMP R3,R1 ;ALL DONE? BLE SUF03 ;YES,GOT IT BIC #-177-1,R2 ;MASK EXTRA FLAG BITS MOV R2,-(SP) ;SAVE DICTIONARY CHARACTER MOVB -(R0),R2 ;GET SOURCE CHARACTER JSR PC,MAPLOW ;MAP TO LOWER CASE CMP R2,(SP)+ ;DO WE HAVE A MATCH? BNE SUF01 ;NO, GO GET NEXT SUFFIX FORM BR SUF02 ;KEEP CHECKING SUF03: MOV HSTART,R0 ;GET ADDRESS OF LAST SOURCE CHAR. TST (SP)+ ;DISCARD DIRECTORY ADDRESS MOVB (R1),R3 ;GET LENGTH OF SUFFIX FORM BIC #-17-1,R3 ;MASK OFF FLAG BITS ADD R1,R3 ;AND BITB #200,(R1)+ ;LOOK FOR THE HYPHEN BNE SUF05 ;FOUND IT!! SUF04: DEC R0 ;FINE THE CMP R3,R1 ;LAST HYPHEN BLE SUF06 ;IN THE PROTOTYPE TSTB -(R3) ;AND POSITION SOURCE BPL SUF04 ;POINTER ACCORDINGLY SUF05: MOV R0,HSTART ;SET POINTER TO LAST HYPHEN DEC HSTART ;MINUS ONE BITB #100,-1(R1) ;ONLY DO HYPHEN IF VOWEL PRECEDES? BNE SUF04 ;NO, KEEP GOING JSR R5,CHECKVOW ;ANY VOWELS PRECEDING THIS CHAR? BNE SUF08 ;NO, EXIT BISB #200,(R0) ;SET THE HYPHEN MARK BR SUF04 ;AND RE-LOOP SUF06: BITB #40,-(R1) ;SHOULD WE LOOK FOR MORE TO CHOP? BEQ SUFFIX ;YES BR SUF08 ;NO, EXIT SUF07: TST (SP)+ SUF08: RTS R5 ; ;GET A SUFFIX DICTIONARY ENTRY ; UPON RETURN, R1 HAS ADDRESS OF SUFFIX ; RDSUF: MOV R0,-(SP) MOV 4(SP),R1 ;ADDRESS OF SUFF. DICT. ENTRY MOVB @R1,R0 ;GET CHARACTER IN ENTRY MOV #SUFB,R2 MOVB R0,(R2)+ ;STORE THE CHARACTER MOV R0,R3 BIC #-17-1,R3 ;GET COUNT OF CHARS. NEEDED RDS01: DEC R3 ;LOOP UNTIL COMPLETE ENTRY BLT RDS02 ; IS STORED INC R1 MOVB @R1,R0 MOVB R0,(R2)+ BR RDS01 RDS02: MOV #SUFB,R1 ;GET ADDRESS OF SUFFIX ENTRY MOV (SP)+,R0 RTS PC ;AND RETURN ; HYP4 -- DIGRAM TABLES .NLIST BIN BXH: .BYTE 060,000,040,000,040,000,000,040,000,000,040,000,040 HXX: .BYTE 006,042,041,123,021,024,063,042,002,043,021,001,022 ;A .BYTE 140,000,200,003,260,006,000,160,007,000,140,000,320 ;B .BYTE 220,000,160,005,240,010,000,100,006,000,200,000,320 ;C .BYTE 240,000,120,003,140,000,000,240,010,000,220,000,160 ;D .BYTE 042,023,041,040,040,022,043,041,030,064,021,000,041 ;E .BYTE 100,000,140,000,220,006,000,140,003,000,200,000,000 ;F .BYTE 200,000,120,002,220,010,000,160,006,000,140,000,320 ;G .BYTE 020,000,020,000,020,000,000,020,000,000,020,000,000 ;H .BYTE 043,163,065,044,022,043,104,042,061,146,061,000,007 ;I .BYTE 100,000,140,000,040,000,000,100,000,000,120,000,000 ;J .BYTE 140,000,040,011,060,004,001,120,003,000,140,000,040 ;K .BYTE 200,000,100,000,140,000,000,140,000,000,140,000,240 ;L .BYTE 200,000,140,000,160,000,000,220,000,000,140,000,240 ;M .BYTE 200,000,140,000,160,000,000,220,000,000,060,000,240 ;N .BYTE 021,043,041,121,040,023,042,003,142,042,061,001,022 ;O .BYTE 120,000,140,010,140,010,000,140,002,000,120,000,120 ;P .BYTE 000,000,000,000,360,000,000,000,000,000,160,000,000 ;Q .BYTE 100,000,040,005,120,000,000,100,000,000,060,000,140 ;R .BYTE 140,040,100,001,240,041,000,242,000,002,140,000,100 ;S .BYTE 240,000,120,002,200,000,000,320,007,000,240,000,340 ;T .BYTE 101,021,041,020,040,005,042,121,002,021,201,000,020 ;U .BYTE 160,000,100,000,140,000,000,160,006,000,220,000,140 ;V .BYTE 140,000,020,001,020,000,000,100,001,000,300,000,000 ;W .BYTE 000,000,000,000,000,000,000,000,000,000,000,000,000 ;X .BYTE 106,041,040,147,040,000,063,041,001,102,160,002,002 ;Y .BYTE 300,000,040,017,140,017,000,240,000,000,140,000,120 ;Z .LIST BIN .NLIST BIN BXXH: .BYTE 005,150,153,062,062,246,152,127,146,203,310,017,206 ;A .BYTE 100,000,120,000,140,000,000,100,000,000,120,000,060 ;B .BYTE 100,000,040,000,060,000,000,060,000,000,220,000,040 ;C .BYTE 100,000,120,000,200,000,000,100,000,000,140,000,060 ;D .BYTE 043,142,046,140,062,147,210,131,046,106,246,017,111 ;E .BYTE 060,000,020,000,060,000,000,040,000,000,100,000,000 ;F .BYTE 060,000,040,000,040,000,000,040,000,000,100,000,040 ;G .BYTE 100,000,100,000,100,000,000,040,000,000,100,000,140 ;H .BYTE 066,045,145,140,000,070,377,030,130,103,003,017,006 ;I .BYTE 040,000,040,000,020,000,000,040,000,000,100,000,000 ;J .BYTE 200,000,020,000,140,000,000,120,000,000,120,000,040 ;K .BYTE 120,000,040,000,060,000,000,060,000,000,160,000,040 ;L .BYTE 120,000,040,000,120,000,000,040,000,000,160,000,040 ;M .BYTE 120,000,020,000,140,000,000,120,000,000,140,000,040 ;N .BYTE 051,126,150,140,060,210,146,006,006,165,003,017,244 ;O .BYTE 120,000,040,000,160,000,000,140,000,000,060,000,140 ;P .BYTE 000,000,000,000,000,000,000,000,000,000,000,000,000 ;Q .BYTE 140,000,140,000,060,000,000,100,000,000,140,000,020 ;R .BYTE 120,000,020,000,060,000,000,060,000,000,060,000,040 ;S .BYTE 140,000,020,000,100,000,000,140,000,000,140,000,020 ;T .BYTE 070,125,051,162,120,105,126,104,006,044,000,017,052 ;U .BYTE 140,000,020,000,140,000,000,060,000,000,060,000,040 ;V .BYTE 020,000,000,000,020,000,000,000,000,000,000,000,060 ;W .BYTE 140,000,160,000,200,000,000,140,000,000,000,000,240 ;X .BYTE 065,042,060,200,000,210,222,146,006,204,220,012,003 ;Y .BYTE 240,000,020,000,120,000,000,200,000,000,200,000,240 ;Z .LIST BIN .NLIST BIN XHX: .BYTE 032,146,042,107,076,102,042,146,202,050,006,000,051 ;A .BYTE 036,377,057,013,057,366,377,057,001,377,057,000,040 ;B .BYTE 037,377,020,000,100,022,377,057,362,116,100,000,017 ;C .BYTE 057,377,057,031,137,363,377,037,362,270,077,000,117 ;D .BYTE 074,142,012,236,076,125,063,165,341,046,047,000,024 ;E .BYTE 020,017,075,377,040,001,377,017,001,204,020,000,040 ;F .BYTE 057,017,057,340,140,362,314,117,003,302,100,000,057 ;G .BYTE 057,357,077,017,100,366,314,057,342,346,037,000,060 ;H .BYTE 252,145,072,157,377,165,063,066,164,050,363,000,362 ;I .BYTE 000,000,020,000,020,000,000,017,000,000,020,000,000 ;J .BYTE 117,017,237,377,200,354,125,110,004,257,000,000,300 ;K .BYTE 057,367,054,357,157,216,314,114,217,353,053,000,057 ;L .BYTE 077,213,077,077,177,317,377,114,377,352,077,000,076 ;M .BYTE 077,213,077,077,157,177,377,054,377,352,117,000,075 ;N .BYTE 125,230,065,216,057,066,063,047,345,126,011,000,033 ;O .BYTE 057,377,051,360,120,361,273,056,001,256,057,000,060 ;P .BYTE 000,000,000,000,000,000,000,000,000,000,000,000,000 ;Q .BYTE 076,310,056,310,137,174,273,055,335,266,033,000,155 ;R .BYTE 077,157,057,360,057,063,042,024,077,206,020,000,040 ;S .BYTE 057,037,077,360,100,365,377,037,362,176,050,000,026 ;T .BYTE 167,146,042,112,077,110,062,254,366,052,377,000,163 ;U .BYTE 060,000,040,000,120,000,377,060,012,000,037,000,257 ;V .BYTE 037,232,157,361,040,003,125,010,001,256,000,000,340 ;W .BYTE 377,377,377,377,377,377,377,377,377,377,377,017,277 ;X .BYTE 253,315,257,216,377,206,146,306,371,126,232,000,004 ;Y .BYTE 057,012,100,360,160,360,000,040,000,017,157,000,176 ;Z .LIST BIN .NLIST BIN XXH: .BYTE 045,150,154,162,042,246,210,147,152,103,230,017,206 ;A .BYTE 100,000,040,000,140,000,000,100,000,021,120,017,060 ;B .BYTE 100,000,040,002,140,320,000,060,000,001,220,017,040 ;C .BYTE 100,001,120,001,241,000,000,100,000,020,140,017,060 ;D .BYTE 023,162,046,142,022,207,210,131,052,106,250,017,110 ;E .BYTE 060,000,042,000,160,000,000,040,000,212,100,017,000 ;F .BYTE 140,000,040,002,140,000,000,120,000,040,120,017,040 ;G .BYTE 100,000,100,000,140,001,021,140,000,046,100,017,140 ;H .BYTE 066,045,025,201,020,130,146,030,130,103,025,017,006 ;I .BYTE 100,000,040,000,020,000,000,040,000,000,200,017,000 ;J .BYTE 200,000,020,001,140,000,000,140,000,000,120,017,040 ;K .BYTE 120,026,042,020,140,161,042,143,000,022,162,017,040 ;L .BYTE 121,042,060,020,140,200,000,123,000,021,220,017,041 ;M .BYTE 121,042,060,120,140,200,000,123,000,021,160,017,041 ;N .BYTE 051,126,150,141,060,210,146,066,026,165,026,017,247 ;O .BYTE 120,000,040,003,160,000,000,140,000,021,100,017,140 ;P .BYTE 000,000,000,000,200,000,000,000,000,000,000,017,000 ;Q .BYTE 141,023,122,040,160,143,042,142,000,047,143,017,020 ;R .BYTE 120,000,040,006,140,060,000,141,000,026,100,017,040 ;S .BYTE 140,000,020,007,100,000,000,140,000,001,140,017,020 ;T .BYTE 110,125,051,162,120,125,127,104,006,104,000,017,052 ;U .BYTE 140,000,040,000,160,000,000,140,000,000,060,017,000 ;V .BYTE 040,005,020,000,040,313,231,030,000,140,000,017,056 ;W .BYTE 140,000,160,000,200,000,000,140,000,000,000,017,240 ;X .BYTE 065,042,060,040,000,206,231,146,006,224,220,017,004 ;Y .BYTE 240,000,020,000,140,000,000,220,000,000,200,017,141 ;Z .EVEN .LIST BIN ; SUFTAB - SUFFIX TABLE ;EACH TABLE ENTRY HAS AN ASSUMED LAST CHARACTER ACCORDING TO THE ;TABLE IT'S IN. THE FIRST BYTE OF THE ENTRY IS THE NUMBER OF ;CHARACTERS IN THE SUFFIX, PLUS SOME POSSIBLE FLAG BITS. IF THE ;40 BIT IS IN, IT MEANS TO DO A RECURSION AFTER LOOKING AT THIS ;SUFFIX AND CHECK THE REMAINDER OF THE WORD FOR POSSIBLE ;SUFFIX TABLE ENTRIES. ;100 BIT MEANS, I THINK, THAT YOU HYPEHNATE BEFORE THIS SUFFIX ONLY ;IF A VOWEL PRECEDES IT. ;200 ON THAT FIRST COUNT BYTE MEANS ? ;200 ON ANY CHARACTER BYTE IN THE SUFFIX MEANS INSET A HYPHEN ;BEFORE THIS CHARACTER. SUFTAB: SUFA 0 SUFC SUFD SUFE SUFF SUFG SUFH SUFI 0 SUFK SUFL SUFM SUFN 0 SUFP 0 SUFR SUFS SUFT 0 0 0 0 SUFY 0 .NLIST BIN SUFA: .BYTE 2,200+T ;-TA .BYTE 2,200+S ;-SA .BYTE 3,200+T,R ;-TRA .BYTE 3,200+D,R ;-DRA .BYTE 3,200+B,R ;-BRA .BYTE 2,200+P ;-PA .BYTE 2,200+N ;-NA .BYTE 2,200+M ;-MA .BYTE 3,200+P,L ;-PLA .BYTE 2,200+L ;-LA .BYTE 2,200+K ;-KA .BYTE 3,200+T,H ;-THA .BYTE 3,200+S,H ;-SHA .BYTE 2,200+G ;-GA .BYTE 2,200+D ;-DA .BYTE 2,200+C ;-CA .BYTE 2,200+B ;-BA .BYTE 0 .LIST BIN .NLIST BIN SUFC: .BYTE 4,E,T,200+I ;ET-IC .BYTE 7,A,L,200+I,S,200+T,I ;AL-IS-TIC .BYTE 4,S,200+T,I ;S-TIC .BYTE 4,P,200+T,I ;P-TIC .BYTE 5,200+L,Y,T,200+I ;-LYT-IC .BYTE 4,O,T,200+I ;OT-IC .BYTE 5,A,N,200+T,I ;AN-TIC .BYTE 4,N,200+T,I ;N-TIC .BYTE 4,C,200+T,I ;C-TIC .BYTE 4,A,T,200+I ;AT-IC .BYTE 4,H,200+N,I ;H-NIC .BYTE 3,N,200+I ;N-IC .BYTE 3,M,200+I ;M-IC .BYTE 4,L,200+L,I ;L-LIC .BYTE 3,L,200+I ;L-IC .BYTE 3,H,200+I ;H-IC .BYTE 3,F,200+I ;F-IC .BYTE 3,D,200+I ;D-IC .BYTE 3,200+B,I ;-BIC .BYTE 3,A,200+I ;A-IC .BYTE 3,200+M,A ;-MAC .BYTE 3,I,200+A ;I-AC .BYTE 0 .LIST BIN .NLIST BIN SUFD: .BYTE 4,200+W,O,R ;-WORD .BYTE 4,200+L,O,R ;-LORD .BYTE 4,200+F,O,R ;-FORD .BYTE 4,200+Y,A,R ;-YARD .BYTE 4,200+W,A,R ;-WARD .BYTE 5,200+G,U,A,R ;-GUARD .BYTE 4,200+T,A,R ;-TARD .BYTE 5,200+B,O,A,R ;-BOARD .BYTE 4,200+N,A,R ;-NARD .BYTE 5,200+L,I,A,R ;-LIARD .BYTE 4,200+I,A,R ;-IARD .BYTE 4,200+G,A,R ;-GARD .BYTE 4,200+B,A,R ;-BARD .BYTE 3,200+R,O ;-ROD .BYTE 4,200+W,O,O ;-WOOD .BYTE 4,200+H,O,O ;-HOOD .BYTE 4,200+M,O,N ;-MOND .BYTE 4,200+T,E,N ;-TEND .BYTE 5,200+S,T,A,N ;-STAND .BYTE 4,200+L,A,N ;-LAND .BYTE 4,200+H,A,N ;-HAND .BYTE 4,200+H,O,L ;-HOLD .BYTE 4,200+F,O,L ;-FOLD .BYTE 5,200+F,I,E,L ;-FIELD .BYTE 3,200+V,I ;-VID .BYTE 3,200+C,I ;-CID .BYTE 4,200+S,A,I ;-SAID .BYTE 4,200+M,A,I ;-MAID .BYTE 4,T,200+T,E ;T-TED .BYTE 3,T,200+E ;T-ED .BYTE 4,200+D,R,E ;-DRED .BYTE 4,200+C,R,E ;-CRED .BYTE 4,200+B,R,E ;-BRED .BYTE 5,V,200+E,L,E ;V-ELED .BYTE 100+4,A,L,200+E ;AL;ED .BYTE 140+3,200+E,E ;;EED .BYTE 40+5,E,D,200+D,E ;ED-DED .BYTE 3,200+E,A ; -EAD .BYTE 4,D,200+D,E ;D-DED .BYTE 40+4,E,D,200+E ;ED-ED .BYTE 3,D,200+E ;D-ED .BYTE 5,200+D,U,C,E ;-DUCED .BYTE 300+2,E ;E;D .BYTE 5,200+S,T,E,A ;-STEAD .BYTE 4,200+H,E,A ;-HEAD .BYTE 0 .LIST BIN .NLIST BIN SUFE: .BYTE 5,A,R,200+I,Z ;AR-IZE .BYTE 5,A,N,200+I,Z ;AN-IZE .BYTE 5,A,L,200+I,Z ;AL-IZE .BYTE 6,200+A,R,D,200+I,Z ;-ARD-IZE .BYTE 5,200+S,E,L,V ;-SELVE .BYTE 5,200+K,N,I,V ;-KNIVE .BYTE 5,200+L,I,E,V ;-LIEVE .BYTE 7,O,N,200+T,I,N,200+U ;ON-TIN-UE .BYTE 3,200+N,U ;-NUE .BYTE 3,200+D,U ;-DUE .BYTE 300+2,U ;U;E .BYTE 300+5,Q,U,A,T ; QUAT;E .BYTE 4,U,200+A,T ;U-ATE .BYTE 5,200+S,T,A,T ;-STATE .BYTE 4,200+T,A,T ;-TATE .BYTE 6,200+T,O,R,200+A,T ;-TOR-ATE .BYTE 5,E,N,200+A,T ;EN-ATE .BYTE 4,200+M,A,T ;-MATE .BYTE 5,200+H,O,U,S ;-HOUSE .BYTE 5,200+C,L,O,S ;-CLOSE .BYTE 4,I,200+O,S ;I-OSE .BYTE 4,200+W,I,S ;-WISE .BYTE 5,A,S,200+U,R ;AS-URE .BYTE 40+4,200+S,U,R ;-SURE .BYTE 6,200+F,I,G,200+U,R ;-FIG-URE .BYTE 40+3,200+T,R ;-TRE .BYTE 5,200+S,T,O,R ;-STORE .BYTE 4,200+F,O,R ;-FORE .BYTE 5,200+W,H,E,R ;-WHERE .BYTE 3,200+D,R ;-DRE .BYTE 3,200+C,R ;-CRE .BYTE 3,200+B,R ;-BRE .BYTE 5,200+S,C,O,P ;-SCOPE .BYTE 4,Y,200+O,N ;Y-ONE .BYTE 5,200+S,T,O,N ;-STONE .BYTE 5,200+P,H,O,N ;-PHONE .BYTE 4,200+G,O,N ;-GONE .BYTE 4,E,200+O,N ;E-ONE .BYTE 40+4,200+E,N,N ;-ENNE .BYTE 40+5,A,200+R,I,N ;A-RINE .BYTE 5,200+C,L,I,N ;-CLINE .BYTE 4,200+L,I,N ;-LINE .BYTE 4,200+S,O,M ;-SOME .BYTE 4,200+C,O,M ;-COME .BYTE 4,200+T,I,M ;-TIME .BYTE 3,200+Z,L ;-ZLE .BYTE 3,200+T,L ;-TLE .BYTE 3,200+S,L ;-SLE .BYTE 3,200+P,L ;-PLE .BYTE 5,200+V,I,L,L ;-VILLE .BYTE 4,C,K,200+L ;CK-LE .BYTE 3,200+K,L ;-KLE .BYTE 3,200+G,L ;-GLE .BYTE 3,200+F,L ;-FLE .BYTE 3,200+D,L ;-DLE .BYTE 3,200+C,L ;-CLE .BYTE 5,200+P,A,200+B,L ;-PA-BLE .BYTE 5,F,A,200+B,L ;FA-BLE .BYTE 5,200+C,A,200+B,L ;-CA-BLE .BYTE 4,200+A,B,L ;-ABLE .BYTE 3,200+B,L ;-BLE .BYTE 4,200+D,A,L ;-DALE .BYTE 4,200+M,A,L ;-MALE .BYTE 4,200+S,A,L ;-SALE .BYTE 4,200+L,I,K ;-LIKE .BYTE 340+5,G,200+U,A,G ;-G;UAGE .BYTE 5,200+R,I,A,G ;-RIAGE .BYTE 5,E,R,200+A,G ;ER-AGE .BYTE 4,M,200+A,G ;M-AGE .BYTE 4,K,200+A,G ;K-AGE .BYTE 4,D,200+A,G ;D-AGE .BYTE 4,200+W,I,F ;-WIFE .BYTE 5,200+K,N,I,F ;-KNYFE .BYTE 3,200+S,E ;-SEE .BYTE 4,200+F,R,E ;-FREE .BYTE 340+2,E ;EE .BYTE 4,200+W,I,D ;-WIDE .BYTE 4,200+T,I,D ;-TIDE .BYTE 4,200+S,I,D ;-SIDE .BYTE 6,200+Q,U,E,N,C ;-QUENCE .BYTE 7,200+F,L,U,200+E,N,C ;-FLU-ENCE .BYTE 40+6,E,S,200+E,N,C ;ES-ENCE .BYTE 6,E,R,200+E,N,C ;ER-ENCE .BYTE 5,I,200+E,N,C ;I-ENCE .BYTE 40+5,200+S,A,N,C ;-SANCE .BYTE 6,E,R,200+A,N,C ;ER-ANCE .BYTE 6,A,R,200+A,N,C ;AR-ANCE .BYTE 5,200+N,A,N,C ;-NANCE .BYTE 7,200+B,A,L,200+A,N,C ;-BAL-ANCE .BYTE 5,I,200+A,N,C ;I-ANCE .BYTE 7,200+J,U,S,200+T,I,C ;-JUS-TICE .BYTE 5,200+S,T,I,C ;-STICE .BYTE 5,200+P,I,E,C ;-PIECE .BYTE 5,200+P,L,A,C ;-PLACE .BYTE 340+1 ;;E .BYTE 0 .LIST BIN .NLIST BIN SUFF: .BYTE 5,200+P,R,O,O ;-PROOF .BYTE 4,200+S,E,L ;-SELF .BYTE 3,200+R,I ;-RIF .BYTE 40+4,200+L,I,E ;-LIEF .BYTE 0 .LIST BIN .NLIST BIN SUFG: .BYTE 3,200+L,O ;-LOG .BYTE 4,200+L,O,N ;-LONG .BYTE 5,T,200+T,I,N ;T-TING .BYTE 6,200+S,T,R,I,N ; -STRING .BYTE 5,R,200+R,I,N ;R-RING .BYTE 5,P,200+P,I,N ;P-PING .BYTE 5,N,200+N,I,N ;N-NING .BYTE 5,M,200+M,I,N ;M-MING .BYTE 5,L,200+L,I,N ; L-LING .BYTE 5,200+Z,L,I,N ;-ZLING .BYTE 5,200+T,L,I,N ;-TLING .BYTE 40+5,S,200+L,I,N ;S-LING .BYTE 5,R,200+L,I,N ;R-LING .BYTE 5,200+P,L,I,N ;-PLING .BYTE 6,N,200+K,L,I,N ;N-KLING .BYTE 5,K,200+L,I,N ;K-LING .BYTE 5,200+G,L,I,N ;-GLING .BYTE 5,200+F,L,I,N ;-FLING .BYTE 5,200+D,L,I,N ;-DLING .BYTE 5,200+C,L,I,N ;-CLING .BYTE 5,200+B,L,I,N ;-BLING .BYTE 6,Y,200+T,H,I,N ;Y-THING .BYTE 7,E,E,T,H,200+I,N ;EETH-ING .BYTE 6,E,200+T,H,I,N ;E-THING .BYTE 5,G,200+G,I,N ;G-GING .BYTE 5,D,200+D,I,N ;D-DING .BYTE 5,B,200+B,I,N ;B-BING .BYTE 3,200+I,N ;-ING .BYTE 0 .LIST BIN .NLIST BIN SUFH: .BYTE 5,200+M,O,U,T ;-MOUTH .BYTE 5,200+W,O,R,T ;-WORTH .BYTE 4,200+W,I,T ;-WITH .BYTE 5,T,200+T,I,S ;T-TISH .BYTE 5,E,200+T,I,S ;E-TISH .BYTE 5,P,200+P,I,S ;P-PISH .BYTE 5,R,200+N,I,S ;R-NISH .BYTE 5,N,200+N,I,S ;N-NISH .BYTE 5,200+P,L,I,S ;-PLISH .BYTE 5,200+G,U,I,S ; -GUISH .BYTE 5,200+G,L,I,S ; -GLISH .BYTE 5,B,200+L,I,S ; B-LISH .BYTE 5,G,200+G,I,S ;G-GISH .BYTE 5,D,200+D,I,S ;D-DISH .BYTE 3,200+I,S ;-ISH .BYTE 5,200+G,R,A,P ;-GRAPH .BYTE 7,200+B,O,R,200+O,U,G ;-BOR-OUGH .BYTE 5,200+B,U,R,G ;-BURGH .BYTE 4,200+V,I,C ;-VICH .BYTE 3,200+N,A ;-NAH .BYTE 3,200+L,A ;-LAH .BYTE 4,200+M,I,200+A ;-MI-AH .BYTE 0 .LIST BIN .NLIST BIN SUFI: .BYTE 3,200+T,R ;-TRI .BYTE 3,200+C,H ;-CHI .BYTE 200+3,I,F ;IF-I .BYTE 200+3,E,D ;ED-I .BYTE 0 .LIST BIN .NLIST BIN SUFK: .BYTE 4,200+W,O,R ;-WORK .BYTE 4,200+B,O,O ;-BOOK .BYTE 4,200+W,A,L ;-WALK .BYTE 5,200+C,R,A,C ;-CRACK .BYTE 4,200+B,A,C ;-BACK .BYTE 0 .LIST BIN .NLIST BIN SUFL: .BYTE 3,200+F,U ;-FUL .BYTE 5,S,200+W,E,L ;S-WELL .BYTE 4,200+T,E,L ;-TELL .BYTE 5,200+S,H,E,L ;-SHELL .BYTE 5,200+S,T,A,L ;-STALL .BYTE 4,200+B,A,L ;-BALL .BYTE 3,V,200+E ;V-EL .BYTE 3,U,200+E ;U-EL .BYTE 3,K,200+E ;K-EL .BYTE 4,T,H,200+E ;TH-EL .BYTE 5,T,C,H,200+E ;TCH-EL .BYTE 3,A,200+E ;A-EL .BYTE 140+4,200+Q,U,A ;;QUAL .BYTE 40+3,U,200+A ;U-AL .BYTE 3,200+T,A ;-TAL .BYTE 4,U,R,200+A ;UR-AL .BYTE 40+5,G,200+O,200+N,A ;G-O-NAL .BYTE 4,O,N,200+A ;ON-AL .BYTE 3,200+N,A ;-NAL .BYTE 4,200+T,I,A ;-TIAL .BYTE 4,200+S,I,A ;-SIAL .BYTE 40+5,200+T,R,I,200+A ;-TRI-AL .BYTE 4,R,I,200+A ;RI-AL .BYTE 4,200+N,I,200+A ;-NI-AL .BYTE 4,200+D,I,200+A ;-DI-AL .BYTE 4,200+C,I,A ;-CIAL .BYTE 3,200+G,A ;-GAL .BYTE 4,200+M,E,A ;-MEAL .BYTE 40+4,200+R,E,200+A ;-RE-AL .BYTE 6,C,200+T,I,200+C,A ;C-TI-CAL .BYTE 5,200+S,I,200+C,A ;-SI-CAL .BYTE 4,200+I,200+C,A ;-I-CAL .BYTE 3,200+C,A ;-CAL .BYTE 3,200+B,A ;-BAL .BYTE 0 .LIST BIN .NLIST BIN SUFM: .BYTE 3,200+N,U ;-NUM .BYTE 5,O,200+R,I,200+U ;O-RI-UM .BYTE 40+3,I,200+U ;I-UM .BYTE 40+3,E,200+U ;E-UM .BYTE 5,I,V,200+I,S ;IV-ISM .BYTE 4,200+T,I,S ;-TISM .BYTE 5,I,200+M,I,S ;I-MISM .BYTE 5,A,L,200+I,S ;AL-ISM .BYTE 40+4,E,200+I,S ;E-ISM .BYTE 40+4,A,200+I,S ;A-ISM .BYTE 4,200+R,O,O ;-ROOM .BYTE 3,200+D,O ;-DOM .BYTE 3,200+H,A ;-HAM .BYTE 0 .LIST BIN .NLIST BIN SUFN: .BYTE 4,200+T,O,W ;-TOWN .BYTE 4,200+D,O,W ;-DOWN .BYTE 4,200+T,U,R ;-TURN .BYTE 5,200+S,P,O,O ;-SPOON .BYTE 4,200+N,O,O ;-NOON .BYTE 4,200+M,O,O ;-MOON .BYTE 11,A,L,200+I,200+Z,A,200+T,I,O ;AL-I-ZA-TION .BYTE 7,200+I,200+Z,A,200+T,I,O ;-I-ZA-TION .BYTE 7,L,200+I,200+A,200+T,I,O ;L-I-A-TION .BYTE 4,200+T,I,O ;-TION .BYTE 40+5,S,200+S,I,O ;S-SION .BYTE 4,200+S,I,O ;-SION .BYTE 4,N,200+I,O ;N-ION .BYTE 4,200+G,I,O ;-GION .BYTE 4,200+C,I,O ;-CION .BYTE 3,200+C,O ;-CON .BYTE 3,200+T,O ;-TON .BYTE 3,200+S,O ;-SON .BYTE 3,200+R,I ;-RIN .BYTE 3,200+P,I ;-PIN .BYTE 3,200+N,I ;-NIN .BYTE 3,200+M,I ;-MIN .BYTE 3,200+L,I ;-LIN .BYTE 3,200+K,I ;-KIN .BYTE 5,200+S,T,E,I ;-STEIN .BYTE 4,200+T,A,I ;-TAIN .BYTE 5,G,H,T,200+E ;GHT-EN .BYTE 5,200+W,O,M,200+E ;-WOM-EN .BYTE 3,200+M,E ;-MEN .BYTE 4,O,200+K,E ;O-KEN .BYTE 3,K,200+E ;K-EN .BYTE 4,200+T,E,E ;-TEEN .BYTE 4,200+S,E,E ;-SEEN .BYTE 40+3,200+S,A ;-SAN .BYTE 5,200+W,O,M,200+A ;-WOM-AN .BYTE 3,200+M,A ;-MAN .BYTE 4,200+T,I,A ;-TIAN .BYTE 4,200+S,I,A ;-SIAN .BYTE 40+4,E,200+I,A ;E-IAN .BYTE 4,200+C,I,A ;-CIAN .BYTE 300+3,I,A ;IA;N .BYTE 40+3,E,200+A ;E-AN .BYTE 0 .LIST BIN .NLIST BIN SUFP: .BYTE 2,200+U ;-UP .BYTE 4,200+S,H,I ;-SHIP .BYTE 4,200+K,E,E ;-KEEP .BYTE 0 .NLIST BIN .NLIST BIN SUFR: .BYTE 4,200+Z,A,R ;-ZARR .BYTE 300+2,R ;R;R .BYTE 3,200+T,O ;-TOR .BYTE 40+3,200+S,O ;-SOR .BYTE 40+4,200+R,I,200+O ;-RI-OR .BYTE 4,I,Z,200+E ;IZ-ER .BYTE 5,200+C,O,V,200+E ;-COV-ER .BYTE 4,O,200+V,E ;O-VER .BYTE 40+5,U,S,200+T,E ;US-TER .BYTE 5,O,S,T,200+E ;OST-ER .BYTE 40+5,I,S,200+T,E ;IS-TER .BYTE 40+5,E,S,200+T,E ;ES-TER .BYTE 40+5,A,S,200+T,E ;AS-TER .BYTE 4,200+S,T,E ;-STER .BYTE 5,A,R,200+T,E ;AR-TER .BYTE 4,R,T,200+E ;RT-ER .BYTE 40+5,M,200+E,200+T,E ;M-E-TER .BYTE 5,200+W,A,200+T,E ;-WA-TER .BYTE 3,R,200+E ;R-ER .BYTE 4,O,P,200+E ;OP-ER .BYTE 5,200+P,A,200+P,E ;-PA-PER .BYTE 4,W,N,200+E ;WN-ER .BYTE 40+4,S,200+N,E ;S-NER .BYTE 4,O,N,200+E ;ON-ER .BYTE 4,R,M,200+E ;RM-ER .BYTE 4,L,L,200+E ;LL-ER .BYTE 5,D,200+D,L,E ;D-DLER .BYTE 4,200+B,L,E ;-BLER .BYTE 3,K,200+E ;K-ER .BYTE 5,N,200+T,H,E ;N-THER .BYTE 6,200+F,A,200+T,H,E ;-FA-THER .BYTE 6,E,I,200+T,H,E ;EI-THER .BYTE 4,T,H,200+E ;TH-ER .BYTE 4,S,H,200+E ;SH-ER .BYTE 4,200+P,H,E ;-PHER .BYTE 4,C,H,200+E ;CH-ER .BYTE 4,D,G,200+E ;DG-ER .BYTE 4,R,D,200+E ;RD-ER .BYTE 6,O,U,N,D,200+E ;OUND-ER .BYTE 4,L,D,200+E ;LD-ER .BYTE 4,I,D,200+E ;ID-ER .BYTE 5,200+D,U,C,200+E ;-DUC-ER .BYTE 4,N,C,200+E ;NC-ER .BYTE 100+2, 200+E ; ;ER .BYTE 3,200+S,A ;-SAR .BYTE 40+6,A,C,200+U,200+L,A ;AC-U-LAR .BYTE 40+6,E,C,200+U,200+L,A ;EC-U-LAR .BYTE 40+6,I,C,200+U,200+L,A ;IC-U-LAR .BYTE 40+6,E,G,200+U,200+L,A ;EG-U-LAR .BYTE 0 .LIST BIN .NLIST BIN SUFS: .BYTE 40+4,U,200+O,U ;U-OUS .BYTE 5,200+T,I,O,U ;-TIOUS .BYTE 5,200+G,I,O,U ;-GIOUS .BYTE 5,200+C,I,O,U ;-CIOUS .BYTE 40+4,I,200+O,U ;I-OUS .BYTE 5,200+G,E,O,U ;-GEOUS .BYTE 5,200+C,E,O,U ;-CEOUS .BYTE 4,E,200+O,U ;E-OUS .BYTE 140+2,200+U ;;US .BYTE 4,200+N,E,S ;-NESS .BYTE 4,200+L,E,S ;-LESS .BYTE 140+2,200+S ;;SS .BYTE 40+5,P,200+O,200+L,I ;P-O-LIS .BYTE 140+2,200+I ;;IS .BYTE 100+3,200+X,E ;X;ES .BYTE 100+3,200+S,E ;S;ES .BYTE 100+4,S,H,200+E ;SH;ES .BYTE 100+4,C,H,200+E ;CH;ES .BYTE 300+1 ;;S .BYTE 0 .LIST BIN .NLIST BIN SUFT: .BYTE 6,I,O,N,200+I,S ;ION-IST .BYTE 5,I,N,200+I,S ;IN-IST .BYTE 5,A,L,200+I,S ;AL-IST .BYTE 6,L,200+O,200+G,I,S ;L-O-GIST .BYTE 5,H,T,200+E,S ;HT-EST .BYTE 4,I,200+E,S ;I-EST .BYTE 5,G,200+G,E,S ;G-GEST .BYTE 4,G,200+E,S ;G-EST .BYTE 5,D,200+D,E,S ;D-DEST .BYTE 4,D,200+E,S ;D-EST .BYTE 4,200+C,A,S ;-CAST .BYTE 5,200+H,E,A,R ;-HEART .BYTE 4,200+F,O,O ;-FOOT .BYTE 3,I,200+O ;I-OT .BYTE 5,200+F,R,O,N ;-FRONT .BYTE 5,200+P,R,I,N ;-PRINT .BYTE 4,200+M,E,N ;-MENT .BYTE 5,200+C,I,E,N ;-CIENT .BYTE 4,I,200+A,N ;I-ANT .BYTE 6,200+W,R,I,G,H ;-WRIGHT .BYTE 6,200+B,R,I,G,H ;-BRIGHT .BYTE 6,200+F,L,I,G,H ;-FLIGHT .BYTE 6,200+W,E,I,G,H ;-WEIGHT .BYTE 5,200+S,H,I,F ;-SHIFT .BYTE 5,200+C,R,A,F ;-CRAFT .BYTE 40+4,D,G,200+E ;DG-ET .BYTE 4,200+G,O,A ;-GOAT .BYTE 4,200+C,O,A ;-COAT .BYTE 4,200+B,O,A ;-BOAT .BYTE 4,200+O,I,N ;-OINT .BYTE 4,200+W,H,A ;-WHAT .BYTE 0 .LIST BIN .NLIST BIN SUFY: .BYTE 40+4,E,S,200+T ;ES-TY .BYTE 3,S,T ;STY .BYTE 40+5,Q,U,I,200+T ;QUI-TY .BYTE 4,200+T,I,200+T ;-TI-TY .BYTE 40+5,O,S,200+I,200+T ;OS-I-TY .BYTE 4,200+S,I,200+T ;-SI-TY .BYTE 5,I,N,200+I,200+T ;IN-I-TY .BYTE 4,N,I,200+T ;NI-TY .BYTE 40+10,F,A,200+B,I,L,200+I,200+T ;FA-BIL-I-TY .BYTE 10,200+C,A,200+B,I,L,200+I,200+T ;-CA-BIL-I-TY .BYTE 10,200+P,A,200+B,I,L,200+I,200+T ;-PA-BIL-I-TY .BYTE 6,200+B,I,L,200+I,200+T ;-BIL-I-TY .BYTE 3,I,200+T ;I-TY .BYTE 4,200+B,U,R ;-BUR-Y .BYTE 4,200+T,O,200+R ;-TO-RY .BYTE 5,200+Q,U,A,R ;-QUAR-Y .BYTE 40+4,U,200+A,R ;U-ARY .BYTE 7,200+M,E,N,200+T,A,200+R ;-MEN-TA-RY .BYTE 6,I,O,N,200+A,R ;ION-ARY .BYTE 4,I,200+A,R ;I-ARY .BYTE 4,N,200+O,200+M ;N-O-MY .BYTE 3,200+P,L ;-PLY .BYTE 4,G,200+G,L ;G-GLY .BYTE 5,200+P,A,200+B,L ;-PA-BLY .BYTE 5,F,A,200+B,L ;FA-BLY .BYTE 5,200+C,A,200+B,L ;-CA-BLY .BYTE 4,200+A,B,L ;-ABLY .BYTE 3,200+B,L ;-BLY .BYTE 2,200+L ;-LY .BYTE 3,200+S,K ;-SKY .BYTE 40+6,G,200+R,A,200+P,H ;G-RA-PHY .BYTE 4,L,200+O,200+G ;L-O-GY .BYTE 2,200+F ;-FY .BYTE 3,200+N,E ;-NEY .BYTE 3,200+L,E ;-LEY .BYTE 4,C,K,200+E ;CK-EY .BYTE 3,200+K,E ;-KEY .BYTE 4,200+B,O,D ;-BODY .BYTE 340+4,E,E,D ;EEDY .BYTE 2,200+B ;-BY .BYTE 3,200+W,A ;-WAY .BYTE 3,200+D,A ;-DAY .BYTE 0 .EVEN .LIST BIN .END