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 lives - 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=) 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 Mount PIPE: FROM This will scan for a "PIPE:" entry in . 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 ILBMs. - 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 and 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 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 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 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 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: <> 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.