On 03-Nov-2015 12:39 -0600, MichaelQuigley wrote:
On 02-Nov-2015 18:26 -0600, Scott Klement wrote:
CVTRPGSRC output is not 100% compatible, but is maybe 99%
compatible.
The biggest issue is when the program uses the 'FREE' opcode, which
does not exist in RPG IV (and, imho, never worked the way people
thought it did, anyway, so most applications using it don't quite
work right to begin with.)
[...]
By "'FREE' opcode" are you referring to the /FREE compiler directive?
I'm not familiar with a FREE opcode. <<SNIP>>
The FREE Operation Code:
[
http://publib.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/QBKAQV00/11.20.36?SHELF=QB3AYC08&DT=19940325191514]
Title: RPG/400 Reference
Document Number: SC09-1817-00
Build Date: 03/25/94 19:15:14 Build Version: 1.2
Document Path: /home/webapps/epubs/htdocs/book/qbkaqv00.boo
" 11.20.36 FREE (Deactivate a Program)
______ __________ ______________ ________ __________
| Code | Factor 1 | Factor 2 | Result | Indicator|
| | | | Field | |
------|----------|--------------|--------|----------|
| FREE | | Program name | | _ ER _ |
|______|__________|______________|________|__________|
The FREE operation removes a program from the list of activated
programs, frees static storage, and ensures program initialization
(first cycle processing) the next time the program is called. It does
not close files or unlock data areas.
Factor 2 contains the name of the program to be deactivated. It must
contain the name of a field, named constant, literal, or array element
that contains the name of the program to be deactivated. The entry in
factor 2 must be character data; it can include a qualified name such as
LIB/PGM. ...
...
Note: Issuing a FREE operation and then a CALL operation to the same
program reopens the program's files and may use additional temporary
storage. Repeatedly issuing FREE and CALL operations to a program,
without closing the program's files in between, may use enough temporary
storage to degrade the system's performance, and ultimately cause an
AS/400 machine check. This problem can be avoided if the files have
shared open data paths SHARE(*YES). However, using SHARE(*YES) can
cause other problems. Read the section on "Sharing an Open Data Path"
in the RPG/400 User's Guide for complete details.
..."
[
http://publib.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/QBKAQU00/11.1.4?SHELF=QB3AYC08&DT=19940331143926]
Title: RPG/400 User's Guide
Document Number: SC09-1816-00
Build Date: 03/31/94 14:39:26 Build Version: 1.2
Document Path: /home/webapps/epubs/htdocs/book/qbkaqu00.boo
" 11.1.4 FREE (Deactivate a Program)
The FREE operation code:
° Removes a program from the list of activated programs
° Frees static storage if you no longer require the program
° Ensures program initialization (first cycle processing) when a
program is called.
FREE neither closes files nor unlocks data areas. You are responsible
for closing files and unlocking data areas in your own program. In an
interactive environment, you can close files and unlock data areas by
using the CL command RETURN (from level 1 of the command entry display)
or SIGNOFF. (See the CL Reference for the use of RETURN and SIGNOFF
commands.)
When the FREE operation is specified, the program named in factor 2 is
released from the list of activated programs. If the program is called
by the CALL operation again, it functions as though it were being called
for the first time (first-cycle processing). If the FREE operation is
not successful, the RPG/400 exception/error handling routine receives
control. See "Exception/Error Handling" in topic 4.8 for detailed
information on the RPG/400 exception/error handling routine."
As an Amazon Associate we earn from qualifying purchases.