home *** CD-ROM | disk | FTP | other *** search
/ Black Box 4 / BlackBox.cdr / progbas / ascsu205.arj / TIPS.ASI < prev    next >
Text File  |  1992-01-21  |  45KB  |  1,472 lines

  1. start:
  2.  
  3. b$=chr$(27)
  4.  
  5. c$=chr$(34)
  6.  
  7. a$=command$
  8. if a$="/40" then tips40:
  9. if a$=" /40" then tips40:
  10.  
  11. cls
  12. print "                                   ASIC TIPS"
  13. print
  14. print "                (No, it's not a new filtered cigar, wise guy!)"
  15. print
  16. print
  17. print "                                 Matt Roberts"
  18. print "                               3 Cedar St., # 8"
  19. print "                           Montpelier, Vt 05602-3006"
  20. print
  21. print
  22. print
  23. print
  24. print
  25. print
  26. print
  27. print
  28. print
  29. print "Press any key to continue. ";
  30. gosub continue:
  31.  
  32. cls
  33. print "Hi.  In the process of stumbling around with ASIC 1.00, 2.01, and"
  34. print "3.01, I've discovered a few little tips that might make your"
  35. print "programming a bit easier.  Now, I'm not all that hot a programmer,"
  36. print "though I have written a few things I think are useful, and you may not"
  37. print "be particularly impressed with my discoveries.  On the other hand, I"
  38. print "think there's some solid value in here.  You'll probably get the most"
  39. print "out of this if you're a beginner, especially one who's used to Micro-"
  40. print "soft's BASICA/GW-BASIC.  Intermediate programmers may find a few short"
  41. print "cuts, and experts probably won't find much of use."
  42. print
  43. print "If you find these tips useful, you may be tempted to distribute them"
  44. print "on the ASIC diskette.  Unless you have the written consent of David"
  45. print "Visti, the author of ASIC, I would recommend against it.  In general,"
  46. print "most shareware authors prefer (and some require) that no files be"
  47. print "added to their distribution disks.  Of course, it may be egotistical"
  48. print "of me to think you might suffer from any temptation other than the use"
  49. print "of the DEL command, but I'll let you be the judge of that."
  50. print
  51. print
  52. print "Press any key to continue. ";
  53. gosub continue:
  54. cls
  55. print "You'll notice that every disk I write (and many programs) have"
  56. print "my address scattered all over the place.  I would consider it a great"
  57. print "favor if you'd let me know what you think of these tips, and any other"
  58. print "programs/documents/diskettes for which I claim responsibility.  I want"
  59. print "to offer the highest quality work I possibly can, and I need your help"
  60. print "for that.  Thanks."
  61. print
  62. print "ASIC is copyrighted by David Visti.  I am not in any way connected to"
  63. print "that programming language, except as a registered user and ardent fan."
  64. print "If you want to contact the author concerning ASIC, he can be reached"
  65. print "at the following address:"
  66. print
  67. print "David Visti, P.O. Box 2952, Raleigh, NC 27602-2952."
  68. print
  69. print
  70. print "Press any key to continue. ";
  71. gosub continue:
  72. cls
  73. print "If you haven't tried ASIC, by all means give it a try.  If you've"
  74. print "tried ASIC and like it, please register.  The registration fee is an"
  75. print "insanely cheap $10.00, and both the compiler and the documentation are"
  76. print "extremely user-friendly.  I've saved the price of registration many"
  77. print "times over with the utilities I've written.  Many of those utilities"
  78. print "were ones I saw advertised in commercial and shareware catalogues; I"
  79. print "wrote my own version, saving both the diskette handling fee and"
  80. print "registration.  Other utilities I couldn't find anywhere; I wrote them"
  81. print "myself and stopped looking."
  82. print
  83. print "Anyway, enough free advertising for Mr. Visti.  Let's get to it."
  84. print
  85. print
  86. print "Press any key to see the Main Options Menu. ";
  87. gosub continue:
  88.  
  89. options:
  90. cls
  91. print "Here are the subjects covered:"
  92. print
  93. print
  94. print "F1- Blank Lines                         Alt-F1 - In Conclusion"
  95. print
  96. print "F2- Command Line Arguments              Esc- Quit"
  97. print
  98. print "F3- Using Extended Keys"
  99. print
  100. print "F4- Writing 40-column Text"
  101. print
  102. print "F5- A Bug in the 3.01 PRINT Command"
  103. print
  104. print "F6- Reserved Words"
  105. print
  106. print "F7- Error errors."
  107. print
  108. print "F8- How to Get a Copy of ASIC."
  109. print
  110. print "F9- Running ASIC From One Drive"
  111. print
  112. print
  113. print "Please press the key corresponding to your choice. ";
  114.  
  115. wait1:
  116. gosub continue:
  117. if a$=b$ then finish:
  118. if extended=1 then readext:
  119. goto wait1:
  120.  
  121. readext:
  122. if a$=";" then blanklin:
  123. if a$="<" then commandl:
  124. if a$="=" then extkeys:
  125. if a$=">" then 40column:
  126. if a$="?" then printbug:
  127. if a$="@" then reserved:
  128. if a$="A" then errorerr:
  129. if a$="B" then getcopy:
  130. if a$="C" then onedrive:
  131. if a$="i" then conclude:
  132. goto wait1:
  133.  
  134. blanklin:
  135. cls
  136. print "This subject is pretty simple.  Just so you don't think I've had a"
  137. print "frontal lobotomy, I'll tell you it didn't take me long to figure it"
  138. print "out.  On the other foot, it did give me a puzzling moment or two."
  139. print "Simply put, typing the command PRINT in ASIC 1.00 or 2.x won't cut it."
  140. print "ASIC requires ";
  141. print c$;
  142. print "something";
  143. print c$;
  144. print " to print out, even if that something is"
  145. print "nothing.  Accordingly, we tell ASIC to print nothing, thus:"
  146. print
  147. print "PRINT ";
  148. print c$;
  149. print c$
  150. print
  151. print "Now you can print all the blank lines you could possibly want (if you"
  152. print "want more than 64K of blank lines, get professional help)."
  153. print
  154. print "Version 3.00 and above does not require the null string (double"
  155. print "quotes) in the PRINT statement.  Just the command PRINT will do fine."
  156. print
  157. print
  158. print "Press any key to continue. ";
  159. gosub continue:
  160. cls
  161. print "Still on the subject of blank lines, but with a twist, is a habit I've"
  162. print "gotten into.  Because I'm used to GW-BASIC, I've gotten into the habit"
  163. print "of printing a REM statement to create a blank line.  This makes your"
  164. print "BASICA code more readable, but is entirely unnecessary in ASIC.  All"
  165. print "you have to do is press the Enter key, thus making a blank line.  ASIC"
  166. print "ignores blank lines, they don't add to size of the resulting .COM"
  167. print "file, and they make your source more readable than a blank REM state-"
  168. print "ment."
  169. print
  170. print
  171. print "Press any key to return to the Main Options Menu. ";
  172. gosub continue:
  173. goto options:
  174.  
  175. commandl:
  176. cls
  177. print "Note: ASIC 1.00 doesn't have the option of command line arguments.  To"
  178. print "get that feature, you'll need version 2.00 or above."
  179. print
  180. print
  181. print "I had the devil's own time trying to figure out what was wrong with my"
  182. print "program.  It was a simple utility, WIDTH.COM, which I use for changing"
  183. print "from 80-column width to 40-columns and back (I don't use DOS's MODE"
  184. print "command for anything but width commands, and I wanted something that"
  185. print "sounded like it did what I wanted it to do).  It's a handy little"
  186. print "program, but the silly thing wouldn't work.  Here's what part of the"
  187. print "code looked like (more or less; I've left out the stuff that doesn't"
  188. print "illustrate my point, but the source code is available on my ASIC Sup-"
  189. print "port Disk):"
  190. print
  191. print
  192. print "Press any key to continue. ";
  193. gosub continue:
  194. cls
  195. print "A$=COMMAND$"
  196. print "IF A$=";
  197. print c$;
  198. print "40";
  199. print c$;
  200. print "THEN WIDTH40:"
  201. print "IF A$=";
  202. print c$;
  203. print "80";
  204. print c$;
  205. print "THEN WIDTH80:"
  206. print "."
  207. print "."
  208. print "."
  209. print "WIDTH40:"
  210. print "WIDTH 40"
  211. print "."
  212. print "WIDTH80:"
  213. print "WIDTH 80"
  214. print
  215. print
  216. print "Press any key to continue. ";
  217. gosub continue:
  218. cls
  219. print "Looked fine, I thought.  Wouldn't run, though.  So I wrote a little"
  220. print "test routine which printed the value of A$.  It turned out that ASIC"
  221. print "always prints a leading space in front of the command line argument,"
  222. print "so that A$ would be ";
  223. print c$;
  224. print " 40";
  225. print c$;
  226. print "instead of ";
  227. print c$;
  228. print "40";
  229. print c$;
  230. print ".";
  231. print "  Notice that little space"
  232. print "in front of the first 40?  Makes all the difference in the world.  So"
  233. print "I rewrote the file, like this:"
  234. print
  235. print "IF A$=";
  236. print c$;
  237. print " 40";
  238. print c$;
  239. print " THEN WIDTH40:"
  240. print "IF A$=";
  241. print c$;
  242. print " 80";
  243. print c$;
  244. print " THEN WIDTH80:"
  245. print
  246. print "and everything worked fine."
  247. print
  248. print
  249. print "Press any key to continue. ";
  250. gosub continue:
  251. cls
  252. print "Now, nothing in life is as simple as you might expect, and the subject"
  253. print "of program arguments is no exception.  If you call another ASIC"
  254. print "program using an argument the program called will, naturally enough,"
  255. print "contain the COMMAND$ function.  However, in this case you do NOT want"
  256. print "the leading space.  Say you want to call another program with the"
  257. print "parameter ";
  258. print c$;
  259. print "/40";
  260. print c$;
  261. print ".  In the called program, you'll want a line like this:"
  262. print
  263. print "A$=COMMAND$"
  264. print "IF A$=";
  265. print c$;
  266. print "/40";
  267. print c$;
  268. print "THEN PUNT:"
  269. print
  270. print "Notice the lack of a leading space.  If you have trouble calling an"
  271. print "ASIC program from another ASIC program, or from the DOS prompt, check"
  272. print "to see if you've either included a leading space you shouldn't, or"
  273. print "forgotten to include one when you should."
  274. print
  275. print "Press any key to return to the Main Options Menu. ";
  276. gosub continue:
  277. goto options:
  278.  
  279. extkeys:
  280. cls
  281. print "In general, ASIC.DOC is easy to read, concise, and informative."
  282. print "There's one spot, though, where things get unnecessarily mysterious."
  283. print "In the INKEY$ section of the Keyword Reference, there's mention that"
  284. print "if an extended key (such as one of the function keys) is pressed, the"
  285. print "system variable EXTENDED is set to 1.  As for using this variable,"
  286. print "ASIC.DOC mumbles something about scan codes and moves on.  I got to"
  287. print "thinking about it, and came up with a routine that works every time,"
  288. print "and is as simple as can be:"
  289. print
  290. print "WAIT:"
  291. print "A$=INKEY$"
  292. print "IF A$=";
  293. print c$;
  294. print c$;
  295. print " THEN WAIT:"
  296. print "IF EXTENDED=1 THEN READEXT:"
  297. print "."
  298. print "."
  299. print "."
  300. print "READEXT:"
  301. print "IF A$=";
  302. print c$;
  303. print ";";
  304. print c$;
  305. print "THEN LABEL1:"
  306. print "IF A$=";
  307. print c$;
  308. print "<";
  309. print c$;
  310. print " THEN LABEL2:"
  311. print
  312. print "and so on."
  313. print
  314. print
  315. print "Press any key to continue. ";
  316. gosub continue:
  317. cls
  318. print "Now, all you need is a routine which will tell you what kind of"
  319. print "character ASIC sees when you press the extended key in question."
  320. print "Here's the code for EXTENDED.COM (EXTENDED.ASI, EXTENDED.COM, and"
  321. print "EXTENDED.DOC can be found on my ASIC Support Disk):"
  322. print
  323. print "WAIT:"
  324. print "A$=INKEY$"
  325. print "IF A$=";
  326. print c$;
  327. print c$;
  328. print " THEN WAIT:"
  329. print "B$=CHR$(27)"
  330. print "IF A$=B$ THEN FINISH:"
  331. print "PRINT A$"
  332. print "GOTO WAIT:"
  333. print "FINISH:"
  334. print "END"
  335. print
  336. print "Running this program will show you what characters you need to watch"
  337. print "out for in READEXT:."
  338. print "For example, if EXTENDED is equal to 1 and A$ is equal to ";
  339. print c$;
  340. print ";";
  341. print c$;
  342. print " then the"
  343. print "F1 function key has been pressed.  If EXTENDED=0, then the colon/semi-"
  344. print "colon key has been pressed.  It's easy to use EXTENDED.COM to figure"
  345. print "the other keys on your own."
  346. print
  347. print
  348. print "Press any key to continue. ";
  349. gosub continue:
  350. cls
  351. print "You should now have access to the extended keys, without mystery, and"
  352. print "without ";
  353. print c$;
  354. print "scan codes";
  355. print c$;
  356. print " (whatever they are)."
  357. print
  358. print "Examples of routines which access these keys can be found in"
  359. print "FILE-MAN.ASI, GETKEY.ASI, and TIPS.ASI, on the Support Disk I keep"
  360. print "plugging at every opportunity."
  361. print
  362. print
  363. print "Press any key to return to the Main Options Menu. ";
  364. gosub continue:
  365. goto options:
  366.  
  367. 40column:
  368. cls
  369. print "I've been including a 40-column width in some of my programs to help"
  370. print "the visually impaired, at least in theory.  I haven't actually gotten"
  371. print "any feedback from a visually impaired person, and would appreciate"
  372. print "some.  Anyway, the difficulty is in knowing when to cut a line short,"
  373. print "since it's hard to run most editors in 40-column mode, and the ones I"
  374. print "have that will work that way are difficult to use.  Luckily, ASIC has"
  375. print "an excellent alternative built into the integrated environment."
  376. print
  377. print "In the lower right corner of the screen, there's an area with the word"
  378. print "Col: followed by a number.  If you end your print statements when the"
  379. print "number reaches 47, you'll have no worries about words breaking at odd"
  380. print "places; your text won't be perfect, but it will be readable.  Left"
  381. print "margins, centering, and what-not I leave to your experimentation,"
  382. print "since I don't have much desire for them at the moment and therefore"
  383. print "haven't tried to use them."
  384. print
  385. print "It may be important to note that the 47-column line includes the com-"
  386. print "mand PRINT and both quotation marks.  That's why it's such an odd num-"
  387. print "ber; that stuff has been taken into account already."
  388. print
  389. print
  390. print "Press any key to return to the Main Options Menu. ";
  391. gosub continue:
  392. goto options:
  393.  
  394. printbug:
  395. cls
  396. print "If you're using ASIC 3.01, you may notice that the printing to the"
  397. print "screen gets all discombobulated occasionally.  That happens when"
  398. print "you've used print commands to print one or more blank lines, just be-"
  399. print "fore you try to print some text.  It doesn't always happen but, if it"
  400. print "does, just go back to the blank PRINT commands and add double quotes"
  401. print "after them, thus:"
  402. print
  403. print "PRINT ";
  404. print c$;
  405. print c$
  406. print
  407. print "I don't know why this happens, but my guess is it's a bug in the com-"
  408. print "piler.  It seems to happen most often after block IF-THEN statements"
  409. print "and/or when the code is especially unstructured."
  410. print
  411. print
  412. print "Press any key to return to the Main Options Menu. ";
  413. gosub continue:
  414. goto options:
  415.  
  416. getcopy:
  417. cls
  418. print "If you want a copy of ASIC but can't find one, I'll send you a copy if"
  419. print "you follow these instructions EXACTLY.  There can be no exceptions; if"
  420. print "you don't follow these steps, your material will be returned.  Sorry"
  421. print "if I'm being a jerk about this, but I can't afford to spend any more"
  422. print "time than absolutely necessary.  Also, if there's a big response to"
  423. print "this offer, I might end up with out-of-pocket expenses that could set"
  424. print "me back in a big way.  Thanks for your understanding."
  425. print
  426. print
  427. print "Press any key to continue. ";
  428. gosub continue:
  429. cls
  430. print "First, you must send me the following:"
  431. print
  432. print "     1- A diskette mailer."
  433. print
  434. print "     2- A blank diskette (5.25 inch, 360K format only)."
  435. print
  436. print "You'll need to do the following before sending the above:"
  437. print
  438. print "     1- Put your address on the mailer."
  439. print
  440. print "     2- Put sufficient return postage on the mailer."
  441. print
  442. print "     3- Format the diskette."
  443. print
  444. print
  445. print "So, what I'm asking for is a stamped self-addressed return mailer and"
  446. print "a blank diskette."
  447. print
  448. print "If you do all that, I'll make a copy of my ASIC disk, and send it back"
  449. print "to you."
  450. print
  451. print
  452. print "Press any key to return to the Main Options Menu. ";
  453. gosub continue:
  454. goto options:
  455.  
  456.  
  457. rem Here is the routine dealing with reserved words.
  458.  
  459. reserved:
  460. cls
  461. print "ASIC is pretty liberal in its use of reserved words.  About the only"
  462. print "thing you can't do, as far as I can tell, is use a keyword such as"
  463. print "PRINT for a numeric variable.  On the other hand, string variables"
  464. print "such as PRINT$, CLS$, END$, and CALL$ are perfectly valid, and will"
  465. print "cause no errors that I know of.  Another thing you can do is use most"
  466. print "keywords as labels (ASIC calls them symbols).  Apparently, ASIC con-"
  467. print "siders them distinct because of the colon at the end, in the same way"
  468. print "it seems to ignore keywords with a dollar sign as the last character."
  469. print "As a result, you can have labels such as PRINT:, CLS:, END:, and CALL:"
  470. print "without any trouble.  This can be handy, since you can use names for"
  471. print "both your string variables and your labels which describe what they do"
  472. print "without worrying about whether or not you'll get in trouble with the"
  473. print "compiler."
  474. print
  475. print "As stated earlier, you can't use keywords as numeric variables, since"
  476. print "the compiler will get confused.  Also, a label such as INKEY$: will"
  477. print "not be accepted.  Obviously enough, a keyword such as INKEY$ can't be"
  478. print "used as a string variable."
  479. print
  480. print
  481. print "Press any key to return to the Main Options Menu. ";
  482. gosub continue:
  483. goto options:
  484.  
  485. rem This is the end of the routine for dealing with reserved words.
  486.  
  487.  
  488. rem Here is the the routine for dealing with "undocumented" errors.
  489.  
  490. errorerr:
  491. cls
  492. print "In writing READ.COM, I looked in ASIC.DOC for the errors that could"
  493. print "be handled directly from ASIC.  I checked the section ";
  494. print c$;
  495. print "OPEN - "
  496. print "INPUT MODE";
  497. print c$;
  498. print "and found only a FILE NOT FOUND error.  However, there is a PATH NOT"
  499. print "FOUND error, which I needed.  It's documented in ";
  500. print c$;
  501. print "OPEN - MODE"
  502. print "OUTPUT, APPEND, or RANDOM";
  503. print c$;
  504. print "."
  505. print "However, it's equally valid for MODE INPUT and is, in fact, quite"
  506. print "handy to have if you're opening files in this mode.  So, if you're"
  507. print "checking Chapter 10 for errors of this nature, remember that Error 3"
  508. print "is listed in the OPEN - MODE OUTPUT, RANDOM, or APPEND section."
  509. print
  510. print "This applies to the documentation for ASIC 3.01; earlier versions may"
  511. print "not have this entry, and later versions may have changed it around."
  512. print "Also, other versions of ASIC.DOC may have the error codes under a"
  513. print "different Chapter number."
  514. print
  515. print
  516. print "Press any key to continue, or Esc to quit. ";
  517. gosub continue:
  518. if a$=b$ then options:
  519. cls
  520. print "In case you might find this of use, I discovered the ";
  521. print c$;
  522. print "undocumented";
  523. print c$
  524. print "errors by using some program lines I call tracers.  First I use a"
  525. print "PRINT ERROR line to find out if there's a valid ASIC error being"
  526. print "tripped.  Then, since I want the error number to stick around on the"
  527. print "screen long enough to read it, I use a loop using INKEY$, thus:"
  528. print
  529. print "CONTINUE:"
  530. print "A$=INKEY$"
  531. print "IF A$=";
  532. print c$;
  533. print c$;
  534. print " THEN CONTINUE:"
  535. print
  536. print "This allowed me to see the number 3 on the screen.  I then checked"
  537. print "ASIC.DOC, and finally went back to READ.COM, and worked Error 3 into"
  538. print "the code."
  539. print
  540. print "If you're wondering why I didn't check ASIC.DOC in the first place,"
  541. print "the answer is simple: I'm a bit dense sometimes, and I didn't think of"
  542. print "it.  Anyway, this little routine can be helpful in other situations,"
  543. print "and even if you're not dense."
  544. print
  545. print
  546. print "Press any key to continue. ";
  547. gosub continue:
  548. goto options:
  549.  
  550. rem This is the end of the routine dealing with "undocumented" errors.
  551.  
  552.  
  553. rem Here is the routine for running ASIC from one drive.
  554.  
  555. onedrive:
  556. cls
  557. print "The hardware requirements for ASIC are listed as one disk drive.  This"
  558. print "is true if you want on-line help; if you feel you can get along with"
  559. print "just the printed documentation, and you have only one floppy drive,"
  560. print "you can still use ASIC by following this method."
  561. print
  562. print "Press any key to continue. ";
  563. gosub continue:
  564. cls
  565. print "The most important thing to remember is NOT to use this procedure on"
  566. print "the original disks.  If you do, you'll lose ASIC.DOC, which will leave"
  567. print "you without any help at all, on-line or otherwise.  So, first thing,"
  568. print "make a backup of your ASIC disks.  Now put the originals far, far"
  569. print "away so you don't mix them up."
  570. print
  571. print
  572. print "The next thing you'll do is DELETE the following files:"
  573. print
  574. print
  575. print "ASIC.DOC (do you know where your original is?  It had better not be"
  576. print "in the drive, or you'll lose your documentation)."
  577. print
  578. print "ASIC.IDX (you don't absolutely have to, but it's useless without"
  579. print "the documentation, so you might as well)"
  580. print
  581. print "ASICM.IDX (same reason as above)"
  582. print
  583. print
  584. print "You'll have to print ASIC.DOC, of course, to use the documentation."
  585. print
  586. print
  587. print "Press any key to continue. ";
  588. gosub continue:
  589. cls
  590. print "Once you've deleted these three files, you'll have enough room on one"
  591. print "5.25 inch, 360K floppy to write good-sized programs.  This isn't to"
  592. print "say you can't possibly run out of room, but you'll have to work at it."
  593. print
  594. print "If you do run out of room for ASIC????.EXE, your source code, and your"
  595. print "executable code, you may be able to write your source with a word"
  596. print "processor that lets you save your files to a disk other than the one"
  597. print "with the word processor (almost all of them do that), and let you save"
  598. print "your files as ASCII or text (most of them do that).  You can save your"
  599. print "source to a blank disk.  Then you can copy ASICC.EXE by typing (from"
  600. print "the DOS prompt) COPY ASICC.EXE B:.  ASICC.EXE should be in your drive"
  601. print "when you type this command.  When DOS prompts you to change disks, put"
  602. print "the disk with your source code into the drive.  There'll be plenty of"
  603. print "room for both ASICC.EXE and your source.  When both files are copied"
  604. print "to the one disk, type ASICC YOURCODE.ASI (substituting the name of"
  605. print "your source code for YOURCODE.ASI, of course).  Your source should"
  606. print "compile, and there should be plenty of room for ASICC.EXE, your source" 
  607. print "code, and your executable code (.COM file)."
  608. print
  609. print
  610. print "Press any key to return to the Main Menu. ";
  611. gosub continue:
  612. goto options:
  613.  
  614. rem This is the end of the routine for running ASIC from one disk drive.
  615.  
  616.  
  617. rem Here is the routine for wrapping things up.
  618.  
  619. conclude:
  620. cls
  621. print "It's late and I'm tired, so I'm dropping the subject for now.  As time"
  622. print "goes by, though, I'll include more tips.  If you've had a problem that"
  623. print "puzzled you until you figured out a fairly simple method, let me know"
  624. print "and I'll add it to later versions of this program.  We all have"
  625. print "stumbling blocks and mental blocks, but if we blockheads get together"
  626. print "and share info, we can save each other a lot of time and write higher-"
  627. print "quality programs into the bargain."
  628. print
  629. print
  630. print "Thanks."
  631. print
  632. print
  633. print "Press any key to return to the Main Options Menu. ";
  634. gosub continue:
  635. goto options:
  636.  
  637. rem This is the end of the routine for wrapping things up.
  638.  
  639.  
  640. rem Here is TIPS.COM in 40-column mode.
  641.  
  642. tips40:
  643. width 40
  644. print "ASIC TIPS"
  645. print
  646. print
  647. print "Matt Roberts"
  648. print "3 Cedar St., # 8"
  649. print "Montpelier, Vt 05602-3006"
  650. print
  651. print
  652. print
  653. print
  654. print
  655. print
  656. print
  657. print
  658. print
  659. print "Press any key to continue. ";
  660. gosub continue:
  661. cls
  662. print "Hi.  In the process of stumbling"
  663. print "around with ASIC 1.00, 2.01, and 3.01,"
  664. print "I've discovered a few little tips that"
  665. print "might make your programming a bit"
  666. print "easier.  I'm not all that hot a pro-"
  667. print "grammer, though I'm not too bad, and"
  668. print "you may not be especially impressed"
  669. print "with my discoveries.  However, I think"
  670. print "there's some solid value in here."
  671. print "You'll probably get the most out of"
  672. print "this if you're a beginner, especially"
  673. print "one who's used to Microsoft's BASICA/"
  674. print "GW-BASIC.  Intermediate programmers"
  675. print "may find a few short cuts, and experts"
  676. print "might not find much of use."
  677. print
  678. print
  679. print "Press any key to continue. ";
  680. gosub continue:
  681. cls
  682. print "ASIC is copyrighted by David Visti.  I"
  683. print "am not in any way connected to ASIC,"
  684. print "except as a registered user and ardent"
  685. print "fan.  The author can be reached at:"
  686. print
  687. print "David Visti, P.O. Box 2952, Raleigh,"
  688. print "NC 27602-2952."
  689. print
  690. print
  691. print "Press any key to continue. ";
  692. gosub continue:
  693.  
  694. option40:
  695. cls
  696. print "Here are the subjects covered:"
  697. print
  698. print
  699. print "F1- Blank Lines              Esc- QUIT"
  700. print
  701. print "F2- Command Line Arguments"
  702. print
  703. print "F3- Using Extended Keys"
  704. print
  705. print "F4- Writing 40-column Text"
  706. print
  707. print "F5- A Bug in the 3.01 PRINT Command"
  708. print
  709. print "F6- Reserved Words"
  710. print
  711. print "F7- Error Errors"
  712. print
  713. print "F8- How to Get a Copy of ASIC"
  714. print
  715. print "N- Next Menu."
  716. print
  717. print
  718. print "Please press the key corresponding to"
  719. print "your choice. ";
  720.  
  721. wait2:
  722. gosub continue:
  723. if a$=b$ then finish:
  724. if a$="n" then menu240:
  725. if a$="N" then menu240:
  726. if extended=1 then readex40:
  727. goto wait2:
  728.  
  729. readex40:
  730. if a$=";" then blnkln40:
  731. if a$="<" then comndl40:
  732. if a$="=" then extkey40:
  733. if a$=">" then 40col40:
  734. if a$="?" then prbug40:
  735. if a$="@" then reserv40:
  736. if a$="A" then errerr40:
  737. if a$="B" then gtcopy40:
  738. goto wait2:
  739.  
  740. menu240:
  741. cls
  742. print "Here are the remaining topics:"
  743. print
  744. print
  745. print "P- Previous Menu."
  746. print
  747. print "F9- Running ASIC From One Drive"
  748. print
  749. print "F10- In Conclusion"
  750. print
  751. print "Esc- Quit and Return to DOS"
  752. print
  753. print
  754. print "Please press the key corresponding to"
  755. print "your choice. ";
  756.  
  757. wait3:
  758. gosub continue:
  759. if a$=b$ then finish:
  760. if a$="p" then option40:
  761. if a$="P" then option40:
  762. if extended=0 then wait3:
  763.  
  764. if a$="C" then onedrv40:
  765. if a$="D" then concld40:
  766.  
  767. goto wait3:
  768.  
  769. blnkln40:
  770. cls
  771. print "This subject is pretty simple.  Just"
  772. print "so you don't think I've had a frontal"
  773. print "lobotomy, I'll tell you it didn't take"
  774. print "me long to figure it out.  On the"
  775. print "other foot, it did give me a puzzling"
  776. print "moment or two.  Simply put, typing the"
  777. print "command PRINT in ASIC 1.00 or 2.x"
  778. print "won't cut it.  ASIC requires ";
  779. print c$;
  780. print "some-"
  781. print "thing";
  782. print c$;
  783. print " to print, even if that some-"
  784. print "thing is nothing.  Accordingly, we"
  785. print "tell ASIC to print nothing, thus:"
  786. print
  787. print "PRINT ";
  788. print c$;
  789. print c$
  790. print
  791. print "Now you can print all the blank lines"
  792. print "you could possibly want."
  793. print
  794. print "Press any key to continue. ";
  795. gosub continue:
  796. cls
  797. print "Version 3.00 and above does not re-"
  798. print "quire the null string (double quotes)"
  799. print "in the PRINT statement.  Just the com-"
  800. print "mand PRINT will do fine."
  801. print
  802. print
  803. print "Press any key to continue. ";
  804. gosub continue:
  805. cls
  806. print "Still on the subject of blank lines,"
  807. print "but with a twist, is a habit I've got-"
  808. print "ten into.  Because I'm used to"
  809. print "GW-BASIC, I've gotten into the habit"
  810. print "of printing a REM statement to create"
  811. print "a blank line.  This makes your BASICA"
  812. print "code more readable, but is entirely"
  813. print "unnecessary in ASIC.  All you have to"
  814. print "do is press the Enter key, thus making"
  815. print "a blank line.  ASIC ignores blank"
  816. print "lines, they don't add to the size of"
  817. print "the resulting .COM file, and they make"
  818. print "your source more readable than a blank"
  819. print "REM statement."
  820. print
  821. print
  822. print "Press any key to return to the Main"
  823. print "Options Menu. ";
  824. gosub continue:
  825. goto option40:
  826.  
  827.  
  828. rem Here is the routine for dealing with command-line parameters in 40 cols.
  829.  
  830. comndl40:
  831. cls
  832. print "Note: ASIC 1.00 doesn't have the op-"
  833. print "tion of command line arguments.  To"
  834. print "get that feature, you'll need version"
  835. print "2.00 or above."
  836. print
  837. print
  838. print "Press any key to continue. ";
  839. gosub continue:
  840. cls
  841. print "I had the devil's own time trying to"
  842. print "figure out what was wrong with my"
  843. print "program.  It was a simple utility,"
  844. print "WIDTH.COM, which I use for changing"
  845. print "from 80-column width to 40-columns and"
  846. print "back (I don't use DOS's MODE command"
  847. print "for anything but width commands, and I"
  848. print "wanted something that sounded like it"
  849. print "did what I wanted it to do).  It's a "
  850. print "handy little program, but the silly"
  851. print "thing wouldn't work.  Here's what part"
  852. print "of the code looked like (the full code"
  853. print "is available on my ASIC Support Disk):"
  854. print
  855. print
  856. print "Press any key to continue. ";
  857. gosub continue:
  858. cls
  859. print "A$=COMMAND$"
  860. print "IF A$=";
  861. print c$;
  862. print "40";
  863. print c$;
  864. print "THEN WIDTH40:"
  865. print "IF A$=";
  866. print c$;
  867. print "80";
  868. print c$;
  869. print "THEN WIDTH80:"
  870. print "."
  871. print "."
  872. print "."
  873. print "WIDTH40:"
  874. print "WIDTH 40"
  875. print "."
  876. print "WIDTH80:"
  877. print "WIDTH 80"
  878. print
  879. print
  880. print "Press any key to continue. ";
  881. gosub continue:
  882. cls
  883. print "Looked fine, I thought.  Wouldn't run,"
  884. print "though.  So I wrote a little test rou-"
  885. print "tine which printed the value of A$."
  886. print "It turned out that ASIC always prints"
  887. print "a leading space in front of the com-"
  888. print "mand line argument, so that A$ would"
  889. print "be ";
  890. print c$;
  891. print " 40";
  892. print c$;
  893. print " instead of ";
  894. print c$;
  895. print "40";
  896. print c$;
  897. print "."
  898. print
  899. print
  900. print "Press any key to continue. ";
  901. gosub continue:
  902. cls
  903. print "Did you notice that little space in"
  904. print "front of the 40?  Makes all the dif-"
  905. print "ference in the world.  So I rewrote"
  906. print "the file, like this:"
  907. print
  908. print "IF A$=";
  909. print c$;
  910. print " 40";
  911. print c$;
  912. print " THEN WIDTH40:"
  913. print "IF A$=";
  914. print c$;
  915. print " 80";
  916. print c$;
  917. print " THEN WIDTH80:"
  918. print
  919. print "and everything worked fine."
  920. print
  921. print
  922. print "Press any key to continue. ";
  923. gosub continue:
  924. cls
  925. print "On the other hand, you may want to"
  926. print "call another ASIC program using an"
  927. print "argument.  In that case the program"
  928. print "called will, naturally enough, contain"
  929. print "the COMMAND$ function.  However, in"
  930. print "this case you do NOT want the leading"
  931. print "space.  Say you want to call another"
  932. print "program with the parameter ";
  933. print c$;
  934. print "/40";
  935. print c$;
  936. print "."
  937. print
  938. print
  939. print "Press any key to continue. ";
  940. gosub continue:
  941. cls
  942. print "In the called program, you'll want a"
  943. print "line like this:"
  944. print
  945. print "A$=COMMAND$"
  946. print "IF A$=";
  947. print c$;
  948. print "/40";
  949. print c$;
  950. print "THEN PUNT:"
  951. print
  952. print "Notice the lack of a leading space."
  953. print "If you have trouble calling an ASIC"
  954. print "program with an argument, check to see"
  955. print "if you've either included a leading"
  956. print "space you shouldn't have, or forgotten"
  957. print "to include one when you should have."
  958. print
  959. print
  960. print "Press any key to return to the Main"
  961. print "Options Menu. ";
  962. gosub continue:
  963. goto option40:
  964.  
  965.  
  966. rem Here is the routine for discussing the use of extended keys in 40 columns.
  967.  
  968. extkey40:
  969. cls
  970. print "In general, ASIC.DOC is easy to read,"
  971. print "concise and informative.  There's one"
  972. print "spot, though, where things get un-"
  973. print "necessarily mysterious.  In the INKEY$"
  974. print "section of the Keyword Reference,"
  975. print "there's mention that if an extended"
  976. print "(such as one of the function keys) is"
  977. print "pressed, the system variable EXTENDED"
  978. print "is set to 1.  As for using this var-"
  979. print "iable, ASIC.DOC mumbles something"
  980. print "about scan codes and moves on.  I got"
  981. print "to thinking about it, and came up with"
  982. print "a routine that works every time, and"
  983. print "is as simple as can be:"
  984. print
  985. print
  986. print "Press any key to continue. ";
  987. gosub continue:
  988. cls
  989. print "WAIT:"
  990. print "A$=INKEY$"
  991. print "IF A$=";
  992. print c$;
  993. print c$;
  994. print " THEN WAIT:"
  995. print "IF EXTENDED=1 THEN READEXT:"
  996. print "."
  997. print "."
  998. print "."
  999. print "READEXT:"
  1000. print "IF A$=";
  1001. print c$;
  1002. print ";";
  1003. print c$;
  1004. print " THEN LABEL1:"
  1005. print "IF A$=";
  1006. print c$;
  1007. print "<";
  1008. print " THEN LABEL2:"
  1009. print
  1010. print "and so on."
  1011. print
  1012. print "Press any key to continue. ";
  1013. gosub continue:
  1014. cls
  1015. print "Now, all you need is a routine which"
  1016. print "will tell you what kind of character"
  1017. print "ASIC sees when you press the extended"
  1018. print "key in question.  Here's the code for"
  1019. print "EXTENDED.COM (EXTENDED.ASI,"
  1020. print "EXTENDED.COM, and EXTENDED.DOC can be"
  1021. print "be found on my ASIC Support Disk):"
  1022. print
  1023. print "WAIT:"
  1024. print "A$=INKEY$"
  1025. print "IF A$=";
  1026. print c$;
  1027. print c$;
  1028. print " THEN WAIT:"
  1029. print "B$=CHR$(27)"
  1030. print "IF A$=B$ THEN FINISH:"
  1031. print "PRINT A$"
  1032. print "GOTO WAIT:"
  1033. print "FINISH:"
  1034. print "END"
  1035. print
  1036. print
  1037. print "Press any key to continue. ";
  1038. gosub continue:
  1039. cls
  1040. print "Running this program will show you"
  1041. print "what characters you need to watch out"
  1042. print "for in READEXT:.  For example, if"
  1043. print "EXTENDED is equal to 1 and A$ is equal"
  1044. print "to ";
  1045. print c$;
  1046. print ";";
  1047. print c$;
  1048. print " then the F1 function key has"
  1049. print "been pressed.  If EXTENDED=0, then the"
  1050. print "colon/semi-colon key has been pressed."
  1051. print "It's easy to use EXTENDED.COM to fig-"
  1052. print "ure out the other keys on your own."
  1053. print
  1054. print "You should now have access to the ex-"
  1055. print "tended keys, without mystery and with-"
  1056. print "out scan codes (whatever they are)."
  1057. print
  1058. print "Examples of routines which access"
  1059. print "these keys can be found in"
  1060. print "FILE-MAN.ASI, GETKEY.ASI, and TIPS.ASI"
  1061. print "on the Support Disk I keep plugging at"
  1062. print "every opportunity."
  1063. print
  1064. print "Press any key to return to the menu. ";
  1065. gosub continue:
  1066. goto option40:
  1067.  
  1068.  
  1069. rem Here is the routine for 40-column screen writes in 40-columns.
  1070.  
  1071. 40col40:
  1072. cls
  1073. print "I've been including a 40-column width"
  1074. print "in some of my programs to help the"
  1075. print "visually impaired, at least in theory."
  1076. print "I haven't actually gotten any feedback"
  1077. print "from a visually impaired person, and"
  1078. print "would appreciate some.  Anyway, the"
  1079. print "difficulty is in knowing when to cut a"
  1080. print "line short, sice it's hard to run most"
  1081. print "editors in 40-column mode, and the"
  1082. print "I have that will work that way are"
  1083. print "difficult to use.  Luckily, ASIC has"
  1084. print "an excellent alternative built into"
  1085. print "the integrated environment."
  1086. print
  1087. print "In the lower right corner of the"
  1088. print "screen, there's an area with the word"
  1089. print "Col: followed by a number.  If you end"
  1090. print "your print statements when the number"
  1091. print "reaches 47, you'll have no worries"
  1092. print "about words breaking at odd places;"
  1093. print "your text won't be perfect, but it"
  1094. print "will be readable."
  1095. print
  1096. print "Press any key to continue. ";
  1097. gosub continue:
  1098. cls
  1099. print "It may be important to note that the"
  1100. print "47-column line includes the command"
  1101. print "PRINT and both quotation marks."
  1102. print "That's why it's such an odd number;"
  1103. print "all that stuff has been taken into ac-"
  1104. print "count already."
  1105. print
  1106. print
  1107. print "Press any key to return to the Main"
  1108. print "Options Menu. ";
  1109. gosub continue:
  1110. goto option40:
  1111.  
  1112.  
  1113. rem Here is the routine dealing with the 3.01 PRINT bug in 40-column mode.
  1114.  
  1115. prbug40:
  1116. cls
  1117. print "If you're using ASIC 3.01, you may"
  1118. print "notice that the printing to the screen"
  1119. print "gets all discombobulated occasionally."
  1120. print "That happens when you've used PRINT"
  1121. print "commands to print one or more blank"
  1122. print "lines, just before you try to print"
  1123. print "some text.  It doesn't always happen"
  1124. print "but, if it does, just go back to the"
  1125. print "blank PRINT commands and add double"
  1126. print "quotes after them, thus:"
  1127. print
  1128. print "PRINT ";
  1129. print c$;
  1130. print c$
  1131. print
  1132. print "I don't know why this happens, but my"
  1133. print "guess is it's a bug in the compiler."
  1134. print "It seems to happen most often after"
  1135. print "block IF-THEN statements and/or when"
  1136. print "the code is especially unstructured."
  1137. print
  1138. print
  1139. print "Press any key to return to the Main"
  1140. print "Options Menu. ";
  1141. gosub continue:
  1142. goto option40:
  1143.  
  1144.  
  1145. rem Here is the routine dealing with reserved words in 40-column mode.
  1146.  
  1147. reserv40:
  1148. cls
  1149. print "ASIC is pretty liberal in its use of"
  1150. print "reserved words.  String variables,"
  1151. print "such as PRINT$, CLS$, END$, and CALL$"
  1152. print "are perfectly valid, and will cause no"
  1153. print "errors that I know of.  Another thing"
  1154. print "you can do is use most keywords as la-"
  1155. print "bels (ASIC calls them symbols).  Ap-"
  1156. print "parently, ASIC considers them distinct"
  1157. print "because of the colon on the end, in"
  1158. print "the same way it seems to ignore key-"
  1159. print "words with a dollar sign as the last"
  1160. print "character.  As a result, you can have"
  1161. print "labels such as PRINT:, CLS:, END:, and"
  1162. print "CALL: without any trouble.  This can"
  1163. print "be handy, since you can use names for"
  1164. print "both your string variables and your"
  1165. print "labels which describe what they do"
  1166. print "without worrying about whether or not"
  1167. print "you'll get in trouble with the com-"
  1168. print "piler."
  1169. print
  1170. print
  1171. print "Press any key to continue. ";
  1172. gosub continue:
  1173. cls
  1174. print "You can't use keywords as numeric var-"
  1175. print "iables, since the compiler will get"
  1176. print "confused.  Also, a label such as"
  1177. print "INKEY$: will not be accepted.  Obvi-"
  1178. print "ously enough, a keyword such as INKEY$"
  1179. print "can't be used as a string variable."
  1180. print
  1181. print
  1182. print "Press any key to return to the Main"
  1183. print "Options Menu. ";
  1184. gosub continue:
  1185. goto option40:
  1186.  
  1187.  
  1188. rem Here is the routine for dealing with "undocumented" errors in 40-columns.
  1189.  
  1190. errerr40:
  1191. cls
  1192. print "In writing READ.COM, I looked in"
  1193. print "ASIC.DOC for the errors that could be"
  1194. print "handled directly from ASIC.  I checked"
  1195. print "the section, OPEN - Mode Input and"
  1196. print "found only a File Not Found error."
  1197. print "However, there is a Path Not Found er-"
  1198. print "ror, which I needed.  It's documented"
  1199. print "in the section OPEN - Mode Output,"
  1200. print "Append, or Random.  However, it's"
  1201. print "equally valid for Mode Input and is,"
  1202. print "in fact, quite handy to have if you're"
  1203. print "opening files in this mode.  So, if"
  1204. print "you're checking Chapter 10 for errors"
  1205. print "of this nature, remember that Error 3"
  1206. print "is listed in the OPEN - Mode Output,"
  1207. print "Random, or Append section."
  1208. print
  1209. print
  1210. print "Press any key to continue. ";
  1211. gosub continue:
  1212. cls
  1213. print "This applies to the documentation for"
  1214. print "ASIC 3.01; earlier versions may not"
  1215. print "have this entry, and later versions"
  1216. print "may have changed it around.  Also,"
  1217. print "other versions of ASIC.DOC may have"
  1218. print "the error codes under a different"
  1219. print "chapter number."
  1220. print
  1221. print
  1222. print "Press any key to continue, or Esc to"
  1223. print "quit ";
  1224. gosub continue:
  1225. if a$=b$ then option40:
  1226. cls
  1227. print "In case you might find this of use, I"
  1228. print "discovered the ";
  1229. print c$;
  1230. print "undocumented";
  1231. print c$
  1232. print "errors by using some program lines I"
  1233. print "call tracers.  First I use a PRINT"
  1234. print "ERROR line to find out if there's a"
  1235. print "valid ASIC error being tripped.  Then,"
  1236. print "since I want the error number to stay"
  1237. print "on the screen long enough to read it,"
  1238. print "I add a loop using INKEY$, thus:"
  1239. print
  1240. print
  1241. print "Press any key to continue. ";
  1242. gosub continue:
  1243. cls
  1244. print
  1245. print "CONTINUE:"
  1246. print "A$=INKEY$"
  1247. print "IF A$=";
  1248. print c$;
  1249. print c$;
  1250. print " THEN CONTINUE:"
  1251. print
  1252. print "This allowed me to see the number 3 on"
  1253. print "the screen.  I then checked ASIC.DOC,"
  1254. print "and finally went back to READ.ASI and"
  1255. print "worked Error 3into the code."
  1256. print
  1257. print "If you're wondering why I didn't check"
  1258. print "ASIC.DOC in the first place, the an-"
  1259. print "swer is simple: I'm a bit dense some-"
  1260. print "times, and I didn't think of it."
  1261. print
  1262. print
  1263. print "Press any key to return to the Main"
  1264. print "Options Menu. ";
  1265. gosub continue:
  1266. goto option40:
  1267.  
  1268. rem This is the end of the routine dealing with "undocumented" errors (40 col)
  1269.  
  1270. gosub continue:
  1271.  
  1272.  
  1273. rem Here is the routine for getting a copy of ASIC in 40-column mode.
  1274.  
  1275. gtcopy40:
  1276. cls
  1277. print "If you want a copy of ASIC but can't"
  1278. print "find one, I'll send you a copy if you"
  1279. print "follow these instructions EXACTLY."
  1280. print "There can be no exceptions; if you"
  1281. print "don't follow these steps, your materi-"
  1282. print "al will be returned.  Sorry if I'm be-"
  1283. print "ing a jerk about this, but I can't af-"
  1284. print "ford to spend any more time than abso-"
  1285. print "lutely necessary.  Also, if there's a"
  1286. print "big response to this offer, I might"
  1287. print "end up with out-of-pocket expenses"
  1288. print "that could set me back in a big way."
  1289. print "Thanks for your understanding."
  1290. print
  1291. print
  1292. print "Press any key to continue. ";
  1293. gosub continue:
  1294. cls
  1295. print "First, you must send me:"
  1296. print
  1297. print
  1298. print "1- A diskette mailer."
  1299. print
  1300. print "2- A blank diskette (360K, 5.25 inch)."
  1301. print
  1302. print
  1303. print "Before you send the above:"
  1304. print
  1305. print "1- Put your address on the mailer."
  1306. print
  1307. print "2- Put sufficient return postage on."
  1308. print
  1309. print "3- Format the diskette."
  1310. print
  1311. print
  1312. print "If you do all that, I'll make copy"
  1313. print "of my ASIC disk, and send it back to"
  1314. print "you."
  1315. print
  1316. print
  1317. print "Press any key to return to the Main"
  1318. print "Options Menu. ";
  1319. gosub continue:
  1320. goto option40:
  1321.  
  1322. rem This is the end of the routine for getting a copy of ASIC.
  1323.  
  1324.  
  1325. rem This is the routine for running ASIC on one drive in 40-column mode.
  1326.  
  1327. onedrv40:
  1328. cls
  1329. print "The hardware requirements for ASIC are"
  1330. print "listed as one disk drive.  This is"
  1331. print "true if you want on-line help; if you"
  1332. print "feel you can get along with just the"
  1333. print "printed documentation, and you have"
  1334. print "only one floppy drive, you can still"
  1335. print "use ASIC by following this method."
  1336. print
  1337. print
  1338. print "Press any key to continue. ";
  1339. gosub continue:
  1340. cls
  1341. print "The most important thing to remember"
  1342. print "is NOT to use this procedure on the"
  1343. print "original disks.  If you do, you'll"
  1344. print "lose ASIC.DOC, which will leave you"
  1345. print "without any help at all, on-line or"
  1346. print "otherwise.  So, first thing, make a"
  1347. print "backup of your ASIC disks.  Now put"
  1348. print "the originals far, far away so you"
  1349. print "don't mix them up."
  1350. print
  1351. print
  1352. print "Press any key to continue. ";
  1353. gosub continue:
  1354. cls
  1355. print "The next thing you'll do is DELETE the"
  1356. print "following files:"
  1357. print
  1358. print
  1359. print "ASIC.DOC (do you know where your"
  1360. print "original is?  It had better not be in"
  1361. print "the drive, or you'll lose the doc-"
  1362. print "umentation)"
  1363. print
  1364. print "ASIC.IDX (you don't absolutely have"
  1365. print "to, but it's useless without ASIC.DOC,"
  1366. print "so you might as well)"
  1367. print
  1368. print "ASICM.IDX (same reason as above)"
  1369. print
  1370. print
  1371. print "You'll have to print ASIC.DOC, of"
  1372. print "course, to use the documentation."
  1373. print
  1374. print
  1375. print "Press any key to continue. ";
  1376. gosub continue:
  1377. cls
  1378. print "Once you've deleted these three files,"
  1379. print "you'll have enough room on one 5.25"
  1380. print "inch, 360K floppy to write good-sized"
  1381. print "programs.  It's still possible to run"
  1382. print "out of room, but it'll take a bit of "
  1383. print "doing."
  1384. print
  1385. print
  1386. print "Press any key to continue. ";
  1387. gosub continue:
  1388. cls
  1389. print "If you do run out of room for"
  1390. print "ASIC????.EXE, your source code, and"
  1391. print "your executable code, you may be able"
  1392. print "to write your source with a word"
  1393. print "processor that lets you save your"
  1394. print "files to a disk other than the one"
  1395. print "with the word processor (almost all of"
  1396. print "them do that) and let you save your"
  1397. print "files as ASCII or text (most of them"
  1398. print "do that).  You can save your source to"
  1399. print "a blank disk.  Then you can copy"
  1400. print "ASICC.EXE by typing (from the DOS"
  1401. print "prompt) COPY ASICC.EXE B:.  ASICC.EXE"
  1402. print "should be in your drive when you type"
  1403. print "this command.  When DOS prompts you to"
  1404. print "change disks, put the disk with your"
  1405. print "source code into the drive.  There'll"
  1406. print "be plenty of room for both ASICC.EXE"
  1407. print "and your source.  When both files are"
  1408. print "copied to the one disk, type ASICC"
  1409. print "YOURCODE.ASI (substituting the name of"
  1410. print
  1411. print
  1412. print "Press any key to continue. ";
  1413. gosub continue:
  1414. cls
  1415. print "your source code for YOURCODE.ASI, of"
  1416. print "course).  Your source should compile,"
  1417. print "and there should be plenty of room for"
  1418. print "ASICC.EXE, your source code, and your"
  1419. print "executable code (.COM file)."
  1420. print
  1421. print
  1422. print "Press any key to return to the menu. ";
  1423. gosub continue:
  1424. goto menu240:
  1425.  
  1426. rem This is the end of the routine for running ASIC on one drive in 40-columns
  1427.  
  1428.  
  1429. rem Here is the routine for wrapping things up in 40-column mode.
  1430.  
  1431. concld40:
  1432. cls
  1433. print "If you've had a problem that puzzled"
  1434. print "you until you figured out a fairly"
  1435. print "simple method, let me know and I'll"
  1436. print "include it here.  We all have"
  1437. print "stumbling blocks and mental blocks,"
  1438. print "but if we blockheads get together and"
  1439. print "share info, we can save each other a"
  1440. print "lot of time and write higher-quality"
  1441. print "programs into the bargain."
  1442. print
  1443. print
  1444. print "Thanks."
  1445. print
  1446. print
  1447. print "Press any key to return to the Main"
  1448. print "Options Menu. ";
  1449. gosub continue:
  1450. goto option40:
  1451.  
  1452. rem This is the end of the routine for wrapping things up in 40-column mode.
  1453.  
  1454.  
  1455. rem Here is the routine for continuing when the user presses a key.
  1456.  
  1457. continue:
  1458.  
  1459. wait:
  1460. a$=inkey$
  1461. if a$="" then wait:
  1462. return
  1463.  
  1464. rem This is the end of the routine for continuing when the user presses a key.
  1465.  
  1466.  
  1467. rem Here is the routine for returning to DOS.
  1468.  
  1469. finish:
  1470. cls
  1471. end
  1472.