SCREEN FORMAT UTILITY (aka. Screen Formatter) by Alistair de Wet Read on and a fantastic screen format / data base utility will unfold before your very eyes! This program is a screen format / data base utility for on screen data capture and information storage, sorting, editing, enquiry and general manipulation. The screen format section of the program is designed to emulate what is commonly available on larger business micros. Operating instructions The program on loading presents the user with 10 options available for use. The program is idiot-proof in as much as it will not allow you to use an option if it is not logical to use the option at the stage - eg: trying to display or sort data which does not exist. A logical sequence of using the program could be as follows: 1. OPTION 1: Instructions and Scope This option will list a summary of what the the SF-UTIL program does as an overview to the user. It is not intended to be a full set of instructions. It also shows an example of a formatted screen. 2. OPTION 2: Format Screen This option will display a sub menu which will allow you to format your screen with fixed text and variable data definition and then return to the main menu. OPTION 1: Text on a blank screen. Use cursor keys to move the cursor. Use edit to move the cursor to start of next line. Use caps/lock to change from upper to lower case and vice versa. Press ENTER to accept your screen. This is where you enter the fixed text portion of your screen - eg: those portions that remain the same each time you capture information (headings, titles, underlinings, etc). OPTION 2: Variable Data Fields. The idea here is to place the cursor at the position of the first field to be captured and then press ENTER. The program will then ask you to input field length (from 1 to 30), paper (0-7), ink (0-7), bright (0 or 1), flash (0 or 1) and inverse (0 or 1). Thereafter it prints a row of X's the length of the field that you specified with the colour attributes which you entered. If this looks correct you press ENTER to continue to the next field to be defined or you press 0 (zero) to wipe out the current field if it is wrong to allow you to try again or move the cursor to a more desirable position and try again. When you have moved your cursor to all the fields that need defining you press DELETE to return you to the sub-menu. Remember one important factor. If you re-enter the Option 2 phase of this sub-menu and try to define new variable data fields, all data previously captured in the machine will be cleared out of memory. If you, therefore, wish to save such data you must first use the SAVE DATA option of the main menu. Obviously if no data has as yet been captured then you lose nothing. Up to 40 variable fields are permitted. OPTION 3: Display Finished Screen This option will display the completed screen which you will be presented with when you enter the data capture phase of the system. If any aspects of this screen are not to your liking you can re-enter Options 1 and/or 2 of the sub menu to redefine the entire screen of text and/or variable data. OPTION 4: Display Data Definition This option will display a full definition of the data. This definition is held in memory in an array T (40,9). Each variable field is defined here. Up to 40 variable fields are permitted and each has 9 parameters viz: 1. Row position on screen. 2. Column position on screen. 3. Length of field in characters. 4. Start position of data in the array D$ 5-9. Paper Ink Bright Flash Inverse This definition will be extremely useful to the budding programmer, as it allows access to any of the stored data (in D$ array) at field level for extra program codes to be included in this program or in other programs which he may write to read the data which has been saved from this program. If you are going to write your own program, I would suggest that you merge the load procedure from ST-UTIL into your program which will save you time and trouble, as there are 3 files to load into memory (FIXED TEXT ARRAY, TABLE ARRAY, DATA ARRAY). Also the data array size is governed by the variable fields as defined in the table array and is thus set up in the load subroutine at run time. OPTION 5: Return to Main Menu Does just that. 3. OPTION 3: Formatted Data Capture This allows you to capture data according to the definition you set up in the Option 2 sub menu. The cursor will position itself on the first column of the first field to be captured. Start entering information. The cursor moves automatically from one field to the next as it fills up the field. To move the cursor from one field to the next without entering data use the [UpArrow] and [DownArrow] cursor keys for next and prior fields. To move the cursor from one character to another use the [RightArrow] and [LeftArrow] cursor keys for next and prior character. Caps lock will change from upper to lower case and vice versa. Press ENTER once you have entered all the data you want, to accept the screen data and store it in memory. 4 OPTION 4: Edit/Enquiry The first thing you are asked to do is to enter the number of the field on which you wish to enquire. This action will cause the appropriate field to flash. You are then asked if this is correct and you have a chance to change your mind or correct your choice. You will then be asked to input the string of data you wish to enquire on. This could be the entire field length or just part of a field - ie, you may wish to enquire on the surname field and look for all surnames starting with "SM". You would Just enter "SM". The enquiry system will search the entire surname field looking for "SM". As soon as the first record is found containing an "SM" within the surname the document will be displayed with options at the bottom of the screen that read: 1 ALT 2 DEL 3 PRT 4 CONT 5 QUIT. If you enter: (1) You can alter the contents of the record using the same method of moving the cursor and pressing ENTER after you have completed your changes as per data capture instructions. (2) Will delete the current record which is displayed on the screen. (3) Will copy the current record to the printer. (4) Will search for further records with the same seek key (in this case "SM"). (5) Will not search any further but will return to main menu. 5. OPTION 5: Display Records This option starts at the first record and displays all the records stored so far. Pressing any key will stop the display at the current record at which point the option is given to continue or return to main menu. 6. OPTION 6: Save Data SAVE DATA saves the three arrays used by the system. You will have to press a key when the machine requests you to do so. The 3 arrays are interdependent upon each other in the controlling of the data handling of the system. 7. OPTION 7: Load Data Enter the name of the file to be loaded or just press ENTER to load any file. The 3 arrays previously saved will now be loaded. This load module will obviously overwrite any formats or data presently in the machine. 9. OPTION 9: Sort the Data The first thing you are asked to do is to input the number of the field on which you wish to sort. This section wIll cause the appropriate field to flash. You are then asked if this is correct and you have the chance to correct your choice. Once you are satisfied the sort begins. Entering Option 5 (Display Data) will show that data has been correctly sorted. 10. OPTION 10: End Routines This routine will give the user the option to stop the run or to go back to the main menu if he has forgotten to save his data. NOTE The program is, under normal operating conditions, not likely to crash. If, however, you manage to crash the program, type GO TO 500. Do not type RUN or all your data will be lost.