QPAC 2 Tutorial 3 QPAC 2 Manual 8 QPAC 2 Files 8 The QPAC 2 programs Invoking QPAC 2 Programs by Hotkey Invoking QPAC 2 Programs by Command Buttons Making Buttons The Button Frame QPAC 2 Utility Program - Button_Pick QPAC 2 Utility Program - Button_Sleep 9 10 10 11 11 12 12 12 Sysdef Menu 13 QPAC 2 Menus 14 Things Menu 15 Exec Menu Wake Menu 15 15 Jobs Menu 16 Pick Menu Rjob Menu 17 17 Hotkeys Menu 18 Hotjobs Menu 18 Channels Menu Channels Warning Sub-Menu QJUMP Pointer Accessories 18 18 1 Files Menu Using the Files Menu Source Directory Destination Directory Directory Sub-Menu Commands Sub-Menu Print Sub-Menu Execute Sub-Menu Format Sub-Menu Sort Sub-Menu View Sub-menu File Action Sub-Menu Warning - File Already Exists File Error Sub-Menu 19 20 20 20 20 21 22 22 22 23 23 23 24 24 Parameters to QPAC 2 programs 25 Configuring QPAC 2 27 RAM Disk Driver and Printer Buffer 28 RAM Disks for Beginners RAM Disk Creation Heap Fragmentation RAM Disk Emulations RAM Disk Microdrive Imaging Printer Buffer QJUMP Pointer Accessories 28 28 29 29 29 29 2 QPAC 2 Tutorial If you are not fully familiar with the Extended Environment, some of the concepts used in this tutorial may seem rather strange. If you feel confused, you might find it easier if you read the introduction to the Extended Environment manual and go through the Extended Environment tutorial before returning to this tutorial. This tutorial is intended to be used in conjunction with the tutorial program on your QJUMP master disk. The QPAC2 tutorial introduces the facilities of QPAC2 firstly for users without a mouse, then it goes on to set up more complex working environments which are more suitable for mouse users. Put the disk in drive1 and press the reset button. When the Computer has finished initialising, press F1. The BOOT program will load the Extended Environment files into the resident procedure area, reduce the size of SuperBASIC's windows, and set mode 4. In reply to the question 'Do you want the QPAC 2 tutorial (Y or N)', press Y. The BOOT program will MERGE the 'Tutorial_QPAC2_bas' program. The SuperBASIC commands in the tutorial program are echoed to window #1, so you can see what is happening. Most of this tutorial makes extensive use of single keystroke menu selection and Hotkeys. Confusingly, the computer's keyboard is marked with upper case letters although when you press them, you get lower case letters unless you also press SHIFT. Mostly it makes no difference whether you use an upper case letter or a lower case letter. But, if the tutorial says 'press F' it is expecting a lower case 'f'. If an upper case 'F' is required the tutorial will say 'press SHIFT F'. The tutorial starts off by setting up Hotkeys to 'Wake' the three simplest QPAC 2 menus (Pick, Wake and Exec), sets up a Hotkey to CONTINUE the tutorial and starts the Hotkey Job. Now press ALT W, which will 'Wake' the Wake menu. Confused? You have just used the HOTKEY System2 to Wake a particular resident program. This creates a menu of all the resident programs (in the form of Executable Things) that have been loaded into your computer. From this menu you can now Wake any of these resident programs. Since the tutorial has only loaded QPAC2, this menu lists the resident programs of QPAC2. If, for example, you use the HOT_RES function to add any other resident programs, then the Wake menu will be automatically enlarged to accommodate these too. The items across the top of the menu are the standard Move, Resize, Wake and ESC items. For the moment you can ignore all of these. The rest of the menu lists the resident programs in alphabetic order. You can select the program you wish to wake either by pressing the initial letter of the name, or by pointing at the name. Sometimes there will be more than one name with the same initial letter, for example Hotjobs and Hotkeys. In this case, each time you press the letter, the pointer will move from one name to the next: try it. When you are pointing at the name of the program you wish to Wake, pressing the SPACE bar or left hand mouse button (HITting it) will Wake that program but leave the Wake menu on top. Whereas pressing the ENTER key or the right hand button (DOing it) will wake that program and remove the Wake menu. So, point to 'Hotkeys' and DO it. QJUMP Pointer Accessories 3 You now have a menu of all the Hotkeys that have been set up. So far this is not very many. In this menu, the items are selected by pressing the Hotkey character itself; this will do the Hotkey action directly. Alternatively, you can point to the Hotkey action and HIT or DO it. Since you can invoke these Hotkey actions directly from the keyboard, this may seem rather a useless menu. To be honest, it is. But as it is convenient to be able to list the Hotkeys that have been set up, it seemed reasonable to allow you to invoke them from the menu. Now press W (or point to the item 'w WAKE Wake' and HIT it with the SPACE bar or left mouse button). You will now have the Wake menu back. Point to 'Hotjobs' in the Wake menu and HIT it. The Hotjobs menu will appear, but will be covered up by the Wake menu. HIT the Hotjobs item again and the Hotjobs menu will appear on top again, but be covered up straight away. If you do this several times, you will still only have one copy of Hotjobs executing. The Wake menu, like Hotkeys set up using the HOT_WAKE function, will only create a new Job from an Executable Thing if there is no Job of the same name already executing. To show the similarity, press ALT W. As there is already a Wake Job executing, you do not get another Wake menu, the existing Wake menu just gets Woken. Now press ESC to get rid of the Wake menu. The Hotjobs menu is a reduced version of the Hotkeys menu which lists only those Hotkeys which will execute new Jobs (i.e. EXEC, WAKE or LOAD Hotkeys). It works in exactly the same way as the Hotkeys menu. Press ESC to get rid of it. Move the pointer into the Hotkeys menu and press ESC to get rid of that too. You should now have SuperBASIC in solitary state. Press ALT X to invoke the Exec menu. This differs from the Wake menu in two respects. Although the menu lists the same things (Executable Things), if you HIT or DO these menu items, the Exec menu will start a new Job regardless of whether there is a Job of that name already executing. For programs such as the QPAC2 Hotkeys menu, this is not very useful. For the programs such as the QPAC2 Files menu, it is useful to have more than one copy, each copy dedicated to a different operation. The second difference between the Exec and Wake menus is that from the Exec menu you can send a command string to a Job when it is set up. None of the QPAC2 menus accept normal command strings so you need a special program to demonstrate this. Press ALT C and the tutorial program will CONTINUE by creating a resident program WCMD. This is a simple Compiled SuperBASIC program which writes out the command string, and it is listed in window #2.Meanwhile, the Exec menu has been buried. Press ALT X and it will be Woken. Not only is the Exec menu picked to the top, but the menu is re-created - it now includes the WCMD program. Press F3, this will start a cursor flashing in the command string window. Type 'Hello Sailor' or some other meaningless comment and press ENTER. Now point to the WCMD menu item (or press W twice) and DO it. The WCMD Job will start and write out the comment, over and over again. Press ALT W to get the Wake menu back and, in turn, point to and HIT, the 'Hotjobs', 'Hotkeys' and 'Exec' menu items. If you do not have a mouse, select them using the initial letters. You now have four menus on the display as well as SuperBASIC and the WCMD program. If you press CTRL C several times, you will cycle through the Jobs, bringing each one to the top in turn. Alternatively, if you have a mouse or if the pointer is visible, you can point to a bit of a window that you can see and HIT it. This will Pick it.It is best to define a Hotkey to Pick or Wake each of the programs that you use frequently. There is, however, a menu which will pick any Job. This is the Pick menu. Unlike the Wake and EXEC menus which are lists of Executable Things, the Pick menu is a list of the Jobs that are executing. Press ALT P to Wake the Pick menu. QJUMP Pointer Accessories 4 In this menu, Jobs which do not have any windows (and cannot therefore be picked) are shown as unavailable. On this occasion, the only Job which cannot be picked is HOTKEY, the HOTKEY System2 Job. This Job lives very much in the background. As it is common to have many Job names starting with the same letter, QPAC2 adds a unique character in front of each Job name. This is the selection keystroke. Press the selection key for 'Hotkeys', or point to the Hotkeys Job name and HIT it. The Hotkeys menu is Picked and the Pick menu puts itself back on top. If you have several Jobs of the same name, you can pick them in turn. If you now press ESC, the pick menu will go away and the Hotkeys menu will be picked again. There are two other menus which are similar to the Pick menu. These are Rjob and Jobs. Rjob removes Jobs, and Jobs gives you more detailed information on the Jobs in the computer. Press ALT C and the tutorial will add Hotkeys to Wake these menus. (When SuperBASIC was Picked by ALT C, most of the other Jobs got buried. Press ALT P to get another Pick menu, press the selection key for the Hotkeys Job, which will Pick it. Now DO (with the ENTER key or right hand button) on the Hotkeys Job name in the Pick menu, and the Hotkeys menu will be Woken. There should now be two more Hotkeys in the list. Press ALT J to get the Jobs menu. Press the selection keystroke for one of the Jobs, and the Jobs status menu will appear. This menu is described in more detail in the manual. Press < or > to cycle through the Jobs. Press ALT R to get the Rjob menu. Press the selection keystroke for all the Jobs in the list except Hotkey and Rjob itself. Press ESC. Everything has now been cleaned up. If, by accident, you removed HOTKEY, type HOT_GO into the SuperBASIC command line. So much for the Simple menus. The Files menu is the single largest part of QPAC2. With the Files menu, you can examine, copy, backup and delete files. Press ALT C to continue. The tutorial sets up some more Hotkeys to Wake menus. These are ALT F for Files, ALT D for Delete, ALT O for Print (Output) and ALT S for Sysdef. There is also an ALT SHIFT F (uppercase F) to execute a new Files menu. Although Sysdef is not strictly part of the Files menu, it is useful to set some defaults for the files menu before you start. In particular, you need to set a suitable data default and a dummy output device to throw away any printed output. Press ALT S to invoke Sysdef. Press D and the data default menu will appear. Before you try using this menu, take note that if you DO (ENTER or the right button) an item in this menu, after the operation is done, the menu will go away. If you HIT an item, or press the selection keystroke, the operation will be done and you will stay in the menu. For the moment, it is better to HIT items, or use the selection keystrokes, and press ESC when you have finished. Looking from the top down, the menu has a Wake item, an ESC item to leave the menu, a list of filing system devices, a list of drive numbers, a default name, an item (<-) to shorten the default and a menu sub-window which can have a list of possible sub-directories. QJUMP Pointer Accessories 5 At the moment the default is FLP1_, press 2 and it changes to FLP2_. Press R and the default changes to ram2_. Press F then 1 to get back to flp1_. Press F2 and you can edit the name directly: go down one directory level by typing 'FRED_' and press ESC. Press < and FRED will be removed taking you up a level. Now press > to go down again. The pointer will move to the menu sub-window, and you will be offered a choice of directories. Press the selection keystroke for Tutorial. This is added to the end of the default name. If the default name is now flp1_tutorial_ press ESC. Otherwise press F2 and edit it until it is correct, press ESC to keep this name and ESC to leave the directory menu. If you have pressed ESC too many times, press ALT S to get Sysdef back. Now (within the Sysdef menu) press O for the Output device and edit the name to be SER1i. Press ESC and ESC to leave the Sysdef menu. You are now ready to tackle the Files menu. Press ALT F to invoke it. You should now have a list of the files in the Tutorial directory of the master disk. Press F3 for the commands menu, press S for statistics. The menu will be recreated giving file sizes and update dates. Some of the Files have an 'E' in front of the name. These are executable files. First we will re-sort the file list. Press F6. What no F6? Press SHIFT F1 instead. SHIFT F2 will get you F7 and so on. Now press T for Time and R for Reverse, then ESC. The files will now be listed with the most recently updated file first. Press F6, N, R and ESC to get back to normal Name order. Select the first five files by pressing their selection keystrokes (0 to 4). You can now look at these files. Press the ENTER key (or right hand button) and the commands menu will appear again - you have not yet specified a command. Ignore this menu and just press ENTER again. You now get the View menu for the first file. This is the SuperBASIC Extended Environment tutorial. Press space and it will scroll up one line. Press ENTER and it will scroll up by a page.If you press TABULATE the pointer will move to the scroll bar. You can move up and down through the file by holding the SPACE bar down and tapping the up and down cursor keys. Pressing CTRL F2 will Wake the menu, re-opening the file and re-reading it. Press > to move on to the next file. Executable files are not very readable. You can move backwards and forwards through the list of selected files using < and >. Press ESC to return to the main Files menu. Now copy these files to RAM disk. Press ENTER then C for Copy. You have not yet specified the destination, so a Destination Directory menu will appear. Press R for RAM disk and ESC (or ENTER). The Action menu will appear. You could change the 'To' filename, but just press Y to copy the first, N to skip the second and A to copy all the rest. All the files you copied have become available, the file you skipped is still selected. Note that the Copy operation has only been selected temporarily: the menu heading still says 'Files flp1_tutorial_'. Now set up to print the files from the RAM disk (to your dummy SER1I port). Ensure that there is nothing connected to the SERial port. Press F2 and then R to select the RAM disk; press ESC or ENTER to return to the Files menu. Press F3 and then P to set up to print. The Print sub-menu will appear, press D to dispose of each file after it is printed, and then ESC or ENTER. The heading line of the menu now says 'Print ram1_tutorial'. Press ESC and the menu will go to sleep. QJUMP Pointer Accessories 6 As a little diversion, set up a Delete menu. Press ALT F to get the Files menu, press F2 and R to select the RAM disk and press ESC or ENTER. Press F4 to select View then press F3 and D to set the menu to Delete. Because you have no files selected, nothing will be done. Press ESC to put it to sleep. You now have two sleeping menus.Now press ALT O to Wake the Print menu. Press F5 to select all files, and, pointing at one of the files, press ENTER. When the action menu appears press A for all files. If you had many files to print, then you could bury this Job and carry on doing something else. It does not try to print the executable files, you have Viewed them, so perhaps you can see why. Because you specified Dispose in the Print sub-menu, the files you printed have been deleted, and are not available. The others remain selected. Press ESC. Now press ALT D to wake up the Delete menu. There should only be two files left. Press 0 and 1 to select them, and press ENTER. Because you selected the View option, you get a hybrid of the View and Action menus, you can see what is in a file before you delete it. Press Y and Y to delete both files. Press ESC (or CTRL F1 if you prefer) to put the menu to sleep. QPAC 2 for Mouse Users If you do not have a mouse, then the rest of this tutorial will be a little difficult to follow. Press ALT C to CONTINUE. The Tutorial will set up the Button_Pick program on ALT . (that was a full stop not a spot) and the Button_Sleep program on ALT F1. It then creates sleeping 'buttons' for most of the programs on Wake Hotkeys. For the Files menu, however, it creates an execute button, which has a little Wake item at the side. As an extra, it creates a load and execute Hotkey for Quill. Press ALT P. the Pick menu is Woken. Note that the ESC item has become a Sleep item. Press ESC or CTRL F1 and the menu will go to sleep again. Now onto something more productive. Put a disk with Quill in drive 1 and press ALT Q. You will get a copy of Quill with 40 kilobytes of working space. It is time to change the mouse Hotkey. Press ALT S for Sysdef, press H for Hotkey and press the full stop (the Button_Pick Hotkey). Press ESC. You can now use the mouse to invoke the Button_Pick program. Type a little bit into Quill and then press both buttons on the mouse at the same time. Try to press the left hand button before the right hand button. All of the Jobs in the Button Frame will be picked. Move the pointer back over Quill and HIT it with the left hand button. Type a bit more, and then press ALT F1. Quill will join the rest of your buttons. To Wake a button, either use the appropriate Wake Hotkey, or point to the button and DO it. QJUMP Pointer Accessories 7 QPAC 2 Manual I make no apologies for leaving the descriptions of the most useful parts of QPAC 2 until last. If you have been through the QPAC 2 tutorial, you should understand enough about the QPAC 2 menus not to be in great need of more formal descriptions. I am therefore diving straight into the nitty gritty. QPAC 2 Files QPAC 2 is supplied on a number of files. This is not to make it difficult for you, but is because QPAC 2 is support software which needs to be added to your usual working environment. Much of this software is shared with other packages from Qjump or from other suppliers. It does need to be kept separate files. BOOT files BOOT BOOT_QPAC2 BOOT_simple BOOT_Psion BOOT_another includes the tutorials a sample QPAC 2 BOOT file a simple example BOOT file a Psion example BOOT file another example BOOT file Resident Extensions (which should be loaded in this order) PTR_GEN the Pointer Interface WMAN the Window Manager HOT_REXT Hotkey System 2 MENU_REXT Menu Extension QPAC2 all the QPAC2 programs and extensions RAMPRT QRAM RAM disk and printer buffer (optional) Executable Programs MENUCONFIG Configuration program Tutorial Software Tutorial_xxxxx QJUMP Pointer Accessories 8 The QPAC 2 programs All of the programs which form part of QPAC 2 can be accessed in three different ways. The programs may be invoked using the Hotkeys of HOTKEY System 2, they may be invoked by any program (including the 'EXEC' program included in QPAC 2) or they may be set up as 'Buttons' to be activated directly using a click on mouse button. Most of the programs in QPAC 2 are menus. In addition to these, there are two utility programs as well. In brief, the menus of QPAC 2 are: Sysdef Set system default directories and mouse parameters Things Exec Lists all Things linked into QDOS Executes 'Executable Things' including other parts of QPAC 2 Wake Button Wakes 'Executable Things' Puts any 'Executable Thing' onto a Button Pick Rjob Lists all Jobs Executing 'Picks' a job to the top of the pile of windows Removes Jobs Hotjobs Lists all defined Hotkeys Lists Hotkeys that will start Jobs Jobs Hotkeys Channels Gives information on the Channels in use Files View Copy Backup Update Move Print Execute Delete Format The main files maintenance program View the contents of files Copy files Backup files Update files Move files Print files Execute files Delete files Format disks Note that, unlike the other menus which are all directly accessible from Hotkeys, the menus which are subsidiary to the Files menu are only accessible through the Files menu. Button_Pick Button_Sleep picks all Buttons in the Button frame puts any Job to sleep as a Button QJUMP Pointer Accessories 9 Invoking QPAC 2 Programs by Hotkey The QPAC 2 programs are all Executable Things. Once the QPAC2 file has been loaded and CALLed, any of the programs can be invoked by a Hotkey set up by the HOT_THING or HOT_WAKE functions. With the exception of the Files menu, there is little point in having more than one copy of each menu at a time. It is best, therefore, to use the HOT_WAKE function to set up a Hotkey for most QPAC 2 menus. The HOT_WAKE function is described in the HOTKEY System 2 manual, but, to save you the trouble of looking, here it is again: hkerr = HOT_WAKE (key, name) or ERT HOT_WAKE (key, name) If you set up W as a Wake Hotkey for the Wake menu, pressing ALT and W will Wake the Wake menu, which can, in turn, wake any of the other menus. ERT HOT_WAKE ('w','Wake') The apostrophes or quotes around the parameters of the HOT_WAKE function are not always necessary, but they are useful to avoid confusion in the SuperBASIC interpreter. Similarly, the useful Pick and Sysdef menus can be set up on their own Hotkeys ALT P and ALT S. The Files menu is best set up on both Wake (ALT F) and Execute (ALT SHIFT F) Hotkeys. ERT HOT_WAKE ('p','Pick') ERT HOT_WAKE ('s','Sysdef') ERT HOT_WAKE ('f','Files') Wake Files on ALT F ERT HOT_THING ('F','Files') Execute Files on ALT SHIFT F The choice of Hotkeys is entirely your own, as is the decision whether to use them at all. You do not, of course, need to type these commands every time you BOOT your computer, you can add them to your BOOT file. If, at any time, you wish to remove the Hotkeys, just use the HOT_REMV function: this time you will have to refer to the HOTKEY System 2 manual. Invoking QPAC 2 Programs by Command You can invoke the programs using the SuperBASIC line interpreter: EXEP name EXEP 'Jobs' QJUMP Pointer Accessories execute the Jobs menu 10 Buttons Buttons are small windows which have only simple actions. There are two types of Button in QPAC 2. Some Buttons are like visible Hotkeys: you DO them and they do some action such as Waking or Executing a program. Other Buttons belong to Jobs which are sleeping. In both cases DOing the Button has the same effect as Waking the Button. The associated action is done or the sleeping Job is woken. A HIT on the Button is slightly different. If the Button is slotted into the Button Frame (see below) then nothing will happen. Otherwise a HITting the Button will allow you to move it. Making Buttons There are four procedures for making programs into Buttons. BT_SLEEP name, optional parameters BT_WAKE name, optional parameters BT_EXEC name, optional parameters BT_HOTKEY key or name, optional parameters In all cases the optional parameters are the same, so I shall start with BT_SLEEP. BT_SLEEP can only be used with QPAC 2 type Executable Things. It starts off the required program in a sleeping state. The full form of the call is: BT_SLEEP name, title, x origin, y origin, colourway BT_SLEEP 'Exec' set up Exec as a Button If any parameter is missing, and a later parameter is to be given, then you should not miss out any of the commas. The name is the name of the Executable Thing. The title is the name that will appear in the Button. If this is omitted, the Thing's normal name or symbol will be used. The x and y origins are the position of the top left hand corner of the Button (inside the border). If these are omitted or zero, the Button will be put into the 'Button Frame'. If they are negative, the Button will be placed at the current pointer position. The Button Frame can be set using the CONFIG program. The colourway is a number between 0 and 3. If omitted, the default will be used. 0 is white/green, 1 is black/red, 2 is white/red and 3 is black/green. The default Button colourway can be set using the CONFIG program. BT_SLEEP will execute the program, starting off in the sleeping state. The Job may be Woken using a Wake Hotkey, by pointing to the Button and pressing the right hand mouse button, or using the Pick or Wake menus. BT_WAKE Buttons look superficially similar, but BT_WAKE creates a Button which Wakes an Executable Thing. There are two main differences in effect. A BT_SLEEP Button will often be quicker to start up as you do not have to create a new Job each time it is used. But when a BT_SLEEP Job is woken, it leaves the Button Frame until it is put back to sleep. Because of this it can be more difficult to find a BT_SLEEP job than a BT_WAKE Button. The choice of using BT_SLEEP or BT_WAKE is one of personal preference. The decision is yours. BT_EXEC Buttons look slightly different. As well as the program name or title, they have a Wake symbol. If you DO on the program name, a new copy of the program will be started, even if there is one already. If you DO on the Wake item, you will Wake the program. QJUMP Pointer Accessories 11 BT_HOTKEY will set up a Button appropriate to the Hotkey type. If the Hotkey was set up by HOT_CHP, HOT_RES, HOT_LOAD or HOT_THING, then the Button will be the same as a BT_EXEC Button. Otherwise, the Button will look like BT_WAKE Button. You cannot put HOT_KEY Hotkeys into a Button: they would only send the HOT_KEY string to themselves, which is not very useful. The Button Frame The Button Frame is a Thing which organises Buttons into a regular arrangement and prevents Buttons from overlapping. The Frame need not fill the whole display, you can configure the size and position using the CONFIG program. If you are going to put any Buttons in fixed positions (using BT_SLEEP etc) then you should re-configure the Button Frame so that automatic allocations do not cover these fixed Buttons. QPAC 2 Utility Program - Button_Pick Button_Pick is a very transient program which Picks all the Buttons in the Button Frame. It will only pick those Jobs which have an allocation in the Button Frame and have a priority of one. When most of your buttons have become covered up by working programs, invoking Button_Pick will Pick them all back on top. If you define a Hotkey to execute Button_Pick and you configure QPAC 2 to set the mouse Hotkey to be the same, pressing both mouse buttons will Pick all the Buttons so that you can Wake any one you like with the right hand mouse button. QPAC 2 Utility Program - Button_Sleep Button_Sleep is a Program which puts any reasonably behaved Job to sleep. It locks the Job's windows, removes them from the display and creates a Button for the Job. When the Button is woken, the windows are restored and unlocked. QJUMP Pointer Accessories 12 Sysdef Menu You can use the Sysdef menu to set the system defaults, to make a directory on a version 2 device and to set the mouse parameters. The defaults are the Data Default Directory (where programs find their data files), the Program Default Directory (where SuperToolkit II and HOTKEY System 2 expect to find programs) and the Output or Destination Device (where printed output usually ends up). The Data and Program Defaults and the Make Directory are set by the Directory sub-menu (see below). Unfortunately, at present, the Output device name needs to be edited directly. The mouse and cursor key acceleration can be any value from 0 to 9 (9 is the fastest). The speed you need to move the mouse to wake the pointer should also be from 0 to 9 (0 is the slowest - the most sensitive). The mouse Hotkey (the Hotkey generated when you press both mouse buttons or the centre button) can be any character. In each case, you HIT, DO or select the item and press the required key: it must be a digit for the acceleration or wake up speed. If you HIT an item in the Sysdef menu, or select it using the selection key, you will stay in the Sysdef menu when you have set the item. If you DO one of these items, the menu will go away when you have set the item. Selection Keystrokes CF4 (CTRL F4) ESC DO (ENTER or RETURN) D P O M A W H QJUMP Pointer Accessories move window leave the menu leave the menu data default directory program default directory output device make directory mouse and cursor key acceleration mouse wake up speed mouse Hotkey 13 QPAC 2 Menus The other QPAC 2 main menus look and behave in a very similar way. I will describe the general characteristics. They have four loose menu items along the top with these selection keystrokes: CF4 (CTRL F4) CF3 (CTRL F3) CF2 (CTRL F2) CF1 (CTRL F1) ESC DO TABULATE move window resize window wake menu or put menu to sleep or escape from menu is ignored if there is no current item move pointer to menu sub-window or bar A menu which has been woken from a BT_SLEEP Button will have a Sleep symbol in the top right corner. In this case either CTRL F1 or ESC will put the Job back to sleep. If the menu has started full-sized, then there will be an ESC in the top right corner. In this case ESC will throw the menu away, but CTRL F1 will still put the menu to sleep. Each menu contains a list of items: files, Jobs, Channels, Hotkeys or Things. If there is room, they will be organised as a single column. If there are too many items to fit in a single column, and there is only room for a single column, then the menu is made scrollable. Otherwise the menu will be organised as multiple columns. When a menu is Woken, it will re-create the list of items. If there are now more files, Jobs, Channels, Hotkeys or Things, the menu may be expanded to take them. If you change the size of the menu, then that size becomes fixed. When the menu is woken, it will not be increased even if there are more items to fit in. In general, if you HIT an item in one of these standard QPAC 2 main menus, the operation will be done, but the menu will remain. If you DO an item in one of these menus the operation will be done and the menu will go away. QJUMP Pointer Accessories 14 Things Menu Things has a main menu and a status menu. The main menu lists all the Things linked into QDOS. When you press the selection key for a Thing in the menu, the pointer will move to the next Thing name which starts with that character. If you HIT or DO a Thing name in the menu, then you will get the status menu. If you HIT a Thing name in the main menu, the Things main menu will be re-created when you ESC from the status menu. If you DO a Thing name in the main menu, you will not return from the status menu. The Things status menu gives the status of one Thing. It has a sub-window with a list of the language Extensions in the Thing and a sub-window with a list of Jobs using the Thing. You can examine the status of the next Thing by pressing >, or the previous Thing by pressing <. Things status menu selection keystrokes < > E J examine previous Thing examine next Thing select Extensions sub-window select Jobs sub-window Exec Menu The Exec menu lists only Executable Things. If you HIT a Thing name in the menu, the Thing will be executed, and after a brief pause, the Exec menu will pick itself back on top. If you DO a Thing name, then the Exec menu will remove itself. In addition to the standard four loose menu items, there is an item to specify a command string to be passed to the program when it is executed. This command string is on the stack for assembly language programs, or in the CMD$ string in Liberated SuperBASIC programs. If you need a longer parameter string, make the window wider. Wake Menu The Wake menu is similar to the Exec menu, except that if there is already a Job with the same name as the Thing you wish to execute, then that Job will be Woken instead. As you cannot pass a command string to the Job that is being Woken, there is no command string option. QJUMP Pointer Accessories 15 Jobs Menu Jobs has a main menu and a status menu. The main menu lists all the Jobs executing. The Jobs are in approximate number order. At the left hand side of each item there will be a unique selection keystroke. For Job numbers 0 to 9, this will often be the same as the Job number, but do not rely on it. Where a Job is 'owned' by a previous Job in the List, this is indicated by '> ' in front of the name. Pressing the selection key for a Job in the menu will move the pointer to that Job name and HIT it. If you HIT or DO a Job name in the menu, then you will get the Jobs status menu. If you HIT a Job name in the main menu, the Jobs main menu will be re-created when you ESC from the status menu. If you DO a Job name in the main menu, you will not return from the status menu. The Jobs status menu gives the status of one Job. It has a sub-window with a list of the Channels owned by the Job and a sub-window with a list of Things used by the Job. In the second line of the menu there are items to Pick the Job or remove the Job, to set its priority lower or higher. Below this there is a map of the memory usage, and the total memory used by the Job. Each dot in the memory map represents 1/2048 of the RAM in your computer. The dots are arranged in columns of 8: each column represents 1/256 of the RAM. Free memory is shown as green dots (usually a mass in the middle). The memory used by this Job is shown in white. This is usually divided between the left hand side (in the Common Heap) and the right hand side (in the Transient Program area). Black areas are either unavailable, or used by other Jobs.At the left hand edge of the map is the screen memory, then come the system variables and tables. Next is the Common Heap. At the right, there is the Resident Procedure area, with the Transient Program area to the left, and SuperBASIC to the left of that. SuperBASIC and any permanent memory allocations in the Common Heap are all shown the SuperBASIC status menu. You can examine the status of the next Job by pressing >, or the previous Job by pressing <. Jobs status menu selection keystrokes < > P R L H E J QJUMP Pointer Accessories examine previous Job examine next Job Pick Job remove Job set lower priority set higher priority select Channels sub-window select Things sub-window 16 Pick Menu The Pick menu has the same list of Jobs as the Jobs menu, but some of the Jobs may not be available. This is because they do not have any windows to Pick. The Jobs are in approximate number order. At the left hand side of each item there will be a unique selection keystroke. For Job numbers 0 to 9, this will often be the same as the Job number, but do not rely on it. Where a Job is 'owned' by a previous Job in the List, this is indicated by '> ' in front of the name. Pressing the selection key for a Job in the menu will move the pointer to that Job name and HIT it. If you HIT a Job name in the menu, that Job will be Picked, and the Pick menu will pick itself back on top. If you DO a Job name, then that Job will be woken and Pick menu will remove itself. If you wish to Pick a Job without Waking it, HIT the Job name (or press the selection key) and then press ESC. If you wish to Wake a Job using the Keyboard, press the selection key and then ENTER. Rjob Menu The Rjob menu has the same list of Jobs as the Jobs menu, but SuperBASIC and Rjob will not be available. The Jobs are in approximate number order. At the left hand side of each item there will be a unique selection keystroke. For Job numbers 0 to 9, this will often be the same as the Job number, but do not rely on it. Where a Job is 'owned' by a previous Job in the List, this is indicated by '> ' in front of the name. Pressing the selection key for a Job in the menu will move the pointer to that Job name and HIT it. If you HIT a Job name in the menu, that Job will be removed together with any Jobs it owns. If you DO a Job name, then that Job will be removed and Rjob menu will remove itself. QJUMP Pointer Accessories 17 Hotkeys Menu The Hotkeys menu has a list of all but the default Hotkeys. The selection keystroke for each item is the same as the Hotkey itself. Note that if the Hotkey is lower case, then the selection keystroke must be lower case, if the Hotkey is upper case, then the selection keystroke must be upper case. Pressing the selection key for a Hotkey in the menu will move the pointer to that Hotkey item and HIT it. If you HIT a Hotkey in the menu, that Hotkey action will be invoked, but the Hotkeys menu will remain. If you DO a Hotkey in the menu, then the menu is removed before the Hotkey action is invoked. This makes it possible, for example, to stuff HOT_KEY strings into other Jobs with this menu. Hotjobs Menu The Hotjobs menu has a list of the Hotkeys which can start Jobs (Exec, Wake and Load Hotkeys). The selection keystroke for each item is the same as the Hotkey itself. Note that if the Hotkey is lower case, then the selection keystroke must be lower case, if the Hotkey is upper case, then the selection keystroke must be upper case. Pressing the selection key for a Hotkey in the menu will move the pointer to that Hotkey item and HIT it. If you HIT a Hotkey in the menu, that Hotkey action will be invoked, but the Hotjobs menu will remain. If you DO a Hotkey in the menu, then the menu is removed before the Hotkey action is invoked. Channels Menu Channels has a main menu and a warning sub-menu. The main menu lists all the Jobs which own Channels, together with the Channels they own. The Jobs are in Job number order. This menu allows you to see which Jobs are using which Channels. If you get an 'in use' problem when trying to open a file, you can find out which Job is using the Channel. You can close a Channel or remove its owner Job by HITting or DOing the Channel name in the menu. But first you will get the Channels warning menu. If you HIT the Channel name, the Channels main menu will be updated when you leave the warning sub-menu. If you DO on a Channel name, the Channels menu will remove itself when you leave the warning sub-menu. Channels Warning Sub-Menu The Channels warning sub-menu, gives you the choice of closing the Channel, removing the owner Job or ESCaping with these keystrokes. ESC DO (Enter, Return) C R QJUMP Pointer Accessories escape, no action if no current item, escape close Channel remove owner Job 18 Files Menu The Files menu is the entry to the major part of the facilities offered by QPAC 2.The Files main menu differs slightly from the standard QPAC 2 menus. The item in the top right hand corner is always Sleep. To remove the Files menu, you need to go via the Command sub-menu and Quit. The Title incorporates the files action (if any) and the source directory. It is unusual in that it is a loose menu item. To change the source directory, you change the title. The next row down has the main menu control items: 'Commands' to invoke the Commands sub-menu, 'View' to select or deselect the View option, 'All' to select or deselect all the files and 'Sort' to set the file sort criteria. Next comes the "<- directory up" item, which will bring you up a level in the directory tree (provided, you are not already at the root) and the "sXd" item, which will swap the source and destination directory (if defined). At the end of this row, there is the disk medium name and the amount of spare space on the disk. The files list itself has two forms: with or without the file statistics. The form is selected in the Commands sub-menu. With statistics, the file name is followed by the file length and update date. Whether the statistics are included or not, if the file has a recognised type, a character giving the type will be put in front of the file name. Type > E r -1 1 2 Meaning directory executable relocatable If you DO on a directory (marked >), you will get "into" this directory, i.e. go down a level in the directory tree. This is an easier way than going via the subdirectory (F2) menu. Usually, the first forty files will be selectable using a unique keystroke. These keystrokes are at the left hand side of each item. If you feel that they clutter up your menu, you can configure the QPAC2 file to turn them off. The main menu keystrokes are CF4 (CTRL F4) CF3 (CTRL F3) CF2 (CTRL F2) CF1 (CTRL F1) ESC F2 F3 F4 F5 F6 (SHIFT F1) TABULATE < X QJUMP Pointer Accessories move window resize window wake menu or put menu to sleep set source directory invoke Commands sub-menu select or deselect view option select or deselect all files invoke Sort sub-menu move pointer to menu sub-window or bar move up a directory level swap source and destination directory 19 Using the Files Menu The files menu can be used in three ways. If you neither select View, nor select an action from the command menu, then the menu is uncommitted. When you DO on a file name, you will get the Commands sub-menu which will allow you to select an action (or View if no action) which will be forgotten as soon as it is done. Using the Files menu this way, every time you wish to do something, you have to select the action. Secondly, you can select some files, press F3 and DO an action (e.g. Copy). This will perform the action requested and leave the menu set up to repeat the action. Thirdly, you can press F3 and HIT an action, or press the selection key for the action. This will set the menu up to perform the action when you DO a file name. To "uncommit" a commited Files menu, press F3 and then either ESC or move the pointer to an empty bit of menu and DO. Source Directory The Source directory is set by pressing F2 or HITting the Files title. As well as the directory itself, the source directory name can have a simple 'wildcard'. This is done by leaving a blank section in the directory name. flp1_progs_ flp1_progs__asm list all files in progs directory list files in progs directory with any name followed by _asm Destination Directory Copy and some of the other commands need you to specify a destination directory. If a destination directory is required, and you have not set one, then the Destination Directory sub-menu will be pulled down, with a suggested destination directory already set. There is no facility to change the destination directory, but, the current destination directory is unset if you change the source directory, or if you select a command (Copy, Move, Backup or Update) which requires a directory. Source and Destination directory can be swapped using the "sXd" icon. This will work only after a destination directory has been defined (i.e. after Copy, Move, Backup or Update). If the directory is changed directly or via the F2-Menu, the destination is forgotten. Directory Sub-Menu The Directory sub-menu is invoked to set both source and destination directories. It is also invoked from the Sysdef menu to set Data Default and Program Default directories. The second row of the menu has a list of filing system devices, and the drive numbers 1 to 8. Below this row, there is the current directory and a '<-' item. Below this there is a menu sub-window for suggested (sub-)directories. If you press F2 or hit the current directory item, you can edit the name directly. This will be necessary if you wish to add an 'extension' (e.g. _doc to list only _doc files) to the end of the file name. If you press ENTER when you have finished editing, you will exit from the menu. If you press ESC, up cursor or down cursor, you will stay in the menu when you have finished editing. If you HIT (or select using the first letter) a device name, this will be substituted for current device name. If you HIT (or press the digit) a drive number, this will be substituted for the drive number. QJUMP Pointer Accessories 20 For directories across the network, things are slightly different.If there is a network driver, 'N' appears in the list. If you HIT N, and the current directory starts with a network node number (e.g. N3_) then the network node number is removed. If you HIT N, and the current directory does not start with a network node number then the N1_ is added to the start, and the next digit you HIT will be the network node number. If you wish to move up a directory level, press < or HIT the <- item. If you wish to move down a directory, press > or HIT the menu sub-window. This will fill the sub-window with suggestions for sub-directories. Note that as digits 1 to 8 are used for selecting a drive number, these are not available for selecting sub-directories. There are two ways in which the Directory sub-menu creates a list of sub-directories. If the device has a version 2 device driver which supports hard directories, then this lists the directories at the current level. Otherwise, the Directory sub-menu makes a guess at what you might consider to be a directory. If there is a blank (wild) section in the current directory name, e.g. flp1_progs__asm to select all the _asm files in the flp1_progs_ directory, then all the operations to move up and down directories act on that part of the file name which is before the double underscore. Commands Sub-Menu The Commands sub-menu is used to select a files action, to select the files listing options and to Quit from the Files menu. There are eight actions. "Copy" is used to copy files from one directory to another. It also copies the file header and version number. "Backup" is like copy, but it will not copy a file if there is a more recent version of the file in the destination directory. To prevent multiple updating, it also copies the update date so that both files have the same version and update date. "Update" is like Backup, but it will only copy a file if there is a older version of the file in the destination directory. "Move" is like copy, but the original file is removed from the source directory. If the source and destination directories are on the same drive, the file will be renamed rather than copied. "Execute" executes executable files. "Print" sends files to an output device. It can also print the current file list. It will not print directories, executable or relocatable files. Beware of trying to print Quill documents, database files or TEXT87 files. Print can put a form feed at the end of the file, and it can dispose of the file after printing. "Delete" deletes files. Once they are gone, they are gone. "Format" formats disks. There are also two options which control the form of the File list and also the Quit item. "Statistics" adds the file statistics to the file name in the file list. "Tree" selects the expansion of the directory tree so that you can see all the files in all sub-directories. The tree option is cancelled if you move up a directory, as this can lead to very long delays in case you move to the root of a large harddisk. "Quit" removes the Files menu. QJUMP Pointer Accessories 21 Print Sub-Menu The Print sub-menu allows you to set up the Print parameters. You can print the contents of files that have been selected or you can print the complete list of file names (including the statistics, if selected). "To" selects the output device name. "List of Files" will print the list of file names, rather than the contents of the selected files. "Form Feed at End" puts a <FF> character at the end of each file or at the end of the list of file names. "Dispose of File" deletes each file after it is printed. Execute Sub-Menu Before executing a file, you will get the Execute sub-menu. This enables you to send a command string to the program before it starts executing, and also allows you to defend the system against various types of bad behaviour. OK F3 Psion Guardian Unlock Freeze execute it. to set a command string. if it is a Psion program. if it needs a Guardian window. if you really must do it. if all else fails. Unless you are sure that you know the effect of passing a command string to a program, do not press F3. Do not select the PSION option if you have already processed your Psion programs with Grabber. Do select the Freeze option if you are going to execute Solution or the Conqueror. Format Sub-Menu Press F to edit the medium name. When you have finished editing the medium name, press ENTER to format. Press ESC to give up. QJUMP Pointer Accessories 22 Sort Sub-Menu The Sort sub-menu is used to set up the criteria used to sort the File list. Apart from the ESC item, it has five items to select the file characteristic which is used in the sort, and two other items. "Name" is selected to sort into alphabetic file name order. "Time" is selected to sort according to the update date and time, the oldest files will be first. "Date" is selected to sort according to the update day (not time). "Length" is selected to sort into order of increasing file length. "Flag" is selected to sort according to the file type flag (-1 directory, 0 normal, 1 executable, 2 relocatable). "Reverse" is selected to reverse the order. "And" is selected to add another criterion. If you HIT And, then you can set a subsidiary Sort criterion. If two files are equivalent according to the first criterion, then the second criterion will determine the order. You can also have no sort criterion at all by leaving the menu without selecting anything. View Sub-menu The View sub-menu is used to look at the contents of a file. The top row has items to Wake (re-open and re-read the file), to go back to the previous selected file (<), to go on to the next selected file (>), and to ESCape. With the pointer in the view sub-window, HITting will scroll down through one line, DOing will scroll down through one page. File Action Sub-Menu This menu is your last chance to say no. This menu shows the file about to be actioned, the destination (if there is one) and four items to control the menu. The selection keystrokes are: N ESC Y A T TABULATE (No) do not action this file do no more actions (Yes) do action on this file (All) do action on all files selected (To) edit destination (Copy and Move only) select view sub-window There will be a View sub-window if the View item has been selected, or if the View Item has been DOne. If you HIT All in this menu, then the menu can be buried and it will carry on performing the actions until all have been done, or a problem occurs. Note that only files which can be actioned will appear in this menu. Backup, Update, Execute and Print are all selective in their choice of files. For those of you who wish to live a little more dangerously, you can configure the Files menu so that if you wish to, for example, Delete just one file, then the File Action Sub-Menu (Yes, No, All, ESC) will not be produced: the operation will just be done without further query. The File Action Sub-Menu will still be be produced if you select more than one file, or if you have the View option selected. If you wish to Copy or Move a file and change the name, you will need to select more than one file or select the View option. QJUMP Pointer Accessories 23 Warning - File Already Exists If you try to Copy or Move a file to a directory where there is already a file of the same name, you will get a Warning menu. This gives you three choices: ESC N DO Y A or (No) do not copy or move this file or (Yes) overwrite the old file with the new (All) overwrite the old file with the new, and likewise all other files until we return to the main menu File Error Sub-Menu If a file error occurs, you will get a small error message menu with two choices: ESC A DO R QJUMP Pointer Accessories or abandon the operation or retry the operation 24 Parameters to QPAC2 programs With Version 1.12 of QPAC 2 it is possible to pass parameters to the various menu programs. As the possibilities offered by parameter passing are very extensive, this may seem very complex. Do not worry, there is no need to do this, if you are in any doubt, please do not read the rest of this note. The form of the parameter strings is a "key" followed by a value (usually in the form of a string of characters. A key is a backslash followed by a letter, followed by the value. There may be spaces between the key and the value. The keys may be upper or lowercase. Standard Parameters \Z xpos,ypos Start off the menu asleep This key sets up the menu as a sleeping button. If a button position is given, this should be in pixel co-ordinates from the top left corner. If the position is not given, the button will be put into the Button Frame. \B value Button Colourway (value 0 to 3) This key specifies the button colour for a menu set up as a sleeping button. If you use \B, you do not need \Z unless you wish to specify a button position. \N characters Button Name This key specifies the name that will appear in the sleeping button. If you use \N, you do not need \Z unless you wish to specify a button position. \C value,value Colourways This key sets the main menu border and menu window colourways. Files Menu Parameters \M command key Menu (Copy, Move etc.) The command key should be the selection key for the particular command. This is usually the first letter of the command. If so, you may give the full command name (e.g. C or COPY). \O options Options (V=View, T=Tree, S=Statistics, Z=Sleep) The option letters should follow the key. If the Z option is given, then when you press ESC, the menu will go to sleep, otherwise the menu will remove itself. If you give any options, then you must give all the options you require as this overrides all defaults. \S +/- order Sort Order The sort order should be given as + or - and a single letter (N for Name, T for Time etc). The + sign is optional. \D name Directory This specifies the initial directory. If the name starts with an underscore, it is added to the end of the data default directory. QJUMP Pointer Accessories 25 Example parameters for a PRINT menu \M PRINT \D win1__lst \O STVZ \S N This will set up a Print menu, of all files ending with _lst, in all sub-directories (\\O T), showing the file length etc. (\\O S), viewing each file before printing (\\O V), ESC puts the menu to sleep and the files are sorted in name order. \M P \D _lst \O \S N This will set up a Print menu, of all files ending with _lst, in the current default (sub-)directory, without statistics and not viewing each file before printing, ESC removes the menu and the files are sorted in name order. Example parameters for an EXECUTE menu \M E \D flp1_ \S N This will set up an Execute menu for files on FLP1_, sorted in name order. The default options for Statistics etc will be used. Example parameters for a VIEW menu \C 1,1 \O V \S -T This will set up a (black and red) View menu, of files in the current default (sub-)directory, without statistics and sorted with the most recently updated file first. ESC removes the menu. QJUMP Pointer Accessories 26 Configuring QPAC 2 To configure QPAC2, you need to execute the MenuConfig program. The loading process for MenuConfig and how to use MenuConfig is described in a later section. If you are used to using MenuConfig, you can carry on reading this manual, otherwise we suggest you branch to the MenuConfig explanation and get it started first. QPAC 2 has four sets of configurable items: QPAC 2 colourways, Files menu options, mouse defaults and the Button Frame size. QPAC 2 colourways can be set independently for the main menu background, the menu sub-windows and the buttons. Files menu options can be set for the sort order, file statistics (on or off), file tree (on or off), single keystroke selection in the Files and Directory lists (on or off) and the sub-directory list in the Directory menu (on or off). Filenames in the subdirectory-menu can be converted to lowercase automatically (default), or the case can be left as it is. Directories can always go in front of the file list, come first unless the sort criterion is name (the only reasonable sort criterion for subdirectories, we believe) or not. The files menu can go to sleep after executing a file. Finally, EXECUTE can be speeded up by skipping the menu which asks for Psion, Guardian etc. It is not required in most cases anyway. You can pass a command string in the file-action submenu (Yes/No/All/Quit) which appears before this menu would appear, at the position where usually the destination filename appears when you copy or backup. Mouse defaults can be set for mouse and cursor key acceleration, mouse wake speed and the mouse Hotkey. The Button Frame size and position can be set. QJUMP Pointer Accessories 27 RAM Disk Driver and Printer Buffer For no good reason at all, except that some users might find it useful, we have included the old QRAM RAM disk driver and printer buffer. This is in the file RAMPRT which should be loaded (LRESPR) into the resident procedure area. This should not be used with SMSQ/E. RAM Disks for Beginners The term 'RAM disk' is a misnomer. It is used to denote a 'virtual' device (one that only exists in the fertile imagination of the QDOS) that looks and behaves like a very fast disk device. It is so fast because being virtual, there is virtually nothing to move to get information in and out. It is, in fact, no more than a reserved area of the computers's main memory (its RAM - Random Access Memory). This means, of course, that any space taken by a RAM disk is not available to programs executing in the computer. Furthermore, any data stored in a RAM disk will be lost when the computer is turned off or reset! RAM disks may be of any size, subject to there being enough memory. One way of using a RAM disk would be to copy all working files into the RAM disk; rename the RAM device to be MDV (to pretend that the data is really on the Microdrives); execute the programs (e.g. Quill, Archive etc.); and, at the end of the session, rename the RAM device to be RAM before copying the data files back to Microdrive. On the other hand, it is just as easy to use a RAM disk without changing the name. All the normal filing system commands work with RAM disks. FORMAT ram2_200 DIR ram1_ SAVE ram1_myprog OPEN_NEW #3,ram2_data COPY flp1_x TO ram1_x creates a new RAM disk 2, see below directory listing of RAM disk 1 save the current SuperBASIC program as 'myprog' in RAM disk 1 creates and opens a new file 'data' in RAM disk 2 copies file x from FLP 1 to RAM Disk 1 RAM Disk Creation A dynamic RAM Disk is created just by accessing it with any normal operation (e.g. DIR). This type of RAM Disk takes memory as required, and releases any memory as files are deleted or truncated. A fixed RAM disk is created by formatting it: the size, in sectors, is given in place of the usual medium name. This pre-allocates all the space that will be available in the RAM disk. Formatting a RAM disk will throw away all the files in that RAM disk. A RAM disk may be removed by giving either a null name or zero sectors. FORMAT ram1_80 set up an 80 sector (40 kilobytes) RAM disk FORMAT ram1_ FORMAT ram1_0 or clear out RAM disk 1 The RAM disk number should be between 1 and eight, inclusive, while the number of sectors (512 bytes) is only limited by the memory available. A RAM disk can be formatted from the FILES menu of QPAC2. QJUMP Pointer Accessories 28 Heap Fragmentation The primary storage mechanism in QDOS for permanent or semi- permanent memory allocations is a 'heap'. Allocating space in a heap, and then re-allocating this space as a different size, inevitably causes holes to be left within the heap. This reduces the amount of memory available to either SuperBASIC or executable programs. This RAM disk driver has precautions to reduce the possibility of heap fragmentation, but it is preferable to consider any fixed RAM disk to be a permanent feature until the computer is reset. Using a fixed RAM Disk not only reduces the danger of heap fragmentation, but also provides higher access speeds during file creation. Since it always occupies the maximum space you ever wish to use, it is much less flexible. QJUMP gives you the choice. RAM Disk Emulations The standard driver also includes a SuperBASIC procedure RAM_USE to change the name of the RAM disk driver. Any three letters may be used as a new device name, in particular 'ram' will reset the driver. RAM_USE flp RAM_USE 'flp' RAM_USE ram or sets the name of the RAM disk driver to 'flp' will reset the driver to its normal state RAM Disk Microdrive Imaging Microdrive imaging is a very fast method of loading files from a Microdrive cartridge. To produce a Microdrive image, a RAM Disk is formatted with the name of the Microdrive required. FORMAT ram1_mdv2 loads an image of mdv2 into RAM Disk 1 The RAM Disk can even load a Microdrive with a damaged directory. It cannot, however, load a Microdrive with a damaged map. The RAM Disk will try up to 3 times to read a faulty sector. If it fails, the number of good sectors returned from the format will be fewer than the total number. Any file with bad sectors will be marked with an '*' in the RAM Disk directory. Printer Buffer The Printer Buffer has two names: the 'usage' and the 'device'. The default usage name is PRT and the default device is SER. The printer buffer works by intercepting any OPEN call to a device whose name starts with its usage name. It substitutes the device name for the usage, and tries to open the device. If it succeeds, then all the output is buffered within the computer's main memory. If the device is in use, then the output is also buffered until the device is available. You can have many buffered output files open at one time. Using the default usage (PRT) and device (SER) all references to a device called PRT will use the serial driver SER. Any parameters appended to the PRT name will by transferred to the SER name: OPEN #3, prt COPY flp1_fred, prt2c QJUMP Pointer Accessories will open SER with a buffer will copy to SER2C with a buffer 29 The usage and device can be changed using the PRT_USE command. Two cases are particularly useful. In the first, the usage and device names are the same. This has the effect of introducing a buffer transparently into a device. In the second, the device name is of zero length. This means that the usage name may be followed by any device name. PRT_USE usage, device PRT_USE ser,ser PRT_USE b_,'' buffer all output to SER1 and SER2 b_ser1 is bffered SER1, b_par is buffered PAR etc. The current printed output may be thrown away by the PRT_ABT command which will ABORT the file with the message '******ABORTED******' on the printed output. QJUMP Pointer Accessories 30 QJUMP Pointer Accessories QPAC2 is a replacement for the system control parts of QRAM. Three years of user's comments on QRAM have given us a good idea of the type of changes and additional facilities that our users would like to see. Unfortunately, it has not given us any clear idea about how these changes could be implemented. So, we have started from scratch to produce a new product with as many of these additional facilities as seem practical. This means that QPAC2 is likely to have problems all of its own. QPAC 2 relies on the same combination of the Pointer Interface, the Window Manager and the HOTKEY System 2 as QTYP 2 and QPAC 1. We include a complete manual for this Extended Environment. The main difference between the QRAM menus and the QPAC2 menus is that the QPAC2 menus do much more in the way of hand holding than the QRAM menus. Although this makes their use much easier for the less practised or confident user, it does make using them a little bit more cumbersome. We have tried to offset this disadvantage by providing a number of short cuts. Because QPAC2 is completely new, there are certain to be a number of changes made in the early days. This manual should tell you all about QPAC2, but you may find that QPAC2 does not do some of the operations described, that it may do some operations in a slightly different way, and that it may do operations not described in the manual.To make life a little easier for users starting to use QPAC2, we have provided a number of tutorials. These tutorials cover all aspects of the Extended Environment used by QPAC2 and many other programs, as well as covering the use of QPAC2 itself. These tutorials require you to reset your computer before using them. This is not something we normally recommend, but it is the only way in which we can be sure that the tutorials will work in the way described.
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project