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$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 current cursor position. 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. |
C$PARSEXFD | AcuCOBOL uses C$PARSEXFD to parse XFD dictionaries. isCOBOL uses C$PARSEEFD to parse EFD dictionaries. |
W$BROWSERINFO | Only in Web Direct 2.0 environment, call WD2$CLIENT_INFO. |