.chapter The VAX NoteBook .IFNOT NBI .RM72 .LM5 .ENDIF NBI .STYLE HEADERS 5,0 .FLAGS ACCEPT .AP .hl 1 Introduction The VAX NoteBook is designed to handle small, personal, user defined data bases. NoteBook V2.6 has a number of new features. These include .list .le;Support for editing binary X-Y graphic data files. .le;Support for multiple graphic data file types (for future use). .le;Support for VT240 terminals. .le;Limited support for binary data (Integer_*2, Integer_*4, Real_*4). .le;Support for command line processing of keywords. Special keywords now exist to set the data file name and bypass the main menu so as to immediatly perform some function (make NoteBook act like an external subroutine). .end list The VAX NoteBook assumes that one wishes to do a limited number of things with a private data base. These include; .b .list 0,"o" .le;Create the data base. .le;Add records to the data base. .le;Modify records in the data base. .le;Delete records in the data base. .le;Display selected records in the data base. .le;Use alternate data files .le;Provide extensive on-line help at each step. .end list The VAX NoteBook's behavior is table driven: Menus, prompts, and display format are all controlled by external modules in a text library. To create a new data base all that is necessary is to give it a name, create the control tables and add them to the text library which either may be the system text library or a private one. This makes it exceptionally easy to change a database to add functionality or to add a new one. For the present time, only the system text library is supported but private databases can easily be designed on request. Eventually a user bombproof design tool for creating private data bases could be provided. Currently supported applications include: .list 0,"o" .le;The VAX Document Manager .le;The VAX Phonebook .le;The KMS Staff Directory .le;The VAX Problem Report Manager .LE;The VAX Reference Library .le;The VAX SPR Manager .le;The VAX Security File Manager .LE;The VAX Drawing File .le;The X-Y Graph Data Editor .end list The VAX NoteBook is not intended to be a full fledged data base manager or even a DATATRIEVE. It is designed for those applications which do not need the sophistication of DATATRIEVE, do not need ISAM files, do not desire to store information in binary format, but which do need form-driven screen data entry and the ability to modify and delete records simply from the data base. Possible applications might include: .b .list 0,"o" .le;Slide and Graphic Arts drawing files. .le;Local departmental inventory lists inventory control easier. .le;Log of purchase orders sent, date expected, etc. .le;Data base for selected target shot results. .le;Project planning data base to keep track of tasks, target dates, completion dates, and drop dead dates. .le;Departmental or company document inventory. .le;KMS library list. What we have, who has what. .le;Daily logs of activities for inclusion in monthly reports. .end list .b As noted above, NoteBook also provides support for editing a binary X-Y Graphic data files. The format of these files is documented in the chapter which discusses TEKgraph. In this mode, NoteBook works completely differently than in its other modes to proved a spread-sheet like editor for graphics data. At present a NoteBook data file (except for graphics file) has the following limitations: .b .list 0,"o" .le;Data is generally stored as ASCII character data although limited support for Integer_*2, Integer_*4, and Real_*4 data exists. .le;NoteBook data files are sequential. .le;NoteBook stores data as fixed length records whether or not all input fields are filled. .le;Search and delete operations require reading all records up to the desired record. Binary data can not be searched for. For large files, ISAM files might be better. .le;Each record is limited to a maximum fo 512 bytes. .le;The record can contain up to 20 separate data input fields. .le;Output report formats are limited to formats which can be stored in a 132 character Fortran format array. .le;A maximum of 10 display formats may exist for any given program .end list This chapter will describe generically how to use NoteBook. For help with a given NoteBook program, type HELP Program__Name. Most of the HELP information is available interactively from within NoteBook. .hl 1 Accessing NoteBook The command .lit $NOTEBOOK:=="$SYS$SYSVPWFILES:NOTEBOOK" .END LITeral is defined automatically when the user logs on (in SYSLOGON.COM via SYS$SYSVPWFILES:SETVPWSYM.COM). To use it, type NOTEBOOK and it will prompt, "NoteBook Program:#". Enter an allowed program name (ie PhoneBook, Journals, Security, etc), and the requested program will start up. NoteBook allows its known programs to be more simply accessed however. You can define a specific NoteBook program as a command by .lit $PROGRAM:=="$SYS$SYSVPWFILES:Notebook Program" .END Literal NoteBook can be used non-interactively, ie to search a file for a string and print it out in a given display format, by defining the command .lit $PROGRAM:=="$SYS$SYSVPWFILES:NoteBook Program Form_Number " .end literal where Form__Number is a number from 1-10, and is a recognized display format number for the NoteBook program. Each NoteBook program has a number of display formats which were defined when the NoteBook program was created. Now if you type .lit $PROGRAM Search_String .end literal all records containing the Search__String in the database will be displayed using the output form Form__Number. NoteBook gets its control information from SYS$VPWFILES:VPW.TLB and its HELP information from SYS$VPWFILES:VPW.HLB. Hence if you wish a private data base which NoteBook can access, you can create private copies of VPW.TLB and VPW.HLB and assign SYS$VPWFILES to the directory on which they reside. .lit $ASSIGN [directory_name] SYS$VPWFILES .END LITERAL Somewhat more elaborite command strings to notebook can make use of command line keywords to set the default file name and start execution immediately in the selected menu. Additional documentation on how the parsing works is included in the NoteBook subroutine GETPRGROM.FOR. The reserved command line keywords are .lit $FILE=fname and $BYPASS=menu_key .end lit .flags bold .enable bolding If a ^*$FILE=fname\* is found, the file name become the default data file name. If a ^*$BYPASS=Menu__Name\* is found, VPW bypasses the main menu and starts up immediately in the specified menu. GRFMASTER uses this feature to invoke the X-Y Graphic Editor for a specific file. .hl 1 Existing NoteBook Programs The following commands define the existing NoteBook programs. .LIT $ALIST: =="$SYS$SYSVPWFILES:NOTEBOOK PHONEBOOK 1 " $DOCUMENTS:=="$SYS$SYSVPWFILES:NOTEBOOK DOCUMENTS" $DRAWFILE:== "$SYS$SYSVPWFILES:NOTEBOOK DRAWING" $GRAPHXY: =="$SYS$VPWFILES:NOTEBOOK GRAPHXY $FILE=fname" $JOURNALS: =="$SYS$SYSVPWFILES:NOTEBOOK JOURNALS" $KLIST: =="$SYS$SYSVPWFILES:NOTEBOOK KMSBOOK 2 " $NOTEBOOK: =="$SYS$SYSVPWFILES:NOTEBOOK" $PHONEBOOK:=="$SYS$SYSVPWFILES:NOTEBOOK PHONEBOOK" $PLIST: =="$SYS$SYSVPWFILES:NOTEBOOK PHONEBOOK 2 " $SECURITY: =="$SYS$SYSVPWFILES:NOTEBOOK SECURITY" $SPR: =="$SYS$SYSVPWFILES:NOTEBOOK SPR" .END LITERAL .hl 1 Terminal Requirements NoteBook was designed to run on VT100 terminals with the advanced video option. However, an attempt was also made to insure that it would run, albeit not very nicely, on hard copy terminals or (shudder) NBI pseudo-terminals. The convenience of being able to use the keypad to drop into VPW> command mode, get help, backup to previous records, and dynamically view a record being modified, strongly suggest that it is best to find a VT100 terminal if one wishes to use its features interactively. .PAGE .HL 1 The NoteBook Keypad Many features of NoteBook can be controlled from the keypad of a VT100 terminal. The keypad layout is: .LIT ------------------------- ----------------------------- ! ^ ! ! ! ! ! Key ! ! ! ! ! ! ! ! ! ! ! ! HELP ! Togle! VPW> ! !Back ! ! ! ! ! Pad ! ! ! ! ------------------------- ----------------------------- ! ! ! ! ! ! Quit ! ! ! Done ! ! ! ! ! ! ----------------------------- ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ----------------------------- ! ! ! ! ! ! ! ! ! E ! ! ! ! ! N ! ---------------------! T ! ! ! ! E ! ! Menu ! ! R ! ! ! ! ! ----------------------------- .END LITERAL The keypad for the X-Y Graphic Data Editor is slightly different. It will be discussed as part of the chapter on the Graphics Workstation. The KeyPad and the HELP and the Menu keys, can normally be used to terminate any input not requiring a Yes/No answer. When the Keypad key is pressed, NoteBook will display the keypad layout in a scrolling region below the current input line. The terminal will drop into slow scroll mode so the keypad can be viewed. At the end of the display a message requesting you to "Press RETURN" will appear. When you press RETURN, the screen will clear, and NoteBook will continue where it left off. The HELP Key will display any help information which has been defined for the requested input. Each possible input and each NoteBook mode can have defined HELP information. If it exists, it is displayed in a scrolling region below the last input line using the VT100 slow scroll mode. If it does not, a blank area is shown. In any event, when the help text (or lack thereof) is complete, a message saying to "Press RETURN to continue" will appear. Do so and the HELP text will vanish and NoteBook will continue to prompt for input where you left off. The Togle key toggles the keypad between application and numeric mode. On a VT100, the four LEDs all light when the keypad is in application mode and turn off in numeric mode. On a VT200 series terminal, the keyboard bell sounds when the keypad is toggled into numeric mode. In numeric mode, the numeric keys are not interpreted as commands. The VPW> key will interrupt work in progress and drop you into VPW Command Screen mode. When VPW> is prompting, you may issue normal VAX commands to preform some other function with the restriction that the terminal will behave as a DUMB video terminal. This means that video editing and the PHONE utility can not work. When one no longer wishes to use the VPW> command mode, enter Control-Z, the Command Screen will erase, and NoteBook will continue to prompt for input where you left off. The DONE key is used to terminate input without having to process the entire input list. For example, if you are in Modify mode, and have just modified the desired entry, the DONE key tells NoteBook not to check to see if other entries are to be modified but just to proceed with the update verification check. The DONE key is only used in Add and Modify mode. The QUIT key operates the same way as the Control-Z terminator. Either inputs tell NoteBook to abort the current operation and return to the Menu. The Up-Arrow key, tells Notebook to backup to the previous entry on the screen. This is useful if you have entered data on a line, gone to the next line and then have observed that the input is faulty and you want to change it. The ENTER key behaves the same as the RETURN key. Either may be used to terminate data input. The MENU key is used to return to the VAX Professional Workstation menu. For answers requesting a Yes/No answer, a RETURN by itself is considered to be a No. At minimum, a "Y" or "y" is required if one wishes to indicate "Yes". Other inputs fall into two categories. Some inputs are required. The prompt must be answered with something. For these inputs, typing just a RETURN will produce an error message saying what is required. Most data inputs, however, are optional. For those inputs, a RETURN by itself is interpreted as, "Leave the current data value alone." However, deleting erroneous data from any input field is easy. Simply enter a single space to null out the previous data in it. .hl 1 NoteBook's Basic Functions For each NoteBook program, the following functions MAY be defined. .b .list 0,"o" .le;Records may be added to a data base .le;Records may be modified in the data base .le;Records may be deleted from the data base .le;Reports may be generated from selected data fields. .LE;Data bases other than the default may be selected. .end list It is not necessary that each program allow for every possible function because allowed functions may be selected on a program by program basis. When the program's menu appears it is only necessary to enter the minimum number of characters required for a unique identification of function. On VT100 terminals with the advanced video option, the minimum number of characters required will appear in BOLD letters. A Control-Z or Control-Y to this prompt will force NoteBook to exit. Note there are no specific functions for either creating the database or sorting the resultant file. If the data base does not exist, it is created the first time one tries to add data to it. Sorting the data file also occurs automatically if sort fields for the data file have been defined. If sorting has been enabled, every time one exits from Add Mode the file is sorted if records have been added. If one exits from Modify Mode, the file is sorted if any of the sort fields have been modified. .hl 2 Add Mode When the user enters Add mode, NoteBook starts prompting for input using the prompts stored from the PROMPT module in the text library. As data is entered, the record is displayed at the bottom of the screen if one has a VT100 terminal. If one is unsure what to do at any time, the HELP key provides help on the nature of the input being prompted for, Control-Z or the QUIT key will abort the input. If the user either presses the DONE key or enters data for the last prompt, the record in its entirety is displayed and the user is allowed to choose whether or not that record is added to the file. Prior to adding or modifying any record, NoteBook always prompts to see if it alright to do so. In Add mode, if the answer is Y (Yes), the record is added, the file being created if necessary, and the user is then prompted to enter data for the next record. If the answer is N (No) or just RETURN, one drops back into ADD mode prompting for each record again. However, the data as first entered becomes the default and a simple RETURN will leave it unaltered. Changing any entry will cause the displayed record to be updated if one is using a VT100 terminal. Eventually if one gets the record correct (or hits the DONE key), the user again gets the chance to accept the record for insertion into the data file. Once in ADD mode, it is simple to get out. Type Control-Z, press the QUIT key, or type RETURN to any required (match type 1) input to return to the menu. Generally, the first field of each record is required and a return is effected if a RETURN is hit. If one is unhappy with data entered for a previous prompt, one can back up a record at a time by pressing the Up-Arrow key. The current value for the record being created is displayed at the bottom of the screen on VT100 terminals. If the program has sorting enabled, the data file will be sorted each time Add Mode is exited, if data has been added to the file. Be sure to watch to see if any error messages appear in case you are tight on disk space. Please read the cautions on sorting problems at the end of this document prior to adding data to a file. .hl 2 Delete Mode In Delete mode NoteBook prompts for a string to "Search for:#". Either a single or a compound search string (separated with a vertical bar) may be used. Once found, a record is displayed, and the NoteBooK asks if the record may be deleted. Unless the answer is "Y" (Yes) the search continues for another match. The search proceeds until either another record is found or until the end of file, at which point a message saying that the search string was not found is produced, and again NoteBook prompts with "Search for:#". The delete process involves copying the input to the output file, stopping each time it encounters a record containing the search string to see if the record should be deleted. If the record is selected for deletion, it is not copied to the new file. Now, initially the old file is opened for keeping and the new file is opened for deletion on closing. This is to protect the original file in the event of an error or abort. However, if the process is successful, the new file is saved and the old file is deleted. .hl 2 Display Mode Display mode displays a menu of possible display formats if more than one exists. Enter a number from the allowed list of selections, or Control-Z or RETURN to return to the menu. Next NoteBook prompts for a search string. Enter a simple or compound search string or a "_*" to indicate that all records are to be included in the report. NoteBook returns to the menu if a RETURN with no input is input for the search string. The Up-Arrow key on a VT100 may be used at any time to go back and redo a previous question. The search string may be a simple string or a compound string separated by vertical bars. The strings may be words or entire phrases. If compound search strings are entered, one must be careful about requesting that the search be over selected fields. If one desires to search over selected fields, the entire compound search string must be contained in one of the specified fields. Next, NoteBook asks if the output should be printed or go to a scratch file (SCRATCH.FIL). If the answer is "P", the output is sent to the line printer and deleted following printing. If the answer is "S", it is written to the scratch file, SCRATCH.FIL. Only one version of SCRATCH.FIL is ever allowed to exist at a time. Each subsequent output to SCRATCH.FIL overwrites data previously written to it. The output appears on the user's terminal if any other response is entered. Next, NoteBook asks if the searching is to be done on selected fields. If the answer is not "Y", the search proceeds without further input from the user, either displaying the selected records on the terminal or the line printer using the selected format. When the search is complete, NoteBook prompts the user to "Press RETURN to continue" and then prompts for another string to search for. If the user elects to search only selected fields, NoteBook prompts for each possible input field to see if that field is to be searched. The process of selecting fields to search is terminated either when there are no more fields or when the DONE key is hit. In either case, the search then proceeds as above with the exception that only the selected parts of each record are checked for a match with the selected search string. At any time during the input process, the Up-Arrow key can be used to backup to the answer in the previous record and change it. This is useful for changing the form for display without returning to the menu. .hl 2 Modify Mode Modify mode is similar to Add mode. When one enters Modify mode one is prompted with "Search for:#". Enter a unique string for identifying the record. This may be a simple string like a last name or a compound search string containing two or more strings separated with vertical bars. A match is declared if the simple search string is located within the record or if each of the multiple search strings is contained within the record. If a match is declared, the record is displayed, and the user is asked if this is the record to modify. If it is, answer Y (Yes), otherwise NoteBook will continue to search through the file for another match. If at any point it searches the file to the end and does not find a match, it will display a message that the search string was not found and again prompt with "Search for:#". If a RETURN is entered for this prompt, NoteBook returns to the menu and the file is sorted if any sort fields have been modified. If the record is accepted, the contents of the record are displayed and the user is prompted with each field input just as if it was Add Mode. A RETURN leaves each field unchanged, a control-Z or QUIT key aborts the process, returning to the menu, and a DONE key or completion of responding to all prompts will display the resultant record and NoteBook will ask if the modified record is correct. If the answer is "Y" (Yes), the data file record will be updated, and NoteBooK will prompt again for a record to "Search for:#". If the answer is not "Y" (Yes), the modification of tha record is aborted and NoteBook again prompts for a new record to "Search for:#". Modify mode does not change the size of your data file or use additional disk space unless sorting is done. Records are updated in place within the file. This means, however, that the modified record length must be identical with that of the initial record. .hl 2 Use Mode When NoteBook starts up, it assumes the user will be accessing the default data file for the NoteBook program being used. You may elect to USE a different data file. If the NoteBook Program supports the Use mode, typing U to the "Choice:#" prompt will cause the current data base file name to be displayed, along with a prompt for a new file name. If a carriage return is hit, the existing data file name will be retained. One must be careful using this option as it is possible to select an existing data base created via a different NoteBook function, and try and access it via the current NoteBook function. If this happens, the record selection fields would be wrong and the existing data base could be damaged. In general, the following rule must be observed: if you wish to access an alternate data base for a NoteBook program, that data base must have been created using that NoteBook Program. .hl 1 NoteBook Control Modules Each "Program" supported by NoteBook is controlled by four text modules contained in SYS$VPWFILES:VPW.TLB and the HELP text in VPW.HLB. If the VPW program name is PROGRAM then text modules exist in VPW.TLB with the following names. .list .le;PROGRAM. .LE;PROGRAM__PROMPTS .le;PROGRAM__FORMS .LE;PROGRAM__SORT .END LIST It is not intended that these modules be created by hand. The information to be presented is for use by someone familiar with the internal workings of the NoteBook subroutines as an aid in remembering the structure which is to be supported. A command procedure, CRENOTBOK.COM, exists which can be used for designing prototype control modules and it should generally be used. If a control module does not have the correct format, NoteBook will not initialize correctly and will die with elaborate error messages. .hl2 The PROGRAM Module The PROGRAM module contains the menu for the NoteBook Program function and a list of allowed responses to the menu. The format of the module is .lit You may choose: Choice 1 - Text Choice 2 - Text ... .... / Chs1 Chs2 Chs3 ... Chsn .end literal This text is created with an editor and the choices have embedded escape sequences to turn bolding on and off around the minimum number of letters to enter to select the choice. The menu is terminated with a "/" which is immediately followed by an allowed choice list, each item of which is separated by spaces. So that the menu can be used on terminals which do not recognize the BOLD/UNBOLD escape sequences, the menu display module converts these escape sequences to ASCII nulls prior to printing. .hl 2 The PROGRAM__PROMPTS Module The PROGRAM__PROMPTS module contains the program title, the name of the data file to use, and information on each field of the data base. Up to twenty different fields may be defined within the record. This data includes: .list .le;The input field prompt. .le;The length (in bytes) of the data field. .le;The HELP information keywords used to access HELP from VPW.HLB for the data field. .le;The data match type (optional). .le;Data match type check fields (if data match type is defined). .end list Each item of data is separated from the rest by a vertical bar. The order of items in the prompt list and each previous field length determines the location of the next data field within the record. For example: .lit Last Name|15|PHONEBOOK NAME Social Security #|11|SECURITY SOC_SECURITY_NUMBER|4|___-__-____ Married [Y/N]|1|SECURITY STATUS!8!Y N .end literal In the first example, the prompt is "Last Name" and the length of the input field is 15 characters. The "Last Name" field begins at the first character in the record. If help is requested, it is looked for in VPW.HLB using the keywords PHONEBOOK NAME. In the second example, the user would be prompted for "Social Security _#". This field begins after the "Last Name" field at position 16 within the record. The field length is 11 characters wide, and data may only be be entered where the underlines, "__", are present. If HELP is requested, it is requested with the keywords SECURITY SOC__SECURITY__NUMBER. In the third example, NoteBook prompts to see if the user is married. The allowed answers are only "Y" or "N". Match type is indicated by a number. The values represent powers of 2, i.e., 0,1,2,4,8,16,32,64,128,256 so that, where logical, match types can be added to require both conditions to be true. The following match types are defined. .list .le;0 -> No data type checking required. .le;1 -> Return to the menu on null input in Add mode. .le;2 -> Required input. Data or Control-Z must be entered .le;4 -> Protected field input. New data may be entered only in areas where an underline exists. All other areas must be entered as shown. The "4" is followed by a vertical bar and the input field as in the previous example for Social Security Number. .le;8 -> Match one of list. The "8" is followed by a vertical bar and a list of items to match each separated by a single space as in the above example for marital status. Note that the matching is sensitive to the case of the input data. If the allowed list of input strings is in upper case, allowed answers must also be in upper case. .le;16 -> Verify the input is in VAX date format (DD-MMM-YYYY). .le;32 -> Check the input to see if it lies within the range of numbers from the low value to the high value. The "32" is followed by a vertical bar followed by two numbers separated by a "/". The first number is the low value, the second the high value. The numbers are treated as ASCII representations of single precision floating point numbers. .le;64 -> Integer_*2 data. To date use of binary data is mostly experimental. .le;128 -> Integer_*4 data. .le;256 -> Real_*4 data. .end list Match types fall into three groups, the required input type 1 or 2, the type of input represented by values 4,8,16 and 32, and the three binary data types, 64,128,256. Types 1 and 2 can logically be added to the second group. Type 4, 8, 16, and 32 can not be logically added to each other. The binary data can not be logically added with any other data type. .hl 2 The PROGRAM__FORMS Module The PROGRAM__FORMS module is composed of triads of entries. Up to ten report formats may be defined. The controlling format specifiers may be up to 132 characters long. The first item of each triad is a title for the report format which may be displayed in the Display Mode Menu. The title is only displayed if there is more than one output form present in the form module. Each NoteBook program must have at least one report form defined. The first triad in the list of formats is the default report format for the program. This is the format which is used to display the record during Add, Modify, and Delete mode verification. Following the title in each triad is the format statement. It must be an acceptable RUN time Fortran format statement, starting with a "(" and ending with a ")". The length of the format statement is limited to 132 characters. Each field to be displayed is character data, so Fortran "A" format must be used. The last item of each triad is a list of numbers separated by commas. The first number is the total number of fields to be output. It must be one or more. The other items represent a list of the order of the items to be displayed at that position. If PROGRAM__PROMPTS has defined five input fields, up to 5 items may be output, and these fields (numbered 1 to 5) may appear in any order. For example: .lit My Private List (' ',A,T20,A,T32,A,T50,A,'/',' ',T50,A) 5,1,4,3,2,5 .end literal would create a form with the title "My Private List" which would be output on two lines per record in "A" format. The string "5,1,4,3,2,5" means that all five items would be printed, the first field is the first output, the fourth field the second output, the third field the third output, the second field the fourth output, and the fifth field the fifth output. .hl2 The PROGRAM__SORT Module The module PROGRAM__SORT defines if and how to sort the file. PROGRAM__SORT consists of a single line of numbers. The first number indicates how many sort fields exist and may be from 1 to 10. If it is zero, the file will not be sorted. The first number is followed by up to ten sets of numbers, 4 numbers/set. The sets of four numbers each consist of: .lit 1,0/1,Field_position,Field_length .end Literal The first number in each set must always be "1" to indicate that the data is character data. The second number is a "0" or a "1" to indicate that the data is to be sorted into ascending or descending order. The third number is the starting location in the record where the sort field begins, and the last number is the length (in bytes) of the field to sort). .hl 1 Designing a Data Base To help in designing a data base, a procedure CRENOTBOK.COM exists which will create prototype control modules and help file. The prototype text modules are designed to be a start to the final format, but CRENOTBOK.COM does not create a final, polished NoteBook program which sorts nicely, has a customized menu, and has many useful report formats. Also, it does not support binary data types yet (which are still experimental). For any reasonable output format for Display mode, the PROGRAM__FORMS module must be edited to tailor the basic format for readability and to add new formats. Some knowledge of Fortran Format statements is needed to do this. Likewise, the PROGRAM__SORT module must be tailored (and for now PROGRAM.SRT). The prototype menu, PROGRAM.TXT, should be edited to customize it and remove any unwanted features. Finally, the prototype HELP module must be edited to add the appropriate HELP text for the program. .hl 2 Using CRENOTBOK.COM .lit To Be Supplied at Some Later Date (a year later and still counting...) .end literal .hl 1 Possible Problems A VAX may run with user disk quotas which are not large. It is possible, but not probable, if one is short on disk space to destroy one's data file by being careless. For example, if the delete function or sorting fail in some hither-to unpredicted way (both require disk space to create new files) one could be left with a new 0 length file (containing nothing) and an old file containing the information prior to the failure. Both the sort and delete routines try to handle such problems correctly. For example, if the sort fails for any reason, the new (and sorted) file is deleted, and the old (unsorted) file is kept, and an error message is produced telling you what happend and to check your disk quotas. However, after such a warning, it pays to be very cautious and check your file. If any VAX function is preformed (PURGE, etc) which would result in purging the data base files and if a corrupted file accidently exists, the old file with the data would get deleted and the new corrupted file would be retained. Every attempt has been made to prevent this from happening, and any time anything goes wrong an error message is displayed. If an error message is displayed, write it down BEFORE pressing return. Better yet, type Control-Z instead of return, and issue a .lit $DIR/SIZE=ALL Data_File_Name .end lit If the most recently created data file is zero blocks long, you have problems and you should get assistance from someone who knows their way around the VAX. Another time to be careful is when you are deleting or sorting entries. Do not try exiting by typing Control-Y. You could wind up with a corrupted or null data base again and no error message would result.