Library routines
The following ACUCOBOL-GT library routines are supported by isCOBOL
 
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
 
All the other routines must be replaced with the corresponding isCOBOL routine or with an isCOBOL syntax that has the same effect, if possible.
The following table lists the known solutions to obtain the same effect of ACUCOBOL-GT routines.
 
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.
If the routine that you’re looking for doesn’t appear in the above list, contact Veryant’s support to discuss about possible solutions.