|Home||Report excerpts||References||DIHYPH -
|Detailed program descriptions||Price List
Before you start installing the DIHYPH programs in/on your system,
please (!) proceed as follows:
- Never use "hynr" variable outside DIHYPH-programs !
- Read description "DIHYPH Interfacing and Installation".
- Read file DHTESTX.HLP or DIHYPH.HLP
- Upper-/lowercase file name writing is different on some systems !
- Define pathname of your choice for all DIHYPH runtime files
(DHEXnn.*, DHDFLT.CFG, DHCOnn, DHTAnn) in file array "dhpath".
Default pathname is \DIHYPH\ . All default values may be defined during runtime
by the user and TT-program (see: DHDFLT.*).
(TT = text/typesetting) (nn = language-no., see below !).
For DIHYPH-DH40 please first read file DH40READ.ME !
- Create "pathname" directory as defined, into which all runtime files
should be stored.
= printf - statements in C-sources are never active ( ! ) except for testing.
= C-source statements commented with "!!!!!"
may possibly have to be adapted to your system.
Function "coreleft( )" may be replaced by value 40000 !
On UNIX systems :
- end-of-line codes hex. '0D0A' have to be changed to hex. '0A'.
- end-of-file code has to be deleted.
- change following DHCFUNCT.C-expressions:sys\types.h to sys/types.h sys\stat.h to sys/stat.h nendchar = 2; to nendchar = 1;
- Compile all DIHYPH files.c on your system.
- Link compiled files.obj as shown in files DHTEST*.LNK and DMEXCAT.LNK.
- Create exception dictionaries by following command (nn = language-no.):DMEXCAT nn h [b] [EF] | | u | | | 8 | | | | |_ Special exception file name (without extension) | | | | | |______ b = Byte-Code file.txt [default] | | |______ u = Unicode file.ucd | | |______ 8 = UTF-8 file.uc8 | | | |__________ h = DIHYPH exception file 'DHEXnn.TXT' | |__________ t = DITECT exception file 'DTEXnn.TXT' | |______________ Language-No. 01 - 99
- Start testprogram as follows:DHTESTX nn <DHnn.TXT or: DHTESTUC nn <DHnn.TXT (for UNICODE only !) DHTST8UC nn <DHnn.TXT (for UTF8-Code only !)(nn = language-No. 01 - 99) and compare your results with file DHnn.RES .
Results should be identical - otherwise you have a problem !
- Adapt your TT-program to automatically:
set DIHYPH default values as defined by the user
set DIHYPH calling-parameters
evaluate DIHYPH return-parameters.
- Do not strip out special characters
except TT-commands, because DIHYPH has long experience with handling
those characters. Otherwise, many good hyphenation points may not be found !
(see file: DHINT.RES !).
= Adapt program DHTCMD.C when words to be hyphenated contain
TT-commands. Most TT-commands may be skipped/ignored for hyphen-
ation except flying accent commands etc. !
- Replace program names DHTEST* in linkfile DHTEST*.LNK with your
Now your program should be working with DIHYPH hyphenation(s).
= DHSORTD-module used in DHEXCAT contains the following sorting sequence:Longer words precede shorter words of same wordbase: speciality and: special Colon ( . ) and comma ( , ) are highest codes: textword ( . is higher than every vowel) textw.rd ( , is higher than every consonant) text,ord
= these steps must only be observed if necessary (e.g. special coding)
Text-/typesetting system calls hyphenations as follows:rc = DHYPH (line, nn); if (rc == -1) ... /* Table "dhco??" or "dhta??" */ /* missing or wrong ! */
After successful installation only following files are needed:dhco?? -files ( Code tables ) dhta?? -files ( Prog-tables ) dhex??.txt -files ( Exception-words ) dhex??.cat -files ( Except.catalogues ) dhdflt.cfg -file ( Default setting )These files have to be stored in dictionary defined in array "dhpath"
(see: "dhdef.c") and they are read into RAM after their first call to DIHYPH.
Once installed every hyphenation quality improvement and/or every new
language added to the system is only a couple of disk files (s. above).
Compiling and linking of programs is no longer necessary.
The following C-library-functions are used in module DHCFUNCT.C :
C-Compiler Function: Purpose: Function call: malloc
get all remaining RAM (40000)
free previously allocated memory
DHMALL free free all memory allocations DHFREEAL open open file DHOPEN fopen fopen file DHFOPEN close
close / fclose all open files DHCLOSAL rename rename file (old-new) DHRENAME remove remove file DHDELET tell see file size DHFSIZE rewind
reset to start of file
set file pointer
print to file
Program File Meaning DHTEST
Testmainline to be replaced by typesetting sources.
Dummy, as functions are not needed here.
DHDFLT Reset default values using config.file 'DHDFLT.CFG'. DHEXCFH
Language-independent modules: DHGELOG
needed for languages:
01, 02, 11, 14, 15, 16, 22, 25, 26, 33, 40, 43
needed for all other languages: DHSLLOGD
Dummy version of DHSLLOG (normal case)
Needed for languages 28 und 37 only
For DIHYPH and DITECT together in one program, replace DHFRAM and
DTFRAM by DMFRAM, DHEXCFS and DTEXCFS by DMEXCFS and link
test program DMTEST (see: DMTEST.LNK) !
When different users are working with DIHYPH simultaneously e.g. in network,
configuration file "dhdflt.cfg" is on the server and so all values defined in
this file are automatically valid for everyone.
User-dependent values such as 'usef', 'csch', 'ftmp', 'minwl' and 'mexsw' should
be set as user-defined, via calling system, then these values must be erased from
the "dhdflt.cfg" file, otherwise these definitions would overwrite those set by
the calling-system !
Frequent changes between languages:
Every time DIHYPH changes to another language or switches to and from DITECT,
the new program opens and reads some files into RAM, which will result in a
decrease in program speed.
To avoid this DIHYPH automatically tries to permanently hold all tables in RAM,
if sufficient free RAM is available.
To do this, program values 'tabspac', 'excspac' and 'exdspac' have to be set
correctly in the configuration file "dhdflt.cfg" as basic default values (DH00)
in order to be valid for all languages; but 'tabspac' and 'excspac' may, instead,
also be defined as language dependent (DHnn).
The first method needs more RAM as it allocates the same RAM size to every
Using the second method, the values may be defined as tailor-made for every
If there is insufficient RAM available, a message is written into the "dmessage"
error-file, and the last language tables are always overlaid by the new ones.
If DIHYPH and DITECT are linked together in one program-system, use
sources DMEXCFS and DMFRAM instead of DHEXCFS, DTEXCFS, DHFRAM
and DTFRAM (see link-file "DMTEST.LNK"), and set the variable 'hynr' to zero
(hynr = 0;) before switching from DITECT to DIHYPH (but only then) !
If files of more than one program are to be held permanently in RAM, all sources
must be compiled with the large compiler model !
may only occur in case of incorrect installation !
They are stored into file "dmessage":
DHFOPEN: No free file index found ! Abort.
It is only possible to open a maximum of 15 files simultaneously.
"progname" -Error( 0): Can't open file : "filename"
Prog.module "progname" can't open file "filename".
"progname" -Error( 1): Insufficient memory allocation.
Progname= "dhrcof": Variable 'codspac' definition too small.
Progname = "dhrtaf ": Variable 'tabspac' definition too small.
Progname = "dhexcfh": Variable 'excspac' definition too small,
program continues without exceptions.
"progname" -Error( 2): 'tabspac' definition too small.
Set 'tabspac' to correct value !
"progname" -Error( 3): 'exdspac' definition too small.
Set 'exdspac' to correct value !
Checksum error in file: dhta.. !
Program module "dhrtaf" or "dhrtafal" has detected a checksum error when
reading binary file "dhta.." (.. =hyphenation-no.).
Make sure that this binary file remains unchanged during file-transfer or
READ-function. If you are sure that file "dhta.." is okay, but the error still
occurs, simply switch off this error-print command in source-code
DMFRAM-Error: Insufficient RAM to hold tables permanently.
There is insufficient space to load all the DIHYPH program tables into RAM.
The last language is always overlaid !