MACRO - 'mak-(,)ro adj: very large; also involving large quantities or being on a large scale. The above definition was taken from the Merriam-Webster Dictionary. As with many computer terms MACRO KEYS was a borrowed concept. A MACRO KEY, as defined in computer terminology, is a key that, when pressed, will expand to one or more key presses. Many programs use this technique as a short cut for entering commands or data into their application. For example, a communication program may allow you to set phone numbers onto different MACRO KEYs. This not only helps you remember the number, but also allows you to quickly input the number to make the call. ZING!Keys is much more sophisticated than our communication software example. MACRO KEYS used with ZING!Keys can be used by practically any program that requires input from the keyboard or mouse into a window on the screen. ZING!Keys provides several commands to program MACRO KEYS to perform very powerful, and/or tedious, tasks for you. INTUITION MACROS: ZING!Keys introduces a new type of MACRO which we are calling: INTUITION MACROs. A series of functions are provided to allow you to perform mouse and window operations from key presses. These functions can be trained to perform practically any kind of INTUITION operation. If you are a touch typist and dislike the frequent necessity of removing your hands from the keyboard to use the mouse, you'll love our INTUITION MACROs. Hot Keys Hot Key is a computer term that describes a key that can be used to start up another task. It is possible this term derived from the difficulty involved in providing such a key with operating systems that were otherwise non-multi-tasking. Sometimes it might work under such a system, sometimes not. Of course, on the AMIGA Hot Keys work very well. After all, the AMIGA was designed for multi-tasking! ZING!Keys provides an easy means to create and save your own Hot Keys. In addition, a special kind of Hot Key can be created that will prompt you in order to allow you to input parameters to the program you are starting. Commodities Exchange Commodities Exchange is the name of a software standard developed by Jim Mackraz for controlling the handling of all inputs to the AMIGA. Meridian Software, Inc. has been working with Mr. Mackraz to incorporate the standard within ZING!Keys. A new version of ZING!Keys will become available that incorporates Commodities Exchange in the future. This means you will be able to add Commodities Exchange functions written by yourself or other companies to the ZING!Keys package without increasing system overhead. At Meridian Software, Inc. we have a long time commitment towards supporting standards that benefit the AMIGA. Chapter 2 Getting Started with ZING!Key Making a Backup The first thing you should do is make a backup copy of the ZING!Keys disk. ZING!Keys has not been copy-protected in order to allow you to install these utilities on hard disks, RAM disks, split between floppy disks, or any combination. One way to make a backup of ZING!Keys is to use the standard WorkBench procedure. If you have two disk drives, simply put a disk in the second drive (WARNING: this disk will be overwritten, so make sure you have no important data on it). Make sure you WRITE-PROTECT your ZING!Keys disk at this point (using the tab on the disk). A new disk icon will appear on the WorkBench screen for the second disk. Point your mouse at the ZING!Keys disk icon and press & hold the left mouse button. Drag the ZING!Keys disk icon over the second disk icon (the disk you want to copy TO), and release the mouse button. Follow the instructions provided. The process is similar for one disk drive, except you will have to swap in and out the disks while copying (unless you have extra memory). You can also copy the various ZING!Keys files, as listed in the next section, as a form of backing up the software. Putting ZING!Keys on your own WorkBench Disk The ZING!Keys disk is a regular WorkBench V1.2 disk. The following files were taken out to provide room for the ZING!Keys utilities: Utilities/NotePad System/GraphicDump Utilities/Calculator System/IconEd SYS:Clock Demos (ALL) you may wish to simply transfer the ZING!Keys files to your own WorkBench disk. The ZING!Keys files, their location, and sizes are listed below: Filename Directory (File Sizes) Comments ZING!Keys SYS: 61344 Main program ZING!Keys.info SYS: 724 KeyEditor SYS: 51936 ZING!Keys Key Editor KeyEditor.info SYS: 836 KeyEditorIFF SYS:c 10878 Screen for Key Editor ZSaveIFF SYS:c 8368 Save screen to IFF ZPDump SYS:c 9724 Save Screen to Printer Initial.Keys SYS:s 3827 Default key File Examples.Keys SYS:s 3485 For Zing! owners only ZING!.Keys SYS:s 2222 Examples for Tutorial NOTE: KeyEditorIFF and Initial.Keys MUST be in the S: directory. You can move the other programs to different directories, but you will have to edit the Initial.Keys file to reflect any such changes. Once you have copied these files to your WorkBench disk you may want to modify your Startup-Sequence to bring ZING!Keys up automatically: Make sure the following are the last two lines in your Startup-Sequence: ZING!Keys EndCLI > NIL: The ZING!Keys program can also be started from the ICON provided. See Chapter 3 for more information. Your First Session with ZING!Keys If your AMIGA has not been turned on, or does not have KickStart V1.2 installed: power up, and install KickStart V1.2. Otherwise, reboot your AMIGA by holding down the CTRL key and pressing the two AMIGA keys on either side of the space bar. Place your backup copy of ZING!Keys (or your own WorkBench disk with ZING!Keys installed on it as described in the last section) in the default drive when prompted for the WorkBench disk. Wait until the familiar WorkBench icons are presented to you. ZING!Keys should be properly installed at this point. At this point there is no indication that the program is installed though. Continue to read to find out how to determine this. ZING!Keys is provided to you with a default arrangement of MACROs and Hot Keys. (See APPENDIX A for a table of the default key arrangement.) You can reassign any of the ZING!Keys functions to other keys if you prefer. However, this manual will assume you are using the default arrangement for simplifying instruction. The first key sequence you should press is the Hot Key for creating a new CLI window. Press and hold the Left-A, press the F2 key and release them. A new CLI window should appear on the WorkBench screen. If the CLI window does NOT appear, then you either pressed the wrong key sequence or ZING!Keys is not properly installed. Notice how much easier a CLI window can be opened. Normally you would have to find a window which contained the CLI icon and use the mouse to open the CLI window. You can hit this CLI Hot Key at almost any time, and the CLI window will appear. "Wow!" you say. But this is only the beginning! ZING!Keys Help Menu A very important key sequence to remember is the MACRO that brings up the ZING!Keys Help Menu. If you are using the default key file, you simply press the HELP_MENU function to activate the ZING!Keys Help Menu. Once the menu is activated, you simply use the normal procedure for selecting a menu choice. Now try pressing and holding the LEFT-ALT key, then press the HELP key and release. This key has the HELP_MENU function assigned to it. you should see the ZING!Keys Help Menu window at the top of the screen. Use the right mouse button to make the menu visible. Go the the INTUITION menu and select the Expand Window item. The CLI window you created in the last section should become as large as the screen permits. You can try experimenting with other MACROs at this point. However, if this type of utility is new to you, we recommend you read the next chapter first. NOTE: The Help Menu is not the preferred way for using MACROs. After all, this is a Keys program! You should take the time to learn the keyboard assignments for these functions. You will be able to perform operations much quicker from the keyboard than with the menu. CHAPTER 3 Using ZING!Keys We at Meridian Software, Inc. have made ZING!Keys as easy and safe to use as possible. Using the various MACRO and Hot Keys it is as simple as knowing what the various functions provided can do, and pressing the designated key. A special ZING!Keys Help Menu is available to assist you when you find it difficult to remember certain important MACRO key sequences. The default keyboard arrangement contains all of the important ZING!Keys system functions. By reading this manual and trying the examples you will find it is quite easy to create many more useful and powerful keys that you will use on a regular basis. As with any sophisticated utility software package there are some functions that can create an undesirable effect if used improperly. We have tried to build in safety factors (like the STOP function) to protect you from accidental mistakes. However, please be careful and follow the rules outlined in this manual to insure that you get the best out of this powerful package. APPENDIX B explains the notation and terminology of key sequences. You should read this section to make sure you are familiar with the notation and terms used throughout this manual. ZING!Keys Help Menu Remember, you can bring up the ZING!Keys Help Menu by selecting the HELP_MENU system function. The default key arrangement uses to bring up the Help Menu. Once the menu is activated, you simply use the normal method to select a menu item. When you have selected a desired system function from the menu, the menu will disappear and the function will be performed. you can simply close the window if you choose not to use a menu item. Definition of a Key Sequence and Qualifier To use a Hot Key or MACRO KEY you must first know what key (or keys) to press. There are certain qualifiers keys that allow you to press more than one key as if it was a single key. For example, SHIFT-a is a single key sequence. So is CTRL-a. SHIFT and CTRL are known as qualifiers. You can also use several qualifiers at once - e.g. SHIFT-CTRL-ALT-a. Here is a list of the ten available qualifiers: SHIFT (RIGHT and LEFT) CTRL ALT (RIGHT and LEFT) AMIGA (RIGHT and LEFT) MOUSE BUTTONS (RIGHT and LEFT) CAPS LOCK Notice that certain qualifiers have both right and left counterparts. ZING!Keys treats each of these keys as a unique key. This gives you many hundred more MACRO key positions. If you wish to be able to use either the LEFT or RIGHT qualifier for a MACRO then you MUST define both keys. You CAN cause one key to select the other as a valid MACRO. Methods of Starting and Removing ZING!Keys There are three main methods for starting ZING!Keys: 1) Use the StartKeys program from within your Startup-Sequence (as described in Putting ZING!Keys on your own WorkBench Disk.) 2) Enter StartKeys from a CLI window. 3) Use the ZING!Keys icon. You should not attempt to start ZING!Keys more than once. Having two versions of ZING!Keys will gain you nothing, and may actually degrade system performance. To close out the ZING!Keys program you use the Remove_ZING!Keys system function. You can either hit the key (normally ) or use the Help Menu to select this function. A requester will appear asking you if you are sure you want to Quit. Simply indicate YES if you want to remove ZING!Keys. You may need to remove ZING!Keys if you need more free memory, or want to use another Hot Key program. Loading and Saving a Key File You can load a new set of keys into the ZING!Keys program by invoking the LOAD_KEYS or MERGE_KEYS option. Or, you can enter the ZING!Keys Key Editor and load (or merge) the file there. These options require that a file exists which contains a list of the new keys (or arrangement) you wish to have while using the system. We have developed an easy-to-read pseudo-language for use in the key files. This will make it easy for you to edit and create powerful MACRO and Hot Key utilities. Key files allow you to load or save your preferred set of keys so they are readily available when you use ZING!Keys. In addition, you can set up different keyboard arrangements for use with CLI, and a completely different set up for use with your database and wordprocessing package. The LOAD_KEYS function permits you to replace the current setup with the one in the file specified. The MERGE_KEYS function allows you to add to the current setup with the keys in the file specified. Duplicated keys are overwritten with the MERGE_KEYS option. When you invoke one of these functions you will be prompted for a filename. Normally, key files should be stored in the S: directory. In addition, key files should have .KEYS appended to the name. Standards like this benefit everyone by making it easy to understand the expected process for working with such a flexible capability. The default key file for ZING!Keys is called INITIAL.KEYS and is located in the S: directory. This file is automatically read any time you start ZING!Keys. MACRO Types There are two main MACRO types in ZING!Keys: SYSTEM MACROs and USER MACROs. Another common type is the INTUITION MACRO, but this is really a subset of the SYSTEM MACRO. All ZING!Keys functions are SYSTEM MACROS. A SYSTEM MACRO can contain only one function. The function must be one of the functions listed in the Function Reference Guide. SYSTEM MACROs enable you to reach the special ZING!Keys functions while using the program. This means you don't have to use the Help Menu or the Key Editor to record these functions into USER MACROs. USER MACROs are defined by using the START_MACRO function (or through the Key Editor). A USER MACRO can contain any number of SYSTEM MACROS, HOT KEYS, SYSTEM INPUT MACROS, or other USER MACROS. USER MACROs provide the most flexibility. Using a Hot Key Hot Keys are straightforward to use and define. Basically, when you press a Hot Key an application program will be started as a new task (if possible). Special options are provided to allow you to perform memory checking, set priority, or get a parameter before starting the program. The parameter option allows you to be prompted before the program is started for a set of parameters to be passed to that program. For example, you may assign your editor to a Hot Key. However, you want to be able to specify what file you are editing before you enter it. The PARAMETER option will put a window on the screen which will allow you to enter the filename. Then the editor will be started with the specified filename as an argument. This is analogous to typing parameters in the CLI window. Defining a Hot Key To define a Hot Key you need to execute the DEFINE_HOT function or use the ZING!Keys Key Editor. When using DEFINE_HOT, you will first need to assign the key (or keys) for the Hot Key. Next, a Define Hot Key window will appear. You must specify which program will be started when the key is pressed. There are several other options for any given Hot Key. These options and their default settings are listed below: Option Default Comments WorkBench? YES Brings the WorkBench Screen forward first Setpriority? NO You can set the priority for running a task with this option. When set to NO, the default priority of 0 is used. Most users should leave this flag set to NO. Memory Check? NO Performs no memory checking. If YES, you must specify how much memory the program will require. ZING!Keys will not start the program if that amount of memory is not available. Some programs will not work properly if started without a memory check. Parameter? NO No Parameter will be required to start this program. If set to YES, a window will appear asking you to enter parameters. Run? YES If set to YES, the program will be started normally. This should only be set to NO under very special circumstances. Unless the task is truly multi-tasking, (NEWCLI and LOADWB are the only valid programs we know of) then you should NOT set this variable to NO! The wrong kind of program will disable the ZING!Keys MACROs until the program has been exited. The Define Hot Key Window makes it very easy to set these options. Use the first letter from each option to activate that gadget (e.g. P for Parameter). Or you can use the mouse. Using MACRO Keys There are two main types of MACROs: SYSTEM MACROs, and USER MACROs. SYSTEM MACROs perform the requested system function if possible. Certain system functions can only be used while defining USER MACROs (for example: RECORD_POINTER). USER MACROs can contain any other type of MACRO - including other USER MACROS! The typical USER MACRO will begin outputting the recorded inputs as if you typed the keys or used the mouse yourself. The window which is currently active will receive the key strokes outputted by such a MACRO. This means you can use the same MACRO in several different programs by just activating the desired program's window. When using USER MACROs you should remember a few important points. The program you are using may have an alternate purpose of a key which has a USER MACRO on it. Remember, you can use the SKIP function to ignore the next pressed MACRO to use the program's key, or you can SUSPEND all ZING!Keys MACROs (except RESUME), or you can use the CAPS LOCK toggle to cause the same effect as SUSPEND. You should also avoid using the keyboard when a MACRO is playing back its recorded data. Your inputs will only confuse the output. There are special MACROs that prompt you for input during the playback process. The use of delay functions can be very critical to your MACROs. If the desired program is not ready to accept data from the MACRO, and a delay is not in effect, the MACRO will still output the data. This means the data may be played back into the wrong window. USER MACROs can be used from within practically any program. You can save a great deal of time by preparing just a few simple MACROs. We've created the ability to record MACROs as flexible and easy as possible. Have fun! Using the STOP Key The STOP function is an important key to remember. If you want to stop the playback of a MACRO, or if you want to stop recording a MACRO, then the STOP function is what you need. You may create keys that call themselves (hence, an infinite loop). In order to keep them from running out of control, you will need the STOP function. The STOP function is available on the key when using the INITIAL.KEYS. You should remember this key. The Help Menu may be too slow to use during some conditions. Recording a USER MACRO Key You can define a USER MACRO KEY in two ways. You can define the MACRO at any point by using the START_MACRO, and END_MACRO functions. Or, you can use the ZING!Keys Key Editor. This section will concern itself primarily with USER MACROs. The ZING!Keys Key Editor is described in the last section of this chapter. Defining a USER MACRO is analogous to making a tape recording. You select the START_MACRO function (the equivalent of RECORD), select the key to record on (the equivalent of choosing the tape to use), begin inputting the data (start recording), and select the END_MACRO key when finished (the equivalent of stopping the recording). you can also interrupt the recording of data by using the STOP function. In our case, the selected key will not be saved at all (no data will have been recorded). Let's take a simple example of recording a simple USER MACRO. - Bring forward an active CLI window. - Select the START_MACRO function. The default key is , or you can use the Help Menu. - The Key Assignment window appears. You can CANCEL the operation at this point, or select a key to record on. (The only way to CANCEL from this window is to use the MOUSE and point at the CLOSEWINDOW or CANCEL gadgets.) Hold down the Left ALT key, press the = key, and release both. The Key Assignment window should disappear. - You are now recording data onto . Type into the CLI window: cd RAM: Enter a after the command. - Now enter the END_MACRO function. Use either the Help Menu or the Right-A and F3. - Now try using the recorded MACRO. Press . You should see the same command played back, only much faster and easier! Adding VARIABLEs ZING!Keys provides several important MACRO features that enable you to program flexible USER MACROs. One of the most important features here is the ability to prompt for different information when playing back a MACRO. This feature is known as the VARIABLE function. Let's record a simple MACRO using the VARIABLE function: - Make a CLI window active. - Select the START_MACRO function. - Select . - Enter the following into the CLI window (without the double quotes): "copy " Make sure you have the space after the command. - Select the VARIABLE function. Once selected, the only keys that ZING!Keys detects are the key or the STOP key. If you use the STOP key, the MACRO will not be recorded. - Press . This indicates the VARIABLE is completed. - Type the following (without the double quotes): "TO RAM:" - Press when finished. Ignore the error message from CLI. - Now select the END_MACRO function. Now to play back the recorded MACRO: - Press the key. - You will see the command copy typed out followed by a space. - Enter: S:Startup-Sequence Followed by a . The tells us the variable data has been entered. You should see the rest of the MACRO play back immediately. You can have several VARIABLES within a MACRO. Redefining a MACRO Key If you attempt to record a MACRO onto a key that already has a MACRO defined upon it, you will be asked if you want to REDEFINE the key or ABORT. If you choose to REDEFINE the key you will overwrite the old MACRO with the new one. Deleting a MACRO or Hot Key To DELETE a MACRO key while using ZING!Keys you have to take the following steps: - Select the START_MACRO. - Select the key sequence you wish to delete. - If that key has a MACRO defined upon it, you will be asked if you wish to REDEFINE or ABORT. - Select REDEFINE. - Select END_MACRO immediately. Any other key will be recorded (except STOP). - A requester will appear asking if you want to DELETE. - Select YES to DELETE this MACRO. You can also use the ZING!Keys Key Editor to delete any MACROs. Nested MACRO Definitions One of the most challenging capabilities to provide with ZING!Keys was the nested MACRO feature. Nesting is another computer term that means that a series of operations can be performed within one another. This technique can be quite complex. Hence, the term nesting was chosen. You may not be familiar with the concept of computer nesting. However, that should not prevent you from using this feature! Nesting is a difficult operation to understand. Try the example below, and the nested MACRO example in the Tutorial for a better understanding. Many aspects of this capability should be left to the advanced MACRO user. ZING!Keys allows you to record MACROs from within another recorded MACRO. In fact, you can have up to 16 nested levels within a single MACRO. The easiest way to explain this function is by example: - Make an active CLI window. - Select the START_MACRO function. - Select . - Type the following into the CLI window (ignore the double quotes): "copy " Make sure the space follows the word copy. - Enter another START_MACRO function. - Select . - Enter: S:Startup-Sequence Do NOT enter a at this point. Instead, enter an END_MACRO function. This finishes the nested part of the MACRO. - Enter the following (ignore the double quotes): " TO RAM:" Notice that two 1 second delays were added to give the AMIGA a chance to copy the file before continuing with another operation. Now enter the following: cd RAM: list Notice that we are using the nested MACRO within this same MACRO. - Select the END_MACRO function now. This completes the MACRO. The playback of this MACRO occurs something like this: 1>copy At this point, you are prompted to input data. Enter: S:INITIAL.KEYS When you've finished entering the name, select the END_MACRO function. You should see the following: 1>copy S:INITIAL.KEYS TO RAM: 1>list S:INITIAL.KEYS S:INITIAL.KEYS 4384 rwe- 12-Apr-876 04:23:33 Notice that you didn't have to enter the name the second time when it was played back by the rest of the MACRO. This is a simple example of what nesting can do for you. The nested MACRO is automatically overwritten each time the USER MACRO is performed. NOTE: You MUST have at least one recorded input between nested MACROs! The nested MACRO will not work properly without it. For example: ...You MUST put something between the key assignment and the next START_MACRO (FLASH_SCREEN is a good example). INTUITION MACRO Keys ZING!Keys provides a set of functions for controlling certain INTUITION operations through MACRO keys. When you select one of our INTUITION MACROs, ZING!Keys automatically generates the corresponding data that INTUITION would be expecting. You can essentially eliminate the need for using the mouse by using cleverly designed INTUITION MACROs. The CLOSEWINDOW function is a classic example of this. Let's try an example of a simple INTUITION function. - Make a small CLI window, and move it to the center of the screen. Make sure the window is activated. - Select the WINDOW_TO_TOP function. The window should immediately move to the top left corner of the screen. Here is a brief description of some of the INTUITION MACROs: CLOSEWINDOW Automatically CLICK the mouse over the upper left corner of the active window. CYCLE_FORWARD Bring the rearmost window to front and activate. CYCLE_BACKWARD Put the frontmost window to back and activate. EXPAND WINDOW Make the active window as large as possible. CONTRACT_WINDOW Make the active window as small as possible. The following INTUITION MACRO functions can only be used when recording into a USER MACRO: RECORD_POINTER Store the current pointer location. When played back, the pointer will move to that location automatically. RESIZE_WINDOW Store the current window size. When played back, the current active window will be resized to the recorded size (if possible). WARNING: You should avoid using too many INTUITION MACROs in rapid succession. Use the DELAY1 function between INTUITION MACROs occasionally when defining USER MACROs. Dragging Mouse MACRO Example This example will illustrate the use of INTUITION MACROs. The example chosen shows how to program a USER MACRO to drag an object from one location to another with the Pointer. - Make a small CLI window active in the middle of the screen. - Select the START MACRO function. - Press . This will be the key you are recording to. - Mover the pointer to the title bar (to the left of the DEPTH ARRANGERS) of the CLI window. - Select the WINDOW_POINTER function. To do this press and hold the Left ALT key (also called LALT) and then press F2. In our notation this is . This records the location of the pointer relative to the current active window. - Now select the LBUTTON_DOWN by pressing the F6 key while holding down the LALT - Now move the pointer to a new location (notice that the window follows the pointer). - Now select the RECORD_POINTER which is . This will be the new location that the mouse will move to in the screen. - Now select the LBUTTON_UP function by pressing . - Finally, select the END_MACRO function. To test this new USER MACRO, first make a small window active. Then press . You should see the window quickly move to the new location. Imagine the possibilities! Using the ZING!Keys Key Editor This program is a very friendly interface for editing and examining the available MACRO and Hot Keys in a specified .Keys file. To start the Key Editor you can use the icon, or start the program from CLI (the program name is KeyEditor). You can point at the KEY button to specify the desired key, and then select that key by pressing the key sequence, or by pointing at the desired keys on the screen with the mouse. If that key is defined, all available information is displayed. You can then begin editing the characteristics of the chosen key or delete it from the list. The beginning MACRO user should only use this program to DISPLAY MACROs. You MUST be thoroughly familiar with defining MACROs before using this program. The Key Editor Display The Key Editor is made up of the following parts: Part Purpose Save Button Save the currently displayed key. Abort Button Cancel the changes made to the current key. Key Button Activate the Key for changing to another key. If the current key has been changed, you will be prompted for other options. Key String This box displays the current key, or allows you to change keys. Up/Down arrows These gadgets allow you to cycle through the available items in the selected box. Type Button Activates the TYPE string. You can only use the Up/Down arrows to change the type. Definition Button Activate the Definition for changing the currently displayed key. Definition Box You can edit the string in the string gadget, input data from the keyboard, enter data from the keyboard on the screen (using the mouse), or use the menus. Status Box This box displays the total keys in the Key Editor memory, and the approximate memory used by these keys. Menus The Options menu provides you with the ability to load, save, and print Key Files. It also allows you to exit the Key Editor. The next two menus provide you with an easy way to input any of the system MACROs provided by ZING!Keys. The last menu allows you to perform operations on the selected key. Keyboard The displayed keyboard is a hybrid of the A1000, A500, and keyboards. The A500 and A2000 have five extra keys on the numeric keypad. You should not assign MACROs to these keys if you own an A1000. You simply won't be able to use those MACROs. You can point at the keyboard with the mouse to select keys. Key Editor Notation The Key Editor allows you to easily edit and modify existing MACROs as well as create new MACROs. A special notation was developed to make it easy to read the various definitions. The basics for the notation are described in APPENDIX A. Make sure you keep this APPENDIX handy while using the Key Editor until you feel you have learned the "language". Key Editor Notes Several major enhancements have been made to the KeyEditor. The original version of the program contained a picture of the Keyboard for selection of keys. We determined that this was redundant to the operation of the editor, and demanded too much of the system resources. Instead, an on screen help section is provided, and an interactive messaging system was added. Several options are provided that were not mentioned in the manual: COPY This option allows you to copy the currently displayed key definition (if saved) to a different key. You will be prompted: "Copy current to another key?". If you answer from the keyboard, or type in the key directly by activating the string gadget. Hit when finished. MOVE This option allows you to move the currently displayed key definition (if saved) to a different key. This option works the same as COPY except the current key is deleted after the copy. This is the easiest way to reassign a MACRO to another key. ABORT In addition to allowing you to ABORT saving the current key, this option allows you DELETE a key that has already been saved. In either case, you will be prompted before any action is taken. UP/DOWN ARROWS You can also use the UP/DOWN ARROWS on the keyboard when the KEY or TYPE definition buttons are selected. Holding down these keys is a useful way to move quickly through the list of keys. PRINT This new feature allows you to print out the definitions of all the keys currently in the Key Editor's memory. Each key is displayed on the screen as it's printing, and you can use STOP button to cancel printing. OPEN, MERGE NEW, SAVE These options allow you to manipulate key files within the Key Editor. Make sure you use the SAVE option to store your work to a file after editing. The MERGE works the same as the ZING!Keys MERGE_KEYS option which reads in additional keys (any duplicate keys will be overwritten). The OPEN option loads a new set of keys into the Key Editor memory (erasing the current memory). The NEW option simply erases the current Key Editor memory. IMPORTANT NOTES: * The file called KeyEditorIFF must be in the SYS:S directory before the Key Editor will operate. * You should SUSPEND ZING!Keys before entering the Key Editor. The Key Editor MACRO automatically does this for you. If you don't SUSPEND ZING!Keys you may become annoyed when you get extraneous characters typed into your definitions when you intended to have just the key sequence entered. Don't forget to RESUME afterwards! * The Key Editor allows you to enter key sequences into the definitions directly from the keyboard. For example, if you wanted to define a MACRO on you would simply select the KEY definition button (by entering a K on the keyboard, or by using the mouse), then enter the key sequence directly from the keyboard. Select to accept the definition. If you decide you want to change a key sequence, or definition, entered in this fashion, simply click the mouse in the lower half of the screen (this deactivates the gadget without saving the string), then enter a new key sequence from the keyboard. As an alternative, you can type in the key sequence using the same notation within the string gadget. * You can find a key that has already been defined by entering its key sequence into the KEY string, and pressing . If that key sequence already exists it will be displayed. * When entering a key's definition, you select the DEFINITION button. You can enter ZING!Keys SYSTEM MACROs by using the three menus provided. If extra data is required (as with RECORD_POINTER) you will be prompted automatically, and the definition will be automatically entered into the DEFINITION string. * Make sure you SAVE any changes you make to a key file before attempting to edit another key, or before saving the keys to a file. * The Key Editor requires about 120K Bytes of memory to operate. You should close out any other large programs before running the Key Editor if you are short on system memory. * The Key Editor is a great way to refine and add to MACROs that you have already recorded. You should also look at the .Key files provided in the SYS:S directory for some good examples. We encourage you to build fancy MACROs and distribute the .Keys file to other ZING!Keys owners. Chapter 4 History Commands This chapter describes the use of the HISTORY command capability provided within ZING!Keys. The functions provided enable you to recall previously entered commands, edit a line that you have just started to input with these functions. Many AMIGA owners have expressed a desire to have this type of capability. We believe that ZING!Keys provides the only method that truly allows you to output the commands as if you typed them yourself. The HISTORY capability is an option that you would normally wish to invoke only while in a CLI window. However, you can output the commands into other window types. You must activate the HISTORY capability by using the ACTIVATE_HISTORY function. A Start History Recording Window will appear asking you to enter the number of buffer lines. The default number of remembered lines is 10. You command lines won't be recorded until this function is activated. You must remember to deactivate the HISTORY function if you do not wish to record key inputs that are not applicable to your CLI. Otherwise all inputs will be recorded as if they were CLI commands. The ZING!Keys Movable Message window stays active to keep you aware that the HISTORY functions are available. When you deactivate the HISTORY capability, ZING!Keys keeps your buffer of command lines intact. When you re-activate the HISTORY function, you can still use the commands in the buffer. To retrieve commands you simply use the PREVIOUS_LINE and NEXT_LINE functions. The UP and DOWN ARROWS are used for these two commands by the default INITIAL.KEYS file. A History Editing window will appear allowing you to edit the command line chosen. The line is edited in a regular Intuition String Gadget. You must enter RETURN in the string gadget to send the command line back to the active window. If you select CANCEL in the window, you will return to recording inputs. See APPENDIX C for String Gadget editing instructions. Each History Line can contain a maximum of 256 characters. This is the same maximum for the number of characters that can be entered on a single line in CLI. Chapter 5 Saving Screens to the Printer or to IFF files These two programs enable you to save the currently displayed screen to the printer, or to a standard IFF picture file. You must assign these programs to Hot Keys in order to operate them properly. The Hot Key is pressed when you have the desired screen ready for saving. SAVING TO THE PRINTER After invoking the ZPDUMP program via Hot Key, the WorkBench screen will appear with a new window. This is the Save to Printer window. You have four options: Small About 1/3 the size of a full screen dump. Medium About 1/2 the size of a full screen dump. Large Full screen dump. Quit Do not save the chosen screen. Preferences must have the proper printer device installed, and the graphics settings must be correct. SAVING TO AN IFF FILE: After invoking the ZSAVEIFF program via Hot Key, the WorkBench screen will appear with a new window. This is the Save to IFF window. This version of ZSAVEIFF will save Hold and Modify (HAM) mode screens into a proper IFF file also. You have two options in the Save to IFF window: Enter a filename We highly recommend that you save the screen into the RAM: device first and then copy that file to a more permanent media. The saving process can be quite slow otherwise. Quit Do not save the chosen screen. Chapter 6 Tutorial This section is designed to give you an idea of the basic MACRO function capability. You are expected to use the original ZING!Keys disk, or a set up that is essentially the same. ZING!Keys must be started with the original default INITIAL.KEYS file loaded. Use the Hot Key to start a new CLI window. To do this, press and hold the Left A key, press the F2 key and release them. Make sure this window remains active during the tutorial. A Sample of SYSTEM MACROs ZING!Keys provides several system functions which can be used directly. The most important system function key to remember is the HELP_MENU function. Press the HELP key while holding Left ALT key down and release them. You should see a message appear at the top of the screen saying: ZING!Keys Help Menu. Use the Right Mouse Button to make the menu appear and point the mouse over each menu to see the items available. As a demonstration, try selecting the Window to Bottom menu item and release the button. The Help Menu will disappear, and the CLI window you created at the beginning should immediately move down to the bottom of the screen. You could have accomplished the same thing by pressing the F4 key while holding down the Left A key. You can record any number or combination of SYSTEM MACRO keys onto a USER MACRO key (the STOP function and the HELP_MENU function are the only two exceptions to this rule). Loading a Set of Example MACROs Let's try a sample of different kinds of MACROS. First, let's use the LOAD_KEYS system function to bring some example USER MACROs into memory. Press and hold the RIGHT-A key then press the F1 key and release. You should see a window prompting you for the key file name. Enter: S:EXAMPLES.KEYS followed by a . This should load in the several USER MACRO examples from the disk. You will now be able to perform the following examples. Date and Time MACRO Example Keep the CLI window active and visible. Remember, ZING!Keys directs the output of its MACRO keys to the window which is active. For a simple MACRO example you can press the RIGHT ALT key and hold it while pressing the 4 key (the one above the W key). You should see something like: 1>;CURRENT DATE IS 08-Apr-1987 1>;CURRENT TIME IS 03:12:03 Of course, the date and time may be different (I hope you weren't up at this hour!). This is an example of a simple USER MACRO which contains a couple of ZING!Keys system functions for entering the date and time, and some extra characters for comments. Variable MACRO Example Now lets try a more sophisticated example. Try holding down the RIGHT ALT key and press '3' (NOT the keypad '3'). You will see the following: 1>COPY The cursor will stop one space past the command COPY. A window called the ZING!Keys Movable Message Window will appear with a comment that you should enter data followed by a RETURN. Type in: s:Startup-Sequence You will see the following: 1> COPY s:Startup-Sequence TO RAM: 1> CD RAM: 1> This is an example of prompting for a VARIABLE within a MACRO. With one key press, and the addition of a file name you performed a copy and changed your location to the RAM: device. Do a LIST of the directory to verify that the file was copied. Hot Key with Prompt Example Press Left-shift and F5. This will bring up a window allowing you to pass a parameter to the program that will be started. In this case the program started will be Ed (the editor provided on the WorkBench disk). Enter a filename as an argument. For example, enter 'df0:s/Startup-Sequence' followed by . This will load this file into the editor. To exit, press ESC q. MACRO with Imbedded Hot Press the RIGHT ALT and the 5 key (not the keypad 5). This will press the Hot Key described in the last example, type in the name s:Startup-Sequence, and finish with a RETURN. With one keystroke you are ready to edit a file! Once again, press ESC q to exit Ed. Notice that this example is a USER MACRO containing a Hot Key followed by several recorded characters (the filename). MACRO with Nested MACRO Definition. The next MACRO will automatically prompt you to define a MACRO within itself. The new MACRO will be used subsequently by the original MACRO. You should probably read the section in Chapter 3 titled NESTED MACRO DEFINITIONS if you want to try and understand the technical aspects of this example. This example will start the process of copying a file to RAM:, but first pause to allow you to enter the filename in (which will be defined as another MACRO). When you finish entering the name you will terminate with the END_MACRO function. Then the operation will resume by copying that file into RAM:, CD to RAM:, display the directory, and list the file you copied (using the nested MACRO). To start press the RIGHT ALT and the 1 key (not the keypad 1). You will see: 1>COPY At the cursor, type in a filename. For example: 1> COPY KEYS.README When you finish entering the name, enter the END_MACRO function by pressing Right - Amiga and the F3 key. You will subsequently see something like: 1> COPY KEYS.README TO RAM: 1> CD RAM: 1> DIR KEYS.README 1> LIST KEYS.README KEYS.README 9093 rwed Today 23:52:43 1> This is an excellent example of the power of ZING!Keys! Just for Fun This last preset example is a demonstration of multiple operations combined within a single MACRO. Press the RIGHT ALT and the 6 key (not KP6). You will witness a file called 'temp' edited in Ed, with a message typed into the file, the file saved, the file will be typed out, and the finally the file will be deleted. This demonstration is not only fun, it also indicates the incredible potential ZING!Keys offers. Recording your Own MACRO This example demonstrates how to record a MACRO while in CLI. To begin, press and hold the RIGHT SHIFT AND Right-Amiga keys, and then press the F3 key. This is the START_MACRO function. This brings up a window that requests that you enter the key that will be defined. Press LEFT ALT and 0 (not KP0). This will be the key that will be your new MACRO. Next, type in something. For example, type: 1>;This a test of a MACRO The semi-colon means this is a comment. Follow the phrase with a RETURN. Next you must hit the END_MACRO key, which is Right-Amiga and F3. Now try pressing your new MACRO key: LEFT ALT and '0'. You should see another copy of the above message appear in the CLI window. Function Reference Guide This section describes the system function available for use as supplied with ZING!Keys. Each function either presents an example of its use, or refers to other examples contained within the manual. Cross referencing with related documentation is also provided. Most of these functions can be recorded into USER MACROs. Unless the description specifically states that the function can NOT be recorded, you can assume the function is recordable. The function names are the same names that you should use in the ZING!Keys Key Editor. The only difference is that they must be enclosed in brackets. For example: . ACTIVATE_HISTORY This system function allows you to turn on the recording aspects of the HISTORY capability. See Chapter 4 for more information. When you enact this function, a window appears asking you for the number of lines for your buffer. This means you will be able to recall the specified number of lines using the PREVIOUS_LINE and NEXT_LINE functions. While the ACTIVATE_HISTORY is in effect, the ZING!Keys Movable Message Window will stay up. You should turn off the HISTORY function except when using a command interpreter (like CLI). You use the DEACTIVATE_HISTORY function for this purpose. See ALSO: Chapter 4, DEACTIVATE_HISTORY, PREVIOUS_LINE, NEXT_LINE. CLEAR_CONSOLE This system function simply outputs an to the active window. If the window is a console window (all CLI windows are console windows), then the screen will be erased. CLEAR_MACROS Clears all user-defined macros from the memory. The current system functions and Hot Key functions will remain. This option can be used to rid yourself of unnecessary USER MACROs in preparation to loading a different set of USER MACROs. SYSTEM MACROs and Hot Keys will NOT be cleared when this function is used. You can use the LOAD_KEYS function to clear all MACROs, then the specified file will be read in with all new MACROs. If you use SAVE_KEYS after using CLEAR_MACROs, you will be saving the system MACROs and Hot Keys only. This can be useful. See ALSO: LOAD_KEYS, SAVE_KEYS, MERGE_KEYS, SAVE_USER_KEYS, and CHAPTER 3. CLOSE_WINDOW This is an INTUITION MACRO function that will automatically attempt to find the CLOSEWINDOW gadget for the currently active window. the mouse pointer will move to the upper left corner of that window and CLICK the left mouse button. This is a very fast and easy way to close out windows! This function can be recorded within other USER MACROs. See ALSO Chapter 3 - INTUITION MACRO KEYS. CONTRACT_WINDOW This INTUITION MACRO takes the current active window (the one where the title bar is not ghosted), and attempts to make the window as small as possible. Even windows that do not have a sizing gadget can be sized with this function. This function is useful for getting windows out of the way so you can see behind them. See ALSO EXPAND_WINDOW, Chapter 3 - INTUITION MACRO Keys CYCLE_BACKWARD This INTUITION MACRO function allows you to put the frontmost window to the back of all windows and makes the new frontmost window active. This function used in combination with CYCLE_FORWARD can provide you with much more flexibility than was previously possible on the AMIGA. Example: While in the WorkBench environment, DOUBLE click on two or more disk icons. If you don't have two disk icons, insert another disk and click its icon after opening the first icon. Next, put one of the windows in front of the other. Try hitting the CYCLE_FORWARD or CYCLE_BACKWARD functions. You will need three or more windows to tell the difference between these two functions. See ALSO CYCLE_FORWARD, and Chapter 3 - INTUITION MACRO Keys CYCLE_FORWARD This INTUITION MACRO function allows you to cycle the rearmost window to the front and makes that window active. Using this key you can quickly examine all of the available windows in a screen and make the desired window active. See ALSO CYCLE_BACKWARD, and Chapter 3 - INTUITION MACRO Keys DEACTIVATE_HISTORY This system function allows you to turn off the recording aspects of the HISTORY function. You should always use this function when entering a program (e.g. an editor) which is not command line oriented. This will preserve your command line buffer until the next time you use the ACTIVATE_HISTORY function. See ALSO: Chapter 4, ACTIVATE_HISTORY, PREVIOUS_LINE, NEXT_LINE. DEFINE_HOT Allows you to define a new Hot Key. A window appears that allows you to set several options for the Hot Key. The section in Chapter 3 entitled "USING A HOT KEY" provides a great deal of information for this function. This function can NOT be recorded within USER MACROs, but a Hot Key can be recorded within a USER MACRO. See ALSO Chapter 3 - Using a Hot Key. DELAY1 This system function can only be used when recorded into a USER MACRO. During playback this function will cause a pause for one second. Multiple delays can be performed for a longer delay. However, you may want to use the USER_DELAY which allows you to specify a delay in seconds. DELAY functions are absolutely critical for use with USER MACROs. The USER MACRO may play back too fast for the programs to keep up with. Make sure you take this into account when defining MACROs. This MACRO can only be used when RECORDed into a USER MACRO. See ALSO USER_DELAY. DOUBLE_CLICK This INTUITION MACRO causes a DOUBLE CLICK of the Left Mouse Button to be issued to Intuition. You can use this function at any time, or record it into USER MACROs. See ALSO CLICK, Chapter 3 - INTUITION MACRO Keys END_MACRO This is a very important function that is required to end the definition of a MACRO key. Once the START_MACRO function has been performed, all inputs will be recorded until the END_MACRO has been executed. If you are using nested MACROs, using this function will reduce you to the next lower level within the nest. See ALSO START_MACRO, STOP, VARIABLE, Chapter 3 - Defining a USER MACRO Key, and Chapter 6 - Recording your own MACRO. EXPAND_WINDOW This INTUITION MACRO enables you to expand the current active window to the largest permissible size (usually the limits of the current screen). This function will work on some windows that do not even have a sizing gadget. Used in combination with the WINDOW_TO_TOP function, this function can enable you to make a window as big as the screen. See ALSO CONTRACT_WINDOW, WINDOW_TO_TOP, WINDOW_TO_BOTTOM, and Chapter 3 - INTUITION MACROs FLASH_SCREEN This function will perform a flash on the screen. You might want to use this function to indicate when a USER MACRO has completed its sequence of operations. HELP_MENU This system function installs the ZING!Keys Help Menu. This menu was provided to assist you when starting out with ZING!Keys. You are expected to eventually learn (or design) the keyboard arrangement for your system functions and select them instead. Once the Help Menu has been activated, you can use the mouse to select the various menu items. When an item has been selected, the window will be closed, then the system function will be processed as if you pressed the proper key. The default location for this MACRO is . See ALSO Chapter 3 - ZING!Keys Help Menu LBUTTON_DOWN This INTUITION MACRO causes the Left Mouse Button to be locked in the down position. This function is ideal for use with creating a dragging mouse MACRO. It can also be used within word processors to assist in using cut & paste operations. See ALSO LBUTTON_UP, RBUTTON_DOWN, RBUTTON_UP, and Chapter 3 - Dragging MOUSE MACRO Example LBUTTON_UP This INTUITION MACRO causes the Left Mouse Button to be released. This function is only useful when used after an LBUTTON_DOWN function is in effect. See ALSO LBUTTON_DOWN, RBUTTON_DOWN, RBUTTON_UP, and Chapter 3 - Dragging MOUSE MACRO Example LOAD_KEYS This function allows you to load a new key arrangement from a specified key file. A window appears which prompts you for the key file name. You must input the name or hit CANCEL to ignore the load request. If the name specified is not found you will have to try again. CAUTION: This function REPLACES the current keyboard arrangement with the arrangement in the key file. See ALSO CLEAR_MACROS, SAVE_KEYS, MERGE_KEYS, SAVE_USER_KEYS, and Chapter 3 - Loading and Saving a Key File MERGE_KEYS This function allows you to load a new key arrangement from a specified key file WITHOUT REPLACING THE CURRENT KEYS. HOWEVER, those keys in the specified file that are duplicates of keys that are already defined WILL BE REPLACED. When this function is selected, a window will appear prompting you for the key file name. You can use the CLEAR MACROs function before using this function to clear out all other USER MACROs. This function is ideal for reading in USER MACROs for different applications. See ALSO CLEAR_MACROS, SAVE_KEYS, MERGE_KEYS, SAVE_USER_KEYS, and Chapter 3 -Loading and Saving a Key File. NEXT_LINE This is HISTORY type system MACRO. When selected, if the HISTORY function has been activated, the next stored command line will be displayed in the History Editing window. You can edit this line, perform another NEXT_LINE, perform a PREVIOUS_LINE, or hit RETURN to output the displayed command line. The command line will be played back into the active window chosen before selecting the NEXT_LINE function. This function will NOT operate unless the HISTORY function has been activated with the ACTIVATE_HISTORY function. See ALSO: Chapter 4, DEACTIVATE_HISTORY, PREVIOUS_LINE, and ACTIVATE_HISTORY PREVIOUS_LINE This is a HISTORY type system MACRO. When selected, if the HISTORY function has been activated, the previously entered command line will be displayed in the History Editing window. You can edit this line, perform another PREVIOUS_LINE, perform a NEXT_LINE, or hit RETURN to output the displayed command line. This function is identical in operation to the NEXT_LINE except it goes through the buffer in reverse order. See ALSO: Chapter 4, DEACTIVATE_HISTORY, ACTIVATE_HISTORY, and NEXT_LINE. RBUTTON_DOWN This INTUITION MACRO function enables you to force the Right Mouse Button (RBUTTON) to appear held down. Normally this means a menu bar will be selected. In order to release the RBUTTON you can use the RBUTTON_UP function, or press the RBUTTON yourself. This function is operationally similar to the LBUTTON_DOWN function except it effects the RBUTTON instead. You can use this function in combination with the other INTUITION MACROs to actually select menu items without using the mouse! The RBUTTON_DOWN, RECORD_POINTER, and RBUTTON_UP would be recorded onto a USER MACRO to accomplish this. See ALSO: RBUTTON_UP, RECORD_POINTER, LBUTTON_DOWN, and Chapter 3 - INTUITION MACROs. RBUTTON_UP This INTUITION MACRO function enables you to release the Right Mouse Button (RBUTTON) which has been locked down with the RBUTTON_DOWN function. This function is only useful if the RBUTTON_DOWN function has been used. See ALSO: RBUTTON_DOWN, RECORD_POINTER, LBUTTON_DOWN, and Chapter 3 - INTUITION MACROs RECORD_POINTER This is a special INTUITION MACRO function. This function can only be used when recording into USER MACROs. The purpose of this function is to record the current location of the pointer into a USER MACRO. When the MACRO is played back, the pointer will be moved to the recorded location automatically. For example, start defining a USER MACRO (use the START_MACRO, and choose a key assignment), place the pointer in the bottom right corner of the screen, select the RECORD_POINTER function, and then stop recording by using END_MACRO. Now move the cursor to another location. Select the key we just recorded. You should see the pointer immediately move to the bottom right corner of the screen. You can use the WINDOW_POINTER to specify the pointer location within the current active window (no matter what the window's position is on the screen). This function can be used in with the other INTUITION MACROs to demonstrate products, or perform tedious mouse tasks. See ALSO: WINDOW_POINTER, RESIZE WINDOW, LBUTTON_DOWN, LBUTTON_UP, RBUTTON_DOWN, RBUTTON_UP, WINDOW_TO_TOP, WINDOW_TO_BOTTOM, and Chapter 3 - INTUITION MACROs. REMOVE ZING!Keys This system function provides you with the ability to totally remove the ZING!Keys task and all associated memory. You will have to restart ZING!Keys once this option is excercised. A requester will appear asking you if you are sure you want to Quit. Simply use the mouse to indicate YES (or press ). If you decide you do NOT want to Remove ZING!Keys use the mouse to indicate NO (or press ). See ALSO: Chapter 3 - Methods of starting and removing ZING!Keys. RESIZE_WINDOW This is a special INTUITION MACRO. This MACRO can only be used when recording into a USER MACRO. The purpose of this MACRO is to allow you to resize the current active window to a recorded size and location on the screen. To use this MACRO you must be recording a USER MACRO first. When you have a window set to the size and location that you would like to record (make sure that window is activated!), select the RESIZE_WINDOW function. When you play back that recorded USER MACRO the current active window will be resized and moved to the same location. NOTE: There are certain situations where the window you are resizing may be unable to attain the same sizes. See ALSO: RECORD_POINTER, and Chapter 3 - INTUITION MACROs. RESUME This system function allows ZING!Keys to resume recognizing keys that are defined as MACROs or Hot Keys. This function is only useful if the SUSPEND function has been put in effect. See SUSPEND for more information. See ALSO: SUSPEND. SAVE_KEYS When you use this system function all key functions and USER MACROs will be saved in the specified key file. A window will appear prompting you for the name of the key file where the keys will be saved. You can perform the same operation from within the Key Editor. The SAVE_USER_KEYS function allows you to save only USER_MACROs to a key file. SAVE_KEYS will save all MACROs and Hot Keys in memory to the key file specified. See ALSO: LOAD_KEYS, MERGE_KEYS, SAVE_USER_KEYS, and Chapter 3 - Loading and Saving a Key File. SAVE_USER_KEYS This system function enables you to save all USER MACROs currently stored in memory to a file. A window will appear prompting you for the name of the key file where the keys will be saved. This function can be used in combination with MERGE_KEYS to quickly change your available USER MACROs when going to different applications. For example, you may have a USER MACRO key file for CLI, and a different USER MACRO key file for use with your word processor. You would first use the CLEAR_MACROS function to erase the CLI USER MACROs, then use the MERGE_KEYS function to load the key file. See ALSO: LOAD_KEYS, MERGE_KEYS, CLEAR_MACROS, SAVE_KEYS, SAVE_USER_KEYS, and Chapter 3 - Loading and Saving a Key File. SCREEN_DIMMER This SYSTEM INPUT function enables you to specify the interval of time for the screen dimmer. The screen dimmer will make the screen blank (black) if you have not performed keyboard input for the amount of time specified. The screen dimmer defaults to 5 minutes. This means the screen will blank after 5 minutes if the keyboard is not used. To bring the regular screen back, simply press any key. The blank screen will go away. See ALSO: SCREEN_ON, SCREEN_OFF. SCREEN_OFF This option will create a 1 bit-plane blank screen that will appear in front of any work (or game?) you are doing. This is also useful for helping to prevent having an image burned into your screen when you leave your computer for long periods of time. A screen dimmer is also provided that will blank your screen out if no action is performed for a specified period of time. To bring the screen back you need to use the SCREEN_ON function. Make sure you know which key the SCREEN_ON function resides on. You can also use the screen cycling keys: and to see the original key. But, SCREEN_ON must be used to close out the blank screen. See ALSO: SCREEN_ON, SCREEN_DIMMER SCREEN_ON This system function is only useful if the SCREEN_OFF function has been used to blank out the screen. This function will close out the blank screen and enable you to see the hidden screen behind it. See ALSO: SCREEN_OFF, SCREEN_DIMMER SECURITY_LOCK This SYSTEM INPUT function enables you to lock out the keyboard until a password has been input. If you wish to leave your computer turned on, but you don't want anyone modifying your work, then this function can help. You must first enter the password you want to use. A window will appear allowing you to enter the password you desire. Make sure you remember the password. The password can have from 1-10 characters. Once the password has been entered, and followed by a RETURN, then the keyboard will be locked out. To unlock the keyboard, you must successfully type the password followed by a RETURN. You can make as many attempts as you like. The only other way to unlock the keyboard is to reboot the system. If you take your disks away with you, then no one can interfere with your work. Example: Select the SECURITY_LOCK function, enter THANKS as a password followed by RETURN. At this point the keyboard should be locked out. Try hitting several keys to test it out. To unlock the keyboard type THANKS followed by a RETURN. If you did this properly, the keyboard should unlock. SINGLE_CLICK This INTUITION MACRO will issue a single CLICK of the Left Mouse Button (LBUTTON) to INTUITION. This function can be used along with the other INTUITION MACROs to design USER MACROs that select gadgets. See ALSO: Chapter 3 - INTUITION MACROs, SCREEN_OFF, RECORD_POINTER, LBUTTON_DOWN, LBUTTON_UP. SKIP This function allows you to press a defined MACRO or Hot Key without letting ZING!Keys know about it. When this function is selected, the next key sequence will be ignored by ZING!Keys. Example: Let's assume you have a MACRO defined on the F1 key. Let's further assume you have entered a word processor that used the F1 key to save the file. In order to use the word processor's F1 key you would first hit the SKIP function, then hit F1. If you hit the F1 key again you will get the MACRO instead. See ALSO: SUSPEND, and RESUME. START_MACRO This function allows you to begin defining a USER MACRO. You will first be prompted for which key (or key sequence) assignment you wish to make. This is the key that will be used to play back the recorded USER MACRO. Subsequent inputs will be recorded until the END_MACRO function is detected. See END_MACRO. Use caution when defining MACROs. You can create infinite loops, or cause a situation where the wrong files are manipulated, or fill up the memory with bad data, etc. Remember the STOP function in these situations! MACROs that call themselves can be an important tool. For example, you may wish to demonstrate a program. When the end of the play back loop approaches, simply have the key call itself and the demonstration can start over. In order to stop the play back of such a MACRO you must use the STOP function or reboot the system. If you use START_MACRO, make a new key assignment, and immediately use the END_MACRO function or the STOP function, then the key will not be defined. If a MACRO already existed on the assigned key, a requester will appear allowing you to ABORT or REDEFINE the key. If you choose the REDEFINE function, and then immediately hit the END_MACRO function, another requester will appear allowing you to DELETE the MACRO. See Chapter 3 - Using MACRO Keys for more detailed information. See ALSO: END_MACRO, Chapter 6 - Recording your Own MACRO, and STOP. STOP This is a very important safety key. If you wish to stop defining a MACRO use this function. You can also use STOP to cancel the play back of a currently running MACRO. You can also use the STOP function when a VARIABLE function has been invoked. This will cancel the play back of that USER MACRO. The STOP function can not be recorded onto a USER MACRO. To delete the key assignment for the STOP function, you must use the ZING!Keys Key Editor. See ALSO: VARIABLE, START_MACRO, Chapter 6 - Recording your own MACRO, and Chapter 3 - Using MACRO Keys. SUSPEND This function enables you to suspend the use of all defined ZING!Keys until the RESUME function is detected. This means that all other keys will react normally (as if the MACROs and Hot Keys were not installed). It is important that you remember what key RESUME is assigned to when enabling the SUSPEND function. See ALSO: RESUME and SKIP. SYS_DATE This system function outputs the current system date (using the AMIGA Date command syntax) to the currently active window. See Chapter 6 - Date and Time Example for more information. See ALSO: SYS_TIME SYS_TIME This system function outputs the current system time (using the AMIGA Date command syntax) to the currently active window. See Chapter 6 - Date and Time Example for more information. See ALSO: SYS_DATE. USER_DELAY This SYSTEM INPUT function enables you to record a delay of a specified number of seconds. This function must be recorded onto a USER MACRO to be invoked. Delays are very important when playing back MACROs. This function enables you to specify a variable length delay. This is preferable to using several DELAY1 functions. See ALSO: DELAY1 VARIABLE This system function allows you to record a MACRO that will prompt you for input before continuing to output the rest of the MACRO. You must terminate your input with a RETURN before the MACRO will continue. Besides the RETURN key, the STOP function is the only other function that will be recognized by ZING!Keys when a VARIABLE is played back. If you use the STOP function, the play back will not continue. See ALSO: STOP, Chapter 3 - Adding Variables, and Chapter 6 - Variable Example. WINDOW_POINTER This INTUITION MACRO function allows you to record the position to move the pointer to within the currently active window. When playing the USER MACRO back, that has used this function to record the location, the pointer will move to the corresponding location within the active window. The location of the window on the screen is automatically taken into account. This function is extremely useful for recording the location of window specific gadgets. When used in combination with the SINGLE_CLICK or DOUBLE_CLICK functions you can eliminate many annoying mouse operations. See ALSO: RECORD_POINTER, RESIZE_WINDOW, SINGLE_CLICK, DOUBLE_CLICK, Chapter 3 - INTUITION MACROS, etc. WINDOW_TO_BOTTOM This INTUITION MACRO function causes the currently active window to move to the bottom left corner of the current screen. This function is useful in moving a window away from title bars, or exposing the WorkBench icons. See ALSO: WINDOW_TO_TOP, EXPAND_WINDOW, CONTRACT_WINDOW, and Chapter 3 - INTUITION MACROs. WINDOW_TO_TOP This INTUITION MACRO function causes the currently active window to move to the top left corner of the current screen. This function is useful for making a window as large as the screen when used in combination with the EXPAND_WINDOW function. See ALSO: WINDOW_TO_BOTTOM, EXPAND_WINDOW, CONTRACT_WINDOW, and Chapter 3 - INTUITION MACROs. Appendix A Key Sequence Notation and Terminology A Key Sequence is defined as a single key pressed with zero to ten qualifiers. Read the section in Chapter 3 entitled "Definition of a Key Sequence and Qualifiers" for more information. In order to simplify the display of a Key Sequence we have developed a special notation. For one thing, we have developed a short hand notation for certain keys. See the Key Definition Table below or a listing. Next, we have developed a format for the display of a key sequence (including its qualifiers): - A single Key Sequence is enclosed in brackets - . The format for a Key Sequence in general is a follows: <[[qualifier] [qualifier]...[qualifier]]X> Any number of qualifiers, from zero to ten, can be placed first (separated by spaces). Thus, the qualifiers (enclosed in brackets) are optional. The X can be replaced by any valid non-qualifier key. Only one non-qualifier key can be present in a key sequence, but one non-qualifier MUST be present. NOTE: the A500 and A2000 have 5 extra keys that are not on the A1000. See the key code table below. VALID KEY SEQUENCE EXAMPLES: This is Right Shift, Right Alt, Key Pad 0. INVALID KEY SEQUENCE EXAMPLES: No non-qualifier key present. Qualifier appears AFTER non-qualifier key. Two non-qualifier keys are present. VALID QUALIFIERS: KEY DEFINITION TABLE: This table lists the short hand notation for keys which don't output their own definition. For example, CTRL does not print on the screen. However, the a key outputs an a. Keys like the a key are not included in this table. When in doubt, use the unshifted label on the key as the key code. SHORT HAND DEFINITION ESC ESC F1 thru F10 F1 thru F10 KP0 thru KP9 KEY PAD 0 THRU KEY PAD 9 DEL DEL BACK BACKSPACE TAB TAB CTRL CTRL CAPS CAPS LOCK RETURN RETURN UP UP ARROW LEFT LEFT ARROW RIGHT RIGHT ARROW DOWN DOWN ARROW LSHIFT LEFT SHIFT RSHIFT RIGHT SHIFT KP- KEY PAD - KP. KEY PAD . KP( KEY PAD ( A500 and A2000 ONLY! KP) KEY PAD ) A500 and A2000 ONLY! KP/ KEY PAD / A500 and A2000 ONLY! KP* KEY PAD * A500 and A2000 ONLY! KP+ KEY PAD + A500 and A2000 ONLY! ENTER ENTER LALT LEFT ALT RALT RIGHT ALT LA LEFT AMIGA RA RIGHT AMIGA SPACE SPACE BAR HELP HELP Appendix B Hint, Tips, and Advanced Information ZING!Keys is so flexible that we discovered several planned features were a by-product of the rest of the program. This section starts off with some ideas for useful applications, and continues with many tips and warnings to everyone from the beginner to advanced MACRO users. * You can create a talking MACRO by simply creating a Hot Key with a SAY command (from the CLI command list). You can use these Hot Keys along with other USER MACROs to provide aural feedback to an operation. * You can create your own HELP files for any application by assigning a Hot Key that calls a display program (e.g. NotePad) and loads the required HELP text. You can put several display functions on the HELP key itself by using different combinations of the qualifiers (e.g. LALT, LALT SHIFT, LALT CTRL, etc.). * The INTUITION MACROs along with the USER MACROs enable you to put together MACROs that can demonstrate a software package. You will have to use appropriate USER-DELAYs, and begin creating the required MACROs. But, once finished, you can let your AMIGA do the demonstrating itself! * You can use the VARIABLE function as an appropriate pause when putting on a demonstration. When a pause is required, use a USER MACRO to output a comment like: "PRESS RETURN TO CONTINUE". Next you would have a VARIABLE function enacted. A RETURN would be required to continue from this point. * The History function can be used to grab the current line from within other applications - even other Shell programs! SOME TIPS: * One useful tip is using the CAPS LOCK key to disable most ZING!Keys MACROs. We had wanted a special toggle key for turning off the MACROs when we stumbled on the CAPS LOCK key. It even has a light! The only catch is that you shouldn't record MACROs when the CAPS LOCK is on. The CAPS LOCK is interpreted as a valid qualifier. * The AMIGA already provides a means to cycle screens by using the Left A - M and Left A- N Key Sequences. * V1.2 of WorkBench also provides a means to select the left and right gadgets of an auto-requester. You can select the left or right gadgets by pressing Left A - V or Left A - B respectively. ZING!Keys requesters accept the same keys. * Do NOT make inputs while MACROs are in the process of playing back data. The only MACRO you should consider pressing is the STOP function. The STOP will cancel the playback immediately. * One useful thing to remember when designing fancy INTUITION MACROs is to use the RESIZE_WINDOW function to insure that a window is the expected size. * You can NOT play back USER MACROS when ZING!Keys windows requiring input are operating. Windows in this category are: Set Dimmer, Start History, Set User Delay, Key Assignment, Hot Key Parameters, Keyboard Lock, and Load/Save/Merge windows. * DELAY functions are absolutely critical for use with USER MACROs. The USER MACRO may play back too fast for the programs to keep up with. Make sure you take this into account when defining MACROs. * Some programs require an extra amount of stack. CLI provides the STACK command to allow you to change this. When you use ZING!Keys Hot Keys, the original stack is shared with the program being executed. You may wish to increase your stack size BEFORE starting ZING!Keys. * The INITIAL.KEYS file has the deletion protection flag set. This will prevent you from accidentally deleting this file without first clearing the protection flag. * If you attempt to build USER MACROs that output more than 512 characters at a single time, you must heed this tip! Put a USER MACRO, one that presses FLASH_SCREEN for example, between every 511 characters. There is a limit internally that will accept 512 contiguous characters at a time when in play back mode. Appendix C String Gadget Editing An INTUITION string gadget, as used in ZING!Keys, is indicated by a rectangular border surrounding an area where text can be input. The gadget is activated either by the program, or by placing the pointer within the border and clicking the left mouse button. When activated, the cursor is present inside the rectangular border. You can begin by typing in that position or move the cursor using the mouse or the right and left arrow keys. This permits you to accomplish fancy editing within the string gadget. A string gadget can contain more characters than are displayed inside the box at one time. If all characters are not visible, simply move the cursor in the appropriate direction to see more of the string buffer. Here is a list of the options within a string gadget: BACKSPACE Used to delete the previous character. DEL Used to delete the next character. RIGHT & LEFT ARROW KEYS These keys allow you to move the cursor right or left one character respectively. Using the SHIFT key in combination with an arrow key moves you to the respective edge of the string gadget's buffer. RIGHT-AMIGA X Erases the entire string buffer. RIGHT-AMIGA Q Reverts to the buffer as it was when the gadget was activated. This is called an UNDO option. ZING!Keys Addendum NEW NOTATIONS: The following SYSTEM MACROS have different notations, from those described in the manual, when used in the Key Editor. RECORD_POINTER - This function moves the pointer to the specified X and Y location relative to the top left corner of the current screen. Example: . The first number, 10, represents the number of dots from the left. The second number, 20, represents the number of dots from the top of the screen. WINDOW_POINTER - This function is the same as the one above except the locations are relative to the top left corner of the current active window. Example: . USER_DELAY - This function allows you to set a playback delay in tics (50 tics equals one second). Example: - This will cause a pause of about 2 seconds during playback. RESIZE_WINDOW - This function allows you to resize the currently active window to the specified dimensions. The dimensions are X Y W H, where X and Y represent the location of the top left corner of the window, and W and H represent the new Width and Height of the window respectively. Example: - The new window will be located 50 dots from the left of the screen, and 100 dots from the top. It will be 300 dots wide and 75 dots high. Miscellaneous ZING!Keys Notes * The screen dimmer will not detect mouse movements. We discovered that monitoring the mouse for this function demanded too much from the system resources. So, when your screen goes blank - simply hit any key on the keyboard (e.g. CTRL or SHIFT or ALT or SPACE). You can use the SCREEN_DIMMER function to set this option to 9999 minutes to effectively turn it off. * Programs that you assign to Hot Keys should not require the use of a CLI window. They must create their own windows or you will not be able to use them from a Hot Key. You can always create a MACRO that uses the Hot Key to open a new CLI window, and start such a program from there as an alternative. * Make sure you remember to use DEACTIVATE_HISTORY. If you go into other programs while this is activated, you inputs will still be recorded into the history buffer. When you use ACTIVATE_HISTORY again, your buffer is preserved. * Make sure you are careful when using NESTED MACROs! A warning will appear if you attempt to reassign the original key with a nested MACRO. This is called a recursive operation, and could cause unexpected results. * If ZING!Keys is already installed, and you attempt to re-install it, nothing will happen. If you are unsure whether ZING!Keys is still activated, try the RESUME key. The keys may have been SUSPENDed. * The movable message window keeps you informed about your current state within ZING!Keys when appropriate. This window refreshes every few seconds and attempts to stay visible at all times. You can change the refresh rate by using the USER_DELAY system function. This is a special case of the USER_DELAY option. you specify the number of seconds between refreshes. * When recording the LBUTTON_DOWN function, the LBUTTON_UP will be recorded but the button will not be released until you click the button physically. During playback the operation will work as it was recorded. The same problem occurs with the RBUTTON_DOWN and RBUTTON_UP functions. * When you are using the LBUTTON_DOWN function to drag something with the pointer, you should avoid outputting keys during the drag operation. Special notes for ZING! owners We have included a set of fancy MACROs for use with ZING!. If you own, or plan to own, ZING! you can use these MACROs to demonstrate the usefulness of both products. These MACROs are stored in the file SYS:S/ZING!.Keys. Simply use the MERGE_KEYS function to activate these MACROs. KEY Operation performed Edit file pointed at in the File System Window (FSW). Delete file pointed at in FSW. Fastest technique! Use the ASCII display option on file pointed at in FSW. Use the Hex display option on file pointed at in FSW. Change directory to DF1: Change directory to RAM: Change directory to DF0: Show memory briefly. Copy selected files to Ram: in one step. Display current assign symbols briefly. Prepare a disk for FORMATTING, using date a label. Compile, link, and run selected .C source file. Close out the ZING! FSW in one step. NOTE: You can use the Key Editor to customize these MACROs or add your own. * You should replace the ZSaveIFF and ZPDUMP programs on this disk with the ones provided with ZING!. These programs have been slightly enhanced. * You should NOT use the ZING! ZSTART program with ZING!Keys at the same time! the ZING!.Keys file provides the same Hot Keys in the following arrangement: Start ZING!, going into RAM: Start a NewCLI Save the current screen to an IFF file. Save the current screen to the printer. Set the screen dimmer interval. Start the ZING! Diskcopy function. Start the Task Monitor. Start the ZING! Format function.