Many of these Features/Fixes assume that you are already familiar with certain MachIII functions, especially macros. You should update your copies of MachIII, SetMachW, and SetMachIII. No changes are needed to MachIII.Cfg. Please Note! The colors for SetMachW are set to the standard Workbench colors. You can change them from the "Miscellaneous" window by changing the "Pen" values. Also Note! You could copy macros from one configuration to another with SetMachIII. Please don't try this with SetMachW. This will be fixed in the next release. Also: Registered users in Germany, Austria and Switzerland will now receive a translated copy of the documentation. Many thanks to Hans Röcknagel. Some users with different keymaps should note that "Setmap map" must be run prior to running MachIII. Also, whenever a keymap is changed, MachIII must be run again. Update summary: 1. A macro named "blanker" will execute instead of screen blanking. 2. Macros titled the same as a configuration title will execute when the configuration changes. 3. \WA function fixed. 4. Maximum buffer size bug fixed. 5. You can set the path and name for SetMachIII. 6. Long string bug fixed. 7. Window activation by keystroke option added. 8. You can send IDCMP messages to windows. (such as menu selections.) 9. A macro finish (completion) feature added. 10. You can write protect and individually disable macros. You can also mark them as temporary and use mouse movements that are relative to a window's position. 11. \MSn and \MTn added to change the mouse speed. 12. Negative values allowed for Mouse Speed to slow down the mouse. 13. With Workbench 2.04, you do not need runback. Run >nil: MachIII will work fine. 14. Checking for the validity of IDCMP messages being sent to window. 15. Improved messages in clock display. Coming soon: MachIV and SetMachIV. These will run only under 2.x, but they won't be released until after the 2.x ROMs are generally available. The most signi- ficant changes will be to SetMachIV which will use the GadTools library and the asl.library. It will also have Commodities Exchange support and have some menus. MachIV may have text and graphic cutting and pasting (or printing). There will be a $5.00 upgrade charge to registered users. *********************************************************************** Features/Fixes for MachIII 3.2a 3-29-91 1. If you create a macro with the name "blanker", that macro will be executed after the blanking timeout instead of the screen blanking. You could use this to run an animation or any other program. The executed program will need to be terminated by you by whatever method it requires (close button, pressing ESC, whatever). The program TickerTape may be called from this "blanker" macro and will terminate when a key is pressed or the mouse is moved. An example of a macro using it is: \b\XTickerTape -fGoneToLunch.msg -s3 2. If you create a macro with a name that matches a configuration title, that macro will get executed when the configuration changes. For example, if in your configuration titled "AShell" you have a marco named "AShell", that macro will get executed when you change to that configuration. It does not execute when you change using a hotkey or SetMachW or SetMachIII. Using this, you could, for example, assign different Preferences files for different windows. 3. \WA did not activate a window until after the macro finished executing. Not terribly useful. If using it to activate a window and then bringing it to front for example, \WA\Wf would not work. It will now but you need a pause between them like this: \WA\PS.1\Wf 4. The maximum buffer size had two bugs. It would not save a five digit number, and buffers larger than 32767 would cause lockups. This was because string gadgets have a limitation of 32767 (the largest signed two byte number). 32,767 is now the largest macro size allowed. *********************************************************************** Features/Fixes for MachIII 3.2a 4-06-91 5. You can now specify the path and name for SetMachIII. To do this, you must edit the MachIII.Cfg file. Add the line "SetMachIII=path/filename" after the "Beep File Name=" entry. For example, SetMachIII=Utils:SetMachIII or SetMachIII=sys:system/SetMachIII or even SetMachIII=c:SetMachW The last example lets you replace SetMachIII with SetMachW. There is a 40 character maximum for path/filename. 6. Strings (such as \Xstring) longer than 79 characters would often crash. There is still a limit, but it is now 160 characters. This commonly occurred with: \XNewShell "Newcon:0/0/640/100/a real long title for the new shell was used" from s:newshell-startup *********************************************************************** Features/Fixes for MachIII 3.2b and SetMachW 4-21-91 7. A new window activation feature has been added. When turned on, the window under the mouse becomes the active window when a key is pressed. The only exceptions to this are if the currently active window or the window under the mouse has a requester up. This is to enable the Amiga-V and Amiga-B keys to work. Also, it does not activate if a string gadget is active. This feature can only be turned on/off from SetMachW in the "Mouse Features" section. Set "Key Activate" On or Off. 8. You can now send IDCMP type messages to windows. The basic macro command is "\I[TA] class,arg1,arg2,arg3". Class is a hexadecimal value representing the appropriate IDCMP message class. The three args depend on the class. If the class is RAWKEY (400): arg1 is the keycode (in hex). arg2 are the qualifiers (in hex). arg3 is ignored. If the class is GADGETUP (40) or GADGETDOWN (20): arg1 is the gadget ID number (in decimal). arg2 is ignored. arg3 is ignored. If the class is MENUPICK (100): arg1 is the menu number (in decimal). arg2 is the item number (in decimal). arg3 is the subitem number (in decimal). With any other class type, arg1 and arg2 are in hex and arg3 is ignored. If the command \IA is used, the message will go to the active window. If the command \ITwintitle\ is used, the message will go to the window with the title wintitle. Be sure to include the terminating \. As with configuration titles, the "$" may be used to match the program's name. Menus start at 0 on the left side, menu items and subitems start at 0 at the top. So, item 4 is really the 5th from the top of the menu. Some examples are needed: \IA200 Send a close window command to the active window. \IA40,5 Send a gadget up message for gadget with ID of 5. \IA400,25,0 Send the hex keycode 25 to the active window. \IA100,0,3,2 Send a menu selection from 1st menu, 4th item and 3rd subitem to the active window. \IT wp\100,1,4 Send a menu selection from the 2nd menu, 5th item to the window with the title " wp". \ITEd\400,45 Send an ESC key pressed to the window titled "Ed". The only really useful commands are 100 (MENUPICK), 200 (CLOSEWINDOW), 20 (GADGETDOWN) and 40 (GADGETUP). If there is not a subitem for the menuitem, you should use a subitem number of 31. No harm is done if you leave it out however, as MachIII will insert it for you. IMPORTANT: There are some windows with close gadgets that will not respond to the CLOSEWINDOW message. These windows do not have any IDCMP flags set so they can't receive messages. Two of these windows are the AmigaShell started from an icon and the output window from Workbench's "Execute Command" menu function. You can find out the gadget ID numbers by running the included program AllGadgets. First run your application then run allgadgets. Usage: AllGadgets wintitle Display all gadgets attached to the window titled wintitle. AllGadgets Display all gadgets on all windows on all screens. 9. There is now a macro finish function - "\f". MachIII will remember upto 11 printable characters. When you execute a \f macro, MachIII will search macro names for a match of characters remembered upto that point. If a match is found, the macro will be executed from that point. For example, suppose that you have a macro "Polyglot Software" with a name of "Polyglot". Also suppose that you have a "\f" macro attached to Left-Amiga-SpaceBar. Now if you type "Pol", "yglot Software" will be typed out. Note that the "Pol" in the macro is not sent as you have already typed it. The purpose of this function is to allow you to create macros of commonly used words and phrases, type a few letters and then have it completed for you. These examples assume that you have a "\f" macro attached to Left-Amiga-SpaceBar. You may use a key combination of your choice. If you have two macros like these: Macro name Macro ---------- ----- Canadian Canadian Exchange Rate Califor California And you type Can, adian Exchange Rate will be typed out. If you type Cal, ifornia will be typed out. If you type Ca, the 1st macro found that matches will be typed out. Macros are not limited to printable characters, but the macro will be indexed in by the same number of charactes that you typed. If you have a macro like this: Macro name Macro ---------- ----- Date: \Y The macro will try to start executing past the \Y. It won't, but nothing will happen. You should use: Macro name Macro ---------- ----- Date: Date: \Y Then type Da or Date or Date:. Macro name comparisons are case insensitive. "Amiga" and "amiga" will match. 10. There are now 8 flags associated with each macro. They are accessible from a gadget in SetMachW next to the "Help" gadget. With it you can set or clear specific attributes for each macro individually or you can use the "Set" and "Clr" gadgets to set or clear flags for all macros. Four of the flags are currently implemented. They are: W - Write protect. When set, you cannot record over the existing macro. If you attempt to, MachIII will beep and display the message "Write Protected" in the clock. D - Disabled. When set, this macro will not execute. The hotkey that is pressed will be passed through. T - Temporary. The macro's flags and name will be saved when you select "Save", but not the macro itself. R - Relative. Mouse recording and playback movements will be relative to the active window's left and top edges. Set flags for individual macros by first making the macro to be affected current. Then click on the desired flags. When the letter is highlighted, the flag is set. Set flags for all macros by setting the desired flags on any macro and then click on the "Set" gadget. Clear the flags by clicking on the "Clr" gadget. When you use the "T" flag, the key, qualifiers, name and flags are retained, but the macro body is not saved to disk. Clicking on "Delete Macro" will delete only the macro, not the other information. To free the key entirely, you must first clear the "T" flag. The "T" flag can only be set on existing macros. For new temporary macros you first need to create a macro and then set the flag. Create it by clicking on "Select Hotkey", pressing the desired key combination and entering at least one character for the macro. Set the "T" flag, and then delete the macro text, if desired. If you commonly use certain keys for recording temporary macros on the fly, mark these with the "T" flag and save your configuration. If there is no macro attached, the key will be passed through. It is very easy to set the "T" flag and then click on "S" (making all macros temporary). If you then try to "Save", a requester will make sure that this is what you want to do. If you save with the "T" flag set, you will lose the macro. Setting "D" for all macros is similar to executing a \O macro. The difference is that \O does not affect the "D" flags. Macros are saved the same way as before except that following the macro name ({name}) are the flags saved as a hex number inside []. Examples: Macro=\E{macro name}[80]macro body (Write protect flag set) Macro=\E{macro name}[20]macro body (Temporary flag set) 11. The flags can be toggled from within a macro with the macro \Vmacname\xx where macname is the name of the affected macro and xx is the hex representation of the flags to be toggled. You could use this to set a repeating macro to start at a specific time. For example, assume that you have these 2 macros: \a+5\Xecho >speak: "Go get some sleep!" \a2300\Xecho >speak: "Time to go to bed."\\Vbed_rep\40 Name the 1st macro "bed_rep" and set its "D" disabled flag. When it is 11:00 pm, the 1st macro will execute saying "Time to go to bed" and then toggling off the "D" flag on the macro named "bed_rep" enabling it to execute every 5 minutes. Note: If the \a2300 macro is executed first, the 2nd macro will also get executed immediately. *********************************************************************** Features/Fixes for MachIII 3.2c and SetMachW 6-30-91 1. SetMachW had a low memory read when a close gadget was hit. Fixed. (Thanks enforcer.) 2. SetMachW's last help page blanked the previous pages lines very slowly when run on a 3000. Fixed. 3. MachIII did not correctly display Fast memory when that amount exceeded 9999 Megs! Fixed. *********************************************************************** Features/Fixes for MachIII 3.2d and SetMachW 7-30-91 1. Added the macros \MSn and \MTn which set the mouse speed and threshold. 2. Clock does not now say "Executing Macro" just before it says "Select Hotkey" or "Recording Macro". 3. Changed "get macro name" function's window activation to activate the string gadget when window becomes active. Used to activate window and gadget whenever window became inactive. 4. Now checks for a menu before allowing "Mouse To Menu" to operate. 5. Minor modifcations made to "Check Waltz". 6. Clock will now show "A" for its 1st letter when qualifiers are accumulating and "X" when all macros are disabled. It used to show a vertical bar on the left and right side respectively (very hard to see). 7. Negative values are allowed for the mouse speed to decrease its speed. Useful in painting programs. 8. General code tightening and cleaning. 608020 only version available. *********************************************************************** Features/Fixes for MachIII 3.2e and SetMachW 8-11-91 1. Added checks for menu, gadget and closewindow messages that are sent to windows with \IA or \IT. (NextSelect in menuitems was not set to MENUNULL. Yikes!) 2. Improved messages in the clock. It now will report "Macro Not Found" if it could not find a named macro and "Macro Not Executed" if the window that was to receive IDCMP messages could not. That is, if it did not have the desired flag set in IDCMPFlags, the gadget id number did not match, or the menu number did not match or menus were not enabled. Illegal functions (like \Wx) will report "Illegal Function". A beep will also sound on error. 3. SetMachW underwent a significant change in preparation for SetMachIV. "ShowAll" is now the main window. Instead of opening a small SetMachW window and selecting "ShowAll", a full 640x200 window is opened that is almost identical to "ShowAll". 4. MachIII will now change configs when "1 Clicks" is selected for the "Click To Front" feature and SunMouse is off. *********************************************************************** Features/Fixes for MachIII 3.2f and SetMachW 8-29-91 1. Fixed a small bug in the auto-execution of macros when a configuration is changed. 2. Added an option to allow MachIII to speak the clock messages. This can be useful for those who don't use the clock. The Speak: device must be mounted. Turn on and off from the "Miscellaneous Features" window in SetMachW. *********************************************************************** Features/Fixes for MachIII 3.2f and SetMachW 9-09-91 1. Minor bug fix that sometimes displayed garbage in the clock when changing configurations. Bug was introduced 8-29-91, so not many users were affected. 2. This is not a fix, but a hint. While SetMachIV will have a menu bar, it is easy to simulate command key equivalents with macros. I use a macro like this to save configurations: \IT Configur\40,406 I attach this to Right-Amiga-S. It sends a GadgetUp message to the gadget in the window " Configurations" with an ID number of 406. Find out the gadget numbers with the program "AllGadgets". 10-01-91 1. A configuration titled "Workbench" or "Workbench Screen" will become active whenever a window on the Workbench screen is clicked in UNLESS that window title matches another configuration. *********************************************************************** Features/Fixes for MachIII 3.2g and SetMachW 11-02-91 1. To clarify: A config will become current when: (title refers to the config title) a. A title matches the window title up to the length of title. b. If no title matches the window title then the first title to match the screen title will become current. (Up to the length of title). c. If no match is found, the first config with no title will become current. If there are no "no title" configs, the config will not be changed. Also: d. If a match is made, one macro named the same as the title will be executed. This macro name must be at least as long as the title - it can be longer. If you need more than one macro to execute, that one macro can call other macros either by key or name. e. All title and name comparisons are case insensitive. " ProWrite 3.2 - © 1987" will match " prowri" and a macro named " prowrite" will execute when " prowr" becomes current. f. A title may be shorter than the window or screen titles. A macro name must be at least as long as the title.