Supplement to ADU Manual Revision 1.0 for ADU version 1.05 This supplement details all the changes made to ADU since version 1.02, on which the present manual is based. Information in the main manual should be assumed to be correct unless modified herein. ADU 1.05 has, in comparison to 1.02, eight more '*' commands ,four new command in *MENU and for new *MENU override routines. This supplement should be treated as a new manual, which will occasionally refer you back to the main manual for information which is unchanged between this supplement and the original manual. INDEX Subject Supplement Manual Outline of new features Introduction to ADFS & ADU Commands and Parameters *ADU *AQR *BACKUP *CATALL *CHANGE *DFSADFS *DIRALL *DIRCOPY *DIRDESTROY *DIRRENAME *DISCEDIT *DRIVE *FILEFIND *FORMAT *KILLADU *LOCK *MENU *PURGE *PWRBRK *UNLOCK *VERIFY *VFORMAT *WIPE Using *menu's override option 'G' An outline of the new features *AQR Selects the next bank in the ACP AQR cartridge and initializes a ROM image in the cartridge if one is paged in by the change . Master128 series only. (NB. Master128 series includes all models in the Master range except the Compact, ie. all those with cartridge slots behind the numeric pad). *CHANGE Allows alteration of the Load address, or Load & Execution addresses of a file. *DIRRENAME Allows you to rename a directory (which can include repositioning it in the directory hierarchy) without having to unlock the directory first *FILEFIND Search the current disc, starting from the directory of your choice for an 'ambiguous filespec'. The 'filespec may include the wildcards '#' and '*' *LOCK Write-protect ACP's ABR and AQR cartridges in the the Master128 series computer *PURGE Empty a disc of objects by rewriting the 'root' directory and 'free-space map' *UNLOCK 'Write-enable' ACP's ABR and AQR cartridges in a MASTER128 series computer *WIPE Allows prompted deletion of files, starting from a directory of your choice and selecting files from an 'ambiguous filespec' *MENU O As *UNLOCK *MENU P As *LOCK *MENU Q As *AQR *MENU T Like *CHANGE but you are asked to choose between file types B, D, R, S or V without having to enter any numbers. *MENU Override loader routines P VIEWSPELL T VIEWSTORE (position highlighted block on one of the files with the database name) F VIEW Professional - load text file E VIEW Professional - *EXEC a set-up file *MENU's "Data (D) Files" routine can now indetify VIEW Professional *MENU's main screen display and update routines have been modified for use with a 'Trackerball'. Users of earlier versions will notice that screen update is noticeably faster and that the keyboard is flushed less often. If you have the pointer ROM fitted, you should use *POINTER K 1 to set the speed of the 'Trackerball'. At this speed. *MENU will keep up with all but the wildest operation of the 'Trackerball'. The button assignments are left to you to choose with *PKEY , but we suggest *PKEY 0,94 (to go back a directory), *PKEY 1,13 (usual setting, to select an object), and *PKEY 2,63 (to display information about an object). The Changes in Detail The page numbers in brackets after each title refer to the manual. Introduction (Pages 4-6) The drive letters quoted are wrong (the same mistake appears elsewhere in the manual). Drive 4 is 'E' and drive 5 is 'F'. Drive 'D' is never used in ADFS on Model B's or Masters. ADU works with SOLIDISK ADFS though owners of Solidisk's issue no.1 boards (ie those which cannot be driven by the 'Acorn' ADFS) must use their own disc formatting routine because the FDC appears in a different place in memory on the two boards. The remainder of the text is correct and should be read carefully. Commands and parameters (page 7) The *HELP information is now somewhat longer than it used to be. The section below, replaces page 7 of the original manual. *HELP ADU ADFS Utilities 1.05 ADO AQR BACKUP CATALL () CHANGE () DFSADFS DIRALL () DIRCOPY <$.dir><$.dir> DIRDESTROY DIRRENAME DISCEDIT DRIVE () FILEFIND () FORMAT () KILLADU LOCK MENU () PURGE PWRBRK UNLOCK VERIFY VFORMAT () WIPE () The parameters are explained in the following section:- A drive number, optionally prefixed with a colon (:) representing the drive from which the data is to be taken As source but, representing where the data will be put. May be the same as An ADFS directory specification An ADFS file name New load address; up to 8 hexadecimal digits (ther is no need to type "&" New execute address, as A drive number, expressed in DFS terms (which will contain a DFS disc during the copying. An ADFS speciofication which which will lead to an ADFS disc during the copying. Note that the same drive may be used, and prompts will be given for discs to be changed <$.dir> An absolute ADFS directory specification. The '$' must appear within the parameter, eg. :0.$.dir or $.name. New name for the directory (which must not exist beforehand) ADFS drive number ADFS ambiguous file specification; wildcards '#' and '*' may be included (with their usual meanings of one character, and several characters respectively). One os 'S' (for small), 'M' (for medium) or 'L' (for large). Defaults to 'L' The command descriptions *ADU (page 8) The manual is correct. However some safeguards have been added to stop ADU starting up as a language in the 'killed' state over a BREAK. On a ModelB(+) the O.S. will start the next most senior language, and on a Master series you should alter *CONFIGURE LANG. *AQR (New) This command is for use only on a Master128 with ACP's AQR cartridge fittted. Th e command switches the AQR to the next bank and initializes any ROM images in banks 1 and 3. The same effect can be achieved in *MENU by using the 'Q' command. The current bank number is maintained in the lower 4 bits of the 'user flag' (held at &281, and accessed by FX1 and FX241). *BACKUP (pages 9 and 10) Please read the manual and note these slight changes. As well as the number of discs required, the routine also displays the number of sectors that it is going to copy. There is a bug in ADFS 1.30, 1.50 and 2.10 (and maybe others) which causes multiple writes which include the last sector of a 'small' disc, to fail. ADU now includes a fix in this routine to avoid falling into this trap. Two new error messages have been created. Bad disc size A floppy/3.5 inch is not Small, Medium or Large. Will typically occur if you mistakenly feed *BACKUP or consequent discs to a multi-disc back-up when itwants first disc. Bad parameter This replaces the 'Parameter(s) missing' error, and is caused by the same reasons. *CATALL (page 11) The text in the manual is correct except for 1 omission - which is that page 'C' is also used as workspace. Files wich are incorrectly categorised, may be altered with the 'T' command in *MENU or *CHANGE. Both of these are new features documented within this supplement. The recognition routine for VIEW and VIEWSHEET files, has been re-written since ADU 1.02 and now stands a better chance of recognizing files copied from DFS. When looking for particulat files *FILEFIND may be more useful. *CHANGE (New) Purpose: Alter the load address or load and execution addresses of a file. Memory used: Page 'C' Syntax:*CHANGE () Examples: *CHANGE file 1900, *CH. file FFFF1C00 FFFF1C00 This command gives you a way of altering the addresses of files not being categorized properly by *CATALL or *MENU The addressesmay be up to 8 hexadecimal digits (with missing digits assumed to be leading zeros, thus 1900 is taken as 00001900). If you are using a 2nd processor, you should take carespecifying the top 4 digits. The notes below give suitable values to use to get a file recognized by *CATALL and *MENU. You may prefer to use the 'T' command in *MENU which only requires you to select the desired file type without having to enter any numbers. Note that these values will work, but the identification routines can recognize many other possible permutations- eg each version of BASIC has a different 'exec addr' but only one (from BASIC 4) appears in the table. Likewise, there are nearly infinite of possible values for VIEW, almost all of which should be correctly identified. Basic Load Anything Exec 802B ROM image Load 8000 M/code Load Anything sensible Exec Anywhere from the load address to (load address + lenght of file) VIEW Load 0D6576 VIEWSHEET Load 6576 Data Load 0 Among the errors which could appear are:- Only in ADFS Select ADFS and *MOUNT a disc Bad Parameter One of the addresses contain a character other than 0-9, A-F and a-f Not Found The filename given was not found (or was a directory or an 'E' protected file) *DFSADFS (page 12) After a numner of requests a means of not copying every file, has been added. The routine will ask 'Prompt (Y/N) ?'. If you answer 'N' the routine will works as documented in the manual. However if you answer 'Y' you will be aked whether each file should be copied across. Users of the original version of DFDADFS will notice that the CDIRs are now done on demand rather than in a batch at the beginning of a transfer. This has been done to avoid creating unwanted directories during selective copying The lengthy procedure for changing the name of a directory described on page 13, has now been coded as *DIRRENAME which will make things somewhat easier There have been several changes in the error messages generated by the routine:- ESCAPE This is displayed if the ESCAPE key is pressed rather than 'Aborted' Unable to open file (A)DFS file. Aborted Both these messages have been reworded to recover space. The form is now "Can't open file (DFS)" or "(ADFS)" *DIRALL (page 14) As with *CATALL, the text in the manual omits to mention tha page 'C' is also used as workspace. *DIRCOPY (page15) Please read the original text, and not these changes. After the routine has confirmed the presence of both directories given, it will ask 'Prompy (Y/N)?'. If you anser 'N' the routine will perform as documented. If you answer 'Y', it will ask you whether to copy each sub-directory. Five responses are possible:- Y, N, A U and ESCAPE Y Will copy the directory and prompt again at the next one N Will ignore the directory ( and consequently the whole of that branch of the hierarchy) A Will copy the directory and all others without further prompts U Will copy the directory, and it's sub-directories, and prompt again when that is completed. There are also some new errors which the routine can produce. DIR name used for a file Reported if a file has the name that DIRCOPY wants to use as a directory. In earlier versions of ADU a similar error 'Object exists' used to to occur but was not documented. Not Found The first parameter does not lead to an object (directory or file) Not a directory The second parameter does not lead to a directory. Originally, reported but not documented, as 'Second parameter must be a directory'. *DESTROY (page 15) No changes (manual O.K) *DIRRENAME (New) Purpose: Change the name of a directory Memory used: Page 'C' Syntax: *DIRRENAME Examples: *DIRRENAME Fred John, *DIRR. Fred $.Names.John This command allows you to change he name of a directory with no prior preparation such as unlocking or emptying the directory. The 'case' used in the second parameter IS significant, and will be reproduced as entered. The original status of the 'L' (locked) attribute will be maintained Note that renaming a directorycan be used to MOVE it somewhere entirely different in the structure of the disc, an efect which could be thought of as moving a directory. Ther are some restrictions on the parameters you can use with *RENAME (which is one of the primitives used by this routine) which are explained in the ADFS documentation as the error 'Bad Rename'. A number of errors can be produced:- Two parameters required Both parameters are mandatory Not a directory The 1st parameter does not lead to and existing directory Not Found There is an error in the 2nd parameter Already Exists The 2nd parameter should be a new, unused name. The name given is already on the disc Bad Rename One of the parameters violated the ADFS's rules for *RENAME . Possible causes (among others) are: use of '$' in first 'path-name'; attempting to rename across different drives; use of illegal and characters and commands which would make the directory structure recursive. *DISCEDIT (page 16) No errors. Manual O,K *DRIVE (page 17) As documented except that instead of *MOUNT the routine now uses *DIR :x.$ which is faster.Incidentally *WIPE should be added to the list of commands which go dormant outside ADFS. *FILEFIND (new) Purpose: Search disc for a specified file or files Memory used: Pages 'B' 'C' and 6 pages from OSHWM Syntax *FILEFIND () Examples: *FILEFIND game* $.games, *FILEFIND TEXT# This command allows you to search an ADFS disc for an ambiguous file specification, starting from a specified directory (or the 'root' by default). The wild cards '#' and '*' may be used with their usual meanings (one character and several characters respectively) Whilst searching the disc, the routine behaves like *DIRALL displaying each directory name as it enters it. When it finds a name which matches the 'filespec' entered, it will pause and prompt 'Press a Key', after which it will continue searching. This command is a relative of *CATALL.The section on *CATALL in the main manual and this supplement, should be consulted for the errors which this routine can produce You can stop the routine at any time by pressing ESCAPE. *FORMAT (page18) There are 2 changes to the manual. The first is that the drive numbers quoted for DFS are wrong. They should be 2 and 3 not 1 and 3. The errors '...use 0/1/A/B' and '...use 4/5/E/F' will no longer occur. Instead the routine will adjust the numbers entered so that they address the floppy/3.5 inch drives whether a Winchester is present or not. The adjusted drive number will appear in the 'Format drive x?' prompt. You will note that this routine avoids trying to format Winchesters. Winchester discs are formatted very differently to floppy discsand should not be re-formatted unless a disc error 1C has occured. This error 1C is serious and is a 'return to dealer' for most users. Full details are out of place here, but sufficient to say that a disc with fault 1C cannot be re-formatted without knowing some fundamental details about the make-up of the drive which must be manually entered into the formatting programme. The main Winchester formatting program (which has produced a number of imitations) is called SuperForm, and is supplied on 'Acorn' Winchester discs Winchesters should only be re-formatted to overcome disc errors. To empty a disc you should *PURGE instead. *KILLADU (page20) As documented, however some additional code has been added to prevent ADU being started as a language whilst 'killed'. On Model B(+) the next most senoir ROM will be started instead, and on a Master128 the error 'This is not a language' will be given *CONFIGURE Lang should be changed. *LOCK (New) This command is for use only on Master 128's with ACP's ABR or AQR cartridges. It write-protects the contents of the cartridges. *MENU (pages 20-26) The majority of the routines operate as described in the manual which should be read first; then the enhancements and changes below. The ' <- Data (D) files' routine now recognizes VIEW Professional There are 4 new override options (page 22), 'T' for VIEWSTORE, 'P' for VIEWSPELL, 'F' for VIEW Profesional (load text) and 'E' for VIEW Professional (*EXEC setup file). For the VIEWSTORE loader, the highlighted block should be placed on any of the files with the name of the database. The best practice is to use the database itself in directory 'D'. There are 4 new commands (page 23):- 'O' is equivalent to *UNLOCK, 'P' is equivalent to *LOCK, 'Q' is equivalent to *AQR and 'T' is a variant on *CHANGE. After pressing 'T' you will be prompted 'Select type (BDRSV)', press the letter for the file type you want. The handler no longer *DISMOUNTs the disc, or announces it's presence with 'Error MENU aborted', but still does some housekeeping like reselecting the screen mode on entry. The ROM image loader now automatically 'inserts' the image after loading. Some images may still require a CTRL/BREAK to claim workspace. The mistake about ADFS drive letters appears again on page 23. Drive 4 is 'E' and drive 5 is 'F'. The 'S' command no longer insists that the image is saved in the current directory. Further '*' commands may be entered by typing in the command when 'Pressany key' is displayed. The error 'Not a directory' is now 'Not Found' for the same causes. The screen display and movement routines have been tested on a Master128 with a 'Trackerball' and the 'Pointer' ROM. As a result, some routines have been rewritten, and the keyboard is flushed less often. Providing that the Trackerball on speed 1 (*POINTER K 1) *MENU will now be able to keep up with all but the most violent movements of the ball. The assignments of the top 3 buttons are left to you, but we find *PKEY 0,94 (move back to parent), *PKEY 1,13 (select) and *PKEY 2,63 (Information) a usefulset for normal use. *PURGE (new) Purpose: Empty a disc without formatting Memory used: Page 'B' and 7 pages from OSHWM Syntax: *PURGE Example: *PURGE 4 This command should be treated with respect. It clears everything off a disc, leaving only a clean 'Free space map' and an empty 'root' directory The routine will first give you a chance to realize what you are about to do by prompting 'Begin (YES/Other)?'. To proceed type YES and press RETURN. Any other key will stop the routine. If *PURGE fails with 'Bad FS Map' because the disc you are trying to re-initialize is corrupt, you should try *MOUNTing a working disc in another drive (so ADFS thinks it's got a valid disc) and then repeating the *PURGE command. *PWRBRK (page 27) No changes- Manual O.K *UNLOCK (New) This command should be used only on a Master128 fitted with ACP's ABR or AQR cartridges. This command write-enables the cartridges (ie. the counter to *LOCK) *VERIFY (page27) As documented. Note that the modification or entered drive numbers described for *FORMAT will not occur here, still allowing Winchesters to be *VERIFYed. *VFORMAT (Page 28) Note changes under *FORMAT *WIPE (New) Purpose: Prompted deletion of files Memory used: Pages 'B' 'C' and 6 pages from OSHWM Syntax: *WIPE () Examples: *WIPE f* *WIPE games $ *WIPE This command provides a facility similar to *WIPE in the DFS. The first parameter (which may contain wildcards) specifies the file(s) to be offered for deletion. The second parameter is the directory to begin in (which defaults to the current directory). The first parameter is mandatory, with one exception; *WIPE alone, is taken as *WIPE * @ ie. every file in the current directory, and it's sub-directories. Each time the routine finds a file which matches the it will prompt ' Delete File ? Press 'Y' toconfirm'. If you press 'Y' the file will be deleted, and the routine will look for the next match. The deletion routine will delete anything, regardless of it's 'E' or 'L' attributes. This makes the deletion slightly slower but dependable. This routineis a close relative of *CATALL whose sections in the manual and this supplement describe the possible errors which may occur. Using *MENU's override option 'G' This section explains the intended use of the 'G' option. Although correctly documented in the manual, no clues were given about the reason for including the command. To re-cap; option 'G' selects the directory under the highlighted block, and then drops into BASIC and then issues *EXEC !BOOT This is designed to allow you to easily build up Menu driven discs. Each separate suite of programs resides in a directory of it's own with a !BOOT file which starts up the program This approach is probably easiest illustrated with some examples First create the directory which will hold the names of the programs, eg. *CDIR $.GAMES, then *DIR $.GAMES to enter it.Now create directories in $.GAMES for each game sto be put in the directory, eg. *CDIR Elite, *CDIR Snapper, *CDIR Starstrike &c. &c. Now copy the files into the appropriate directoriesand add a !BOOT file in each directory which will start up the game. To use the assembled collection type *MENU $.GAMES, select the title (directory) you want, and the invoke override option 'G' by holding down SHIFT before pressing SPACE, COPY, or RETURN and then typing 'G'. So, if for example, you selected Elite, the following commands would occur:- *DIR Elite *BASIC *EXEC !BOOT From then on the !BOOT file takes over and gets the game started. Thus the end result would be a directory full of games names, all of which can be easily started with no knowledge of the programs comprising the suite, or how they should be started. This makes for a very easily used operating environment. by people with no experience of programs comprising each game or application.