If you have come to Net Express from the 16-bit system Object COBOL V3.4 or Workbench V3.4, or you should be aware of the following issues arising from the move to 32-bit.
For advice on moving from 16-bit Dialog System V2.5, see the online book Dialog System Guide.
Features are listed alphabetically. If a feature isn't mentioned, we believe no change is needed.
Library routines to handle a printer.
These are not in Net Express. You should change your code to call the equivalent portable routines that have the prefix PC_PRINTER.
Library routine to scan a directory.
On 32-bit Windows, a parameter of "*" doesn't pick up any filename with an extension, whereas on 16-bit Windows it does.
Note: This routine has been deprecated in Net Express 4.0 onwards: it is provided for backward compatibility only. You should instead use the CBL_DIR_SCAN routines.
Library routine to allocate memory.
The call-by-number routine x"d0" is superseded by the CBL_ALLOC_MEM routine, which you should use for preference.
Memory allocated using the call-by-number routine x"d0" is always initialized to spaces in this product. In the 16-bit COBOL systems, if the DEFAULT-BYTE directive is used to set the default filler byte to a value other than the default (spaces), x"d0" memory is initialized to that new value. Although not documented behavior, your program might be relying on this. Ensure that you explicitly initialize any x"d0" data, rather than relying on what the run-time system has initialized it to.
Library routine for changing the current directory.
On 32-bit Windows, if you include a drive-name in the directory specification, the current drive is also changed. On 16-bit Windows, the current drive is always left unchanged.
16-bit:
The following three call-by-name routines are available only on 16-bit COBOL systems:
| CBL_SCR_CREATE_VC | Create an alternative colormap |
| CBL_SCR_ALLOCATE_VC_COLOR | Store colors in the virtual colormap |
| CBL_SCR_DESTROY_VC | Reinstate the system colormap |
CCI user-level filenames are different for 32-bit. They are as follows:
where xx represents the protocol supported, and is one of the following:
| TC | TCP/IP (CCITCP) |
| NB | NetBEUI (CCINETB) |
| IX | Novell IPX (CCIIPX) |
| DE | Dynamic Data Exchange (CCIDDE) |
In all environments where CCITP process registration demons are available this module is provided as ccitcp2.exe.
The following directives are not available. You should remove them from your code for Net Express.
|
|
|
The directive GNT is used to create .gnt code. The 16-bit directive OMF"GNT" is also supported and has the same effect.
The ASMLIST directive is supported but behaves differently.
Calls that are coded using the "__" (double-underscore) prefix should be recoded to use call convention 8. We strongly recommend this method for forcing a litlinked call. If you need to litlink calls using the double underscore convention, then you should compile the program using the LITLINK(2) Compiler directive.
You can statically link individual calls by using call convention 8. Using this call convention on a CALL literal statement causes the Compiler to declare the literal as an external symbol, so it is resolved at link time, rather than at run time. This call convention can be combined with other call conventions. For example, call convention 10 gives a static linked call to a sub-program which removes the parameters from the stack.
3-D objects drawn using Panels Version 2 look smaller on Net Express than on 16-bit. Net Express uses the native Windows 3-D effects, instead of the public domain DLL used on 16-bit. On 16-bit, a 3-D sunken border is drawn around the outside of controls such as entry fields, list boxes and combo boxes. With the native effects, the border is drawn around the inside of the controls, so the resulting controls look smaller.
In Net Express you can, in addition to run-time switches, also configure certain run-time behavior through the following run-time configurables:
The following run-time switches, which are available in the 16-bit COBOL systems, either are not available or have a different meaning in Net Express:
|
|
|
|
* These switches have a different meaning in Net Express.
If your application is explicitly reading or setting any of these switches, you should remove these dependencies on them.
The win9x_shiftlock_fix run-time tunable is provided for backward compatibility only:
Specifies whether the run-time system includes a workaround for a Windows 98 problem where Caps Lock also acts as Shift Lock.
>>-----set win9x_shiftlock_fix=---.-TRUE-.-----><
+-FALSE+
| TRUE | The run-time system ensures that Caps Lock does not act as Shift Lock |
| FALSE | The run-time system does not ensure that Caps Lock does not act as Shift Lock |
| Default: | TRUE |
| IDE equivalent: | None |
Caps Lock does not act as a Shift Lock provided certain entries are present in the Windows system files. If the entries are present the workaround indicated can be disabled to allow the operating system to handle the keystrokes. This avoids potential problems on keyboard layouts where the workaround has not been verified.
The required entries are as follows:
In config.sys:
DEVICE=<install-dir>\command\display.sys con=(ega,,1)
In autoexec.bat
mode con codepage prepare=((nnn) install-dir\COMMAND\ega.cpi) mode con codepage select=nnn keyb xx,,install-dir\COMMAND\keyboard.sys
where:
Copyright © 2009 Micro Focus (IP) Ltd. All rights reserved.