|Home||Report excerpts||References||DITECT -
|Detailed program descriptions||Price List
Before you start installing DITECT programs on your system, please proceed
Upper-/lowercase file name writing may be different on some systems !
Define pathname wanted by you for all DITECT runtime files
in file DTDEF.C array "dtpath", in DTEXD.BAT and DTEXA.BAT
Default pathname is \DITECT\ . All default values may be redefined during
runtime by user and TT-program (see file: DTDFLT.cfg)
(TT = text/typesetting) (nn = 2-digits language-no.).
Create "pathname" directory as defined and
copy all runtime files into it.
printf - statements in C-sources are never active ( ! ) except for testing
purposes switched on by special command. So don't erase them !
C-source statements commented with "!!!!!"
possibly have to be adapted to your system.
If function "coreleft( )" is not available, it may be replaced by value 40000,
but anyhow "coreleft" is not used at all in DITECT (only in DHEXCAT.C).
On UNIX systems :
- end-of-line codes hex. '0D0A' have to be changed to hex. '0A'.
- end-of-file code ^Z 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;
Adapt your TT-program to automatically
set DITECT default values as defined by user
set DITECT calling-parameters
evaluate DITECT return-array "charr" (see: Interfacing).
Do not strip out special characters except TT-commands as DITECT
is capable of handling these characters, if program DHTCMD.C has
been adapted by us following your specifications.
Compile all DITECT files.c on your system.
Link compiled files.obj as shown in file DTTEST.LNK
DITECT is using some DIHYPH-modules. These modules must have version-no.
Jun95 or later in source file header.
C-library-functionsused in module DHCFUNCT.C :
C-Compiler Purpose: Function Function: call: _____________________________________________________________________ malloc Allocate memory DHMALL coreleft get as much RAM as left (unused !) free FREE memory allocated before free FREE all memory allocations DHFREEAL open OPEN file DHOPEN fopen FOPEN file DHFOPEN close CLOSE file DHCLOSE fclose FCLOSE file close CLOSE close all open DHCLOSAL fclose FCLOSE DIHYPH-/ DITECT-files rename RENAME file (old - new) DHRENAME remove REMOVE file DHDELET tell Get file size DHFSIZE stat Get file status DHSTAT rewind Reset to start of file DHSETF lseek Set file pointer fgetc FGETC file DHREAD read READ file fprintf print to file DHWRITE write WRITE file
Error messages in file "dmessage"
Following error messages may only occur in case of incorrect installation !
DHFOPEN: No free file index found ! Abort.
It is only possible to open max. 15 files simultaneously.
"progname" -Error( 0): Can't open file : "filename"
Prog.module "progname" can't open file "filename".
Language defined by user possibly is not installed !?
"progname" -Error( 1): Unsufficient memory allocation.
Prog.module "progname" is unable to allocate enough memory.
Progname = "dhrcof ": Variable 'codspac' defined too small.
Progname = "dhexcfh": Variable 'excspac' defined too small,
and program continues without exceptions !
"progname" -Error( 3): 'exdspac' defined too small.
Prog.module "progname": Value of global variable 'exdspac' (defined in
DHDEF.C / redefined in DHDFLT.CFG and DTDFLT.CFG) must be big enough
to hold largest exception-record and DITECT base-record.
Enlarge 'exdspac' in DTDFLT.CFG !
DITECT-Error: 999 short-/medium-term-files used !
Please add "DTnnEXC.*"-files to permanent file by calling:
DHEXA nn (nn = 2-digits-language-no.)After that all short-/medium-term-files are erased and can be filled again.
DMFRAM-Error: Not enough RAM to hold tables permanently. Overlay !
There is not enough RAM available to hold all the different DITECT- and/or
DIHYPH- program-tables in RAM permanently. Always the last is overlaid !
After installation and linkage of testprogram "DTTEST"
it is started as follows:DTTEST nn DTnn.TXT | |____ Testfile |__________ Language-No. (e.g.: 01 =German)
If results on screen are identical with those in file "DTnn.RES", your program
is working correctly.
Now you may link DITECT with your program system without following programs:
"DTTEST", "DXTIME", "DXDATE", "DHKEY" and "DTEDL" .
At first call to DITECT RAM-space of about 20000 bytes is allocated for
runtime-files and temporary buffers.
DITECT / DIHYPH combination testprogram
If you want to install DITECT together with DIHYPH in one system, use test-
program "DMTEST" instead of "DTTEST". For linkage, see "DMTEST.LNK" !
DMTEST.EXE is started as follows:DMTEST nn tt (f:)
DITECT is linked with following programs:Prog.name Meaning ___________________________________________ DTTEST Test program | These five programs are DXTIMED " " (Time-Dummy) | used for testprogram only. DXDATED " " (Date-Dummy) |- DTEDL " " DOS-lineeditor | They must be left away for DHKEY " " " " | typesetting-system linkage. DHDEF see: DIHYPH ! DHYPH " " DHTCMD " " DHEXCFH " " DHCUPP " " DHCFUNCT " " DHRCOF " " DTDFLT Read config. file "dtdflt.cfg" DTFRAM Holds prog-files in RAM **) DTEXCFS Seek exceptions **) DTDEF Globale Definitions DTINT Interfacing DTCAPS Capital-/small conversion DTFILSS Tmp. files handling DTEXCW Prepare word for tmp-storage DTCHECK Checking-logic DTBINH Search DTnn.BIN file DTBINW " " " DTSTIC4 4 char.-/int. conversion DTSTIC 2 char.-/int. conversion DTECT DITECT main program DTMATCH Proposal logic **) 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) !
DITECT uses following run time files:Code created by File name Meaning dependent DITECT User ______________________________________________________________________ DTnn.BIN Binary word dictionary DTnn.PRL Proposal list start letters DTnn.CUT Suffix combinations DTnn.PFX Prefix combinations x DTCOnn Code file x DTCRnn Code-Replace file (nn = language) x DTCRNN Code-Replace file (standard) x DTEXPR.SKP ignored (parts of) expressions DTDFLT.CFG Configuration File DTnnTMP.* short -term word storage file. x DTnnEXC.* medium-term word storage file. x DTEXnn.TXT permanent word storage file. x x DTEXnn.CAT " " " catalogue x x (x) DTnn.CUT is automatically adapted internally. ( nn = 2-digits-language-no. )
If a specific file-no. (1 - 999) is not defined in int-variable 'usef',
DITECT automatically assigns an unused number to every workstation
for short- or medium-term files to avoid network-file-problems.
After a couple of days it may be possible that all 999 numbers are used.
In that case DITECT displays an error-message and continues without short-
or medium-term file storage.
System-supervisor may take care of that by calling program
DTALLMED nn (nn =language-no.)
Program-call DTALLMED nn copies all medium-term files DTnnEXC.*
into file DTnnEXC and releases the file-numbers for later use.
The words in DTnnEXC should be checked before storing into permanent
exception-file DTEXnn.TXT .
After that a new exception-catalog must be created by starting programDMEXCAT nn t [b] [EF] | | u | | | 8 | | | | |_ 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
Frequent changes between programs
Every time DITECT changes to another language or switches over to DIHYPH
or back, the new program opens and reads some files into RAM, which will
result in decrease of program speed.
To avoid this DITECT automatically tries to hold all tables in RAM permanently,
if enough free RAM is available.
To do this, program values 'exdspac' and 'excspac' have to be set correctly
in configuration file "dtdflt.cfg" as basic default values (DT00) by that being
valid for all languages, but 'excspac' may be defined language dependant (DHnn)
instead as well.
First method needs more RAM as it allocates same RAM size for every language.
Using second method the values may be defined tailor-made for every language.
If there is not enough RAM available, a message is written into error-file
"dmessage" and always the last language tables are 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 variable 'hynr' has to be set to zero (hynr=0;)
before switching over from DITECT to DIHYPH or vice versa (but only then) !
All sources must be compiled with large compiler model !
Redefinition of default valuesusing file DTDFLT.CFG
When different users are working with DITECT simultaneously e.g. in a net,
configuration file "dtdflt.cfg" is on the server and so all values defined in
this file are automatically valid for every user.
So user dependant values like 'usef', 'csch', 'ftmp', 'minwl' and 'mexsw'
should be set user-defined via calling system but then these values must be
erased from file "dtdflt.cfg" else the definitions would overwrite the ones
set by calling-system before !
Description of DITECT configuration file "dtdflt.cfg"