USE CURSOR KEYS TO SCROLL TEXT. USE CURSOR KEYS TO SCROLL TEXT. P/GMENU rev 5.00 By 3TR (Mike Fleming) ---------------- This program was written for the specific purpose of running games that had been transfered from tape to an ADFS disk, in much the same way as the rom ADT does with *MENU. It was requested sometime back in the WANTED column of Solinet by 'H' Leavers, for a collegue who didn't have access to the rom. With several suggestions of ways to improve the original program, and requests to incorporate other functions, we have rev 5.00 !! The program is written in BASIC, with a small machine code routine, that is used to download any program if it has to reside below PAGE [there used to be several magazine routines published, such as GO]. Because the program was planned to be used only on games discs, which tended to consist of numerous files per game,(and only the starting file should appear on the menu), a masking strategy was adopted. If any file contains a lower case letter, then the file will NOT be listed [but see customisation section]. Thus you may need to rename a file if it is not to be listed (eg. *RENAME MIKEF mikef and the file MIKEF will not appear any longer in the menu). The program determines whether the program is running in DFS or ADFS, and what the currently selected drive is (0-3 for DFS, 0-1 for ADFS). The non-masked files are then listed in GREEN, with DIRECTORIES listed in RED. Either can be selected, by entering the associated letter [see customisation later]. If a directory is selected, then all the files and subdirectories within this are listed, along with an option to return to the parent (ie previous level) directory. The drives can be changed, along with the filing system, by using the function keys and shift, BUT ENSURE DISC IS LOADED IN CORRECT DRIVE BEFORE MAKING SELECTION. I have tried to keep the conventions as much in line with ADT as possible - it uses the execution address to determine if the program is in BASIC or ASSEMBLER, or if the file should be *EXEC'ed. The load address is used to determine were the program should run. CUSTOMISATION. -------------- The program can be changed thus: 1) If files containing lower case letters are NOT to be ignored, delete line: IF ignore% THEN .... 2) If you wish different letters/symbols to be used for selection, change line: option$="ABCDEFGHIJKLMNOPQRSTUVWXYZabcd efghijklmnopqrstu" to your own choice of 47 unique symbols specified. 3) The program was written for a Master-128, but should work for any BBC machine, if changes are made for: A) correct value of PAGE being used (&E00 for Master, &1900 for BBC-B) as referenced for Machine code in DEFPROCwhat`next, and the EQUS statement in the machine code routine. B) How to load a sideways rom image, Master uses '*SRLOAD ???? 8000 n' other machines use different methods (this may not be applicable if rom images are not going to be selected) Thanks once again to 'H' Levers for his help in testing this program, and for the suggested improvements. It was an interesting request for help, from which I learnt a lot when writing the program, and gained the pleasure with the final result. If there are any other BASIC programs/routines that anybody requires, especially if disc orientated, why not make a request. I can't guarantee that I'll be able to help, but I'll try if pressure of work permits. The moral of all this............ IF YOU DON'T ASK, YOU DON'T GET !!!. Mike Fleming (Solinet member _100/ 8BS member 3TR) (15/8/93). Press BREAK for menu Press BREAK for menu