Interactive COBOL Runtime/Development Readme 4.51 18-May-2011 Introduction ------------ This readme file provides additional information for this release of the Interactive COBOL product. Please take the time to read through the file for information that may apply to your installation environment and that will help you have a smooth and successful installation. Readme files may include (depending on components installed): readic.txt This readme read1st.txt Getting started under Windows (Windows only) readcgi.txt Installation & Usage information for cgiCOBOL readcopy.txt Third party/Open Source copyright information readdoc.txt Documentation list & last-minute documentation changes readinst.txt Installation procedures, tips, and notes readlink.txt Installation & Usage information for the link kit readodbc.txt Usage information for the ICODBC driver readsp2.txt SP2 and FormPrint information (Windows only) readuser.txt Usage information for the user library (api) readwmsg.txt Usage information for the Web Message utility (ICWEBMSG) readwin.txt Windows Deployment Notes readunix.txt Unix Deployment Notes examples/fromicobol2.txt Development differences between ICOBOL 2 and ICOBOL 4. examples/fromicobol3.txt Development differences between ICOBOL 3 and ICOBOL 4. **** Under Windows, the read1st.txt helps explain a very simple install and getting started for the first time user/developer. **** Product updates and documentation can be downloaded through our Web site at http://www.icobol.com or from the ftp site at ftp.icobol.com. To log on to the ftp site use "anonymous" for the username and "your email address" for the password. Sections in this README include: Introduction Revision specific items Bug Fixes Changes and New Features Support Information Support Form (mail or FAX) Definitions: Unless stated differently: Windows will be used to refer to all supported versions of Windows which include all editions of Windows 2000*, Windows XP, Windows 2003, Windows Vista, Windows Server 2008, and Windows 7. x32 Editions will be used to refer to the 32-bit editions of Windows XP Pro, Windows Server 2003, Windows Vista, Windows Server 2008, and Windows 7 when required. x64 Editions will be used to refer to the 64-bit editions of Windows XP Pro, Windows Server 2003, Windows Vista, Windows Server 2008, and Windows 7 when required. NOTES: 1. Windows 9X and Windows NT4 are no longer supported platforms for ICOBOL. 2. Only upgrades are allowed on Windows 2000, new installs require at least Windows XP as of 4.40. Windows XP ServicePack2 Note ---------------------------- After installing Windows XP ServicePack2, if a network function stops working then please note that with the release of ServicePack2 Microsoft's default firewall policy is to block inbound connections. Therefore, after installing Service Pack2, ports 7333 (used to connect with ICNETD for client/server) and 7334 (used to connect with ICPERMIT for licensing) might get blocked and therefore this is the trouble. So, whenever this is the case, open the particular port in the advanced option of the IP firewall. For Windows XP for example, this can be done from Control Panel -> Windows Firewall and either Add program selecting ICPERMIT.EXE and/or ICNETD.EXE as needed or Add Port with a name of ICPERMIT, port 7334, TCP or a name ICNETD, port 7333, TCP. Windows Vista/Server2008 and later releases Note ------------------------------------------------ These systems do not come with .hlp file support and third-party developers cannot ship the needed components. Some .hlp files still exist in ICOBOL. These can be viewed by loading the winhlp32.exe download available directly from Microsoft. Revision Information -------------------- **************************************************************** **************************************************************** ------ ICOBOL 4 (11/2008) ----- ICOBOL 4 is the next major release of ICOBOL coming over eight (8) years since ICOBOL 3 was released in August 2000. Several additions in ICOBOL 4 are: 4.00 ---- * Ability to run ICOBOL 2 .cx files without change * Enhanced logging and a new Remote logging capability * Updated ThinClient support with automatic reconnect and both character and gui mode support in the same client under Windows * Encoded client/server communication paths * Two new builtins: IC_DECODE_CSV and IC_ENCODE_CSV 4.10 ---- * Ability to create .pdf files * Bidirectional pipes under UNIX * Pipe opens under Windows 4.20 ---- * New builtins for enhanced ThinClient support 4.30 ----- * Apple Mac OS X (x86) support added 4.40 ---- * New Intrinsic Functions * Heartbeat support for icios surrogates (automatic disconnect) 4.50 (ISQL) ---- * Remote support of ISQL datasets * GET COLUMNS and GET TABLES statements added for ISQL support * New Intrinsics SQL-ADD-ESCAPES and SQL-REMOVE-ESCAPES * New option for GET DIAGNOSTICS statement of COLUMN COUNT **************************************************************** **************************************************************** **** Revision 4.51 **** Bug Fixes in 4.51 ----------------- 1. For the runtime, the exception status was not being cleared at times on a shutdown causing a spurious exception message. Changes and New features in 4.51 -------------------------------- 1. For the runtime, if ICRUNLK is specified, the link file is opened read-only, read into memory, and closed. The link file is now no longer left open. 2. Standard Auditing. The audit log format has changed slightly. The first line will now just be: Audit log opened This will match the last line of: Audit log closed The second line will now be: Auditing with pid on The new entries here include pid and machine. 3. Enhanced Auditing. The format for enhanced audting has also been updated. Format will look like: date-time-stamp: subsystem: module(line#): operation Examples: 2011-06-20 09:13:54.37: MPX: init_mpx(2448): Enter 2011-06-19 15:08:02.92: WEB: ic_send_mail_bltn(529): Enter 2011-06-20 09:14:52.12: SP2: sp2_io_thread(555): recv event In general Enhanced audting should only be enabled when requested by Support or to provide more information for a particular problem as the logs will be very verbose. **** Revision 4.50 **** Bug Fixes in 4.50 ----------------- 1. A compiler fix for the INITIALIZE statement using the DEFAULT reserved word. 2. In previous Language Reference Manuals in the CONNECT statement the environment variable to pass the user name was incorrectly documented. It should be ICSQLUSER. Changes and New features in 4.50 -------------------------------- 1. Under UNIX, a ThinClient only release is now available. It will show as a tc after the revision, i.e. ln6tc.tgz. So for 4.50 this would be: ln6450tc.tgz 2. Under Apple Mac OS X, the release is now in a .tgz format. 3. Under UNIX, the installic and removeic scripts have been updated to allow a "status" argument and allow for a default revision to be specified (-R rev). Updated syntax: installic [status] | [-R rev] { [std] | { [icrun] [icsys] [icodbc] [icuser] [icbltn] }... } removeic [status] | [-R rev] { [all] | { [icrun] [icodbc] [icuser] [icbltn] }... } The status argument will show ALL the ICOBOL shared libraries available in the /usr/lib directory. The -R rev argument allows for the default revision to be specified. Examples: installic status removeic -R 444 4. In the runtime with ISQL, the CONNECT statement can now reference a remote dataset (DSN) using the following ICNETD syntax: @[icnetd:]//remote-machine[:port-address]/dsn Only forward slashes (/) are allowed under both Windows and UNIX/Linux. The first remote connection will communicate with the ICNETD daemon on the remote machine and start an ICSQLS surrogate that will provide the resources requested by the client. ICNETD must be running on the remote machine and there must be an available ICSQLS license for the surrogate. ICNETD must be a 4.50 or greater version. If no license is available an error IC011 will be given and further GET DIAGNOSTICS will provide an error of 2339 The required software license is not authorized. The surrogate will remain until its client process has terminated even if there no open connections. If required, the user will be prompted for a username/password login to the remote machine. This facility can be used on a Linux/UNIX machine to access the ODBC/SQL datasets on a Windows machine. ****REMOTE ICSQLS surrogates require a new ICSQLS license!!**** 5. New trace flags have been added for the enhanced auditing support. These are ICNETD, SQLS, SYSERRS. Updated syntax is below: Syntax is: -a[:[aflag][:tflag][,tflag]...] Audit to .lg -A path[:[aflag][:tflag][,tflag]...] Audit to path, or path/.lg if path is a directory aflag is a|b|d|da|db|p|pa|pb|t|ta|tb|u|ua|ub a=append, b=backup, d=datestamp, p=process-id, t=timestamp, u=username tflag is ALL|ICNETD|MPX|NET|PDF|SP2|SQL|SYSERRS|WEB ICNETD provides enhanced tracing for ICNETD MPX provides enhanced tracing when using network multiplex i/o from the runtimes, iclogs, icrunrc, icodbcdr (any program that uses the network) NET provides for enhanced network tracing for any network traffic PDF provides enhanced tracing when using the PDF facility from the runtimes SP2 provides enhanced tracing when using SP2 or QPR from the runtimes or icrunrc SQL provides enhanced tracing when using ISQL from the runtimes SYSERRS provides tracing for System errors WEB provides enhanced tracing when using any internet type facility like email from the runtimes ALL enables all sub-system tracing. These trace flags should only be used when requested by support or to track down a real problem as the logs are very verbose. 6. New statements for ISQL added: GET COLUMNS and GET TABLES statements added to access the columns and tables of the active dataset. Returns a result set that can be fetched. See the 4.50 Language Reference manual for the full syntax and the specifications for the columns returned. Below is a simple view of the syntax: GET COLS|COLUMNS id/lit WITH [CATALOG id/lit] [SCHEMA id/lit] [TABLE id/lit] [COL|COLUMN id/lit] [ON SQLERROR imperative] [NOT ON SQLERROR imperative] [END-GET] GET TABLES id/lit WITH [CATALOG id/lit] [SCHEMA id/lit] [TABLE id/lit] [TYPE id/lit] [ON SQLERROR imperative] [NOT ON SQLERROR imperative] [END-GET] 7. New Intrinsic functions SQL-ADD-ESCAPES and SQL-REMOVE-ESCAPES added. See the 4.50 Language Reference manual for documentation. 8. New selection for the GET DIAGNOSTICS statement. COLUMN COUNT has been added to give the number of columns in a result set. See the 4.50 Language Reference manual for documentation 9. Because of the above 6 - 8, a new .CX revision is now generated. Revision 6 .cx files will support the two new GET statements, the two new Intrinsics, and the addition to the GET DIAGNOSTICS statement. Code rev 6 will now be the default. To compile for an older revision use the appropriate -R n to the compiler. 10. The example, isqltest.sr has been updated to show the above new features. 11. A new base terminal type (Mac) has been added to support the Terminal session on an Apple Mac OS X console. 12. The AIX and Mac OS X releases now support MAC - based licensing. ICINFO can be used to show the MAC addresses. 13, The runtime will no longer require the WATCH option in order to allow WATCH. WATCH is now available for all multi-user ICEXEC configurations when enabled in the configuration. 14. The runtime will no longer require the IC2X license option in order to run ICOBOL 2 .cx files. In addition, the runtime will auto detect which version of the runtime to start on the first .cx program load so the -I 2 switch is not required. The command: icrun logon2 where logon2 is an ICOBOL 2 .cx file will now run. You still cannot mix ICOBOL 2 and ICOBOL 3/4 .cx files. **** Revision 4.44 **** Bug Fixes in 4.44 ----------------- 1. Under Windows, in the ICIDE, under Project, Properties, Options, the "-R n" selection in the Common Options box was shown with the next line "-G q" too close to the "5" selection. This has been corrected. 2. When using the new intrinsics, IC-NUM-TO-HEX and IC-HEX-TO-NUM, the returned vales were incorrect at times. 3. ICREORG was not allowing a -I type:min:max. 4. ICREORG was padding line sequential output files with null. This is now changed to spaces. 5. At runtime, when using a .pdf background file an error: ERROR: %%EOF was not last in the file: process_xref_trailers_pdf could be given. Changes and New features in 4.44 -------------------------------- 1. Under Windows, when doing a new install, the default working directory will now be \ICOBOL on the system drive. Previously the default was the root of the system drive but later versions of Windows protect that location from creating or modifying files in that directory by normal users. 2. Added a new switch -e for icpqutil to fix any error that it can. Also added a few new error checks and dumping objects clean up. 3. Under Windows, Descriptions have been added for installed services along with additional Uninstall settings where appropriate for both winxxx and docxxx installers. **** Revision 4.43 **** Bug Fixes in 4.43 ----------------- 1. When reading a varying length sequential record, the record size was not being returned on a timeout error and any INTO was not being processed. In addition, on an EOF error the record size was not being set to 0. 2. Under UNIX, handle a user belonging to more than 64 groups. (Now handles belonging to 256 groups.) Changes and New features in 4.43 -------------------------------- 1. Under Linux, ICINFO will now show the number of processors detected and the model using /proc/cpuinfo. **** Revision 4.42 **** Bug Fixes in 4.42 ----------------- None. Changes and New features in 4.42 -------------------------------- 1. The IC_SEND_MAIL builtin has been enhanced to take additional optional arguments that allow additional attachments to be sent. CALL "IC_SEND_MAIL" USING to-list, from-addr, cc-list, bcc-list, subject, message [[[, att-type, attachment] [, uname-pass]] [[, att-type, attachment]... ] The second set of att-type and attachment can be specified multiple times, always in pairs, until the maximum number of entries on a CALL. Same rules apply, if att-type is blank then attachment must be blank, if attachment has a filename then att-type must specify the appropriate mime-type. All attachment files are checked before the sending of the email that they do exist. Again cc-list, bcc-list, att-type, attachment, and uname-pass can be blank. The sendmail.sr example has been updated to provide this support. **** Revision 4.41 **** Bug Fixes in 4.41 ----------------- 1. Under UNIX, handle a user belonging to more than 16 groups. 2. Under Windows, when installing a ThinClient client or using Remote Licensing the remote machine name/address can be longer. 3. In certain cases with remote names/addresses, not enough room was allowed for the remote computer address. 4. In the debugger, when listing break points at lines, the line number could be one off. 5. When compiling with the VX COBOL dialect selected (-D vx) and using the -G s switch to use single-keyed ISAM files the delete-is-physical bit was not being set for created files. This is now fixed but you will have to re-compile. For any existing ISAM files the delete-is-physical must be set by recreating the file using icreorg. 6. ICPERMIT has been updated to better handle denial-of-service (DoS) attacks. A message such as: "Closed an invalid connection" in the log file indicates an attempt to connect to ICPERMIT that was not successful. Multiple occurrences of this message in a short time period could indicate a denial-of-service (DoS) attack. 7. ICNETD has been updated to better handle denial-of-service (DoS) attacks. Messages such as: "Device Timeout: Reading Connection string from socket" or "An invalid or corrupted network packet was received: Processing connection string from socket" in the log file indicates an attempt to connect to ICNETD that was not successful. Multiple occurrences of these messages in a short time period could indicate a denial-of-service (DoS) attack. Changes and New features in 4.41 -------------------------------- 1. The IC_WINDOW_TITLE has been enhanced with two additional format string functions. %m can be used to insert the current machine name. %O can be used to insert the current os name. 2. When the ICOBOL 2 option is specified to the runtime and Info messages are enabled, a message will be given that the runtime is running in ICOBOL 2 mode. 3. Enhanced audit-tracing. An enhanced tracing mechanism has been added. When using an Audit switch (-a|-A) an additional set of options can be specified to enable verbose tracing of certain sub-systems. Currently this list includes: ALL, ICNETD, MPX, SP2, PDF, WEB This tracing should only be done to debug as it is consuming of resources. Syntax is: -a[:[aflag][:tflag][,tflag]...] Audit to .lg -A path[:[aflag][:tflag][,tflag]...] Audit to path, or path/.lg if path is a directory aflag is a|b|d|da|db|p|pa|pb|t|ta|tb|u|ua|ub a=append, b=backup, d=datestamp, p=process-id, t=timestamp, u=username tflag is ALL|ICNETD|MPX|SP2|PDF|WEB ALL includes all the trace flags ICNETD provides enhanced tracing for ICNETD MPX provides enhanced tracing when using network multiplex i/o from the runtimes, iclogs, icrunrc, icodbcdr (any program that uses the network) PDF provides enhanced tracing when using the PDF facility from the runtimes SP2 provides enhanced tracing when using SP2 or QPR from the runtimes or icrunrc WEB provides enhanced tracing when using any internet type facility like email from the runtimes ALL enables all sub-system tracing **** With the runtimes (ICRUN/ICRUNW/ICRUNRS/ICRUNCGI) this **** **** facility replaces the previous -t (trace switch) **** At this point the following programs make use of this ability: All runtimes (ICRUN, ICRUNW, ICRUNRS, ICRUNCGI): MPX, SP2, PDF, WEB icrunrc: MPX, SP2 icnetd: ICNETD (Format updated in 4.51. See that section.) 4. Under UNIX, ICINFO will now detect and display all the supplemental groups that the current owner belongs. **** Revision 4.40 **** Bug Fixes in 4.40 ----------------- 1. Under Windows, ICINFO was not correctly handling duplicate MAC addresses. 2. ICNETD has an updated timeout of 5 minutes for a connection to be finalized. (4.32.01) 3. ICRUNRC has been updated to prevent the following message from being written to the log by ICNETD at initial startup: "Warning: Device timeout: Peek2 receiving from client." Changes and New features in 4.40 -------------------------------- 1. New Intrinsic Functions added: ic-center, ic-decode-url, ic-encode-url, ic-get-env ic-hex-to-num, ic-msg-text, ic-num-to-hex, ic-pid-exists, ic-serial-number, ic-trim, ic-version The second group of these new functions mimic their builtin counterparts. Programs using these function must be run with ICOBOL 4.40 or greater. Compiler .cx file code rev 5 is now the default. 2. The ICOBOL compiler will now generate code rev 5 .cx files by default. To carry .cx files back to a revision before 4.40 use the appropriate -R x (Revision) switch to generate a compatible .cx file. 3. New builtin added: ic_center 4. A new environment variable has been added for use with remote file i/o. (ThickClient mode) (I.e. using network files via icnetd as "@[icnet:]\\machine-name[:port]\path"). The ICNETUSESHEARTBEAT environment variable can be set that will cause a connection to be made to the remote surrogate (icios) with a heartbeat timer. This will allow the icios surrogate process to detect when the client is longer responding and allows for it to cleanly terminate. When enabled, this will happen after the loss of two heartbeats, usually between 60 and 120 seconds. Currently all the runtimes (ICRUN, ICRUNW, ICRUNRS, ICRUNCGI), the user library, and the icodbc driver support this environment variable. ICNETUSESHEARTBEAT=1 To enable client-server heartbeats. This setting must be enabled on the client. Clients must be 4.40 or greater. ICNETD/ICIOS is required to be at the 4.40 or greater level to support this type of connection. In some cases there may be a loss of i/o performance when using this mode. 5. ICRUNRC now supports a crash recovery mode when not using SP2. Specifying the -c option AND disabling SP2 support (-N s) provides the ability to re-connect to the server (icrunrs) session even after the client process has crashed or the client machine has been restarted. When this mode is in use, the next instance of an icrunrc from the particular host-machine/user will reconnect to the "orphaned" surrogate. Only one host-machine/user process can be reconnected. If not used with the ICRECONNECTTIMEOUT setting, the surrogate will wait forever. Otherwise the ICRECONNECTTIMEOUT value will be used to terminate the surrogate. 6. Under Windows, new installs require at least Windows XP (version 5.1). Only upgrades can be performed on Windows 2000 based machines. 7. Under Windows, ICINFO has a new option -S r that allows for some default Windows registry setting to be set correctly if no install is done, or the values are corrupted. Administrator privileges are required to set these values. The values changed are the values that show as: "ERROR: LanmanWorkstation ..." and "ERROR: LanmanServer ..." This is required if the ICOBOL installer is NOT used to install portions of ICOBOL on a system. **** Revision 4.32 **** Bug Fixes in 4.32 ----------------- 1. In the debugger, when using Info Open, the runtime could crash if the stored simple filename was too long. 2. ICIOS was not properly handling .xdb or .xdt opens. Changes and New features in 4.32 -------------------------------- 1. Pipe opens can now have a larger open filename size. **** Revision 4.31 **** Bug Fixes in 4.31 ----------------- 1. Updated an ICNETD timeout connection from .5 sec to 1 sec for an initial connection. (4.30 Bug fix #3) Changes and New features in 4.31 -------------------------------- None. **** Revision 4.30 **** Bug Fixes in 4.30 ----------------- 1, Under UNIX, the installic and startic scripts should have had their base revision number updated for 4.25. Updated for 4.30. 2. Under UNIX, the installic script had a bug in the help selection. An extra fi. 3. When using ThinClients, sometimes ICNETD could hang and prevent other client connections. (4.25.01) Changes and New features in 4.30 -------------------------------- 1. Under Windows, ICINFO has been updated when showing MAC addresses to not show duplicates. In addition, it will give a message if NO ICOBOL software is found to be installed on the machine. 2. Under Windows, in the installation when adding shortcuts and any of the Runtime, the ThinClient client and/or the IDE have been selected, an additional selection is provided to add those shortcuts to the Desktop. 3. Updated the readdoc for how to script winxxxr and winxxxc installations for Windows installs. 4. Some logging messages in ICNETD have been updated to better describe was is happening. 5. U/FOS support added for the Linux 2.6 build. 6. An Apple Mac OS X (x86) release is now available. **** Revision 4.25 **** Bug Fixes in 4.25 ----------------- 1. Under Windows, when using ThinClient client on Windows Vista or greater, overlapped io is more often to occur occasionally causing an extra packet to be generated in the network queue causing unknown effects. (Hangs, crashes). (Multi processors can cause this to happen more frequently.) 2. When using ThinClients, sometimes ICNETD could hang and prevent other client connections. (4.25.01) Changes and New features in 4.25 -------------------------------- 1. When using ThinClient, if an audit log has been specified and the network "heartbeat" between the client and server is lost, a processing for ICRECONNECTTIMEOUT will be shown along with a message if the "heartbeat" is regained, i.e. the network is now responding. **** Revision 4.24 **** Bug Fixes in 4.24 ----------------- None. Changes and New features in 4.24 -------------------------------- 1. For the IC_SEND_MAIL builtin, the trace option is now used to have tracing information written to the log file. See readdoc for more. **** no Revision 4.23 **** **** Revision 4.22 **** Bug Fixes in 4.22 ----------------- 1. In certain cases, an End of File error (exception 037) on standard input was not terminating the runtime causing an endless loop. Changes and New features in 4.22 -------------------------------- None. **** Revision 4.21 **** Bug Fixes in 4.21 ----------------- 1. The IC_EXTRACT_STRING builtin was not handling the length argument correctly resulting in invalid data moved or and invalid data error. 2. Under UNIX, when placing files into the Printer Control file, the file would not be marked closed such that a Delete File or a new open would fail. Changes and New features in 4.21 -------------------------------- 1. ICNETD's logging information has been updated to better show reconnection information for ThinClients. **** Revision 4.20 **** Bug Fixes in 4.20 ----------------- 1. In certain cases the compiler was not correctly handling a paragraph where the end of a perform could not be reached because of a branch. Previously an Info message was given as: "This paragraph is the end of a PERFORM range, but the end of the paragraph is unreachable" A Warning message is now generated and additional code is generated to allw the code to execute as expected. These newly generated .cx files can be moved back to previous runtimes (even 3.xx) as long as the code rev (1, 2, 3, 4) is correct for that runtime. ** Please recompile. ** Changes and New features in 4.20 -------------------------------- 1. New builtins has been added that allows a COBOL ThinClient session to interact with its remote client (icrunrs and icrunrc). These new builtins are: IC_CLIENT_CALLPROCESS, IC_CLIENT_DELETE_FILE, IC_CLIENT_GET_ENV, IC_CLIENT_GET_FILE, IC_CLIENT_PUT_FILE, IC_CLIENT_RESOLVE_FILE, IC_CLIENT_SET_ENV, IC_CLIENT_SHELLEXECUTE Both the surrogate (icrunrs) and the client (icrunrc) must be running 4.20 or greater. IC_CLIENT_SHELLEXECUTE is only supported when the client is running under Windows. Documentation is available in the updated Language Reference Manual 4.20 for these builtins. 2. The IC_CHECK_DATA builtin has been enhanced to support 32-bit calculations. In addition options 4, 5, 6 were added. Documentation is available in the updated Language Reference Manual 4.20 for the enhancements. 3. Under UNIX, ICINFO has been updated to show TCPIP KeepAlive settings along with the maximum shared memory area. **** Revision 4.13 **** Bug Fixes in 4.13 ----------------- 1. When using the debugger, the Info Perform command was one-line off in its line count. Changes and New features in 4.13 -------------------------------- None. **** Revision 4.12 **** Bug Fixes in 4.12 ----------------- 1. When using the debugger with ICCOLOR set to process, sometimes the command window would not show characters being typed. Changes and New features in 4.12 -------------------------------- 1. Under Windows, the Sentinel driver has been updated to 7.5.1 2. Under Windows, when using the gui runtime (ICRUNW) or the ThinClient (ICRUNRC), the Maximize selection will now enlarge a font to the maximum size that all the current screen (ICLINES and current ICCOLUMNS) can fit on the display. Font sizes will never shrink on a Maximize. **** Revision 4.11 **** Bug Fixes in 4.11 ----------------- 1. Under Windows, at times when using ICRUN and doing a network logon, an invalid operation would be given. 2. At times, tracing would not work with ICRUNRC. 3. Under Windows, at certain times ICEDCFW could not edit a .cfi file. 4. The help files for ICRUNRC were incorrect for ICRECONNECTTIMEOUT. The units should be seconds. 5. There was a case where ICFIXUP would not completely fix a file. (Matches ICCHECK #1 below in Changes.) 6. When using ICRUNRC, at times an Invalid operation was being given instead of prompting for login information. 7. Opening a relative file across the network using ICNETD would give a File Status 30, Exception 137 Invalid argument to system call. 8. (.02) Under Windows, when using a telnet session the error No Window handle: init_wmc() could be displayed. Changes and New features in 4.11 -------------------------------- 1. ICCHECK has been updated to show the record position in the data file for some unreliable checks. 2. Under Windows, ICINFO will now show the number of monitors connected and size information of the Primary monitor. In addition, it will show System Memory in Megabytes and Gigabytes. 3. The compiler, ICOBOL, has been enhanced such that it can now handle a maximum of 200,000 lines that can be compiled per program. An individual file is still limited to no more than 65,534 lines. So the -S switch is now: -S num Num specifies the maximum number of lines that can be compiled. The absolute max is 200,000 while the default is 60,000. Any .sy files built by 4.11 and higher cannot be moved back to runtime versions before 4.11. (.cx files are unchanged.) 4. The debugger has been enhanced to handle the larger .sy files. 5. The debugger has been enhanced to support compressed mode. The View command has been updated to turn Compress mode on and off. View Compress ON | OFF (Compressed mode is when a screen supports two levels of column width like 80 and 132. So the ICCOLUMNS setting would be ICCOLUMNS=80:132 for example.) **** Revision 4.10 **** Bug Fixes in 4.10 ----------------- 1. At times, ICPERMIT was not handling license files with mismatched line-terminators. Changes and New features in 4.10 -------------------------------- 1. The shared area revision has been incremented. (Due to the PDF support) 4.10 executables require the shared area provided by an ICEXEC 4.10 or greater and will not run with earlier revision executables or with an earlier revision shared area. 2. The runtime supports the creation of .pdf files when writing to sequential data-sensitive files. New extended open options are available for this purpose. x=pdf specifies that the file should be opened as a new .pdf file. If the .pdf extension is not present at the end of the filename, it is appended. f=num specifies a particular format for the .pdf file. A PDF format is configured by icconfig and/or icedcfw and provides the definition of what the .pdf file will support including paper size, optional background form, margins, base font and font size, line spacing, whether landscape or portrait, and whether to wrap lines. If the filename does not already have a .pdf extension, a .pdf extension is added. The PDF support is provided as an optional licensing option added to a runtime license. Possible errors at open include: 276 PDF writing facility is not available (need the pdf optional license) 277 PDF format requested is not configured or enabled 280 The required form for PDF writing had errors 281 The background form uses features that are not implemented yet 282 The background form reader encountered unexpected errors with the file 283 The background form has attribute values that are not supported Only OPEN OUTPUT is supported when generating a PDF file. PDF files cannot be read or appended by ICOBOL. Some sample background .pdf files are provided in the print directory. These include: pastdue_bw pastdue_color pastdue_large pastdue_small preliminary_watermark four_page_sample Background .pdf files can be generated by using a scanner to scan in the form that you want to impose to a .pdf. Adobe Acrobat can also be used to generate background .pdf's along with various word processors either natively or with a .pdf add on. Envyr can also convert most documents to a .pdf for a small fee. Please contact sales@icobol.com. If Background .pdf files do not have the same page size as the paper size to which you are writing they can be scaled and/or aligned based on settings in the PDF format. (Scale, Center, Fit Margins) Generally background .pdf files should be PDF version 1.4 files. (Acrobat 5.0) 3. ICCONFIG and ICEDCFW have been updated to provide a mechanism to define PDF Formats in the configuration file. A PDF format is used to specify how to write a .pdf file. Settings include: paper size, optional background form and whether its multipart, scaling, centering, fiting to margins, margins (top/left/right/bottom), font name and size, line spacing, orientation (landscape or portrait), autowrap, and multipart count. For ICCONFIG: ------------ In System Paramters a new paramter is available as: Number of PDF formats. (Valid entries are 0 to 256, default is 32.) Under System Configuration there is a new selection: 7) Configure PDF Formats Shows a screen as such: PDF Format Configuration Format Number: 0___ Enable? Y Comment: ____________________ Paper: Letter Width: 612 (8.5) Height: 792 (11) Background Form: ______________________ Multipart: N Scale: N Center: Y Fit Margins: N Margins: Top: 36 (0.5) Left: 18 (0.25) Right: 18 (0.25) Bottom: 36 (0.5) Font Name: Courier Alignment: None Font Size: 12 Line Spacing: 0 (0) Autowrap: N Landscape: N Multipart Count: 1 Summary: Page Size: 612 x 792 units (8.5 x 11 inches) Printable Area: 576 x 720 units (8 x 10 inches) Approximately 80 characters by 60 lines Page Dimensions, Margins are 1/72 inch units. Parentheses show inches. Press , to alter number, Enter to select, ESC to exit. Where: Format specifies which format description to configure. Valid values are as specified in System Parameters. Enable: Whether this entry is enabled for use. Yes or No. Comment: A description of this format (This is stored in the shared area and can be viewed with the Printer Control Utility or icsmview.) Paper: A5, A4, Executive, Lineprinter, Tabloid, Ledger, Legal, Letter, Custom (Custom allows a width and height to be specified.) (The maximum width and height are 20 in. x 20 in.) Background Form: (pdf file holding a background image) (file must reside in the ICROOT/print directory) (This entry is optional) Below 4 options are only if a Background form is specified. Multipart: (Y/N) Default N (Setting Multipart to Yes specifies that the given image is a multi-page form. When set, the runtime will generate a logical page multiple times for each page in the file.) Scale: (Y/N) Default N (Says to scale the image to the size of the paper or margin keeping the aspect ratio. Images can be scaled larger or smaller.) Center: (Y/N) Default Y (Centers the image within the size of the paper or margins) Fit Margins: (Y/N) Default N (Says to scale or center to the specified margins or the paper size). Margins: Top/Left/Right/Bottom (specify margins within which to print) Fonts: Courier, Courier-Oblique, Courier-Bold, Courier-BoldOblique, Helvetica, Helvetica-Oblique, Helvetica-Bold, Helvetica-BoldOblique Times-Roman, Times-Italic, Times-Bold, Times-BoldItalic (These are the standard basic Adobe fonts.) Alignment: None, Character, Word (for proportional fonts, how to place a line of data within the output line.) Font Size: 2-72 Line Spacing: 0-1440 (gap to leave between lines in 1/72 units) Autowrap: Y/N (whether to wrap lines that are too long) Orientation Landscape or portrait Multipart count: 1-9 (if greater than 1, logically prints a multi-part form) (ie. each logical page is printed that many times) (if a multi-page file was specified, and Multipart is set to Y, then this number must match the number of pages in the file.) (if a multi-page file was specified, but Multipart is set to N, then this file will be used in a modulo fashion as logical pages are presented.) At the Bottom of the screen is a Summary section that shows the page size and printable area along with approximately how many characters per line and lines per page can be printed. This section is kept constantly updated. For ICEDCFW: ------------ The System tab shows a new parameter in the Device management section: PDF Format Count: 8 (Valid entries are 0 to 256, 32 is the default.) There is a new tab called PDF after the PCQ tab. Configure PDF Formats Shows a GUI screen with the same general selections as the above non-gui screen. Optional Background form ------------------------ The use of the Background form allows a Form to be scanned in as a pdf file and imposed as the background to the characters that are to be printed. This allows for special forms to no longer be purchased. The Scale, Center, and Fit Margins selections provide the ability to scale and/or center an image that is not the same size as what will be printed. Fit Margins set to Y uses the margin setting for this and when set to N uses the paper size. When scaling, the aspect ratio of the image is always kept intact. The support of multipage background form's allows for the logical printing of multiple part forms. For example, you could have a multipage pdf that is your Invoice and at the bottom of page one it will say "Customer Copy", at the bottom of page 2 it will say "Company Copy", at the bottom of page 3 it will say "Receipt", and finally at the bottom of page 4 it says "File Copy". The multipart count must be set to the number of pages in the form. Now when a single "page" is printed using that form, 4 physical pages will be sent to the .pdf file with each page of the background being different. PDF Generation -------------- Any errors generated when sending data to a .pdf file will be logged in the audit log if specified. When a pdf file is generated, the following properties are set in the .PDF file. Filename, Author (current user), Created date/time, Application set to the version of icrun, PDF Producer is set to Envyr, PDF Version set to 1.4, Location set to the directory, Page Size. 4. In the Printer Control Utility, the ability to generate a PDF file from a print file has been added. The F option as "pdF print" has been added as a valid Command. You will be prompted for the PDF Format to be used. PDF support is provided as an optional licensing option added to a runtime license. Licenses can be updated by contacting Sales. The current PDF Formats that are configured can be viewed by pressing F2 while in the main screen. 5. ICSMVIEW has been updated to show the PDF Formats currently configured. The option is -O y. 6. Under UNIX, bidirectional pipe opens are now supported. An OPEN I-O can be done using the syntax "|<>command". 7. A new builtin has been added, IC_PDF_PRINT, that allows a PDF file to be generated from an existing sequential text file (data-sensitive). The format is: "IC_PDF_PRINT" USING filename, pdf-format Where filename is a PIC X that holds the name of an existing sequential file. pdf-format is a numeric that holds the pdf-format to use to generate the pdf file. The .pdf extension is added to the filename to generate the new file. 8. The sample logon program has been updated to support the above builtin (IC_PDF_PRINT) using the List option. 9. The Language Reference Manual, Utilities Manual, and the two Installation Guides have been updated. 10. Under Windows, pipe opens are now supported to executables. "|>executable" (pipe to the program - OPEN OUTPUT/EXTEND) "|executable" (pipe from and to a program - OPEN I-O For example: Opening "|