ERASE SET INTEN OFF SET TALK OFF STORE 'Z' TO I:GOT DO WHILE 0 = @(I:GOT,'Y N') STORE ' ' TO I:GOT @ 2,0 SAY 'DO YOU WANT HARDCOPY? Y/N' GET I:GOT READ STORE !(I:GOT) TO I:GOT ENDDO IF I:GOT = 'Y' STORE T TO PRINT ELSE STORE F TO PRINT ENDIF STORE 1 TO COPIES STORE 0 TO TIMES IF PRINT ACCEPT 'COPIES ? ' TO NUM IF VAL(NUM) <> 0 STORE VAL(NUM) TO COPIES ENDIF SET CONSOLE OFF SET PRINT ON ENDIF STORE '"PRESS TO CONTINUE " TO CONTINUU' TO CONTINUE STORE ' "As of JAN 19, 1983"' to i::date DO WHILE TIMES <> COPIES STORE TIMES + 1 TO TIMES ************************************************************************* ERASE ? ' PROGRAM SYSGEN ' , i::date ? ? ? ' Navy Regional Automation Center - code 40' ? ? ' San Diego, CA' ? ? ? ? ? ? ? ? ? ? ? ? ? ? IF .NOT. PRINT ACCEPT &CONTINUE ENDIF ************************************************************************** ************************************************************************* ERASE ? ' PROGRAM SYSGEN ' , i::date ? ? '1. SYSGEN IS A UTILITY PROGRAM DESIGNED TO BUILD SYSTEMS THAT' ? ' INTERACT WITH dBASE II DATA BASE FILES. ' ? ? '2. FILES USED BY SYSGEN:' ? ' .dbf system.cmd system.com syssys.cmd sysadd.cmd' ? ? ' syssel.cmd syschg.cmd sysdel.cmd syslst.cmd sysfil.dbf' ? ? ' sysprt.dbf sysrpt.cmd sysmnt.cmd sys9.cmd sys60.dbf' ? ? ' syschk.dbf swait.cmd sysgen.cmd sysbld.cmd sysdoc.cmd' ? ' * *' ? " sysread.doc sys.com syscrt4.cmd sys45wk1.dbf sys45wk2.dbf" ? ' * *' ? ' syschk.ndx gen:temp.dbf .sub' ? ? ' UPON COMPLETION, ALL TEMPORARY FILES ARE DELETED BY SYSGEN.' ? ' FILES FLAGGED WITH ASTERISK (*) ABOVE THEM ARE TEMPORARY WORK FILES.' IF .NOT. PRINT ACCEPT &CONTINUE ENDIF ************************************************************************** ************************************************************************* IF PRINT EJECT ENDIF ERASE ? ' PROGRAM SYSGEN ' , i::date ? ? '3. EXECUTING SYSGEN:' ? ' a) Enter the command DO SYSGEN' ? ' b) Sysgen will respond with:' ? ? ' SYSTEM NAME : : ' ? ' ENTER THE NAME OF THE SYSTEM YOU WISH TO CREATE OR UPDATE -OR-' ? ' ENTER "SYSDOC" TO OBTAIN DOCUMENTATION ON SYSGEN -OR- ' ? ' ENTER "QUIT" TO RETURN TO CP/M.' ? ' Enter the name you wish assigned to your system, or' ? ' enter "SYSDOC" to generate documentation on Sysgen. The name entered' ? ' must be six characters long, and may be the same name assigned to' ? ' your data base file. Sysgen will reject names beginning with "SYS".' ? ? ' example: SYSTEM NAME :TESTER:' ? ? ' c) Messages:' ? ' INVALID SYSTEM NAME - CORRECT OR ENTER "QUIT" ' ? ' SYSTEM NAME MUST BE SIX CHARACTERS - CORRECT OR ENTER "QUIT"' ? ' DUPLICATE NAME, CORRECT OR ENTER "QUIT" OR "UPDATE".' ? ' example: SYSTEM NAME :QUIT : OR' ? ' SYSTEM NAME :UPDATE: ( SEE SYSGEN NOTES )' IF .NOT. PRINT ACCEPT &CONTINUE ENDIF ************************************************************************** ************************************************************************* ERASE ? ' PROGRAM SYSGEN ' , i::date ? ? "4. EXECUTING SYSGEN: CONT'D" ? ? 'a)  ENTER DATE IN "YYMMDD" FORMAT: :' ? ? ' Enter the current date. This date will be' ? ' assigned to your system as the "build-date", and will appear' ? ' in the upper left hand corner of screen when executing your' ? ' system. ' ? ? ' example: October 20, 1982 :821020:' ? ? ' Messages:' ? ' INVALID DATE - TRY AGAIN !' ? ? 'b)  SYSTEM PWD: :' ? ' At this point, enter the password you would like your system' ? ' to have. Sysgen will perform no validation on password other' ? ' than for a length of six positions.' ? ? ' example: SYSTEM PWD:TESTER:' IF .NOT. PRINT ACCEPT &CONTINUE ENDIF ************************************************************************** ************************************************************************* IF PRINT EJECT ENDIF ERASE ? ' PROGRAM SYSGEN ' , i::date ? ? "5. EXECUTING SYSGEN: CONT'D)" ? ? 'a)  FILE NAME: :  ' ? ? ' Enter the name of your data base file (6 char. max.).' ? ' Sysgen will ask for the drive and then check disk to ' ? ' ensure that the file does exist.' ? ? ' example: FILE NAME:TEST :' ? ? ' Messages:' ? ' INVALID FILE NAME - TRY AGAIN OR ENTER "QUIT"' ? ' FILE NOT FOUND - TRY AGAIN OR ENTER "QUIT"' ? ? ' NOTE: Prior to executing Sysgen, the data base file you intend to' ? ' use, must be dveloped using the dBASE II "CREATE" command.' IF .NOT. PRINT ACCEPT &CONTINUE ENDIF ************************************************************************** ************************************************************************* ERASE ? ' PROGRAM SYSGEN ' , i::date ? ? "6. EXECUTING SYSGEN: CONT'D" ? ? 'a)  FUNCTIONS: ' ? '  1. RETURN TO CP/M 2. RETURN TO dBASE II' ? '  3. PERFORM SYS. MAINT. 4. ADD RECORD' ? '  5. CHANGE RECORD 6. DELETE RECORD' ? '  7. DISPLAY RECORD 8. CREATE REPORT' ? '  9.: : 0.: :' ? ? ' HEADER : :' ? ? ' Sysgen displays the eight default functions' ? ' of the system, and allows the user the option of specifying' ? ' two other functions he plans to code himself. Also, Sysgen ' ? ' allows the user the option of entering a header line, which will' ? ' be displayed on all menu screeens. No validation is done on any' ? ' of these entries.' ? 'NOTE: Use Function 9. or 10. only if "custom coding" will be added' ? ' to the system. Access of function 9 or 0 will cause dBASE II to' ? ' execute a command file with the name of xxxxxx9.cmd or xxxxxx10.cmd' ? ' respectively, where "xxxxxx" is the system name provided earlier.' IF .NOT. PRINT ACCEPT &CONTINUE ENDIF ************************************************************************** ************************************************************************* IF PRINT EJECT ENDIF ERASE ? ' PROGRAM SYSGEN ' , i::date ? ? "7. EXECUTING SYSGEN: CONT'D" ? ? 'field-1 {t} field-2 {t} field-3 {t} field-4 {t} field-5 {t}' ? 'field-6 {t} field-7 {t} field-8 {t} field-9 {t} field-10 {t}' ? 'field-11 {t} field-12 {t} field-13 {t} field-14 {t} field-15 {t}' ? 'field-16 {t} field-17 {t} field-18 {t} field-19 {t} field-20 {t}' ? 'field-21 {t} field-22 {t} field-23 {t} field-24 {t} field-25 {t}' ? 'field-26 {t} field-27 {t} field-28 {t} field-29 {t} field-30 {t}' ? 'field-31 {t} field-32 {t}' ? ? ' Sysgen displays the fields contained in the data' ? ' base previously entered. Up to 32 fields (the maximum' ? ' allowed in a dBASE II file) will be shown. This display will' ? ' remain on the screen while Sysgen prompts for field name' ? ' entries. The {t} represents data-type, where "t" is one' ? ' of the following:' ? ? ' c = character n = numeric l = logical ' ? IF .NOT. PRINT ACCEPT &CONTINUE ENDIF ************************************************************************** ************************************************************************* ERASE ? ' PROGRAM SYSGEN ' , i::date ? ? "8. EXECUTING SYSGEN: CONT'D" ? ? 'a) FIELD SELECTIONS:' ? ' : : : : : : : :' ? ? ' The user may enter from one to four field' ? ' names. The generated system will use these fields to find' ? ' records in the data base. It is mandatory that at least' ? ' one field be entered here. The field(s) entered here' ? ' must match one of those in the data base file, as described' ? ' on the previous page. Sysgen will not allow logical field' ? ' types to be entered here.' ? ? ' EXAMPLE:' ? ' FIELD SELECTIONS: ' ? ' :field-1 : :field-4 : :field-10 : :field-6 :' ? ? ' Messages:' ? ' AT LEAST ONE FIELD MUST BE ENTERED - CORRECT OR ENTER "QUIT"' ? ' INVALID FIELD ENTERED - CORRECT OR ENTER "QUIT"' ? IF .NOT. PRINT ACCEPT &CONTINUE ENDIF ************************************************************************** ************************************************************************* IF PRINT EJECT ENDIF ERASE ? ' PROGRAM SYSGEN ' , i::date ? ? "9. EXECUTING SYSGEN: CONT'D" ? ? 'a) REPORTS REPORT TITLES' ? ' 1. : : : :' ? ' 2. : : : :' ? ' 3. : : : :' ? ' 4. : : : :' ? ' 5. : : : :' ? ' 6. : : : :' ? ' 7. : : : :' ? ' 8. : : : :' ? ? ' The user should enter a field name in the' ? ' "REPORTS" column for each report desired. A maximum of eight' ? ' reports may be requested. The field entered will be used to' ? ' "index" the report in ascending sequence. Duplicate entries' ? ' are allowed for reports requiring the same sequence. The' ? ' "REPORT TITLES" entries are used for display on the reports' ? ' menu. If not entered, Sysgen will create these entries.' ? ? ' example: See next page' IF .NOT. PRINT ACCEPT &CONTINUE ENDIF ************************************************************************** ************************************************************************* ERASE ? ' PROGRAM SYSGEN ' , i::date ? "10. EXECUTING SYSGEN: CONT'D" ? ? 'a) REPORTS REPORT TITLES' ? ' 1. :field-1 : :SPECIAL PROJECTS REPORT :' ? ' 2. :field-10 : :ADDRESS REPORT BY NAME :' ? ' 3. :field-8 : :SPECIAL TEAM REPORT :' ? ' 4. :field-13 : :FIELD-13 REPORT :' ? ' 5. : : : :' ? ' 6. : : : :' ? ' 7. : : : :' ? ' 8. : : : :' ? ? ' The above is an example of how the report entries would' ? ' look when four reports were requested. The title displayed' ? ' in the fourth "REPORT TITLE" illustrates what sysgen would' ? ' supply if this entry was omitted. Field names entered must' ? ' match one of those defined in the data base file. Sysgen will' ? ' will reject entries if the field-type is logical, or the ' ? ' field-lenght is greater than one hundred characters.' ? ? ' Messages: INVALID FIELD ENTERED - CORRECT OR ENTER "QUIT"' IF .NOT. PRINT ACCEPT &CONTINUE ENDIF ************************************************************************** ************************************************************************* IF PRINT EJECT ENDIF ERASE ? ' PROGRAM SYSGEN ' , i::date ? "11. EXECUTING SYSGEN: CONT'D" ? ? 'a) ENTER DATE FIELD, OR IF DATE SELECTION NOT REQUIRED : :' ? ' If the data base was defined with a numeric field to con-' ? ' tain the date, it may be entered at this point. If entered,' ? ' Sysgen will provide a six-posistion range-checking routine' ? ' in the reports module for added selection on date. This option' ? ' allows the user to select report records based on a range of' ? ' dates. For instance, If you wanted all records with the dates' ? ' of 820130 thru 830925, this option would allow such a selection.' ? ' If the data base does not contain a date field, simply enter ' ? ' and this option will be omitted from the system being' ? ' generated.' ? 'NOTE: The six-position date field must be in the form "YYMMDD" or the' ? ' date comparisons will be invalid.' ? ? ' example:' ? 'b) ENTER DATE FIELD, OR IF DATE SELECTION NOT REQUIRED :field-6 : ' ? ' Messages:' ? ' INVALID DATE FIELD - CORRECT OR ENTER "QUIT"' ? ' INVALID FIELD ENTERED - CORRECT OR ENTER "QUIT"' ? ' DATE FIELD MUST BE NUMERIC - CORRECT OR ENTER "QUIT"' IF .NOT. PRINT ACCEPT &CONTINUE ENDIF ************************************************************************** ************************************************************************* ERASE ? ' PROGRAM SYSGEN ' , i::date ? ? "12. EXECUTING SYSGEN: CONT'D" ? ? 'a)  IS VALIDATION DESIRED (Y/N) ? : :' ? ? ' The user has the option of requesting validation' ? ' on data input to the system. An entry other than "Y"' ? ' will default to no validation. If this option is selected,' ? ' Sysgen will prompt the user for validation at the end of' ? ' the second pass. The two compile passes take a few minutes.' ? ? ' example: ' ? ' IS VALIDATION DESIRED (Y/N) ? :Y:' ? ? 'b) Messages:' ? ? ' SYSGEN ** COMPILE PASS I' ? ' SYSTEM ** COMPILE PASS II' ? IF .NOT. PRINT ACCEPT &CONTINUE ENDIF ************************************************************************** ************************************************************************* IF PRINT EJECT ENDIF ERASE ? ' PROGRAM SYSGEN ' , i::date ? ? "13. EXECUTING SYSGEN: CONT'D" ? 'a)  VALIDATION OF FIELD - field-1 (Y/N) : :' ? '  ENTER "B" TO DISCONTINUE VALIDATION ' ? ? ' Sysgen will display the data base fields' ? ' one at a time, prompting for validation. The user has the' ? ' option of entering Y, N, or B. If Y is entered, Sysgen will' ? ' prompt the user for the desired validation criteria. For an' ? ' entry of N, Sysgen will bypass this field and prompt for' ? ' validation on the next field in the data base. If the user' ? ' enters B, Sysgen will bypass promting for the remaining' ? ' fields.' ? ' NOTE: While prompting for validation, if a logical field-type, a' ? ' field > 20 characters or a numeric w/decimal field is' ? ' detected, Sysgen will bypass that field and go to the next' ? ' without allowing any validation input.' ? ? 'b)  MANDATORY OR OPTIONAL FIELD - field-1 (M/O) ?: :' ? ' If a Y was entered for the validation prompt, the user will now' ? ' receive the above prompt. An entry of M means the field must' ? ' contain data when a record is added to the system.' IF .NOT. PRINT ACCEPT &CONTINUE ENDIF ************************************************************************** ************************************************************************* ERASE ? ' PROGRAM SYSGEN ' , i::date ? ? "14. EXECUTING SYSGEN: CONT'D" ? 'a)  RANGE, TABLE, EQUAL VALIDATION - field-1 (R/T/E) ? : : ' ? ' The user is prompted for type of validation.' ? ? 'b) examples:' ? ' 1) RANGE, TABLE, EQUAL VALIDATION - field-1 (R/T/E) ? :R: ' ? ' field-1 START :000000:' ? ' STOP :888888:' ? ' (Accept input data that ranges from 000000 to 888888.)' ? ' 2) RANGE, TABLE, EQUAL VALIDATION - field-1 (R/T/E) ? :T: ' ? ' field-1 TABLE ENTRY # 1 :273457:' ? ' field-1 TABLE ENTRY # 2 :123456:' ? ' field-1 TABLE ENTRY # n :456789:' ? ' (The table will continue to accept entries until a is' ? ' entered with no entry in the data field, i.e. no more data' ? ' entries.)' ? ' 3) RANGE, TABLE, EQUAL VALIDATION - field-1 (R/T/E) ? :E: ' ? ' field-1 IS :83246: ' ? ' (Accept only input data that is equal to 83246.)' ? ? 'c) Messages: INVALID ENTRY - TRY AGAIN ! ( Prompt is then repeated )' IF .NOT. PRINT ACCEPT &CONTINUE ENDIF ************************************************************************** ************************************************************************* IF PRINT EJECT ENDIF ERASE ? ' PROGRAM SYSGEN ' , i::date ? ? "15. EXECUTING SYSGEN: CONT'D" ? ? 'a)  SYSGEN ** COMPILE PASS III ' ? ? ' This message appears on the final pass and will take a' ? " few minutes of disk operation to complete. Sysgen will" ? ' issue a command stream to CP/M to transfer files and' ? ' write your new system to the drive that you indicated' ? ' for your data base file.' ? ? ' To run your new system, place your new "system" disk in' ? ' drive-A and type control C (^C). At the A> prompt type' ? ' DO SYSTEM and a carriage return. Then follow the prompts.' ? ' ' ? ' WARNING: If you have a data base file over 35k, you would ' ? ' be wise to use a copy of your data base file "STRUCTURE ONLY"' ? ' to build your system. You would then run the system (DO SYSTEM)' ? ' with the data file on a separate drive but keep' ? ' a copy of your data file structure (with the same file name)' ? ' on the "system" disk so that you can use the Sysgen "UPDATE" ' ? ' option to modify your system design. (see NOTES)' IF .NOT. PRINT ACCEPT &CONTINUE ENDIF ************************************************************************** ************************************************************************* ERASE ? ' PROGRAM SYSGEN ' , i::date ? ? '16. ************* SYSGEN * NOTES ************* ' ? ? 'a) Sysgen is designed to run with the file "DBASE.COM" renamed' ? ' to "DO.COM" . The user should ensure that this has been done' ? ' before attempting to run Sysgen.' ? ? 'b) In most instances, if Sysgen encounters an error condition on user' ? ' input, the user is given the option of entering "QUIT" . If this ' ? ' "QUIT" option is taken, Sysgen purges all entries pertaining to the' ? ' system being built and goes to an end of job.' ? ? 'c) Whenever the name of a system that has been previously built' ? ' is entered, Sysgen will give the user the option of entering' ? ' "UPDATE" . If this "UPDATE" option is taken, Sysgen will step' ? " through it's prompts displaying the data previously entered." ? ' The user may change any previously entered data, or symply hit' ? ' to leave it unchanged. After all prompts have been' ? ' answered, Sysgen will then rebuild ("UPDATE") the system. ' ? ? IF .NOT. PRINT ACCEPT &CONTINUE ENDIF ************************************************************************** ENDDO IF PRINT EJECT ENDIF SET PRINT OFF SET CONSOLE ON ERASE QUIT RETURN