
Here's a complete list of all the changes made to the Workbench disk set from
2.1 to 3.0.

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

C/AddDataTypes

New program used to add DEVS:DataTypes descriptors to the DataTypes descriptor
list. The REFRESH option is used to scan the DEVS:DataTypes directory for
changed DataType descriptors and reload them.

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

C/IPrefs

  - Requires Kickstart V39

  - Handles the new palette, pointer, and wbpattern preferences

  - Is smarter about when it needs to reset the WB screen

  - Now uses utility.library 32-bit math routines

  - Causes much less screen flashing when changing fonts.

  - No longer has the QUIT/S command-line option. Removing this option
    allows a few K of RAM to be saved in every machine, and made the pattern
    code actually doable.

  - Gives better error messages when it can't find a font or a picture

  - Now sends an initial IP_SCREENMODE message to Intuition to force the
    initial WB screen to be interleaved even if there is no screenmode.prefs
    file

  - Now uses datatypes.library to load sound samples instead of custom 8SVX
    code

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

C/RequestChoice 39.1

This is a new C: program that lets AmigaDOS and ARexx scripts use the
Intuition EasyRequest() feature. The template is:

    TITLE/A,BODY/A,GADGETS/A,PUBSCREEN/K:

    TITLE
    Specifies the title of the requester

    BODY
    Specifies the text of the requester. Linefeeds can be embeeded using *n.

    GADGETS
    Specifies the text for the different gadgets. The gadgets label are
    separated with |

    PUBSCREEN
    Lets you specify the name of a public screen to open the requester on

The number of the selected gadget is returned to standard output.

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

C/RequestFile 39.1

This is a new C: program that lets AmigaDOS and ARexx scripts use the ASL file
requester. The template is:

    DRAWER,FILE/K,PATTERN/K,TITLE/K,POSITIVE/K,NEGATIVE/K,ACCEPTPATTERN/K,
    REJECTPATTERN/K,SAVEMODE/S,MULTISELECT/S,DRAWERSONLY/S,NOICONS/S,
    PUBSCREEN/K

    DRAWER
    Specifies the initial contents of the Drawer gadget

    FILE
    Specifies the initial contents of the File gadget

    PATTERN
    Standard AmigaDOS pattern. Specifies the initial contents of the Pattern
    gadget. Not providing this option causes the file requester not to have
    any Pattern gadget

    TITLE
    Specifies the title of the file requester

    POSITIVE
    Specifies the text to appear in the positive (left) choice in the file
    requester

    NEGATIVE
    Specifies the text to appear in the negative (right) choice in the file
    requester

    ACCEPTPATTERN
    Specifies a standard AmigaDOS pattern. Only files matching this pattern
    will be displayed in the file requester.

    REJECTPATTERN
    Specifies a standard AmigaDOS pattern. Files matching this pattern will
    not be displayed in the file requester.

    SAVEMODE
    Specifying this option causes the requester to operate in save mode

    MULTISELECT
    Specifying this option causes the requester to allow multiple files to be
    selected at once

    DRAWERSONLY
    Specifying this option causes the requester to not have a File gadget.
    This effectively turns the file requester into a directory requester

    NOICONS
    Specifying this option causes the requester never to display icons (.info)
    files

    PUBSCREEN
    Lets you provide the name of a public screen to open the file requester on

The selected files are returned on the command-line, enclosed in double quotes
and separated with spaces. The command generates a return code of 0 if the
user selected a file, or 5 if the user cancelled the requester.

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

C/SetFont

  - Now sends ESC-C to the console handler *after* doing SetFont() in thw
    console window's rastport. The only reason SetFont ever worked was by
    luck, since the escape sequences were buffered by DOS and flushed only
    after the program exited.

  - No longer opens console.device

  - Will no longer crash when passed a font name with more than 80 characters

  - Now returns with ERROR_BAD_NUMBER if asked for a font < 4 points

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

C/SetPatch

  - Activates AA chips

  - On some systems, NMI interrupts could be caused due to hardware
    bugs. These NMIs can cause software/hardware to perform incorrectly
    and has caused major performance problems in some systems.
    In the V37 ROM, the NMI vector pointed at a generalized routine
    that saved all registers, does some work which ends up doing nothing,
    restores all registers, and exits.  This patch will, under V37 ROMs,
    move that vector to point directly at an RTE.

  - SetPatch no longer will read the longword after the end of each of
    its hunks.

  - Now checks for the CPU type before trying to open the 68040.library
    This is so that the library does not even get loaded if you don't
    need it.  (The 68040.library also does the check)

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

Classes/DataTypes/amigaguide.datatype

This is a new system module that handles AmigaGuide databases.  Finally,
people can put an AmigaGuide object in their own windows (or requesters). This
class is a group class.  IE It allows any type of object to be embedded within
it.

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

Classes/DataTypes/ascii.datatype

This class is a sub-class of text.datatype and is used to handle ANSI
formatted (More-like) text.

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

Classes/DataTypes/ilbm.datatype

ilbm.datatype is a sub-class of picture.datatype and is used to read ILBM
pictures.

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

Classes/DataTypes/picture.datatype

This class is the parent class for any bitmap objects (such as ILBM, GIF,
JPEG, etc...).  It supports color remapping, clipboard, printer output, and an
ILBM write method.

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

Classes/DataTypes/sound.datatype

This is the base class for sound objects.

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

Classes/DataTypes/text.datatype

This class is the parent class for any text objects (such as ASCII, Microsoft
Bookshelf, NROFF, etc...).  It supports clipboard, printer output, and ASCII
and FTXT write methods.

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

Classes/DataTypes/8svx.datatype

This sub-class of sound.datatype loads 8svx sample sounds.

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

Classes/Gadgets/colorwheel.gadget

The colorwheel.gadget is a new BOOPSI class to create color wheels to allow
color selections by the user. See colorwheel.doc for more info.

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

Classes/Gadgets/gradientslider.gadget

The gradientslider.gadget is a new BOOPSI class to create sliders having a
gradient background. This is to be used in combination with the
colorwheel.gadget. See gradientslider.doc for more info.

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

Devs/printer.device

  - Added small amount of code to support AA 8 bit HAM mode printing.

  - Uses GetBitMapAttr() if running under V39 to obtain dimensions of
    source BitMap structure.

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

L/FastFileSystem

  - Equivalent to the V39 ROM file system, including DOS\5 support. See ROM
    release notes for more info.

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

Libs/68040.library

This is a support library for 68040 systems. It addresses a number of
issues with that CPU.

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

Libs/amigaguide.library

The amigaguide.library is a new system module providing a means whereby
developers can easily add on-line help abilities to their applications. See
amigaguide.doc for more info.

amigaguide.library was previously available for use in commercial
applications. This is the first release of the library as a part of the core
operating system. Changes since the previous release include:

  - All new V39-only version uses datatypes.library for object handling.

  - Now has an AppWindow, plus an "Open..." menu item.  To open a new
    document, AmigaGuide performs a LINK to it, so that you can RETRACE back
    through the documents that you have opened.

  - Now supports wordwrap and proportional fonts.

  - Now supports font attributes.

  - Now supports embedded objects.  This means that you can
    LINK to any type of object that the user has a DataTypes
    descriptor and class for---such as pictures and animations.

  - Modified how files are located, to search for a localized help file.  Now
    searches in the following order:

    For each preferred language

	PROGDIR:Help/<language>/<name>
	HELP:<language>/<name>

        PROGDIR:<name>
        <name>

    And for compatibility, each directory from the AmigaGuide/Path environment
    variable.

  - Renamed s:help.guide to amigaguide.guide and placed
    the english version in HELP:English.

  - All sub-databases are now opened localized.

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

Libs/asl.library

  - Added support for the new WA_HelpGroupWindow Intuition tag. ASL requesters
    now inherit the group id of their parent window.

  - Removed V37 code. The library now requires V39.

  - Now uses ROM busy pointer instead of custom one.

  - Added support for OSCAN_VIDEO in the screen mode requester.

  - Fixed rendering bug with selected items in the file requester. Depending
    on the size of the requester, sometimes the rendering didn't occur
    correctly.

  - Now monitors the Size numeric gadget more closely in the font requester.

  - ASL now uses scaled checkmark imagery in the font and screenmode
    requesters.

  - Fixed font layout bug with checkmark labels

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

Libs/datatypes.library

The datatypes.library is a new system module providing transparent data
handling abilities to applications.  Application developers can register their
data format with datatypes.library and provide a class library for handling
their data within other applications. See datatypes.doc for more info.

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

Libs/diskfont.library

  - Marks DUPLICATE fonts using one of many free bits in the TextFont
    Extension.  These are fonts opened by diskfont, but match some other
    font already on the public font list by name, Y size, relevant style,
    and relevant flags.  The font is only marked as a duplicate if a
    NON-DUPLICATE occurence of this font already exists.

    DUPLICATE fonts are ignored by OpenFont() if the caller is not
    tag aware even if there is a font on the list which has a better
    implied DPI.

  - Tightened up requirements for source font when scaling.  Specifically,
    an already scaled RAM font of an exact Y size match but differing by
    DPI will not be used as a the source for a bitmap scaled font (adding
    scale error, to scale error).

  - The code which generates the outline fonts now does comparison for
    OT_DotSize when it calls OpenFont(); essentially honoring the callers
    request for an OT_DotSize other than the default that diskfont will
    provide when creating outlined fonts.  This makes it possible to have
    multiple OutLine fonts which differ only by OT_DotSize.

  - Underlined outline fonts are now supported if the engine can manage it
    when rendering the glyphs.  New tags in diskfonttag.h, and diskfonttag.i
    added for this purpose.  V39 diskfont will ask for underlining if
    requested in the TextAttr, or TTextAttr, but if not supported by the
    engine, then it will simply try to open, or create a non-underlined
    version.  So there is no change in behavior for bullet fonts in that
    it already opens a non-underlined version.  The difference is by asking
    OpenFont() for a non-underlined version, it does not decide to create
    another copy because of the result returned from WeighTAMatch().

    Of interest, our own Text() function when used with SetSoftStyle() does a
    broken underline (just one pixel, but its definitely not solid), so
    diskfont.library V39 first asks for broken underlining from the engine,
    and then solid.  If neither form of underlining is supported, then the
    above is true.

  - Tag for algorithmic strike-through added to diskfonttag.i, and .h; this
    is another feature supported in Final Copy, and could be requested if
    wrapped in a bullet interface.

  - Underlining off, double solid, and double broken underlining also defined
    for the new OT_UnderLined tag.

    Underlining is not an intrinsic style for outline fonts.  Actually this
    does not absolutely have to be the case, but we lack a tag to indicate
    intrinsic underlined style now, so this is not a new behavior, or
    limitation.  The assumption being that underlining is one of those things
    that is probably best done algorithmically by the application, or
    for the purposes of diskfont, by the engine..  Therefore this also leaves
    open the possibility of placing the underlining code within diskfont
    for engines that do not support it should we wish to do so in the
    future.  This would however be a feature outside of the scope of the
    intended bug fix.

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

Prefs/IControl

  - Added Mode Promotion gadget when running on AA machines

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

Prefs/Input

  - "Show Double-Click" now operates asynchronously. That is, while the
    double-click sample is displayed, it is still possible to click on other
    gadgets.

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

Prefs/Palette

  - Brand new interface using the colorwheel and gradientslider gadget
    classes

  - Allows pen spec editing

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

Prefs/Pointer

  - Now opens on the Workbench screen if it can obtain three exclusive pens.

  - Allows editing of the Normal and Busy pointers.

  - Supports Low-Res and High-Res pointer resolutions.

  - Uses datatypes.library for clipboard support.

  - Semaphore around save during Test.  This is to prevent
    confusing error requesters if the user presses the Test button
    several times while waiting for the pointer to appear.

  - Added "Load Image..." menu item in the "Edit" menu.

  - Uses {SA_LikeWorkbench, TRUE} when using a custom screen.

  - Increased width of window by 20 pixels to make room for
    longer strings.

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

Prefs/ScreenMode 39.1 released to server. Changes include:

  - Now skips the default monitor when scanning the mode list instead
    of skipping PAL or NTSC. This means that the prefs file will never
    contain "default monitor" as a mode, it will always contain an
    explicit mode.

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

Prefs/Sound

  - Now uses DataTypes for sound loading and playing.

  - Now has a DataTypes filter in the load sample requester so
    that only sounds will be shown.

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

Prefs/WBPattern

  - Added support for picture backdrops.

  - Added support for Workbench screen backdrop.

  - Defined a more efficient chunk for the preference data.

  - Fully supports the First4/Last4 Workbench color scheme.

  - Clipboard support has been fully implemented (using
    DataTypes).  Bitmaps are mapped to the First4/Last4 Workbench
    color scheme.

  - All internal bitmaps now max out at a depth of 3 (less memory
    usage).

  - Rearranged the gadgets.

  - Semaphore around save during Test.  This is to prevent
    confusing error requesters if the user presses the Test button
    several times while waiting for the pattern to appear on the
    Workbench.

  - Added "Load Image..." menu item in the "Edit" menu.

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

S/Startup-Sequence

  - Removed "Echo" statement. That means the initial shell window will no
    longer be displayed on bootup on a standard system. This means a noticeable
    decrease in bootup time on slower machines (it takes about a second to
    open and close the shell window). It means even more savings in time
    when the WB has more bitplanes. Finally, it also looks a heck of a lot
    more professional.

  - Added C: in front of every pertinent command. This speeds up the S-S
    noticeably on floppy systems, since normally the current directory is
    scanned first for a command, and then C:. By prefixing C:, it no longer
    checks the current directory making things a whole lot faster.

  - Added deferred assign for HELP:

  - Added multi-assign of LIBS: to SYS:Classes in support of the new
    disk-based BOOPSI classes

  - Now runs VGAOnly monitor file if it is installed.

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

Storage/Monitors/#?

  - Added DblNTSC and DblPAL in support of AA scan doubling

  - Added VGAOnly monitor

  - Added AA support throughout

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

System/DiskCopy

  - Enabled code to correctly report read errors. Under V38, read errors are
    reported as write-error. This was not fixed in V38 due to the fact there
    was no string translation for the error. We now have such a string.

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

System/Format

  - Requires V39

  - Added Directory Caching support code.

  - Uses GTLV_MakeVisible tag in its listview

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

System/Intellifont

  - Renamed from Fountain to Intellifont

  - Bare minimum needed to fix visual bug evident when running under V39
    gadtools; no longer uses GTLV_Selected tag, though still does not
    use V39 style selection via GTLV_ShowSelected tag.

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

Tools/Commodities/MouseBlanker

This is a mouse blanking commodity. It blanks the mouse when you start typing
and unblanks it when the mouse is moved or any of the mouse buttons are hit.

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

Tools/HDToolBox

  - Brand new 2.0-style interface

  - Now determines the version number of a file system automatically instead
    of requiring it to be entered manually.

  - Fixed a great number of bugs

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

Tools/IconEdit

  - Implements the First4/Last4 Workbench color scheme.

  - Uses datatypes.library for clipboard support and picture
    loading/saving.  Therefore, you can now load any picture type
    that you have a class for.  When loading or pasting a
    picture, the colors are mapped to the Workbench GUI colors
    (either 2, 4 or 8 colors).  8 color icons will work with any
    depth Workbench screen.

  - Default clipboard viewer is now "Multiview CLIPBOARD".

  - Checks to see if icon already exists when saving a picture or
    source file and won't overwrite it.

  - File requester initial position now matches the preference
    editors.

  - Now draws the coordinates in the window title bar using the
    pen spec.

  - Was reloading icon image after save, even if save failed.

  - Will now properly undo after loading a new icon image.

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

Tools/ShowConfig

  - Added AA chipset support

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

Utilities/MultiView

This is a generic view-anything utility that uses DataTypes for its object
handling.

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

Outline of changes to the Install disk:

  - It is no longer necessary to boot from the Install disk.

  - Install Languages no longer exists. This is now merged into the main
    installation script.

  - Install Printers no longer exists. The user can easily drag a printer
    driver icon from the Storage disk to DEVS:Printers

  - The disk now includes the 68040.library, which gets copied to the HD when
    performing an install

  - The various Prod_prep scripts were enhanced and work better.

  - There are many little utilities in the C: directory which aid the main
    install script to do a better job.

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

Outline of changes in the Install script:

  - Requires V39 ROMs

  - Now integrates the old "Install Languages" script. When starting the
    main install script, you are now asked whether to perform a complete
    installation, or only update the languages.

  - It now virtually always makes the right decision as to where the WB files
    should be copied. As a result, if the user picks Novice mode, he will not
    be asked where the files should go.

  - Now preserves the tooltypes of many icons. This will avoid zapping the
    stuff put there by users, making the update process much more transparent

  - Now preserves the locations of most files. For example, if the user moved
    Blanker in WBStartup, it will be correctly updated in WBStartup, and left
    there. In 2.1, the copy in WBStartup would be deleted and the new version
    installed in Tools/Commodities.

  - Now preserves left out icons. The UpdateWBFiles program ensures that the
    contents of the .backdrop file are up to date which removes the need to
    delete the file.

  - Now updates 2.04 font prefs files to 2.1 format.

  - Now deals with the "Storage3.0" disk

  - Now asks which keymaps to install

  - Installs the 68040.library

  - Knows about systems with MapROM, and installs a special startup-sequence.

  - On an NTSC system, always copies the NTSC monitor to DEVS:Monitors, and
    copies PAL to DEVS:Monitors on PAL systems.

  - When installing languages, deletes languages the user did not choose. This
    is to remove old 2.1 files that might be hanging around.

  - Does better sniffing to determine whether a 2090 is present, and displays
    extra info to inform the owner that some files need to be copied.

  - Will reboot the system for the user at the end of the installation
    procedure (after asking permission first, of course)

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

Outline of changes in the HDSetup script:

  - Will now partition the HD and format it automatically instead of requiring
    a reboot (thanks to Randell for the new Prod_Prep that does this). The
    partitions are now called Workbench (DH0) and Work (DH1). DH0: is created
    as 8M.

  - DOS\3 is now used by default, and the DMA mask is set to 0xfffffffe
    instead of 0xfffffffc

  - The version number for the file systems being installed on a machine is now
    extracted from the file system load file instead of being hard coded in the
    prep scripts

  - After completing the reselection on, reselection off, or update
    superkickstart option, the system is rebooted automatically.

  - Updating the super kickstart no longer requires the user to hit RETURN.
    Errors are also detected now.
