Welcome to Citect for Windows Version 4.00

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

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.


For Citect to communicate across the network you must setup the LANA number in CtNode utility. This tells Citect which NetBIOS protocol stack you want Citect to use. With Version 3.x CtNode would display a list of available protocols. With Windows 95 and Windows NT CtNode does not know what protocols are available. You can find this information by looking in the Windows Control Panel, under the network section.

With Windows NT select the NetBIOS protocol and you will be displayed a list of LANA numbers in the dialog box. The default NetBIOS protocol stack is 0 and will count up.

With Windows 95 you cannot see the actual LANA numbers as with Plug and Play these can change dynamically. The only assumption you can make is that the default NetBIOS protocol stack is LANA = 0. The next protocol stack will start at 7 and then count down. So if you have 3 NetBIOS stacks installed you will have LANA numbers 0, 6 and 7.


When you are using a Cicode function that expects a printer port name, new UNC style printer port names (ie. beginning with \\) cannot be used. Instead you must capture a printer port. This is done through the Printer setup icon in the Windows 95 / NT control panel. Once this is done, you can use the capture port name (eg. LPT1:) and all user functions will work as normal. The same applies for using a printer as a logging device. However, printing in the Project Editor and Graphics Builder will work fine without any alterations.


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.

The following new features are not documented.



Description 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.