
      Functional changes for VMS.  2006-02-08 SMS.
      --------------------------------------------

------------------------------------------------------------------------

   New MMS/MMK product builders.  Objects, object libraries,
executables, and any other system-specific files should now be placed
into system-specific directories, such as [.ALPHA], [.IA64], or [.VAX]. 
If the large-file option is specifed (non-VAX), [.ALPHAL] or [.IA64L].
(See below for details.)

   Command-line case is preserved by all programs if SET PROCESS
/PARSE_STYLE = EXTENDED is in effect (non-VAX).  This obviates quoting
upper-case options.

   All programs now have an exit handler to restore process base
priority ("nice(0)").  CDDA2WAV and CDRECORD normally raise it (where
privileges allow), but did not previously restore it.  How much they
raise it is now set by the macro NICE_DECR (currently 8, had been 20) in
the VMS section of [.INCLUDE]XMCONFIG.H.

   CDDA2WAV, CDRECORD, MKISOFS, and READCD now use some VMS-specific
parameters on open operations for major files.  This typically enables
double buffers, read-ahead, write-behind, and larger extend quantities. 
Users who do not override the RMS defaults (SET RMS_DEFAULT) should see
significant I/O speed improvements.  Users may override the new default
parameters using SET RMS_DEFAULT explicitly to set different ones.

   MKISOFS changes:

   - New "-E" option to show ISO 9660 header (environment) information. 
This shows, for example, ".mkisofsrc" file data not explicitly specified
on the command line.  The "-v" option now also shows whether
".mkisofsrc" was used.
   - ODS5 extended file name support (not well tested).
   - Various bug fixes.  (See below for details.)

========================================================================

      Source changes for VMS.  2006-02-08 SMS.
      ----------------------------------------

------------------------------------------------------------------------

      [.vms]append_version.com
      [.vms]collect_deps.com
      [.vms]vax_old.opt
      [...]descrip*.mms

   New MMS/MMK product builders.  Build the products so:

      SET DEFAULT [.VMS]
      MMS

   MMK or old versions of MMS may need to have additional macros defined
on the command line, but helpful messages should explain what to do
when.  (Old MMS versions on VAX may need MMS$ARCH_NAME.  MMK will
probably need MMSDESCRIPTION_FILE.)

   Popular targets and options (which should be explained in
[.VMS]DESCRIP.MMS) include:

      MMS CLEAN
      MMS CLEAN_ALL
      MMS CLEAN_EXE
      MMS CLEAN_OLB

      MMS /MACRO = (LIST=1)
      MMS /MACRO = (LARGE=1)

   Inside the major subdirectories, "MMS /DESCRIP = [-.VMS] [...]"
should work.

   To generate the source dependency ("[...]DESCRIP_DEPS.MMS") files,
MMS (V3.5 or newer?) is needed:

      MMS /EXTENDED /DESCRIPTION = descrip_mkdeps.mms /SKIP

To save time during development when these are changing often, it helps
to save the intermediate .MMSD files (output from CC /MMS_DEPENDENCIES),
so:

      MMS /EXTENDED /DESCRIPTION = descrip_mkdeps.mms /MACRO = NOSKIP=1

   For details, see the comments in [.VMS]DESCRIP_MKDEPS.MMS.

   Linking on old VMS VAX versions may generate warnings:

      %LINK-W-MULPSC, conflicting attributes for psect LIB$INITIALIZE
           in module LIB$INITIALIZE file SYS$COMMON:[SYSLIB]STARLET.OLB;

A LINK options file ([.VMS]VAX_OLD.OPT) is supplied which should help. 
Try adding '/MACRO = ("LINKOPTS=[-.VMS]VAX_OLD.OPT/OPTIONS")' to the
MMS/MMK command.

   The cdrtools programs use C run-time library features which were not
available before VMS V7.0.  Building on VMS versions earlier than V7.0
is possible using the "backport library" features provided by DEC C V5.6
and later compilers.  The details are described in the file
SYS$LIBRARY:DECC$CRTL.README, which is supplied with these compilers. 
This file also describes the options available to deal with time zones
and the newer UTC-based time functions.

   The builders (specifically, the .FIRST actions in
[.VMS]DESCRIP_SRC_CMN.MMS) check the VMS version, and, if it is pre-V7,
define the logical names DECC$CRTLMAP (as SYS$LIBRARY:DECC$CRTL.EXE) and
LNK$LIBRARY (as SYS$LIBRARY:DECC$CRTL.OLB), unless the user has already
defined them.  This should persuade the compiler to use a suitably high
value for __CRTL_VER when compiling, and a suitably complete C RTL when
linking.  Environments with non-default configurations may require
changes from the code supplied, but it should be possible to confine any
needed changes to this one region.

------------------------------------------------------------------------

      [.cdda2wav]cdda2wav.c

   Changed to use NICE_DECR in nice().

      [.cdda2wav]interface.c

   Changed Inquiry() to ScsiInquiry() to avoid name collision with
inquiry() (in scsi_cdr.c).

      [.cdda2wav]mytype.h

   Reverted to original (before EHH changes).

      [.cdda2wav]resample.c

   Changed "(outlen <= 0)" test to "(outlen == 0)" to stop the
%CC-I-QUESTCOMPARE complaint.  (Unsigned outlen is seldom negative.)

      [.cdda2wav]scsi_cmds.c

   Fixed an fprintf() format problem ("%hd" for int expression).
   Changed Inquiry() to ScsiInquiry() to avoid name collision with
inquiry() (in scsi_cdr.c).

      [.cdda2wav]scsi_cmds.h

   Changed Inquiry() to ScsiInquiry() to avoid name collision with
inquiry() (in scsi_cdr.c).

      [.cdda2wav]vms.c

   Set up initialization (non-VAX) to set DECC$* variables.

------------------------------------------------------------------------

      [.cdrecord]cdrecord.c

   INSERT_YOUR_EMAIL_ADDRESS_HERE
   Changed to use NICE_DECR in nice().
   Minor spelling corrections.

      [.cdrecord]scsi_cdr.c

   Minor spelling corrections.

      [.cdrecord]vms.c (NEW)

   Set up exit handler to restore base process priority.
   Set up initialization (non-VAX) to set DECC$* variables.

      [.cdrecord]xio.c

   Added VMS-specific open() parameters for access callback function.
   Added "#include <libport.h>".

------------------------------------------------------------------------

      [.include]btorder.h

   Added "vax" near "alpha".  With the changes to [.include]xmconfig.h,
this shouldn't actually matter, but it's tidier.

      [.include]schily.h

   Added "#ifndef _OPENFD_SRC" conditionality around "#define _openfd
_openfd64" in the "#if defined(HAVE_LARGEFILES)" section.

      [.include]ttydefs.h

   Fixed typos: "_INCL_SYS_IOCTl_H" -> "_INCL_SYS_IOCTL_H".

      [.include]xmconfig.h

   Restored many "HAVE_xxxx" definitions for newer VMS C RTL.  Added
some more.  Added NICE_DECR to provide an OS-specific nice() value.
   Updated HOST_CPU, HOST_OS, and HOST_VENDOR for VMS.
   Added byte- and bit-order macros for VMS.
   Defined macros _OPENFD_SRC and _openfd to switch to a VMS-specific
replacement for _openfd().  Defined a VMS-specific O_BINARY flag value
for internal use.

------------------------------------------------------------------------

      [.libschily]gethostid.c

   Added "#include <schily.h>" to get prototype of seterrno().

      [.libschily]saveargs.c

   Changed to simplify the full VMS path for argv[ 0] to just the
program name.

      [.libschily]snprintf.c

   Added "#ifndef HAVE_SNPRINTF" to allow conditionality for VMS.

------------------------------------------------------------------------

      [.libvms] (NEW)

      [.libvms]vms_init.c

   Exit handler.
   DECC$* initialization.
   RMS default parameter sensing.
   Access callback function.

      [.libvms]vms_init.h

   Header file for vms_init.c.

      [.libvms]vms_misc.c

   VMS-specific _openfd() replacement function, openfd_vms().
   Conditional str[n]casecmp() function.
   ODS5 extended file name infrastructure.

      [.libvms]vms_misc.h

   Header file for vms_misc.c.

------------------------------------------------------------------------

      [.mkisofs]mkisofs.c

   Added "-E" option for ISO 9660 header (environment) display.
("#ifdef SMS".)
   Changed to notify user of use or non-use of init file with "-E" or
"-v".  ("#ifdef SMS".)
   Changed to use new IPATH_SEPARATOR macro ('/') for CD paths instead
of PATH_SEPARATOR, which is different (']') for VMS.
   Changed not to use "/" as a separator when forming the ".mkisofsrc"
init file path in VMS.  (Should be PATH_SEPARATOR when used?)
   Changed to tolerate blank lines in the init file.
   Changed to use "NLA0" instead of "/dev/null" on VMS.
   Added VMS-specific fopen() parameters for access callback function.

      [.mkisofs]mkisofs.h

   Added prototype for new function, write_one_file_progress().
   Removed some VMS-specific "dirent" code, added a bit.
   Added "#define IPATH_SEPARATOR '/'".

      [.mkisofs]name.c

   Changed to use a header file definition of the ".DIR;1" string, and
to make a case-insensitive comparison with it to accomodate ODS5
extended file names.

      [.mkisofs]rock.c

   Added '#include "vms.h"' (before "device.h") to get different major()
and minor() macros.

      [.mkisofs]tree.c

   Added '#include "vms.h"' (before "device.h") to get different major()
and minor() macros.
   Added one more use of "vms_path_fixup()", needed with new C RTL.
   Added some code to remove caret escape characters from ODS5 extended
file names.  (Not well tested.)

      [.mkisofs]vms.c

   Removed code for functions now in the C RTL: closedir. getopt,
opendir, readdir, [VMS_]stat, strdup.
   Set up initialization (non-VAX) to set DECC$* variables.
   Changed vms_path_fixup() and RMS I/O functions to cope with ODS5
extended file names.
   Changed vms_write_one_file() to use the same progress messages as
write_one_file(). 

      [.mkisofs]vms.h

   Removed code for functions now in the C RTL.
   Added macro kit for NAML structure for ODS5 extended file names.
   Added function prototypes for vms_path_fixup() and
vms_write_one_file().

      [.mkisofs]write.c

   Separated progress message code into a new function,
write_one_file_progress(), now used by both vms_write_one_file() and
write_one_file().
   Changed "Padbock" to "Padblock" in a progress message.

------------------------------------------------------------------------

      [.readcd]io.c

   Removed mysterious "%r" format specifier from yes().

      [.readcd]vms.c

   Set up initialization (non-VAX) to set DECC$* variables.

------------------------------------------------------------------------

      [.scgcheck]scgcheck.c

   Minor spelling corrections.

------------------------------------------------------------------------

