From: nobody@nowhere.xx.xx.xx
Newsgroups: comp.sys.amiga.misc
Subject: WB 2.1 Changes - The Complete  Doc !!!
Keywords: changes wb2.1
Date: 22 Mar 92 08:18:56 GMT
Organization: Tel-Aviv University Computation Center





General 2.1 Disk Layout Changes

Some changes were made to the Workbench disk layout in 2.1. There are a few
reasons for this:

  - Need to accomodate localization

  - Need to accomodate CrossDOS

  - Attempt to simplify user's lifes

  - Getting everything to fit on the disks

The changes include:

  - The 2.1 system software will be shipped on FFS floppies. This is mainly to
    increase available storage.

  - There is now a Prefs drawer on the Extras disk. This is where all the
    prefs editors are located. The Prefs drawer is maintained on the
    Workbench disk only to store ENVARC:

  - The Devs directory on Workbench now has an icon. The Monitors drawer
    was moved inside of Devs. Devs/Printers and Devs/Keymaps acquired icons.
    Finally, a new drawer called Devs/DOSDrivers also has an icon. Printer
    drivers and keymaps all have icons now.

        Devs/Monitors
        Place where a user puts a monitor icon to enable it.

        Devs/Printers
        Place where a user puts a printer icon to make it available.

        Devs/Keymaps
        Place where a user puts a keymap icon to make it available.

        Devs/DOSDrivers
        Place where a user puts a DOS driver (mount file) icon to activate it.

    Files that go in the DOSDrivers icons are very similar to mount lists,
    but they have icons so WB users can manipulate them. See the discussion
    of the C/Mount command below for more info.

  - A Storage drawer was created on the Extras disk. It contains the same
    four directories as in the Devs drawer. This is where things that are not
    currently used are kept. To activate a monitor, the user is expected to
    drag the desired monitor icon from Storage/Monitors to Devs/Monitors.
    Same applies for printer drivers, keymaps and DOS drivers.

    The ability to drag DOS driver icons means the Workbench user can now
    control what device gets mounted in his system. This is important for
    CrossDOS. By simply double-clicking on the PC0 icon, the user can
    activate MS-DOS device unit 0. By dragging the PC0 icon from
    Storage/DOSDrivers to Devs/DOSDrivers, the selection becomes permanent
    and PC0: will be available upon every reboot.

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

General 2.1 Improvements

  - Most system programs with a GUI are now localized and can be operated in
    multiple languages

  - Many 2.1 programs support a PUBSCREEN tooltype or command-line option
    which enables them to open on any public screen.

  - Many 2.1 programs with a GUI understand CTRL-C signals sent to them and
    quit

  - Many 2.1 programs with a GUI listen for CTRL-F. When they receive this
    signal, they activate their window, bring it to the front, and unzip it
    if needed. CTRL-F is thus a sort of wake up call.

  - 2.1 icons contain all the tooltypes their respective applications
    understand. The tooltypes are commented out in the form:

       (PUBSCREEN=<public screen name>)

    The parenthesis causes the tooltypes to be overlooked by Workbench. The
    data in angled brackets needs to be filled-in by the user.

  - 2.1 commodities programs use ReadArgs() for command-line parsing.

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

The following system files are no longer needed under 2.1 and are deleted by
the installation procedure.

  - C/DiskDoctor
    Removed for malpractice

  - Devs/Keymaps/usa1
    Present in ROM.

  - Fonts/_bullet/if.ss
    Replaced by Fonts/_bullet/if.uc

  - System/AddMonitor
    Functionality is now embedded in each monitor file directly.

  - System/BindMonitor and WBStartup/Mode_Names
    Naming modes is now done by the monitors themselves in combination with
    IPrefs which handles localization of the names

  - System/CLI.info
    Redundant.

  - System/DiskCopy.info
    No need for an icon since the user can't double-click on this program.

  - System/SetMap
    The global keymap can now be selected from the Input prefs editor. The new
    SetKeyboard command lets you set the keymap for the current console window.

  - Tools/Commodities/IHelp
    Functionality has been absorbed by FKey

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

C/BindDrivers

  - Got smaller

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

C/CPU

  - Added EXTERNALCACHE, NOEXTERNALCACHE, COPYBACK, and NOCOPYBACK options
    needed for 68040 support.

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

C/IconX

  - Got smaller

  - Scripts started by IconX now inherit WB's path

  - There is now a STACK tooltype that lets the stack of the script be
    specified

  - There is now a USERSHELL tooltype. Setting "USERSHELL=YES" will cause
    the current user shell to be used for the script instead of the boot
    shell

  - Default window spec now includes /AUTO to avoid mostly useless windows from
    opening

  - Corrected DELAY tooltype. The value was actually being used directly
    for a Delay() call and is now multiplied by TICKS_PER_SECOND (50)
    before use.

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

C/Info

  - Now knows about DOS\2, DOS\3 and CrossDOS disk types

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

C/Install

  - Can now use CHECK option on write-protected disks

  - Now supports DOS\2 and DOS\3 disk types

  - FFS command-line option is now ignored by the program

  - Now fails when trying to install a device without 512 bytes/sector. Prints
    an error message to that effect.

  - Now gives a meaningful error message when a disk can't be read or written
    to. It used to return with "no disk present" as an error

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

C/IPrefs

  - Localized

  - Now understands Locale, Keymap, CrossDOS and Sound preferences

  - Now uses iffparse.library to interpret its IFF files

  - Keeps diskfont.library and iffparse.library closed when they
    are not in use allowing them to be expunged

  - Can now handle multiple IFF chunks within an IFF file. This means that
    a single IFF PREF file can contain preferences for many different
    elements.

  - Clearer message when IPrefs wants to reset the WB display

  - Knows about the new PUNT (Printer Unit) chunk saved by the new Printer
    Prefs

  - Knows about the unit # specification for multi-serial cards

  - Now reads and processes the new font.prefs file and ignores the old
    sysfont.prefs and screenfont.prefs

  - Is much more picky about when the Workbench screen must be reset

  - Knows about monitor mode names. When a changes to the Locale
    preferences occur, IPrefs now reads the sys/monitors.catalog
    catalog file and updates the name of all available monitors so they
    appear in the correct language.

  - Handles 256 colors palette prefs files correctly. It had a fixed
    maximum of 16 colors.

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

C/LoadWB

  - If the ROM is the final 2.04 ROM, it will do a magic patch that
    will fix the "Rename Error gets stuck" problem.

  - If the ROM is the final 2.04 ROM, it will do a magic patch that
    localizes workbench to the current default locale. Since this
    is done at LoadWB time, it will remain in effect until you quit
    workbench and start again. If locale.library is not available, it
    will not localize workbench.

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

C/Mount

  - Rewritten from BCPL to C. Another one bites the dust!!

  - Localized

  - Has much better error reporting, including the filename, line and column
    number of where errors in MountLists occur.

  - Now uses ROM calls to access the DOS device list

  - Can be run from Workbench. This requires new-style MountLists of
    the form:

      /* Aux-Handler mount entry under 2.1 */

      Handler         = L:Aux-Handler
      Stacksize       = 1000
      Priority        = 5

    That is, the difference with old style MountLists are as follows:

      - Only a single device can be defined per file
      - The name of the device is not specified in the file and is instead
        the same as the name of the file
      - The # at the end of the entry can be ommited.

    This change will enable us to allow easy installation and control of
    mountable devices from the Workbench by simply dragging and clicking icons.

  - Template is now:

       "DEVICE/M,FROM/K"

    DEVICE/M lets multiple devices be mounted in one invocation. Different
    things are done depending whether the a device name argument ends with a
    colon. For example:

    Mount PIPE:
        This will look for the file "DEVS:DOSDrivers/PIPE" and will process
        it if found. This is a new style mount file that doesn't contain
        the name of the device within the mount file. If the mount file
        is processed successfully, the tooltypes for
        "DEVS:DOSDrivers/PIPE.info" are then processed and override any
        settings from the mount file. This is new behavior.

        If "DEVS:DOSDrivers/PIPE" doesn't exist, an attempt is then made
        to find a "PIPE:" entry in "DEVS:MountList". This is the compatible
        fall-back behavior.

    Mount PIPE
        When there is no colon at the end of a device name argument, the
        name is taken as the filename of the mount file to process.
        This filename can contain wildcards so something like the following
        is possible: Mount DEVS:DOSDrivers/~(#?.info). This is new behavior.

    Mount PIPE FROM <mountlist>
    Mount PIPE: FROM <mountlist>
        This will scan for a "PIPE:" entry in <mountlist>. This is compatible
        behavior.

  - String arguments can now be enclosed in double quotes which lets spaces
    be included such as:
      Handler = "Boot HD:L/Speak-Handler"
    This is handy for mount list entries generated automatically

  - Added tooltype processing, any keyword that can be put in a mountlist can
    also be put as a tooltype entry. The tooltype data *overides* the
    data in the mountlist file itself.

  - Added ACTIVATE as a synonym to the MOUNT keyword. This is mainly meant
    to eliminate the confusion between the Mount command and the MOUNT
    keyword. Also, since this is likely to be one of the most common
    tooltypes, it makes sense to give it a more meaningful name.

  - When mounting a file system, Mount now scans the file system resource
    list for entries having the same dos type. If an entry is found, that
    file system is used instead of attempting to load a new one from disk.
    To force a file system to be loaded from disk even though a suitable
    entry is in the resource list, the FORCELOAD keyword has been added:

        FORCELOAD = 0;   /* default, check the resource list before the disk */
        FORCELOAD = 1;   /* always load from disk */

    Using a file system from the resource list avoids having multiple copies
    of the file system code in memory at any one time. This will make
    CrossDOS become much less memory hungry.

  - No longer checks for absence of L:FastFileSystem, this was now
    redundant due to the scanning of the file system resource list.

  - The Unit field of the FileSysStartupMsg can now contain a C pointer to a
    C string. The Startup field provided the ability for a handler to get
    a string, but it was not possible for a file system to get a string as
    parameter. The Unit field makes it possible. So if the Unit keyword is
    defined as:

        Unit = "blah blah"

    then memory is allocated to hold the string and the fssm_Unit field
    points to it. The pointer is a CPTR and the string is a regular C string.

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

C/SetKeyboard

New command which replaces System/SetMap. Can only be run from the shell.
Template is "KEYMAP/A". The command sets the keymap for the current console
window. Keymaps are searched for in the KEYMAPS: assign list.

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

C/SetPatch

  - Fixes a problem with SetPatch always playing with the caches
    It now just turns on the data cache and will report this as one of
    the patches it installs.

  - Added code needed to support the loading/opening of the 68040
    support library.  (68040.library)

  - Fixed BURST mode

  - Added patch for Intuition IAddress bug

  - Added patch to fix up the line-a exception which is munged at
    boot time.  This patch will cause an enforcer hit if you run
    Enforcer before SetPatch is run the first time.

  - Added the SetRGB4() and LoadRGB4() interrupt patches

  - Added the moving of the CIA handler priority to 0 if the
    priority is lower that 0.

  - Patches console.device BeginIO() such that CMD_CLEAR now works, and no
    longer trashes memory.

  - Added a patch for the Display Database for V37.175 kickstart.
    What this does is catch any routine in graphics that could have
    caused a dynamic unpacking of the database and check if the
    dynamic unpacking was about to happen.  If it was, it would fail
    the routine rather than call it since the monitor was not yet
    added to the system.  This fixes the problem where a dynamic
    unpacking will cause the system to crash in a very bad way.
    It also makes the monitor system more consistant.

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

Devs/mfm.device

New device in support of CrossDOS. Allows Amiga floppy drives to read PC-format
disk. Interface is similar to trackdisk.device

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

Devs/postscript_init.ps

New file needed by the PostScript printer driver.

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

Devs/printer.device

  - Localized

  - Now uses EasyRequest() instead of AutoRequest()

  - Preferences.i/h now has fields in it for the printer.device
    which can be used to specify a device name, and unit number.
    This is needed for the Printer prefs's UNIT option and lets the
    printer.device output to any port of a multi-serial card, or
    even to any other .device (although we don't have a UI to let
    the user do this yet)

  - Looks for the printer drivers in the PRINTERS: assign list first, then in
    DEVS:printers.

  - For parallel printers, the requester routines do the following:

     If the message is "Make printer on-line", the requester will go
     away automatically if the printer is put back on-line.

     If the message is "Out of paper", the requester will go away if
     automatically if paper is installed and the printer is put back
     on-line.

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

L/CrossDOSFileSystem

CrossDOS file system allowing AmigaDOS to read/write PC-format disks.

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

L/FileSystem_Trans/#?

CrossDOS translation tables. These serve to determine how 8-bit ASCII is mapped
between Amiga and PC file systems. A listing of this directory in shown in
the CrossDOS preferences program.

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

Prefs/#?

All system prefs editors share as many of the following new features as
pertinent:

  - All prefs editors are localized

  - Prefs editor windows are now made into AppWindows. That is, you can
    drop prefs file icons on them.

  - New PUBSCREEN tooltype or command-line argument to bring up the editors on
    any public screen.

  - Last menu was changed from "Options/Save Icons?" to
    "Settings/Create Icons?" to match style guide.

  - New tooltype "CREATEICONS" which can be set to YES or NO.

  - The default state of the "Settings/Create Icons?" option is set to TRUE
    when the prefs editor is run from Workbench, and FALSE when it is run from
    the shell.

  - Uses ASL's new automatic icon filtering feature as well as the new
    ASLFR_SleepWindow tag which puts the calling window to sleep when a
    file requester is opened.

  - File requester's initial position is now set to be relative to
    that of the prefs editor's window

  - No longer resets file req path to ENV:Sys/Presets between calls to ASL

  - Unlike 2.04, now parses tooltypes in the Tool icons in addition to those
    from Project icons.

  - Now does a ScreenToFront() to the screen on which the prefs editor
    is running when starting up.

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

Prefs/CrossDOS

New preferences editor that lets you control three parameters for every
CrossDOS device currently mounted.

    The CrossDOS devices listview lets you pick the device to work on.

    The Text Filtering checkbox lets you specify whether CrossDOS should
    filter text files

    The Text Translation checkbox lets you specify whether CrossDOS should
    translate ASCII characters >127

    The Translation Types listview lets you choose which type of translation
    to apply whenever the Text Translation checkbox is selected

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

Prefs/Font

  - Substantially different UI using asl.library's font requester.

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

Prefs/Input

  - Supports keymap selection. Looks for keymaps in the KEYMAPS: assign list.

  - Changed how all slider values are displayed, no longer are these
    in fractions of a second (got too complicated to localize).

  - Improved "Test Double-Click" and "Show Double-Click" handling

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

Prefs/Locale

New preferences editor that lets you choose in which language to operate the
system. This is the user's control over system localization.

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

Prefs/Overscan

  - No longer uses menus in the edit screen, and instead has a pair of
    Use/Cancel gadgets

  - Added a real-time display of the current size and position as the overscan
    areas are being edited

  - Changed "Standard Overscan" to "Graphics Overscan" which matches ASL
    ScreenMode requester terminology

  - The default view position and preferred mode for editing now come
    from the graphics database, instead of being coded into Overscan.

  - Handles monitor types that are unknown to it.

  - On the edit screen, only the active handle remains visible during
    dragging.  This is much faster, which makes a big difference on slower
    processors.

  - On the edit screen, the menu button now cancels a sizing/moving
    operation.

  - On the edit screen, fixed mouse-queue problems (no longer set
    mouse-queue to 1).  Also, for MOUSEMOVEs, I now grab the mouse-coords
    from the window instead of the message, to be most up-to-date.

  - On the edit screen, the unusable area (outside MaxOScan) is now
    completely black, instead of part black and part gray.  As a
    side-effect, the Overscan editor can no longer use the first two
    Workbench colors for its edit screen.

  - Removed code to deal with unnamed monitors. Unnamed monitors are simply
    not displayed

  - Now capitalizes the first letter of the monitor names on the display,
    and explicity capitalizes the words "NTSC" and "PAL". Monitor names are
    no longer displayed with their ".monitor" extensions.

  - Overscan editing screen now has a second bit-plane whenever a
    genlocked system is being used. This lets the border around the
    edit area be see through, while everything within the edit area to
    be opaque.

  - Now uses the screen's rastport for rendering when editing an overscan
    region. This makes the rendering much faster

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

Prefs/Palette

  - Supports 8-bit color guns

  - Made changes to allow 256 colors to be edited. This includes making
    the window larger when many colors are to be displayed.

  - Keeps the Workbench screen locked until it is done playing with its
    colors, fixing a potentially dangerous bug

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

Prefs/Pointer

  - Added clipboard Cut, Copy and Paste of ILBM's.

  - Added Erase and Undo.

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

Prefs/Printer

  - Added UNIT command-line option and tooltype which causes an extra gadget
    to be displayed to let the user select which device unit the printer
    will send its output to.

  - Now outputs a PUNT (Printer Unit) chunk in the printer prefs file

  - Now scans for printers in the PRINTERS: assign list instead of in
    DEVS:Printers

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

Prefs/PrinterGfx

  - Now has the "Options/Use Metric System" menu option, with its initial
    setting determined by the current locale (default is off)

  - Ghosts more unavailable options than previous versions

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

Prefs/PrinterPS

  - New PostScript printer driver preferences enabling control of numerous
    features of PostScript printers. Here's a brief summary of most of the
    controls:

Driver Mode
-----------
Lets you select between "PostScript" or "Pass Through". The "PostScript" mode
will cause the driver to convert any text output sent to it to "PostScript"
and send the results over to the printer. The "Pass Through" option will force
the driver to leave the data alone and send it directly to the printer. The
"Pass Through" option lets programs that output PostScript directly function
correctly by sending their PostScript code directly to the printer and not
treating it as a text file.

Copies
------
This specifies the number of copies of each page to print, from 1 to 99.

Paper Format
------------
Lets the user select between "U.S. Letter", "U.S. Legal", "DIN A4" and
"Custom". This defines the size of the paper being used. Clicking on this
gadget sets the values in the "Paper Width" and "Paper Height" cycle gadget to
match what the format dictates.

Paper Width and Paper Height
----------------------------
These let you specify the exact paper dimensions being used. These gadgets are
ghosted unless the "Paper Format" gadget is set to "Custom".

Horizontal DPI and Vertical DPI
-------------------------------
Lets you specify the dots per inch to use in the printout. The driver will
assume that DPI for all of its dithering and other processing.

Panel Cycle Gadget
------------------
This lets you select which of the four additional option panel is currently
displayed. The four panels are "Text Options", "Text Dimensions", "Graphics
Options", and "Graphics Dimensions". The panel selected determines which
of the following gadgets is displayed. The reason to use gadget panels is due
to lack of space in a 640x200 resolution display.

Font
----
This lets you select which font to use in printout. These are built-in printer
fonts and are used whenever text is sent to the printer.

Pitch
-----
Lets you select either "Normal", "Compressed", or "Expanded" print faces.

Orientation
-----------
Lets you select between "Portrait" or "Landscape" printing. Landscape printing
is useful for things like envelopes.

Tab
---
Lets you specify how to handle tabs in the printed file. The available
selections are "4 characters", "8 characters", "1/4 Inch", "1/2 Inch", and
"1 Inch". The inch settings are useful when printing with a proportional
font.

Margin Gadgets
--------------
Lets you specify all four margins for text printing. The values entered are
relative to the left/top edge of the paper as well as to the paper's width
and height values specified previously.

Font Point Size
---------------
Lets you specify the size of the font to use whenever text is sent to the
printer.

Line Leading
------------
Lets you specify the amount of leading betweens printed lines of text. Leading
is the distance between two adjacent lines.

Lines Per Inch
--------------
This text display area shows the number of lines per inch which is calculated
based on the values of the "Font Point Size" and "Line Leading".

Lines Per Page
--------------
This text display area shows the number of lines per inch which is calculated
based on the values of the "Font Point Size", "Line Leading", "Paper Height",
"Top Margin", and "Bottom Margin".

Edge Dimension Gadgets
----------------------
Similar to the four Margin gadgets, but used for graphics printing.

Shading
-------
Lets you select between "Black & White", "Grey Scale", and "Color".

Aspect
------
When printing graphics, this lets you specify whether the picture should be
printed normally, or sideways. This is the first operation done on a graphics,
it happens before the scaling.

Scaling Type
------------
Lets you select one of 7 scaling types. All types control how the picture
is printed within the user specified printing region.

  1 - No scaling. This prints the picture as is. The picture may be clipped on
  the right and bottom edges to fit within the print region specified.

  2 - Aspect preserving scale with horizontal bias. This makes the horizontal
  dimension as wide as the print region, and scales the vertical dimension
  by whatever is needed to preserve the aspect ratio. The vertical dimension
  is clipped to the print region if it gets too tall.

  3 - Aspect preserving scale with vertical bias. This makes the vertical
  dimension as tall as the print region, and scales the horizontal dimension
  by whatever is needed to preserve the aspect ratio. The horizontal dimension
  is clipped to the print region if it gets too wide.

  4 - Aspect preserving maximum scale. This makes the picture as big as
  possible while ensuring it fits in the print region and preserves its
  aspect ratio.

  5 - Aspect insensitive scale with no bias. This makes the picture take
  up the emtire print region in both dimensions and will distort the aspect
  ratio if needed.

  6 - Aspect insensitive scale with horizontal bias. This makes the horizontal
  dimension as wide as the print region, and scales the vertical dimension
  by whatever is needed to preserve the aspect ratio, or until the vertical
  dimension gets as tall as the print region. The difference between this
  type and type #2 is that the vertical dimension is made to always fit
  within the print region instead of being clipped.

  7 - Aspect insensitive scale with vertical bias. This makes the vertical
  dimension as tall as the print region, and scales the horizontal dimension
  by whatever is needed to preserve the aspect ratio, or until the horizontal
  dimension gets as wide as the print region. The difference between this
  type and type #3 is that the horizontal dimension is made to always fit
  within the print region instead of being clipped.

Scaling Math
------------
Determines whether "Integer" or "Fractional" math is to be used during scaling
operations.

Centering
---------
This lets you specify no centering, horizontal centering, vertical centering,
or both horizontal and vertical. The centering operation is performed last
in the printing process, after the scaling.

Scaling Samples
---------------
These show a sample picture being scaled to various target sizes. Selecting
different scaling types changes the samples to reflect what would happen on
the printed page.

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

Prefs/Serial

  - Added UNIT command-line option and tooltype to support the A2232 board.
    When this option is specified, an additional gadget is added to the window
    to let you set the default A2232 unit. This makes the old A2232_Preferences
    program obsolete.

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

Prefs/ScreenMode

  - Has better code to name unnamed modes. The mode is now always
    preceded by the monitor name, just like the ASL screen mode requester

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

Prefs/Sound

New preferences editor that lets you control what happens when a
DisplayBeep() function call is made. Lets you replace the screen flash by an
audio beep or an IFF sampled sound.

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

Prefs/Time

  - Now has a SAVE command-line option. This causes the program to just
    copy the current system time to the battery clock

  - It will adapt its display to start weeks on the days indicated in the
    current locale.

  - Has a localized time display region to enhance useability of the
    Hours and Minutes sliders

  - Calendar area looks and feels better

  - Has a Project menu with a single Quit item

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

Prefs/WBPattern

  - Added clipboard Cut, Copy and Paste of ILBM's.

  - New preset patterns

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

Libs/asl.library

  - Rewritten from assembly to C

  - Integrated the new ScreenMode requester

  - Localized all requesters. By default, they will use the system's current
    locale. An application can also override this and pass in its own locale

  - All requesters are now font-sensitive. By default, the
    screen's current font is used. An application can override this and provide
    its own font

  - All requesters can now use a screen pointer, a public screen name, or a
    window pointer in order to determine on which screen to open.

  - All requesters can now open an invisible Intuition requester and put up a
    busy pointer in the calling application's window, effectively putting that
    window to sleep until the requester is satisfied.

  - New <libraries/asl.h> and <libraries/asl.i> files with new
    consistent names for everything

  - The file requester now uses correct highlighting method and does
    multiselect in a manner consistent with Workbench (you need to hold
    down the shift key to do multiselect)

  - The file requester now displays file sizes, date and time for files.
    The volume display shows the volume name, device name, number of %
    used, Ks free and Ks used (just like a Workbench volume window)

  - File requester now lets you delete files by selecting the "Delete" menu
    item.

  - File requester is between 2 and 7 times faster at loading a directory
    listing

  - File requester is now an AppWindow. Drop any file on it, and the path
    of that file goes in the Drawer gadget, while its name lands in the
    File gadget.

  - When sizing the file requester taller, if viewing the end of the list,
    the list of names now moves down to fill-in the newly exposed area.
    Otherwise, the prop gadget is in a semi-legal state.

  - Font requester now does caching of the font list. That means it will
    display the lists of fonts many times faster than previously.

  - There are many new options available for better program control of the
    requesters, see asl.doc for more info.

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

Libs/bullet.library

  - New Compugraphic outline font engine. See bullet.doc for more info.

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

Libs/commodities.library

  - Got much smaller and much faster

  - Consumes less run-time memory. Fragments memory much less. Flushes unused
    memory when a memory panic occurs

  - No longer attaches message ports to the public port list

  - Now only attaches its input handler if commodities objects actually
    exist. This lets applications call useful functions in the library
    without causing an input handler to be added

  - Fixed reentrancy problems in ParseIX()

  - Fixed bug with the library freeing signal bits of the wrong task
    on exit, resulting in a potentially dangerous situation

  - Several miscellaneous bugs were fixed

  - Added a new function: MatchIX(). This function was internal, and
    was just made available to applications. It matches an input event to
    a commodity input expression. See commodities.doc for more info.

  - Fixed several low-memory Enforcer/MungWall bugs

  - SetCxObjPri() now returns the previous priority of the object

  - Fixed incorrect routing of events by translator objects. The translated
    events would skip the remainder of the input network instead of being
    inserted midstream like the docs described

  - Added warning in autodoc concerning the fact translator objects
    insert their translation list in reverse order than what you ask them.
    This bug can't be fixed for compatibility

  - Added <rawmouse> code strings. This enables the actual use of events of
    type rawmouse.

      MOUSE_LEFTPRESS
      MOUSE_MIDDLEPRESS
      MOUSE_RIGHTPRESS

    These are the names to describe the mouse button presses. Not to be
    confused with mouse button qualifiers. Example usage would be to specify
    as CX_POPKEY sequence for a commodity:

      CX_POPKEY=rawmouse mouse_middlepress

    The above would cause the commodity to open its window whenever the middle
    mouse button is depressed.

  - It is now illegal to specify <rawkey> codes for non-rawkey events. The
    error was not being caught.

Synonyms were added for event qualifiers. They used to have programmer-level
names, now the synonyms offer something more consistent and useable to the
normal user (as opposed to us abnormal programmer-types :-) These qualifiers
can be specified in mixed-case. The possible qualifiers are:

    Original      New Synonyms
    --------      ------------

    LCOMMAND      LEFT_COMMAND, LAMIGA, LEFT_AMIGA
    RCOMMAND      RIGHT_COMMAND, RAMIGA, RIGHT_AMIGA

    LSHIFT        LEFT_SHIFT
    RSHIFT        RIGHT_SHIFT

    LALT          LEFT_ALT
    RALT          RIGHT_ALT

    CAPSLOCK      CAPS_LOCK
    CONTROL       CTRL
    NUMERICPAD    NUMERIC_PAD, NUMPAD, NUM_PAD

    LBUTTON       LEFTBUTTON, LEFT_BUTTON
    MIDBUTTON     MBUTTON, MIDDLEBUTTON, MIDDLE_BUTTON
    RBUTTON       RIGHTBUTTON, RIGHT_BUTTON

    RELATIVEMOUSE
    REPEAT

ALT, SHIFT and CAPS work as before.

Synonyms were added for keyboard sequences. Support was also added for the
extended Amiga keyboard. The possible keyboard sequences are:

    BACKSPACE
    BREAK
    COMMA
    DOWN, CURSOR_DOWN
    LEFT, CURSOR_LEFT
    RIGHT, CURSOR_RIGHT
    UP, CURSOR_UP
    DEL, DELETE
    END
    ENTER
    ESC, ESCAPE
    F1..F12
    HELP
    HOME
    INSERT
    PAGE_DOWN
    PAGE_UP
    PAUSE
    RETURN
    SPACE, SPACEBAR
    TAB

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

Libs/diskfont.library

  - New version supporting external font engines

  - Text() routine in graphics doesn't handle BoldSmear properly, so
    made the scale font routines have a maximum bold smear of 16 when
    graphics.library <V39.

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

Libs/locale.library

New library that provides the core of system localization. See locale.doc
for more info.

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

Libs/mathieeedoubbas.library

  - Fixes the DPFix() routine which was trashing d3 under certain
    input values.

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

Locale/Countries/#?

Locale country information files. Used by the Locale preferences editor.

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

Locale/Catalogs/#?

Locale language catalogs. Contains the text of localized applications in a
series of different languages. These are managed by locale.library

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

Locale/Languages/#?

Locale language drivers. There is one language driver for every language
supported in the system. These are managed by locale.library and the Locale
preferences.

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

Storage/Keymaps/f

  - The numeric keys (not the keypad) were made capsable.

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

Storage/Monitors/#?

These replace the V37 monitors, and render AddMonitor and BindMonitor obsolete.
These are true executables as opposed to the V37 ones.

  NTSC
  PAL
  Multiscan
  A2024
  Euro36      - 36Hz refresh rate
  Euro72      - 72Hz refresh rate
  Super72     - 72Hz refresh rate higher res

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

Storage/Printers/#?

  - All drivers now support A4 paper sizes

  - PostScript
    New PostScript printer driver. See PrinterPS prefs editor for control

  - CBM_MPS1000
    A bug fix - the sequences for elite, and compressed were changed
    post 1.2, and have been broken since then.

  - EpsonX and EpsonQ
    A bug fix: upper-case-I-acute-accent was being printed as grave.

  - HP_LaserJet
    Minor change - 60 second timeout for 300 DPI graphics (30 seconds
    otherwise) - this is a common complaint; the driver times out too soon
    at 300 DPI.

  - ColorMaster
    Removed wayward kprintf from render.c file.

  - HP_DeskJet
    This is a new and improved version of the driver. The old one will still be
    included on Workbench disks as HP_DeskJetOld.

    The old HP_Deskjet driver only supported the B&W HP_Deskjet
    printers.

    The new HP_Deskjet driver also supports the new (and extremely popular)
    HP_500C color deskjet printer.  This is a 300 DPI color ink printer
    that you can get for street price of $749.  By far, the best color
    quality for the price.

    In addition to supporting color graphic dumps on the HP_500C,
    the driver supports (via DENSITY) the various shingling (??) modes
    available on the 500C, and provides color and lightness correction
    via THRESHOLD (a non-standard use of the THRESHOLD gadget).
    If THRESHOLD is set to 1, no corrections are made. This setting is
    required when printing directly from any package which does its own
    enhanced dithering (such as Art Department Pro).

    When printing with software that uses standard Amiga printer
    device color printing, the THRESHOLD gadget can lighten the
    output. Settings from 2 through 15 provide succesively lighter
    output. When printing in gray scale, there is just one fixed correction.
    THRESHOILD 1 will apply no correction, and any other setting will
    apply the fixed lightening correction.

  - CanonBJ10 35.4
    New driver

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

System/DiskCopy

  - Got smaller

  - Localized

  - Hitting CTRL-C at the startup prompt is now sufficient to stop the
    copy operation, no longer need to enter CTRL-C followed by RETURN

  - Now uses ROM calls to scan the dos device list

  - Uses EasyRequest() instead of AutoRequest() for better looking requesters

  - Now has a GUI when running from WB with a fuel gauge and a Stop gadget
    which looks identical to the Format GUI

  - When on a partition with > 100 cylinders, the fuel gauge and cylinder
    counts are now only updated every 10 cylinders. Partitions with more than
    1000 cylimders are only updated every 50. Makes HD copying much faster

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

System/Format

  - Got smaller

  - Localized

  - Does better sniffing of the dos type for devices in support of CrossDOS

  - Hitting CTRL-C at the startup prompt is now sufficient to stop the
    format operation, no longer need to enter CTRL-C followed by RETURN

  - The message displayed when formatting from the shell now mentions the
    fact that hitting CTRL-C aborts the operation.

  - Names its disks "BAD\0" when formatting so that workbench will show them
    as "DF0:????" if the format operation fails, instead of "DF0:COPY"

  - Now uses ROM calls to scan the dos device list

  - No longer has a built-in trashcan image, always uses the one provided
    by icon.library

  - Uses EasyRequest() instead of AutoRequest() for better looking requesters

  - Template from the shell is now:

    DEVICE=DRIVE/K/A,NAME/K/A,OFS/S,FFS/S,INTL=INTERNATIONAL/S,
    NOINTL=NOINTERNATIONAL/S,NOICONS/S,QUICK/S

    DEVICE was added as a synonum for DRIVE, since this is the word used
    elsewhere in the system ("Please insert <blah> in device DF0" for example)

    The INTL or INTERNATIONAL options let you specify international file
    system (DOS\2 or DOS\3)

    The OFS option forces the use of OFS on the disk. This is for
    devices which have FFS as default. The NOINTL option
    serves the same purpose for the international mode operation.

    So, specifying neither OFS or FFS will give you the default FS for
    the device. OFS will always give you OFS, and FFS will always give you
    FFS. Same logic applies for INTL/NOINTL. None of these switches
    do anything on devices of other dos types, like CrossDOS for example.

  - Now has a GUI when run from WB:

      The "Current Information" section shows the device name to be formatted,
      the name of the volume in this device (if any), the capacity of
      the device, and the percentage of use. This information is updated if
      disks are inserted or removed while the window is up.

      The "New Volume Name" text gadget lets you specify the name for the
      volume after format.

      The "Put Trashcan" checkbox gadget lets you specify whether to put a
      trashcan on the formatted disk.

      The "Fast File System" gadget lets you specify whether to use FFS on the
      volume.

      The "International Mode" gadget lets you specify whether to format using
      the international FS or not (DOS\2 and DOS\3)

      The "Format" gadget starts the formatting.

      The "Quick Format" gadget starts the formatting in quick mode (root block
      formatting only)

      The "Cancel" gadget cancels the operation

    The "Fast File System" and "International Mode" gadgets are only
    displayed when formatting AmigaDOS disks. So for something like
    CrossDOS, these two options are not available.

    After selecting "Format" or "Quick Format", a requester appears
    asking for confirmation. The requester lists the name of the device
    about to be formatted, or the name of the volume on this device if
    available, as well as the capacity of the device, and its current
    percentage of use.

    After selecting "Format" in the above requester, two things may
    happen. If the device being formatted is smaller than 3M in size, the
    formatting begins immediately. If the device is larger, then another
    different confirmation requester appears. Clicking "Format" on this
    requester will actually start the formatting. The reason for this
    second requester is for added protection against formatting your hard
    drive.

    During the formatting process, a fuel gauge is displayed showing
    the progress of the formatting. A "Stop" gadget is also present to let
    you abort the operation.

    Once the formatting complete, a message saying "Initializing disk..." is
    displayed for a few seconds, and the window closes.

  - Now brings up a list of available devices when the Format icon is
    double-clicked without having a disk selected. This allows us to format
    disks that don't show up on Workbench such as unformatted CrossDOS disks.

  - When on a partition with > 100 cylinders, the fuel gauge and cylinder
    counts are now only updated every 10 cylinders. Partitions with more than
    1000 cylimders are only updated every 50. Makes HD formatting much faster

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

System/InitPrinter

  - Got smaller

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

System/NoFastMem

  - Got smaller

  - Now patches AllocVec()

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

Tools/Calculator

  - Localized

  - Got smaller

  - Now is font-sensitive

  - Now uses gadtools.library instead of custom 3D look

  - No longer uses console.device for number input and output, which also
    means it no longer adds an unnamed console message port to the public port
    list

  - Now uses the Amiga character set's multiply and divide symbols to
    represent these operations instead of * and /

  - Added more keyboard shortcuts for gadgets. The following are supported:
      0..9                for the number gadgets
      +                   for addition
      -                   for substraction
      *, x, X or ALT-X    for multiplication (exact keystrokes depend on keymap)
      / or SHIFT-ALT-X    for division (exact keystrokes depend on keymap)
      = or RETURN/ENTER   for result
      .                   for the decimal point (also depends on locale)
      s or S or ALT-Z     for unary minus (the +/-) (S for Sign)
      BACKSPACE		  to delete the last char entered (like the <- key)
      DEL or A            to clear all (CA key)
      E                   to clear the entry (CE key)
      CTRL-C or ESC       to quit

  - Added menus to the program, including an Edit menu which lets you
    cut and copy the current number to the clipboard, as well as paste
    numbers into the calculator. In fact, you can paste more than numbers!
    That is, if the clipboard contains "1+2+3+4=" and you paste this in
    the calculator, the expression is evaluated and the result is displayed

  - Added a Calculator Tape window to display data as it is being processed

  - Added the PUBSCREEN command-line option or tooltype entry that lets a
    public screen name be specified

  - Added the TAPE command-line option or tooltype entry that lets you
    specify the name of the console to open when opening the Calculator
    Tape window

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

Tools/Commodities/AutoPoint

  - Localized

  - Much smaller

  - Consumes much less CPU time when its just sitting waiting in the input
    stream

  - Uses ReadArgs() to parse command-line options. Template is:

      CX_PRIORITY/N/K

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

Tools/Commodities/Blanker

  - Localized

  - Smaller

  - Consumes much less CPU time when its just sitting waiting in the input
    stream

  - Does optional splines and color cycling

  - Uses ReadArgs() to parse command-line options. Template is:

      CX_PRIORITY/N/K,CX_POPKEY/K,CX_POPUP/K,SECONDS/N/K,CYCLECOLORS/K,
      ANIMATION/K:

    SECONDS takes the number of seconds before blanking. CYCLECOLORS
    takes "YES" or "NO" to set color cycling. ANIMATION takes "YES"
    or "NO" to do splines or not.

  - Tooltypes exist that match the command-line template

  - Sends its blanking screen to the front of all screens whenever the blanking
    interval expires. This guarantees the screen is blank even if some
    applications open some screens by themselves.

  - Now calls Wait() if the user asked for no animation and no color cycling,
    instead of doing an almost-busy-loop

  - Correctly closes the blanking screen when asked to quit while the screen
    is blanked.

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

Tools/Commodities/ClickToFront

  - Localized

  - Much smaller

  - Consumes much less CPU time when its just sitting waiting in the input
    stream

  - Uses ReadArgs() to parse command-line options. Template is:

      CX_PRIORITY/N/K,QUALIFIER/K

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

Tools/Commodities/Exchange

  - Localized

  - Much smaller

  - Has a new more easily understood and more standard interface

  - Uses ReadArgs() to parse command-line options. Template is:

      CX_PRIORITY/N/K,CX_POPKEY/K,CX_POPUP/K

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

Tools/Commodities/FKey

  - Localized

  - Much smaller

  - Has much greater functionality:

    FKey used to let you assign strings to function keys. This new
    FKey lets you assign any of 8 commands to any key sequence you
    can enter.

    The "Defined Keys" scrolling list shows all currently defined key
    sequences.

    The "New Key" and "Delete Key" gadgets lets you add and remove key
    sequences.

    The "Command" cycle gadget lets you pick a command for the current key
    sequence. The possible commands are:

        Cycle Windows
        This does like the IHelp CYCLE function

        Cycle Screens
        This does like the IHelp CYCLESCREEN function

        Enlarge Window
        This does like the IHelp MAKEBIG function

        Shrink Window
        This does like the IHelp MAKESMALL function

        Toggle Window Size
        This does like the IHelp ZIPWINDOW function, except it also
        works on windows that only have a zip gadget and don't have
        sizing gadgets

        Insert Text
        Whenever the key sequence is entered the specified string will be
        inserted instead. The string to insert is specified in the
        "Command Parameters" gadget.

        Run Program
        Lets you run a program by hitting any key sequence. The program name
        and its arguments are specified in the "Command Parameters" gadget.

        Run ARexx Script
        Lets you run an ARexx script by hitting any key sequence. The script
        name and its arguments are specified in the "Command Parameters"
        gadget. Putting quotes around the script name makes it into an
        ARexx string file.

    The "Command Parameters" text gadget lets you specify arguments for
    three of the commands.

    For example, if you wish "alt f1" to start DPaint:

        - Add a new key sequence by selecting the "New Key" gadget.
        - Enter the key sequence in the string gadget as "alt f1"
        - Select the "Run Program" option in the Command cycle gadget
        - Enter "DPaint" in the "Command Parameters" string gadget.

    Given this new functinality, IHelp is now obsolete.

  - The "Project/Save Defined Keys" menu option causes the currently
    defined sequences to be saved in the FKey program icon. The format
    for the tooltypes thus produced are for example:

      <<alt f1>> RUN DPaint

    where << and >> and the angled double quotes, "RUN" is the command to
    perform, and "DPaint" is the argument to the command.

  - Uses ReadArgs() to parse command-line options. Template is:

      CX_PRIORITY/N/K,CX_POPKEY/K,CX_POPUP/K

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

Tools/Commodities/NoCapsLock

  - Localized

  - Much smaller

  - Uses ReadArgs() to parse command-line options. Template is:

      CX_PRIORITY/N/K

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

Tools/IconEdit

  - Localized

  - Added Undo Undo to match Pointer and WBPattern behavior

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

Tools/ShowConfig

  - Combined Config and ShowConfig for 68040 awareness, hopefully
    clean non-identication of unknown chip revs

  - Added checks for Zorro III extended size boards
    and seems to report their Zorro-II size correctly

  - Now reports the actual rev numbers of chips, and reports the
    sizes of large boards in a more human-understandable fashion
    (like 2 meg, etc.)

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

Utilities/Display

  - Localized

  - Any clipboard unit ILBM can now be displayable with filename -cN where
    N=clipboard unit number

  - Doesn't munge display when trying to display the initial planes of a >8
    plane image.

  - Notifies user if it had to delve into a complex file to find the ILBM.

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

Utilities/More

  - Localized

  - Fixed range check so More won't complain that character 0x9b is binary

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

Utilities/Say

  - Localized

  - Now has a real GUI with gadgets to set the speech attributes and enter
    the text to say

  - Now uses ReadArgs(). The template is:

      TEXT,FILE/K,-M=MALE/S,-F=FEMALE/S,-N=NATURAL/S,-R=ROBOTIC/S,
      -P=PITCH/N/K,-S=SPEED/N/K,PUBSCREEN/K

  - Tooltypes can now be specified:
      MALE  FEMALE  NATURAL  ROBOTIC  PITCH  SPEED  PUBSCREEN

  - The text input area can be cut from and pasted into.

  - Selecting project icons then selecting the Say icon will now
    "say" all files selected

  - The Say window is an AppWindow so text files can be dumped on it directly
    for speech.