*=*=*=*¢ 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.¢¢ **=**==**¢