Customer Software Release Notice for VSSUBS Version 1.00.19 Date Submitted: June 1999 1.0 Release Abstract VS User Subroutines (VSSUBS) are a collection of subroutines that provide programmers with system functions that are helpful in the development of application program. All VS User Subroutines (VSSUBS) have been revised to insure Year 2000 support on Operating Systems 7.53.00 and greater as well as remain compatable with Operating System baselines currently supported released prior to 7.53.00. 2.0 Pre-Requisites and Dependencies 2.1 Hardware Pre-Requisites Any Wang VS system. 2.2 Software Pre-Requisites The User Subroutines in this release of the VSSUBS have been revised to Insure Year 2000 support on Operating Systems 7.53.00 and greater as well as remain compatable with Operating System baselines currently supported released prior to 7.53.00. 3.0 Special Considerations 3.1 OS releases 7.50 and above include several enhancements to the SVC's which have been incorporated into the SVC subroutines. Users should take care to insure the function being used is supported by the OS being used - otherwise unexpected results may be returned. Enhancements have been added so that the subroutines will be compatible with older calls. Because many new optional parameters have been added, users should insure that when integer variables are passed, that they really are integer variables (i.e., they should be initialized to some non-negative integer value, not just defined as such). 4.0 Enhancements Since Release 1.00.16 CEXIT An internal change has been made to take advantage of a new SETMULTI feature in the CEXIT macro. This change requires no code changes. To determine if relinkage to this new version would be advantageous please review the CSRN provided with this operating system for details of the new CEXIT feature. DAY The DAY VSSUB has been modified to return the correct day of the week for the year 2000. DATE The DATE VSSUB has been updated from the DATE6 VSSUB to allow customers to recompile and relink current applications without having to modify the call statements. For applications where no source code is available but the object contains linkage data the object code can be relinked with the new DATE VSSUB. Please review 'Resolving Duplicate Section Names' of the LINKER manual to determine how to perform this task. NOTE: It is recommended that the new VSSUBS be used when creating new code. This will eliminate confusion as to which version of the VSSUB has been used in the linkage of the object because of the naming differences. However, if it is desired to leave the naming conventions the same, it can be determined which version was linked into the output object. To do this linkage data must have been retained when the object original linkage was performed. Run LINKER against the object in question requesting linked code sections. Display the link map. The TRANSLATOR, VERSION, and DATE columns will provide the necessary information as follows: VSSUB TRANSLATOR VERSION DATE DAY old AS 1.10.00 or earlier before 09/98 DAY new CB 7.52.03 or later 09/98 or later includes call to DATE6 DATE old AS 1.10.00 or earlier before 09/98 DATE new AS 1.10.00 or later 09/98 or later 4.1 Enhancements Since Release 1.00.15 DATE6 A new VSSUB which is identical to DATE4 with the exception that only a two-digit year format is used. Julian dates will be in YYDDD format. Gregorian dates will be in the following format - American MMDDYY, European DDMMYY and System YYMMDD. Depending upon the function requested these formats will be used for the input as well as the output. 4.2 Enhancements Since Release 1.00.14 None. 4.3 Enhancements Since Release 1.00.13 READFDR4 A new VSSUB which is identical to READFDR with the exception that when using the Field Request Mode, the Creation Date, Modification Date, and Expiration Date fields are 8 characters in length and are requested and returned in YYYYMMDD format versus YYMMDD format as in READFDR. See section 9 for specifics. UPDTFDR4 A new VSSUB which is identical to UPDATFDR with the exception that the Creation Date, Modification Date, and Expiration Date fields are 8 characters in length and are required in YYYYMMDD format versus YYMMDD format as in UPDATFDR. See section 9 for specifics. 4.4 Enhancements Since Release 1.00.12 SUBMIT The SUBMIT VSSUB now allows for PRIORITY of background tasks to be set when being run on Operating systems supporting this feature. (Please check the CSRN relating to your current operating system to inquire on this features availability.) Valid integer values are 1 being the highest priority to 9 being the lowest priority. PRIORITY is the 11th argument in the SUBMIT argument list. If included on an Operating System not supporting the PRIORITY feature the item is ignored. If not included on a supporting Operating System a default priority of of 7 is set by the Operating System. A return code of 906 indicates that an invalid value was supplied for the PRIORITY. Again the valid integer values are 1 through 9. 4.5 Enhancements Since Release 1.00.11 PRINT The PRINT VSSUB now allows for valid PRTCLASS characters to be blank, A - Z, or a - z. The addition of the lower case letters is valid for use on operating systems 7.52 or greater. The attempt to do so on earlier operating systems will cause undeterminable results most likely causing program cancellation. 4.6 Enhancements Since Release 1.00.10 DATE4 DATE4 provides the same functions as DATE2 using a four digit year in the Gregorian and Julian date strings. Thus, the use of DATE4 is not restricted to the 20th century. In addition, DATE4 permits retrieval of the the system date and time. The date can be retrieved in the following Gregorian formats: System (YYYYMMDD), American (MMDDYYYY), and European (DDMMYYYY). The time is retrieved in HHMMSSHH format. See section 9 for specifics. 5.0 Problems Reported Since Release 1.00.18 DATE The HD and HL functions were not working correctly on OS versions prior to 7.42.00. This has been corrected. DATE4 The HD and HL functions were not working correctly on OS versions prior to 7.42.00. This has been corrected. DATE6 The HD and HL functions were not working correctly on OS versions prior to 7.42.00. This has been corrected. 5.1 Problems Reported Since Release 1.00.17 DAY An oversite was made in not relinking DAY to the corrected DATE6 in the previous release. This has been corrected. 5.2 Problems Reported Since Release 1.00.16 DATE6 The G+ function was not working correctly when used more than once. This function now returns correct results when used multiple times. 5.3 Problems Reported Since Release 1.00.15 None. 5.4 Problems Reported Since Release 1.00.14 Several VSSUB and FMU products have been enhanced to provide 4 digit year on screen display, in output listing, and in internal code use. When some of these products were run on an operating system prior to 7.42.00 various problems were occuring with these dates. The problems found have been corrected and the products tested on a 7.21.09 Operating System to insure downward compatibility. Be aware however of the restrictions stated throughout this CSRN concerning the use of products specifically designed for Year 2000 compliance (such as DATE4). These products should only be used when the intent is to run this application on a Year 2000 compliant operating system. 5.5 Problems Reported Since Release 1.00.12 READFDR Internal testing has determined that when running 7.53.00 of the Operating System remote volume set information was not being properly returned in MANAGER which utilizes this VSSUB. A modification was made to properly return task and extent information for remote volume sets. 5.6 Problems Reported Since Release 1.00.11 DATE2 Internal testing has determined that the HD header function works incorrectly when the system date is past the year 1999 and it is a leap year. This will not be fixed in DATE2 but has been corrected in the DATE4 VSSUB. The DATE2 VSSUB will remain in the VSSUBS package to support customers currently using it. Any problems reported against the DATE2 VSSUB will be corrected in the DATE4 VSSUB and the customer reporting said problem will be required to change to DATE4 in order to receive the correction. It is also recommended that customers who are currently using DATE2 convert to DATE4 at their earliest convenience. The conversion will only require changing the name of the VSSUB from DATE2 to DATE4 and relinkage if a static linkage is being used. If the HD function is not being utilized and there are no other problems the customer may, at his or her option, remain with DATE2 if conversion to the DATE4 version is an inconvenience at this time. Be aware that no enhancements or corrects will be done to the DATE2 VSSUB however as it will remain in its current state. 5.7 Problems Reported Since Release 1.00.10 PTRs Corrected M410011457 SORTLINK was passing invalid values to SELECT getparm of SORT utility when the field type was packed. This problem has been corrected. 6.0 Known Anomalies EXTRACT The 'C#' extract only returns the CPU ID number and NOT THE MICROCODE VERSION as documented in the VSSUBS reference (use only the first two bytes of the receiver). The EXTRACT SVC documentation states that up to two bytes would be returned for EXTRDIDCPU. However, only one byte was actually returned. This problem has been corrected by removing the EXTRDIDCPU variable and replacing it with the new EXTRDCPU which will return one byte. READVTOC The READVTOC SVC option 5 call introduced in operating system release 7.21.08, 7.32.02 and 7.40.00 and automatically used by the READVTOC VSSUB (version 7.40.22) function 'G', '+V', '+N' and '+R' calls does not return the correct values for the file and library counts when used for remote volumes on systems using the resource sharing facility. Users on these systems should either use a version of the READVTOC VSSUB prior to 7.40.22 or upgrade to an operating system that corrects this problem. TRANSFER A return code of 40 from SUBMIT will result when attempting to retrieve an OIS file (source file type 'D'). TRANSFER The processing flag to run a procedure at the destination site does not function. The run procedure function was only partially implemented by the VS operating system. When you attempt to run a procedure on a remote system, the TRANSFER SVC will place the procedure into the remote site's procedure queue but it does not contain any user initials and will be rejected by the operating system when it is released. Please note that a fix for this situation is planned. 7.0 Media Contents Library = VSSUBS Module Version Description BELL 7.52.02 Sounds the WS alarm BITPACK 7.52.02 Packs a string of binary digits into an ASCII field BITUNPK 7.52.02 Unpacks a ASCII character string into a string of binary digits CANCEL 7.52.02 Interface to CANCEL SVC CEXIT 7.54.01 Interface to CEXIT SVC CHKPARM 7.52.02 Does table checking for GETPARM keyword fields COMPRESS 7.52.02 Compresses a data string DATE 7.53.03 Provides various date manipulation features DATE2 7.52.01 Provides various date manipulation features using four digit year. DATE4 7.52.03 Provides various date manipulation features using four digit year as well as providing access to the system date in gregorian format and system time. DATE6 7.53.03 Provides various date manipulation features using two digit year as well as providing access to the system date in gregorian format and system time. DAY 7.53.02 Computes the day corresponding to a date DISMOUNT 7.52.02 Interface to DISMOUNT SVC EXPAND 7.52.02 Restores a compressed string to external form EXTRACT 7.52.02 Interface to EXTRACT SVC FIND 7.52.02 Finds file, library or volume names based on partial information FLOPIO 7.52.02 Performs I/O operations on a novtoc diskette GETPARM 7.52.02 Interface to GETPARM SVC HEAPCNTL 7.52.02 Interface to HEAPCNTL SVC HEXPACK 7.52.02 Packs a string of hex digits into an ASCII receiver HEXUNPK 7.52.02 Unpacks a string of ASCII characters into a hexdigit receiver LINK 7.52.02 Interface to LINK SVC LOADCODE 7.52.02 Interface to LOADCODE SVC LOGOFF 7.52.02 Interface to LOGOFF SVC MESSAGE 7.52.02 Interface to the system's inter-task message capabilities MOUNT 7.52.02 Interface to MOUNT SVC PAUSE 7.52.02 Interface to the SETIME and CHECK INTERVAL SVCs PRINT 7.52.02 Interface to print functions of SUBMIT SVC PROTECT 7.52.02 Interface to PROTECT SVC PUTPARM 7.52.02 Interface to PUTPARM SVC READFDR 7.52.05 Interface to READFDR SVC READFDR4 7.53.01 Interface to READFDR SVC utilizing YYYYMMDD date formats 8.0 Media Contents (continued) Module Version Description READVTOC 7.52.02 Interface to READVTOC SVC RENAME 7.52.02 Interface to RENAME SVC RETURN 7.52.02 Interface to RETURN SVC SCRATCH 7.52.02 Interface to SCRATCH SVC SCREEN 7.52.02 Returns a screen image of the workstation screen SEARCH 7.52.02 Performs a binary search SET 7.52.02 Interface to SET SVC SORT 7.52.02 Sorts a character string SORTCALL 7.52.02 Interface to SORT utility SORTLINK 7.52.02 Interface to SORT utility STRING 7.52.02 Performs various types of string manipulation SUBMIT 7.52.02 Interface to SUBMIT SVC TRANSFER 7.52.02 Interface to transfer functions of SUBMIT SVC UNITRES 7.52.02 Interface to UNITRES SVC UPDATFDR 7.52.02 Interface to UPDATFDR SVC UPDTFDR4 7.53.01 Interface to UPDATFDR SVC utilizing YYYYMMDD date formats WSXIO 7.52.02 Performs I/O operations at the WS using the OPEN, CLOSE, XIO, and CHECK SVCs 7.1 Customer Software Release Notice The following is a copy of this document (print file format). Library = CSRNLIB Module Version Description VSS10019 1.00.19 CSRN print file 8.0 Installation Instructions Use the BACKUP utility to restore the entire VSSUBS library listed above from the given media to a library on an appropriate disk volume (You must be logged on as a system administrator). 9.0 Documentation Changes 9.1 DATE2, DATE4 AND DATE6 VSSUBS The documentation changes below are for DATE4 and DATE6. DATE2 has been available since release 1.01.08 of the VSSUBS and is the cornerstone for DATE4. However, it has come to our attention that few customers are aware of the DATE2 feature. Therefore this document contains all information pertaining to the original DATE2 VSSUB as well as the enhancements in DATE4 and DATE6. Those features specific to both DATE2, DATE4 and DATE6 will be described first. Those features specific to DATE4 and DATE6 will be described second. DATE2, DATE4 and DATE6 VSSUBS: These VSSUBS offer the same functions as the DATE VSSUB. The exception is that DATE2 and DATE4 use a four digit year in place of a two digit year. DATE6 still uses the old two digit year standard. The four digit year allows the restrictions that confined the use of DATE to January 1, 1900 to December 31, 1999 to be removed. DATE2 DATE4 and DATE6 can: . Convert current system date and time to a formatted string, suitable for report headings, in uppercase or uppercase and lowercase. . Convert from one style Gregorian date to another. The three styles of Gregorian dates are as follows (where YYYY = Year (YY for DATE6), MM = Month and DD = Day): System = YYYYMMDD or YYMMDD in DATE6 American = MMDDYYYY or MMDDYY in DATE6 European = DDMMYYYY or DDMMYY in DATE6 . Convert dates between Gregorian (three styles) and Julian formats (see the definitions above). The remaining functions are available for all four formats. . Find the difference between two dates. . Obtain a new date by adding a specified number of days to a specified date. . Determine the day of the week corresponding to a given date and return its value either as an eleven character string or an integer (DAY VSSUB replacement). 9.0 Documentation Changes (continued) 9.1 DATE2, DATE4 AND DATE6 VSSUBS (continued) DATE2, DATE4 AND DATE6 VSSUBS Arg1 defines the function and determines the number and nature of the additional arguments. To put it another way, each function has its own argument list which begins with an argument specifying the function. The following sections describe these argument lists separately. Where size is defined the first size relates to DATE2 and DATE4 which deal with 4 digit years. The second size relates to DATE6 which deals with a 2 digit year. For example 8/6 would indicate that DATE2 and DATE4 require an 8 digit date and DATE6 would require a 6 digit date as input or output. Several of this subroutine's functions use modified Gregorian and Julian formats. For the calendar day December 30, 1987, the modified System Gregorian equivalent (in YYYYMMDD or YYMMDD format) is 19871230 or 871230; the modified American Gregorian equivalent (in MMDDYYYY or MMDDYY format) is 12301987 or 123087; the modified European Gregorian equivalent (in DDMMYYYY or DDMMYY format) is 30121987 or 201287; the modified Julian equivalent (in YYYYDDD or YYDDD format, where DDD is the number of days from January 1) is 1987364 or 87364. The function code (argument 1) is used to determine the type of Gregorian date format to expect: Functions GJ, JG, G-, G+, GD and G# expect System style Gregorian dates (YYYYMMDD or YYMMDD). Functions AJ, JA, A-, A+, AD and A# expect American style Gregorian dates (MMDDYYYY or MMDDYY). Functions EJ, JE, E-, E+, ED and E# expect European style Gregorian dates (DDMMYYYY or DDMMYY). Getting the Current Date and Time (Uppercase) Pos Arg Type Size Comments arg1 Function Alpha 2 Value is HD. arg2 Date/Time Alpha 45 The current date andtime, returned by the subroutine, in the following format: AAAAAAAAAAA BBBBBBBBBBBBBBBBBBBBB CCCCCCCC WEDNESDAY DECEMBER 30, 1987 2:30 PM Getting the Current Date and Time (Upper- and Lowercase) Pos Arg Type Size Comments arg1 Function Alpha 2 Value is HL. arg2 Date/Time Alpha 45 The current date and time, returned by the subroutine, in the following format: AAAAAAAAAAA BBBBBBBBBBBBBBBBBBBBB CCCCCCCC Wednesday December 30, 1987 2:30 PM 9.0 Documentation Changes (continued) 9.1 DATE2, DATE4 AND DATE6 VSSUBS (continued) DATE2, DATE4 AND DATE6 VSSUBS Converting A Date in Modified Gregorian Format to Modified Julian Format Pos Arg Type Size Comments arg1 Function Alpha 2 Value is GJ, AJ or EJ. arg2 Gregorian Alpha 8/6 Modified gregorian Date to be converted, supplied by the calling program. arg3 Julian Alpha 7/5 Equivalent modified Date Julian date, returned by the subroutine. arg4 Return Integer 4 See Table. Code Converting a Date in Modified Julian Format to Modified Gregorian Format Pos Arg Type Size Comments arg1 Function Alpha 2 Value is JG, JA or JE. arg2 Julian Alpha 7/5 Modified Julian date Date to be converted, supplied by the calling program. arg3 Gregorian Alpha 8/6 Equivalent modified Date Gregorian date, returned by the subroutine. arg4 Return Integer 4 See Table Code Computing the Difference Between Two Dates in Modified Gregorian Format Pos Arg Type Size Comments arg1 Function Alpha 2 Value is G-, A- or E-. arg2 Start Alpha 8/6 Starting date; supplied Date by the calling program. arg3 End Date Alpha 8/6 Ending date; supplied by the calling program. arg4 Differnce Integer 4 Number of days between in Days the two dates; returned by the subroutine. This value can be positive or negative (the latter if the "ending date" supplied is earlier than the starting date). Arg5 Return Integer 4 See Table. Code 9.0 Documentation Changes (continued) 9.1 DATE2, DATE4 AND DATE6 VSSUBS (continued) DATE2, DATE4 AND DATE6 VSSUBS Computing the Difference Between Two Dates in Modified Julian Format Pos Arg Type Size Comments arg1 Function Alpha 2 Value is J-. arg2 Start Alpha 7/5 Starting date; supplied Date by the calling program. arg3 End Date Alpha 7/5 Ending date; supplied by the calling program. arg4 Differnce Integer 4 Number of days between in Days the two dates; returned by the subroutine. This value can be positive or negative (see G-, arg 4). arg5 Return Integer 4 See Table. Code Adding a Specified Number of Days to a Modified Gregorian Date Pos Arg Type Size Comments arg1 Function Alpha 2 Value is G+, A+ or E+. arg2 Start Alpha 8/6 Starting date; supplied Date by the calling program. arg3 Days to Integer 4 Number of days to add; add supplied by the calling program. It must not cause the new date to be less than 0000/1/1 or itself be greater than 3,625,423; otherwise, error code 8 results. arg4 New Date Alpha 8/6 New date; returned by the subroutine. arg5 Return Integer 4 See Table. Code Adding a Specified Number of Days to a Modified Julian Date Pos Arg Type Size Comments arg1 Function Alpha 2 Value is J+. arg2 Start Alpha 7/5 Starting date; supplied Date by the calling program. arg3 Days to Integer 4 Number of days to add; add supplied by the calling program. It must not cause the new date to be less than 0000/1/1 or itself be greater than 3,625,423; otherwise, error code 8 results. arg4 New Date Alpha 7/5 New date; returned by the subroutine. arg5 Return Integer 4 See Table. Code 9.0 Documentation Changes (continued) 9.1 DATE2, DATE4 AND DATE6 VSSUBS (continued) DATE2, DATE4 AND DATE6 VSSUBS Determining the Day of the Week From a Date in Modified Gregorian Format Pos Arg Type Size Comments arg1 Function Alpha 2 Value is GD, AD or ED. arg2 Date Alpha 8/6 Date for which the day of week is to be determined; supplied by the calling program. arg3 Days of Alpha 11 Day of the week for that week date; returned by the subroutine, uppercase and left-justified. arg4 Return Integer 4 See Table. Code Determining the Day of the Week From a Date in Modified Julian Format Pos Arg Type Size Comments arg1 Function Alpha 2 Value is JD. arg2 Date Alpha 7/5 Date for which the day of week is to be determined; supplied by the calling program. arg3 Days of Alpha 11 Day of the week for that week date; returned by the subroutine, uppercase and left-justified. arg4 Return Integer 4 See Table. Code Determining the Day of the Week Number From a Modified Gregorian Date Pos Arg Type Size Comments arg1 Function Alpha 2 Value is G#, A# or E#. arg2 Date Alpha 8/6 Date for which the day of week is to be determined; supplied by the calling program. arg3 Day of Integer 4 Day of the week for that week date, returned by the subroutine. The value returned is in the range from 1 (Sunday) to 7 (Saturday). arg4 Return Integer 4 See Table. Code 9.0 Documentation Changes (continued) 9.1 DATE2, DATE4 AND DATE6 VSSUBS (continued) DATE2, DATE4 AND DATE6 VSSUBS Determining the Day of the Week Number From a Modified Julian Date Pos Arg Type Size Comments arg1 Function Alpha 2 Value is J#. arg2 Date Alpha 7/5 Date for which the day of week is to be determined; supplied by the calling program. arg3 Day of Integer 4 Day of the week for that week date, returned by the subroutine. The value returned is in the range from 1 (Sunday) to 7 (Saturday). arg4 Return Integer 4 See Table. Code Converting a Modified Gregorian date from one Format to Another Note that no validation will be performed on the dates passed to these conversion routines. The input values will be simply moved to the appropriate position in the output date based on the function code. You may convert a date "in-place" by using the input date for both the input (arg 2) and output (arg 3). Pos Arg Type Size Comments arg1 Function Alpha 2 Values are: AE: Convert American format to European. AS: Convert American format to System. EA: Convert European format to American. ES: Convert European format to System. SA: Convert System format to American. SE: Convert System format to European. arg2 Input Alpha 8/6 Gregorian date to be Date converted. See the function code for the format. arg3 Output Alpha 8/6 Converted Gregorian Date date. See the function code for the format. 9.0 Documentation Changes (continued) 9.1 DATE2, DATE4 AND DATE6 VSSUBS (continued) DATE4 AND DATE6 VSSUBS: Getting the System Date and Time Pos Arg Type Size Comments arg1 Function Alpha 2 Value determines date format: GG: Gregorian date System format (YYYYMMDD) DATE4 (YYMMDD) DATE6 AG: Gregorian date American format (MMDDYYYY) DATE4 (MMDDYY) DATE6 EG: Gregorian date European format (DDMMYYYY) DATE4 (DDMMYY) DATE6 arg2 System Alpha 8/6 Gregorian date retrieved from the Date system. arg3 System Alpha 8 Time Retrieved from the system in Time HHMMSSHH format. Return codes and their meanings for the DATE2, DATE4 and DATE6 VSSUBS. Return Code Meaning 0 Successful operation. 8 Invalid input value or format. 9.2 The SUBMIT VSSUB: Table 2-127 SUBMIT Argument List Pos Arg Type Size Comments arg11 Priority Integer 4 Priority to be assigned to a background task: 1 = Highest priority to 9 = Lowest priority Values 1 to 9 inclusive are legal values. The system default is 7. arg12 Return Code Table 2-128 SUBMIT Return Codes 906 Invalid Priority (Arg 11 must be an integer 1 through 9) 9.3 The READFDR4 VSSUB: The new READFDR4 VSSUB is identical to the READFDR VSSUB with the exception when using the Field Request Mode,of the Creation Date, Modification Date, and Expiration Date receiver fields are 8 characters in size versus six. The following table shows the difference in documentation from this VSSUBs parameter list and that of READFDRs parameter list. Table 2-83 READFDR Keyword List for Field Request Mode Receiver Keyword Type Length Information Specified and Returned CD Alpha 8 Creation date of the file, in YYYYMMDD format ED Alpha 8 Expiration date of the file, in YYYYMMDD format MD Alpha 8 Modificationdate of the file, in YYYYMMDD format 9.4 The UPDTFDR4 VSSUB: The new UPDTFDR4 VSSUB is identical to UPDATFDR with the exception that the Creation Date, Modification Date, and Expiration Date fields are 8 characters in size versus six. The following table shows the difference in documentation from this VSSUBs parameter list and that of UPDATFDRs parameter list. Table 2-138 UPDTFDR4 Keyword List Value Value Keyword Type Size Attribute CD Alpha 8 Creation date of the file, in YYYYMMDD format ED Alpha 8 Expiration date of the file, in YYYYMMDD format MD Alpha 8 Modificationdate of the file, in YYYYMMDD format 9.5 The READVTOC VSSUB: In Remarks 3 for READVTOC G argument it states as follows: With options X, G, #, and D the operating system treats a value of 0 for arg3 (volume set id) as 1 if the volume named in arg2 is part of a set. It treats a value of 1 as 0 if arg2 names a regular (i.e. non-set) volume. It should read.. It treats any value as 0 if arg2 names a regular (i.e. non-set) volume.