.TITLE HYPHEN .IDENT /BL05/ ; ; ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ; THIS SOFTWARE. ; ; ; AUTHOR: L. WADE 1-JUN-72 ; ; MODIFIED BY: ; ; E. POLLACK U. OF W. 19-DEC-73 ; ; D. N. CUTLER 27-JUL-75 ; ; ; J. CLEMENT July 1983 ; 1. Use tables to define characters ; 2. Assume input is all lower case ; 3. Remove self modifying code ; 4. Define PSECTS ; 5. Rewrite for efficiency with no infinite loops ; 6. Add differential test ; 7. Add double letter test ; 8. Add prefix table ; 9. Check against HYPTST.TST for commonly used words ; ; ; HYPHENATION ROUTINE ; ; This routine was adapted from the bell telephone labs ; hyphenation algorithm. ; ; ; CHARACTER VALUES ; .IF DF H$$PHN A= 1 ; 1 B= 2 ; 2 C= 3 ; 3 D= 4 ; 4 E= 5 ; 5 F= 6 ; 6 G= 7 ; 7 H=10 ; 8 I=11 ; 9 J=12 ;10 K=13 ; 11 L=14 ; 12 M=15 ; 13 N=16 ; 14 O=17 ; 15 P=20 ; 16 Q=21 ; 17 R=22 ; 18 S=23 ; 19 T=24 ;20 U=25 ; 21 V=26 ; 22 W=27 ; 23 X=30 ; 24 Y=31 ; 25 Z=32 ;26 .psect VARS,RW,D,LCL,OVR THRESH: .word 224. ; Threshold for hyphenation DIPTHR: .word 512. ; Threshold for double vowels DIFTHR: .word 15. ; Differential threshold 8.=MAX=2*base (3.75) .PSECT $TEMP,RW,D,GBL,OVR Count: .BLKW 1 ; Number of characters to test MQ: .BLKW 1 ; Hyphenation probability ? MAXDIG: .BLKW 1 ; " maximum BASDIG: .BLKW 1 ; Next max hyphenation probability HSTART: .BLKW 1 ; Current last char in word NHSTART:.BLKW 1 ; Last hyphen point NHYPH: .BLKW 1 ; Number of hyphens added MAXCHR: .BLKW 1 ; Maximum char to hyphenate MINCHR: .BLKW 1 ; Minimum char to hyphenate WORDF: .BLKW 1 ; First char in word WORDL: .BLKW 1 ; Last char in word .PSECT $CODE,RO,LCL,CON,I ; ; MAIN HYPHENATION ROUTINE. Upon entry, r0 contains ; the address of a string of words, terminated by a ; zero byte, which are to be hyphenated. ; The string must be preceeded by a zero byte. ; The words must be in lower case. ; ; The hyphenated characters have 200 added to them. ; R0=number of hyphenations when return to caller. ; All other registers are destroyed ; HYPTST:: TST (R5)+ MOV (R5)+,R0 ; Fortran entry MOV @(R5)+,HYPLO MOV @(R5)+,HYPHI MOVB @(R5)+,HYPOP MOV @(R5)+,HYPSZ MOV @(R5)+,THRESH ; Threshold of hyp MOV @(R5)+,DIFTHR ; Threshold of hyp MOV @(R5)+,DIPTHR ; Threshold of hyp HYPHEN:: CLR NHYPH 1$: MOVB (R0)+,R1 ; Get char BEQ 30$ CMPB GCTABL(R1),#GC.LC ; Alphabetic char ? BNE 1$ ; no ? DEC R0 ; Points to first char MOV R0,WORDF MOV R0,MINCHR ; Minimum char to hyphenate ADD HYPLO,MINCHR ; Add minimum to skip MOV R0,R3 ; SAVE STARTING ADDRESS OF STRING 10$: MOVB (R0)+,R1 ; Current char CMPB GCTABL(R1),#GC.LC ; Alphabetic char ? BEQ 10$ ; Yes ? DEC R0 SUB R0,R3 ; -number of chars MOV R0,MAXCHR ; Maximum char to hyphenate SUB HYPHI,MAXCHR ; Subtract off trailing deletion DEC R0 ; Point to last character in word MOV R0,WORDL ; Point to last char in word MOV R0,HSTART ; SAVE POINTER CMP R3,HYPSZ ; Check if enough chars for hyphenation BGT 20$ ; no ? CMP MAXCHR,MINCHR ; Check if possible BLO 20$ ; No ? CALL FNDSYL ; Any syllables ? BNE 20$ ; None ? TSTB HYPOP ; Skip suffix BLT 17$ ; Yes ? CALL SUFFIX ; GO GET THE SUFFIX FORMS ALLOWED CALL PREFIX ; Prefix routine 17$: TSTB HYPOP ; Skip DIGRAM ? BGT 20$ ; Yes ? CMP MAXCHR,MINCHR ; Check if possible BLO 20$ ; No ? CALL DIGRAM ; Do calculated hyphenation 20$: MOV WORDL,R0 ; Next word !! INC R0 ; Points to char after last word BR 1$ 30$: MOV NHYPH,R0 ; Hyphenation count RETURN ; RETURN TO CALLER ; ; CHECK TO SEE IF ANY VOWELS PRECEDE THE CURRENT CHARACTER ; POSITION ; R0 is destroyed ; R1 points to the vowel ; Z is set if vowel found ; FNDVOW: MOV R5,R0 ; Get current pointer 1$: MOVB -(R0),R1 ; get next char BIC #^C<177>,R1 ; Clear extra bits CMPNEB GCTABL(R1),#GC.LC,20$ ; Not alpha char? 10$: BITNEB CHTABL(R1),#CH.VOW,30$ ; vowel? TSTB (R0) ; Check if already hyphenated BGT 1$ ; Not hyphenated ? 20$: RETURN ; No vowel 30$: SEZ ; Found vowel RETURN ; ; Find a valid syllable ; R5=first vowel ; R0=second vowel ; FNDSYL: MOV HSTART,R5 INC R5 ; include Hstart in search CALL FNDVOW ; Find vowel BNE 10$ ; None ? TSTB (R0) ; Check for hyphen BLT 10$ ; Hyphenated already ? MOV R0,R5 ; CMP R5,MINCHR ; see if too low BLO 10$ ; Lower than min ? CALL FNDVOW ; Find second vowel 10$: RETURN ; ; Calculate the hyphenation using rules + probability table ; DIGRAM: CLR MAXDIG ; Clear max CLR BASDIG ; And base CALL FNDSYL ; Find if syllable available BNE 50$ ; No syllable ? MOV R5,HSTART MOV R5,R1 SUB R0,R1 ; Number of chars to check ; ; Handle Vowel,X1,X2,vowel where X1=X2 ; CMPNE R1,#3,5$ ; Not vowel,X1,X2,vowel ? CMPNEB -1(R5),-2(R5),5$ ; Not X1=X2 ? DEC R5 ; Point to X2 BR 45$ ; Hyphenate it 5$: .IFDF $DIGR MOV R1,COUNT ; Save number of chars DEC R1 BEQ 10$ ; Not possible dipthong ? INC BASDIG ; ; Calculate MQ for each char in syllable ; 10$: MOV HSTART,R5 ; Get char to check CALL DIG04 ; Get probability this char MOV MQ,R1 ; Get MQ CMP R1,MAXDIG ; MQ greater ? BLOS 15$ ; No, try next char MOV HSTART,NHSTART ; Save maximum MQ and positoton MOV MAXDIG,R0 ; Save current MAX MOV R1,MAXDIG ; New MAX MOV R0,R1 ; Save previous MAX 15$: CMP R1,BASDIG ; Greater than base BLOS 20$ ; No ? MOV R1,BASDIG ; New base 20$: DEC HSTART DEC COUNT ; done ? BGT 10$ ; No ; ; Differential probability test ; TSTEQ BASDIG,30$ ; NO base ? .ifdf $EIS MOV MAXDIG,R1 ; Maximum prob. ASL R1 ; Multiply it by 2 ASL R1 ; Multiply it by 2 clr R0 DIV BASDIG,R0 ; Divide by nearby probability .iff MOV MAXDIG,R0 ; Maximum prob. ASL R0 ; Multiply it by 2 ASL R0 ; Multiply it by 2 MOV BASDIG,R1 ; Base CALL $DIV .endc CMP R0,DIFTHR ; Is MAX > N*base ? BLO DIGRAM ; No ? ; ; Test absulute probability ; CMP MAXDIG,THRESH ; Probability big enough BLO DIGRAM BR 40$ ; Do the hyp. 30$: CMP MAXDIG,DIPTHR ; Check base threshold BLO DIGRAM ; Not big enough ? 40$: MOV NHSTART,R5 ; Char to hyphenate .iff SUB R1,HSTART ; Adjust starting point BR DIGRAM .endc 45$: MOV R5,HSTART ; char hyphenated DEC HSTART ; Next char to check CMP R5,MINCHR ; see if too low BLO 50$ ; Lower than min ? CMP R5,MAXCHR ; CHar too near end ? BHI DIGRAM ; Yes ? BISB #200,(R5) ; Perform the hyphenation INC NHYPH ; Count number of hyphens BR DIGRAM ; Parse next vowel 50$: RETURN .IFDF $DIGR ; ; Subroutine to find MQ ; R5 points to hyphenation point ; DIG04: CLR MQ ADD #2,R5 CMP R5,WORDL ; check end of word BHIS 50$ ; Past end of word? SUB #4,R5 MOV #XXH,R4 CMP R5,WORDF ; Check beginning of word BLO 50$ ; Before it ? BNE 20$ ; Not beginning ? MOV #BXXH,R4 ; It is beginning of word 20$: MOV #1,MQ ; Initialize probability CALL DILOOK ; Parse XX in BXXH or XXH BEQ 50$ ; Done ? CMPNE R1,#17,40$ ; High probability ? MOV #3375.,MQ ; Set it to max BR 50$ 40$: MOV #XHX,R4 ; Parse XHX CALL DILOOK BEQ 50$ ; Done ? CMPEQ R5,WORDL,50$ ; at end of word ? MOV #HXX,R4 CALL DILOOK 50$: RETURN ; ; Finds the probability of hyphenation ; R1,R2 are the 2 chars to check ; R4 is the table to use ; R0,R1,R2 are destroyed ; MQ is updated ; DILOOK: MOVB (R5)+,R1 ; first letter BIC #^C<37>,R1 DEC R1 MOVB (R5),R2 ; second letter BIC #^C<37>,R2 ; Mask off extra bits DEC R2 .ifdf $EIS MUL #26.,R1 .iff MOV #26.,R0 ; R1 is 2'nd table index CALL $MUL ; Multiply by number of letters .endc ADD R2,R1 ; Now is table index 0 to 675 ASR R1 ; Get low order bit in C (0 to 337) BCC 10$ ; Hi order bits needed ? ADD R4,R1 ; Add on table address MOVB (R1)+,R0 ; Get necessary bits BR 20$ ; And use them 10$: ADD R4,R1 ; Add on table address MOVB (R1)+,R0 ; Get necessary bits .ifdf $EIS ASH #-4,R0 ; Shift to right 4 places .iff ASR R0 ; Shift down hi order 4 bits ASR R0 ; Shift down hi order 4 bits ASR R0 ; Shift down hi order 4 bits ASR R0 ; Shift down hi order 4 bits .endc 20$: BIC #^C<17>,R0 ; Get the 4 bits MOV MQ,R1 ; Multiply by current MQ .ifdf $EIS MUL R0,R1 .iff CALL $MUL ; Multiply by number of letters .endc MOV R1,MQ ; Save new MQ RETURN .endc ; End of digram ; ; MARK ANY LEGAL SUFFIX FORMS IN THE PROTOTYPE AND RETURN ; R4 points to suffix table ; R3 is loop counter ; R2 is flags byte or end of syllable ; R1 temporarily points to suffix table ; SUFFIX: MOV HSTART,R2 ; GET POINTER TO LAST CHAR. MOVB (R2),R0 ; GET CHARACTER TO CHECK BIC #^C<37>,R0 ; Get suffix entry ASL R0 ; CONVERT TO syllable INDEX MOV SUFTAB-2(R0),R4 ; Get address of suffix dictionary BEQ 100$ ; EXIT IF NO DICTIONARY ENTRY CMP R2,MINCHR ; Char too near beginning ? BLO 100$ ; Yes ? 5$: MOV R2,R5 ; Get last char MOVB (R4),R3 ; GET ENTRY LENGTH BIC #^C<17>,R3 ; CLEAR FLAG BITS BEQ 100$ ; END OF DICTIONARY BITEQB #20,(R4),7$ ; Not skip ? ADD R3,R4 MOV R4,R1 MOVB (R4),R0 ; Get offset BIC #^C<377>,R0 ; Clear extra bits ADD R0,R4 BR 12$ ; New address 7$: ADD R3,R4 ; ADDRESS OF END OF ENTRY MOV R4,R1 ; And save for next entry BR 12$ 10$: MOVB -(R1),R0 ; GET A CHARACTER BIC #^C<37>,R0 ; MASK EXTRA FLAG BITS BIS #140,R0 ; Make it lower case CMPNEB R0,-(R5),5$ ; No match ? 12$: SOB R3,10$ ; Continue till done ; ; Found suffix Now do hyphenation ; MOV R2,R5 ; End of syllable MOVB -(R1),R2 ; Get flags MOV R2,R3 ; Set up pointer to suffix BIC #^C<17>,R3 BITEQB #20,R2,15$ ; Not skip ?? MOV R1,R4 ; Current suffix entry ADD R3,R4 ; Next INC R4 ; +1 to skip count MOV R5,R2 ; End of syllable SUB R3,R2 INC R2 ; Skip over extra bytes BR 5$ 15$: CMPNEB R2,#41,16$ ; Not final E CMPNE HSTART,WORDL,100$ ; Not at end of word ? DEC HSTART BR SUFFIX ; Continue 16$: MOV R5,HSTART DEC HSTART BITNEB #200,R2,30$ ; Hyphen at end ? BR 40$ ; No ! ; ; Found suffix, now look for hyphens ; 20$: DEC R5 ; Next char in syllable TSTB -(R4) ; Test for hyphen BGT 40$ ; None ? 30$: MOV R5,HSTART ; Save hyphenation address DEC HSTART ; Next char to test BITNEB #100,R2,50$ ; Done ? CALL FNDVOW ; ANY VOWELS PRECEDING THIS CHAR? BNE 100$ ; NO, EXIT CMP R5,MINCHR ; Char too near beginning ? BLO 100$ ; Yes ? CMP R5,MAXCHR ; CHar too near end ? BHI 40$ ; Yes ? BISB #200,(R5) ; SET THE HYPHEN MARK INC NHYPH ; Count number of hyphens 40$: SOB R3,20$ ; Continue till done 50$: CMPEQ #40,R2,SUFFIX ; Not terminated ? 100$: RETURN ; ; Routine to find prefix forms ; Uppercase char has traling hyphen ; Lowercase char has no hyphen ; 200 = marks beginning of word ; 100 = marks char in front of hyphenation ; zero=end of dict ; PREFIX: CALL FNDSYL ; Any syllables ? BNE 100$ ; None ? MOV WORDF,R5 ; Pointer to first char. 1$: MOV #PRETAB,R3 ; Prefix table 10$: MOVB (R3)+,R0 ; Table char BGT 10$ ; Not at beginning of string ? MOV R5,R2 ; Word to search MOV R3,R4 ; TAble BR 25$ 20$: MOVB (R3)+,R0 ; Table char BLT 50$ ; End of entry ? 25$: BIC #^C<37>,R0 ; MASK EXTRA FLAG BITS BEQ 100$ ; End of table ? BIS #140,R0 ; Make it lower case MOVB (R2)+,R1 ; Get char to check BIC #^C<177>,R1 ; Strip hyphenation marks CMPEQB R0,R1,20$ ; match ? BR 10$ ; ; Found prefix Now do hyphenation ; 50$: MOVB (R4)+,R0 ; Get 1 char INC R5 60$: INC R5 BITEQB #100,R0,80$ ; No hyphenation ? CMP R5,MINCHR ; Char too near beginning ? BLO 80$ ; Yes ? CMP R5,MAXCHR ; CHar too near end ? BHI 90$ ; Yes ? MOV R5,R0 70$: MOVB (R0)+,R1 ; Next char BLT 90$ ; Already hyphenated ? BIC #^C<177>,R1 ; Clear extra bits CMPNEB GCTABL(R1),#GC.LC,90$ ; Not alpha char? BITEQB CHTABL(R1),#CH.VOW,70$ ; Not vowel? BISB #200,(R5) ; SET THE HYPHEN MARK INC NHYPH ; Count number of hyphens 80$: MOVB (R4)+,R0 ; Get 1 char BGT 60$ ; Done ? 90$: MOV R5,MINCHR ; New minimum 100$: RETURN .PSECT HYPTAB,RO,D,LCL,CON .NLIST BIN .IFDF $DIGR ; ; HYP4 -- DIGRAM TABLES ; ; Table for begin,letter,hypenation ; ;;BXH: ;BYTE 060,000,040,000,040,000,000,040,000,000,040,000,040 ; a b c d e f g h i j k l m n o p q r s t u v w x y z ; ; Begin,letter,letter,hyphen ; BXXH: ; second letter vvvvvv ;first ; a b c d e f g h i j k l m n o p q r s t u v w x y z .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 ; a b c d e f g h i j k l m n o p q r s t u v w x y z ; ; letter,letter,hyphen ; XXH: ; a b c d e f g h i j k l m n o p q r s t u v w x y z .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 ; a b c d e f g h i j k l m n o p q r s t u v w x y z ; ; letter,hyphen,letter ; XHX: ; a b c d e f g h i j k l m n o p q r s t u v w x y z .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 ; a b c d e f g h i j k l m n o p q r s t u v w x y z ; ; Hyphen,letter,letter ; HXX: ; a b c d e f g h i j k l m n o p q r s t u v w x y z .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 ; a b c d e f g h i j k l m n o p q r s t u v w x y z .ENDC ; ; Prefix - Prefix table ; ; PRETAB: ; .byte 200+A,N+100,T,I,P,H ; .BYTE 200+A,N+100,T,I+100 ; AN-TI- .byte 200+B,U,S,I+100 ; BUSI- .byte 200+C,H,A,N,G,E+100 ; CHANGE- .byte 200+C,I,R+100,C,U,M+100 ; CIR-CUM- .byte 200+C,O,N,E ; CONE .byte 200+C,O,N+100 ; CON- .byte 200+C,O,U,N+100,T,E,R+100 ; COUN-TER- .byte 200+D,I,S,H+100,C ; DISh-c .byte 200+D,I+100,S,U,L ; DI-Sul .byte 200+D,I,S+100 ; DIS- .byte 200+H,Y+100,D,R,O+100 ; HY-DRO- .byte 200+H,Y+100,P,E,R+100 ; HY-PER- .byte 200+I,N+100,T,E,R+100 ; IN-TER- .byte 200+I,S,O+100 ; ISO- .byte 200+M,E,A,N+100 ; MEAN- .byte 200+M,E,A,S+100,U,R ; MEAS-UR .byte 200+M,O+100,D,A,L+100,I+100 ; MO-DAL-I- .byte 200+M,O+100,D,E,R+100,N,I+100 ; MO-DER-NI- .byte 200+M,O,D+100 ; MOD- .byte 200+M,U,L+100,T,I+100 ; MUL-TI- .byte 200+O,U,T+100 ; OUT- .byte 200+O+100,V,E,R+100 ; O-VER- .byte 200+P,O,L,Y+100 ; POLY- .byte 200+P,R,E,S+100,B ; PREs-b .byte 200+P,R,E,S,E,N,T ; PRESENT .byte 200+P,R,E,S+100,I+100,D,E,N ; PRES-I-DEN .byte 200+P,R,E,S+100,S ; PRES-S .byte 200+P,R,E,S+100,T ; PRES-T .byte 200+P,R,E,T+100,T ; PRET-T .byte 200+P,R,E+100 ; PRE- .byte 200+Q,U,A,D+100 ; QUAD- .byte 200+R,U,N+100 ; RUN- .byte 200+S,E,M,I+100 ; SEMI- .byte 200+S,T,A,T,E+100 ; STATE- .byte 200+S,U+100,B,E,R+100 ; SU-BER- .byte 200+S,U,B+100 ; SUB- .byte 200+S,U+100,P,E+100,R,I+100,O ; SU-PE-RI-O .byte 200+S,U+100,P,E,R+100 ; SU-PER- .byte 200+S,Y,L+100 ; SYL- .byte 200+S,Y,M,P+100,T ; SYMP-T .byte 200+S,Y,M+100 ; SYM- .byte 200+S,Y,N+100 ; SYN- .byte 200+S,Y,S+100 ; SYS- .byte 200+U,L+100,T,R,A+100 ; UL-TRA- .byte 200+U,N+100,D,E,R+100 ; UN-DER- .byte 200+U,N+100,I,M ; UN-IM .byte 200+U,N+100,I,O ; UN-IO .byte 200+U+100,N,I,Q ; U-NIQ .byte 200+U+100,N,I,T ; U-NIT .byte 200+U,N,I+100 ; UNI- .byte 200+U,N+100 ; UN- .byte 200+W,H,A,T+100 ; WHAT- .byte 200 ; End of table .EVEN ; SUFTAB - SUFFIX TABLE ; ; Each suffix is coded as follows ; byte 0 N + options ; N=number of bytes N=1 to 15 ; N=0 terminates table ; ; ; OPtions ; 20 = Marks subtable ; 40 = This suffix terminates search ; 100 = Hyphenation is skipped, it only marks letters to skip ; 200 = This suffix has hyphen at end ; ; N-1 chars follow A + options ; A=1-26. (letter A to Z) ; options: ; 200 = char preceeded by hyphen ; ; Entries are in reverse alphabetical order ; 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 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 SUFC: .byte 2+20,I,20$-. ; =IC .BYTE 4+200,200+L,Y,T ; -LYT-IC .BYTE 6+200,A,L,200+I,S,200+T ; AL-IS-TIC .BYTE 3,S,200+T ; S-TIC .BYTE 3,P,200+T ; P-TIC .BYTE 3+200,O,T ; OT-IC .BYTE 4,A,N,200+T ; AN-TIC .BYTE 3,N,200+T ; N-TIC .BYTE 3+200,E,T ; ET-IC .BYTE 3,C,200+T ; C-TIC .BYTE 3+200,A,T ; AT-IC .BYTE 3,H,200+N ; H-NIC .BYTE 2+200,N ; N-IC .BYTE 2+200,M ; M-IC .BYTE 3,L,200+L ; L-LIC .BYTE 2+200,L ; L-IC .BYTE 2+200,H ; H-IC .byte 3,F,F+200 ; F-FIC .BYTE 2+200,F ; F-IC .BYTE 2+200,D ; D-IC .BYTE 2,200+B ; -BIC .BYTE 2+200,A ; A-IC .byte 0 20$: .BYTE 3,200+M,A ; -MAC .BYTE 3,I,200+A ; I-AC .BYTE 0 SUFD: .byte 2+20,R,10$-. ; =RD .BYTE 3,200+W,O ; -WORD .BYTE 3,200+L,O ; -LORD .BYTE 3,200+F,O ; -FORD .byte 2+20,A,5$-. ; =ARD .BYTE 2,200+Y ; -YARD .BYTE 2,200+W ; -WARD .BYTE 3,200+G,U ; -GUARD .BYTE 2,200+T ; -TARD .BYTE 3,200+B,O ; -BOARD .BYTE 2,200+N ; -NARD .BYTE 3,200+L,I ; -LIARD .BYTE 2,200+I ; -IARD .BYTE 2,200+G ; -GARD .BYTE 2,200+B ; -BARD 5$: .byte 0 10$: .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 2+20,E,30$-. ; =ed .BYTE 3,T,200+T ; T-TED .BYTE 2+200,T ; T-ED .BYTE 3,200+D,R ; -DRED .BYTE 3,200+C,R ; -CRED .BYTE 3,200+B,R ; -BRED .BYTE 4,V,200+E,L ; V-ELED ; .BYTE 100+3,A,L ; AL;ED .BYTE 140+2,200+E ; ;EED .BYTE 40+4,E,D,200+D ; ED-DED .BYTE 240+3,E,D ; ED-ED .BYTE 3,D,200+D ; D-DED .BYTE 2+200,D ; D-ED .BYTE 4,200+D,U,C ; -DUCED .BYTE 1 ; ;ED 30$: .BYTE 5,200+S,T,E,A ; -STEAD .BYTE 4,200+H,E,A ; -HEAD .BYTE 3,200+E,A ; -EAD .BYTE 0 SUFE: .byte 3+20,I,Z,10$-. ; =IZE .BYTE 3+200,A,R ; AR-IZE .BYTE 3+200,A,N ; AN-IZE .BYTE 3+200,A,L ; AL-IZE .BYTE 4+200,200+A,R,D ; -ARD-IZE .byte 41 10$: .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 100+2,U ; U;E .BYTE 100+5,Q,U,A,T ; QUAT;E .byte 3+20,A,T,20$-. ; =ATE .BYTE 2+200,U ; U-ATE .BYTE 3,200+S,T ; -STATE .BYTE 2,200+T ; -TATE .BYTE 4+200,200+T,O,R ; -TOR-ATE .BYTE 3+200,E,N ; EN-ATE .BYTE 2,200+M ; -MATE .byte 41 20$: .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 2+20,R,40$-. ; =RE .BYTE 4,A,S,200+U ; AS-URE .BYTE 40+3,200+S,U ; -SURE .BYTE 5,200+F,I,G,200+U ; -FIG-URE .BYTE 40+2,200+T ; -TRE .BYTE 4,200+S,T,O ; -STORE .BYTE 3,200+F,O ; -FORE .BYTE 4,200+W,H,E ; -WHERE .BYTE 2,200+D ; -DRE .BYTE 2,200+C ; -CRE .BYTE 2,200+B ; -BRE .byte 41 40$: .BYTE 5,200+S,C,O,P ; -SCOPE .byte 2+20,N,50$-. ; =NE .BYTE 3,Y,200+O ; Y-ONE .BYTE 4,200+S,T,O ; -STONE .BYTE 4,200+P,H,O ; -PHONE .BYTE 3,200+G,O ; -GONE .BYTE 3,E,200+O ; E-ONE .BYTE 40+3,200+E,N ; -ENNE .BYTE 40+4,A,200+R,I ; A-RINE .BYTE 4,200+C,L,I ; -CLINE .BYTE 3,200+L,I ; -LINE .byte 41 50$: .BYTE 4,200+S,O,M ; -SOME .BYTE 4,200+C,O,M ; -COME .BYTE 4,200+T,I,M ; -TIME .byte 2+20,L,60$-. ; =LE .BYTE 2,200+Z ; -ZLE .BYTE 5,200+M,O,D,200+U ;-MOD-ULE .BYTE 2,200+T ; -TLE .BYTE 2,200+S ; -SLE .BYTE 2,200+P ; -PLE .BYTE 4,200+V,I,L ; -VILLE .BYTE 3+200,C,K ; CK-LE .BYTE 2,200+K ; -KLE .BYTE 2,200+G ; -GLE .BYTE 2,200+F ; -FLE .BYTE 2,200+D ; -DLE .BYTE 2,200+C ; -CLE .BYTE 4,200+P,A,200+B ; -PA-BLE .BYTE 4,F,A,200+B ; FA-BLE .BYTE 4,200+C,A,200+B ; -CA-BLE .BYTE 3,200+A,B ; -ABLE .BYTE 2,200+B ; -BLE .BYTE 3,200+S,A ; -SALE .BYTE 3,200+M,A ; -MALE .BYTE 3,200+D,A ; -DALE .byte 41 60$: .BYTE 4,200+L,I,K ; -LIKE .BYTE 40+5,G,200+U,A,G ; G-UAGE .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 5,200+R,I,A,G ; -RIAGE .BYTE 4,D,200+A,G ; D-AGE .BYTE 5,200+K,N,I,F ; -KNYFE .BYTE 4,200+W,I,F ; -WIFE .BYTE 3,200+S,E ; -SEE .BYTE 4,200+F,R,E ; -FREE .BYTE 140+2,E ; E;E .BYTE 4,200+W,I,D ; -WIDE .BYTE 4,200+T,I,D ; -TIDE .BYTE 4,200+S,I,D ; -SIDE .byte 4+20,E,N,C,70$-. ; =ENCE .BYTE 3,200+Q,U ; -QUENCE .BYTE 4+200,200+F,L,U ; -FLU-ENCE .BYTE 240+3,E,S ; ES-ENCE .BYTE 3+200,E,R ; ER-ENCE .BYTE 2+200,I ; I-ENCE .byte 41 70$: .BYTE 4+20,A,N,C,80$-. ; =ANCE .BYTE 40+2,200+S ; -SANCE .BYTE 3+200,E,R ; ER-ANCE .BYTE 3+200,A,R ; AR-ANCE .BYTE 2,200+N ; -NANCE .BYTE 4+200,200+B,A,L ; -BAL-ANCE .BYTE 2+200,I ; I-ANCE .byte 41 80$: .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 41 ; E 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 SUFG: .BYTE 3,200+L,O ; -LOG .BYTE 4,200+L,O,N ; -LONG .BYTE 3+20,I,N,1$-. ; =ING .BYTE 3,T,200+T ; T-TING .BYTE 4,200+S,T,R ; -STRING .BYTE 3,R,200+R ; R-RING .BYTE 3,P,200+P ; P-PING .BYTE 3,N,200+N ; N-NING .BYTE 3,M,200+M ; M-MING .BYTE 2+20,L,5$-. ; =LING .BYTE 2+200,L ; L-LING .BYTE 2,200+Z ; -ZLING .BYTE 2,200+T ; -TLING .BYTE 2+240,S ; S-LING .BYTE 2+200,R ; R-LING .BYTE 2,200+P ; -PLING .BYTE 3,N,200+K ; N-KLING .BYTE 2+200,K ; K-LING .BYTE 2,200+G ; -GLING .BYTE 2,200+F ; -FLING .BYTE 2,200+D ; -DLING .BYTE 2,200+C ; -CLING .BYTE 2,200+B ; -BLING 1$: .BYTE 0 5$: .BYTE 4,Y,200+T,H ; Y-THING .BYTE 5+200,E,E,T,H ; EETH-ING .BYTE 4,E,200+T,H ; E-THING .BYTE 3,G,200+G ; G-GING .BYTE 3,D,200+D ; D-DING .BYTE 3,B,200+B ; B-BING .BYTE 1+200 ; -ING 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 3+20,I,S,10$-. ; =ISH .BYTE 3,T,200+T ; T-TISH .BYTE 3,E,200+T ; E-TISH .BYTE 3,P,200+P ; P-PISH .BYTE 3,R,200+N ; R-NISH .BYTE 3,N,200+N ; N-NISH .BYTE 3,200+P,L ; -PLISH .BYTE 3,200+G,U ; -GUISH .BYTE 3,200+G,L ; -GLISH .BYTE 3,B,200+L ; B-LISH .BYTE 3,G,200+G ; G-GISH .BYTE 3,D,200+D ; D-DISH .BYTE 1+200 ; -ISH 10$: .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 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 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 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 2+20,A,30$-. ; =AL .BYTE 3,200+Q,U ; -QUAL .BYTE 240+2,U ; U-AL .BYTE 2,200+T ; -TAL .BYTE 3+200,U,R ; UR-AL .BYTE 40+4,G,200+O,200+N ; G-O-NAL .BYTE 3+200,O,N ; ON-AL .BYTE 2,200+N ; -NAL .BYTE 3,200+T,I ; -TIAL .BYTE 3,200+S,I ; -SIAL .BYTE 240+4,200+T,R,I ; -TRI-AL .BYTE 3+200,R,I ; RI-AL .BYTE 3+200,200+N,I ; -NI-AL .BYTE 3+200,200+D,I ; -DI-AL .BYTE 3,200+C,I ; -CIAL .BYTE 2,200+G ; -GAL .BYTE 3,200+M,E ; -MEAL ; .BYTE 240+3,200+R,E ; -RE-AL *** causes reals to be hyp!!! .BYTE 5,C,200+T,I,200+C ; C-TI-CAL .BYTE 4,200+S,I,200+C ; -SI-CAL .BYTE 3,200+I,200+C ; -I-CAL .BYTE 2,200+C ; -CAL .BYTE 2,200+B ; -BAL 30$: .BYTE 0 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 3+20,I,S,20$-. ; =ISM .BYTE 3+200,I,V ; IV-ISM .BYTE 2,200+T ; -TISM .BYTE 3,I,200+M ; I-MISM .BYTE 3+200,A,L ; AL-ISM .BYTE 240+2,E ; E-ISM .BYTE 240+2,A ; A-ISM .byte 0 20$: .BYTE 4,200+R,O,O ; -ROOM .BYTE 3,200+D,O ; -DOM .BYTE 3,200+H,A ; -HAM .BYTE 0 SUFN: .BYTE 4,200+T,O,W ; -TOWN .BYTE 4,200+D,O,W ; -DOWN .BYTE 4,200+T,U,R ; -TURN .byte 2+20,O,40$-. ; =ON .BYTE 4,200+S,P,O ; -SPOON .BYTE 3,200+N,O ; -NOON .BYTE 3,200+M,O ; -MOON .byte 2+20,I,20$-. ; =ion .BYTE 7,A,L,200+I,200+Z,A,200+T ; AL-I-ZA-TION .BYTE 5,200+I,200+Z,A,200+T ; -I-ZA-TION .BYTE 5,L,200+I,200+A,200+T ; L-I-A-TION .BYTE 2,200+T ; -TION .BYTE 40+3,S,200+S ; S-SION .BYTE 2,200+S ; -SION .BYTE 2+200,N ; N-ION .BYTE 2,200+G ; -GION .BYTE 2,200+C ; -CION .byte 0 20$: .BYTE 2,200+C ; -CON .BYTE 2,200+T ; -TON .BYTE 2,200+S ; -SON .byte 0 40$: .byte 2+20,I,50$-. ; IN .BYTE 2,200+R ; -RIN .BYTE 2,200+P ; -PIN .BYTE 2,200+N ; -NIN .BYTE 2,200+M ; -MIN .BYTE 2,200+L ; -LIN .BYTE 2,200+K ; -KIN .BYTE 4,200+S,T,E ; -STEIN .BYTE 3,200+T,A ; -TAIN .byte 0 50$: .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 2+20,A,60$-. ; =AN .BYTE 40+2,200+S ; -SAN .BYTE 4+200,200+W,O,M ; -WOM-AN .BYTE 2,200+M ; -MAN .BYTE 3,200+T,I ; -TIAN .BYTE 3,200+S,I ; -SIAN .BYTE 40+3,E,200+I ; E-IAN .BYTE 3,200+C,I ; -CIAN .BYTE 100+2,I ; I;AN ; July 83 ; .BYTE 240+2,E ; E-AN *** causes means to by hyp !!!!! 60$: .BYTE 0 SUFP: .BYTE 100+3,O,200+U ; O;UP .BYTE 2,200+U ; -UP .BYTE 4,200+S,H,I ; -SHIP .BYTE 4,200+K,E,E ; -KEEP .BYTE 0 SUFR: .BYTE 4,200+Z,A,R ; -ZARR .BYTE 100+2,R ; R;R .BYTE 3,200+T,O ; -TOR .BYTE 40+3,200+S,O ; -SOR .BYTE 4,200+R,I,200+O ; -RI-OR .byte 2+20,E,30$-. ; =ER .BYTE 3+200,I,Z ; IZ-ER .BYTE 4,200+C,O,V ; -COV-ER .BYTE 3,O,200+V ; O-VER .BYTE 40+4,U,S,200+T ; US-TER .BYTE 4+200,O,S,T ; OST-ER .BYTE 40+4,I,S,200+T ; IS-TER .BYTE 40+4,E,S,200+T ; ES-TER .BYTE 40+4,A,S,200+T ; AS-TER .BYTE 3,200+S,T ; -STER .BYTE 4,A,R,200+T ; AR-TER .BYTE 3+200,R,T ; RT-ER .BYTE 4,M,E,200+T ; ME-TER .BYTE 4,200+W,A,200+T ; -WA-TER .BYTE 2+200,R ; R-ER .BYTE 3+200,O,P ; OP-ER .BYTE 4,200+P,A,200+P ; -PA-PER .BYTE 3+200,W,N ; WN-ER .BYTE 40+3,S,200+N ; S-NER .BYTE 3+200,O,N ; ON-ER .BYTE 3+200,R,M ; RM-ER .BYTE 3+200,L,L ; LL-ER .BYTE 4,D,200+D,L ; D-DLER .BYTE 3,200+B,L ; -BLER .BYTE 2+200,K ; K-ER .BYTE 4,N,200+T,H ; N-THER .BYTE 5,200+F,A,200+T,H ; -FA-THER .BYTE 5,E,I,200+T,H ; EI-THER .BYTE 3+200,T,H ; TH-ER .BYTE 3+200,S,H ; SH-ER .BYTE 3,200+P,H ; -PHER .BYTE 3+200,C,H ; CH-ER .BYTE 3+200,D,G ; DG-ER .BYTE 3+200,R,D ; RD-ER .BYTE 5+200,O,U,N,D ; OUND-ER .BYTE 3+200,L,D ; LD-ER .BYTE 3+200,I,D ; ID-ER .BYTE 4+200,200+D,U,C ; -DUC-ER .BYTE 3+200,N,C ; NC-ER .BYTE 1 ; ;ER 30$: .BYTE 3,200+S,A ; -SAR .byte 3+20,L,A,50$-. ; =LAR .BYTE 240+4,E,G,200+U ; EG-U-LAR .BYTE 240+4,I,C,200+U ; IC-U-LAR .BYTE 240+4,E,C,200+U ; EC-U-LAR .BYTE 240+4,A,C,200+U ; AC-U-LAR 50$: .BYTE 0 SUFS: .BYTE 2,Y ; YS .byte 3+20,O,U,10$-. ; =OUS .BYTE 240+2,U ; U-OUS .BYTE 3,200+T,I ; -TIOUS .BYTE 3,200+G,I ; -GIOUS .BYTE 3,200+C,I ; -CIOUS .BYTE 240+2,I ; I-OUS .BYTE 3,200+G,E ; -GEOUS .BYTE 3,200+C,E ; -CEOUS .BYTE 2+200,E ; E-OUS .byte 0 10$: .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 41 ; ;S SUFT: .BYTE 3+20,I,S,10$-. ; =IST .BYTE 4+200,I,O,N ; ION-IST .BYTE 3+200,I,N ; IN-IST .BYTE 3+200,A,L ; AL-IST .BYTE 4,L,200+O,200+G ; L-O-GIST .BYTE 0 10$: .byte 3+20,E,S,20$-. ; =EST .BYTE 3+200,H,T ; HT-EST .BYTE 2+200,I ; I-EST .BYTE 3,G,200+G ; G-GEST .BYTE 2+200,G ; G-EST .BYTE 3,D,200+D ; D-DEST .BYTE 2+200,D ; D-EST .byte 0 20$: .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+0,I,N ; -OINT .BYTE 4,200+M,E,N ; -MENT .BYTE 5,200+C,I,E,N ; -CIENT .BYTE 4,I,200+A,N ; I-ANT .byte 4+20,I,G,H,40$-. ; =IGHT .BYTE 3,200+W,R ; -WRIGHT .BYTE 3,200+B,R ; -BRIGHT .BYTE 3,200+F,L ; -FLIGHT .BYTE 3,200+W,E ; -WEIGHT .byte 0 40$: .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+W,H,A ; -WHAT .BYTE 0 SUFY: .byte 2+20,T,10$-. ; =TY .BYTE 240+3,E,S ; ES-TY .BYTE 2+40,S ; STY .BYTE 240+4,Q,U,I ; QUI-TY .BYTE 3+200,200+T,I ; -TI-TY .BYTE 240+4,O,S,200+I ; OS-I-TY .BYTE 3+200,200+S,I ; -SI-TY .BYTE 4+200,I,N,200+I ; IN-I-TY .BYTE 3+200,N,I ; NI-TY .BYTE 7,F,A,200+B,I,L,200+I ; FA-BIL-I-TY .BYTE 7+200,200+C,A,200+B,I,L,200+I ; -CA-BIL-I-TY .BYTE 7+200,200+P,A,200+B,I,L,200+I ; -PA-BIL-I-TY .BYTE 5+200,200+B,I,L,200+I ; -BIL-I-TY .BYTE 2+200,I ; I-TY .byte 0 10$: .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 3+20,B,L,30$-. ; =BLY .BYTE 200+3,200+P,A ; -PA-BLY .BYTE 200+3,F,A ; FA-BLY .BYTE 200+3,200+C,A ; -CA-BLY .BYTE 2,200+A ; -ABLY .BYTE 200+1 ; -BLY 30$: .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 140+4,E,E,D ; EED;Y .BYTE 2,200+B ; -BY .BYTE 3,200+W,A ; -WAY .BYTE 3,200+D,A ; -DAY .BYTE 0 .EVEN .ENDC .END