home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Black Box 4
/
BlackBox.cdr
/
dosutils
/
managsrc.arj
/
MANAGER.ASI
< prev
next >
Wrap
Text File
|
1990-02-21
|
49KB
|
2,421 lines
rem MANAGER.COM
rem This program requires approximately 195K.
rem consecutive to wait5:
rem initialize Esc key. This is necessary because some parameters go directly
rem to a routine; if it wasn't initialized here, it would have to be re-
rem initialized in every routine in which it was used. CHR$(27) is the ASCII
rem code for the Esc key.
b$=chr$(27)
rem initialize Enter (Return) key. Same reason as the Esc key initialization,
rem but applies mainly to the error routines. CHR$(13) is the ASCII code for
rem the Enter (Return) key.
c$=chr$(13)
rem Again, for the error routines, initialize the Backspace key and space bar.
rem The backspace key is chr$(8), and the space bar is chr$(32). For copying
rem and moving text files, it will be helpful to have the line feed [chr$(10)]
rem and the "carriage return" [chr$(13)+chr$(10)] initialized. The carriage
rem return is initialized to crlf$.
d$=chr$(8)
e$=chr$(32)
lf$=chr$(10)
crlf$=c$+lf$
rem a=csrline (this is reserved in the subroutine CURSOR:)
rem b=pos(0) (also reserved in CURSOR: subroutine)
rem c=b-1 (reserved in CURSOR: subroutine)
rem Now, check for parameters. Notice the leading space in front of each
rem parameter. For instance, " /?" rather than "/?". This is necessary from
rem the DOS prompt. It is not necessary when getting parameters from another
rem ASIC program.
a$=command$
rem This section reads INSTALL.CFG, a file created with another tiny ASIC
rem program (I haven't included that yet, but I will). This feature installs
rem an automatic parameter, in essence; once installed, it'll go directly to a
rem specific menu option. When I was writing this, I forgot to include an
rem option to bypass the opening screen, but it's on my list now, and I'll get
rem to it soon.
rem INSTALL.CFG is only read if no parameters have been specified from DOS.
if a$="" then
open "i",1,"install.cfg"
rem Because the file was written with ASIC, the NONULL option is not
rem necessary in the INPUT # command.
input # 1, install$
close 1
goto doautopa:
endif
rem If a parameter has been specified, INSTALL.CFG is not read. Instead, the
rem parameter is read and you get sent to the section related to that
rem parameter.
rem The parameters have been made case insensitive. Since the computer makes
rem a distinction between "a" and "A", this is a suggested courtesy to the
rem user; he or she doesn't have to worry about whether Caps Lock is on or
rem not.
rem For some reason, the "SEEFILES" option wouldn't work from within the main
rem body of MANAGER.COM; I had to make it an outside "callable" program long
rem before I started running out of "symbol table space".
rem Find files (very poor clone of DIR /P)
if a$=" /s" then
call ("util1-80.com"," /s")
goto menu:
endif
if a$=" /S" then
call ("util1-80.com"," /s")
goto menu:
endif
rem Read text files (combination of TYPE and MORE)
if a$=" /v" then
call "util1-80.com"," /v"
goto menu:
endif
if a$=" /V" then
call ("util1-80.com", " /v")
goto menu:
endif
rem Print files (clone of COPY filename.ext PRN, with pause and quit options)
if a$=" /l" then
call "util1-80.com"," /l"
goto menu:
endif
if a$=" /L" then
call "util1-80.com"," /l"
goto menu:
endif
rem Copy text files (extremely poor clone of COPY)
if a$=" /c" then
call "util1-80.com"," /co"
goto menu2:
endif
if a$=" /C" then
call "util1-80.com"," /co"
goto menu2:
endif
rem Move text files (extremely poor clone of COPY and DEL)
if a$=" /o" then
call "util1-80.com"," /m"
goto menu:
endif
if a$=" /O" then
call "util1-80.com"," /m"
goto menu:
endif
rem Rename files (clone of REN/RENAME)
if a$=" /n" then renfile:
if a$=" /N" then renfile:
rem Delete files (clone of DEL/ERASE)
if a$=" /d" then killfile:
if a$=" /D" then killfile:
rem Run other programs (poor clone of COMMAND /C)
if a$=" /r" then runother:
if a$=" /R" then runother:
rem Make directory (clone of MD/MKDIR)
if a$=" /m" then makedir:
if a$=" /M" then makedir:
rem Remove directory (extremely poor clone of RD/RMDIR)
if a$=" /e" then removedr:
if a$=" /E" then removedr:
rem Change default directory (extremely poor clone of CD/CHDIR)
if a$=" /cd" then
call "util1-80.com"," /c"
goto menu:
endif
if a$=" /CD" then
call "util1-80.com"," /c"
goto menu:
endif
rem Check for graphics card (no DOS equivalent that I know of)
if a$=" /p" then chckgrph:
if a$=" /P" then chckgrph:
rem Blank screen (no DOS equivalent that I know of)
if a$=" /b" then
gosub blankscr:
goto menu:
endif
if a$=" /B" then
gosub blankscr:
goto menu:
endif
rem Go to the 40-column version of The Manager, which is really horrible (I've
rem had little or no feedback on this program, so I'm assuming the visually
rem impaired couldn't care less until further notice. Since I'm not visually
rem impaired myself, I've put that mode on the back burner). NOTE: Sometime
rem I've got to see if this needs adjusting; I want to have the option to
rem either quit 40-columns and exit back to the main menu without calling
rem another clone of the 80-column MANAGER.COM, or quit to DOS in 40-column
rem mode. As it stands now, I think I have to have a layer of MANAGER.COM
rem over MANAGR40.COM over the original MANAGER.COM, which is just silly. I
rem hope to be able to initialize a variable according to whether Return to
rem 80-columns or Quit to DOS is chosen.
if a$=" /40" then
call "managr40.com",""
end
endif
rem See a list of DOS parameter options (vaguely similar to DOS' HELP.EXE, but
rem not really anything like it, since it's not nearly so involved. Hmmm,
rem might be worth it to make an enhanced help feature, mightn't it?)
if a$=" /?" then
call ("util1-80.com"," /h")
goto menu:
endif
rem Crappy Calculator (no DOS equivalent that I know of)
if a$=" /cr" then
call "util1-80.com"," /cr"
goto menu2:
endif
if a$=" /CR" then
call "util1-80.com"," /cr"
goto menu2:
endif
rem Get the time and/or date (partial clone of TIME and DATE; you can't set
rem either, but you can read them)
if a$=" /g" then timedate:
if a$=" /G" then timedate:
rem See a list of ASCII codes, decimal only (no DOS equivalent that I know of)
if a$=" /a" then
call "util1-80.com"," /a"
goto menu2:
endif
if a$=" /A" then
call "util1-80.com"," /a"
goto menu2:
endif
if a$=" /40 ?" then
call "managr40.com"," /40 ?"
end
endif
if a$=" /40 d" then
call "managr40.com"," /40 d"
end
endif
if a$=" /40 D" then
call "managr40.com"," /40 d"
end
endif
if a$=" /40 m" then
call "managr40.com"," /40 m"
end
endif
if a$=" /40 M" then
call "managr40.com"," /40 m"
end
endif
if a$=" /40 n" then
call "managr40.com"," /40 n"
end
endif
if a$=" /40 N" then
call "managr40.com"," /40 n"
end
endif
if a$=" /40 g" then
call "managr40.com"," /40 g"
end
endif
if a$=" /40 G" then
call "managr40.com"," /40 g"
end
endif
if a$=" /40 b" then
call "managr40.com"," /40 b"
end
endif
if a$=" /40 B" then
call "managr40.com"," /40 b"
end
endif
if a$=" /40 s" then
call "util1-80.com"," /s 40"
call "managr40.com",""
end
endif
if a$=" /40 S" then
call "util1-80.com"," /s 40"
call "managr40.com",""
end
endif
rem The /40 v parameter doesn't do anything right now; it's just there for
rem when I get a read files option that works in 40-column mode.
if a$=" /40 v" then
call "managr40.com"," /40 v"
end
endif
if a$=" /40 V" then
call "managr40.com"," /40 v"
end
endif
if a$=" /40 l" then
call "managr40.com"," /40 l"
end
endif
if a$=" /40 L" then
call "managr40.com"," /40 l"
end
endif
if a$=" /40 r" then
call "managr40.com"," /40 r"
end
endif
if a$=" /40 R" then
call "managr40.com"," /40 r"
end
endif
if a$=" /40 e" then
call "managr40.com"," /40 e"
end
endif
if a$=" /40 E" then
call "managr40.com"," /40 e"
end
endif
if a$=" /40 c" then
call "managr40.com"," /40 c"
end
endif
if a$=" /40 C" then
call "managr40.com"," /40 c"
end
endif
if a$=" /40 o" then
call "managr40.com"," /40 o"
end
endif
if a$=" /40 O" then
call "managr40.com"," /40 o"
end
endif
rem If no parameter was specified, the above batch of IF statements is
rem bypassed with a GOTO statement, to this section, which looks at the
rem INSTALL.CFG file.
doautopa:
if install$="/?" then
call ("util1-80.com"," /h")
goto menu:
endif
if install$="/d" then killfile:
if install$="/m" then makedir:
if install$="/n" then renfile:
if install$="/g" then timedate:
if install$="/b" then
gosub blankscr:
goto menu:
endif
if install$="/p" then chckgrph:
if install$="/s" then
call ("util1-80.com"," /s")
goto menu:
endif
if install$="/v" then
call "util1-80.com"," /v"
goto menu:
endif
if install$="/l" then
call "util1-80.com"," /l"
goto menu:
endif
if install$="/r" then runother:
if install$="/e" then removedr:
if install$="/c" then
call "util1-80.com"," /co"
goto menu2:
endif
if install$="/o" then
call "util1-80.com"," /m"
goto menu:
endif
if install$="/40" then
call "managr40.com",""
end
endif
rem Here's a recent addition; if you set it up from the main program, you can
rem bypass the opening screen, which can get kind of irritating after a while
rem (trust me on this, I can't test the silly thing if I install ANYthing, and
rem that opening screen really gets on my nerves).
if install$="bypass" then menu:
rem If no parameters are installed, and INSTALL.CFG didn't contain one of the
rem above parameters, all the IF statements fail (or "fall through"), and we
rem begin from the beginning.
rem Set up and print intro screen.
cls
print " The Manager 2.68"
print
print
print " By Matt Roberts"
print " 5 Cedar St., #8"
print " Montpelier, Vt 05602-3006"
print " (802)223-2553"
print
print
print " If you find the programs on this disk useful, a donation of"
print " $5.00 would be greatly appreciated. Thanks."
print
print
print " If you're having trouble using this program, you can call"
print " between 9AM and 9PM (EST), and I'll try to help."
print
print
print
print
print
print
print
print "Press any key to continue. ";
gosub continue:
rem Intro screen is now printed.
rem Now direct the program to create a menu of options.
rem Here is the menu of options.
menu:
cls
print " Your Options"
print
print
print "F1- Find Files. F10- Work with CONFIG.SYS."
print
print "F2- Read Files. <Alt-F1>- Work with AUTOEXEC.BAT."
print
print "F3- Print Files. <Alt-F2>- Make Directory."
print
print "F4- Copy Files. <Alt-F3>- Remove Directory."
print
print "F5- Move Files. <Alt-F4>- Change Default Directory."
print
print "F6- Rename Files. <Alt-F5>- Check for Graphics Card."
print
print "F7- Delete Files. <Alt-F6>- Blank Screen."
print
print "F8- Run Other Programs. N- Next Menu."
print
print "F9- NOT IN USE Esc- Quit and Return to DOS."
print
print
print "Please press the key corresponding to your choice. ";
rem Now we go to the routine (CONTINUE:) which waits for a keypress.
rem Depending on the key pressed, an action is taken.
wait2:
gosub continue:
rem This is the reason the Esc key was initialized in the beginning; it's the
rem universal "quit" key in this program. With ASIC, CHR$(27) would have to
rem be initialized to a variable every time it was used if it wasn't taken
rem care of in the beginning.
if a$=b$ then
cls
end
endif
if a$="n" then menu2:
if a$="N" then menu2:
rem The following line checks to see whether an "extended" key was pressed.
rem This includes the function keys, the Alt Ctrl and Shift keys (in
rem conjunction with any other key), and possibly some others. So, if you
rem press Shift-F1, or Alt-D, the system variable EXTENDED will be set to one.
if extended=0 then wait2:
if a$=";" then
call ("util1-80.com"," /s")
goto menu:
endif
if a$="<" then
call "util1-80.com"," /v"
goto menu:
endif
if a$="=" then
call "util1-80.com","/l"
goto menu:
endif
if a$=">" then
call "util1-80","/co"
goto menu2:
endif
if a$="?" then
call "util1-80.com"," /m"
goto menu:
endif
if a$="@" then renfile:
if a$="A" then killfile:
if a$="B" then runother:
if a$="C" then menu:
if a$="D" then changeco:
if a$="h" then chngauto:
if a$="i" then makedir:
if a$="j" then removedr:
if a$="k" then
call ("util1-80.com"," /c")
goto menu:
endif
if a$="l" then chckgrph:
if a$="m" then
gosub blankscr:
goto menu:
endif
goto wait2:
menu2:
cls
print " More Options"
print
print
print "<Alt-F7>- Change to 40-column Mode."
print
print "<Alt-F8>- See DOS Parameter Options."
print
print "<Alt-F9>- Use the Crapulator (Crappy Calculator)."
print
print "<Alt-F10>- Get Time/Date."
print
print "<Ctrl-F1>- See ASCII Code List."
print
print "<Ctrl-F2>- Install a DOS parameter."
print
print "<Ctrl-F3>- See your PATH."
print
print "F- First Menu."
print
print "Esc- Quit and Return to DOS."
print
print
print "Please press the key corresponding to your choice. ";
gosub continue:
wait:
rem There's that Esc key again. As you can see, initializing and reserving
rem variables in ASIC is a pretty good idea, unless you like typing.
if a$=b$ then
cls
end
endif
if a$="f" then menu:
if a$="F" then menu:
if extended=0 then wait:
rem Check ASIC.DOC for a discussion of the Symbol Table (in the error
rem section). Because I use a lot of labels and variables in my work, I ran
rem out and had to separate these programs into separate modules, even though
rem I hadn't reached the 64K wall yet.
if a$="n" then
call "managr40.com",""
goto menu2:
endif
if a$="o" then
call ("util1-80.com"," /h")
goto menu2:
endif
if a$="p" then
call ("util1-80.com"," /cr")
goto menu2:
endif
if a$="q" then timedate:
if a$="^" then
call ("util1-80.com"," /a")
goto menu2:
endif
if a$="_" then
call ("util1-80.com"," /i")
goto menu2:
endif
if a$="`" then getpath:
goto wait:
rem ..........................................................................
rem HERE ARE THE MENU ROUTINES.
rem ..........................................................................
rem HERE IS THE ROUTINE FOR RENAMING FILES.
renfile:
cls
print " Rename Files"
print
print
spaces$=space$(68)
print spaces$;
rem COLOR 0,7 will give us reversed printing.
color 0,7
print "Esc=Quit"
rem Back to normal (white on black).
color 7,0
print "Name of file to change (include drive and path)? ";
gosub retypefi:
file1$=file$
rem UCASE$ gives us uppercase. Like almost all of ASIC's functions, it has to
rem be initialized to a variable in order to be used <sigh>.
realfile1$=ucase$(file1$)
rem Sometimes, the screen writes get screwed up with a blank PRINT statement.
rem If that happens, it can be fixed by putting a null string ("") after the
rem PRINT command.
print ""
print ""
print ""
print "New name for ";
print realfil1$;
print "? ";
rem Here we set our variable FILE$ back to the null string (nothing), since
rem otherwise its current value will be carried over the next time we use it
rem in the routine to type in a file (RETYPFI:).
file$=""
gosub retypefi:
file2$=file$
realfil2$=ucase$(file2$)
refile:
name file1$ as file2$
rem The ERROR system variable is unusual in that it DOESN'T have to be
rem initialized to another variable before use.
if error=2 then nofilerf:
if error=3 then nopathrf:
if error=5 then illeglrf:
if error=17 then diffdrrf:
print ""
print ""
print realfil1$;
print " has been renamed ";
print realfil2$;
print "."
file1$=""
file2$=""
print
print "Rename another? (y/n) ";
a$=""
while a$=""
gosub continue:
if a$="y" then renfile:
if a$="Y" then renfile:
if a$="n" then menu:
if a$="N" then menu:
wend
rem THIS IS THE END OF THE ROUTINE FOR RENAMING FILES.
rem HERE IS THE ROUTINE FOR DELETING FILES.
killfile:
cls
print " Delete Files"
print
print
print "Before going any further, you should be aware that, once a file has"
print "been deleted, it is very difficult to retrieve it. From this program,"
print "it is impossible; I lack the skill to make an undelete feature"
print "available."
print
print
print "Press any key to continue, or Esc to quit. ";
gosub continue:
if a$=b$ then menu:
deletagn:
cls
print " Delete Files"
print
print
spaces$=space$(68)
print spaces$;
color 0,7
print "Esc=Quit"
color 7,0
print "File to delete? ";
gosub retypefi:
print ""
print ""
print ""
print "All the data in ";
print realfile$;
print " will be destroyed."
print
print
print "Press any key to continue, or Esc to quit. ";
gosub continue:
if a$=b$ then
file$=""
realfile$=""
goto menu:
endif
rekill:
kill file$
if error=2 then nofilekf:
if error=5 then illeglkf:
print ""
print ""
print realfile$;
print " has been deleted."
file$=""
print
rem Note the space between the right parenthesis (in the line following) and
rem the quote mark. It's just a little touch, but it makes a world of
rem difference in the readability of your screen writes. The tendency of ALL
rem BASIC languages to cram the answer you type right next to the question is
rem the main reason I avoid the INPUT command whenever possible.
print "Delete another? (y/n) ";
a$=""
while a$=""
gosub continue:
if a$="y" then deletagn:
if a$="Y" then deletagn:
if a$="n" then menu:
if a$="N" then menu:
wend
rem THIS IS THE END OF THE ROUTINE FOR DELETING FILES.
rem HERE IS THE ROUTINE FOR RUNNING OTHER PROGRAMS.
runother:
cls
spaces$=space$(68)
print spaces$;
color 0,7
print "Esc=Quit"
color 7,0
print
print "Please type the full name of the program you want to run (for example,"
print "MYPROGRM.COM). Include the drive and path."
print
rem The cursor subroutine tells your program to save the current screen
rem location of the cursor.
gosub cursor:
rem As far as I can tell, the location of COMMAND.COM on disk is always in
rem ENVIRON$(1). This is not necessarily the case with such environment
rem strings as you can manipulate when shelling to DOS. Please remember that
rem whatever environment$ you manipulate from within ASIC is only changed
rem while you are "shelled" to DOS. When you return to your program from
rem outside, the second copy of COMMAND.COM, which holds the changes, is
rem removed from memory, and you are back to your defaults.
rem This routine allows you to shell to DOS by just pressing Enter (c$).
commandc$=environ$(1)
rem Once we've found COMMAND.COM and initialized it to a variable, we need to
rem remove the "COMSPEC=" part so it'll look better on-screen.
command2$=mid$(commandc$,9,79)
print command2$;
gosub continue:
if a$=c$ then
cls
print "Use the DOS command EXIT to return to The Manager."
print
call command2$,""
goto menu:
rem if anything but Enter or Esc is pressed, the COMMAND.COM is deleted from
rem the screen, the cursor goes back to the start, and the key pressed is
rem added to the variable which will be created in RETYPEFI:.
else
rem Return to the original cursor location.
locate a,b
rem Print spaces for about a line, to delete the COMMAND.COM location that was
rem on the screen.
spaces$=space$(68)
print spaces$;
rem Go back to the beginning again.
locate a,b
rem And print the keypress.
print a$;
rem Add the keypress to the variable (FILE$) that RETYPEFI: uses, which is
rem currently nothing; as a result, FILE$ now equals the keypress, and is
rem ready for other characters to be added.
file$=file$+a$
rem Now hit the subroutine that allows the other characters to be added to
rem FILE$.
gosub retypefi:
endif
rem Now we want to move FILE$ to a new variable, so we can set FILE$ to
rem nothing again so we can re-use it later.
program$=file$
file$=""
print ""
print "You can specify an argument to your program, but it must be one phrase"
print "(no spaces). Do you want to specify an argument (y/n)";
a$=""
while a$=""
gosub continue:
if a$="y" then getargum:
if a$="Y" then getargum:
if a$="n" then
argument$=""
goto dorunoth:
endif
if a$="N" then
argument$=""
goto dorunoth:
endif
wend
getargum:
cls
spaces$=space$(68)
print spaces$;
color 0,7
print "Esc=Quit"
color 7,0
print
print "Please type the argument you'd like to use. It can only be one phrase"
print "and cannot contain any spaces. ";
gosub retypefi:
argument$=file$
file$=""
dorunoth:
argument$=e$+argument$
call program$,argument$
if error=255 then
print
print "Having trouble, please wait:"
print
argument$=mid$(argument$,2,79)
call program$,argument$
endif
if error=255 then
print
print "Still having trouble, please wait:"
print
n=len(argument$)
a$=chr$(n)
a$=a$+argument$
a$=a$+c$
call program$ a$
endif
if error=255 then cantrun:
print
print
print "Press any key to return to The Manager. ";
gosub continue:
program$=""
argument$=""
cls
print "Would you like to run another program (y/n)? ";
a$=""
while a$=""
gosub continue:
if a$="y" then runother:
if a$="Y" then runother:
if a$="n" then menu:
if a$="N" then menu:
wend
rem THIS IS THE END OF THE ROUTINE FOR RUNNING OTHER PROGRAMS.
rem HERE IS THE ROUTINE FOR WORKING WITH CONFIG.SYS
changeco:
cls
print " View or Change Your CONFIG.SYS File"
print
print
print "On which drive is your CONFIG.SYS file";
input drive$
redrive:
drive$=drive$+"\"
if drive$="a:\" then
file1$="a:\config.sys"
endif
if drive$="A:\" then
file1$="a:\config.sys"
endif
if drive$="b:\" then
file1$="b:\config.sys"
endif
if drive$="B:\" then
file1$="b:\config.sys"
endif
if drive$="c:\" then
file1$="c:\config.sys"
endif
if drive$="C:\" then
file1$="c:\config.sys"
endif
if drive$="d:\" then
file1$="d:\config.sys"
endif
if drive$="D:\" then
file1$="d:\config.sys"
endif
if drive$="e:\" then
file1$="e:\config.sys"
endif
if drive$="E:\" then
file1$="e:\config.sys"
endif
if drive$="a:\" then
file2$="a:\config.bak"
endif
if drive$="A:\" then
file2$="a:\config.bak"
endif
if drive$="b:\" then
file2$="b:\config.bak"
endif
if drive$="B:\" then
file2$="b:\config.bak"
endif
if drive$="c:\" then
file2$="c:\config.bak"
endif
if drive$="C:\" then
file2$="c:\config.bak"
endif
if drive$="d:\" then
file2$="d:\config.bak"
endif
if drive$="D:\" then
file2$="d:\config.bak"
endif
if drive$="e:\" then
file2$="e:\config.bak"
endif
if drive$="E:\" then
file2$="e:\config.bak"
endif
confmenu:
cls
print "You have the following options:"
print
print
print "1- Just view the CONFIG.SYS file."
print
print "2- Add lines to the end of your file."
print
print "3- Create a new CONFIG.SYS file."
print
print "4- Return to the Main Options Menu."
print
print
print "Please press the key corresponding to your choice. ";
wait10:
gosub continue:
if a$="1" then
cls
gosub seesys:
goto confmenu:
endif
if a$="2" then
cls
gosub appendln:
gosub seesys:
goto confmenu:
endif
if a$="3" then
cls
goto newfilec:
endif
if a$="4" then menu:
goto wait10:
rem THIS SECTION CREATES A NEW CONFIG.SYS FILE.
newfilec:
cls
name file1$ as file2$
kill file1$
print ""
print ""
print "Your CONFIG.SYS file has been changed to CONFIG.BAK in order to save"
print "it for future use. To use it later, your new CONFIG.SYS will have to"
print "be renamed to something else (for example, CONFIG.X), and your .BAK"
print "file renamed CONFIG.SYS."
print
print
print "Press any key to continue. ";
gosub continue:
changeagn:
cls
open "o",1,file1$
print "How many files do you want? To quit, press Q and Enter."
print
input filenumb$
if filenumb$="q" then restorec:
if filenumb$="Q" then restorec:
line1$="files="+filenumb$
print # 1, line1$ nonull
print # 1, crlf$ nonull
print ""
print ""
print "How many buffers do you want";
input buffer$
buffline$="buffers="+buffer$
print # 1, buffline$ nonull
print # 1, crlf$ nonull
gosub listsys:
devcagain:
print ""
print "Which device would you like to include (N for none)";
input device$
if device$="n" then nodevice:
if device$="N" then nodevice:
deviceln$="devices="+device$
print # 1, deviceln$ nonull
print # 1, crlf$ nonull
print ""
print "Would you like to include more devices";
input incldmore$
if incldmore$="y" then devcagain:
if incldmore$="Y" then devcagain:
nodevice:
print
print "Do you want Break on or off (if not sure, type OFF)?";
input breakyn$
breaklin$="break=on"
if breakyn$="on" then
print # 1, breaklin$ nonull
print # 1, crlf$ nonull
endif
if breakyn$="ON" then
print # 1, breaklin$ nonull
print # 1, crlf$ nonull
endif
if breakyn$="oN" then
print # 1, breaklin$ nonull
print # 1, crlf$ nonull
endif
if breakyn$="On" then
print # 1, breaklin$ nonull
print # 1, crlf$ nonull
endif
close 1
gosub seesys:
print
print
print "If this is not O.K. AND you want to go back and change the file, press"
print "C and then press Enter."
print
print "To restore your original CONFIG.SYS file, press R and Enter."
print
print "If you're happy with it as is, type OK and Enter."
print
input change$
okdecide:
if change$="c" then changeagn:
if change$="C" then changeagn:
if change$="r" then restorec:
if change$="R" then restorec:
if change$="ok" then confmenu:
if change$="OK" then confmenu:
if change$="oK" then confmenu:
if change$="Ok" then confmenu:
print
print "You must choose between C, R, or OK."
print
input change$
goto okdecide:
restorec:
cls
close 1
close 2
kill file1$
name file2$ as file1$
kill file2$
print "Your original CONFIG.SYS file has been restored."
print
print
print "Press any key to continue. ";
gosub continue:
goto confmenu:
rem HERE IS THE ROUTINE FOR LOOKING AT THE CONFIG.SYS FILE.
seesys:
close 1
close 2
print "Here is your file:"
print
print
open "i",1,file1$
nextlnco:
input # 1, line$ crlf
print line$
if error=99 then
close 1
print
print
print "Press any key to continue. ";
gosub continue:
return
endif
goto nextlnco:
rem THIS IS THE END OF THE ROUTINE FOR LOOKING AT THE CONFIG.SYS FILE.
rem HERE IS THE ROUTINE FOR ADDING LINES TO THE END OF CONFIG.SYS
appendln:
close 1
close 2
open "a",1,file1$
appendagn:
print ""
print "Line to add (Q to quit)";
input appendln$
if appendln$="q" then
close 1
return
endif
if appendln$="Q" then
close 1
return
endif
print # 1, appendln$ nonull
print # 1, crlf$ nonull
goto appendagn:
rem THIS IS THE END OF THE ROUTINE FOR ADDING LINES TO CONFIG.SYS.
rem HERE IS THE ROUTINE FOR LISTING THE DEVICES FOR CONFIG.SYS.
listsys:
print
print "Do you want a list of the system devices available (y/n)? ";
a$=""
while a$=""
gosub continue:
if a$="y" then dolist:
if a$="Y" then dolist:
if a$="n" then
return
endif
if a$="N" then
return
endif
wend
dolist:
cls
print "(Don't count CONFIG.SYS as a system device)"
print
print
files$="*.sys"
attrib=0
filename$=find first(files$,attrib)
if error>0 then done:
print filename$
while error>0
filename$=find continue
print filename$
file=file+1
if file=20 then
print ""
print ""
print "Press any key to continue. ";
gosub continue:
file=0
print
print
endif
wend
done:
print ""
print ""
print "Press any key to continue. ";
gosub continue:
file=0
files$=""
filename$=""
print ""
print ""
return
rem THIS IS THE END OF THE ROUTINE FOR LISTING THE DEVICES FOR CONFIG.SYS.
rem THIS IS THE END OF THE ROUTINE FOR WORKING WITH CONFIG.SYS.
rem HERE IS THE ROUTINE FOR WORKING WITH AUTOEXEC.BAT
chngauto:
cls
spaces$=space$(68)
print spaces$;
color 0,7
print "Esc=Quit"
color 7,0
print
print " View or Change Your AUTOEXEC.BAT File"
print
print
print "On which drive is your AUTOEXEC.BAT file? ";
gosub retypefi:
redrivea:
drive$=file$
file$=""
drive$=drive$+"\"
if drive$="a:\" then
file1$="a:\autoexec.bat"
endif
if drive$="A:\" then
file1$="a:\autoexec.bat"
endif
if drive$="b:\" then
file1$="b:\autoexec.bat"
endif
if drive$="B:\" then
file1$="b:\autoexec.bat"
endif
if drive$="c:\" then
file1$="c:\autoexec.bat"
endif
if drive$="C:\" then
file1$="c:\autoexec.bat"
endif
if drive$="d:\" then
file1$="d:\autoexec.bat"
endif
if drive$="D:\" then
file1$="d:\autoexec.bat"
endif
if drive$="e:\" then
file1$="e:\autoexec.bat"
endif
if drive$="E:\" then
file1$="e:\autoexec.bat"
endif
if drive$="a:\" then
file2$="a:\autoexec.bak"
endif
if drive$="A:\" then
file2$="a:\autoexec.bak"
endif
if drive$="b:\" then
file2$="b:\autoexec.bak"
endif
if drive$="B:" then
file2$="b:\autoexec.bak"
endif
if drive$="c:\" then
file2$="c:\autoexec.bak"
endif
if drive$="C:\" then
file2$="c:\autoexec.bak"
endif
if drive$="d:\" then
file2$="d:\autoexec.bak"
endif
if drive$="D:\" then
file2$="d:\autoexec.bak"
endif
if drive$="e:\" then
file2$="e:\autoexec.bak"
endif
if drive$="E:\" then
file2$="e:\autoexec.bak"
endif
automenu:
cls
print "You have the following options:"
print
print
print "F1- Just view the AUTOEXEC.BAT file."
print
print "F2- Add lines to the end of your file."
print
print "F3- Create a new AUTOEXEC.BAT file."
print
print "Esc- Return to the Main Options Menu."
print
print
print "Please press the key corresponding to your choice. ";
wait5:
gosub continue:
if a$=b$ then menu:
if extended=0 then wait5:
if a$=";" then
cls
gosub autolook:
goto automenu:
endif
if a$="<" then
cls
gosub appndaut:
gosub autolook:
goto automenu:
endif
if a$="=" then
cls
goto newauto:
endif
goto wait5:
rem THIS ROUTINE CREATES A NEW AUTOEXEC.BAT FILE.
newauto:
cls
name file1$ as file2$
kill file1$
cls
print "Your AUTOEXEC.BAT file has been changed to AUTOEXEC.BAK in order to"
print "save it for later use. To use it later, you will have to"
print "rename it AUTOEXEC.BAT after renaming the current AUTOEXEC.BAT to"
print "something else (for example, AUTOEXEC.X)."
print
print
print "Press any key to continue. ";
gosub continue:
scndchng:
cls
spaces$=space$(68)
print spaces$;
color 0,7
print "Esc=Quit"
color 7,0
open "o",1,file1$
print "Please type the first line you want, then press Enter."
print
print "> ";
gosub retypefi:
firstlin$=file$
file$=""
if firstlin$=b$ then
goto nochange:
endif
print # 1, firstlin$ nonull
print # 1, crlf$ nonull
contline:
print ""
print "Please type your next line, followed by Enter."
print ""
print "> ";
gosub retypefi:
nextline$=file$
file$=""
if nextline$=b$ then
goto stopchng:
endif
print # 1, nextline$ nonull
print # 1, crlf$ nonull
goto contline:
stopchng:
close 1
cls
gosub autolook:
print
print
print
print "If this is not O.K. AND you want to change it, press C and then Enter."
print
print "To restore your original AUTOEXEC.BAT, press R and then Enter."
print
print "If you're happy with it as is, type OK and Enter."
print
print "> ";
gosub retypefi:
changeyn$=file$
file$=""
rechange:
if changeyn$="c" then
goto scndchng:
endif
if changeyn$="C" then
goto scndchng:
endif
if changeyn$="r" then
goto nochange:
endif
if changeyn$="R" then
goto nochange:
endif
if changeyn$="ok" then
goto automenu:
endif
if change$="OK" then
goto automenu:
endif
if changeyn$="oK" then
goto automenu:
endif
if changeyn$="Ok" then
goto automenu:
endif
print
print "You must choose C, R, or OK."
print
gosub retypefi:
changeyn$=file$
file$=""
goto rechange:
nochange:
cls
close 1
close 2
kill file1$
name file2$ as file1$
kill file2$
print "Your original AUTOEXEC.BAT file has been restored."
print
print
print "Press any key to continue. ";
gosub continue:
goto automenu:
rem HERE IS THE ROUTINE FOR LOOKING AT THE AUTOEXEC.BAT FILE.
autolook:
cls
close 1
close 2
print "Here is your file:"
print
print
open "i",1,file1$
nextline:
input # 1, line$ crlf
print line$
if error=99 then
close 1
print
print
print "Press any key to continue. ";
gosub continue:
return
endif
goto nextline:
rem THIS IS THE END OF THE ROUTINE FOR LOOKING AT THE AUTOEXEC.BAT FILE.
rem HERE IS THE ROUTINE FOR ADDING LINES TO THE END OF AUTOEXEC.BAT.
appndaut:
cls
spaces$=space$(68)
color 0,7
print "Esc=Quit"
color 7,0
print
close 1
close 2
open "a",1,file1$
appndagn:
print ""
print "Line to add? ";
gosub retypefi:
appendln$=file$
file$=""
if appendln$=b$ then
close 1
return
endif
print # 1, appendln$ nonull
print # 1, crlf$ nonull
goto appndagn:
rem THIS IS THE END OF THE ROUTINE FOR ADDING TO THE END OF AUTOEXEC.BAT.
rem THIS IS THE END OF THE ROUTINE FOR WORKING WITH AUTOEXEC.BAT.
rem HERE IS THE ROUTINE FOR MAKING A DIRECTORY.
makedir:
cls
print " Make a Directory"
print
print
spaces$=space$(68)
print spaces$;
color 0,7
print "Esc=Quit"
color 7,0
print "Type directory name (include drive and path). ";
gosub retypefi:
directory$=file$
remakedr:
mkdir directory$
if error=3 then nopathmd:
if error=5 then illeglmd:
print ""
print ""
realdir$=ucase$(directory$)
print "You have created directory: ";
print realdir$
directory$=""
print
print
print "Would you like to make another directory? (y/n) ";
a$=""
while a$=""
gosub continue:
if a$="y" then makedir:
if a$="Y" then makedir:
if a$="n" then menu:
if a$="N" then menu:
wend
rem THIS IS THE END OF THE ROUTINE FOR MAKING DIRECTORIES.
rem HERE IS THE ROUTINE FOR REMOVING DIRECTORIES.
removedr:
cls
print " Remove Directories"
print
print
spaces$=space$(68)
print spaces$;
color 0,7
print "Esc=Quit"
color 7,0
print
print "Before you can remove a directory, you must remove all files in that"
print "directory, and in its subdirectories. You must then remove all sub-"
print "directories."
print
print
removagn:
print "Please type the name of the directory you'd like to remove. Include"
print "the drive and path. ";
gosub retypefi:
directory$=file$
reremove:
rmdir directory$
if error=3 then nopathrm:
if error=5 then accessde:
if error=6 then cantrmdi:
if error=16 then cantrmdi:
realfile$=ucase$(directory$)
print ""
print ""
print realfile$;
print " has been removed."
print ""
print ""
print "Would you like to remove another directory? ";
a$=""
while a$=""
gosub continue:
if a$="y" then removagn:
if a$="Y" then removagn:
if a$="n" then menu:
if a$="N" then menu:
wend
rem THIS IS THE END OF THE ROUTINE FOR REMOVING DIRECTORIES.
rem HERE IS THE ROUTINE FOR CHECKING FOR A GRAPHICS CARD.
chckgrph:
cls
print " Check for a Graphics Adaptor"
print
print
print "This program only has the ability to check whether or not you have a"
print "graphics adapter. It can't tell you what kind of adapter you have"
print "at this time."
print
print
print
d=zmode
if d=1 then
print "You have a graphics adapter installed."
print
print
print "Press any key to continue. ";
gosub continue:
goto menu:
endif
print "There is no graphics adapter installed. However, you may be able to"
print "access special line-drawing characters for making menus, as well as"
print "some other characters (such as smiley faces). Check your DOS or word"
print "processing manual for details."
print
print
print "Press any key to continue. ";
gosub continue:
goto menu:
rem THIS IS THE END OF THE ROUTINE FOR CHECKING FOR A GRAPHICS CARD.
rem HERE IS THE ROUTINE FOR BLANKING YOUR SCREEN.
blankscr:
cls
locate 81,81
gosub continue:
return
rem THIS IS THE END OF THE ROUTINE FOR BLANKING YOUR SCREEN.
rem HERE IS THE ROUTINE FOR GETTING THE TIME AND/OR DATE.
timedate:
cls
print " Get Time and/or Date."
print
print
print "Here are your options:"
print
print
print "F1- Get the time."
print
print "F2- Get the date."
print
print "F3- Get Both."
print
print "Esc- Return to the Main Options Menu."
print
print
print
print "Please press the key corresponding to your choice. ";
wait20:
gosub continue:
if a$=b$ then menu:
if extended=0 then wait20:
if a$=";" then gettime:
if a$="<" then getdate:
if a$="=" then getboth:
goto wait20:
gettime:
cls
print " Get the Time."
print
print
print "In order for this feature to work, the time in your computer must be"
print "set properly, either manually or with the Real-Time-Clock."
print
print
print
print
print
a$=time$
f$=mid$(a$,1,2)
d=val(f$)
if d>12 then
d=d-12
h$=" PM"
else
h$=" AM"
endif
if d=12 then
h$=" PM"
endif
e=d
g$=str$(e)
i$=mid$(a$,3,6)
j$=g$+i$
k$=ltrim$(j$)
print "The time is now: ";
print k$;
print h$
print
print
print "Press any key to continue. ";
gosub continue:
goto timedate:
getdate:
cls
print " Get the Date"
print
print
print "In order for this feature to work properly, the date in your computer"
print "must be set properly. If it isn't, you may get a weird date."
print
print
print
print
print
a$=date$
print "Today's date is ";
print a$
print
print
print "Press any key to continue. ";
gosub continue:
goto timedate:
getboth:
cls
print " Get Both"
print
print
print "In order for this feature to work, both your time and date must be set"
print "properly. If they aren't, you may get some weird answers. If you"
print "have problems, check your manual to find out how to set the time and"
print "date from DOS."
print
print
print
print
print
a$=time$
f$=mid$(a$,1,2)
d=val(f$)
if d>12 then
d=d-12
h$=" PM"
else
h$=" AM"
endif
if d=12 then
h$=" PM"
endif
e=d
g$=str$(e)
i$=mid$(a$,3,6)
j$=g$+i$
k$=ltrim$(j$)
print "The time is now: ";
print k$;
print h$
print
print
f$=date$
print "Today's date is ";
print f$
print
print
print "Press any key to continue. ";
gosub continue:
goto timedate:
rem THIS IS THE END OF THE ROUTINE FOR GETTING THE TIME AND/OR DATE.
rem HERE IS THE ROUTINE FOR GETTING THE PATH.
getpath:
cls
print "Here is your path:"
print
print
for a=1 to 10
path$=environ$(a)
realpath$=mid$(path$,1,4)
if realpath$="PATH" then
color 0,7
print path$
color 7,0
print
print
print "Press any key to return to the Main Options Menu. ";
gosub continue:
goto menu2:
endif
realpath$=""
next a
rem HERE IS THE ROUTINE FOR TYPING IN FILES IN 80-COLUMN MODE.
retypefi:
gosub continue:
if a$=b$ then
realfile$=""
file$=""
file1$=""
file2$=""
goto menu:
endif
if a$=c$ then
print ""
return
endif
gosub cursor:
if a$=d$ then
locate a,c
print e$;
locate a,c
d=len(file$)
e=d-1
file$=mid$(file$,1,e)
if e<0 then
e=0
c=c+1
locate a,c
endif
if b=0 then
a=a-1
b=79
locate a,b
print e$;
locate a,b
endif
goto retypefi:
endif
print a$;
file$=file$+a$
realfile$=ucase$(file$)
goto retypefi:
rem THIS IS THE END OF THE ROUTINE FOR TYPING IN FILES IN 80-COLUMN MODE.
rem HERE IS THE ROUTINE FOR CONTINUING WHEN THE USER PRESSES A KEY.
continue:
a$=inkey$
if a$="" then continue:
return
rem THIS IS THE END OF THE ROUTINE FOR CONTINUING WHEN THE USER PRESSES A KEY.
rem HERE IS THE SUBROUTINE FOR INITIALIZING ROW/COLUMN POSITION OF CURSOR.
cursor:
a=csrlin
b=pos(0)
c=b-1
return
rem THIS IS THE END OF THE ROUTINE FOR INITIALIZING CURSOR POSITION.
rem ..........................................................................
rem HERE ARE THE ERROR-HANDLING ROUTINES.
rem ..........................................................................
rem HERE ARE THE ERROR ROUTINES FOR KILLFILE:
rem FILE NOT FOUND (ERROR 2)
nofilekf:
file$=""
cls
print "Hi. The file you've specified for deletion cannot be found. Please"
print "check your spelling and/or path."
print
print "If you want to try again, please re-enter the file to be deleted. To"
print "quit and return to the Main Options Menu, press Esc."
print ""
print "File to be deleted? ";
gosub retypefi:
goto rekill:
rem ACCESS DENIED (ERROR 5)
illeglkf:
cls
print "Hi. You've tried to delete a protected file. DOS will not allow"
print "this. In order to delete it, you'll have to go to DOS and change"
print "your file to read-write status."
print
print
print "NOTE: THIS FILE MAY VERY WELL BE ESSENTIAL TO THE CORRECT OPERATION OF"
print "YOUR COMPUTER OR SOME PROGRAM YOU USE REGULARLY. DELETING IT MAY"
print "RENDER YOUR SYSTEM OR ONE OF YOUR PROGRAMS UNUSABLE. THAT'S USUALLY"
print "WHY FILES ARE PROTECTED WITH READ-ONLY STATUS."
print
print
print "Press Esc to return to the Main Options Menu, or any other key to try"
print "again with another file. ";
gosub continue:
if a$=b$ then menu:
file$=""
goto deletagn:
rem THIS IS THE END OF THE ERROR ROUTINE FOR DEALING WITH "ACCESS DENIED".
rem THIS IS THE END OF THE ERROR ROUTINES FOR KILLFILE:
rem HERE ARE THE ERROR ROUTINES FOR MAKEDIR:
rem PATH NOT FOUND (ERROR 3)
nopathmd:
directory$=""
cls
print "Hi. The path you've specified can't be found. Please check your"
print "spelling and path, and try again."
print
print "To quit and return to the Main Options Menu, press Esc."
print "Directory name (include drive and path)? ";
gosub retypefi:
goto remakedr:
rem THIS IS THE END OF THE ERROR ROUTINE FOR PATH NOT FOUND (MAKEDIR:)
rem ACCESS DENIED (ERROR 5)
illeglmd:
cls
print "Hi. The path you've specified is protected from changes. DOS will"
print "not allow you to make a directory using this path."
print
print
print "Press Esc to return to the Main Options Menu, or any other key to try"
print "again with another directory name. ";
gosub continue:
if a$=b$ then
goto menu:
else
file$=""
goto makedir:
endif
rem THIS IS THE END OF THE ERROR ROUTINE FOR ACCESS DENIED (MAKEDIR:)
rem THIS IS THE END OF THE ERROR ROUTINES FOR MAKEDIR:
rem HERE IS THE ERROR ROUTINE FOR PATH NOT FOUND (REMOVEDR:)
nopathrm:
cls
print "Hi. The path you've specified for the directory you want to remove"
print "can't be found. Please check your spelling and try again. To quit"
print "and return to the Main Options Menu, press Esc at any time."
print
print "Directory to remove? ";
gosub retypefi:
goto reremove:
rem THIS IS THE END OF THE ERROR ROUTINE FOR PATH NOT FOUND (REMOVEDR:)
rem HERE IS THE ERROR ROUTINE FOR ACCESS DENIED (REMOVEDR:)
accessde:
cls
print "Hi. The path you've specified is protected from changes. DOS will"
print "not allow you to remove a directory using this path."
print
print "Press Esc to return to the Main Options Menu, or any other key to try"
print "again with another file. ";
gosub continue:
if a$=b$ then
goto menu:
else
file$=""
goto removagn:
endif
rem THIS IS THE END OF THE ROUTINE FOR ACCESS DENIED (REMOVEDR:)
rem HERE IS THE ERROR ROUTINE FOR CAN'T DELETE CURRENT DIRECTORY (REMOVEDR:)
cantrmdi:
cls
print "Hi. The directory you've specified can't be removed. It probably"
print "contains either files or subdirectories. You can use the Find Files"
print "option to determine this."
print
print
rmdirmen:
print "F1- Try again, I goofed."
print
print "F2- Go to the Find Files Option."
print
print "Esc- Return to the Main Options Menu."
print
print
print "Please press the key corresponding to your choice. ";
wait1:
gosub continue:
if a$=b$ then menu:
if extended=0 then wait1:
if a$=";" then
print
print "Directory to remove? ";
gosub retypefi:
goto reremove:
endif
if a$="<" then
call ("util1-80.com"," /s")
goto rmdirmen:
endif
rem HERE ARE THE ERROR ROUTINES FOR RENFILE:
rem FILE NOT FOUND (ERROR 2)
nofilerf:
file1$=""
file2$=""
cls
print "Hi. The file you've specified can't be found. Please check your"
print "spelling and try again."
print
print "To quit and return to the Main Options Menu, press Esc."
print
print "File to rename? ";
gosub retypefi:
file1$=file$
realfil1$=ucase$(file1$)
print ""
print ""
print "New name for ";
print realfil1$;
print "? ";
gosub retypefi:
file2$=file$
realfil2$=ucase$(file2$)
goto refile:
rem THIS IS THE END OF THE FILE NOT FOUND ERROR HANDLER (RENFILE:)
rem PATH NOT FOUND OR FILE DOESN'T EXIST (ERROR 3)
nopathrf:
file1$=""
file2$=""
cls
print "Hi. DOS can't find the path you've specified. Please check your"
print "spelling and path, and try again."
print
print "To quit and return to the Main Options Menu, press Esc."
print
print
print "File to rename? ";
gosub retypefi:
file1$=file$
realfil1$=ucase$(file1$)
print ""
print ""
print "New name for ";
print realfil1$;
print "? ";
gosub retypefi:
file2$=file$
realfil2$=ucase$(file2$)
goto refile:
rem THIS IS THE END OF THE ERROR ROUTINE FOR PATH NOT FOUND (RENFILE:)
rem HERE IS THE ERROR ROUTINE FOR ACCESS DENIED (ERROR 5)
illeglrf:
cls
print "Hi. The file you've specified is protected. DOS will not allow you"
print "to rename this file."
print
print
print "Press Esc to return to the Main Options Menu, or any other key to try"
print "again with another file. ";
gosub continue:
if a$=b$ then
goto menu:
else
goto renfile:
endif
rem THIS IS THE END OF THE ROUTINE FOR ACCESS DENIED (RENFILE:)
rem HERE IS THE ERROR ROUTINE FOR NOT SAME DISK DRIVE (ERROR 17)
diffdrrf:
file2$=""
cls
print "Hi. You've specified a different drive for your renamed file than it"
print "was originally on. If, for example, your original file was on drive"
print "A, the renamed file must be on drive A as well."
print
print "Please check your spelling and/or path, and try again. To quit and"
print "return to the Main Options Menu, press Esc."
print
print
print "New name for ";
print realfil1$;
print "? ";
gosub retypefi:
file2$=file$
realfil2$=ucase$(file2$)
goto refile:
rem THIS IS THE END OF THE ERROR ROUTINE FOR NOT SAME DISK DRIVE (RENFILE:)
rem HERE IS THE ERROR ROUTINE FOR RUNOTHER: (ERROR 255 - UNABLE TO LOAD/RUN)
cantrun:
cls
print "Hi. There's been some trouble loading and/or running the program"
print "you've specified. Here's the program and the parameter, if any, you"
print "asked for:"
print program$;
print argument$
print
print "Is this what you intended to type (y/n)? ";
a$=""
while a$=""
gosub continue:
if a$="y" then problemr:
if a$="Y" then problemr:
if a$="n" then callagan:
if a$="N" then callagan:
wend
problemr:
cls
print "The Manager has trouble running some programs. For instance,"
print "parameters are often passed to CHKDSK.EXE which were never"
print "intended. These seem to have something to do with the DOS"
print "parameters that were set up in the source. Your best bet is to shell"
print "to DOS and run your program from there. Press any key to return to"
print "the Main Options Menu. ";
gosub continue:
goto menu:
callagan:
cls
print "You're about to be returned to the Run Other Programs option, where"
print "you can retype your program and argument. If you get this error"
print "again, and are sure you typed it in correctly, type y or Y at the"
print "prompt for bug info on this option."
print
print "Press any key to return to the Run Other Programs Option. ";
gosub continue:
goto runother:
end