*=*=*=*› THE DISK DIRECTORY HEADER Version II› =====================================› by John Foskett, September 1993› "DIRHEAD2.BAS" IS ON THIS OL' HACKERS› Nov./Dec. 1995 NEWSLETTER"›› A USER FRIENDLY HEADER›› By reading the directory of› commercial disks it can be seen that› in many cases the directory contains a› header of some form giving some› details like a title, version, date,› etc. Such a header could be written to› a newly formatted disk by using a disk› sector editor but this can be› confusing and time consuming, since it› must always be remembered how a disk› stores its data. In order to overcome› these problems in a user friendly way,› "The Disk Directory Header" was born.›› WHAT CAN IT DO?›› The Disk Directory Header can› create a header consisting of upto› eight lines, completely filling the› first directory sector if required› where each line can consist of upto› eleven characters, the normal file› name length. The Disk Directory Header› provides nine standard headers which› can be selected from the main menu as› well as a way of creating a custom› designed header.›› THE SCREEN›› The top section of the screen› comprises of the title. The central› and the lower sections comprise the› main working part of the screen.›› USING THE DIRECTORY HEADER›› When The Disk Directory Header is› first run, the centre section contains› a menu and a prompt. To select one of› the nine standard headers, press the› appropriate number key, the menu will› be erased and the chosen header› printed in its place on the left side› of the screen. If the chosen header› requires a date then this will be› requested before prompting for the› formatting details.›› A REMINDER›› As a part of the main menu, the› bottom line of the screen contains a› small two option menu, as a reminder,› that at any time START can be used to› cycle through the background colours› whilst SELECT is used to reset the› colour back to blue. If a custom› designed header is selected from the› menu, the menu is again erased and the› necessary details printed to enable› its construction. As each line is› entered, it is printed to the screen› and a menu is displayed on the bottom› line. Select "N" to continue and enter› the next line, "P" to exit early and› to prepare the disk or ESCAPE to exit› back to the menu. If and when an› eighth line is entered, the› 'N/P/ESCAPE' menu is bypassed and› control is passed directly to the› 'Prepare disk' section.›› PREPARE DISK›› This section is entered after a› header is completed and RETURN› pressed, ESCAPE will exit back to the› menu. Prepare disk allows a disk to be› first formatted in either single or› enhanced density, ESCAPE again is used› to exit. "S" is pressed to select› single density or "E" is pressed for› enhanced density. After selecting,› 'CAUTION' is displayed on screen› requiring "Y" to be pressed to› continue. Any other key will return› back to the previous stage to select› the format density.›› Upon pressing "Y", the disk which› is currently in drive #1 is formatted› and the header written into the› directory. After this, the disks› directory is read and printed to the› right hand side of the screen to› confirm its presence.›› Once the header has been written› and the directory displayed, the› option to write the DOS.SYS file is› given. Upon pressing "Y", the› directory display on screen is erased› and the DOS.SYS file written to the› disk and locked. The disks directory› is then once again read and› displayed.›› ANOTHER DISK?›› Regardless whether or not the› DOS.SYS file has been written to the› disk, the option to prepare another› disk with the same header is› presented. Pressing "Y" will allow the› format density for this disk to be› selected. Any other key will exit back› to the menu.›› MODIFYING THE STANDARD HEADERS›› Naturally the standard built-in› headers will need to be amended to› incorporate the users name rather than› my own name. The standard headers are› stored at the end of the listing in› the form of basic DATA. When modifying› the headers, the single line format› must be maintained due to the way that› the program selects the various› headers. Each set of header DATA› terminates with the '@' character› which is most probably the least› likely character required for a› header. It can be used within a line› of characters but must not be used› alone. The limitation of a maximum of› eight lines where each line comprises› of a maximum of eleven characters must› also be maintained. The main menu› should also be modified to reflect the› changes made. If a modified header› needs a date, then its position must› be considered so that the details can› be printed within the header on screen› and for inclusion into the string for› writing into the first directory› sector of the disk. For this reason it› may prove more convenient to leave the› date position where it is and to› simply modify the header around it.›› TECHNICAL DETAILS›› A VBI routine is used to control› the background colour cycling, to› disable the attract mode and to› disable the CONTROL-1 stop-start› toggle. It also provides an optional› keyboard lock to ensure that only the› normal uppercase character set ascii› codes can be used when selecting from› the menus. This part of the VBI› cancels any accidental operation of› the respective two keys. The keyboard› lock is disabled when the custom› designed header is selected to enable› the use of all characters. All text› erasing is achieved by using a machine› code routine which defaults to erasing› the lower section of the screen only,› unless otherwise set up. The cursor› used within the data entry section is› 'player zero', its colour is also› controlled by the VBI according to the› background colour. A small machine› code routine is used to ensure that› the player zero stripe is clear before› the cursor is defined.›› MACHINE CODE›› A small machine code routine is› used to access the internal routines› enabling data to be written to the› disk.›› CUSTOM DISPLAY LIST›› A custom display list enables the› use of a mixed mode text screen.›› The above stated machine code routines› are stored in the form of relocatable› machine code strings. The display list› is also stored as a relocatable› string. The strings being directly› defined to eliminate initialising time› caused by the loading of data.›› **=**==**›