Welcome to Citect for Windows Version 4.10

This is Citect Version 4.10 for Windows 95 and Windows NT.

Licence Key with Windows NT

If you are running Version 4.10 under Windows NT and using a Citect licence key then you will need to setup a driver so that the key can function correctly. This can be done by following the procedure below.

  1. Go to the Control Panel and open the DRIVERS applet.

  2. Press the ADD... button.

  3. From the list select 'Unlisted or Updated Driver' and press OK.

  4. You will be prompted for a path. Type in the path to the BIN directory of your citect installation and press OK

  5. You should now see a list box with 'Sentinel Hardware Protection Key' as the only item. Press OK to install the driver.

  6. A configuration box will now be shown. Press OK to select the default configuration.

  7. The driver is now installed. You will need to restart Windows NT.

Changes to CITECT.FRM file

This release of Citect for Windows version 4.10 requires a modification to the CITECT.FRM file for Project Editor to run Citect correctly. If you use the standard CITECT.FRM file then simply install this version of Citect and upgrade your projects. Please note that you should backup all your projects prior to upgrading so that you can revert back to your previous version of Citect if need be. If you have a customised CITECT.FRM file you will need to backup your customised version prior to installing Citect for Windows version 4.10. Then after installing version 4.10 you will need to manually merge the installed CITECT.FRM with your customised version. In particular you will need to change the following lines in the FRM file:

COMMAND "Compile", "ctcmp32", Master.NAME;

COMMAND "Run", "citect32";

COMMAND "Archive", "ctback32", Master.NAME;

Replace these three lines with the following:

COMMAND "Compile", "ctcmp32", "/I", Master.NAME;

COMMAND "Run", "citect32", "/I";

COMMAND "Archive", "ctback32", "/I", Master.NAME;

After merging save the new customised FRM file into your bin directory and upgrade your projects as suggested in the previous case.

The following known problems exist with this version.


The total memory and physical memory reported by Citect have different meaning from that reported in previous versions. This information is returned in the Cicode function CitectInfo and also displayed in the kernel. Windows 95 and Windows NT will report a free memory based on the assumption of having 2Gb of virtual memory. This will give a free memory total value of around 2Gb. The physical memory will be reported as a small value in the range 0 to 1Mb. The memory sub systems in Windows 95 and Windows NT are far superior than the memory system in Windows for Workgroups and you should not have problems with available physical memory. If you start to run low on physical memory Windows 95 or Windows NT will start paging to disk and the performance of your computer will degrade.

The recommended minimum memory to run Citect under Windows 95 is 12Mb and at least 20Mb for Windows NT. The exact amount will depend on the size of your project and other applications you are running. You will need more memory when you want to run Citect runtime and the configuration package at the same time.


Long file name support has not been completed in this version. This feature will be provided in a future release of Citect. The Citect backup utility will convert all long file names to short file names when they are backed up. You should not use long file names for your configuration page files.

If you want to run Citect in a mixed version configuration you must not use long file names. For example if you wanted to run some nodes under Windows 3.x using Citect version 3.x and some under Windows 95 and Windows NT with Citect version 4.x. You cannot use long file names as Windows 3.x does not have long file name support.


Windows ANSI characters are converted to OEM characters by default. This conversion is controlled by the Citect.ini parameter [Ctedit] ANSIToOEM described below. You may need to change the setting of this parameter if the text in your projects appears incorrectly on your version of Windows.

[Ctedit] ANSIToOEM

Indicates whether Windows ANSI characters are converted to OEM characters.

Allowable Values 0 (Characters are not converted)

1 (Characters are converted)

Default Value is 1.

Users of European versions of Windows who are upgrading projects created with v4.01 to v4.10 will need to set ANSIToOEM to 0. Users of Arabic versions of Windows will need to set ANSIToOEM to 0.

A new parameter has been added to control ANSI to OEM character conversion when printing to LPTx.DOS. Normally, this parameter should be left set to the default value of 1, however, if the characters are not printed correctly then you may need to change the setting.

[Device] LptDosANSIToOEM
Indicates whether Windows ANSI characters are converted to OEM characters when printing alarms and reports to LPTx.DOS. The conversion is required due to differences between Windows and DOS character sets.
Allowable Values 0 (Characters are not converted)
1(Characters are converted)

Default Value is 1.

See the Using Parameters topic in the on-line Help for information on how to change these parameters.


The TITCPIP driver is released in a Beta state. The Citect Testing Department have not completed formal testing of this driver. Some problems have been reported when using the driver with CAMP messaging turned on. This feature has been turned of by default to avoid these problems.

The following new features are not documented.



SleepMS suspends the current Cicode task for a specified number of milliseconds. After the time delay, the Cicode task wakes and continues execution. If the sleep time is 0, the Cicode task is pre-empted for 1 time slice only. If the Cicode schedular has no other tasks to run sleeping for 0 will return immediately. The Cicode task may sleep for a longer period of time than specified if Citect has a higher priority task to execute.

This function does not affect any other Cicode tasks only the task calling SleepMS() is suspended. If you have Cicode that runs continuously in a loop, you should call the SleepMS() function somewhere within the loop, to pause the loop and allow other tasks to run.

This function is a blocking function. It will block the calling Cicode task until the operation is complete.

The exact sleep time will depend on the resolution of the clock of the computer. With Windows 3.x the clock resolution is 55ms. With Windows 95 the clock resolution is 1ms and with Windows NT the clock resolution is 10ms. So if you specify a sleep time of 5ms with Windows NT then the task will sleep for at least 10ms.

Return Value 0 (zero) if successful, otherwise an error is returned.

Related Functions Sleep, TaskNew, ReRead


! sleep a while in polling loops

WHILE < waiting for event or time> DO

! do what ever here




SleepMS(100); ! sleep for 100 ms to give other tasks a go.


! the longer the sleep the better for other tasks.