Interactive COBOL Runtime/Development Readme 4.89 15-Dec-2015 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, Windows 7, Windows Server 2012, Windows 8, and Windows 8.1. x32 Editions will be used to refer to the 32-bit editions of Windows XP Pro, Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, Windows 8, and Windows 8.1 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, Windows 7, Windows Server 2012, Windows 8, and Windows 8.1 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. Starting in 4.80 two .bat files have been provided to open the firewall for icpermit and icnetd. These are: addfirewallicpermit.bat. addfirewallicnetd.bat. These can be found in the examples directory and eork with Windows Vista and up. 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. More on this can be found with the Microsoft Knowledge base article 917607 which can be found at: http://support.microsoft.com/kb/917607 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 * 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 Builtin: IC_CENTER * New Intrinsic Functions that match many IC builtins * 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 4.80 ---- * Enhanced hash algorithm for disk lookups * Increased buffer size support **************************************************************** **************************************************************** **** Revision 4.89 **** Bug Fixes in 4.89 ------------------ 1. The runtime system and icsort had a bug that could cause the program to "core dump" when performing sorts that required multiple merge passes. 2. The compiler was not correctly reporting cases where indivdual data records or the combined size of all data exceeded the system limit of 16 MB. This would result in an Internal Error in the compiler during the data allocation phase. 3. The iclog utility was not correctly decoding the compressed log records when applying them, leading to a corrupt data file (broke in 4.80) Changes and New features in 4.89 -------------------------------- 1. The size of the internal sort buffer in the runtime system was increased from 256 KB to 1 MB. **** Revision 4.88 **** Bug Fixes in 4.88 ------------------ 1. The runtime system had a bug when fetching the value of 8-byte COMP-5 data items, resulting in bad data. The bug affects version 4.80-4.87. Changes and New features in 4.88 -------------------------------- None **** Revision 4.87 **** Bug Fixes in 4.87 ------------------ 1. The Windows runtime system would sometimes fail to start and return: Error: Access to the file or device is denied (oserr=5): Signal Event Changes and New features in 4.87 -------------------------------- None **** Revision 4.86 **** Bug Fixes in 4.86 ------------------ 1. ISQL with EXECUTE USING could use the wrong data length when setting column values. 2. ICODBCDR could cause a memory fault or crash when setting data into columns, e.g., with an INSERT that used parameters. This bug was introduced in 4.80. 3. Under Windows, ICPERMIT would sometimes not authorize via a parallel port device. Would get Device not found, errnum=0. 4. Under Linux, ICRUNRS was not correctly cleaning up its device resources in the shared area, which could eventually lead to an inability to start new runtimes. Changes and New features in 4.86 -------------------------------- 1. ICWEBMSG was updated to use TLS first if it is available, then use SSL as a fallback. **** Revision 4.85 **** Bug Fixes in 4.85 ----------------- 1. Under Linux, when using icrunrs sp2 automatic downloads were not always working. 2. When using Printer Control a job status could have been incorrectly have a job status set to 0. 3. When using Printer Control, a job status could have been incorrectly set to zero. (4.85.01) 4. Under Windows, ICPERMIT sometimes could not properly communicate with a USB protection device. (Fixed as icpermit 4.85.01). (4.85.06) 5. The compiler was crashing when it detected a SET id statement with no UP, DOWN, TO syntax. (fixed as icobol 4.85.06). (4.85.07) 6. ICPERMIT was not correctly printing long connection times when using -O v -V t. (fixed as icpermit 4.85.02) (4.85.08) 7. Under Windows, icinfo was not correctly show disk space for drives > 1TB. Changes and New features in 4.85 -------------------------------- 1. The ICPERMIT executable file is now self-contained. The ICPERMIT execuatble is now staticly linked with icsys and it also has the help built in. This allows the latest ICPERMIT to be used instead of an older version of ICPERMIT for those users who rely on a specific, older version of Interactive COBOL. (4.85.01) 2. Under Windows, ICRUNRC has been updated to better handle a race condition when starting up and getting an access denied. (icrunrc 4.85.05) **** Revision 4.84 **** Bug Fixes in 4.84 ----------------- 1. icbltn fix. (Broke in 4.80) Parameters were not being passed properly. between mismatched icbltn's. (Update 01) 2. icbltn fix. Use of the get_error_message call could crash the runtime. Changes and New features in 4.84 -------------------------------- 1. None. **** Revision 4.83 **** Bug Fixes in 4.83 ----------------- 1. Compiler fix. (Broke in 4.80) Headers could be scrambled. **** Please recompile **** Changes and New features in 4.83 -------------------------------- 1. None. **** Revision 4.82 **** Bug Fixes in 4.82 ----------------- 1. When writing PDF files, certain cases may cause a blank PDF page to be generated. (Broke in 4.81) 2. When using IC_SEND_MAIL and a username/password parameter was provided, it could be corrupted. (Broke in 4.80). 3. At certain times a screen attribute could be misapplied. (Broke in 4.80). Changes and New features in 4.82 -------------------------------- 1. None. **** Revision 4.81 **** Bug Fixes in 4.81 ----------------- 1. When generating .PDF files, certain background forms generated with Ghostscript could not be read. 2. When generating .PDF files, in certain cases a .PDF could be generated that was not readable by Adobe Reader. 3. ICLINK was not always processing the last input record if there was no terminator. Changes and New features in 4.81 -------------------------------- 1. None. **** Revision 4.80 **** Bug Fixes in 4.80 ----------------- 1. When using ICRUNRC, if doing a screen refresh (Ctrl-U), the screen could not be properly aligned. Broke in 4.70. 2. When generating a PDF file using a background image that has embedded text, sometimes a font error could be introduced. Windows seems to handle this when printing but some Linux PDF print drivers give an error and do not print the data. (4.80.01) 3. ICPERMIT had a problem with enabling verbose (-O v). (Broke in 4.80) 4. ICSQLS had a problem with sign in. (Broke in 4.80) (4.80.02) 5. AT times on a 1-byte COMP compare could be wrong. (Broke in 4.80) Changes and New features in 4.80 -------------------------------- 1. The shared area revision has been incremented. 4.80 executables require the shared area provided by an ICEXEC 4.80 or greater and will not run with earlier revision executables or with an earlier revision shared area. 2. The internal buffer hash table has been updated to allow for more buffer space and a faster lookup time. 3. ICCONFIG and ICEDCFW under System Parameters now allow upto 3072 MB (3GB) of buffer space to be allocated. Under UNIX, we do recommend that you consider using more buffers as the new buffer hashing does perform much better as memory and cpu speeds increase. 4. More enhanced auditing options added to provide statistics for various operations: New enhanced options are: FILE, IND, REL, SEQ, PGM These provide tracing for the various operation on lower level file operations, Indexed, Relative, Sequential files and for Program operatons. For example for Indexed files a trace like: 2013-02-06 11:43:36.24: IND: Open IND (han=61) xxxxx002 2013-02-06 11:43:51.79: IND: Open IND (han=62) xxxxxind .... 2013-02-06 11:43:51.80: IND: Close IND (han=61): No error 2013-02-06 11:43:51.80: IND: Read Next: 39661, 1 2013-02-06 11:43:51.80: IND: Start: 1, 0 2013-02-06 11:43:51.80: IND: Close IND (han=62): No error 2013-02-06 11:43:51.80: IND: Read Keyed: 1113874, 4411 can be generated. On a Close, statistics for each type of I/O operation that were performed on the file will be given. This will include the count of those calls and the number of error returns. In the example above, for the Indexed file 62 there were 1113874 Read Keyed calls and 4411 returned an error. These new enhanced auditing options should be used for profiling a system but not for day to day operations as the log could grow rather large. 5. Complete Enhanced Auditing syntax. A change bar (|) in the left column below shows the new options. Enhanced auditing supports the following options: 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|IND|MPX|NET|PDF|PGM|REL|SEQ|SP2|SQL|SYSERRS|WEB ALL enables all sub-system enhanced tracing options. | FILE provides statistics and tracing for lower level file operations (this is very verbose and mostly only useful when requested by Support) ICNETD provides enhanced tracing for ICNETD | IND provides Indexed i/o statistics and open/close tracing MPX provides enhanced tracing when using network multiplex i/o from the runtime, 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 runtime | PGM provides CALL/EXIT/CANCEL tracing, (including builtins) | REL provides relative i/o statistics and open/close tracing | SEQ provides sequential i/o statistics and open/close tracing SP2 provides enhanced tracing when using SP2 or QPR from the runtime or icrunrc SQL provides enhanced tracing when using ISQL from the runtime SYSERRS provides enhanced tracing for System errors WEB provides enhanced tracing when using any internet type facility like email from the runtime These trace flags for enhanced auditing should be used when requested by support or to track down a real problem as the logs can be very verbose. 6. Under Windows, the Safenet Sentinel driver has been updated to 7.5.8. (For USB and Parallel port protection devices.) 7. Under Windows when using a GUI application or ICODBC from a GUI application, pop up error message boxes will be disabled if both auditing and quiet are enabled. 8. Under Windows, when the License Server (icpermit) is installed a .bat file that will install firewall rules for ICPERMIT is now included in the examples subdirectory as: addfirewallicpermit.bat. Works with Windows Vista and up. 9. Under Windows, when the Client-Server (icnetd) is installed a .bat file that will install firewall rules for ICNETD is now included in the examples subdirectory as: addfirewallicnetd.bat. Works with Windows Vista and up. 10. Under Windows, ICINFO now detects whether the Windows firewall is enabled for particular networks. Under -O r. 11. The ACCEPT FROM ENVIRONMENT has additional systems codes: 01 ENV-STRUCTURE. 02 SYSTEM-CODE PIC 99. 88 IC-AOSVS VALUE IS 01. 88 IC-AOSVSII VALUE IS 04. 88 IC-MSDOS VALUE IS 30. 88 IC-386UNIX VALUE IS 31. 88 IC-DGUX-88K VALUE IS 34. 88 IC-AIX-RS VALUE IS 39. 88 IC-SUN-SPARC VALUE IS 40. 88 IC-HPUX-PA-RISC VALUE IS 41. 88 IC-MOTOROLA-88K VALUE IS 43. 88 IC-STRATUS-860 VALUE IS 44. 88 IC-LINUX-INTEL VALUE IS 45. 88 IC-DGUX-INTEL VALUE IS 47. 88 IC-SCO-UNIX-INTEL VALUE IS 48. 88 IC-UNIXWARE-INTEL VALUE IS 49. 88 IC-MACOSX VALUE IS 51. | 88 IC-LINUX-INTEL-64 VALUE IS 52. 88 IC-WINDOWS-9X VALUE IS 60. 88 IC-WINDOWS-32 VALUE IS 61. | 88 IC-WINDOWS-64 VALUE IS 62. ... These new values (IC-LINUX-64, IC-WINDOWS-64) will be available in ICOBOL 5 when both 32-bit and 64-bit versions of ICOBOL are available. 12. Logon has been upgraded to support the new ENVIRONMENT codes. **** Revision 4.72 **** Bug Fixes in 4.72 ----------------- 1. When using ICTERM=mac, sometimes the last character on the line was being overwritten by the first character of the next line. 2. Under Linux, ICINFO could generate a negative number for Memory statistics under the Page Size line. 3. Under Windows, ICPERMIT has been updated to detect MAC addresses that have been moved in Windows 8 from previous versions of Windows. In most cases using a MAC based license on Windows 8 or Windows Server 2012 will require this revision or greater for ICPERMIT. 4. At times a File Status 30, exception 1 could be received on an ISAM file when running multiuser. Changes and New features in 4.72 -------------------------------- 1. ICDUMP has a new option, -o, that will only list a One line format for revision 5 .cx files with the simple filename, code rev, program-id, and oem rev listed. When specified, all other options are ignored. ICDUMP can also now accept templates and multiple arguments. 2. ICRUN has a new option, -b that implies batch mode. No screen image is present but standard in and out can be used. A blank console is sought from the Console table. Behaves similarly to a #O job. 3. A few more SYSERR enhanced logging messages. 4. Under Windows, ICINFO will now detect the edition of Windows 8 or Windows Server 2012 that is installed. **** Revision 4.71 **** Bug Fixes in 4.71 ----------------- 1. Under Windows, at times on startup the gui window would have scroll bars when it could fit fully. 2. For the IC_CLIENT_ builtins that use a client file, ensured that the client filename is passed unchanged to the client. This includes trimming leading and trailing spaces. These include: IC_CLIENT_DELETE_FILE, IC_CLIENT_GET_FILE, IC_CLIENT_PUT_FILE, IC_CLIENT_RESOLVE_FILE. 3. Certain builtins that read stdin were not handling an EOF and setting hangup. These included IC_GET_KEY, SD_MESSAGE, SD_MESSAGE_ONLY, SD_ERROR_MESSAGE, SD_SYS_ERROR_MESSAGE, SD_MENU_MGR, and SD_READ_CHAR. Changes and New features in 4.71 -------------------------------- 1. ICPERMIT has a new reporting option: -O v for verbose information. A new set of Verbose selections has also been provided. -V hlpPrtu Format the -O v selection. The order of the letters determines the order of the output columns and the sort order. h=host, l=license, p=program, P=pid, r=revision, t=time connected, u=username Default is '-V lhup' (license, host, user, program) These two options are available in 4.71 and up. This information is written to stdout and the audit log if available. This information provides the current licensing usage information for each license connection. ******************************************************** 4.71.01 ------- 2. On Linux and Apple, ICNETD will now use the PAM subsystem to authenticate users. The default PAM service will be "login" but there is an option that allows the service name to be changed. There is also an option (-p) that will cause ICNETD to authenticate the previous way on Linux using /etc/passwd. Added syntax: -p Use previous password method (/etc/passwd instead of PAM) (Linux only) -P service Use the specified PAM service name (default is 'login') PAM stands for Pluggable Authentication Modules. ******************************************************** **** Revision 4.70 **** Bug Fixes in 4.70 ----------------- 1. Under Windows, the builtin CLI call was not always working. 2. The IC_CENTER builtin was not working properly. 3. The compiler was not properly setting an FD to DATA-SENSTIVE when no RECORD DELIMITER clause was specified. VARYING BINARY was being generated. Please re-compile. 4. Under Windows with ICRUNW or ICRUNRC, sizing of the screen was not always working correctly. 5. Under Windows, ICREVW was not able to open .xd files in the open dialog. Changes and New features in 4.70 -------------------------------- 1. Under Windows, the Safenet Sentinel driver has been updated to 7.5.7 2. Sample PDF information. A sample program that can print an alignment page for use with a background PDF, shows printing to a background Sample Invoice form, and provides a user specified set of fields to be printed. Released files are: pdfsample.sr, .cx COBOL Source and executable finalinvoice.pdf Results from running pdfsample using the sampleinvoice1.pdf background form. pastdue_bw.pdf Sample Past Due watermarks pastdue_color.pdf " pastdue_large.pdf " pastdue_small.pdf " preliminary_watermark.pdf Sample Preliminary watermark sampleinvoice1.pdf Sample background invoice PDF sampleinvoice1p.pdf Sample background invoice PDF with PAST DUE (in red) watermark sampleinvoice1pd.pdf Sample background invoice PDF with PAID watermark Assumptions for using the sampleinvoice1.pdf files are: Margins all at .5, Font: Courier, Size: 10, Spacing: 0. The above settings give 72 lines with a width of 90 characters. PDFSAMPLE can also be used to create a simple standard report that will reside in the printer control queue and that file can be used to build the PDF file from within the Printer Control Utility. Other .pdf's included in examples are: four_page_sample.pdf Sample showing 4 pages per page pastdue_bw.pdf Sample Past Due watermarks pastdue_color.pdf " pastdue_large.pdf " pastdue_small.pdf " preliminary_watermark.pdf Sample Preliminary watermark ************ IMPORTANT ************ 3. A new environment variable, ICCONFIGDIR, can be specified to provide for customized system files that are outside of the standard installation directory structure. If specified, this directory will be searched first for any help, messages, print, or term file entries. If a file is NOT found using ICCONFIGDIR, then ICROOT will be used as in the past. It is recommended that any custom help, messages, print, or term files be placed in the ICCONFIGDIR directory. An install or reinstall will NOT effect the ICCONFIGDIR directory as long as it is not configured to point to an installed directory. *********************************** 4. With the addition of ICCONFIGDIR, ICCONFIG and ICEDCFW have been updated to work in a directory like most editors. ICCONFIG will now default to starting with the main menu to allow you to select what needs to be edited. The system configuration menu now offers a Change Directory option and the current directory is shown. In general we now recommend that you CREATE a separate configuration directory that holds the system configuration file, and any terminal or printer files that have been customized. Default Terminal (.tdi) and Printer (.pti) files will no longer be provided by the installer as they are now loaded directly in the runtime and will be provided in the default case. 5. Under UNIX, the startic macro has been updated to support the new ICCONFIGDIR environment. In addition, under Linux, the macro will now use the /var/log/icobol directory as the default for all server logs. 6. The data encryption that is used by the client/server products has been greatly improved. It is a very strong stream cipher that uniquely encrypts the data payload of each packet within each connection over the course of more than one billion packets. 7. All sample printer translation files (.pti) have been moved to the examples directory. These include: pclcompress.pti lower_case.pti upper_case.pti 8. The protocol used by ICRUNRC and ICRUNRS has been enhanced to combine and buffer more screen painting commands per network request. This should result in smoother and faster character-mode screen painting. 9. The ICRUNRC and ICINFO programs are now built so as to not require the icsys shared library (.dll, .so, .dylib) or the Microsoft Visual C Runtime DLL (msvcr71.dll) in Windows. 10. The thinclient (ICRUNRC) has also been built with integrated help text and the default terminal definitions and system messages so that it no longer requires the help, term, and messages directories normally found via ICROOT. This has greatly simplified the thin client installers. **** Revision 4.60 **** Bug Fixes in 4.60 ----------------- 1. ICEXEC was not showing the Sequential file usage information on termination. 2. Updated auditing to better handle multiple threads. Changes and New features in 4.60 -------------------------------- 1. Under UNIX, updated TELL_SEM to provide an optional timing on semaphores. (-t) Also slight argument handling update. 2. Under Linux, updated ICINFO to show Memory in MB in addition to pages, to show some /proc/meminfo information, to show file system types if known, and a net-only option (-n) to only scan for network card information (MAC addresses). 3. Under UNIX, for ICRUN and ICRUNRC allow the PTS environment entry to be a pipe. For example, to use the default printer you would set: PTS="|>lp" (Note that the bar (|) and redirect symbol (>) must be escaped in some fashion.) 4. Under Windows, updated ICINFO to show current working directory, pid, parent pid, current executable, parent executable, and whether started from a command shell or explorer. ICINFO will now detect if running under a hypervisor, i.e. in a a virtual machine. ICINFO has updated CPUID checks based on Intel and AMD specification updates in 2012. ICINFO will now detect if this is a Remote Desktop or Terminal Server session. If started from explorer, ICINFO will pause at termination to allow the screen to be viewed, any key will terminate the process. 5. For ICRUN and ICRUNRC, if a default ICTERM file cannot be found the default settings for that terminal description will be used. Previously this would have resulted in an error and the runtime would not start. 6. Three new sample printer translation files (.pti) have been provided in the runtime release. These are: ../print/pclcompress.pti ../print/lower_case.pti ../print/upper_case.pti The two case ones will print all letters in that case. The pclcompress one can be used with a PCL printer to send the printer into compressed mode for printing. **** Revision 4.55 **** Bug Fixes in 4.55 ----------------- 1. When using ISQL, an Internal Error like: Error: Internal system error: STM being freed without closing subordinate object could be generated to the audit log at times. This has been corrected. No operation was effected by this message. 2. Under Windows, at times ICNETD could incorrectly give a socket in use error at startup. 3. Under Windows, updated MAC based licensing for both ICINFO and ICPERMIT. 4. In the compiler, when using the VX cobol dialect, certain warnings for uniqueness of paragraph names have now been converted to errors. In the past these were warnings but they generated code that would not execute what was expected. Changes and New features in 4.55 -------------------------------- 1. Under Windows, the ICINFO utility has an enhanced network detection section. It now Detects new wireless lan adapters along with showing the ip addressses detected. Shown as the SNMP subsection. Also a new Network subsection (shown as GetAdaptersInfo) that shows Adapter Information that includes the Adapter Description, type, ip4 address and mask, Gateway, DHCP information, Wins detection. In addition, when the -v (Verbose) option is given, an addtional network subsection will be shown (GetAdaptersAddresses) with more verbosity on adapters. **** Revision 4.54 **** Bug Fixes in 4.54 ----------------- 1. Under Windows, at times when in Full Screen mode the font size was not being correctly recalculated for ICRUNW and ICRUNRC. 2. When using enhanced auditing for a runtime, a very large trace message could cause the runtime to crash. 3. ICRUNRC could give a client/server revision error (exception 445) on certain operations. Changes and New features in 4.54 -------------------------------- None. **** Revision 4.53 **** Bug Fixes in 4.53 ----------------- 1. Under UNIX, updated installic and removeic scripts with minor fixes. 2. ICWHOHAS was not always properly handling the -F file switch. 3. ICREVUP was not properly setting the PdfCount in the new .cfi file. (A work around is to go in with a text editor and delete the PdfCount=0 entry or set the value to 1.) Changes and New features in 4.53 -------------------------------- 1. Under Windows, a new environment variable is now available: ICICON ICICON can be set to point to an icon file that will be used by ICRUNW and ICRUNRC at startup to replace the default IC icon that appears in the upper left of the screen. If the icon cannot be loaded for any reason a warning is given and the default icon is used. Example: set ICICON=c:\program files\icobol\mytest.ico (Reintroduced in 4.53) 2. 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.53 or greater. ICNETD/ICIOS is required to be at the 4.53 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. 3. Under Windows, the ThinClient pieces (ICRUNRC/ICRUNRS) have enhanced their network performance when sending/receiving data. **** Revision 4.52 **** Bug Fixes in 4.52 ----------------- 1. ICSORT was not properly handling -K pos when pos was greater than 999. 2. The ICNETUSESHEARTBEAT environment variable added in 4.40 has been removed at this time. 3. The runtime could have generated an Internal System Error on a COMPUTE statement using an Intrinsic that the compiler optimized at compile time. Changes and New features in 4.52 -------------------------------- 1. Under Windows, ICINFO, when started with the -G z option, will give file version information for selected .dlls. **** 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 auditing should only be enabled when requested by Support or to provide more information for a particular problem as the logs can 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 username 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 standard ICNETD remote syntax: @[icnet:]//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 are 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, SQL, 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 runtime, 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 runtime SP2 provides enhanced tracing when using SP2 or QPR from the runtime or icrunrc SQL provides enhanced tracing when using ISQL from the runtime SYSERRS provides enhanced tracing for System errors WEB provides enhanced tracing when using any internet type facility like email from the runtime ALL enables all sub-system enhanced tracing. These trace flags for enhanced auditing should only be used when requested by support or to track down a real problem as the logs can be 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. ICOBOL 2 and ICOBOL 3/4 .cx files cannot be mixed in the same runtime session. **** 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. <> 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 with the above message and additional code is generated to allow 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 Safenet 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 set to current user) Created date/time, Application set to icrun and version, PDF Producer 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 "|