Unternehmensberatung Dieckmann

Home Report excerpts References DITECT -
Spelling check
Detailed program descriptions Price List
InDesign PlugIns Contact







DITECT Installation Description

Before you start installing DITECT programs on your system, please proceed
as follows:

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

DIHYPH sources
DITECT is using some DIHYPH-modules. These modules must have version-no.
Jun95 or later in source file header.


used 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 !

DITECT testprogram

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:

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 program

    DMEXCAT  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
(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 values

using 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"