.TITLE HYPHEN .IDENT /S1.4/ ;Derived from DECUS version M02 ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ;* * ;* General permission to copy (but not for profit) is hereby * ;* granted, provided that reference is made to the fact that * ;* reproduction privileges were granted by DECUS. * ;* * ;* The information in this document is subject to change with- * ;* out notice and should not be construed as a commitment by * ;* the contributor(s), DECUS or Digital Equipment Corporation. * ;* * ;* These parties make no warranty as to the suitability of this * ;* material for use by the recipient, nor as to the accuracy or * ;* functioning of the software or related material, and no * ;* responsibility is assumed in connection therewith. * ;* * ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ; HYPHENATION ROUTINE ; ; THIS ROUTINE WAS ADAPTED FROM THE BELL TELEPHONE LABS ; HYPHENATION ALGORITHM. ; ; AUTHOR: L. WADE 1-JUN-72 ; ; MODIFIED BY: ; ; E. POLLACK U. OF W. 19-DEC-73 ; ; D. N. CUTLER 27-JUL-75 ; ; C. H. Spalding, Adept Technology, Aug. '83 ; ; MODIFICATIONS ; ; SIG03 CHANGE CHECKS TO C-BIT ; chs09 Add ability to specify preferred hyphenation ; chs18 Hyphenate at existing hyphens ; chs85 Expand list of punctuation chars ; chs92a Set the threshold during task build ; chs98 Add argument to HYPHENATION ; LOWERCASE CHARACTER VALUES .IF NZ H$$PHN ;(ENTIRE FILE) 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 MQ: .BLKW 1 ;;THRESH= 20 ;(Set during task build) ;chs92a WCH: .BLKW 1 HSTART: .BLKW 1 NHSTART:.BLKW 1 MAXLOC: .BLKW 1 MAXDIG: .BLKW 1 SUFB: .BLKW 10. NHYPH: .BLKW 1 WORDP: .BLKW 1 MINLEN =6 ;MIN. WORD LENGTH TO BREAK ;chs .IF NZ HYPUNC ;chs85+ PCHARS: .ASCII -/.,()"\@- ;OLD LIST .ASCIZ -!#$%&':;<>?[]{}- ;NEW CHARACTERS ADDED VOWELS: .BYTE A,E,I,O,U,Y,0 ;VOWELS (LOWERCASE VALUES) .EVEN .ENDC ; NZ HYPUNC ;chs85- ; MAIN HYPHENATION ROUTINE ; ; ON ENTRY: R0 = Address of a single word to be hyphenated ; (end of word marked with a NUL) ; ON EXIT: 200 bit set in each character which can follow a hyphen ; ; REGISTERS: R0, R1, R2 and R3 changed HYPHEN:: MOV R0,WORDP INC WORDP ;POINT TO SECOND CHAR CLR NHYPH .IF NZ PRFHYP+EXSTHY ;chs18+ 10$: CMPEQB (R0),#ULCHS,HYP06 ;SKIP WORD IF UNDERLINE IN IT ;chs18a MOVB (R0)+,R2 ;CHECK EACH CHARACTER OF WORD ;chs09 BEQ 30$ ; MARKS END ;chs09 .IF NZ EXSTHY .IIF NZ PRFHYP, BMI 20$ ;MARKED BREAK HERE ;chs09 CMPNEB R2,#'-,10$ ;EXPLICIT HYPHEN INDICATES POSS. BREAK CMPEQB (R0),#'-,10$ ; ...BUT NOT IN MIDDLE OF DASH BISB #200,(R0) ;MARK NEXT CHARACTER FOR HYPHENATION .IFF BPL 10$ ;LOOP IF NOT MARKED FOR BREAK ;chs09 .ENDC ; -NZ EXSTHY 20$: INC NHYPH ;COUNT BREAK SITE ;chs09+ BR 10$ ;KEEP SCANNING WORD 30$: TSTNE NHYPH,HYP06 ;SKIP IF ANY HYPHENATIONS SPECIFIED MOV WORDP,R0 ;RESTORE WORD POINTER DEC R0 ;chs09- .ENDC ; NZ PRFHYP+EXSTHY ;chs18- .IIF NZ HYPARG, TSTEQB HYPALG,HYP06 ;SKIP IF RESTRICTED MODE ;chs98 HYP01: CALL PUNCT ;IS THE CHAR. A PUNCT. MARK? .IF NZ HYPUNC ;chs85+ BCC HYP02 ;NO .IFF ;chs85- BNE HYP02 ;NO .ENDC ; -NZ HYPUNC ;chs85 INC R0 ;SKIP OVER IT BR HYP01 ;AND RE-LOOP HYP02: CALL ALPH ;IS CHARACTER ALPHABETIC? BCS HYP06 ;NO, SO DON'T HYPHENATE ;SIG03 MOV R0,R3 ;SAVE STARTING ADDRESS OF STRING HYP03: INC R0 ;SKIP OVER IT CALL ALPH ;FIND END OF BCC HYP03 ;ALPHABETIC STRING ;SIG03 SUB R0,R3 ;COMPUTE NEGATIVE STRING LENGTH CMP #-MINLEN,R3 ;STRING LONG ENOUGH? ;chs BLT HYP06 ;IF LT NO 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?? CALL PUNCT ;OR A KNOWN PUNCTUATION? .IF NZ HYPUNC ;chs85+ BCC HYP06 ;NO, DON'T HYPHENATE .IFF ;chs85- BNE HYP06 ;NO, DON'T HYPHENATE .ENDC ; -NZ HYPUNC ;chs85 BR HYP04 ;LOOP UNTIL TERM. FOUND HYP05: JSR R5,SUFFIX ;GO GET THE SUFFIX FORMS ALLOWED JSR R5,DIGRAM HYP06: .IF NZ HY2CHR ;chs92b+ MOV #,R1 ;LENGTH OF FRAGMENT TO PREVENT 10$: BICB #200,@WORDP ;ERASE BREAK MARK INC WORDP ;POINT TO NEXT CHARACTER SOB R1,10$ ;LOOP FOR N CHARACTERS .IFF ;chs92b- BICB #200,@WORDP ;DISALLOW SINGLE CHAR. BREAK .ENDC ; -NZ HY2CHR ;chs92b RETURN ;RETURN TO CALLER ; PUNCT, MAPLOW, VOWEL, CHECKVOW, ; Is the character under scan in the class of known punctuation marks? PUNCT: .IF NZ HYPUNC ;chs85+ MOV R3,-(SP) ;SAVE REGISTER MOVB (R0),R2 ;COPY CHARACTER TO WORKING REGISTER MOV #PCHARS,R3 ;POINT AT PUNCTUATION CHARACTERS BR VOWEL1 ;GO SCAN LIST FOR MATCH .IFF ;chs85- 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: RETURN .ENDC ; -NZ HYPUNC ;chs85 ; Map uppercase to lowercase MAPLOW: CMP R2,#A BHIS MAP01 ADD #A-'A,R2 MAP01: RETURN ; Check to see if character is a vowel ("Y" is considered a vowel here) VOWEL: .IF NZ HYPUNC ;chs85+ MOV R3,-(SP) ;SAVE REGISTER MOV #VOWELS,R3 ;POINT AT LIST OF VOWELS VOWEL1: CALL CHKCHR ;CHECK FOR MATCH (C BIT SET = YES) MOV (SP)+,R3 ;RESTORE REGISTER RETURN .IFF ;chs85- 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: RETURN .ENDC ; -NZ HYPUNC ;chs85 ; Check to see if any vowels precede the current character position CHECKVOW: MOV R0,-(SP) CK01: MOVB -(R0),R2 CALL ALPH2 BCS CK03 ;SIG03 CALL MAPLOW ;MAP TO LOWERCASE CALL VOWEL .IF NZ HYPUNC ;chs85+ BCS CK02 ;RETURN IF IT IS A VOWEL .IFF ;chs85- BEQ CK02 .ENDC ; -NZ HYPUNC ;chs85 CALL ALPH BCC CK01 ;SIG03 CK03: MOV (SP)+,R0 CLZ RTS R5 CK02: MOV (SP)+,R0 SEZ RTS R5 ; Local subroutine to scan list of characters for a match ;chs85+ ; ; On entry: R2 = Goal character ; R3 = Address of list of check characters ; ; On exit: C bit set if match found ; C bit clear if no match found .IF NZ HYPUNC CHKCHR: MOV R4,-(SP) ;SAVE REGISTER 10$: MOVB (R3)+,R4 ;GET CHARACTER FROM LIST BEQ 20$ ;QUIT IF AT END OF LIST CMPNEB R2,R4,10$ ;LOOP IF NO MATCH SEC ;SIGNAL MATCH BR 30$ 20$: CLC ;SIGNAL NO MATCH 30$: MOV (SP)+,R4 ;RESTORE REGISTER RETURN .ENDC ; -NZ HYPUNC ;chs85- DIGRAM: MOV HSTART,R0 DIG01: CALL ALPH BCS DIG09 ;SIG03 CALL MAPLOW CALL VOWEL .IF NZ HYPUNC ;chs85+ BCS DIG02 .IFF ;chs85- BEQ DIG02 .ENDC ; -NZ HYPUNC ;chs85 DEC R0 BR DIG01 DIG02: MOV R0,HSTART DIG03: MOVB -(R0),R2 CALL ALPH2 BCS DIG09 ;SIG03 CALL MAPLOW CALL VOWEL .IF NZ HYPUNC ;chs85+ BCC DIG03 .IFF ;chs85- BNE DIG03 .ENDC ; -NZ HYPUNC ;chs85 CLR MAXDIG MOV R0,NHSTART DIG04: MOV #1,MQ MOVB -1(R0),R2 CALL ALPH2 BCC DIG05 ;SIG03 MOVB (R0),R2 MOV #A,R1 JSR R5,DILOOK BXH BR DIG07 DIG05: MOVB -2(R0),R2 MOV #XXH,DIG10 CALL ALPH2 BCC DIG06 ;SIG03 MOV #BXXH,DIG10 DIG06: MOVB -1(R0),R1 MOVB (R0),R2 JSR R5,DILOOK DIG10: XXH DIG07: MOVB (R0)+,R1 MOVB (R0),R2 JSR R5,DILOOK XHX MOVB (R0),R1 MOVB 1(R0),R2 JSR R5,DILOOK HXX CMP MQ,MAXDIG BLOS DIG08 MOV MQ,MAXDIG MOV R0,MAXLOC DIG08: CMP R0,HSTART BLO DIG04 MOV NHSTART,HSTART CMP MAXDIG,#THRESH BLO DIGRAM BISB #200,@MAXLOC INC NHYPH ; MOV MAXDIG,@OCTBUFP ; INC OCTCNT ; ADD #2,OCTBUFP BR DIGRAM DIG09: RTS R5 DILOOK: BIC #-177-1,R2 BIC #-177-1,R1 CALL MAPLOW SUB #A,R2 CMP R2,#Z-A BHI DIL02 MOV R2,R3 MOV R1,R2 CALL MAPLOW SUB #A,R2 CMP R2,#Z-A BHI DIL02 MOV R1,-(SP) MOV R0,-(SP) MOV MQ,-(SP) MOV R2,R0 MOV #13.,R1 CALL $MUL CLR R2 ROR R3 ADC R2 ADD R1,R3 ADD (R5)+,R3 MOVB (R3),R3 TST R2 BNE DIL01 ASR R3 ASR R3 ASR R3 ASR R3 DIL01: BIC #-17-1,R3 MOV R3,R0 MOV (SP)+,R1 CALL $MUL MOV R1,MQ MOV (SP)+,R0 MOV (SP)+,R1 RTS R5 DIL02: CLR MQ TST (R5)+ RTS R5 ; SUFFIX ; Mark any legal suffix forms in the prototype and return SUFFIX: MOV HSTART,R0 ;GET POINTER TO LAST CHAR. CALL ALPH ;IS CHARACTER ALPHABETIC? BCS SUF08 ;NO, EXIT ;SIG03 CALL MAPLOW ;MAP CHAR. TO LOWERCASE 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 CALL 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? BLOS SUF03 ;YES,GOT IT BIC #-177-1,R2 ;MASK EXTRA FLAG BITS MOV R2,-(SP) ;SAVE DICTIONARY CHARACTER MOVB -(R0),R2 ;GET SOURCE CHARACTER CALL MAPLOW ;MAP TO LOWERCASE 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 TSTB (R1)+ ;LOOK FOR THE HYPHEN BMI SUF05 ;FOUND IT!! SUF04: DEC R0 ;FINE THE CMP R3,R1 ;LAST HYPHEN BLOS 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) ;END OF ALPHABETICS? 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 ;chs 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 MOVB (R1)+,(R2)+ BR RDS01 RDS02: MOV #SUFB,R1 ;GET ADDRESS OF SUFFIX ENTRY MOV (SP)+,R0 RETURN ;AND RETURN ; DIGRAM TABLES 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 .BYTE 140,000,200,003,260,006,000,160,007,000,140,000,320 .BYTE 220,000,160,005,240,010,000,100,006,000,200,000,320 .BYTE 240,000,120,003,140,000,000,240,010,000,220,000,160 .BYTE 042,023,041,040,040,022,043,041,030,064,021,000,041 .BYTE 100,000,140,000,220,006,000,140,003,000,200,000,000 .BYTE 200,000,120,002,220,010,000,160,006,000,140,000,320 .BYTE 020,000,020,000,020,000,000,020,000,000,020,000,000 .BYTE 043,163,065,044,022,043,104,042,061,146,061,000,007 .BYTE 100,000,140,000,040,000,000,100,000,000,120,000,000 .BYTE 140,000,040,011,060,004,001,120,003,000,140,000,040 .BYTE 200,000,100,000,140,000,000,140,000,000,140,000,240 .BYTE 200,000,140,000,160,000,000,220,000,000,140,000,240 .BYTE 200,000,140,000,160,000,000,220,000,000,060,000,240 .BYTE 021,043,041,121,040,023,042,003,142,042,061,001,022 .BYTE 120,000,140,010,140,010,000,140,002,000,120,000,120 .BYTE 000,000,000,000,360,000,000,000,000,000,160,000,000 .BYTE 100,000,040,005,120,000,000,100,000,000,060,000,140 .BYTE 140,040,100,001,240,041,000,242,000,002,140,000,100 .BYTE 240,000,120,002,200,000,000,320,007,000,240,000,340 .BYTE 101,021,041,020,040,005,042,121,002,021,201,000,020 .BYTE 160,000,100,000,140,000,000,160,006,000,220,000,140 .BYTE 140,000,020,001,020,000,000,100,001,000,300,000,000 .BYTE 000,000,000,000,000,000,000,000,000,000,000,000,000 .BYTE 106,041,040,147,040,000,063,041,001,102,160,002,002 .BYTE 300,000,040,017,140,017,000,240,000,000,140,000,120 BXXH: .BYTE 005,150,153,062,062,246,152,127,146,203,310,017,206 .BYTE 100,000,120,000,140,000,000,100,000,000,120,000,060 .BYTE 100,000,040,000,060,000,000,060,000,000,220,000,040 .BYTE 100,000,120,000,200,000,000,100,000,000,140,000,060 .BYTE 043,142,046,140,062,147,210,131,046,106,246,017,111 .BYTE 060,000,020,000,060,000,000,040,000,000,100,000,000 .BYTE 060,000,040,000,040,000,000,040,000,000,100,000,040 .BYTE 100,000,100,000,100,000,000,040,000,000,100,000,140 .BYTE 066,045,145,140,000,070,377,030,130,103,003,017,006 .BYTE 040,000,040,000,020,000,000,040,000,000,100,000,000 .BYTE 200,000,020,000,140,000,000,120,000,000,120,000,040 .BYTE 120,000,040,000,060,000,000,060,000,000,160,000,040 .BYTE 120,000,040,000,120,000,000,040,000,000,160,000,040 .BYTE 120,000,020,000,140,000,000,120,000,000,140,000,040 .BYTE 051,126,150,140,060,210,146,006,006,165,003,017,244 .BYTE 120,000,040,000,160,000,000,140,000,000,060,000,140 .BYTE 000,000,000,000,000,000,000,000,000,000,000,000,000 .BYTE 140,000,140,000,060,000,000,100,000,000,140,000,020 .BYTE 120,000,020,000,060,000,000,060,000,000,060,000,040 .BYTE 140,000,020,000,100,000,000,140,000,000,140,000,020 .BYTE 070,125,051,162,120,105,126,104,006,044,000,017,052 .BYTE 140,000,020,000,140,000,000,060,000,000,060,000,040 .BYTE 020,000,000,000,020,000,000,000,000,000,000,000,060 .BYTE 140,000,160,000,200,000,000,140,000,000,000,000,240 .BYTE 065,042,060,200,000,210,222,146,006,204,220,012,003 .BYTE 240,000,020,000,120,000,000,200,000,000,200,000,240 XHX: .BYTE 032,146,042,107,076,102,042,146,202,050,006,000,051 .BYTE 036,377,057,013,057,366,377,057,001,377,057,000,040 .BYTE 037,377,020,000,100,022,377,057,362,116,100,000,017 .BYTE 057,377,057,031,137,363,377,037,362,270,077,000,117 .BYTE 074,142,012,236,076,125,063,165,341,046,047,000,024 .BYTE 020,017,075,377,040,001,377,017,001,204,020,000,040 .BYTE 057,017,057,340,140,362,314,117,003,302,100,000,057 .BYTE 057,357,077,017,100,366,314,057,342,346,037,000,060 .BYTE 252,145,072,157,377,165,063,066,164,050,363,000,362 .BYTE 000,000,020,000,020,000,000,017,000,000,020,000,000 .BYTE 117,017,237,377,200,354,125,110,004,257,000,000,300 .BYTE 057,367,054,357,157,216,314,114,217,353,053,000,057 .BYTE 077,213,077,077,177,317,377,114,377,352,077,000,076 .BYTE 077,213,077,077,157,177,377,054,377,352,117,000,075 .BYTE 125,230,065,216,057,066,063,047,345,126,011,000,033 .BYTE 057,377,051,360,120,361,273,056,001,256,057,000,060 .BYTE 000,000,000,000,000,000,000,000,000,000,000,000,000 .BYTE 076,310,056,310,137,174,273,055,335,266,033,000,155 .BYTE 077,157,057,360,057,063,042,024,077,206,020,000,040 .BYTE 057,037,077,360,100,365,377,037,362,176,050,000,026 .BYTE 167,146,042,112,077,110,062,254,366,052,377,000,163 .BYTE 060,000,040,000,120,000,377,060,012,000,037,000,257 .BYTE 037,232,157,361,040,003,125,010,001,256,000,000,340 .BYTE 377,377,377,377,377,377,377,377,377,377,377,017,277 .BYTE 253,315,257,216,377,206,146,306,371,126,232,000,004 .BYTE 057,012,100,360,160,360,000,040,000,017,157,000,176 XXH: .BYTE 045,150,154,162,042,246,210,147,152,103,230,017,206 .BYTE 100,000,040,000,140,000,000,100,000,021,120,017,060 .BYTE 100,000,040,002,140,320,000,060,000,001,220,017,040 .BYTE 100,001,120,001,241,000,000,100,000,020,140,017,060 .BYTE 023,162,046,142,022,207,210,131,052,106,250,017,110 .BYTE 060,000,042,000,160,000,000,040,000,212,100,017,000 .BYTE 140,000,040,002,140,000,000,120,000,040,120,017,040 .BYTE 100,000,100,000,140,001,021,140,000,046,100,017,140 .BYTE 066,045,025,201,020,130,146,030,130,103,025,017,006 .BYTE 100,000,040,000,020,000,000,040,000,000,200,017,000 .BYTE 200,000,020,001,140,000,000,140,000,000,120,017,040 .BYTE 120,026,042,020,140,161,042,143,000,022,162,017,040 .BYTE 121,042,060,020,140,200,000,123,000,021,220,017,041 .BYTE 121,042,060,120,140,200,000,123,000,021,160,017,041 .BYTE 051,126,150,141,060,210,146,066,026,165,026,017,247 .BYTE 120,000,040,003,160,000,000,140,000,021,100,017,140 .BYTE 000,000,000,000,200,000,000,000,000,000,000,017,000 .BYTE 141,023,122,040,160,143,042,142,000,047,143,017,020 .BYTE 120,000,040,006,140,060,000,141,000,026,100,017,040 .BYTE 140,000,020,007,100,000,000,140,000,001,140,017,020 .BYTE 110,125,051,162,120,125,127,104,006,104,000,017,052 .BYTE 140,000,040,000,160,000,000,140,000,000,060,017,000 .BYTE 040,005,020,000,040,313,231,030,000,140,000,017,056 .BYTE 140,000,160,000,200,000,000,140,000,000,000,017,240 .BYTE 065,042,060,040,000,206,231,146,006,224,220,017,004 .BYTE 240,000,020,000,140,000,000,220,000,000,200,017,141 .EVEN ; SUFTAB - SUFFIX TABLE (POINTERS TO SUFIX TABLES) SUFTAB: .WORD SUFA .WORD 0 .WORD SUFC .WORD SUFD .WORD SUFE .WORD SUFF .WORD SUFG .WORD SUFH .WORD SUFI .WORD 0 .WORD SUFK .WORD SUFL .WORD SUFM .WORD SUFN .WORD 0 .WORD SUFP .WORD 0 .WORD SUFR .WORD SUFS .WORD SUFT .WORD 0 .WORD 0 .WORD 0 .WORD 0 .WORD SUFY .WORD 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 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 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 ;ED .BYTE 5,200+S,T,E,A ;-STEAD .BYTE 4,200+H,E,A ;-HEAD .BYTE 0 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 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 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 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 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 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 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 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 SUFP: .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 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 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 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+0,I,N ;-OINT .BYTE 4,200+W,H,A ;-WHAT .BYTE 0 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 .ENDC ; NZ H$$PHN .END