R:Morrow Designs Micro-Menu system - Rev 2.5 R:MD-3 double sided version R:Module - MICRO.PIL without BAZIC R:Copyright 1982, 1983, 1984 Morrow Designs, Inc. R:All Rights Reserved R:Written by Harrison Schreppel for Morrow Designs R:Modified by John VanderWood 3/27/84 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 *LOOP3 INMAX:1 CUR:46,17 TNR: CUR:46,17 A: M:C, JN:*LABEL1 UY:*CHANGE J:*LOOP3 *LABEL1 M:1,2,3,4,5,6,7,U, BELLN: JN:*LOOP3 CLRS: M:1, JY:*NEWWORD M:2, JY:*SUPERCALC M:3, JY:*CORRECT M:4, JY:*PEARL M:5, JY:*QUEST M:6, JY:*MBASIC M:7, JY:*TUTORIAL M:U, J:*UTILITY *NEWWORD C:a=@9-2 DEF(a):$NWCOM key nw DEF(a):$NWCOM1 key default J(a):*nwrun DEF:$NWCOM nw DEF:$NWCOM1 *nwrun CLRS: LF: 11 TNR:{Preparing to run NewWord. Please stand by. . . CPM:pause nw NewWord|$NWCOM|a:return|$NWCOM1 T:} J:*BEGIN *SUPERCALC C:a=@9-2 DEF(a):$SCCOM key sc DEF(a):$SCCOM1 key default J(a):*scrun DEF:$SCCOM sc DEF:$SCCOM1 *scrun CLRS: LF:11 TNR:{Preparing to run SuperCalc. Please stand by. . . CPM:pause sc SuperCalc|$SCCOM|a:return|$SCCOM1 T:} J:*BEGIN *CORRECT CLRS: LF:11 TNR:{Preparing to run Correct-It. Please stand by. . . CPM:PAUSE CORRECT Correct-It|CORRECT|A:RETURN| T:} J:*BEGIN *PEARL ESC:*BEGIN U:*PEARLMENU *LOOP4 INMAX:1 CUR:47,18 TNR: CUR:47,18 A: M:1,2,3,4,5,6 BELLN: JN:*LOOP4 M:1,6 DEFY: $PERLDISK Welcome and File Maintenance JY:*PROMPT M:2,3 DEFY: $PERLDISK Design Forms and Reports JY:*PROMPT M:4,5 DEFY: $PERLDISK Print Reports and Enter Data *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 PEARLFM DEFY:$MSG Put the right database diskette in drive B: for File Maintenance. CLRS: LF:10 T:{The Working diskette to use is $PERLDISK T:}$MSG T: TNR: Press any key to continue: INMAX:1 A: T: 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 your UPPER drive now. T: T: When you're asked to "insert your WORKING disk for QUEST," insert your{Quest T: Instructional (Data) Disk}in Drive A (your LOWER drive). If you've installed T: Quest by now, use your{Production}disk instead. T: TNR: After inserting the Quest Posting Disk in Drive B, press RETURN to proceed:{ A: C:a=@9-2 DEF(a): $KPCOM key kp DEF(a): $KPCOM1 key default J(a):*kprun DEF: $KPCOM kp DEF: $KPCOM1 *kprun CPM:pause kp Quest|$KPCOM|a:return|$KPCOM1 T:} J:*BEGIN *MBASIC CLRS: LF:11 TNR:{Preparing to run Microsoft BASIC. Please stand by. . . CPM:PAUSE MBASIC MBASIC|MBASIC|A:RETURN| T:} J:*BEGIN *TUTORIAL CLRS: LF:11 TNR:{Loading the tutorial menu. Please stand by. . . CH:TUTORIAL.PIL *CREATE CLRS: LF:11 TNR:{Loading the working diskettes menu. Please stand by. . . CH:MDWORK.PIL *UTILITY ESC:*BEGIN U:*MENU2 *RFRSH U:STATUS U:*CHANGEMSG *LOOP5 INMAX:1 CUR:46,18 TNR: CUR:46,18 A: M:C, JN:*LABEL2 UY:*CHANGE J:*LOOP5 *LABEL2 M:1,2,3,4,5,6,7,8,9, BELLN: JN:*LOOP5 M:1, JY:*CREATE 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: LF:10 T:} T:I'm getting the directory of the current drive (Drive $DRIVE). TNR:Please stand by. . .{ CPM:DIR $DRIVE: T:} TNR:Press{RETURN}when you're done viewing the directory: A: J:*UTILITY *TYPE U:*GETFILE J(B):*RFRSH CUR:20,20 T: T: T:Do you want the file to go to the screen{(S),}or the printer{(P)?} INMAX:1 TNR:Enter{S}or{P:} *LOOP6 CUR:15,23 A: M:S,P, JN:*LOOP6 M:S, CLRS: LF:10 TY:I'm getting your file. . . TY:Press{CONTROL-S}to stop and start the scrolling.{ CPMY:PIP CON:=$DRIVE:$FILE| TY:} TNRY:Press{RETURN}when you're done viewing the file: { JY:*DELAY JY:*UTILITY T:{Please make sure your printer is turned on and is on-line. TNR: Press RETURN when you're ready: A: CLRS: LF:10 TNR:I'm getting your file to print. . . CPM:PIP LST:=$DRIVE:$FILE| T:} J:*UTILITY *COPY U:*CLEAR CUR:0,22 T:Do you want to copy every file from the current drive{(Y or N)?} *INPUTLOOP8 CUR:65,22 T: CUR:65,22 INMAX:1 A: M:Y,N BELLN: JN:*INPUTLOOP8 INMAX: 13 M:N JN:*NEXT U:*GETFILE J(B):*RFRSH U:*DSTDRIVE CLRS: LF:10 T:Preparing to copy "$FILE" from Drive $DRIVE to Drive $DSTDRV. TNR:Please stand by. . .{ CPM:PIP $DSTDRV:=$DRIVE:$FILE T:} J:*UTILITY *NEXT U:*DSTDRIVE CLRS: LF:10 T:Preparing to copy every file from Drive $DRIVE to Drive $DSTDRV. TNR:Please stand by. . .{ CPM:PIP $DSTDRV:=$DRIVE:*.* T:} J:*UTILITY *DSTDRIVE CUR:21,20 T:}What drive are you copying to? U:*DRVSEL DEF: $DSTDRV $TEMP CLRS: E: *DRVSEL INMAX:1 CUR:22,21 TNR:Enter the drive letter{(A,B,C,D,E)} *LOOP2 CUR:57,21 T: CUR:57,21 A: M:A,B,C,D,E BELLN: JN:*LOOP2 SAVE: $TEMP INMAX:80 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 a diskette T: T: To exit without formatting or sysgening any diskettes, press{E}. LF:2 TNR:----->} *FRMTLOOP CUR:8,15 TNR: CUR:8,15 INMAX:1 A: M: 1 , 2 , E , BELLN: JN:*FRMTLOOP M: E , JY:*UTILITY M: 1 , JN:*SYSGEN CLRS: LF: 10 TNR: Preparing to format; please stand by. . .{ LF: 9 CPM:FORMAT| T:} J:*UTILITY *SYSGEN CLRS: LF: 6 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 (normally{B}). T: T: To{exit}from the SYSGEN program, press {RETURN} when asked to enter a T: DESTINATION drive. T: TNR: To continue, hit any key: INMAX: 1 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 a "destination" diskette. The destination diskette must have T: been formatted before being used. T: T: {DRIVE A: (LOWER)}is used for the{SOURCE}diskette, and T: {DRIVE B: (UPPER)}is used for the{DESTINATION}diskette. T: T: {Don't change diskettes until you're asked to do so on the screen.} T: T: Press{RETURN}when you are ready to proceed, or T: To{exit}without backing up any diskettes, press{E}. T: 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:30,23 TNR: CUR:30,23 INMAX:1 A: M: D , F , BELLN: Jn:*INPUTLOOP9 M: F , JN:*STATDSK R: Perform stat on a file U:*GETFILE J(B):*RFRSH CLRS: LF:8 T:} T:Checking the size of $DRIVE:$FILE TNR:Please stand by. . .{ CPM:STAT $DRIVE:$FILE T:} TNR:Press{RETURN}to go back to the Utility Menu: A: J:*UTILITY *STATDSK R: perform stat on a disk CLRS: LF: 7 T:Checking the amount of space remaining on the disk in drive $DRIVE. T:Please stand by. . .{ CPM:STAT $DRIVE: T:} TNR:Press{RETURN}to go back to the Utility Menu: { A: J:*UTILITY *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: To get back to the Utility Menu now, press RETURN only. T: T: {COMMAND:} *GETCOM CUR: 13,11 INMAX: 80 A: $COMMAND R: NULL COMMAND? M: , R: If so, go back to the utility menu JY: *UTILITY CLRS: LF: 4 T:{ T:After certain CP/M commands, you must press{CONTROL-C}when finished, to return T:to the Co-Pilot Menus. T: T:Now executing your command, please stand by. . .{ CPM:$COMMAND| J:*UTILITY *OTHER U:CLEAR CUR:0,22 T:Do you want to Erase{(E),}or Rename{(R)}a file? TNR:Type{E}or{R:} *INPUTLOOPA CUR:14,23 TNR: CUR:14,23 INMAX:1 A: M: E , R , BELLN: Jn:*INPUTLOOPA M: E , JN:*RENAME U:*GETFILE J(B):*RFRSH CUR:0,22 TNR:Press{RETURN}to erase $DRIVE:$FILE, or{A}to abort: INMAX:1 A: M: , JN:*UTILITY CLRS: LF: 11 T:Now erasing $DRIVE:$FILE{ T: CPM:ERA $DRIVE:$FILE T:} J:*UTILITY *RENAME U:*GETFILE J(B):*RFRSH DEF:$OLDNAME $FILE U:*CLEAR CUR:22,20 T:} The present name of the file is $OLDNAME. T: Enter the new name of file:{ CUR:52,22 INMAX:13 A: SAVE:$FILE CLRS: LF: 10 TNR:Now renaming $DRIVE:$OLDNAME. The new name is $DRIVE:$FILE.{ CPM:REN $DRIVE:$FILE=$DRIVE:$OLDNAME T:} J:*UTILITY R:===================================================================== R: R: Menu displays R: *MENU1 CLRS: T: T: {C O - P I L O T M A I N M E N U} T: 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 SuperCalc} 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 CP/M Tutorial Menu} CP/M Learning Tool T: {U Utility Menu} T: {ESC Exit to CP/M} LF:1 T: {Enter your selection:} E: R:===================================================================== R: *MENU2 CLRS: T: {C O - P I L O 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: Select the job to be done by entering the number corresponding to the T: function desired. For some of the functions to work, you should set T: the{CURRENT DRIVE}to the drive that will 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: T:{ P E R S O N A L P E A R L T: T: F U N C T I O N S E L E C T I O N M E N U} LF:2 T: See your Personal Pearl manual for a full description of these options. LF:2 T: {1} Welcome (Demonstration) T: {2} Design Forms T: {3} Design Reports T: {4} Enter Data T: {5} Produce Reports T: {6} File Maintenance T: {ESC} Return to Main Menu LF:3 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. U:*CLEAR INMAX:1 CUR:0,22 T: {Enter the new drive ( A,B,C,D,E ) *LOOP2 CUR:16,20 A: M:A,B,C,D,E, BELLN: JN:*CHANGE SAVE: $DRIVE U:*CLEAR *EXIT U:*CHANGEMSG INMAX:13 E: R:=========================================================================== *GETFILE C:B=0 U:*CLEAR CUR:22,20 T:Press RETURN to use the file shown (if one is shown), TNR: or type a different file name:{$FILE CUR:53,21 INMAX:13 A: M: , SAVEN: $FILE *EXISTCHK EXIST:$DRIVE:$FILE Jy:*EXITGF U:*CLEAR BELL: CUR:22,20 T: T:{I cannot find "$FILE" on Drive $DRIVE.} Please check your spelling. T: You may search on another Drive{(D),}re-enter the file name{(R),}or TNR: abort{(A)}the command. {Type D, R, or A: } *LOOP7 CUR:42,23 TNR: CUR:42,23 INMAX:1 A: M:D,R,A BELLN: Jn:*LOOP7 M:A R: variable 'B' is set as a condition flag to indicate abort was selected Cy:B=1 Jy:*UTILITY M:R Jy:*GETFILE U:*CHANGE J:*EXISTCHK *EXITGF U:*CLEAR E: *CLEAR CUR:21,20 T: 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: LF: 11 T: To re-enter the menu system, type{PILOT CPMENU}followed by a RETURN.{ LF: 5 END: