R: Morrow Designs Micro-Menu system - Rev 2.3 R: double sided version R: Module - MICRO.PIL R: Copyright 1982, 1983 Morrow Designs, Inc. R: All Rights Reserved R: Written by Harrison Schreppel for Morrow Designs R: Modified by Steve Tai and John VanderWood for NewWord 12/9/83 R: R: The next lines define $drive variable to R: avoid "Variable not found" error msg. DEF: $FILE DEF: $DRIVE B DEF: $DSTDRV B R: display main menu *BEGIN ESC:*EXITMENU U: *MENU1 U: *STATUS U: *CHANGEMSG *INPUTLOOP3 INMAX:1 CUR:26,17 A: M: C , JN:*LABEL1 UY: *CHANGE J:*INPUTLOOP3 *LABEL1 M: 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , U , JN:*INPUTLOOP3 CLRS: M: 1 , JY: *NEWWORD M: 2 , JY: *LOGICALC M: 3 , JY: *CORRECT M: 4 , JY: *PEARL M: 5 , JY: *QUEST M: 6 , JY: *MBASIC M: 7 , JY: *BAZIC M: 8 , JY: *TUTORIAL M: 9 , JY: *CREATE M: U , J: *UTILITY *NEWWORD CLRS: T:{Preparing to run NewWord. Please stand by... CPM:PAUSE NW NewWord|NW|A:RETURN| T:} J:*BEGIN *LOGICALC CLRS: T:{Preparing to run LogiCalc. Please stand by... CPM:PAUSE LC LogiCalc|LC|A:RETURN| T:} J:*BEGIN *CORRECT CLRS: T:{Preparing to run Correct-It. Please stand by... CPM:PAUSE CORRECT Correct-It|CORRECT|A:RETURN| T:} J:*BEGIN *PEARL ESC:*BEGIN U:*PEARLMENU *INPUTLOOP4 INMAX:1 CUR:23,16 A: M: 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , JN:*INPUTLOOP4 M: 1 , 4 , 5 , 8 , CY:A=1 JY:*PROMPT M:6 , CY:A=3 JY:*PROMPT C:A=4 *PROMPT M: 1 , DEFY:$PROG WELCOME DEFY:$MSG M: 2 , DEFY:$PROG PEARLDF DEFY:$MSG Put a formatted diskette in drive B: for Design Forms. M: 3 , DEFY:$PROG PEARLDR DEFY:$MSG Put the right database diskette in drive B: for Design Reports. M: 4 , DEFY:$PROG PEARLED DEFY:$MSG Put the right database diskette in drive B: for Enter Data. M: 5 , DEFY:$PROG PEARLPR DEFY:$MSG Put the right database diskette in drive B: for Produce Reports. M: 6 , DEFY:$PROG PSORT DEFY:$MSG Put the right database diskette in drive B: for Sort Data. M: 7 , DEFY:$PROG PEARLFM DEFY:$MSG Put the right database diskette in drive B: for File Maintenance. M: 8 , DEFY:$PROG MAKELCF DEFY:$MSG Put the right database disk in drive B: for Create LogicCalc file. CLRS: LF: 10 T:{The Personal Pearl Working diskette to use is number #A T:}$MSG T: T: Press any key to continue .... a: T:{Preparing to run Personal Pearl. Please stand by... CPM:PAUSE $PROG PEARL|$PROG|A:RETURN| T:} J:*BEGIN *QUEST CLRS: LF:3 T:Insert your{QUEST POSTING DISK}in drive B at this time. T: T:When requested, insert your{QUEST INSTRUCTIONAL}(DATA){DISK} in drive A. T: T:After inserting the QUEST POSTING DISK in drive B, press return T:to run QUEST. INMAX:1 A: INMAX:80 CPM:PAUSE KP QUEST|KP|A:RETURN| T:} J:*BEGIN *MBASIC CLRS: T:{Preparing to run Microsoft BASIC. Please stand by... CPM:PAUSE MBASIC MBASIC|MBASIC|A:RETURN| T:} J:*BEGIN *BAZIC CLRS: T:{Preparing to run BaZic. Please stand by... CPM:PAUSE BAZIC08 BaZic|BAZIC|A:RETURN| T:} J:*BEGIN *TUTORIAL T:{Loading tutorial menu... CH:TUTORIAL.PIL *CREATE T:{Loading working diskettes menu... CH:MDWORK.PIL *UTILITY ESC:*BEGIN U:*MENU2 *RFRSH U:STATUS U:*CHANGEMSG *INPUTLOOP5 INMAX:1 CUR:26,18 A: M: C , JN:*LABEL2 UY:*CHANGE J:*INPUTLOOP5 *LABEL2 INMAX:80 M: 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , JN:*INPUTLOOP5 M: 1 , CHY:MDWORK.PIL M: 2 , JY:*DIR M: 3 , JY:*TYPE M: 4 , JY:*COPY M: 5 , JY:*FORMAT M: 6 , JY:*BACKUP M: 7 , JY:*STAT M: 8 , JY:*CPM M: 9 , J:*OTHER *DIR CLRS: T:Now getting directory, Please stand by...{ CPM:DIR $DRIVE: T:}Press {RETURN} when done viewing directory J:*DELAY *TYPE U:*GETFILE J(B):*RFRSH CUR: 0,22 T:Do you want the file to go to the screen{(S),}or the printer{(P)?} INMAX:1 TNR:Enter{S}or{P:} *INPUTLOOP6 CUR: 15,23 A: M: S , P , JN:*INPUTLOOP6 M: S , CLRS: Ty:Now getting file... Ty:Press{CONTROL-S}to start and stop the scrolling.{ CPMY:PIP CON:=$DRIVE:$FILE| TY:}Press{RETURN}when done viewing file. JY:*DELAY Jy:*UTILITY T:{Getting file to print..... CPM:PIP LST:=$DRIVE:$FILE| T:} J:*UTILITY *COPY R:Copy a file or files to another diskette U:*CLEAR CUR:0,22 T:Do you want to copy all the files on the current drive{(Y or N)?} *INPUTLOOP8 CUR:66,22 INMAX:1 A: M: Y , N , Jn:*INPUTLOOP8 INMAX: 13 M: N , Jn: *NEXT U: *GETFILE J(B):*RFRSH U: *DSTDRIVE CLRS: T:Preparing to copy $FILE from Drive $DRIVE to Drive $DSTDRV T:Please stand by...{ CPM:PIP $DSTDRV:=$DRIVE:$FILE T:} J:*UTILITY *NEXT U: *DSTDRIVE CLRS: T:Preparing to copy all files from Drive $DRIVE to Drive $DSTDRV T:Please stand by...{ CPM:PIP $DSTDRV:=$DRIVE:*.* T:} J: *UTILITY *DSTDRIVE U:*CLEAR CUR:0,22 T:What drive are you copying to? U: *DRVSEL M: , Jy:*DSTDRIVE DEF: $DSTDRV $TEMP E: R: general purpose drive logging subroutine *DRVSEL INMAX:1 TNR:Enter the drive letter (A,B,C,D,E) *LOOP2 CUR:34,22 A: M: , Jy:*DOWN M: , A , B , C , D , E , Jn: *LOOP2 SAVE: $TEMP INMAX:80 *DOWN E: *FORMAT CLRS: LF:4 T: This selection may be used to format diskettes for use with your Micro T: Decision, or to put a copy of the CP/M operating system on a diskette T: (SYSGEN). Formatting a diskette completely erases any information on it, T: so{be careful}about which diskette you insert in the drive for formatting. T: T: {1} Format a diskette T: {2} Sysgen to a diskette T: T: To exit without formatting any diskettes, press{E}. LF:2 TNR:----->} *FRMTLOOP CUR:8,15 INMAX:1 A: M: 1 , 2 , E , JN:*FRMTLOOP M: E , JY:*UTILITY M: 1 , JN:*SYSGEN CLRS: T:Preparing to format, please stand by...{ CPM:FORMAT| T:} J:*UTILITY *SYSGEN CLRS: T: When the SYSGEN program is run, it will pause and ask for a{DESTINATION} T: Drive. At this point, enter the drive name (A-E) you wish to have the T: system transferred to. T: T: To exit from the SYSGEN prompt, press {RETURN} when asked to enter a T: DESTINATION drive. T: T: To continue, hit any key. A: CPM:SYSGEN;A| J:*UTILITY *BACKUP CLRS: T: T: T: {Use this function to make backup copies of your diskettes.} T: T: This procedure copies the entire contents of a source diskette, T: to the destination diskette. The destination diskette must have T: been formatted before being used. T: T: {DRIVE A:}is used for the{SOURCE}diskette, and T: {DRIVE B:}is used for the{DESTINATION}diskette. T: T: {Do not change diskettes until requested to do so by the system.} T: T: Press{RETURN}when you are ready to proceed. T: T: To exit without backing up any diskettes, press{E}. TNR:-----> INMAX:1 A: M: E , Jy:*UTILITY T:{ CPM:BACKUP| T:} J:*UTILITY *STAT U:CLEAR CUR:0,22 T:Do you want to check the size of a file{(F),} or the space remaining on a TNR:diskette{(D).} Enter{F}or{D:} *INPUTLOOP9 CUR:29,23 INMAX:1 A: M: D , F , Jn:*INPUTLOOP9 M: F , R: Perform stat on a file UY:*GETFILE J(B):*RFRSH CLRSY: TY:Checking the size of $DRIVE:$FILE TY:Please stand by...{ CPMY:STAT $DRIVE:$FILE TY:}Press{RETURN} to go back to the menu. JY:*DELAY R: perform stat on a disk CLRS: T:Checking the amount of space remaining on drive $DRIVE. T:Please stand by.{ CPM:STAT $DRIVE: T:}Press{RETURN}to go back to the menu. J:*DELAY *CPM CLRS: T: T: This menu allows you to enter CP/M commands directly. It can be T: used by the curious to experiment with, and learn about CP/M. T: It can also be used by experienced CP/M users to perform a T: command directly. T: T: To use this menu, just type a valid CP/M command, followed by T: {RETURN.} T: T: Press{RETURN} only to go back to the utility menu. T: T: {COMMAND:} *GETCOM CUR: 13,11 A: $COMMAND R: NULL COMMAND? M: , R: If so, go back to the utility menu JY: *UTILITY CLRS: T:After certain CP/M commands, you must press{CONTROL-C}when ready to return T:to the Micro Menus. T: T:Now executing command, please stand by...{ CPM:$COMMAND| T:} J:*UTILITY *OTHER U:CLEAR CUR:0,22 T:Do you want to Erase{(E),} or Rename{(R)}a file? TNR:Enter{E}or{R:} *INPUTLOOPA CUR:14,23 INMAX:1 A: M: E , R , Jn:*INPUTLOOPA M: E , JN:*RENAME U:*GETFILE J(B):*RFRSH CUR:0,22 T:Press{RETURN}to erase $DRIVE:$FILE, or{A}to abort. INMAX:1 A: M: , CLRSY: TY:Now erasing $DRIVE:$FILE{ CPMY:ERA $DRIVE:$FILE T:} J:*UTILITY *RENAME U:GETFILE J(B):*RFRSH DEF:$OLDNAME $FILE U:*CLEAR CUR:0,22 T:Enter new name of file: CUR:23,22 INMAX:13 A: SAVE:$FILE CLRS: T:Now renaming $DRIVE:$OLDNAME. The new name will be $DRIVE:$FILE.{ CPM:REN $DRIVE:$FILE=$DRIVE:$OLDNAME T:} J:*UTILITY R:===================================================================== R: R: Menu displays R: *MENU1 CLRS: T: {M A I N M E N U} T: This menu is your road map through the CP/M operating system. To T: perform these functions, just enter the appropriate number after T: the prompt below, then follow the instructions given. LF:1 T: {1 NewWord} Word Processing T: {2 LogiCalc} Financial Analysis T: {3 Correct-It} Spelling Checker / Corrector T: {4 Personal Pearl} Data Base Manager T: {5 Quest} Bookkeeper System T: {6 MBASIC-80} Microsoft BASIC T: {7 BaZic} North Star Compatible BASIC T: {8 CP/M Tutorial menu} CP/M Learning Tool T: {9 Create working diskettes} T: {U Utility menu} T: {ESC Exit to CP/M} LF:1 T: {Enter your selection:} E: R:===================================================================== R: *MENU2 CLRS: T: {U T I L I T Y M E N U} T: T: This menu allows you to perform a number of everyday utility functions. T: The function to be performed is selected by entering the number T: corresponding to the function desired. For some of the functions to T: work, you should set the{CURRENT DRIVE}to the drive that is to be used. T:{ T: 1 Create a working diskette T: 2 Display a diskette directory T: 3 View or Print a file T: 4 Copy a file or files T: 5 Format or Sysgen a diskette T: 6 Make a backup diskette T: 7 Check diskette and file size T: 8 Execute a CP/M command T: 9 Rename or erase a file T: ESC Return to Main Menu T: T: Enter your selection:} E: R: R:===================================================================== R:PEARL MENU *PEARLMENU CLRS: LF:1 T: Personal Pearl function selection menu LF:1 T: See your Personal Pearl manual for a description of the options given LF:2 T: {1} Welcome (Demonstration and installation) T: {2} Design Forms T: {3} Design Reports T: {4} Enter Data T: {5} Produce Reports T: {6} Sort Data T: {7} File Maintenance T: {8} Create a LogiCalc format file T: {ESC} Exit to main menu LF:1 T:{Enter your selection:} E: R: R:========================================================================= R: Subroutines invoked from above R: *STATUS R: This routine refreshes the status lines (20-24) on the screen CUR:0,19 T:----------------------------------------------------------------------------- T:{CURRENT DRIVE:}$DRIVE: T: T: TNR: E: R:===================================================================== *CHANGE R: This routine is used to change the current drive R: All messages appear in the status area of the screen. R: U:*CLEAR INMAX:1 R: Get the new drive CUR:0,22 T: {Enter new drive ( A,B,C,D,E )} *INPUTLOOP2 CUR:16,20 A: M: A , B , C , D , E , , BELLn: Jn: *INPUTLOOP2 M: , SAVEn: $DRIVE U:*CLEAR *EXIT U:*CHANGEMSG INMAX:13 E: R:=========================================================================== *GETFILE R: Get the file to use for a command C:B=0 U:*CLEAR CUR:0,22 TNR:Press{RETURN}to use the file shown, or enter a new file name{:} $FILE CUR:64,22 INMAX:13 A: M: , SAVEN: $FILE *EXISTCHK EXIST:$DRIVE:$FILE Jy:*EXITGF U:*CLEAR CUR: 0,21 BELL: T:{ERROR: Cannot find "$FILE" on Drive $DRIVE.} Check spelling. T:You may search on another Drive{(D),}re-enter file name{(R),} TNR:or abort{(A)}the command? *INPUTLOOP7 CUR:26,23 INMAX:1 A: M: D , R , A , Jn:*INPUTLOOP7 M: A , R: variable 'B' is set as a condition flag to indicate abort was selected Cy:B=1 Jy:*EXITGF M: R , Jy:*GETFILE U:*CHANGE J:*EXISTCHK *EXITGF U:*CLEAR E: R:============================================================================ *CLEAR R: This routine clears messages from the status area CUR:0,21 T: T: TNR: E: R:============================================================================ *CHANGEMSG R: This routine simply puts a message in the status area to indicate what to R: press to change the current drive. CUR: 15,22 T: To change the current drive, press 'C'. E: R:============================================================================ R: This routine waits until a key is pressed, and goes back to the Utility R: Menu. *DELAY WAIT: M: TIMEOUT , JY:*DELAY J:*UTILITY R:============================================================================ *EXITMENU CLRS: T:{To re-enter the menu system, type 'PILOT CPMENU' followed by [RETURN]. END: