Banner
 
 

OPAL Software Changes Version 450.03 - 510.28

 
510.28 Protect PD titles with lower-case content
Mon, November 21 2005

Previously, using OPAL PD attributes with a title parameter that had quoted names with lower case characters or spaces between individual names would have failed. Now, SUPERVISOR and FLEX will remove these extra spaces and respect valid mixed-case file titles.

510.27 Change behaviour of blocked file access using .FIL
Thu, November 3 2005

Recent changes to the .FILE method allowed access to blocked files as well as stream files; by default, the implementation unconditionally stripped off sequence numbers and MARKID fields from the file.

The above behaviour has now been changed; the FILE method will now always retain the original contents of the blocked file but will delimit each line by a carriage return character. If the previous behaviour is required, the reserved word NOSEQ may be optionally provided. The syntax rule for the .FILE method are:

 --- . FILE ------+-------------------------------------+-------|               
              |       +-- <---- , ----+             |                    
              |       |               |             |                    
              +--( -+-+---- <integer> ---+--+--+- ) ---+                    
                   |                    |                               
                   +--------- NOSEQ -----------+           

The NOSEQ option will remove sequence numbers and markid (if applicable) plus trailing spaces from each line of text. As with the default .FILE behaviour, a carriage-return is inserted after every line. A maximum of 393209 characters can be returned from any file, including the inserted carriage returns.

For example, if the string variable $T held the name of a valid resident file, then:

$T:="*TEST/FILE ON DEV"; $EX1:= $$T.FILE; % Reads entire intact (max 393209 chars) $EX2:= $$T.FILE(5000); % First 5000 characters from file $EX3:= $$T.FILE(NOSEQ); % Read entire file up to 393209 chars % but sequence numbers& markid removed $EX4:= $$T.FILE(9000,NOSEQ); % First 9000 characters from file with % seq numbers, markid & trailing spaces, % removed

The FILE method now has a more meaningful synonym of READ.

510.26 Correct GETSTR(..,FILE) handling broken by 510.24
Tue, October 25 2005

Compiled OPAL code that used the GETSTR(...,FILE) function would always return an empty string when executed by OPAL machine versions later than 510.23. The problem did not occur with recompiled code. Also, compiling variables that used the .FILE method would fault the OPAL compiler if the CODE option was set. Both these problems have been fixed.

510.25 Fix incorrect JOBREJECT attributes taken from EI record
Tue, October 4 2005

The JOBREJECT context will now return correct values for attributes such as NAME and USERCODE. These attributes are not normally available in a Job Rejected log record and are retrieved from the associated EI record that appears in the log prior to a Job Reject entry. Due to changes in the way that SUPERVISOR now processes all log records, the EI records were not being retrieved correctly causing NAME, USERCODE, CHARGECODE to return null values. This behaviour has been fixed.

510.24 Allow $.FILE read of non-stream files
Tue, September 27 2005

The .FILE method for string variables will now read non-stream i.e. blocked files. The selected file must be of symbolic form i.e. ALGOL, JOBSYMBOL, DATA etc. Sequence numbers, if present, and trailing spaces will be automatically removed from each line of text which is delimited by a CR (/) character. Up to 393210 characters will be returned.

If the entire file need not be read, the .FILE method has also been enhanced to permit an optional arithmetic parameter indicating the number of characters to be read from the file.

$MYFILE:="(LIVE)TEST/BATCH"; $TEXT:= $$MYFILE.FILE(999); % 999 CHARACTERS

In the above example, the .FILE call will read a maximum of 999 characters or the size of the file, less sequence numbers and spaces.

510.23 Extend DROP with negative parameter
Fri, September 23 2005

The DROP function will now take a negative parameter signifying the number of characters to drop from the string. If the parameter value is negative, then the specified number of characters are dropped from the RIGHT of the string. For example:

DROP("ABCDEF",-2) returns "ABCD"

This minor enhancement allows the simplification of DROP expressions such as:

DROP($A,LENGTH($A)-2) to DROP($A,-2)

510.22 Support for SUPERVISOR Opal COMMAND context
Fri, September 23 2005

This changes supports the implementation of the new DEFINE program type called COMMAND. This is discussed in more detail in SUPERVISOR DNote 510.38.

510.21 Correct $S:=&$Y return value
Tue, August 16 2005

The concat variant of a Putstr or string variable assignment has always been counter intuitive.

If $A="123" and $B="567" then most people expected the expression
$C:=$A:=&$B to leave $C="123456" and $A="123456" in fact before this
change $C would = "456".

Now PutStr("A",&GetStr("B")) and $A:=&$B will return the concatenated string "123456".

510.20 Support for Myself(Codeversion)
Tue, August 16 2005

Supports Myself(Codeversion) as detailed in GSTableGen notes.

510.19 Fix for $$Var.Global
Mon, August 8 2005

$$Var.Global was intended to return the global value of the variable who's name is held in $Var. Ex If $VAR="X1" then $$VAR.Global should be the same as $X1.Global. As coded this would only happen if $Var.Global = "X1". $$Var.Global now works as intended.

510.18 Fix broken MX attributes
Tue, July 19 2005

The change documented in OPAL DNote 510.17 caused some MX attributes, including PROCRATE, to generate incorrect compiled code such that null values would be returned when the code was executed. This problem is now resolved.

510.17 IMPLEMENT METERING ATTRIBUTES
Mon, July 4 2005

A new subset of attributes, called METERING, has been added to the SUPERVISOR SYSTEM context. These attributes apply only to COD metering systems and are retrieved using SYSTEMSTATUS call type 31. Nearly 200 attributes have been implemented.

In a HELP ATTR response, each attribute will appear with a context of SYSTEM MET; a recent change to SUPERVISOR allows the metering attribute set to be seen with HELP ATTR =:METER.

510.16 SUPPORT NEW AND REVISED VDBS ATTRIBUTES
Fri, June 3 2005

A significant number of new attributes, allowing comprehensive access to database auditing statistics, have been added to the VDBS context, recently implemented in DNote 510.10. These attributes are discussed at length in several Unisys PLEs (18074460 and 17685163) and also in the Documentation changes section of recent DMALGOL Programming Reference manuals.

Due to the Unisys revisions, several incorrect attribute definitions have been replaced with new names and revised semantics.

510.15 SUPPORT FOR VDBMS CONTEXT
Fri, May 20 2005

A new OPAL context called VDBS is available to SUPERVISOR users. This context allows comprehensive database information such as OVERLAYRATE, ALLOWEDCORE and CURRENTCORE (as seen in a SM STATUS RESPONSE) to be directly available as attributes. The full set of attributes are visible with the command:

TT HELP ATTR =:VDBS

The VDBS context is available in the following ways:

1. The EVAL and WHEN commands using DEFINES assigned to the VDBS context.

DEFINE + SITU VDBS(VDBS):
OVERLAYRATE GTR 20

DEFINE + ODTS VDBS(VDBS):
SHOW("MIX ",MIXNO,,"Name: ",DBNAME,/,
"ALLOWEDCORE = ",,ALLOWEDCORE,/,
"CURRENTCORE = ",,CURRENTCORE,/,
"OVERLAYRATE = ",,OVERLAYRATE 4.4 );

Using EVAL allows a 'one-off' evaluation of all active databases. Using WHEN causes a cyclical evaluation of all active databases, defaulting to 60 second cycles, but controllable using DELAY. For example:

EVAL VDBS DO VDBS
WHEN VDBS DO VDBS DELAY 5

2. VDBS and VDBSSTR may be used via the VIA function, as in the following example expressions:

VIA(VDBS(12345):OVERLAYRATE) GTR 20
VIA(VDBSSTR("34567"):CURRENTCORE)

3. As a method for real or string variables, similar to the MX method:

#MIXNO.VDBS(ALLOWEDCORE)
$MIXNO.VDBS(#(ALLOWEDCORE,,INUSECORE))

In the above example, the values held in #MIXNO and $MIXNO must be valid database mix numbers.

The VDBS context is implemented using the same interface as the Opal DBS function that the values are returned in encoded form allowing attribute mapping to occur.

If many databases are being regularly monitored, usage of the VDBS context should be used carefully as the mechanisms used by SUPERVISOR are expensive. However, VDBS does provide a very simple method to observe multiple databases over time. SUPERVISOR employs an internal caching mechanism to protect against unneeded database linkages.

510.14 FIX ROUNDING ON FAMILYTIME ATTRIBUTE
Mon, May 16 2005

The PER FamilyTime attribute would sometimes return a different time than that shown in the OL command.

510.13 ADD .FILE PROPERTY TO $VARIABLES
Mon, May 16 2005

$MyFile.File can now be used a synonym for Getstr("MYFILE",FILE)

To read from file names which are not valid identifiers (eg. MY/"FILE.TXT") store the name in another variable and use the $$ construct.

$MyName:='(BOB)MY/"FILE.TXT" ON DEV';
$data:=$$Myname.File

510.12 PROTECT PDSURECHECKCOMPILE WITH INVALID TITLE
Wed, April 20 2005

Use of the PDSURECHECKCOMPILE attribute from FLEX or SUPERVISOR Opal scripts could have caused various faults if the name of the passed file was illegal or the file itself did not exist. This problem is now fixed; OPAL will now verify that the file is legitimate before processing the PDSURECHECKCOMPILE attribute.

510.11 FIX NETWORKING ATTRIBUTES
Wed, April 20 2005

Previously, the NETWORKFILE attribute always returned incorrect values for the network providers BNAV1, BNV2 and X25 (these were the only old networks allowed) and did not handle networks such as TCPIP or CNS. Now, the NETWORKFILE and NETWORKMODE attributes have been changed to accept a string, instead of a mnemonic, denoting the network provider.

For example:

NETWORKFILE("TCPIP")
NETWORKMODE("BNA")

The list of available network providers may vary from system to system and the NETPROVIDERS attribute returns a comma-delimited list of the current networks. The changes in these attributes make it much easier to determine the status of the all providers on the system.

510.10 OLD WORKDAY CHECKING FOR 7-DIGIT JULIANS
Thu, March 24 2005

If a 7-digit julian date value was passed to the WORKDAYS function and the julian was earlier than today's date, WORKDAY would return incorrect results. Using WORKDAY with today's date, dates in the future or Unisys 5-digit julian dates were not impacted. This problem is now resolved.

510.09 FIX CORRUPTED COMMANDTEXT
Thu, March 24 2005

The COMMANDTEXT attribute in the OPERATOR context would occasionally be truncated by one character and corrupted by a leading space or invalid character. This problem is now fixed.

510.08 DEIMPLEMENT OPTIONAL LOWER CASE PRINTING
Mon, March 14 2005

This changes supports the deimplementation of the SUPERVISOR LPLOCASE option, as described in SUPERVISOR DNote 510.15.

510.07 BETTER HANDLING OF LARGE SUMLOG RECORDS
Mon, March 14 2005

SUPERVISOR will now internally maintain SUMLOG log records in Unisys Sumlog Version 1 instead of Version 0, affecting the layout of attributes that are mapped onto the first 4 words of the record. Such attributes include the generic LOGMIXNO, LOGJOBNO, LOGMAJOR etc. This change has been applied to correct handling for individual records greater than 1023 words (maximum allowed in the Version 0 layout) particularly seen with various Log Major Type 2 Maint entries. Previously, the LOGTEXT and LOGPRINT attributes would have returned 'NO LOG TEXT: MAINT RECORD TOO LARGE' for log records greater than 1023 words; this restriction has now been removed.

Although OPAL attribute definitions have changed in the LOG context, the effect is transparent on older compiled OPAL code and scripts will continue to run without recompilation. However, since there is a small overhead associated with the support of the older formatted and a recompile of any LOG-based scripts is recommended at some stage.

510.06 CORRECT DUPLICATE TIMEOFDAY ATTRIBUTE
Fri, March 4 2005

TT HELP ATT TIMEOFDAY listed the attribute twice. This has now been corrected.

510.05 ENSURE DELINKAGE OF SURELIB LIBRARY
Tue, March 1 2005

FLEX LIBRARY will now automatically delink from the SURELIB library once a FLEX request has completed. Previously, FLEX LIBRARY would remain permanently connected to SURELIB unless the FLEXLIB library was manually thawed.

510.04 FIX SEG ARRAY WITH PDSURECHECKCOMPILE ON WILDCARD
Tue, March 1 2005

New SURE attributes for the SUPERVISOR MX and LOGBOJ contexts have been implemented. These attributes are named in both contexts as:

SUREBOJCODECHECK
SUREBOJCODETIMESTAMP

These attributes allow the caller to easily determine the compilation status of a codefile that has just been initiated. The attributes do not require a file title parameter as this is automatically determined from the log record (using the NAME attribute) or the mix entry (the CODETITLE attribute). To assist with the validation by the SURE software, both USERCODE and FAMILY are stripped from the codefile name prior to the SURE call.

The MX SUREBOJCODECHECK attribute will return indeterminate results if used for a task that is not a real codefile. Note that MCP independent runners will have the MCP name as their codefile. The LOGBOJ attribute does not have this limitation and can be used for both EVAL and WHEN environments.

SUREBOJCODECHECK will accept an optional string parameter representing the SURE repository name, if required. As with all SURE attributes, networking support is provided where the SURE repository is not available on the local system.

Previously, in FLEX, using the PDSURECHECKCOMPILE or SURECHECKCOMPILE attributes with a FILES command that used a wild-card family search e.g 'FILE (*)= ON =' would fault for each file reported. This problem is now fixed.

510.03 PROTECT LARGE LOG TYPE 2 RECORDS
Thu, February 17 2005

Previously, very large SUMLOG records passed to a LOG-based WHEN or EVAL could have caused various SUPERVISOR faults during extraction of the log entry or generation of the LOGTEXT attribute. These faults included 'FAULT #4 IN EVREADER in SITUATION' in the EVALREADER process, seen during log analysis, or PROCESSOR LOOP and INVALID INDEX @ 97033275 generating the LOGTEXT attribute. The problems occurred because the extracted log record, in the current implementation, must be a maximum of 1023 words and truncated records were often being handled incorrectly.

These longer records are primarily Major Type 2 (MAINTENANCE) and in particular, Minor Types 17 (Hardware Config), 18 (Software Config) and 23 (Mainframe Report). Instances of Mainframe records in excess of 2000 log record blocks have been seen, causing severe problems in the log file processing. Now, when any Major Type 2 records longer than 1023 words a extracted, the SUMLOG is correctly scanned and the LOGTEXT attribute will now return the text 'NO LOG TEXT:MAINT ENTRY TOO LARGE'. This feature is a temporary detour until the log handling routines can be changed to accommodate larger long records.

510.02 WFL JOBID ATTRIBUTE PROTECTION
Mon, February 14 2005

This change provides support for the JOBID attribute (used only in an ON JOBMESSAGE block) due to changes made by SUPERVISOR Dnote 510.06.

510.01 FIX WAIT<NAME>,C) AND WAIT(<NAME>,NOT <STATE>)
Mon, February 14 2005

Version 510.01 of Supervisor introduced a problem in Wait(<name>,C) and Wait(<name,Not <state>). Using such waits could give the wrong result, and in some cases cause the Odts to fault. The problem has been corrected

500.38 DYNAMIC VARIABLES AND LIMIT CONFIG USAGE
Wed, February 9 2005

The recent major changes to variable handling covered the maintenance of many aspects of OPAL string and real manipulation except for 'dynamic' variables. Dynamic variables allow another OPAL string variable to be used as a key e.g. GETSTR(GETSTR("A")) means use the string value in variable A as a key for the GETSTR function that surrounds the GETSTR. This is sometimes useful in WHENs or EVALs, for example, to use a mixnumber or unit number as a key to gold information about that mix entry or unit.

The above capability has now been introduced for the new variable mechanisms. The following syntax has been implemented:

<string variable>

  ----+--- $ ----+---- <var name> ---------------------------------|
      |          |
      +--- $$ ---+

<real variable>

  ----+--- # ----+---- <var name> ---------------------------------|
      |          |
      +--- #$ ---+

In both cases, the prefixing of '$' before the variable name means use the value held in the string <var name> as the key for loading the requested value. For example:

$A:="TESTVAR";
$$A:= "THIS IS REALLY TESTVAR"; %string is actually in $TESTVAR
$$A is the same as $TESTVAR or GETSTR("TESTVAR").
$MX:=#("CPU",MIXNO);
#$MX:= CPUTIME; % Stores into variable CPU1234
#$MX is the same as GET("CPU1234") or #CPU1234 (if MIXNO=1234).

It is not possible to use a string expression with a $$ or #$ operation. Note that, as with the older variable mechanism, using an empty string as a key for a dynamic variable is not permitted:

FUNCTION VARIABLE KEY CANNOT BE NULL STRING

OPAL automatically upcases any lower case characters into the loaded key name as all $ and # variable handling expects upper case.

The ability to change Magus configuration variables using the CONFIG property with $ variables, PUTSTR and STORE functions. The preferred method of changing Magus configuration information is to use the INSTALL utility via the CONFIG and MAINT menus.

500.37 SUPPORT FOR TIMESTAMP ATTRIBUTES
Wed, February 2 2005

This change supports some of the new julian date attributes implemented in OPAL GSTABLEGEN DNote 500.26.

500.36 VALID MNEMONICS FOR PKSUBTYPES > 56
Mon, January 24 2005

Valid Mnemonics are now returned for the PKSUBTYPE attribute when the value is greater than 56.

500.35 SHOW ALL SYSTEM ATTS IN HELP ATT = SYSTEM
Tue, January 18 2005

The internal structure of Opal, groups System Attributes into several subtypes.

Ex System SS, System PD, System Nap etc.

Unfortunately the HELP ATT =:SYSTEM command only returned System attributes which had no subtype. This command will now return all System attributes, including those with subtypes.

500.34 DONT TREAT SITU AS CONSTANT WHEN EXTERNAL FUNCTION
Wed, January 5 2005

Supervisor has code to optimise System situations which are marked as constant. If such a situation returns TRUE the situation code is no longer evaluated but the ODTs is executed after each delay period. Examples of such situations would be

DEF + SITU TEST:TRUE
DEF + SITU MINE:HOSTNAME="MYSYS"

If an external function like KEYIN or COMS was used in a Situ which would otherwise have been 'constant' the Constant flag was not turned off.

This would mean that a Situ like :

DEF + SITU TEST:"XXXX" ISIN KEYIN("W")

Would trigger the ODTS whenever "XXXX" was in the response to a W command and would continue to trigger the ODTS even after there was no "XXXX" in the W response.

The use of an external function in a Situ now resets the constant Flag.

500.33 LOAD OPTIMIZED PD ATTS FROM CORRECT ARRAY
Thu, December 9 2004

When a FLEX REPORT or SELECT used multiple PD attributes with normal file attributes in the same expression, it was possible for some of the PD attributes to return incorrect values. For example:

REP CODEFILE,,PDGUARDED(TITLE),OTHERRWX,,PDGUARDED(TITLE)

In the above expression, the second PDGUARDED attribute could return incorrect values. This optimization problem is now fixed and PD attributes behave correctly.

500.32 FIX OLD OPAL COMPILED CODE FOR WFL FUNCTION
Thu, December 2 2004

The change in DNote 500.31 affected existing compiled code that uses the WFL function such that, although the job was correctly started, any job messages tracked by an ON JOBMESSAGE code block would invariably be corrupted. This behaviour has been corrected and old code will now work correctly.

500.31 FIX JOBMSG CORRUPTION FROM LOG OPALS
Wed, November 24 2004

Previously, using ON JOBMESSAGE code inside a LOG-based ODTSEQUENCE linked via an EVAL or WHEN would fault when the first job message was processed. Note that ON JOBMESSAGE functionality only works after a WFL function has been executed. This problem is now fixed.

500.30 FIX NUMERIC PERMANENT VARIABLES
Wed, November 24 2004

Version 500.22 reintroduced a bug. The get function or a numeric variable with a perm modifier could cause unexpected results or an Opal fault.

500.29 DETOUR SAMEID OPTIMIZE PROBLEM
Tue, November 9 2004

Multiple use of the SAMEID and SAMEIDS attributes, used in a FLEX REPORT or SELECT, often failed to return correct values or cause the REPORT to fault for the first file encountered. The problem would occur if SAMEID was used in one or more IF ..THEN expressions with no other FLEX attributes being used. This problem has now been resolved.

500.28 FIX SEMANTICS VALUE ARRAY OVERFLOW
Fri, October 22 2004

Internal change to handle large GSSEMANTICS arrays for SUPERVISOR. No functionality has been affected.

500.27 SUPPORT FOR SUPERVISOR FI ATTRIBUTES
Fri, October 22 2004

This change supports the new mix subset of FI attributes, allowing the retrieval of file information currently used by an individual task or job. The OPAL machine has been optimised to specifically handle the way these attributes are retrieved to limit CPU overhead.

For more information please refer to SUPERVISOR DNote 500.18 and OPAL GSTABLEGEN DNote 500.04.

500.26 IMPROVE CODE LISTING LAYOUT
Fri, October 22 2004

For SUPERVISOR and FLEX compilations with the CODE option set, the generated code output has been changed to present a clearer format that is better suited for PC or terminal display instead of printouts.

500.25 ATTRIBUTE FUNCTION CLEANUP
Fri, October 22 2004

This internal Metalogic change improves the handling of OPAL attribute functions by the OPAL compiler and has no effect on customer usability. Attribute function information is now more detailed in a code listing and SUPERVISOR's handling has been redesigned allowing the retirement of some existing OPAL operators.

500.24 FIX LOGMIXNO AND LOGJOBNO ATTRIBUTES
Wed, October 6 2004

Depending on the length of the log entry being scanned for any of the SUPERVISOR LOG contexts, the OPAL LOGMIXNO and LOGJOBNO attributes could return zero or incorrect values. This problem applied to both EVAL and WHEN variants and is now fixed.

500.23 LIST VALID MNEMONICS FOR 'MNEMONIC OF' CASES
Tue, October 5 2004

Attributes which returned Mnemonic values corresponding to MCP Task or File attributes are reported in Help Attributes as 'Mnemonic Values: As for Task/File Attribute....' but the valid mnemonics are not listed . This change causes the valid mnemonics to be listed.

500.22 FIX MULTIPLE ATTRIBUTES AS PARAMETERS TO AN ATTRIBUTE
Mon, October 4 2004

If an attribute took more than two parameters and those parameters were themselves attributes, then unexpected results could occur.

Ex. In a PER Context DUMAX(FamilyName,FamilyIndex) would fail.

This problem has been corrected.

500.21 SUPPORT INUSESTACKS AND MAXACTUALSTACKS
Fri, September 24 2004

This change supports the new SUPERVISOR attributes INUSESTACKS and MAXACTUALSTACKS, as described in OPAL/GSTABLEGEN DNote 500.17.

500.20 FIX FOR LONG PERMANENT NUMERIC IDENTIFIERS
Tue, September 21 2004

If an identifier of longer than 13 characters was used in a numeric assignment expression, the identifier stored would be truncated to 13 characters.

Ex #SUMLOGLIMIT47484.perm:=333

would behave #SUMLOGLIMIT47.perm:=333.

A PUT with a perm modifier would cause an Opal compiler fault.

Both of these problems have been corrected.

500.19 DON'T ALLOW HYPHEN IN IDENTIFIERS
Tue, September 14 2004

OPAL change 500.18 caused FLEX and SUPERVISOR to mishandle negative numbers and other expressions using a minus sign. This behaviour has been corrected.

500.18 ALLOW HYPHEN CHARACTERS
Tue, September 14 2004

Previously, certain SUPERVISOR commands, in particular PDT, would not permit the hyphen character (-) to be used in wild-card filename patterns. This restriction has been lifted.

500.17 ALLOW OPAL DUMP IN MACHINE
Tue, September 14 2004

This change supports the ability to force an OPAL environment dump prior to the execution of a specific code syllable. Please see SUPERVISOR DNote 500.31 for more information.

500.16 ADD PDSURECHECKBOT FOR FAST EASIER SURE BOT CHECK
Tue, September 14 2004

A new attribute, PDSURECHECKCOMPILE, has been implemented for easier checking of SURE codefile compilation and WFL creation dates. This attribute can be optionally used instead of the SURECHECKCOMPILE and PDSURETIMESTAMP combination, as described in OPAL DNote 490.20.

For example, in a SUPERVISOR LOGBOJ script to check a codefile BOJ against the SURE repository, where the NAME attribute represents the codefile name, then there are now 2 ways to check the validity of the file:

PDSURECHECKCOMPILE(NAME)
Or
SURECHECKCOMPILE(NAME,PDSURETIMESTAMP(NAME))

For FLEX scripts, the NAME attribute would generally be replaced by TITLE or FILENAME. In the current implementation, when the codefile title is passed to SURE, any 'ON <packname>' part is automatically stripped from the title.

As with the other SURE attribute subset, PDSURECHECKCOMPILE will allow an optional repository as the second parameter:

PDSURECHECKCOMPILE(TITLE,"FACTOS")

500.15 IMPLEMENT DUMP STATEMENT
Wed, August 4 2004

The DUMP statement is now available for SUPERVISOR ODTSEQUENCES only. DUMP allows a running OPAL program to perform primitive 'program dumps' of its own environment.

   --- DUMP ---------------------------------------------|

The dump, which always goes directly to printer backup, consists of the following data:

Slot-related information similar to WHEN ?
OPAL string variables
OPAL real variables
Run-time stack information
Wait state details

The same information can also be seen by a running OPAL using the SLOT command, returning the same info to remote terminals, please see SUPERVISOR DNote 500.26 for more information.

500.14 SUPPORT FOR VL CONTEXT
Mon, July 5 2004

A new OPAL context, called VL has been implemented for SUPERVISOR. On cataloging systems only, this context allows information about volumed entries held in the system Volume Library. Knowledge of Flex and CopyWrite volumes, as created by FAMILYMANAGER and MERGETAPE, is included in the attribute subset using information from the FLEX Statistics file.

The full set of attributes can be viewed using the command:

TT HELP ATTR =:VL

Please see SUPERVISOR DNote 500.23 for more information.

500.13 FIX MONTHNAME FUNCTION
Fri, July 2 2004

The change applied by DNote 500.04 inadvertently broke the MONTHNAME function such that it usually returned a string with the wrong length. This problem is now fixed.

500.12 ADD FLEX NOCAPSULE ATTRIBUTE
Tue, June 29 2004

This change adds a new FLEX attribute, RELEASED, which reflects that a capsule on a PC Disk Farm has been released from that farm. This information can only be retrieved from the LIBMAINTDIR associated with the Disk Farm.

500.11 SUPPORT FOR SUPERVISOR QUEUED CONTEXT
Tue, June 29 2004

A new OPAL context, called JOBQUEUE or SQ, has been implemented for SUPERVISOR. This context allows information about queued jobs to be retrieved from the system and mapped to OPAL attributes. The full set of attributed can be viewed using:

TT HELP ATTR =:SQ

Please see SUPERVISOR DNote 500.21 for more information.

500.10 FIX FOR #XX.PERM AND GET("XX".PERM)
Thu, May 20 2004

When used in an opal string the get function or a numeric variable with a perm modifier could cause unexpected results or an Opal fault.

500.09 REINSTATE GETSTR(...,FILE)
Tue, May 11 2004

Version 500.05 disabled the File option for the GetStr function. It has been re-instated.

500.08 INTERNAL CHANGE
Fri, April 23 2004

Internal change only.

500.07 SUPPORT FOR NEW JOBREJECT ATTRIBUTES
Tue, April 13 2004

Support has been added for the new JOBREJECT attributes discussed in OPAL GSTABLEGEN DNote 500.07.

500.06 ADD GLOBAL MODIFIER
Wed, March 31 2004

.Global has been added as a new property for Opal variables.

In Supervisor .Global variables are shared by all slots and their value is retained only for the duration of the current invocation of Supervisor. They are lost on Halt Load or Supervisor restart.

In Flex the variables are shared by all runs of Flex or Familymanager and retained only for the duration of METALOGIC/FLEX/LIBRARY. They are lost after a Halt Load or if Flex Library is thawed.

Global variables are not shared between Flex and Supervisor.

The intention is to allow shared variables without the IO overhead of Perm variable.

Global can also be used in the old Get,Getstr etc functions.

$S.Global is equivalent to Getstr("S",Global)

500.05 FIX OPAL VERSION CODE FOR FLEX RULES
Thu, March 25 2004

Version 490.22 caused any flex rules enter command to fail with an Opal compiler fault. This has been corrected.

500.04 REPORT RETRY WITH TRACE CALLER
Thu, February 26 2004

Internal change only.

500.03 TERM KNOWLEDGE ATTRIBUTE
Thu, February 26 2004

A new self-knowledge attribute has been added to SUPERVISOR. This allows a DO or WHEN to determine the original log-on usercode, accesscode and COMS stationed, if applicable. Note that usercode and accesscode settings will change if the TERM USER of the station has been changed.

A HELP ATTR TERM will show:

   TERM (SYSTEM) RETURNS STRING
    PARAMETERS : 1. MNEMONIC, VALUES : LOGONUSER(66), LOGONACCESS(67),
            LOGONSTATION(68).
    SEMANTICS : Returns information about the user's current TERM
         settings inherited from COMS or changed by TERM USER.

500.02 IMPLEMENT TAKE FOR RHS OF STRING
Thu, February 26 2004

The TAKE function will now allow a negative parameter signifying the number of characters that should be returned from the right hand side of a string. For example:

   TAKE("ABCDEFGHIJKL",-3) returns "GHI"

This is a shorthand for the more cumbersome:

   DROP("ABCDEFGH",LENGTH("ABCDEFGH")-3)

500.01 MCP 5.0 COMPATIBILITY
Tue, February 17 2004

Confirm compatibility with MCP 5.0.

490.23 FIX PROBLEM WHEN RELATED ATTRIBUTES USED AS PARAMETERS
Mon, February 16 2004

If two related attributes (e.g. MSGNO and TEXT) were used as parameters to another attribute, it was possible for invalid code to be generated which could case either a fault or invalid results.

A bug introduced by Opal Version 490.08 has been corrected. The Per FAMILYNAME and the NAPLOG TimeStamp attributes are now working.

490.22 INTERNAL CHANGE
Mon, February 16 2004

Internal change only.

490.21 IMPLEMENT FILENO
Wed, February 11 2004

The small change implements the FILENO function attribute in FLEX.

490.20 SUPPORT FOR FLEX SURE ATTS WITH REPOSITORY
Tue, February 10 2004

The SURE attribute subset returns information, via the SURELIB system library, from the InfraDesign SURE source control system. These attributes have been extended to allow an extra, optional parameter which identifies the SURE repository to be accessed. Both SUPERVISOR and FLEX Library will automatically attempt a connection to a different SURE library identified by a modified SL.

For example, a typical SURE attribute reference inside a LOGBOJ or MX=BOT context might be:

  SURECHECKCOMPILE(NAME,PDSURETIMESTAMP(NAME))

If the file identified by NAME was in a different SURE repository, here signified as the string 'SAS', then the attribute call would appear as:

  SURECHECKCOMPILE(NAME,PDSURETIMESTAMP(NAME),"SAS")

SUPERVISOR will attempt to connect to an SL-ed library whose function name is:

  SL SURELIBSAS

SUPERVISOR and FLEX will automatically link to the next library, delinking from a previous SURELIB if needed. This mechanism allows multiple SURE repositories to be accessed, identified by different usercodes and disk families.

490.19 EXTEND LOG SITU DEFINITIONS
Tue, February 10 2004

Previously, it was not possible for a LOG context SUPERVISOR script to detect more than one LOG major type in the subcontext definition; only a single major type with a list of minor types was permitted. This se restriction has now been relaxed and multiple LOG Major types can be specified for a LOG SITUation using the '+' operator:

DEFINE + SITUATION LOGSELECT(LOG=1+5+14):

The above SITU will only receive LOG Major Types 1,5 and 14 - all minor type for each Major will be automatically selected. It is not possible to assign a Minor type for an individual Major type in this mechanism.

This implementation allows a LOG SITU to receive more than one Major type in a very efficient way instead of using a generic LOG context which would receive ALL generated log entries. The new LOGTYPE attribute allows the SITU to easily select only those Minor types that are of interest (LOGTYPE=(LOG Major*100)+LOG Minor):

   DEFINE + SITUATION LOGSELECT(LOG=1+14):
       LOGTYPE={105,106,1404}

The above SITU would only select Major Type 1 and Minor Types 5 or 6, or Major Type 14 with Minor Type 4.

490.18 IMPLEMENT EI ATTS FOR JOBREJECT
Tue, February 10 2004

The JOBREJECT context now supports a small subset of attributes from the EI log record that is generated prior to a job that iq Q-DSed.

These attributes include NAME, USERCODE, CHARGECODE and ACCESSCODE.

490.17 CORRECT LOGFIELD HANDLING
Tue, February 3 2004

Previously, the LOGFIELD attribute could return incorrect values when using both the source bit and length parameters. This problem has now been fixed.

490.16 LOGPRINT ALTERNATIVE FOR LOGTEXT
Tue, February 3 2004

The LOGTEXT attribute has multiple spaces automatically removed from the content to allow OPAL programs to better scan the message. However, using LOGTEXT in a simple SHOW or PRINT statement presents a poorly-formatted and hard to read display. To help this, an alternative attribute called LOGPRINT will now present the log record in the same indented format as LOGANALYZER.

Previously, an EVAL of a EI log programs would have returned all log records instead of only LOGMAJOR=0 and LOGMINOR=1 or 2. Any EI programs run as a WHEN did not show the same behaviour. This problem is now fixed.

Typically, log CONFIG records (LOGMAJOR=2) can be very large in size which could have caused considerable problems when SUPERVISOR attempted to generate the LOGTEXT attribute. Because SUPERVISOR was truncating the log entry, the log analysis could generate a variety of problems including forcing SUPERVISOR into a processor loop or random faults. Although the largest log entry that SUPERVISOR can handle has been significantly increased, attempts to retrieve LOGTEXT information for very large entries will return the following text into the attribute:

NO LOG TEXT: CONFIG RECORD TOO LARGE

SUPERVISOR will now allow the legal 'LOG=0' context specification where an 'INVALID OBJECT SPECIFICATION# was given before.

490.15 ADD NEW PROPERTIES MX, PER,TAPEDB AND PRINTS
Thu, January 29 2004

These new properties can be used with numeric or string variables. They allow the interrogation of an object determined by the value in the variable and the type specified by the property name.

Ex.
$A.MX(NAME) would return the name of the mix entry who's mixnumber is held in $A.

#A.PRINTS(TOTALLINES) would return the total number of lines in the print request who's number is held in #A.

#A.Per(#(KIND,,LABEL)) would return the Kind and name of the unit who's unit number was held in #

$A.TAPEDB(TITLE) would return the title of the tape who's serial number is held in $A

This gives a more concise way than using VIA to get attributes for objects other than the current object.

$A.MX(NAME) is equivalent to VIA(TASKSTR($A):NAME)

490.14 CLEAN UP DEBUG CODE
Tue, December 16 2003

This is an internal Metalogic change that cleans up debugging features inside the OPAL machine and compiler.

490.13 SUPPORT FOR USE SILO COMMAND
Tue, December 16 2003

This patch supports the TT USE SILO command changes discussed in SUPERVISOR Dnote 490.20.

490.12 FIX ILLEGAL USE OF EXPRESSION LISTS
Tue, December 16 2003

Previously, the use of expressions lists i.e. {"A","B","C"...} or {1,12,44,56} were permitted by the OPAL compiler under various conditions even though the usage was illegal. These anomalies have now been corrected; such illegal use will give the appropriate error:

	'An <expression list> cannot appear here'

Some internal compile-time debug code has also been removed.

490.10 PDSURETIMESTAMP ATTRIBUTE
Thu, October 30 2003

The Infradesign SURE system holds timestamps for both codefiles and job files but the PDSEG0TIMESTAMP attribute, used to return the compile date and time of a codefile in hex format specifically for SURE, cannot work this way for JOBSYMBOL files.

To help support this additional feature, PDSEG0TIMESTAMP has now been replaced by the PDSURETIMESTAMP attribute which will return the same TIME(7) hex string for a JOBSYMBOL file, constructed from the job's creation date and time attributes.

490.09 SUPPORT FOR CONTAINER ATTRIBUTE
Wed, October 22 2003

A new FLEX attribute, CONTAINER, returns TRUE if the file being handled by FLEX either has a FILEKIND=CONTAINERDATA or is a stream file with a container signature in the first 18 characters of the file. No further verification of the file is performed. FLEX will automatically suppress file OPEN/CLOSE records in the SUMLOG for each eligible container file opened during the search.

490.08 MORE FIXES FOR TIMESTAMP ROUNDING
Tue, October 14 2003

Version 490.06 did not fix the timestamp rounding problem. This change does.

The Time functions has also been revised to round down seconds to avoid a time display like 10:05:60.

490.07 FIX MISSING LOGTEXT HDR FOR MAINT LOG RECS
Tue, October 14 2003

If the LOGTEXT attribute was used to analyze an IOEXCEPTION maintenance log record (major type 2, minor type 21) from a log-based EVAL, it was likely that heading information would be omitted from the generated LOGTEXT attribute.

For example, the LOGTEXT attribute could return either of the following forms:

PACK 2002 (UNITTYPE=17 SUBTYPE=4022-103 SCSI PACK CTLTYPE=FCPK1EMC
IO START AREA AREA PORT CTL LOGICAL
MIX DATE TIME START LENGTH #
317 10/10/2003 08:28:34 09959D38 5E7B8 CHARS 21114 13540 5E7B80000081

Or, with most of the heading removed:

08:28:34 09959D38 5E7B8 CHARS 21114 13540 5E7B80000081 002002 320 JOB

The above would occur if two maint records for the same unit were processed in sequence from the log or there were multiple references to the LOGTEXT attribute in the SITU or ODTS.

This behaviour, a feature of the JOBFORMATTER library, has now been disabled and the full heading information for each MAINT IO log record will be provided.

490.06 MATCH ROUNDING IN SURE FOR PDSEG0TIMESTAMP
Fri, October 10 2003

The attribute PDSEG0TIMESTAMP was introduced to help to use Sure to validate codefiles. The calculation used by Sure would sometimes give a different result due do rounding. This change attempts to bring Opal into line with the Sure calculation.

490.05 FIX SURECODECOMPILETIME FOR FLEX
Thu, October 2 2003

The SURE attribute SURECODECOMPILETIME causes various RULES_PROCESSOR faults when used in any FLEX DO file. This oversight has now been addressed.

490.04 MULTIPLE SURE REQUEST TIMING PROBLEM
Thu, September 25 2003

If multiple SURE requests were issued from an event-based ODTSequence, it was possible for some of the requests to fail if other events were subsequently queued for the DO or WHEN. This problem has been resolved.

490.03 UPDATE SURE ATTRIBUTE SUPPORT
Wed, September 17 2003

SUPERVISOR retrieval of information from the SURE subset of attributes is now protected by offloading such calls to the GRINDER process instead of the main SUPERVISOR stack. When an OPAL program is waiting for information to return from GRINDER, the WHEN slot will be marked as '(WAIT SURE)'.

FLEX functionality using these attributes is unaffected by this change.

490.02 CLARIFY WHEN DISPLAY USAGE
Thu, August 21 2003

In a SUPERVISOR ODTSequence, the OPAL WHEN and ONCE statements will only accept a DO modifier and the DISPLAY modifier is disallowed. This was contradicted by the OPAL manual and a confusing message 'DO or DISPLAY expected' when a WHEN.. DISPLAY statement was used. This message will now show 'DO expected' as expected and the OPAL manual has been updated to reflect this change.

490.01 UPDATE VERSION FOR MCP 49.1
Mon, August 18 2003

Internal version change for MCP 49.1.

480.31 ALLOW USE OF QUOTES IN PRIMED STRING
Tue, August 5 2003

Previously, to construct a string expression with double quotes (") in its content, paired double quotes would be required e.g. "A""B" would evaluate to the string A"B. An alternative to this mechanism is now available using the single quote (') which avoids this usage e.g.

'A"B'

This returns the same string value as "A""B" but is a little clearer to use; this would be particularly helpful when constructing string parameters for WFL jobs started by SUPERVISOR. As with double quotes, a two single quotes are required to insert a single quote into a string

e.g. 'ABC''D' would return 'ABC'D'.

Please note that this change is not yet available for FLEX but is scheduled for implementation soon.

480.30 SUPPORT FOR JOB CONTEXT
Tue, August 5 2003

This change allows SUPERVISOR users to track single or multiple WFL activities from a single OPAL program. All job messages, BOJ and EOJ information are returned and made available via a special OPAL context called JOB. It is not possible to DEFINE an ODTSequence with a context of this type.

Please see Supervisor DNOTE 480.89 for more detailed information about this new feature.

480.29 NEW INPUT FUNCTION
Mon, July 14 2003

This change introduces a new function: Input.

The input function is only valid for ODTSequences started from a Supervisor window. The function returns a string consisting of the next input from its controlling window.

Ex. $MyText:=Input;
will cause the ODTS to wait for input. If TT DO MYODTS was entered this command would not be executed but instead $MyTExt would be set to "TT DO MYODTS.

This new function is intended for use in interactive ODTsequences, it is not allowed in Flex or in Displays or Situations.

If an ODTs executes an Input function when it is not running from a Supervisor Window, it will be aborted.

If the Supervisor Window is closed while an ODTS is waiting for input, then the ODTS is aborted. A new example file OPALS/MENU illustrates the use of this function.

This version also corrects a problem in Case Statements. If two statements in a case block were not separated by a semi colon the code would compile but fail at run time.

EX.

CASE #I OF
BEGIN
  0:$A:="S"
    $B:="T";
END

Would compile but fault on execution.

480.28 SYNONYMS FOR DL ATTS
Tue, July 1 2003

This is an internal Metalogic change.

480.27 ALLOW SYSTEM OPAL TO CHECK RECORDER MNEMONICS
Wed, June 25 2003

SYSTEM/OPAL is now able to check the validity of recorder mnemonics. A warning, rather than an error is given for invalid mnemonics.

480.26 COMPILER FAULT IN ATT MNEMONIC RELATION
Tue, April 29 2003

The OPAL compiler would give a compiler fault during the handling of an attribute-mnemonic comparison where the attribute did not have and associated mnemonics. If such attributes were compared to certain mnemonics (e.g. the expression 'LOGMAJOR NEQ NORMALEOTV' where LOGMAJOR has no valid mnemonics) would have faulted. This problem is now fixed.

480.25 IMPLEMENT DECIMAL FIELD WIDTHS
Mon, March 31 2003

Previously, the only way to show a real value in an OPAL display string was to use the STRING8 function; otherwise OPAL will always force any real value to be integerised.

Now, the field width mechanism has been extended to allow the specification of a number of decimal places to be shown for a real value. For example, the following expression:

#A:= 166.27657657;
SHOW("A=", #A 5.6);

would display the integer part as a 5-character right-justified string with 6 decimal places:
A= 166.27658

This change applies to both Flex Inquiry and Supervisor OPAL compilers. Only 9 decimal places can be displayed; any attempt to display more than 9 places will generate a compile-time syntax error.

480.24 RETURN REAL FOR CPURATE
Thu, March 27 2003

This change returns a real value for the CPURATE attribute, instead of a truncated integer.

480.23 REINSTATE USERFN FOR FLEX
Mon, March 10 2003

USERFN functionality was accidentally deleted by OPAL patch 480.15; this caused any FLEX DO file executing a USERFN call to display the error message:
"Inappropriate SUPERVISOR operators encountered STRING at"

This problem has now been fixed.

480.22 ADD .STORE METHOD FOR VARIABLES
Wed, February 19 2003

A new method, .STORE, has been implemented for both string and numeric variables which offers an effective alternative to the old STORE function.
For example, STORE("A","ABC"&MCP) and STORE("NUM",22) may now be:

$A.STORE("ABC"&MCP)
#NUM.STORE(22)

As with the STORE function, using the .STORE method always returns an empty string as a function result, regardless of its usage with string or numeric variables.

480.21 SUPPORT FOR SUPERVISOR DBS FUNCTION
Wed, February 19 2003

A new OPAL function for Supervisor called DBS, allows OPAL programs to retrieve database information via the visible DBMS. DBS currently has the following syntax:
---- DBS ( <mixno>, <VBDMS command> ) -------------------------

where <mixno> is the mix number of a valid DMSII database. For example:

DBS(12345,"STATUS")

would return the response from an operator SM STATUS command to the database stack. Like the COMS function, DBS will return any response with each line terminated by a '/', allowing each line to be easily parsed in an OPAL routine. DBS will accept any Visible DBMS command though it is intended to extend the functionality to include other features.

Because DBS causes Supervisor's GRINDER task to temporarily go to the database's DMSUPPORT library, there are overheads associated with its usage though these are kept to a minimum. Note that SUPERVISOR will only link to databases whose DMSUPPORT library actually have a level called 'DMSUPPORT' somewhere in the file title

480.20 FIX COMSSUPPORT LINK/DELINK OVERHEADS
Tue, February 4 2003

Previously, use of the OPAL COMS function involved a library link and delink to the Unisys COMSSUPPORT library. If the function is used heavily, this would cause significant overhead particularly in the system logging of library linkage actions. This problem has now been addressed.
As a consequence of the previous fix, a TT DELINK COMS command has been added to force the immediate delinkage of SUPERVISOR from the COMSSUPPORT library.

480.19 LIMIT FINAL SIZE OF PERM VARIABLES
Tue, January 28 2003

Although string variables are limited to storing 65535 characters, it is possible to exceed this value when using the concat (&) method.

Ex $S:=&$S1 S could start as 65535 and s1 could start as 65535.

If the new string after such a concat exceeded 393210 characters, Supervisor or Flex would fault with a RESIZE error. An error is now returned if an attempt is made to exceed 393210 characters.

480.18 SUPPORT FOR OPAL/GSTABLEGEN 480.10
Tue, November 12 2002

This change supports changes to Opal/Gstablegen to fix the Attributes D1Stackno and D1RunCount.

480.17 FIX WORKDAY(YYDDD) CALCULATIONS
Thu, October 31 2002

Previously, the WORKDAY attribute used with a julian parameter would not consistently return the correct value depending on the date passed.
These problems are now fixed.

480.16 FIX USERFN DISPLAY
Tue, October 22 2002

SUPERVISOR Dnote 480.44 discussed a change in the handling of the OPAL USERFN function using GRINDER. However, if USERFN was executed from a simple OPAL DISPLAY program
(by TT /), SUPERVISOR could have entered a tight processor loop requiring manual AS. This problem is now fixed.

480.15 SUPPORT FOR SUP COMS FUNCTION
Tue, October 22 2002

This patch supports a new OPAL function, COMS, which allows the passing of COMS commands and inquiries to the COMSUPPORT library and receiving responses. Please refer to Supervisor Dnote 480.44 for more information.

480.14 ALLOW $A FOR GETSTR("A")
Mon, October 21 2002

This change at last offers an alternative to the 'Variable' functions, ex. GET, PUT, PUTSTR etc.

String and numeric variables are now permitted. String variables are prefixed with $ and numeric variables are prefixed by #. The variable name can be made up of up to 17 alpha numeric characters and '_' (underscore) character. Ex $123_abc, #Segs, etc.

Internally, variable names are always treated as if they were in upper case.

Ex $abc = $Abc =$ABC =Getstr("ABC").

Assignments are allowed to variables using the := operator.

Ex If #Proc:=AccumProcTime > 100 Then this would store the current accumulated processor time for a task in the variable #Proc and use that value in the comparison.

In Supervisor assignment statements are allowed

Ex. $S:="a,b,c";

Permanent and Config variables are handled by using the PERM or CONFIG properties. Both are valid for string variables but only PERM is permitted for numeric variables.

Ex. $List.Perm:="TEST"; is equivalent to STORE("LIST","TEST",PERM)
$Sup_Destination.Config is equivalent to GetStr("SUP_DESTINATION",CONFIG)
#Segs.Perm is equivalent to Get("SEGS",PERM)

For String variables, a method SPLIT replaces the SPLIT function

Ex. $List.Split is equivalent to Split("LIST")
$LIST.Split("XX") is equivalent to Split("LIST","XX")

For numeric variables the SUM, ACCUM and DELTA methods mirror the corresponding functions.

Ex. #Segs.Accum(Segments) is equivalent to Accum("SEGS",Segments)

480.13 FIX NAPLOG TOTALLINES ATTRIBUTE
Mon, July 8 2002

Previously, the NAPLOG attribute TOTALLINES would always return a value of zero. This problem is now fixed.

480.12 SUPERVISOR HELP DISPLAY
Mon, July 8 2002

This patch supports the change documented by Supervisor Dnote 480.38 which improves the response generated for a TT HELP ATTR command.
Please see this note for more information.

480.11 SUPPORT FOR ATTS SCHEDULEHELD,MAXWHENS,USE (MODE BACKTRACK)
Wed, May 29 2002

Supports the New Attributes ScheduleHeld and MaxWhens.

Supports the 'MODE BACKTRACK' extension to the USE attribute.

480.10 FIX SEG ARRAY FOR LONG COMMANDTEXT
Thu, May 9 2002

Any OPERATOR EVAL or WHEN could fault with a STRING PROTECT error if the text of the original command was very long (greater than 255 characters). This problem is now fixed.

480.09 SUPPORT FOR SUP WORKDAYS EXTENSIONS
Thu, May 9 2002

To accompany the new WORKDAYS command implemented in SUPERVISOR that allows Saturdays and Sundays to be assigned as additional working days, a new OPAL boolean attribute called WORKDAY is available.

WORKDAY returns TRUE if today is a normal work day that is not a holiday or is a Saturday/Sunday that has been assigned by the WORKDAYS command. In addition, the NEXTWORKDAY attribute will now include in its calculations any Sundays or Saturdays that have been assigned by the WORKDAYS command.

480.08 ALLOW FOR CONSTANTS STARTING WITH "."
Wed, March 6 2002

Version 480.06 caused the compiler to fault when parsing constants which started with a decimal point. Ex WAIT(.1)

480.07 MINOR FIXES FOR BUGS REVEALED TESTING FOR COURSE
Wed, February 27 2002

HOLIDAY(1) returned whether today was a holiday instead of if Jan 1 2000 was a Holiday
The opal compiler would fault when scanning constants > 274877906943.

Enables use of mixed case Mnemonic values. See TT HELP ATT VIOLATIONCODE
The Number function will now accept real values.

480.06 INLINE OPAL FIXES
Tue, February 26 2002

This patch addresses a number of problems:

1. The OPAL compiler would fault when evaluating a string expression which used an attribute, that returns a string mnemonic, coupled with a field width e.g. STATUS 12

2. In an in-line OPAL, using a mnemonic value as a primary would cause the OPAL compiler to fault. Also, invalid in-line OPAL source such as 'TT / (JFHJFJHFJ)' will now be correctly flagged as a syntax error.

3. Some OPAL attributes which have their own mnemonic identifiers with names that collide with MCP reserved words did not work correctly.

For example in a PER context, KIND={DISK,CD,PRINTER} would fail with syntax errors.
All these problems are now fixed

480.05 FIX COMMANDTEXT FROM MCS OPERATOR
Tue., January 29 2002

The COMMANDTEXT and SOURCENO attributes in the OPERATOR context were not being correctly evaluated for all MCS - generated command entries (Log Setstatus entries Major Type 6 Minor Type 3). For these log record types, using either of these attributes may have causes a WHEN or EVAL to fault with an INVALID INDEX. This problem is now resolved.

480.04 CORRECT COMPILER INSTRUCTION COUNT
Thu, January 24 2002

Previously it was possible for the stand-alone Opal compiler to report an incorrect instruction count for an Opal program that generated LT16 operators. This has now been corrected.

480.03 RESTRICT DISPLAY LENGTH TO 255
Tue., December 18 2001

This change applies to the convention of following an expression by a constant integer to specify the space the expression should take. Adding a very large integer after a numeric expression could cause the Opal to fault with an 'Array bounds error'. An integer greater than 255 after a string expression would give unpredictable results.

An integer greater than 255 in either case will now give a syntax error.

480.02 FIX PRECEDENCE OF 'ISIN' AND RELATED OPERATORS
Fri., November 23 2001

Previously it was not possible to use a concatenated String on the left hand side of a ISIN operator, for example

IF GETSTR("A") & GETSTR("B") ISIN "ABCDEFGH" THEN

would fail with a syntax error.

This has now been corrected, the change will also allow concatenated Strings to be used with the INCL, HDIS, TLIS and EQW operators.

480.01 ALLOW FLEX ACCESS TO TIMEOFDAY ATTRIBUTE
Thu, November 1 2001

The Attribute TimeOfDay which returns the current time of day in seconds since midnight is now available in FLEX.

470.23 FIX BOOLEAN INDEXOF COMPARISONS
Thu, November 1 2001

Previously, the INDEXOF function did not correctly handle expression lists which consisted of boolean primaries e.g.: in FLEX

INDEXOF(DATAFILE, CODEFILE, SYMBOLFILE}

would always return the value zero. Also, all comparison operations using an expression list would fail to compile if the equality operator was either of the graphic characters '>' or '>'. For example:

GET("TARGET") > {100,50,25,12}

Both the above problems are now fixed.

470.22 SUPPORT LONG FILENAMES
Date: Tue., October 16 2001

This change support the longer file names allowed when the SYSOP LONGFILENAMES is set.

470.21 IMPLEMENT 'STRICT' OPTION FOR ODTSEQUENCES
Date: Tue., September 11 2001

This note should be read in conjunction with Supervisor Dnote 480.02.

This change implements the Opal modifications required to support the Supervisor STRICTODTS option. In addition some enhancements have been made to the Stand Alone Opal Compiler - SYSTEM/OPAL as follows:-

The compiler will now recognise and action the 'STRICT' option if it is set in the heading line of an ODTSEQUENCE. This option will cause the compiler to treat the use of isolated Strings or String Expressions used as Statements as a syntax error. A typical heading line to set the options 'LIST' and 'STRICT' might be:-

TT DEFINE + ODTSEQUENCE MYTESTODTS SET LIST STRICT:
If the STRICT option is not specified the compiler will output a Warning if an isolated String or String Expression used as a Statement is encountered.

The compiler will now continue after encountering an error until the entire input file is processed or a pre-defined Error limit is reached. It will also produce a closing summary of the number of Opals compiled the number of Errors encountered and the number of Warnings issued. In addition an ERRLIST file will be generated containing the Errors and Warnings produced.

The compiler will now accept a '$' (Dollar) card image as the first line of the input file. This option card image allows the User to specify a 'global' STRICT option that will be applied to all ODTSEQUENCE Opals compiled from the file together with an overall Error Limit after which the compilation will be terminated. A typical option card might be:-

$ SET STRICT ERRORLIMIT 30
If STRICT is not specified only those ODTSEQUENCE Opals where STRICT is specified as an option on the Header line will be subjected to the new STRICT String rules, any others will merely generate Warnings if an 'Unsafe' construct is encountered. If no ERRORLIMIT is set the compilations will continue until the end of file is reached regardless of the overall Error count.

470.20 CORRECT EXTENSION TO 'DAYNAME' FUNCTION
Date: Tue., June 5 2001

Opal change 470.12 implemented extensions to the DAYNAME function to enable it to return the Day of the Week for any Julian date. This change also imposed a restriction on the range of Day Numbers that the function would accept. This restriction has caused problems to some Users and has now been revised as follows:-

A parameter in the range 1 to 70000 will be treated as a Day Number using the formula (D-1) MOD 7 + 1 where D is the parameter supplied.

A parameter in the range 70001 to 135365 will be treated as a '1900 relative' date.

A parameter in the range 1900001 to 2035365 is assumed to be a full Julian date.

All other values will result in a run-time error.

470.19 RELAX MNEMONIC RELATION CHECKS
Date: Sat, May 26 2001

The OPAL compiler will now allow attributes which normally return mnemonic values to be optionally compared with integer values as well; previously, any comparison operation would syntax with the error MNEMONIC RELATION EXPECTED.

So, the following relational expressions are now allowed:

  EXCEPTIONREASON NEQ 75                                                        
  STOPREASON GTR 21
  
It should be noted that normal attribute-mnemonic comparisons are unaffected.

Specific HELP ATTR commands will now show any associated mnemonics in numeric order with the corresponding value shown in parentheses after the name e.g.

 TT HELP ATTR STOPREASON                                                        
                                                                                
 ---- HELP ATTRIBUTES ----                                                      
 STOPREASON (PRINTS) RETURNS INTEGER MNEMONIC                                   
        MNEMONIC VALUES : NOPAPER(20), NOTONER(21), UNREADY(22),                
           JAMMED(23), COVEROPEN(24), WARMINGUP(25), NOTONWINDOW(26),           
           CANCELLED(27), RIBBONCHECK(28), NEEDRIBBON(29),                      
           NEEDALIGN(30), BYOPERATOR(31), WAITFORDATA(32), TIMEDOUT(33),        
           BYIOH(34).                                                           
        SEMANTICS : This attribute returns the reason why this request          
           has stopped printing.

470.18 FIX SYSTEM/OPAL RECORD MNEMONIC PARSING
Date: Thu, April 26 2001

Previously SYSTEM/OPAL, the stand alone OPAL compiler, would generate a syntax error when attempting to parse a RECORD mnemonic e.g.

RECORD [TEST] ("Test Message")

The compiler will now generate a warning message in these circumstances to indicate that the mnemonic was recognised but was not validated.

When OPAL is invoked to compile code being entered via SUPERVISOR any RECORD mnemonic will be validated against the REC_FILEMAP in the usual way.

470.17 FIX PD ARCHIVE ATTS
Date: Mon, April 2 2001

Many of the Flex PD Archiving attributes did not return correct values because the appropriate MCP GETSTATUS call was not being set up with valid mask information. Further, attributes such as PDARCHOST and PDARCSNS would only have returned information for archive generation 0. Both these problems have now been resolved; any existing OPAL programs must be recompiled.

470.16 FIX TO CASE STATEMENT HANDLING
Date: Wed, March 21 2001

It was previously possible to compile a Case Statement without a final END to match the BEGIN of the Case body. This has now been corrected and a syntax error will be generated if the END is missing

470.15 SUPPORT FOR NAPLOG COPMPONENT DESC ATTS
Date: Fri., February 23 2001

This patch supports the introduction of two new NAPLOG attribute functions, CD_NIULINK and CD_COLINK, which allow the retrieval of component descriptions for NIU and Central Office hardware components. Both attributes require two parameters: component sub category and component item. Please see HELP ATTR CD_= for more information

470.14 DISABLE GS OPTIMIZE FOR KEYIN AND MAIL
Date: Wed, February 21 2001

For ODTSequences that use the MAIL or KEYIN functions, a timing hole exists where it is very likely that attributes belonging to the context in use can become corrupted if they are access *after* the function. The following example will invariably fail:

  DEFINE + ODTS RSVP(MX):                                                       
    MAIL("To:support@metalog.com;Subject:Waitinb entry",                        
         MIXNUMBER&":"&RSVP);                                                   
    RECORD[3](MIXNUMBER,":",RSVP)
easily reproducible using the MAIL function; occurrences using KEYIN are not as common. Because the call takes time to be returned, particularly MAIL, it is possible for data to be corrupted by other system events.

This problem has now been fixed. Any subsequent OPAL attribute requests after MAIL or KEYIN will always require the information to be retrieved again instead of using previously stored information.

Please note that this is a compiler change; it will be necessary to recompile any OPALs that use, in particular, MAIL or KEYIN functions

470.13 FIX MNEMONIC HANDLING FOR MYUSE ATTRIBUTE
Date: Fri., February 9 2001

Previously, the Opal Compiler would generate a syntax error if any mnemonic other than 'CLOSED' was specified as a value for the Attribute MYUSE. This has now been corrected.

470.12 EXTENSION TO 'DAYNAME' FUNCTION
Date: Tue., January 23 2001

The DAYNAME function has now been extended to return the Day of the Week for any Julian date. The existing fuctionality to return the Day when passed the Day Number in the range 1-7 has been retained.

The Julian date may take the form YYYYDDD or YYDDD, if the YYDDD format is used it is assumed that the date is '1900 relative'. Dates earlier than 1 January 1970 or later than 31 December 2035 will result in a run time fault.

Assuming today's date i.e. 23 January 2001 DAYNAME could be invoked using either a parameter value of 31023 or 2001023 and would return 'TUESDAY'.

470.11 IMPLEMENT ADDITIONAL 'DATETOTEXT' MNEMONICS
Date: Tue., January 23 2001

Dnote 460.10 documented a new DATETOTEXT date mapping - DDMONYYYY. This has now been supplemented by further mappings as listed below. To provide an illustration of the results returned it has been assumed that TODAY is 'January 23 2001'.

Thus

DATETOTEXT(TODAY,DDMONYYYY)   would return  23JAN2001                    
                 DDMONTHYYYY  would return  23JANUARY2001                
                 DDMONYY      would return  23JAN01                      
                 DDMONTHYY    would return  23JANUARY01                  
                 YYYYMONDD    would return  2001JAN23                    
                 YYYYMONTHDD  would return  2001JANUARY23                
                 YYMONDD      would return  01JAN23                      
                 YYMONTHDD    would return  01JANUARY23                  
                 MONDDYYYY    would return  JAN232001                    
                 MONTHDDYYYY  would return  JANUARY232001                
                 MONDDYY      would return  JAN2301                      
                 MONTHDDYY    would return  JANUARY2301 
In addition a third optional parameter DELIM may be specified to insert a 'Space' between Day/Month/Year, for example
 DATETOTEXT(TODAY,DDMONYYYY,DELIM)   returns 23 JAN 2001 
and
DATETOTEXT(TODAY,MONTHDDYYYY,DELIM) returns JANUARY 23 2001

470.10 FURTHER CORRECTION TO ATTRIBUTE SYNONYMS
Date: Tue., January 23 2001

Dnote 470.08 described a change to prevent reporting of erroneous synonyms for some Attributes. Whilst the original change corrected most instances some errors were still present. These have now been corrected.

470.09 FIX COMPILER LOOP ON INVALID CLAUSE
Date: Tue., December 19 2000

Previously, if the Opal Compiler encountered an invalid clause in a CASE Statement it could loop until it was R-DSED. This problem has now been corrected.

470.08 CORRECT REPORTING OF ATTRIBUTE SYNONYMS
Date: Fri., November 10 2000

In some circumstances, when Attributes had been updated in line with new MCP levels, it was possible that erroneous synonyms were reported by TT HELP ATT for some attributes.

This has now been corrected.

470.07 CORRECT RESULTS FROM CM ATTRIBUTES
Date: Tue., November 7 2000

Due to changes in MCP the CM attributes, for example CMMCP, were returning incorrect results.

This problem has now been corrected.

470.06 FIX CALL DO SYNTAX ERRORS
Date: Mon, October 30 2000

The change discussed in OPAL Dnote 460.12 unfortunately caused OPAL programs that used CALL DO statements, in certain conditions, to syntax during compilation. This occurred when CALL DOs were used in conditional blocks i.e. IF..THEN CALL DO ...ELSE CALL DO... without message parameters.

Secondly, if there was no terminating semi-colon where a CALL DO was the last statement in a block.

Both these problems are now fixed.

470.05 FIX GENERIC LOG SITU DISPLAY
Date: Mon, October 30 2000

Previously, an interrogation or save of a generic LOG context OPAL, which did not specify any major types, would unconditionally insert a major type of 255. This illegal value would cause any subsequent attempt to recompile the SITU to fail unless the major type was removed.

This problem is now fixed.

Also, each line of text returned by the LOGTEXT attribute used to be delimited by a null (4"00") character instead of a CR (4"0D"). This meant that PRINTing or RECORDing LOGTEXT from any ODTSEQUENCE would always show empty text. The LOGTEXT attribute would also always have a null as the first character of the string; this has now been removed.

Any OPAL that currently uses the lookup character #[NULL] to split lines of text in the LOGTEXT attribute *MUST* be changed to use #[CR] instead.

470.04 FIX CASE STATEMENT TABLE BUILD
Date: Thu, October 5 2000

In some circumstances it was possible that the Opal Compiler could fail when building the Branch table code at the end of a CASE Statement.

This problem has now been corrected.

470.03 ALLOW MASK DIRECT WORD LINKS
Date: Fri., September 22 2000

Attributes of type <FILE>, <IDENTIFIER>, and <SIMPLENAME> can now have a word link if in a masked structure.

470.02 SUPPORT FOR METALOGIC MAIL LIBRARY
Date: Thu, September 21 2000

This change supports the implementation of Metalogic's own MAIL library system which is scheduled for future release. Existing Unisys MAIL users are unaffected.

470.01 SUPPORT FOR MCP 4.7
Date: Thu, September 14 2000

This change is to allow Opal to function on MCP 4.7. A side effect is that any OPAL using the QUEUE or QUEUEVALID attributes which has not been recompiled with GSTABLEGEN version < 400.29 will abort with a message that it should be recompiled. Redefining the Opal will correct this.

460.12 SUPPORT FOR CALL DO + OPTIONAL PARAM
Date: Thu, September 7 2000

This change enables an optional Message Text parameter to be passed to a MSG ODTSEQUENCE that is invoked via a CALL DO. The extended syntax is as follows:-

       CALL DO MYODTS "Example Message Text" 

or

       CALL DO MYODTS GETSTR("MYPARAM") 

The additional parameter is optional, for further details of this change please refer to Supervisor Dnote 46.032.

460.11 ENHANCE ODTSEQUENCE CASE STATEMENT
Date: Thu, September 7 2000

This change extends the syntax of the ODTSEQUENCE CASE STATEMENT to allow a <String Expression> to be used in the <Case Head>.

For example :-

          CASE GETSTR("A") OF
          BEGIN
            "ABC": SHOW("Case ABC");
             "XY": SHOW("Case XY");
             ELSE: SHOW("Other values");
          END; 

460.10 NEW DATETOTEXT DATE MAPPING
Date: Thu, September 7 2000

In response to a User request a new mnemonic mapping has been added for use with DATETOTEXT - this being 'DDMONYYYY'.

As an illustration, if the date were 7 September 2000, the result returned by DATETOTEXT(TODAY, DDMONYYYY) would be 07SEP2000 .

460.09 SUPPORT USER OBJECT WHENS
Date: Wed, August 30 2000

This patch supports the SUPERVISOR changes to allow PRINTS and USER objects in WHENs.

The USER attribute is now more efficiently implemented as an attribute function, and now returns "*MU" as the user of the MU model in the USERDATAFILE.

A CANDE or EDITOR compile of OPAL will no longer wait for MCPSYMBOLIC.

460.08 CORRECT RECORD FILE NUMBER EXPRESSION HANDLING
Date: Tue., August 22 2000

Changes applied to support the use of mnemonics in RECORD statements, provided by Dnote 450.12, had the effect of disabling expressions for the selected file number. For example:

  RECORD[GET("A")]
  RECORD[IF GET("A)=1 THEN 6 ELSE 8] 

These statements would fail with compile errors unless the expressions were parenthesised. This problem could also have caused the SYSTEM/OPAL compiler to fault with an internal error.

These problems are now fixed.

It should be noted that OPAL reserved words, such as GET, STORE, ACCUM etc., cannot be used as valid RECORDER mnemonics unless they are used as quoted strings. For example, if a mnemonic called ACCUM was set in the mappings then it can only be used in the following way:

  RECORD["ACCUM"] ("HI THERE") 

460.07 FIX USERCODE SYNONYM IN USER CONTEXT AND USERDATA *
Date: Tue., August 22 2000

The USERCODE synonym for the attribute USER in the new USER object was not being handled correctly and caused run-time OPAL failures. Also, passing the literal "*" to the USERDATA function also caused run-time failures in the OPAL machine.

Both these problems are now fixed.

460.06 SUPPORT USER OBJECT IN SUPERVISOR
Date: Fri., August 11 2000

The USER object is now available in Supervisor. This change adds the necessary OPAL Compiler support.

This patch also contains support for the RU locators in the USERDATA attribute. These locators return the list of remote addresses that can the usercode. These addresses could be via RU or KERBEROS records in the USERDATAFILE. To access RU specifications for invalid Usercodes, use the invalid usercode as the first parameter of the USERDATA attribute.

The locators are:
RU - a list of all remote addresses in the form <user>@<host>
RUHOST - the subset of RU where <host> is a defined HOSTNAME
RUDOMAIN - the subset of RU where <host> is a DOMAINNAME
RUIPADDRESS - the subset of RU where <host> is an IPADDRESS
RUUSERID - the subset of RU where <user> is a POSIX integer USERID
RUKERBEROS - the subset of RU which are from KERBEROS specifications
RUAUTOSTAXFER - the subset of RU where the SERVICE=AUTOSTAXFER
RUAUTOTELNET - the subset of RU where the SERVICE=AUTOTELNET

If the locators are used alone, e.g. UserData(RUHOST), a string containing a comma-delimited list is returned.

As with any list locator, a third parameter can be used to test for the presence of a list element, e.g.

    IF UserData(RUHost,"BRI@MV.UNISYS.COM") Then "OK" Else "NF" 

OPAL will now support a version 1 USERDATAFILE.
ARRAY nodes are now handled correctly.
LONGNAME nodes, introduced in 44.1, are now available in OPAL.
NAME and LONGNAME results which are not all ALPHA are now quoted.

460.05 CORRECT 'NESTED' CASE STATEMENTS
Date: Thu, August 3 2000

Previously, if a CASE statement appeared as part of a CASE clause i.e. it was nested then incorrect code would be generated. This has now been corrected.

460.04 SUPPORT FOR 'STEP_DIR' IN OPAL/BINDLIB
Date: Mon, June 26 2000

This is an internal Metalogic amendment - no functional changes.

460.03 TAPENAMESERIALS CYCLE/VERSION ENHANCEMENT
Date: Mon, June 12 2000

The OPAL system attribute TAPENAMESERIALS has been enhanced to permit a second optional parameter which allows the METATAPELIB tape library database to refine the search for tapes matching a particular cycle and version. For example:

  TAPENAMESERIALS("(META)METATAPELIB4","4:17)

would return all serials (in reel number order) which matched the tape name provided and had a CYCLE of 4 and VERSION of 17. Representing cycle and version as a string in this way facilitates its use in the Metalogic TPDB_SILOW Opals because cycle and version is easily extracted in this form from a waiting entry:

   NO FILE METATAPELIB4 (MT) #1 4:17 

The TPDB_SILOW Opal has been amended to use this enhancement.

460.02 SUPPORT FOR 5-DIGIT MIX NUMBERS
Date: Mon, June 12 2000

This patch to the Metalogic OPAL attribute generation mechanism supports the Unisys MORETASKS implementation allowing the provision of mixnumbers up to 65535. This is achieved by setting the system options MORETASKS (OP+MORETASKS), halt-loading and changing the MAX command.

Existing OPAL code maintained by SUPERVISOR will function correctly for Mix numbers up to 9999 BUT it is recommended that ALL Opals should be recompiled i.e. they should be re-entered as soon as the system has been Halt loaded after setting the MORETASKS option.

This can be achieved as follows

  1. Terminate any active WHENs (shown by a TT WHEN ? command).
  2. Enter "TT SAVE SCHEDULE AS (USER)DECOMPILED/SCHEDULE ON USERPACK"
    (where (USERS) and OURPACK are chosen by the site).
  3. Wait for the TT SAVE to complete.
  4. Enter "TT ENTER FROM (USER)DECOMPILED/SCHEDULE ON USERPACK"

Any WHENs that were previously terminated will be reinstated after the ENTER has completed.

460.01 SUPPORT FOR NAPLOG SUBCOMPONENT
Date: Thu, April 13 2000

A new NAPLOG attribute, SUBCOMPONENT, which provides information about the sub component text in the log entry, has been implemented.

450.24 USE MCP FOR GS SOFT ERRS
Date: Thu, February 24 2000

OPAL will now use the MCP message system for GETSTATUS soft error text.

450.23 SUPPORT 46.1 PRINTSUPPORT
Date: Tue., February 1 2000

The SUPERVISOR PRINTS context now supports MCP 46.1; previously, any PRINTS EVAL or DISPLAY would have failed with a library entrypoint error.

450.22 CLEARER DESCRIPTIONS OF FLEX DIRECTORY ATTS
Date: Fri., January 28 2000

Improvements have been made in the HELP ATT descriptions of FLEX DIRECTORY attributes.

450.21 ADD USETS FN LINK
Date: Mon, January 10 2000

The FN Link implementation of the USETS attribute.

450.20 IMPLEMENT SOFT HDR ATTRIBUTE LINKS
Date: Fri., December 31 1999

This change implements the new FN VALUE links detailed in GSTABLEGEN patch 460.07.

450.19 FIX SUPERVISOR GETSCRATCH DISPLAY LOOP
Date: Thu, December 2 1999

Previously, SUPERVISOR would enter a processor loop if the GETSCRATCH attribute was used in a stand-alone DISPLAY program. The same effect could occur if TAPENAMESERIALS, TAPENFAMILYNAME or TAPEFAMILYSERIALS attributes were used in a stand alone DISPLAY program on a TRIM slave system.

Both these problems are now fixed.

450.18 SUPPORT FOR GETSCRATCH SILO CHECKING
Date: Wed, November 10 1999

The GETSCRATCH attribute has been modified to allow provision of a third optional parameter, INSILO, which enforces SUPERVISOR to check that the tape serial returned is physically present in a Unisys Storagetek or DSI silo. The alternative mnemonic is DONTCARE which is the default if the parameter is absent.

Please see OPALTAPELIB Dnote 450.16 and SUPERVISOR Dnote 450.32 for more information.

450.17 FIX NAP MHS ATTRIBUTES
Date: Mon, November 8 1999

Within the subset of NAP attributes provided by NSL_REQUEST call type 12, identified by TT HELP ATTR MHS=, several of these attributes did not work correctly or would not compile, causing the OPAL compiler to fault. These attributes, such as MHSNODENAME and MHSNODEQUEUESIZE, will now compile properly and return correct values.

Please note this fix requires NAPINTERFACE library 460.01 to be installed.

450.16 EXTEND GETSTR TO READ BYTE STREAM FILE
Date: Wed, November 3 1999

The GetStr function will now accept a modifier of FILE.

GetStr("(BOB)""TEST.TXT"" ON WORK",FILE) will return the contents of byte stream file (BOB)"TEST.TXT" ON WORK as a string. Byte stream files use a carriage return followed by line feed character between each record. The line feed characters are stripped out of the returned string.

If the file is not available or is not a byte stream file the returned string will start with "Error:", followed by a description of the problem.

If the file contains more than 65535 characters then only the first 65535 will be returned.

The Split function has been extended to accept a / character as the second parameter. Using a slash is equivalent to using #(/) or #[CR].

Ex the following code would process each line of a file:

Store("FILE",GetStr("*SUPERVISOR/RECORD/TEST/""BOB.TXT"" ON DEV",File); While GetStr("FILE") Neq Empty Do Show(Split("FILE",/))

450.15 FILE/TASK ATT MNEMONIC COLLISIONS
Date: Tue., October 26 1999

OPAL will now correctly compile a mnemonic relation of a FILE or TASK attribute where the mnemonic is used a GSTABLEGEN mnemonic as well. After patch 450.14, MYUSE=IO would not compile.

This now compiles.


450.14 SUPPORT TIMEZONE MNEMONICS
Date: Fri., September 3 1999

OPAL has been enhanced to use the MCPSUPPORT function TIMEZONENAME. OPAL will now correctly find the value of a DEFAULT for an OPTIONAL mnemonic parameter. OPAL will now correctly return the information for an attribute with a parameterised 'x@#y[DIRECT CHARS]' link.

The internal compiler TREE has been re-formatted to allow 4 times larger trees. This effectively increases the maximum size of OPAL strings and expressions. Stand-alone attributes now optimise.

450.13 HELP ATTR TERM SUPPORT
Date: Tue., July 13 1999

Previously, a wild carded TT HELP ATTR response would not list all the matching attributes on a screen that was larger than 24 lines.

This problem is now fixed, up to 63 lines on a screen can now be handled.

450.12 FIX RECORDER MNEMONICS
Date: Fri., June 25 1999

Previously, the RECORD statement would not allow the use of OPAL reserved words for pre-defined mnemonics. For example, the statement:

     RECORD[TEST] ("Test message");

where TEST is a valid mnemonic in the REC_FILEMAP config, would have failed syntax.

This problem is now fixed.

450.11 IMPLEMENT LOGWORD AND LOGFIELD ATTRIBUTES
Date: Tue., June 15 1999

Two new attributes, LOGWORD and LOGFIELD, have been added to the OPAL LOG context. Normally, the generic LOG context has limited attributes with only the LOGTEXT attribute allowing retrieval of the analysed record. However, the LOGWORD attribute can be used to return specific words from the raw log entry and the LOGFIELD attribute can be used to return a specified bit field from any word in the same log record.

For example:

     LOGWORD(6)       returns word 6 of the raw log entry

These attributes should be used in conjunction with the Unisys System Log Programming Reference manual to allow information retrieval for Sumlog record types that are not currently supported by Supervisor.

450.10 CASE STATEMENT CORRECTION
Date: Tue., June 1 1999

An earlier fix to CASE Statement 450.08 introduced a fault where nested values were not actioned correctly. For example if 0:1:2:SHOW("A"); was coded in a Case statement the values 0 and 1 would not be actioned.

This fault has now been corrected.

450.09 SUPPORT FOR CONFIGSWITCHED ATT FUNCTION
Date: Wed, May 5 1999

A new SYSTEM attribute, CONFIGSWITCHED, returns TRUE if Supervisor is currently running after a successful configuration switch, effected by a TT USE FAMILY ... FOR CONFIG command. Once set, the attribute will remain TRUE whilst SUPERVISOR is active. If SUPERVISOR is restarted by a TT QUIT SUPERVISOR or halt-load the flag will always be FALSE.

The CONFIGSWITCHED variable should ideally be used in conjunction with an AF+RESTART assignment to provide additional checking after the switch.

450.08 FIX CASE STATEMENT ELSE CLAUSE
Date:

Previously, specifying an empty ELSE clause in a CASE Statement would result in incorrect code being generated and a run-time fault. Similarly, specifying ELSE: ; would result in an Opal Compiler fault.

Both these problems have now been corrected.

450.07 SUPPORT PDPPB, PDUDDFAS, PDSERVICELIST, TASKSTRING
Date: Fri., March 26 1999

OPAL now supports sub-masking for PD attributes. This will reduce the overheads of using many of these attributes, including the new PDPPB and PDSERVICELIST attributes.

450.06 USE TAPE ATTS FROM REMOTE
Date: Fri., March 26 1999

The system attributes TAPENAMESERIALS, TAPEFAMILYSERIALS and TAPEFAMILYNAME may now be used from OPAL programs running on TRIM slave systems. Previously, these attributes would have returned null values.

Also, TP commands that modify tape information were restricted from slave systems; this restriction has now been relaxed. Such commands will be permitted, subject to local TRIM security, and logged on both master and slave TAPELOGs.

450.05 USE ATTRIBINFORMER AND CLEANUP (-300)
Date: Tue., March 9 1999

ATTRIBINFORMER is now used instead of ATTRIBSEARCHER. C. 300 obsolete defines have been removed.

450.04 SUPPORT ORIGIN ATTRIBUTE
Date: Tue., February 23 1999

OPAL now supports the ORIGIN attribute function in the DIRECTORY class.

450.03 SUPPORT FOR GETSCRATCH ATTRIBUTE FUNCTION
Date: Fri., January 8 1999

This patch supports the OPAL attribute, GETSCRATCH, which allows the preassignment of scratch tapes to waiting entries particularly for the larger CTL libraries. The implementation is described in more detail in SUPERVISOR DNote 450.03 and TAPELIBUPDATER Dnote 440.05.