home *** CD-ROM | disk | FTP | other *** search
/ Black Box 4 / BlackBox.cdr / dosutils / managsrc.arj / MANAGER.ASI < prev    next >
Text File  |  1990-02-21  |  49KB  |  2,421 lines

  1. rem MANAGER.COM
  2.  
  3. rem This program requires approximately 195K.
  4.  
  5. rem consecutive to wait5:
  6.  
  7. rem initialize Esc key.  This is necessary because some parameters go directly 
  8. rem to a routine; if it wasn't initialized here, it would have to be re-
  9. rem initialized in every routine in which it was used.  CHR$(27) is the ASCII 
  10. rem code for the Esc key.
  11.  
  12. b$=chr$(27)
  13.  
  14. rem initialize Enter (Return) key.  Same reason as the Esc key initialization, 
  15. rem but applies mainly to the error routines.  CHR$(13) is the ASCII code for 
  16. rem the Enter (Return) key.
  17.  
  18. c$=chr$(13)
  19.  
  20. rem Again, for the error routines, initialize the Backspace key and space bar.
  21. rem The backspace key is chr$(8), and the space bar is chr$(32).  For copying 
  22. rem and moving text files, it will be helpful to have the line feed [chr$(10)]
  23. rem and the "carriage return" [chr$(13)+chr$(10)] initialized.  The carriage
  24. rem return is initialized to crlf$.
  25.  
  26. d$=chr$(8)
  27. e$=chr$(32)
  28. lf$=chr$(10)
  29. crlf$=c$+lf$
  30. rem a=csrline (this is reserved in the subroutine CURSOR:)
  31. rem b=pos(0) (also reserved in CURSOR: subroutine)
  32. rem c=b-1 (reserved in CURSOR: subroutine)
  33.  
  34. rem Now, check for parameters.  Notice the leading space in front of each 
  35. rem parameter.  For instance, " /?" rather than "/?".  This is necessary from 
  36. rem the DOS prompt.  It is not necessary when getting parameters from another 
  37. rem ASIC program. 
  38.  
  39. a$=command$
  40.  
  41. rem This section reads INSTALL.CFG, a file created with another tiny ASIC 
  42. rem program (I haven't included that yet, but I will).  This feature installs 
  43. rem an automatic parameter, in essence; once installed, it'll go directly to a 
  44. rem specific menu option.  When I was writing this, I forgot to include an 
  45. rem option to bypass the opening screen, but it's on my list now, and I'll get 
  46. rem to it soon.
  47.  
  48. rem INSTALL.CFG is only read if no parameters have been specified from DOS.
  49.  
  50. if a$="" then
  51. open "i",1,"install.cfg"
  52.  
  53. rem Because the file was written with ASIC, the NONULL option is not 
  54. rem necessary in the INPUT # command.
  55.  
  56. input # 1, install$
  57. close 1
  58. goto doautopa:
  59. endif
  60.  
  61. rem If a parameter has been specified, INSTALL.CFG is not read.  Instead, the
  62. rem parameter is read and you get sent to the section related to that 
  63. rem parameter.
  64.  
  65.  
  66.  
  67. rem The parameters have been made case insensitive.  Since the computer makes 
  68. rem a distinction between "a" and "A", this is a suggested courtesy to the 
  69. rem user; he or she doesn't have to worry about whether Caps Lock is on or 
  70. rem not.
  71.  
  72. rem For some reason, the "SEEFILES" option wouldn't work from within the main 
  73. rem body of MANAGER.COM; I had to make it an outside "callable" program long 
  74. rem before I started running out of "symbol table space".
  75.  
  76. rem Find files (very poor clone of DIR /P)
  77.  
  78. if a$=" /s" then
  79. call ("util1-80.com"," /s")
  80. goto menu:
  81. endif
  82.  
  83. if a$=" /S" then
  84. call ("util1-80.com"," /s")
  85. goto menu:
  86. endif
  87.  
  88. rem Read text files (combination of TYPE and MORE)
  89.  
  90. if a$=" /v" then
  91. call "util1-80.com"," /v"
  92. goto menu:
  93. endif
  94.  
  95. if a$=" /V" then
  96. call ("util1-80.com", " /v")
  97. goto menu:
  98. endif
  99.  
  100. rem Print files (clone of COPY filename.ext PRN, with pause and quit options)
  101.  
  102. if a$=" /l" then
  103. call "util1-80.com"," /l"
  104. goto menu:
  105. endif
  106.  
  107. if a$=" /L" then
  108. call "util1-80.com"," /l"
  109. goto menu:
  110. endif
  111.  
  112. rem Copy text files (extremely poor clone of COPY)
  113.  
  114. if a$=" /c" then
  115. call "util1-80.com"," /co"
  116. goto menu2:
  117. endif
  118.  
  119. if a$=" /C" then
  120. call "util1-80.com"," /co"
  121. goto menu2:
  122. endif
  123.  
  124. rem Move text files (extremely poor clone of COPY and DEL)
  125.  
  126. if a$=" /o" then
  127. call "util1-80.com"," /m"
  128. goto menu:
  129. endif
  130.  
  131. if a$=" /O" then
  132. call "util1-80.com"," /m"
  133. goto menu:
  134. endif
  135.  
  136. rem Rename files (clone of REN/RENAME)
  137.  
  138. if a$=" /n" then renfile:
  139. if a$=" /N" then renfile:
  140.  
  141. rem Delete files (clone of DEL/ERASE)
  142.  
  143. if a$=" /d" then killfile:
  144. if a$=" /D" then killfile:
  145.  
  146. rem Run other programs (poor clone of COMMAND /C)
  147.  
  148. if a$=" /r" then runother:
  149. if a$=" /R" then runother:
  150.  
  151. rem Make directory (clone of MD/MKDIR)
  152.  
  153. if a$=" /m" then makedir:
  154. if a$=" /M" then makedir:
  155.  
  156. rem Remove directory (extremely poor clone of RD/RMDIR)
  157.  
  158. if a$=" /e" then removedr:
  159. if a$=" /E" then removedr:
  160.  
  161. rem Change default directory (extremely poor clone of CD/CHDIR)
  162.  
  163. if a$=" /cd" then
  164. call "util1-80.com"," /c"
  165. goto menu:
  166. endif
  167.  
  168. if a$=" /CD" then
  169. call "util1-80.com"," /c"
  170. goto menu:
  171. endif
  172.  
  173. rem Check for graphics card (no DOS equivalent that I know of)
  174.  
  175. if a$=" /p" then chckgrph:
  176. if a$=" /P" then chckgrph:
  177.  
  178. rem Blank screen (no DOS equivalent that I know of)
  179.  
  180. if a$=" /b" then
  181. gosub blankscr:
  182. goto menu:
  183. endif
  184.  
  185. if a$=" /B" then
  186. gosub blankscr:
  187. goto menu:
  188. endif
  189.  
  190. rem Go to the 40-column version of The Manager, which is really horrible (I've 
  191. rem had little or no feedback on this program, so I'm assuming the visually 
  192. rem impaired couldn't care less until further notice.  Since I'm not visually
  193. rem impaired myself, I've put that mode on the back burner).  NOTE:  Sometime 
  194. rem I've got to see if this needs adjusting; I want to have the option to 
  195. rem either quit 40-columns and exit back to the main menu without calling 
  196. rem another clone of the 80-column MANAGER.COM, or quit to DOS in 40-column 
  197. rem mode.  As it stands now, I think I have to have a layer of MANAGER.COM 
  198. rem over MANAGR40.COM over the original MANAGER.COM, which is just silly.  I
  199. rem hope to be able to initialize a variable according to whether Return to
  200. rem 80-columns or Quit to DOS is chosen.
  201.  
  202. if a$=" /40" then
  203. call "managr40.com",""
  204. end
  205. endif
  206.  
  207. rem See a list of DOS parameter options (vaguely similar to DOS' HELP.EXE, but 
  208. rem not really anything like it, since it's not nearly so involved.  Hmmm,
  209. rem might be worth it to make an enhanced help feature, mightn't it?)
  210.  
  211. if a$=" /?" then
  212. call ("util1-80.com"," /h")
  213. goto menu:
  214. endif
  215.  
  216. rem Crappy Calculator (no DOS equivalent that I know of)
  217.  
  218. if a$=" /cr" then
  219. call "util1-80.com"," /cr"
  220. goto menu2:
  221. endif
  222.  
  223. if a$=" /CR" then
  224. call "util1-80.com"," /cr"
  225. goto menu2:
  226. endif
  227.  
  228. rem Get the time and/or date (partial clone of TIME and DATE; you can't set 
  229. rem either, but you can read them)
  230.  
  231. if a$=" /g" then timedate:
  232. if a$=" /G" then timedate:
  233.  
  234. rem See a list of ASCII codes, decimal only (no DOS equivalent that I know of)
  235.  
  236. if a$=" /a" then
  237. call "util1-80.com"," /a"
  238. goto menu2:
  239. endif
  240.  
  241. if a$=" /A" then
  242. call "util1-80.com"," /a"
  243. goto menu2:
  244. endif
  245.  
  246. if a$=" /40 ?" then
  247. call "managr40.com"," /40 ?"
  248. end
  249. endif
  250.  
  251. if a$=" /40 d" then
  252. call "managr40.com"," /40 d"
  253. end
  254. endif
  255.  
  256. if a$=" /40 D" then
  257. call "managr40.com"," /40 d"
  258. end
  259. endif
  260.  
  261. if a$=" /40 m" then
  262. call "managr40.com"," /40 m"
  263. end
  264. endif
  265.  
  266. if a$=" /40 M" then
  267. call "managr40.com"," /40 m"
  268. end
  269. endif
  270.  
  271. if a$=" /40 n" then
  272. call "managr40.com"," /40 n"
  273. end
  274. endif
  275.  
  276. if a$=" /40 N" then
  277. call "managr40.com"," /40 n"
  278. end
  279. endif
  280.  
  281. if a$=" /40 g" then
  282. call "managr40.com"," /40 g"
  283. end
  284. endif
  285.  
  286. if a$=" /40 G" then
  287. call "managr40.com"," /40 g"
  288. end
  289. endif
  290.  
  291. if a$=" /40 b" then
  292. call "managr40.com"," /40 b"
  293. end
  294. endif
  295.  
  296. if a$=" /40 B" then
  297. call "managr40.com"," /40 b"
  298. end
  299. endif
  300.  
  301. if a$=" /40 s" then
  302. call "util1-80.com"," /s 40"
  303. call "managr40.com",""
  304. end
  305. endif
  306.  
  307. if a$=" /40 S" then
  308. call "util1-80.com"," /s 40"
  309. call "managr40.com",""
  310. end
  311. endif
  312.  
  313. rem The /40 v parameter doesn't do anything right now; it's just there for 
  314. rem when I get a read files option that works in 40-column mode.
  315.  
  316. if a$=" /40 v" then
  317. call "managr40.com"," /40 v"
  318. end
  319. endif
  320.  
  321. if a$=" /40 V" then
  322. call "managr40.com"," /40 v"
  323. end
  324. endif
  325.  
  326. if a$=" /40 l" then
  327. call "managr40.com"," /40 l"
  328. end
  329. endif
  330.  
  331. if a$=" /40 L" then
  332. call "managr40.com"," /40 l"
  333. end
  334. endif
  335.  
  336. if a$=" /40 r" then
  337. call "managr40.com"," /40 r"
  338. end
  339. endif
  340.  
  341. if a$=" /40 R" then
  342. call "managr40.com"," /40 r"
  343. end
  344. endif
  345.  
  346. if a$=" /40 e" then
  347. call "managr40.com"," /40 e"
  348. end
  349. endif
  350.  
  351. if a$=" /40 E" then
  352. call "managr40.com"," /40 e"
  353. end
  354. endif
  355.  
  356. if a$=" /40 c" then
  357. call "managr40.com"," /40 c"
  358. end
  359. endif
  360.  
  361. if a$=" /40 C" then
  362. call "managr40.com"," /40 c"
  363. end
  364. endif
  365.  
  366. if a$=" /40 o" then
  367. call "managr40.com"," /40 o"
  368. end
  369. endif
  370.  
  371. if a$=" /40 O" then
  372. call "managr40.com"," /40 o"
  373. end
  374. endif
  375.  
  376. rem If no parameter was specified, the above batch of IF statements is 
  377. rem bypassed with a GOTO statement, to this section, which looks at the 
  378. rem INSTALL.CFG file.
  379.  
  380. doautopa:
  381.  
  382. if install$="/?" then
  383. call ("util1-80.com"," /h")
  384. goto menu:
  385. endif
  386.  
  387. if install$="/d" then killfile:
  388. if install$="/m" then makedir:
  389. if install$="/n" then renfile:
  390. if install$="/g" then timedate:
  391.  
  392. if install$="/b" then
  393. gosub blankscr:
  394. goto menu:
  395. endif
  396.  
  397. if install$="/p" then chckgrph:
  398.  
  399. if install$="/s" then
  400. call ("util1-80.com"," /s")
  401. goto menu:
  402. endif
  403.  
  404. if install$="/v" then
  405. call "util1-80.com"," /v"
  406. goto menu:
  407. endif
  408.  
  409. if install$="/l" then
  410. call "util1-80.com"," /l"
  411. goto menu:
  412. endif
  413.  
  414. if install$="/r" then runother:
  415. if install$="/e" then removedr:
  416.  
  417. if install$="/c" then
  418. call "util1-80.com"," /co"
  419. goto menu2:
  420. endif
  421.  
  422. if install$="/o" then
  423. call "util1-80.com"," /m"
  424. goto menu:
  425. endif
  426.  
  427. if install$="/40" then
  428. call "managr40.com",""
  429. end
  430. endif
  431.  
  432. rem Here's a recent addition; if you set it up from the main program, you can 
  433. rem bypass the opening screen, which can get kind of irritating after a while
  434. rem (trust me on this, I can't test the silly thing if I install ANYthing, and
  435. rem that opening screen really gets on my nerves).
  436.  
  437. if install$="bypass" then menu:
  438.  
  439.  
  440. rem If no parameters are installed, and INSTALL.CFG didn't contain one of the 
  441. rem above parameters, all the IF statements fail (or "fall through"), and we 
  442. rem begin from the beginning.
  443.  
  444. rem Set up and print intro screen.
  445.  
  446.  
  447. cls
  448. print "                               The Manager 2.68"
  449. print
  450. print
  451. print "                                By Matt Roberts"
  452. print "                                5 Cedar St., #8"
  453. print "                           Montpelier, Vt 05602-3006"
  454. print "                                 (802)223-2553"
  455. print
  456. print
  457. print "          If you find the programs on this disk useful, a donation of"
  458. print "                 $5.00 would be greatly appreciated.  Thanks."
  459. print
  460. print
  461. print "           If you're having trouble using this program, you can call"
  462. print "               between 9AM and 9PM (EST), and I'll try to help."
  463. print
  464. print
  465. print
  466. print
  467. print
  468. print
  469. print
  470. print "Press any key to continue. ";
  471. gosub continue:
  472.  
  473. rem Intro screen is now printed.
  474.  
  475. rem Now direct the program to create a menu of options.
  476.  
  477. rem Here is the menu of options.
  478.  
  479. menu:
  480. cls
  481. print "                                 Your Options"
  482. print
  483. print
  484. print "F1- Find Files.                    F10- Work with CONFIG.SYS."
  485. print
  486. print "F2- Read Files.                    <Alt-F1>- Work with AUTOEXEC.BAT."
  487. print
  488. print "F3- Print Files.                   <Alt-F2>- Make Directory."
  489. print
  490. print "F4- Copy Files.                    <Alt-F3>- Remove Directory."
  491. print
  492. print "F5- Move Files.                    <Alt-F4>- Change Default Directory."
  493. print
  494. print "F6- Rename Files.                  <Alt-F5>- Check for Graphics Card."
  495. print
  496. print "F7- Delete Files.                  <Alt-F6>- Blank Screen."
  497. print
  498. print "F8- Run Other Programs.            N- Next Menu."
  499. print
  500. print "F9- NOT IN USE                     Esc- Quit and Return to DOS."
  501. print
  502. print
  503. print "Please press the key corresponding to your choice. ";
  504.  
  505. rem Now we go to the routine (CONTINUE:) which waits for a keypress.  
  506. rem Depending on the key pressed, an action is taken.
  507.  
  508. wait2:
  509. gosub continue:
  510.  
  511. rem This is the reason the Esc key was initialized in the beginning; it's the 
  512. rem universal "quit" key in this program.  With ASIC, CHR$(27) would have to 
  513. rem be initialized to a variable every time it was used if it wasn't taken 
  514. rem care of in the beginning.
  515.  
  516. if a$=b$ then
  517. cls
  518. end
  519. endif
  520.  
  521. if a$="n" then menu2:
  522. if a$="N" then menu2:
  523.  
  524. rem The following line checks to see whether an "extended" key was pressed.  
  525. rem This includes the function keys, the Alt Ctrl and Shift keys (in 
  526. rem conjunction with any other key), and possibly some others.  So, if you 
  527. rem press Shift-F1, or Alt-D, the system variable EXTENDED will be set to one.
  528.  
  529. if extended=0 then wait2:
  530.  
  531. if a$=";" then
  532. call ("util1-80.com"," /s")
  533. goto menu:
  534. endif
  535.  
  536. if a$="<" then
  537. call "util1-80.com"," /v"
  538. goto menu:
  539. endif
  540.  
  541. if a$="=" then
  542. call "util1-80.com","/l"
  543. goto menu:
  544. endif
  545.  
  546. if a$=">" then
  547. call "util1-80","/co"
  548. goto menu2:
  549. endif
  550.  
  551. if a$="?" then
  552. call "util1-80.com"," /m"
  553. goto menu:
  554. endif
  555.  
  556. if a$="@" then renfile:
  557. if a$="A" then killfile:
  558. if a$="B" then runother:
  559. if a$="C" then menu:
  560. if a$="D" then changeco:
  561. if a$="h" then chngauto:
  562. if a$="i" then makedir:
  563. if a$="j" then removedr:
  564.  
  565. if a$="k" then
  566. call ("util1-80.com"," /c")
  567. goto menu:
  568. endif
  569.  
  570. if a$="l" then chckgrph:
  571.  
  572. if a$="m" then
  573. gosub blankscr:
  574. goto menu:
  575. endif
  576.  
  577. goto wait2:
  578.  
  579. menu2:
  580. cls
  581. print "                                 More Options"
  582. print
  583. print
  584. print "<Alt-F7>- Change to 40-column Mode."
  585. print
  586. print "<Alt-F8>- See DOS Parameter Options."
  587. print
  588. print "<Alt-F9>- Use the Crapulator (Crappy Calculator)."
  589. print
  590. print "<Alt-F10>- Get Time/Date."
  591. print
  592. print "<Ctrl-F1>- See ASCII Code List."
  593. print
  594. print "<Ctrl-F2>- Install a DOS parameter."
  595. print
  596. print "<Ctrl-F3>- See your PATH."
  597. print
  598. print "F- First Menu."
  599. print
  600. print "Esc- Quit and Return to DOS."
  601. print
  602. print
  603. print "Please press the key corresponding to your choice. ";
  604. gosub continue:
  605.  
  606. wait:
  607.  
  608. rem There's that Esc key again.  As you can see, initializing and reserving 
  609. rem variables in ASIC is a pretty good idea, unless you like typing.
  610.  
  611. if a$=b$ then
  612. cls
  613. end
  614. endif
  615.  
  616. if a$="f" then menu:
  617. if a$="F" then menu:
  618. if extended=0 then wait:
  619.  
  620. rem Check ASIC.DOC for a discussion of the Symbol Table (in the error 
  621. rem section).  Because I use a lot of labels and variables in my work, I ran 
  622. rem out and had to separate these programs into separate modules, even though 
  623. rem I hadn't reached the 64K wall yet.
  624.  
  625. if a$="n" then
  626. call "managr40.com",""
  627. goto menu2:
  628. endif
  629.  
  630. if a$="o" then
  631. call ("util1-80.com"," /h")
  632. goto menu2:
  633. endif
  634.  
  635. if a$="p" then
  636. call ("util1-80.com"," /cr")
  637. goto menu2:
  638. endif
  639.  
  640. if a$="q" then timedate:
  641.  
  642. if a$="^" then
  643. call ("util1-80.com"," /a")
  644. goto menu2:
  645. endif
  646.  
  647. if a$="_" then
  648. call ("util1-80.com"," /i")
  649. goto menu2:
  650. endif
  651.  
  652. if a$="`" then getpath:
  653.  
  654. goto wait:
  655.  
  656. rem ..........................................................................
  657.  
  658. rem HERE ARE THE MENU ROUTINES.
  659.  
  660. rem ..........................................................................
  661.  
  662.  
  663. rem HERE IS THE ROUTINE FOR RENAMING FILES.
  664.  
  665. renfile:
  666. cls
  667. print "                                 Rename Files"
  668. print
  669. print
  670. spaces$=space$(68)
  671. print spaces$;
  672.  
  673. rem COLOR 0,7 will give us reversed printing.
  674.  
  675. color 0,7
  676.  
  677. print "Esc=Quit"
  678.  
  679. rem Back to normal (white on black).
  680.  
  681. color 7,0
  682. print "Name of file to change (include drive and path)? ";
  683. gosub retypefi:
  684. file1$=file$
  685.  
  686. rem UCASE$ gives us uppercase.  Like almost all of ASIC's functions, it has to 
  687. rem be initialized to a variable in order to be used <sigh>.
  688.  
  689. realfile1$=ucase$(file1$)
  690.  
  691. rem Sometimes, the screen writes get screwed up with a blank PRINT statement.  
  692. rem If that happens, it can be fixed by putting a null string ("") after the
  693. rem PRINT command.
  694.  
  695. print ""
  696. print ""
  697. print ""
  698. print "New name for ";
  699. print realfil1$;
  700. print "? ";
  701.  
  702. rem Here we set our variable FILE$ back to the null string (nothing), since
  703. rem otherwise its current value will be carried over the next time we use it
  704. rem in the routine to type in a file (RETYPFI:).
  705.  
  706. file$=""
  707. gosub retypefi:
  708.  
  709. file2$=file$
  710. realfil2$=ucase$(file2$)
  711.  
  712. refile:
  713. name file1$ as file2$
  714.  
  715. rem The ERROR system variable is unusual in that it DOESN'T have to be 
  716. rem initialized to another variable before use.
  717.  
  718. if error=2 then nofilerf:
  719. if error=3 then nopathrf:
  720. if error=5 then illeglrf:
  721. if error=17 then diffdrrf:
  722. print ""
  723. print ""
  724. print realfil1$;
  725. print " has been renamed ";
  726. print realfil2$;
  727. print "."
  728. file1$=""
  729. file2$=""
  730. print
  731. print "Rename another? (y/n) ";
  732.  
  733. a$=""
  734. while a$=""
  735. gosub continue:
  736. if a$="y" then renfile:
  737. if a$="Y" then renfile:
  738. if a$="n" then menu:
  739. if a$="N" then menu:
  740. wend
  741.  
  742. rem THIS IS THE END OF THE ROUTINE FOR RENAMING FILES.
  743.  
  744.  
  745. rem HERE IS THE ROUTINE FOR DELETING FILES.
  746.  
  747. killfile:
  748. cls
  749. print "                                 Delete Files"
  750. print
  751. print
  752. print "Before going any further, you should be aware that, once a file has"
  753. print "been deleted, it is very difficult to retrieve it.  From this program,"
  754. print "it is impossible; I lack the skill to make an undelete feature"
  755. print "available."
  756. print
  757. print
  758. print "Press any key to continue, or Esc to quit. ";
  759.  
  760. gosub continue:
  761. if a$=b$ then menu:
  762.  
  763. deletagn:
  764. cls
  765. print "                                 Delete Files"
  766. print
  767. print
  768. spaces$=space$(68)
  769. print spaces$;
  770. color 0,7
  771. print "Esc=Quit"
  772. color 7,0
  773. print "File to delete? ";
  774. gosub retypefi:
  775. print ""
  776. print ""
  777. print ""
  778. print "All the data in ";
  779. print realfile$;
  780. print " will be destroyed."
  781. print
  782. print
  783. print "Press any key to continue, or Esc to quit. ";
  784.  
  785. gosub continue:
  786.  
  787. if a$=b$ then
  788. file$=""
  789. realfile$=""
  790. goto menu:
  791. endif
  792.  
  793. rekill:
  794. kill file$
  795. if error=2 then nofilekf:
  796. if error=5 then illeglkf:
  797. print ""
  798. print ""
  799. print realfile$;
  800. print " has been deleted."
  801. file$=""
  802. print
  803.  
  804. rem Note the space between the right parenthesis (in the line following) and 
  805. rem the quote mark.  It's just a little touch, but it makes a world of 
  806. rem difference in the readability of your screen writes.  The tendency of ALL
  807. rem BASIC languages to cram the answer you type right next to the question is 
  808. rem the main reason I avoid the INPUT command whenever possible.
  809.  
  810. print "Delete another? (y/n) ";
  811.  
  812. a$=""
  813. while a$=""
  814. gosub continue:
  815. if a$="y" then deletagn:
  816. if a$="Y" then deletagn:
  817. if a$="n" then menu:
  818. if a$="N" then menu:
  819. wend
  820.  
  821. rem THIS IS THE END OF THE ROUTINE FOR DELETING FILES.
  822.  
  823.  
  824. rem HERE IS THE ROUTINE FOR RUNNING OTHER PROGRAMS.
  825.  
  826. runother:
  827. cls
  828. spaces$=space$(68)
  829. print spaces$;
  830. color 0,7
  831. print "Esc=Quit"
  832. color 7,0
  833. print
  834. print "Please type the full name of the program you want to run (for example,"
  835. print "MYPROGRM.COM).  Include the drive and path."
  836. print
  837.  
  838. rem The cursor subroutine tells your program to save the current screen 
  839. rem location of the cursor.
  840.  
  841. gosub cursor:
  842.  
  843. rem As far as I can tell, the location of COMMAND.COM on disk is always in
  844. rem ENVIRON$(1).  This is not necessarily the case with such environment 
  845. rem strings as you can manipulate when shelling to DOS.  Please remember that
  846. rem whatever environment$ you manipulate from within ASIC is only changed 
  847. rem while you are "shelled" to DOS.  When you return to your program from 
  848. rem outside, the second copy of COMMAND.COM, which holds the changes, is 
  849. rem removed from memory, and you are back to your defaults.
  850.  
  851. rem This routine allows you to shell to DOS by just pressing Enter (c$).
  852.  
  853. commandc$=environ$(1)
  854.  
  855. rem Once we've found COMMAND.COM and initialized it to a variable, we need to
  856. rem remove the "COMSPEC=" part so it'll look better on-screen.
  857.  
  858. command2$=mid$(commandc$,9,79)
  859. print command2$;
  860. gosub continue:
  861.  
  862. if a$=c$ then
  863. cls
  864. print "Use the DOS command EXIT to return to The Manager."
  865. print
  866. call command2$,""
  867. goto menu:
  868.  
  869. rem if anything but Enter or Esc is pressed, the COMMAND.COM is deleted from 
  870. rem the screen, the cursor goes back to the start, and the key pressed is 
  871. rem added to the variable which will be created in RETYPEFI:.
  872.  
  873. else
  874.  
  875. rem Return to the original cursor location.
  876.  
  877. locate a,b
  878.  
  879. rem Print spaces for about a line, to delete the COMMAND.COM location that was
  880. rem on the screen.
  881.  
  882. spaces$=space$(68)
  883. print spaces$;
  884.  
  885. rem Go back to the beginning again.
  886.  
  887. locate a,b
  888.  
  889. rem And print the keypress.
  890.  
  891. print a$;
  892.  
  893. rem Add the keypress to the variable (FILE$) that RETYPEFI: uses, which is 
  894. rem currently nothing; as a result, FILE$ now equals the keypress, and is 
  895. rem ready for other characters to be added.
  896.  
  897. file$=file$+a$
  898.  
  899. rem Now hit the subroutine that allows the other characters to be added to 
  900. rem FILE$.
  901.  
  902. gosub retypefi:
  903. endif
  904.  
  905. rem Now we want to move FILE$ to a new variable, so we can set FILE$ to 
  906. rem nothing again so we can re-use it later.
  907.  
  908. program$=file$
  909. file$=""
  910.  
  911. print ""
  912. print "You can specify an argument to your program, but it must be one phrase"
  913. print "(no spaces).  Do you want to specify an argument (y/n)";
  914.  
  915. a$=""
  916. while a$=""
  917. gosub continue:
  918. if a$="y" then getargum:
  919. if a$="Y" then getargum:
  920.  
  921. if a$="n" then
  922. argument$=""
  923. goto dorunoth:
  924. endif
  925.  
  926. if a$="N" then
  927. argument$=""
  928. goto dorunoth:
  929. endif
  930.  
  931. wend
  932.  
  933. getargum:
  934. cls
  935. spaces$=space$(68)
  936. print spaces$;
  937. color 0,7
  938. print "Esc=Quit"
  939. color 7,0
  940. print
  941. print "Please type the argument you'd like to use.  It can only be one phrase"
  942. print "and cannot contain any spaces. ";
  943. gosub retypefi:
  944. argument$=file$
  945. file$=""
  946.  
  947. dorunoth:
  948.  
  949. argument$=e$+argument$
  950. call program$,argument$
  951.  
  952. if error=255 then
  953. print
  954. print "Having trouble, please wait:"
  955. print
  956. argument$=mid$(argument$,2,79)
  957. call program$,argument$
  958. endif
  959.  
  960. if error=255 then
  961. print
  962. print "Still having trouble, please wait:"
  963. print
  964. n=len(argument$)
  965. a$=chr$(n)
  966. a$=a$+argument$
  967. a$=a$+c$
  968. call program$ a$
  969. endif
  970.  
  971. if error=255 then cantrun:
  972. print
  973. print
  974. print "Press any key to return to The Manager. ";
  975. gosub continue:
  976. program$=""
  977. argument$=""
  978. cls
  979. print "Would you like to run another program (y/n)? ";
  980.  
  981. a$=""
  982. while a$=""
  983. gosub continue:
  984. if a$="y" then runother:
  985. if a$="Y" then runother:
  986. if a$="n" then menu:
  987. if a$="N" then menu:
  988. wend
  989.  
  990. rem THIS IS THE END OF THE ROUTINE FOR RUNNING OTHER PROGRAMS.
  991.  
  992.  
  993. rem HERE IS THE ROUTINE FOR WORKING WITH CONFIG.SYS
  994.  
  995. changeco:
  996. cls
  997. print "                      View or Change Your CONFIG.SYS File"
  998. print
  999. print
  1000. print "On which drive is your CONFIG.SYS file";
  1001. input drive$
  1002.  
  1003. redrive:
  1004. drive$=drive$+"\"
  1005.  
  1006. if drive$="a:\" then
  1007. file1$="a:\config.sys"
  1008. endif
  1009.  
  1010. if drive$="A:\" then
  1011. file1$="a:\config.sys"
  1012. endif
  1013.  
  1014. if drive$="b:\" then
  1015. file1$="b:\config.sys"
  1016. endif
  1017.  
  1018. if drive$="B:\" then
  1019. file1$="b:\config.sys"
  1020. endif
  1021.  
  1022. if drive$="c:\" then
  1023. file1$="c:\config.sys"
  1024. endif
  1025.  
  1026. if drive$="C:\" then
  1027. file1$="c:\config.sys"
  1028. endif
  1029.  
  1030. if drive$="d:\" then
  1031. file1$="d:\config.sys"
  1032. endif
  1033.  
  1034. if drive$="D:\" then
  1035. file1$="d:\config.sys"
  1036. endif
  1037.  
  1038. if drive$="e:\" then
  1039. file1$="e:\config.sys"
  1040. endif
  1041.  
  1042. if drive$="E:\" then
  1043. file1$="e:\config.sys"
  1044. endif
  1045.  
  1046. if drive$="a:\" then
  1047. file2$="a:\config.bak"
  1048. endif
  1049.  
  1050. if drive$="A:\" then
  1051. file2$="a:\config.bak"
  1052. endif
  1053.  
  1054. if drive$="b:\" then
  1055. file2$="b:\config.bak"
  1056. endif
  1057.  
  1058. if drive$="B:\" then
  1059. file2$="b:\config.bak"
  1060. endif
  1061.  
  1062. if drive$="c:\" then
  1063. file2$="c:\config.bak"
  1064. endif
  1065.  
  1066. if drive$="C:\" then
  1067. file2$="c:\config.bak"
  1068. endif
  1069.  
  1070. if drive$="d:\" then
  1071. file2$="d:\config.bak"
  1072. endif
  1073.  
  1074. if drive$="D:\" then
  1075. file2$="d:\config.bak"
  1076. endif
  1077.  
  1078. if drive$="e:\" then
  1079. file2$="e:\config.bak"
  1080. endif
  1081.  
  1082. if drive$="E:\" then
  1083. file2$="e:\config.bak"
  1084. endif
  1085.  
  1086. confmenu:
  1087. cls
  1088. print "You have the following options:"
  1089. print
  1090. print
  1091. print "1- Just view the CONFIG.SYS file."
  1092. print
  1093. print "2- Add lines to the end of your file."
  1094. print
  1095. print "3- Create a new CONFIG.SYS file."
  1096. print
  1097. print "4- Return to the Main Options Menu."
  1098. print
  1099. print
  1100. print "Please press the key corresponding to your choice. ";
  1101.  
  1102. wait10:
  1103. gosub continue:
  1104.  
  1105. if a$="1" then
  1106. cls
  1107. gosub seesys:
  1108. goto confmenu:
  1109. endif
  1110.  
  1111. if a$="2" then
  1112. cls
  1113. gosub appendln:
  1114. gosub seesys:
  1115. goto confmenu:
  1116. endif
  1117.  
  1118. if a$="3" then
  1119. cls
  1120. goto newfilec:
  1121. endif
  1122.  
  1123. if a$="4" then menu:
  1124. goto wait10:
  1125.  
  1126.  
  1127. rem THIS SECTION CREATES A NEW CONFIG.SYS FILE.
  1128.  
  1129. newfilec:
  1130. cls
  1131. name file1$ as file2$
  1132. kill file1$
  1133. print ""
  1134. print ""
  1135. print "Your CONFIG.SYS file has been changed to CONFIG.BAK in order to save"
  1136. print "it for future use.  To use it later, your new CONFIG.SYS will have to"
  1137. print "be renamed to something else (for example, CONFIG.X), and your .BAK"
  1138. print "file renamed CONFIG.SYS."
  1139. print
  1140. print
  1141. print "Press any key to continue. ";
  1142. gosub continue:
  1143.  
  1144. changeagn:
  1145. cls
  1146. open "o",1,file1$
  1147. print "How many files do you want?  To quit, press Q and Enter."
  1148. print
  1149. input filenumb$
  1150.  
  1151. if filenumb$="q" then restorec:
  1152. if filenumb$="Q" then restorec:
  1153. line1$="files="+filenumb$
  1154. print # 1, line1$ nonull
  1155. print # 1, crlf$ nonull
  1156. print ""
  1157. print ""
  1158. print "How many buffers do  you want";
  1159. input buffer$
  1160. buffline$="buffers="+buffer$
  1161. print # 1, buffline$ nonull
  1162. print # 1, crlf$ nonull
  1163. gosub listsys:
  1164.  
  1165. devcagain:
  1166. print ""
  1167. print "Which device would you like to include (N for none)";
  1168. input device$
  1169. if device$="n" then nodevice:
  1170. if device$="N" then nodevice:
  1171. deviceln$="devices="+device$
  1172. print # 1, deviceln$ nonull
  1173. print # 1, crlf$ nonull
  1174. print ""
  1175. print "Would you like to include more devices";
  1176. input incldmore$
  1177. if incldmore$="y" then devcagain:
  1178. if incldmore$="Y" then devcagain:
  1179.  
  1180. nodevice:
  1181. print
  1182. print "Do you want Break on or off (if not sure, type OFF)?";
  1183. input breakyn$
  1184. breaklin$="break=on"
  1185.  
  1186. if breakyn$="on" then
  1187. print # 1, breaklin$ nonull
  1188. print # 1, crlf$ nonull
  1189. endif
  1190.  
  1191. if breakyn$="ON" then
  1192. print # 1, breaklin$ nonull
  1193. print # 1, crlf$ nonull
  1194. endif
  1195.  
  1196. if breakyn$="oN" then
  1197. print # 1, breaklin$ nonull
  1198. print # 1, crlf$ nonull
  1199. endif
  1200.  
  1201. if breakyn$="On" then
  1202. print # 1, breaklin$ nonull
  1203. print # 1, crlf$ nonull
  1204. endif
  1205.  
  1206. close 1
  1207. gosub seesys:
  1208. print
  1209. print
  1210. print "If this is not O.K. AND you want to go back and change the file, press"
  1211. print "C and then press Enter."
  1212. print
  1213. print "To restore your original CONFIG.SYS file, press R and Enter."
  1214. print
  1215. print "If you're happy with it as is, type OK and Enter."
  1216. print
  1217. input change$
  1218.  
  1219. okdecide:
  1220. if change$="c" then changeagn:
  1221. if change$="C" then changeagn:
  1222. if change$="r" then restorec:
  1223. if change$="R" then restorec:
  1224. if change$="ok" then confmenu:
  1225. if change$="OK" then confmenu:
  1226. if change$="oK" then confmenu:
  1227. if change$="Ok" then confmenu:
  1228. print
  1229. print "You must choose between C, R, or OK."
  1230. print
  1231. input change$
  1232. goto okdecide:
  1233.  
  1234. restorec:
  1235. cls
  1236. close 1
  1237. close 2
  1238. kill file1$
  1239. name file2$ as file1$
  1240. kill file2$
  1241. print "Your original CONFIG.SYS file has been restored."
  1242. print
  1243. print
  1244. print "Press any key to continue. ";
  1245. gosub continue:
  1246. goto confmenu:
  1247.  
  1248.  
  1249. rem HERE IS THE ROUTINE FOR LOOKING AT THE CONFIG.SYS FILE.
  1250.  
  1251. seesys:
  1252. close 1
  1253. close 2
  1254. print "Here is your file:"
  1255. print
  1256. print
  1257. open "i",1,file1$
  1258.  
  1259. nextlnco:
  1260. input # 1, line$ crlf
  1261. print line$
  1262.  
  1263. if error=99 then
  1264. close 1
  1265. print
  1266. print
  1267. print "Press any key to continue. ";
  1268. gosub continue:
  1269. return
  1270. endif
  1271.  
  1272. goto nextlnco:
  1273.  
  1274. rem THIS IS THE END OF THE ROUTINE FOR LOOKING AT THE CONFIG.SYS FILE.
  1275.  
  1276.  
  1277. rem HERE IS THE ROUTINE FOR ADDING LINES TO THE END OF CONFIG.SYS
  1278.  
  1279. appendln:
  1280. close 1
  1281. close 2
  1282. open "a",1,file1$
  1283.  
  1284. appendagn:
  1285. print ""
  1286. print "Line to add (Q to quit)";
  1287. input appendln$
  1288.  
  1289. if appendln$="q" then
  1290. close 1
  1291. return
  1292. endif
  1293.  
  1294. if appendln$="Q" then
  1295. close 1
  1296. return
  1297. endif
  1298.  
  1299. print # 1, appendln$ nonull
  1300. print # 1, crlf$ nonull
  1301. goto appendagn:
  1302.  
  1303. rem THIS IS THE END OF THE ROUTINE FOR ADDING LINES TO CONFIG.SYS.
  1304.  
  1305.  
  1306. rem HERE IS THE ROUTINE FOR LISTING THE DEVICES FOR CONFIG.SYS.
  1307.  
  1308. listsys:
  1309.  
  1310. print
  1311. print "Do you want a list of the system devices available (y/n)? ";
  1312.  
  1313. a$=""
  1314. while a$=""
  1315. gosub continue:
  1316.  
  1317. if a$="y" then dolist:
  1318. if a$="Y" then dolist:
  1319.  
  1320. if a$="n" then
  1321. return
  1322. endif
  1323.  
  1324. if a$="N" then
  1325. return
  1326. endif
  1327.  
  1328. wend
  1329.  
  1330. dolist:
  1331. cls
  1332. print "(Don't count CONFIG.SYS as a system device)"
  1333. print
  1334. print
  1335. files$="*.sys"
  1336. attrib=0
  1337. filename$=find first(files$,attrib)
  1338. if error>0 then done:
  1339. print filename$
  1340.  
  1341. while error>0
  1342. filename$=find continue
  1343. print filename$
  1344. file=file+1
  1345.  
  1346. if file=20 then
  1347. print ""
  1348. print ""
  1349. print "Press any key to continue. ";
  1350. gosub continue:
  1351. file=0
  1352. print
  1353. print
  1354. endif
  1355.  
  1356. wend
  1357.  
  1358. done:
  1359. print ""
  1360. print ""
  1361. print "Press any key to continue. ";
  1362. gosub continue:
  1363. file=0
  1364. files$=""
  1365. filename$=""
  1366. print ""
  1367. print ""
  1368. return
  1369.  
  1370. rem THIS IS THE END OF THE ROUTINE FOR LISTING THE DEVICES FOR CONFIG.SYS.
  1371.  
  1372. rem THIS IS THE END OF THE ROUTINE FOR WORKING WITH CONFIG.SYS.
  1373.  
  1374.  
  1375. rem HERE IS THE ROUTINE FOR WORKING WITH AUTOEXEC.BAT
  1376.  
  1377. chngauto:
  1378. cls
  1379. spaces$=space$(68)
  1380. print spaces$;
  1381. color 0,7
  1382. print "Esc=Quit"
  1383. color 7,0
  1384. print
  1385. print "                     View or Change Your AUTOEXEC.BAT File"
  1386. print
  1387. print
  1388. print "On which drive is your AUTOEXEC.BAT file? ";
  1389. gosub retypefi:
  1390.  
  1391. redrivea:
  1392. drive$=file$
  1393. file$=""
  1394. drive$=drive$+"\"
  1395.  
  1396. if drive$="a:\" then
  1397. file1$="a:\autoexec.bat"
  1398. endif
  1399.  
  1400. if drive$="A:\" then
  1401. file1$="a:\autoexec.bat"
  1402. endif
  1403.  
  1404. if drive$="b:\" then
  1405. file1$="b:\autoexec.bat"
  1406. endif
  1407.  
  1408. if drive$="B:\" then
  1409. file1$="b:\autoexec.bat"
  1410. endif
  1411.  
  1412. if drive$="c:\" then
  1413. file1$="c:\autoexec.bat"
  1414. endif
  1415.  
  1416. if drive$="C:\" then
  1417. file1$="c:\autoexec.bat"
  1418. endif
  1419.  
  1420. if drive$="d:\" then
  1421. file1$="d:\autoexec.bat"
  1422. endif
  1423.  
  1424. if drive$="D:\" then
  1425. file1$="d:\autoexec.bat"
  1426. endif
  1427.  
  1428. if drive$="e:\" then
  1429. file1$="e:\autoexec.bat"
  1430. endif
  1431.  
  1432. if drive$="E:\" then
  1433. file1$="e:\autoexec.bat"
  1434. endif
  1435.  
  1436. if drive$="a:\" then
  1437. file2$="a:\autoexec.bak"
  1438. endif
  1439.  
  1440. if drive$="A:\" then
  1441. file2$="a:\autoexec.bak"
  1442. endif
  1443.  
  1444. if drive$="b:\" then
  1445. file2$="b:\autoexec.bak"
  1446. endif
  1447.  
  1448. if drive$="B:" then
  1449. file2$="b:\autoexec.bak"
  1450. endif
  1451.  
  1452. if drive$="c:\" then
  1453. file2$="c:\autoexec.bak"
  1454. endif
  1455.  
  1456. if drive$="C:\" then
  1457. file2$="c:\autoexec.bak"
  1458. endif
  1459.  
  1460. if drive$="d:\" then
  1461. file2$="d:\autoexec.bak"
  1462. endif
  1463.  
  1464. if drive$="D:\" then
  1465. file2$="d:\autoexec.bak"
  1466. endif
  1467.  
  1468. if drive$="e:\" then
  1469. file2$="e:\autoexec.bak"
  1470. endif
  1471.  
  1472. if drive$="E:\" then
  1473. file2$="e:\autoexec.bak"
  1474. endif
  1475.  
  1476. automenu:
  1477. cls
  1478. print "You have the following options:"
  1479. print
  1480. print
  1481. print "F1- Just view the AUTOEXEC.BAT file."
  1482. print
  1483. print "F2- Add lines to the end of your file."
  1484. print
  1485. print "F3- Create a new AUTOEXEC.BAT file."
  1486. print
  1487. print "Esc- Return to the Main Options Menu."
  1488. print
  1489. print
  1490. print "Please press the key corresponding to your choice. ";
  1491.  
  1492. wait5:
  1493. gosub continue:
  1494. if a$=b$ then menu:
  1495. if extended=0 then wait5:
  1496.  
  1497. if a$=";" then
  1498. cls
  1499. gosub autolook:
  1500. goto automenu:
  1501. endif
  1502.  
  1503. if a$="<" then
  1504. cls
  1505. gosub appndaut:
  1506. gosub autolook:
  1507. goto automenu:
  1508. endif
  1509.  
  1510. if a$="=" then
  1511. cls
  1512. goto newauto:
  1513. endif
  1514.  
  1515. goto wait5:
  1516.  
  1517.  
  1518. rem THIS ROUTINE CREATES A NEW AUTOEXEC.BAT FILE.
  1519.  
  1520. newauto:
  1521. cls
  1522. name file1$ as file2$
  1523. kill file1$
  1524. cls
  1525. print "Your AUTOEXEC.BAT file has been changed to AUTOEXEC.BAK in order to"
  1526. print "save it for later use.  To use it later, you will have to"
  1527. print "rename it AUTOEXEC.BAT after renaming the current AUTOEXEC.BAT to"
  1528. print "something else (for example, AUTOEXEC.X)."
  1529. print
  1530. print
  1531. print "Press any key to continue. ";
  1532. gosub continue:
  1533.  
  1534. scndchng:
  1535. cls
  1536. spaces$=space$(68)
  1537. print spaces$;
  1538. color 0,7
  1539. print "Esc=Quit"
  1540. color 7,0
  1541. open "o",1,file1$
  1542. print "Please type the first line you want, then press Enter."
  1543. print
  1544. print "> ";
  1545. gosub retypefi:
  1546. firstlin$=file$
  1547. file$=""
  1548.  
  1549. if firstlin$=b$ then
  1550. goto nochange:
  1551. endif
  1552.  
  1553. print # 1, firstlin$ nonull
  1554. print # 1, crlf$ nonull
  1555.  
  1556. contline:
  1557. print ""
  1558. print "Please type your next line, followed by Enter."
  1559. print ""
  1560. print "> ";
  1561. gosub retypefi:
  1562. nextline$=file$
  1563. file$=""
  1564.  
  1565. if nextline$=b$ then
  1566. goto stopchng:
  1567. endif
  1568.  
  1569. print # 1, nextline$ nonull
  1570. print # 1, crlf$ nonull
  1571. goto contline:
  1572.  
  1573. stopchng:
  1574. close 1
  1575. cls
  1576. gosub autolook:
  1577. print
  1578. print
  1579. print
  1580. print "If this is not O.K. AND you want to change it, press C and then Enter."
  1581. print
  1582. print "To restore your original AUTOEXEC.BAT, press R and then Enter."
  1583. print
  1584. print "If you're happy with it as is, type OK and Enter."
  1585. print
  1586. print "> ";
  1587. gosub retypefi:
  1588. changeyn$=file$
  1589. file$=""
  1590.  
  1591. rechange:
  1592. if changeyn$="c" then
  1593. goto scndchng:
  1594. endif
  1595.  
  1596. if changeyn$="C" then
  1597. goto scndchng:
  1598. endif
  1599.  
  1600. if changeyn$="r" then
  1601. goto nochange:
  1602. endif
  1603.  
  1604. if changeyn$="R" then
  1605. goto nochange:
  1606. endif
  1607.  
  1608. if changeyn$="ok" then
  1609. goto automenu:
  1610. endif
  1611.  
  1612. if change$="OK" then
  1613. goto automenu:
  1614. endif
  1615.  
  1616. if changeyn$="oK" then
  1617. goto automenu:
  1618. endif
  1619.  
  1620. if changeyn$="Ok" then
  1621. goto automenu:
  1622. endif
  1623.  
  1624. print
  1625. print "You must choose C, R, or OK."
  1626. print
  1627. gosub retypefi:
  1628. changeyn$=file$
  1629. file$=""
  1630. goto rechange:
  1631.  
  1632. nochange:
  1633. cls
  1634. close 1
  1635. close 2
  1636. kill file1$
  1637. name file2$ as file1$
  1638. kill file2$
  1639. print "Your original AUTOEXEC.BAT file has been restored."
  1640. print
  1641. print
  1642. print "Press any key to continue. ";
  1643. gosub continue:
  1644. goto automenu:
  1645.  
  1646.  
  1647. rem HERE IS THE ROUTINE FOR LOOKING AT THE AUTOEXEC.BAT FILE.
  1648.  
  1649. autolook:
  1650. cls
  1651. close 1
  1652. close 2
  1653. print "Here is your file:"
  1654. print
  1655. print
  1656. open "i",1,file1$
  1657. nextline:
  1658. input # 1, line$ crlf
  1659. print line$
  1660.  
  1661. if error=99 then
  1662. close 1
  1663. print
  1664. print
  1665. print "Press any key to continue. ";
  1666. gosub continue:
  1667. return
  1668. endif
  1669.  
  1670. goto nextline:
  1671.  
  1672. rem THIS IS THE END OF THE ROUTINE FOR LOOKING AT THE AUTOEXEC.BAT FILE.
  1673.  
  1674.  
  1675. rem HERE IS THE ROUTINE FOR ADDING LINES TO THE END OF AUTOEXEC.BAT.
  1676.  
  1677. appndaut:
  1678. cls
  1679. spaces$=space$(68)
  1680. color 0,7
  1681. print "Esc=Quit"
  1682. color 7,0
  1683. print
  1684. close 1
  1685. close 2
  1686. open "a",1,file1$
  1687.  
  1688. appndagn:
  1689. print ""
  1690. print "Line to add? ";
  1691. gosub retypefi:
  1692. appendln$=file$
  1693. file$=""
  1694.  
  1695. if appendln$=b$ then
  1696. close 1
  1697. return
  1698. endif
  1699.  
  1700. print # 1, appendln$ nonull
  1701. print # 1, crlf$ nonull
  1702. goto appndagn:
  1703.  
  1704. rem THIS IS THE END OF THE ROUTINE FOR ADDING TO THE END OF AUTOEXEC.BAT.
  1705.  
  1706. rem THIS IS THE END OF THE ROUTINE FOR WORKING WITH AUTOEXEC.BAT.
  1707.  
  1708.  
  1709. rem HERE IS THE ROUTINE FOR MAKING A DIRECTORY.
  1710.  
  1711. makedir:
  1712. cls
  1713. print "                               Make a Directory"
  1714. print
  1715. print
  1716. spaces$=space$(68)
  1717. print spaces$;
  1718. color 0,7
  1719. print "Esc=Quit"
  1720. color 7,0
  1721. print "Type directory name (include drive and path). ";
  1722. gosub retypefi:
  1723. directory$=file$
  1724.  
  1725. remakedr:
  1726. mkdir directory$
  1727. if error=3 then nopathmd:
  1728. if error=5 then illeglmd:
  1729. print ""
  1730. print ""
  1731. realdir$=ucase$(directory$)
  1732. print "You have created directory: ";
  1733. print realdir$
  1734. directory$=""
  1735. print
  1736. print
  1737. print "Would you like to make another directory? (y/n) ";
  1738.  
  1739. a$=""
  1740. while a$=""
  1741. gosub continue:
  1742. if a$="y" then makedir:
  1743. if a$="Y" then makedir:
  1744. if a$="n" then menu:
  1745. if a$="N" then menu:
  1746. wend
  1747.  
  1748. rem THIS IS THE END OF THE ROUTINE FOR MAKING DIRECTORIES.
  1749.  
  1750.  
  1751. rem HERE IS THE ROUTINE FOR REMOVING DIRECTORIES.
  1752.  
  1753. removedr:
  1754. cls
  1755. print "                              Remove Directories"
  1756. print
  1757. print
  1758. spaces$=space$(68)
  1759. print spaces$;
  1760. color 0,7
  1761. print "Esc=Quit"
  1762. color 7,0
  1763. print
  1764. print "Before you can remove a directory, you must remove all files in that"
  1765. print "directory, and in its subdirectories.  You must then remove all sub-"
  1766. print "directories."
  1767. print
  1768. print
  1769.  
  1770. removagn:
  1771. print "Please type the name of the directory you'd like to remove.  Include"
  1772. print "the drive and path. ";
  1773. gosub retypefi:
  1774. directory$=file$
  1775.  
  1776. reremove:
  1777. rmdir directory$
  1778. if error=3 then nopathrm:
  1779. if error=5 then accessde:
  1780. if error=6 then cantrmdi:
  1781. if error=16 then cantrmdi:
  1782. realfile$=ucase$(directory$)
  1783. print ""
  1784. print ""
  1785. print realfile$;
  1786. print " has been removed."
  1787. print ""
  1788. print ""
  1789. print "Would you like to remove another directory? ";
  1790.  
  1791. a$=""
  1792. while a$=""
  1793. gosub continue:
  1794. if a$="y" then removagn:
  1795. if a$="Y" then removagn:
  1796. if a$="n" then menu:
  1797. if a$="N" then menu:
  1798. wend
  1799.  
  1800. rem THIS IS THE END OF THE ROUTINE FOR REMOVING DIRECTORIES.
  1801.  
  1802.  
  1803. rem HERE IS THE ROUTINE FOR CHECKING FOR A GRAPHICS CARD.
  1804.  
  1805. chckgrph:
  1806. cls
  1807. print "                         Check for a Graphics Adaptor"
  1808. print
  1809. print
  1810. print "This program only has the ability to check whether or not you have a"
  1811. print "graphics adapter.  It can't tell you what kind of adapter you have"
  1812. print "at this time."
  1813. print
  1814. print
  1815. print
  1816. d=zmode
  1817.  
  1818. if d=1 then
  1819. print "You have a graphics adapter installed."
  1820. print
  1821. print
  1822. print "Press any key to continue. ";
  1823. gosub continue:
  1824. goto menu:
  1825. endif
  1826.  
  1827. print "There is no graphics adapter installed.  However, you may be able to"
  1828. print "access special line-drawing characters for making menus, as well as"
  1829. print "some other characters (such as smiley faces).  Check your DOS or word"
  1830. print "processing manual for details."
  1831. print
  1832. print
  1833. print "Press any key to continue. ";
  1834. gosub continue:
  1835. goto menu:
  1836.  
  1837. rem THIS IS THE END OF THE ROUTINE FOR CHECKING FOR A GRAPHICS CARD.
  1838.  
  1839.  
  1840. rem HERE IS THE ROUTINE FOR BLANKING YOUR SCREEN.
  1841.  
  1842. blankscr:
  1843. cls
  1844. locate 81,81
  1845. gosub continue:
  1846. return
  1847.  
  1848. rem THIS IS THE END OF THE ROUTINE FOR BLANKING YOUR SCREEN.
  1849.  
  1850.  
  1851. rem HERE IS THE ROUTINE FOR GETTING THE TIME AND/OR DATE.
  1852.  
  1853.  
  1854. timedate:
  1855.  
  1856. cls
  1857. print "                             Get Time and/or Date."
  1858. print
  1859. print
  1860. print "Here are your options:"
  1861. print
  1862. print
  1863. print "F1- Get the time."
  1864. print
  1865. print "F2- Get the date."
  1866. print
  1867. print "F3- Get Both."
  1868. print
  1869. print "Esc- Return to the Main Options Menu."
  1870. print
  1871. print
  1872. print
  1873. print "Please press the key corresponding to your choice. ";
  1874.  
  1875. wait20:
  1876. gosub continue:
  1877. if a$=b$ then menu:
  1878. if extended=0 then wait20:
  1879.  
  1880. if a$=";" then gettime:
  1881. if a$="<" then getdate:
  1882. if a$="=" then getboth:
  1883. goto wait20:
  1884.  
  1885. gettime:
  1886.  
  1887. cls
  1888. print "                                 Get the Time."
  1889. print
  1890. print
  1891. print "In order for this feature to work, the time in your computer must be"
  1892. print "set properly, either manually or with the Real-Time-Clock."
  1893. print
  1894. print
  1895. print
  1896. print
  1897. print
  1898.  
  1899. a$=time$
  1900. f$=mid$(a$,1,2)
  1901. d=val(f$)
  1902.  
  1903. if d>12 then
  1904. d=d-12
  1905. h$=" PM"
  1906. else
  1907. h$=" AM"
  1908. endif
  1909.  
  1910. if d=12 then 
  1911. h$=" PM"
  1912. endif
  1913.  
  1914. e=d
  1915. g$=str$(e)
  1916. i$=mid$(a$,3,6)
  1917. j$=g$+i$
  1918. k$=ltrim$(j$)
  1919. print "The time is now: ";
  1920. print k$;
  1921. print h$
  1922. print
  1923. print
  1924. print "Press any key to continue. ";
  1925. gosub continue:
  1926. goto timedate:
  1927.  
  1928. getdate:
  1929.  
  1930. cls
  1931. print "                                 Get the Date"
  1932. print
  1933. print
  1934. print "In order for this feature to work properly, the date in your computer"
  1935. print "must be set properly.  If it isn't, you may get a weird date."
  1936. print
  1937. print
  1938. print
  1939. print
  1940. print
  1941. a$=date$
  1942. print "Today's date is ";
  1943. print a$
  1944. print
  1945. print
  1946. print "Press any key to continue. ";
  1947. gosub continue:
  1948. goto timedate:
  1949.  
  1950. getboth:
  1951.  
  1952. cls
  1953. print "                                   Get Both"
  1954. print
  1955. print
  1956. print "In order for this feature to work, both your time and date must be set"
  1957. print "properly.  If they aren't, you may get some weird answers.  If you"
  1958. print "have problems, check your manual to find out how to set the time and"
  1959. print "date from DOS."
  1960. print
  1961. print
  1962. print
  1963. print
  1964. print
  1965. a$=time$
  1966. f$=mid$(a$,1,2)
  1967. d=val(f$)
  1968.  
  1969. if d>12 then
  1970. d=d-12
  1971. h$=" PM"
  1972. else
  1973. h$=" AM"
  1974. endif
  1975.  
  1976. if d=12 then
  1977. h$=" PM"
  1978. endif
  1979.  
  1980. e=d
  1981. g$=str$(e)
  1982. i$=mid$(a$,3,6)
  1983. j$=g$+i$
  1984. k$=ltrim$(j$)
  1985. print "The time is now: ";
  1986. print k$;
  1987. print h$
  1988. print
  1989. print
  1990. f$=date$
  1991. print "Today's date is ";
  1992. print f$
  1993. print
  1994. print
  1995. print "Press any key to continue. ";
  1996. gosub continue:
  1997. goto timedate:
  1998.  
  1999.  
  2000. rem THIS IS THE END OF THE ROUTINE FOR GETTING THE TIME AND/OR DATE.
  2001.  
  2002.  
  2003. rem HERE IS THE ROUTINE FOR GETTING THE PATH.
  2004.  
  2005. getpath:
  2006. cls
  2007. print "Here is your path:"
  2008. print
  2009. print
  2010. for a=1 to 10
  2011. path$=environ$(a)
  2012. realpath$=mid$(path$,1,4)
  2013.  
  2014. if realpath$="PATH" then
  2015. color 0,7
  2016. print path$
  2017. color 7,0
  2018. print
  2019. print
  2020. print "Press any key to return to the Main Options Menu. ";
  2021. gosub continue:
  2022. goto menu2:
  2023. endif
  2024.  
  2025. realpath$=""
  2026. next a
  2027.  
  2028.  
  2029. rem HERE IS THE ROUTINE FOR TYPING IN FILES IN 80-COLUMN MODE.
  2030.  
  2031. retypefi:
  2032. gosub continue:
  2033.  
  2034. if a$=b$ then
  2035. realfile$=""
  2036. file$=""
  2037. file1$=""
  2038. file2$=""
  2039. goto menu:
  2040. endif
  2041.  
  2042. if a$=c$ then
  2043. print ""
  2044. return
  2045. endif
  2046.  
  2047. gosub cursor:
  2048.  
  2049. if a$=d$ then
  2050. locate a,c
  2051. print e$;
  2052. locate a,c
  2053. d=len(file$)
  2054. e=d-1
  2055. file$=mid$(file$,1,e)
  2056. if e<0 then
  2057. e=0
  2058. c=c+1
  2059. locate a,c
  2060. endif
  2061. if b=0 then
  2062. a=a-1
  2063. b=79
  2064. locate a,b
  2065. print e$;
  2066. locate a,b
  2067. endif
  2068. goto retypefi:
  2069. endif
  2070.  
  2071. print a$;
  2072. file$=file$+a$
  2073. realfile$=ucase$(file$)
  2074. goto retypefi:
  2075.  
  2076. rem THIS IS THE END OF THE ROUTINE FOR TYPING IN FILES IN 80-COLUMN MODE.
  2077.  
  2078.  
  2079. rem HERE IS THE ROUTINE FOR CONTINUING WHEN THE USER PRESSES A KEY.
  2080.  
  2081. continue:
  2082. a$=inkey$
  2083. if a$="" then continue:
  2084. return
  2085.  
  2086. rem THIS IS THE END OF THE ROUTINE FOR CONTINUING WHEN THE USER PRESSES A KEY.
  2087.  
  2088.  
  2089. rem HERE IS THE SUBROUTINE FOR INITIALIZING ROW/COLUMN POSITION OF CURSOR.
  2090.  
  2091. cursor:
  2092. a=csrlin
  2093. b=pos(0)
  2094. c=b-1
  2095. return
  2096.  
  2097. rem THIS IS THE END OF THE ROUTINE FOR INITIALIZING CURSOR POSITION.
  2098.  
  2099.  
  2100. rem ..........................................................................
  2101.  
  2102. rem HERE ARE THE ERROR-HANDLING ROUTINES.
  2103.  
  2104. rem ..........................................................................
  2105.  
  2106.  
  2107. rem HERE ARE THE ERROR ROUTINES FOR KILLFILE:
  2108.  
  2109. rem FILE NOT FOUND (ERROR 2)
  2110.  
  2111. nofilekf:
  2112. file$=""
  2113. cls
  2114. print "Hi.  The file you've specified for deletion cannot be found.  Please"
  2115. print "check your spelling and/or path."
  2116. print
  2117. print "If you want to try again, please re-enter the file to be deleted.  To"
  2118. print "quit and return to the Main Options Menu, press Esc."
  2119. print ""
  2120. print "File to be deleted? ";
  2121. gosub retypefi:
  2122.  
  2123. goto rekill:
  2124.  
  2125. rem ACCESS DENIED (ERROR 5)
  2126.  
  2127. illeglkf:
  2128.  
  2129. cls
  2130. print "Hi.  You've tried to delete a protected file.  DOS will not allow"
  2131. print "this.  In order to delete it, you'll have to go to DOS and change"
  2132. print "your file to read-write status."
  2133. print
  2134. print
  2135. print "NOTE: THIS FILE MAY VERY WELL BE ESSENTIAL TO THE CORRECT OPERATION OF"
  2136. print "YOUR COMPUTER OR SOME PROGRAM YOU USE REGULARLY.  DELETING IT MAY"
  2137. print "RENDER YOUR SYSTEM OR ONE OF YOUR PROGRAMS UNUSABLE.  THAT'S USUALLY"
  2138. print "WHY FILES ARE PROTECTED WITH READ-ONLY STATUS."
  2139. print
  2140. print
  2141. print "Press Esc to return to the Main Options Menu, or any other key to try"
  2142. print "again with another file. ";
  2143.  
  2144. gosub continue:
  2145. if a$=b$ then menu:
  2146. file$=""
  2147. goto deletagn:
  2148.  
  2149. rem THIS IS THE END OF THE ERROR ROUTINE FOR DEALING WITH "ACCESS DENIED".
  2150.  
  2151. rem THIS IS THE END OF THE ERROR ROUTINES FOR KILLFILE:
  2152.  
  2153.  
  2154. rem HERE ARE THE ERROR ROUTINES FOR MAKEDIR:
  2155.  
  2156. rem PATH NOT FOUND (ERROR 3)
  2157.  
  2158. nopathmd:
  2159. directory$=""
  2160. cls
  2161. print "Hi.  The path you've specified can't be found.  Please check your"
  2162. print "spelling and path, and try again."
  2163. print
  2164. print "To quit and return to the Main Options Menu, press Esc."
  2165. print "Directory name (include drive and path)? ";
  2166. gosub retypefi: 
  2167.  
  2168. goto remakedr:
  2169.  
  2170. rem THIS IS THE END OF THE ERROR ROUTINE FOR PATH NOT FOUND (MAKEDIR:)
  2171.  
  2172. rem ACCESS DENIED (ERROR 5)
  2173.  
  2174. illeglmd:
  2175. cls
  2176. print "Hi.  The path you've specified is protected from changes.  DOS will"
  2177. print "not allow you to make a directory using this path."
  2178. print
  2179. print
  2180. print "Press Esc to return to the Main Options Menu, or any other key to try"
  2181. print "again with another directory name. ";
  2182. gosub continue:
  2183.  
  2184. if a$=b$ then
  2185. goto menu:
  2186. else
  2187. file$=""
  2188. goto makedir:
  2189. endif
  2190.  
  2191. rem THIS IS THE END OF THE ERROR ROUTINE FOR ACCESS DENIED (MAKEDIR:)
  2192.  
  2193. rem THIS IS THE END OF THE ERROR ROUTINES FOR MAKEDIR:
  2194.  
  2195.  
  2196. rem HERE IS THE ERROR ROUTINE FOR PATH NOT FOUND (REMOVEDR:)
  2197.  
  2198. nopathrm:
  2199. cls
  2200. print "Hi.  The path you've specified for the directory you want to remove"
  2201. print "can't be found.  Please check your spelling and try again.  To quit"
  2202. print "and return to the Main Options Menu, press Esc at any time."
  2203. print
  2204. print "Directory to remove? ";
  2205. gosub retypefi:
  2206. goto reremove:
  2207.  
  2208. rem THIS IS THE END OF THE ERROR  ROUTINE FOR PATH NOT FOUND (REMOVEDR:)
  2209.  
  2210.  
  2211. rem HERE IS THE ERROR ROUTINE FOR ACCESS DENIED (REMOVEDR:)
  2212.  
  2213. accessde:
  2214. cls
  2215. print "Hi.  The path you've specified is protected from changes.  DOS will"
  2216. print "not allow you to remove a directory using this path."
  2217. print
  2218. print "Press Esc to return to the Main Options Menu, or any other key to try"
  2219. print "again with another file. ";
  2220. gosub continue:
  2221.  
  2222. if a$=b$ then
  2223. goto menu:
  2224. else
  2225. file$=""
  2226. goto removagn:
  2227. endif
  2228.  
  2229. rem THIS IS THE END OF THE ROUTINE FOR ACCESS DENIED (REMOVEDR:)
  2230.  
  2231.  
  2232. rem HERE IS THE ERROR ROUTINE FOR CAN'T DELETE CURRENT DIRECTORY (REMOVEDR:)
  2233.  
  2234. cantrmdi:
  2235. cls
  2236. print "Hi.  The directory you've specified can't be removed.  It probably"
  2237. print "contains either files or subdirectories.  You can use the Find Files"
  2238. print "option to determine this."
  2239. print
  2240. print
  2241.  
  2242. rmdirmen:
  2243. print "F1- Try again, I goofed."
  2244. print
  2245. print "F2- Go to the Find Files Option."
  2246. print
  2247. print "Esc- Return to the Main Options Menu."
  2248. print
  2249. print
  2250. print "Please press the key corresponding to your choice. ";
  2251.  
  2252. wait1:
  2253. gosub continue:
  2254. if a$=b$ then menu:
  2255. if extended=0 then wait1:
  2256.  
  2257. if a$=";" then
  2258. print
  2259. print "Directory to remove? ";
  2260. gosub retypefi:
  2261. goto reremove:
  2262. endif
  2263.  
  2264. if a$="<" then
  2265. call ("util1-80.com"," /s")
  2266. goto rmdirmen:
  2267. endif
  2268.  
  2269.  
  2270. rem HERE ARE THE ERROR ROUTINES FOR RENFILE:
  2271.  
  2272. rem FILE NOT FOUND (ERROR 2)
  2273.  
  2274. nofilerf:
  2275. file1$=""
  2276. file2$=""
  2277. cls
  2278. print "Hi.  The file you've specified can't be found.  Please check your"
  2279. print "spelling and try again."
  2280. print
  2281. print "To quit and return to the Main Options Menu, press Esc."
  2282. print
  2283. print "File to rename? ";
  2284. gosub retypefi:
  2285. file1$=file$
  2286. realfil1$=ucase$(file1$)
  2287.  
  2288. print ""
  2289. print ""
  2290. print "New name for ";
  2291. print realfil1$;
  2292. print "? ";
  2293. gosub retypefi:
  2294. file2$=file$
  2295. realfil2$=ucase$(file2$)
  2296. goto refile:
  2297.  
  2298. rem THIS IS THE END OF THE FILE NOT FOUND ERROR HANDLER (RENFILE:)
  2299.  
  2300.  
  2301. rem PATH NOT FOUND OR FILE DOESN'T EXIST (ERROR 3)
  2302.  
  2303. nopathrf:
  2304. file1$=""
  2305. file2$=""
  2306. cls
  2307. print "Hi.  DOS can't find the path you've specified.  Please check your"
  2308. print "spelling and path, and try again."
  2309. print
  2310. print "To quit and return to the Main Options Menu, press Esc."
  2311. print
  2312. print
  2313. print "File to rename? ";
  2314. gosub retypefi:
  2315. file1$=file$
  2316. realfil1$=ucase$(file1$)
  2317.  
  2318. print ""
  2319. print ""
  2320. print "New name for ";
  2321. print realfil1$;
  2322. print "? ";
  2323. gosub retypefi:
  2324. file2$=file$
  2325. realfil2$=ucase$(file2$)
  2326. goto refile:
  2327.  
  2328. rem THIS IS THE END OF THE ERROR ROUTINE FOR PATH NOT FOUND (RENFILE:)
  2329.  
  2330.  
  2331. rem HERE IS THE ERROR ROUTINE FOR ACCESS DENIED (ERROR 5)
  2332.  
  2333. illeglrf:
  2334. cls
  2335. print "Hi.  The file you've specified is protected.  DOS will not allow you"
  2336. print "to rename this file."
  2337. print
  2338. print
  2339. print "Press Esc to return to the Main Options Menu, or any other key to try"
  2340. print "again with another file. ";
  2341. gosub continue:
  2342.  
  2343. if a$=b$ then
  2344. goto menu:
  2345. else
  2346. goto renfile:
  2347. endif
  2348.  
  2349. rem THIS IS THE END OF THE ROUTINE FOR ACCESS DENIED (RENFILE:)
  2350.  
  2351.  
  2352. rem HERE IS THE ERROR ROUTINE FOR NOT SAME DISK DRIVE (ERROR 17)
  2353.  
  2354. diffdrrf:
  2355. file2$=""
  2356. cls
  2357. print "Hi.  You've specified a different drive for your renamed file than it"
  2358. print "was originally on.  If, for example, your original file was on drive"
  2359. print "A, the renamed file must be on drive A as well."
  2360. print
  2361. print "Please check your spelling and/or path, and try again.  To quit and"
  2362. print "return to the Main Options Menu, press Esc."
  2363. print
  2364. print
  2365. print "New name for ";
  2366. print realfil1$;
  2367. print "? ";
  2368. gosub retypefi:
  2369. file2$=file$
  2370. realfil2$=ucase$(file2$)
  2371. goto refile:
  2372.  
  2373. rem THIS IS THE END OF THE ERROR ROUTINE FOR NOT SAME DISK DRIVE (RENFILE:)
  2374.  
  2375.  
  2376. rem HERE IS THE ERROR ROUTINE FOR RUNOTHER: (ERROR 255 - UNABLE TO LOAD/RUN)
  2377.  
  2378. cantrun:
  2379. cls
  2380. print "Hi.  There's been some trouble loading and/or running the program"
  2381. print "you've specified.  Here's the program and the parameter, if any, you"
  2382. print "asked for:"
  2383. print program$;
  2384. print argument$
  2385. print
  2386. print "Is this what you intended to type (y/n)? ";
  2387.  
  2388. a$=""
  2389. while a$=""
  2390. gosub continue:
  2391. if a$="y" then problemr:
  2392. if a$="Y" then problemr:
  2393. if a$="n" then callagan:
  2394. if a$="N" then callagan:
  2395. wend
  2396.  
  2397. problemr:
  2398. cls
  2399. print "The Manager has trouble running some programs.  For instance,"
  2400. print "parameters are often passed to CHKDSK.EXE which were never"
  2401. print "intended.  These seem to have something to do with the DOS"
  2402. print "parameters that were set up in the source.  Your best bet is to shell"
  2403. print "to DOS and run your program from there.  Press any key to return to"
  2404. print "the Main Options Menu. ";
  2405. gosub continue:
  2406. goto menu:
  2407.  
  2408. callagan:
  2409. cls
  2410. print "You're about to be returned to the Run Other Programs option, where"
  2411. print "you can retype your program and argument.  If you get this error"
  2412. print "again, and are sure you typed it in correctly, type y or Y at the"
  2413. print "prompt for bug info on this option."
  2414. print
  2415. print "Press any key to return to the Run Other Programs Option. ";
  2416. gosub continue:
  2417. goto runother:
  2418.  
  2419.  
  2420. end
  2421.