Library Routine | Known Limitations and differences |
---|---|
$WINHELP | |
ASCII2HEX | |
ASCII2OCTAL | |
C$ASYNCPOLL | |
C$ASYNCRUN | |
C$CALLEDBY | In isCOBOL, the returned program name is always upper case. |
C$CALLERR | |
C$CARG | |
C$CHDIR | C$CHDIR as implemented by isCOBOL doesn’t actually change the working directory, it just specifies a path that the framework must put before relative file names during i/o. External functions invoked by the programs (like C functions, for example) don’t use the directory set by C$CHDIR as working directory. Also commands run either via the SYSTEM library routine or the C$RUN library routine don’t use the directory set by C$CHDIR as working directory. |
C$CODESET | |
C$COPY | Special directory specifiers are not supported. |
C$DARG | |
C$DELETE | Special directory specifiers are not supported. |
C$FILEINFO | |
C$FULLNAME | isCOBOL always returns a full path, even if the FILE-PREFIX path where the file is found is a relative path. In some cases C$FULLNAME might not be suitable, for example if the file handler appends a custom extension to the physical name of your files. In these cases, use C$FSFULLNAME. |
C$GETCGI | |
C$GETLASTFILEOP | The isCOBOL implementation is RM/COBOL compatible. It uses only one parameter that receives the operation name. |
C$GETPID | |
C$JUSTIFY | The isCOBOL implementation allows to justify only alphanumeric items. If you need to justify numeric edited data items, append "(1:)" to their name, for example: CALL "C$JUSTIFY" USING PICZITEM, "L" where PICZITEM is something like 77 PICZITEM PIC Z(3)9., has to be changed to: CALL "C$JUSTIFY" USING PICZITEM(1:), "L" |
C$KEYMAP | |
C$LIST-DIRECTORY | Due to Java implementation listdir-file-creation-time and listdir-file-last-access-time are not returned. |
C$LOCKPID | Supported only by c-tree having iscobol.file.index=ctreej or iscobol.file.index=fscsc. The c-tree client thread ID is returned. |
C$MAKEDIR | |
C$MYFILE | |
C$NARG | |
C$OPENSAVEBOX | Not all opensave flags are supported. The isCOBOL implementation of C$OPENSAVEBOX supports: -opensave-overwriteprompt -opensave-pathmustexist -opensave-filemustexist -opensave-createprompt -opensave-noreadonlyreturn -opensave-browse-dontgobelowdomain -opensave-browse-browseincludefiles |
C$PARAMSIZE | |
C$PARSEXFD | In isCOBOL the routine is named C$PARSEEFD and it processes EFD dictionaries generated by the isCOBOL compiler. PARSEEFD-TEST-CONDITIONS requires the record buffer, not a pointer to it. |
C$RERR | The STATUS-TYPE parameter is not supported. |
C$RERRNAME | |
C$RUN | |
C$SLEEP | |
C$SOCKET | C$SOCKET LAST-ERROR op-code returns a limited set of values. See CSOCKET-LAST-ERROR for details. |
C$SYSTEM | CSYS-NO-IO and CSYS-COMPATIBILITY flags are not supported. |
C$TOUPPER | |
C$TOLOWER | |
C$XML | The following op-codes are not supported: CXML_GET_RAW_DOCTYPE_LEN, CXML_GET_RAW_DOCTYPE, CXML_SET_RAW_DOCTYPE. Regular expressions are not supported in the op-codes that looks for a elements or attributes by name. The standalone pseudo-attribute is always generated in the XML documents produced by the routine. |
CBL_AND | |
CBL_CLOSE_FILE | |
CBL_COPY_FILE | Possible return codes are the same as the Micro Focus implementation, not just 0 and 1. "@[DISPLAY]" is not supported . |
CBL_CREATE_FILE | |
CBL_CREATE_DIR | Possible return codes are the same as the Micro Focus implementation, not just 0 and 1. "@[DISPLAY]" is not supported . |
CBL_DELETE_DIR | Possible return codes are the same as the Micro Focus implementation, not just 0 and 1. "@[DISPLAY]" is not supported . |
CBL_DELETE_FILE | Possible return codes are the same as the Micro Focus implementation, not just 0 and 1. "@[DISPLAY]" is not supported . |
CBL_ERROR_PROC | |
CBL_EXIT_PROC | The first parameter can be only 0 or 1. Priorities are not supported. |
CBL_FLUSH_FILE | |
CBL_NOT | |
CBL_OPEN_FILE | |
CBL_OR | |
CBL_READ_FILE | |
CBL_READ_SCR_CHARS | |
CBL_READ_SCR_CHATTRS | It handles only the attributes HIGHLIGHT, UNDERLINE and REVERSE-VIDEO assuming that colours are not used. |
CBL_WRITE_FILE | |
CBL_WRITE_SCR_CHARS | |
CBL_WRITE_SCR_CHATTRS | It handles only the attributes HIGHLIGHT, UNDERLINE and REVERSE-VIDEO assuming that colours are not used. |
CBL_XOR | |
HEX2ASCII | |
I$IO | f_errno and other runtime variables have a different declaration, so you must use isfilesys.def copybook instead of filesys.def provided by ACUCOBOL-GT for the routine to work correctly. isCOBOL I$IO routine does not use the f_int_errno variable. New variables are provided. f_syserr contains the extended description of the error, and f-errmsg contains the error message, if available. op-code 4 (info-function) returns only the following information: logical-params, number of records, collating sequence, keys structure. op-code 15 (execute-function) is not supported. |
M$ALLOC | |
M$COPY | |
M$FILL | |
M$FREE | |
M$GET | |
M$PUT | |
OCTAL2ASCII | |
REG_CLOSE_KEY, DISPLAY_REG_CLOSE_KEY REG_CREATE_KEY, DISPLAY_REG_CREATE_KEY REG_CREATE_KEY_EX, DISPLAY_REG_CREATE_KEY_EX REG_DELETE_KEY, DISPLAY_REG_DELETE_KEY REG_DELETE_VALUE, DISPLAY_REG_DELETE_VALUE REG_ENUM_KEY, DISPLAY_REG_ENUM_KEY REG_ENUM_VALUE, DISPLAY_REG_ENUM_VALUE REG_OPEN_KEY, DISPLAY_REG_OPEN_KEY REG_OPEN_KEY_EX, DISPLAY_REG_OPEN_KEY_EX REG_QUERY_VALUE, DISPLAY_REG_QUERY_VALUE REG_QUERY_VALUE_EX, DISPLAY_REG_QUERY_VALUE_EX REG_SET_VALUE, DISPLAY_REG_SET_VALUE REG_SET_VALUE_EX, DISPLAY_REG_SET_VALUE_EX | |
R$IO | f_errno and other runtime variables have a different declaration, so you must use isfilesys.def copybook instead of filesys.def provided by ACUCOBOL-GT for the routine to work correctly. isCOBOL R$IO routine does not use the f_int_errno variable. New variables are provided. f_syserr contains the extended description of the error, and f-errmsg contains the error message, if available. In ACUCOBOL-GT a keyval of "-1" means to write at the end of the file. In isCOBOL it has no special meaning. In ACUCOBOL-GT, successful read operations return the record size plus one. In isCOBOL they just return the record size. |
RENAME | The RENAME routine as implemented by isCOBOL doesn’t overwrite the destination file if it exists on Windows, but it fails instead. |
S$IO | f_errno and other runtime variables have a different declaration, so you must use isfilesys.def copybook instead of filesys.def provided by ACUCOBOL-GT for the routine to work correctly. isCOBOL S$IO routine does not use the f_int_errno variable. New variables are provided. f_syserr contains the extended description of the error, and f-errmsg contains the error message, if available. The S-PRINT file type isnot supported. S-SEEK-FUNCTION is not supported. |
SYSTEM | The SYSTEM library routine has been implemented using Java API and differs from the one available in other COBOLs that usually reflects the system() C function. The main difference is that isCOBOL performs a redirection of the standard input, output and error, so, if the command passed to the routine contains > or <, it will not work. In order to make isCOBOL use the system() C function instead of the Java API, the following setting must appear in the configuration: iscobol.system.exec=c |
W$BITMAP | The following op-codes are not supported: WBITMAP-LOAD-IMAGELIST, WBITMAP-DESTROY-IMAGELIST, WBITMAP-CAPTURE-IMAGE, WBITMAP-CAPTURE-DESKTOP, WBITMAP-LOAD-PICTURE. WBITMAP-CAPTURE-IMAGE and WBITMAP-CAPTURE-DESKTOP can be replaced by the use of W$CAPTURE. "@[display]:" in the bitmap name must be replaced by the use of the op-code LOAD-BITMAP-FROM-CLIENT. |
W$FONT | Due to Java implementation only true type fonts can be managed. |
W$KEYBUF | Only op-codes 1, 2, 3, 4, 5 and 9 are supported. Using op-codes 4 and 5, the recorded keycodes are moved to the buffer only when the registration is stopped. |
W$FLUSH | Only op-codes 1, 256 and 257 are supported. |
W$MENU | WMENU-POPUP op-code is asynchronous. The equivalent ACUCOBOL-GT feature is synchronous instead. |
W$MOUSE | Only the SET-MOUSE-SHAPE and GET-MOUSE-STATUS op-codes are supported. Setting the mouse shape to HELP-POINTER changes the mouse pointer to a hand instead of a question mark and doesn’t allow to interact with the help automation. Bitmap-based interfaces can be handled with the MSG-MOUSE-CLICKED, MSG-MOUSE-DBLCLICK, MSG-MOUSE-ENTER, and MSG-MOUSE-EXIT events. Coordinates returned by the GET-MOUSE-STATUS op-code are always relative to the current graphical window. When the mouse pointer is placed on a subwindow, GET-MOUSE-STATUS returns coordinates relative to its parent graphical window. |
W$PALETTE | Redefining a color will affect only the next DISPLAY statements and not the current state of the screen. The WPALETTE-UPDATE op-code is not supported. |
W$PROGRESSDIALOG | The op-code WPROGRESSDIALOG-C-COPY and the flag WPROGRESSDIALOG-NOMINIMIZE are not supported. The ANIMATION-TYPE parameter in WPROGRESSDIALOG-CREATE it’s also not supported, but you can replace it with the bitmap handle of an icon to be shown top-right of the progress dialog box. |
W$TEXTSIZE | |
WIN$PLAYSOUND | |
WIN$PRINTER | some runtime variables have a different declaration (in isCOBOL they lack of the SYNC clause), so you must use isprint.def copybook instead of winprint.def provided by ACUCOBOL-GT for the routine to work correctly. The following op-codes are not supported: WINPRINT-GET-CAPABILITIES WINPRINT-GET-JOB-STATUS WINPRINT-GET-PAGE-COLUMN WINPRINT-GET-PRINTER-STATUS WINPRINT-GET-SETTINGS-SIZE WINPRINT-SET-PRINTER and WINPRINT-SET-PRINTER-EX settings are evaluated only at the OPEN OUTPUT of the print-file. Calling these op-codes in the middle of the print job has no effect. If WINPRINT-GET-PRINTER-INFO, WINPRINT-GET-CURRENT-INFO, WINPRINT-GET-PRINTER-INFO-EX, and WINPRINT-GET-CURRENT-INFO-EX op-codes are called before WINPRINT-SETUP, they return only the following information: winprint-name, winprint-no-of-printers, winprint-is-default, and winprint-job-title. All other fields are set to default values that may not match with the current printer settings. WPRTMARGIN-CELLS and WPRTMARGIN-PIXELS are not supported for WINPRINT-SET-MARGINS op-code. Due to different geometries, the border of the shapes created by WINPRINT-GRAPH-DRAW op-code is more marked in isCOBOL. The difference is more evident with the increasing of the value of WPRTDATA-PEN-WIDTH. WINPRINT-GRAPH-DRAW, WINPRINT-PRINT-BITMAP, WINPRINT-SET-PAGE-COLUMN and WINPRINT-SET-CURSOR coordinates are always absolute (e.g. wprtunits-centimeters and wprtunits-centimeters-abs have the same meaning). Margins set by WINPRINT-SET-MARGINS are applied at the close of the print file and affect all the pages of the print job. If the WINPRINT-SET-MARGINS function is called multiple times within the same print job, only margins set by the last call are considered. In Acucobol the coordinates of a shape drawn by WINPRINT-GRAPH-DRAW are relative to the paper border. In isCOBOL instead, they're relative to the margis set by WINPRINT-SET-MARGINS. WINPRINT-SET-CURSOR can't be used to retrieve the new cursor position after a WRITE statement. Bitmaps and fonts must not be destroyed before the close of the print file, otherwise they will not appear in the printer output. |
WIN$VERSION |
Library routine | isCOBOL solution |
---|---|
C$CHAIN | Use the CHAIN verb. |
C$JAVA | Use object oriented syntax to invoke Java methods. |
W$BROWSERINFO | Only in Web Direct 2.0 environment, call WD2$CLIENT_INFO. |