Applies To:
  • CitectSCADA 3.x, 4.x

On one of our systems we are using Digiboard PC8e boards and have been successfully running the project on v3.21 for several months. We recently we upgraded to v3.4 rev 02 and when starting Citect the following message box appears:

"Please Add [386Enh] EmmExclude=D000-DFFF to your system.ini file"

We were happy to do this because this mimics the line

"Device=C:\dos\emm386.exe ram x=D000-DFFF in config.sys"

When we restarted Citect the following message box appears,

"Please add device=emm386.exe x=D000-E000 to config.sys"

If we change to this line DOS reports unable to set page frame EMS unavailable. If we boot our pc with the original config.sys then there are no errors, we then edit config.sys to D000-E000 which has no effect on DOS but keeps Citect happy when it is started. I believe Citect is just doing a text search of config.sys and system.ini but is looking for the wrong string in config.sys.


When hardware devices which have their own memory. Eg. Digiboard, PCIM cards, Tiway cards and Sy/Link cards are used, they must tell the operating system not to use the memory used by the card. In WFW 3.11 and Windows 95 the user can exclude these memory areas by using the x= option if they are using EMM386 in their config.sys and the [386Enh]EmmExclude option in the system.ini file.

If the user don't exclude these memory, Citect may run for a while and the system may crash when Windows decides to use these memory areas. This have been found to be a cause of many mysterious crashes. In Citect 3.4, drivers which uses boards that have their own memory will warn users to exclude areas of memory if it cannot find the exclude commands in the config.sys file and system.ini file.

But the wrong upper value was used and recommended for the config.sys file. This will be fixed in future version of cidriver and ctregion. To stop the checking from being done just set [general]CheckEmmExclude=0 in the Citect.ini file. If the user is not using EMS memory, then they should use the NoEMS option with the EMM386.EXE. EMS memory is used only by a few old DOS programs and some old DOS games.

This problem does not apply if you are using Windows NT.