home *** CD-ROM | disk | FTP | other *** search
/ Share Gallery 1 / share_gal_1.zip / share_gal_1 / WA / WA827.ZIP / CTSHW201.EXE / CTSHELL.TXT < prev    next >
Text File  |  1991-11-12  |  163KB  |  3,249 lines

  1. Chapter 0 Shareware and License Information
  2. CT-Shell is distributed as shareware, which means that you are encouraged
  3. to try it out before buying it, and you are welcome to pass it along to
  4. friends and others, provided that no charge is made for it, and you
  5. distribute all the files intact.  The following sections provide more
  6. details regarding copyright and other legal matters.
  7.  
  8. Trial Period
  9. Non-registered users may try the evaluation version of CT-Shell for a
  10. period not to exceed 30 days, for the purpose of determining whether it is
  11. suited to their needs.  A license must be purchased to continue using
  12. CT-Shell beyond that time, or its use discontinued and all copies of it
  13. removed.
  14.  
  15. Copyright
  16. This software is copyrighted and all rights are reserved by Computer
  17. Training.  The distribution and sale of registered versions of this
  18. software are intended for use of the original purchaser only.  Lawful users
  19. of this software are hereby licensed only to read the software in the asso-
  20. ciated files solely for the purpose of executing it.  Copying, duplicating,
  21. renting, leasing, selling, or otherwise distributing registered versions of
  22. this software is against the law, with the excep- tion that the original
  23. purchaser may sell the original license to another person, keeping no copy
  24. of the software for himself.
  25.  
  26. Licenses Required
  27. Licenses are required on a per-user basis, with a maximum number of
  28. licenses not to exceed the number of machines that CT-Shell is installed
  29. on..  Thus, if two people use CT-Shell in an office where it may be
  30. installed on five different computers, only two licenses are required.  If
  31. five dif- ferent people use CT-Shell on a single computer, only one license
  32. is required.  CT-Shell may be installed on and from, and it may be executed
  33. on and from, a server that is part of a network, provided that sufficient
  34. licenses are purchased, as provided above.
  35.  
  36. Trademarks
  37. Various product names referred to in this manual are the trademarks or
  38. registered trademarks of their respective manufacturers.  CT, CT-Shell, and
  39. CT-Shell for Windows are trademarks of Computer Training.
  40.  
  41. License Agreement
  42. Carefully read the following terms and conditions.  Use of this Software
  43. constitutes your acceptance of these terms and conditions, and your
  44. agreement to abide by them:
  45.  
  46. The original purchaser of a registered version of CT-Shell (Licensee) is
  47. granted a nonexclusive personal license to use the Software under the terms
  48. stated in this agreement.  The Licensee may transfer his license to a
  49. subsequent purchaser by sale, provided tht the original Licensee does not
  50. retain any copy of the Software.  Except for that provision, any attempt to
  51. sublicense, assign, or transfer any of the rights, duties, or obligations
  52. hereunder is void.  The Licensee may not copy, modify, alter,
  53. electronically transfer, or lease any registered copy of the software, or
  54. the printed manual.  The license is effective until terminated.  The
  55. Licensee may terminate it at any time by destroying the Software.  The
  56. license will also terminate if the Licensee fails to comply with any term
  57. or condition of this Agreement.  The Licensee agrees upon such termination
  58. to destroy the Software.
  59.  
  60. Limited 90-day Warranty
  61. The diskette(s) and printed materials that are part of a registered copy of
  62. this product are warranted for 90 days against physical defects.  To obtain
  63. a replacement for a defective product, return it within the 90-day period
  64. with an explanation of the problem to:
  65.  
  66.                          Computer Training
  67.                           7016  NE 137 ST
  68.                        Kirkland, WA  98034-5010
  69.  
  70.               Voice: (206) 820-6859      Data: (206) 823-2831
  71.  
  72. This product is also warranted against significant errors in the software
  73. that render it unusable for you.  However, you may find it more useful to
  74. call Computer Training and discuss a problem before returning your software
  75. for replacement.  Often what appears to be an error in the software is
  76. actually a misunderstanding about how it is to be used, and an immediate
  77. workaround or solution to the problem is possible.
  78.  
  79. Not covered by any warranty are materials that have been lost, stolen, or
  80. damaged by accident, misuse, or unauthorized modification. COMPUTER
  81. TRAINING WILL NOT BE LIABLE FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL,
  82. INDIRECT, OR OTHER SIMILAR DAMAGES, EVEN IF WE OR OUR AGENT HAVE BEEN
  83. ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.  ANY LIABILITY IS NOT TO EXCEED
  84. THE ORIGINAL PURCHASE PRICE PAID.
  85.  
  86. We make no other warranty, express or implied, to you or to any other
  87. person or entity. Specifically, we make no warranty that the software is
  88. fit for a particular purpose.  Any implied warranty of merchantability is
  89. limited to the 90-day duration of the limited warranty, and is otherwise
  90. expressly and specifically disclaimed. This warranty gives you specific
  91. legal rights.
  92.  
  93. You may also have other rights which vary from state to state.  Some states
  94. do not allow the exclusion of incidental and consequential damages, or the
  95. limitation on how long an implied warranty lasts, so some of the above may
  96. not apply to you.  This agreement will be goverened by the laws of the
  97. State of Washington.
  98.  
  99.  
  100.  
  101.  
  102. Chapter 1 Installing     
  103.  
  104. This chapter describes the process of installing CT-Shell onto your
  105. computer.  It is a very simple process, and because it is much easier to
  106. understand how CT works if you try out features as you read about them,
  107. these directions are placed first in the manual.  It is strongly suggested
  108. that you go ahead and install CT  before going beyond this chapter.
  109.  
  110. Preparing for Installation
  111. CT is distributed in two ways.  If you obtained a copy of it from a friend
  112. or from a Bulletin Board System (BBS), you probably received an archive
  113. file named something like CTSHW200.LZH (or perhaps .ZIP or .ARJ, depending
  114. on the source).  In any event, that archive will require an extraction
  115. program of some kind, depending on the type of compression program that was
  116. required.  But then, you already have found that out if you have gotten to
  117. the file containing this manual, as it was stored within that archive.
  118.  
  119. If you obtained a registered-user copy of CT directly from Computer
  120. Training, you will have a disk with the necessary files in an uncompressed
  121. form.  In that case,  your disk should contain at least the following
  122. files:
  123.  
  124.            CTSHELL.EXE    the executable program
  125.            CTSHELL.INI        sample menu/initialization file
  126.            CTSHELL.HLP    Windows help file
  127.            CTSHELL.KEY    SoftKey to unlock your copy
  128.            CTINSTAL.EXE    Installation program
  129.  
  130. and possibly some other files, such as
  131.  
  132.            CTSHELL.NOT    Distribution notes
  133.  
  134. Having extracted the files from a shareware version of the program, you
  135. would have the same selection of files with two exceptions:  (1) rather
  136. than a printed copy of the manual, you will have a Windows Write document
  137. file named CTSHELL.WRI, and (2) you will not have the SoftKey file
  138. CTSHELL.KEY.  That one is provided to registered users only.
  139.  
  140. Once you've arrived at this point, installation of the program is exactly
  141. the same, whether the files came in a shareware archive, or the files came
  142. on a registered distribution diskette.
  143.  
  144. Installation
  145. There is an installation program provided, named CTINSTAL (its executable
  146. file name is CTINSTAL.EXE) which can be run from within the Windows
  147. environment using any means you usually use to run programs.   In other
  148. words, you can doubleclick on CTINSTAL.EXE while using the Windows File
  149. Manager, or you can select the Run entry from the File menu while using the
  150. Windows Program Manager, and specify CTINSTAL as the program to run.
  151.  
  152. You can probably even start up Windows and run the install program all at
  153. once, with the DOS command:
  154.  
  155.     C:\> WIN CTINSTAL
  156.  
  157. Install Disk/Directory
  158. Before running CTINSTAL by any means, be sure to change to the drive and/or
  159. directory where the distribution files are stored.  Everything else about
  160. the installation is automatic, but CTINSTAL makes the assumption that it is
  161. being run from the directory where it and the rest of the distribution
  162. files are stored.  When run, the CTINSTAL program produces a screen that
  163. looks like this:
  164.  
  165.  
  166. Decisions
  167. There will be two decisions for you to make-both of them easy ones.  You
  168. need to agree to install CT in your Windows home directory, or provide
  169. another place for it to be kept. Ordinarily there is no reason why you
  170. would want it anywhere else, but CTINSTAL offers that option anyway.  Most
  171. people will choose to install it where CTINSTAL wants to put it. You will
  172. also need to decide whether CT is to be your default Windows shell.
  173.  
  174. Directory
  175. If you have any compelling reason to install CT in another directory, it is
  176. recommended that it be one that lies along your DOS path.  That will allow
  177. Windows to find CTSHELL.EXE to run it without requiring full path
  178. information, and it will allow CT to find its initialization and help files
  179. easily when it needs to.  If you're not sure what is meant by the DOS Path,
  180. you can find out more about that from your DOS manual.
  181.  
  182. The installation process will put several files into your Windows
  183. directory, if you accept the default, and they're easy to recognize because
  184. they all begin with CTSHELL.... If you later decide to remove the files for
  185. any reason, there will be no question which ones they are.
  186.  
  187. If you do decide to install CT somewhere other than your Windows home
  188. directory, edit the path that is shown before going on with the
  189. installation.  When you click the button that is marked [Proceed], CTINSTAL
  190. will copy your distribution files to the directory path shown in the setup
  191. window.
  192.  
  193. Default Windows Shell
  194. The second decision is a little more complicated, but should be just as
  195. easy to make as the first one.  Most people will want to use CT as their
  196. replacement Windows shell-in other words, the program that starts up when
  197. Windows starts, and gives them control over what other programs to run.
  198. That's what CT was designed to do, from the start.
  199.  
  200. When Windows was first installed on your computer, it was almost certainly
  201. the Windows Program Manager program (PROGMAN.EXE) that was used for this
  202. purpose by default.  Some Windows users decide to install the Windows File
  203. Manager (FILEMAN.EXE) in its place, preferring the file-oriented rather
  204. than icon-oriented approach to program management.1
  205.  
  206. Likewise, CT can be installed as the default shell by replacing whatever is
  207. currently being used with CTSHELL.EXE.  In fact, CTINSTAL will make the
  208. change for you automatically, if you check the box marked Install as
  209. default Windows shell near the bottom of the installation screen.  To
  210. install the CT files but not modify your SYSTEM.INI file, leave that box
  211. un-checked.  If you do it that way, you will need to start CT manually, as
  212. you would any other Windows application.
  213.  
  214. Note that Program Manager and File Manager may both be started quite easily
  215. from CT, so there's really no reason to be concerned about making CT your
  216. default Windows shell, and besides, CT uses less of your Windows resources
  217. than does Program Manager.  However, if you later change your mind and
  218. decide you would like Program Manager-or any other program-back as your
  219. default shell, you can simply edit your SYSTEM.INI file to restore the
  220. original name.  There's even a CT menu entry that makes it easy to edit any
  221. of your system files.
  222.  
  223. If you did decide to install CT as your default Windows shell, simply exit
  224. from Windows when the installation is complete, then restart Windows.  CT
  225. will appear on your screen in place of the shell you used to use.  If you
  226. decided not to install CT as your default Windows shell, you can start it
  227. in the way you normally start Windows applications.  You can even install
  228. it as an icon in one of your Program Manager groups.  See your Microsoft
  229. Windows User Guide for more information about installing a group item, if
  230. you haven't done that before.
  231.  
  232. Previous Versions
  233. Many who install CT will already have installed an earlier version, and
  234. will probably have an older copy of CTSHELL.INI in their destination
  235. directories that they do not want to erased by copying the new version over
  236. it.  CTINSTAL will spot the old version if one exists, and will prompt you
  237. for the action to take:
  238.  
  239.  
  240.  
  241. Summary
  242. Here are the steps for installing CT properly, listed without a lot of
  243. extra descriptive information.  Rather than going back over the preceding
  244. paragraphs, you may want to refer to this list as you install the program:
  245.  
  246. 1.  If you are installing from a registered user diskette, place the
  247. diskette into any disk drive and change to that drive as your default.  In
  248. other words, if you put the disk into A:, make that your default drive
  249. before going on.  CTINSTAL can easily locate your Windows directory, but it
  250. will only look in the current directory on the default drive for the files
  251. it is to install.
  252.  
  253. If you received CT as an archive from a BBS, you probably already have it
  254. somewhere on your hard drive, and have already extracted the files it
  255. contains, since this document is in one of those files.  It doesn't matter
  256. to CT where you install it from, but you may want to create a temporary
  257. directory somewhere and copy the distribution files to there.  Make that
  258. your default directory, then proceed.
  259.  
  260. 2.  Using your usual means for running  a Windows application, execute the
  261. program named CTINSTAL.EXE, which is one of the distribution files.
  262.  
  263. 3.  Unless you have a good reason to change it, let CTINSTAL install CT
  264. into your Windows home directory.  If you do have a good reason to want it
  265. elsewhere, edit the path name that's shown, but be sure to put the files
  266. into a directory that's along your DOS executable path.
  267.  
  268. 4.  Unless you prefer not to use CT as your default Windows shell (what it
  269. was actually designed to do), check the box at the bottom of the install
  270. window, and CTINSTAL will modify your SYSTEM.INI file automatically to
  271. install CT as your default shell.  If you decide not to make CT your
  272. default shell, you will need to start it manually from your other shell.
  273.  
  274. 5.  Finally, click the [Proceed] button to go ahead with the installation.
  275. Depending on whether it is a registered user version, CTINSTAL will copy
  276. three or four files to the destination directory, and if all went well,
  277. will say so.
  278.  
  279. Headaches
  280. There are two potential problems that should not occur during an
  281. installation.  If all didn't go well, you will see a message box that tells
  282. you a certain file couldn't be found, or that the destination directory
  283. couldn't be written to.
  284.  
  285. File Not Found 
  286.  
  287.  
  288. About the only reason you would see this message is if you have not changed
  289. to the directory where the distribution files are stored before beginning
  290. your install. CTINSTAL is able to locate your Windows directory easily, so
  291. it knows where to put the files it copies for you.  The only way it knows
  292. where to find the files, however, is if they are in the current directory.
  293.  
  294. CTINSTAL was designed this way, so it can be run from any drive or
  295. directory. There is no need to install from drive A: only, although that's
  296. the commonest arrangement.  If the type of disk you received fits into
  297. drive B:, feel free to install from there.
  298.  
  299. Likewise, if you received CT in an archive from a BBS or a friend, you will
  300. have extracted the contents of the archive into a directory somewhere.  It
  301. is only necessary for you to change to that directory-make it your default
  302. directory-before proceeding to run CTINSTAL.
  303.  
  304. Cannot Write to Destination
  305.  
  306.  
  307. Although it's technically possible for you to get this message if the disk
  308. drive is full and CTINSTAL can't find room for the files it needs to copy,
  309. it is unlikely to be caused by that.  CT only requires about 200 KB of
  310. space on your hard drive for all the files that are installed, so it is
  311. unusual for that to be an issue.
  312.  
  313. What is more likely the case is that you have changed the destination
  314. directory name to a path that does not exist.  Perhaps you intended to
  315. create the directory before beginning your installation, but forgot to do
  316. it.  That is sufficient to cause the installation to fail.
  317.  
  318. Installation Fizzled
  319.  
  320. If your installation didn't go well, you'll be told in no uncertain terms.
  321. Also, even if you have elected to install CT as your default Windows shell,
  322. that change won't be made in your SYSTEM.INI file if your installation
  323. failed for any reason.
  324.  
  325. Success!
  326.  
  327.  
  328. Likewise, CTINSTAL doesn't keep you wondering if you had a successful
  329. installation.  This message tells you everything went okay, and reminds you
  330. to exit from Windows and restart it, if you have elected to install CT as
  331. your default Windows shell.  Congratulations!
  332.  
  333. Multiple Configurations
  334. Note that no matter how or where you start CT, you may provide an optional
  335. initialization filespec on the command line after the program name.  Rather
  336. than looking for its default initialization file-CTSHELL.INI-in any of the
  337. places where CT would normally expect to find it, it will instead use the
  338. name you provide as an initialization filespec.  Thus, you may create
  339. multiple configurations, each of which customizes your CT session to work a
  340. different way.
  341.  
  342. Once you have learned how to add new custom features to your menus, for
  343. example, you might want to create a version of CTSHELL.INI that is
  344. specially designed for programming with a particular language.  Or another
  345. version that is designed purely for word processing projects.  Just
  346. remember to provide the whole filespec, including its directory path, since
  347. CT doesn't provide any kind of file name default when you specify the
  348. initialization filespec yourself.
  349.  
  350. To start a session that is customized for programming, you might start CT
  351. with a command like this:
  352.  
  353.     CTSHELL  c:\win\program.ini
  354.  
  355. or to start a word processing session with a customized menu, you might use:
  356.  
  357.     CTSHELL  c:\win\wordproc.ini
  358.  
  359. Of course, either of these would require that you create those xxx.INI
  360. files.  You might begin by copying CTSHELL.INI to the new file name, then
  361. modifying it to suit your purposes.
  362.  
  363. This handy feature also makes it easy for multiple people to use a computer
  364. on which CT is installed.  Each of them can create an initialization file
  365. that suits the way they individually work, and change to it when they're
  366. the one using the computer.
  367.  
  368. One last point should be made here.  As a Windows application, multiple
  369. instances of CT may be run at the same time quite effectively.  All the
  370. instances share the same program code, so it is just the data that differs
  371. among them.  You will find that the first copy of CT requires very little
  372. memory to run in, but that a second and third copy require even less. Don't
  373. be afraid to start several at the same time, using different
  374. configurations, if that turns out to be useful to you.
  375.  
  376.  
  377.  
  378.  
  379.  
  380. Chapter 2 Overview  
  381.  
  382. This chapter provides a quick summary of CT-Shell's overall capabilities.
  383. Don't be concerned that some topics are introduced here and not explained
  384. fully right away.  Later sections of this manual will provide all the
  385. details.
  386.  
  387. From this point on there will be various comments and explanations that go
  388. beyond what you must know in order to use CT effectively, and they are
  389. meant to be additional information for more advanced users.  Those comments
  390. will be placed into footnotes, so that the flow of the material is not
  391. impeded.
  392.  
  393. Generally speaking, you can ignore all footnotes as you read the rest of
  394. this manual, except when you'd like more details about the particular topic
  395. of discussion.
  396.  
  397. Origins
  398. The original DOS version of CT was developed for use in advanced computer
  399. programming courses, as a replacement for the DOS 4.x shell.  It allowed
  400. programming students to change easily and quickly to the directories where
  401. they needed to work, and made routine commands a simple matter of selecting
  402. them from its menu.
  403.  
  404. CT for Windows is still a DOS shell, though it now takes advantage of the
  405. Windows 3.x environment.  You can use it to launch DOS and Windows
  406. programs, to copy, move, list and delete files, and yes-programmers still
  407. use it to build programs.
  408.  
  409. CT Menu Basics
  410. You won't need to reconfigure your menu system to try out CT, so we won't
  411. go into all the details here.  The following few sections provide an
  412. overview to let you know how simple that system is to set up the way you
  413. want it.
  414.  
  415. CT is quite configurable; in fact, every entry in the menu that you see
  416. when you run the program is defined in the CTSHELL.INI file, and you can
  417. change any of them or add more entries, all to suit your needs.  It is
  418. important for you to realize that your menu need not stay just the way it
  419. is, and that you can add entries to run all your favorite programs, change
  420. to the various directories where you do your work, and automate routine
  421. tasks such as disk backups, so you can accomplish them by clicking on a
  422. menu entry.  However, the fastest way to find out what the program is all
  423. about is to start it using it with the supplied sample configuration file.
  424.  
  425. Throughout this manual there will be many mentions of this default
  426. CTSHELL.INI file.  It is designed to make available all the CT features
  427. that are built into the program, and to serve as a guide to creating your
  428. own menu entries.  You'll find much more discussion about customizing your
  429. CTSHELL.INI file in later sections of this manual.
  430.  
  431. Besides menu entries, the CTSHELL.INI file contains values for many options
  432. that CT relies on for its various features.  Phone numbers are stored there
  433. for its directory/dialer, preferences are stored there, and configuration
  434. options such as those that specify how program listings are printed.
  435. However, the most significant features in CTSHELL.INI are the entries that
  436. define the menus, the AUTOEXEC section, and the USER options.  They are all
  437. similar in construction, they all contain five sets of braces, and look
  438. like the following examples:
  439.  
  440. Generic form:      {Entry Name} {DirPath} {ExePath} {Switches} {Keyword}
  441.  
  442. Example 1:        {NOTEPAD Editor} {} {notepad} {!} {}
  443.  
  444. In this first example, the name that will show up in the menu is NOTEPAD
  445. Editor.  Running that program doesn't require changing first to a different
  446. directory, so the second set of braces is left empty.  The third set of
  447. braces contains the name of the program to execute-in this case, it's
  448. notepad.  The fourth set of braces contains any switches, or arguments that
  449. you need to pass to the program when it runs.  Here, the exclamation mark
  450. indicates that we want to edit the current file, the file that is
  451. highlighted in CT-Shell's list of all files in this directory.  Finally,
  452. the fifth set of braces is left empty, because this command doesn't require
  453. a special CT keyword.  You'll see one of those in the third example.
  454.  
  455. To edit a specific file every time-such as to create a menu entry that
  456. allows you to edit the CTSHELL.INI file any time you want to-you would
  457. simply replace that exclamation point with the full path name of the file
  458. you want to edit.  For example, it might be done like this:
  459.  
  460. Example 2:        {Edit CTSHELL.INI} {} {notepad} {c:\windows\CTSHELL.ini} {}
  461.  
  462. In addition to what you've seen so far, you can send a list of all the
  463. tagged files to a program that accepts multiple filename arguments by
  464. putting an pound sign in that field, such as {#}. (Some people call that a
  465. number sign-musicians call it a sharp.  It's the <Shift+3> key on your
  466. computer keyboard.
  467.  
  468. Finally, if you need your command line to include the base filename (of the
  469. current file) without its extension, you can specify that with the
  470. commercial at-sign {@}.  Some users will appreciate that they can create an
  471. expression that has the same name as the current file, but a different
  472. extension.
  473.  
  474. Keywords
  475. Many of the features that CT makes available are based on special keywords
  476. that take the place of program names.  They are implemented this way to
  477. give you complete freedom in redesigning your menu system.  Most entries
  478. that use a keyword do not use any of the other fields, except the first.
  479. This one would activate the dialog that allows you to change your
  480. preferences-those settings that affect how CT does certain things:
  481.  
  482. Example 3:        {Set Preferences} {} {} {} {PREFER}
  483.  
  484. The special CT keywords may be entered in uppercase, lowercase, or mixed
  485. case.  They are all converted internally to uppercase for evaluation.
  486. There are 32 CT keywords in this version of the program; they are all
  487. described in detail in Chapter 6 of this manual, and in the CT on- line
  488. help file.
  489.  
  490. There are just a few CT keywords that are, in fact, used with executable
  491. programs. They include ICON and LOAD, which are synonyms and would cause
  492. the program to be run as an icon, as it would if it were listed in the
  493. LOAD=  entry in your WIN.INI file. FULLSIZE causes a program to be run in
  494. the maximized-full size-state.  RUN causes a program to be run normal size,
  495. as in the  RUN=  entry in your WIN.INI file.  For completeness, the keyword
  496. NORMAL is also included, although that's the default if none of the others
  497. is used.
  498.  
  499. This next example shows how you could create a menu entry that would load
  500. NOTEPAD, feed it the current file, and install it as an icon, ready to be
  501. used at any time:
  502.  
  503. Example 4:        {Edit CTSHELL.INI} {} {notepad.exe} {!} {ICON}
  504.  
  505. Two Kinds of Menu Entries  
  506. To summarize, CT pop-up menu entries can contain two different kinds of
  507. commands: commands that run programs that are not part of CT (such as the
  508. programs that you use every day), and commands that are internal to
  509. CTSHELL.  The latter are implemented using a special set of keywords that
  510. CT recognizes.   The rest of this section will probably mean more to you if
  511. you take a look at your original copy of CTSHELL.INI as we speak.  There's
  512. a menu entry in the Edit menu called CTSHELL.INI, and selecting that entry
  513. will run NOTEPAD to edit that file.  Go ahead and select that entry using
  514. the mouse or standard Windows keyboard methods, but be careful not to
  515. change anything you're not sure about. For now, you'll want to "look but
  516. don't touch."
  517.  
  518. Towards the beginning of the file are several sections that contain options
  519. and preferences.  Move down in the file until you get to the section where
  520. the menus are defined-that should be clearly marked.  It's a section with
  521. lines that begin with the word Item that name individual menus (items in
  522. the main menu), and which are each followed by one or more entries that
  523. look like the examples you saw in the previous section.  The following
  524. paragraphs describe what you'll see in that part of the file.
  525.  
  526. Items
  527. Most of the entries in the sample CTSHELL.INI file use CT keywords, since
  528. they will work exactly the same way on everyone's computer.  Commands that
  529. run programs will usually vary from computer to computer, depending on what
  530. programs each user has installed.
  531.  
  532. However, there are a few entries in the sample CTSHELL.INI file that run
  533. external programs.  There are some programs that we can count on all
  534. Windows users having, so the default menu contains entries that run some of
  535. the Windows utilities.  Since command-line arguments can be supplied for
  536. the programs that are run, we can have entries to allow us to use the
  537. NOTEPAD editor to edit various files, such as the configuration and system
  538. files that Windows and CT use.  Using the same techniques, you'll be able
  539. to create entries that run any of the programs you use on a day-to-day
  540. basis from the menu in CT, with much more versatility than you might
  541. imagine!
  542.  
  543. As you can see if you take a look at it, the external programs in the
  544. sample CTSHELL.INI file have been chosen as ones that every Windows user is
  545. likely to have, so they should also work on nearly all computers.  Don't
  546. get the impression that you can run only Windows programs from within
  547. CTSHELL.  You'll be able to make any program that you can run from within
  548. Windows a part of your menu, including DOS applications.2
  549.  
  550. Directories
  551. Besides running programs, CT makes it easy for you to change to any
  552. directory on your disk drive.  There's an example provided that changes to
  553. your Windows "home" directory, and can take you there from anywhere else on
  554. your system.  When you've learned to customize your installation, you might
  555. want to install an entry to take you to your root directory, to a word
  556. processing work directory, to where you work on spreadsheets, and so on.
  557. There's no arbitrary limit to the number of entries you can have in such a
  558. menu!
  559.  
  560. As you would expect by now, an entry that is intended just to change to
  561. another directory usually has an entry name in the first field, a directory
  562. designation in the second field, and nothing in the remaining three fields.
  563. Here's another example, which would change you to a directory with the path
  564. C:\PIF, perhaps a place where you store all the PIF files for your system.
  565.  
  566. Example 5:        {PIF Directory} {C:\PIF} {} {} {}
  567.  
  568. Your CTSHELL.INI file is an ordinary ASCII text file, and you can modify it
  569. with nearly any editor or word processor, not just with Windows NOTEPAD.
  570. In fact, your own personal editor is probably one of the very first things
  571. you'll want to add to your CT menu, so you can use it whenever you need to
  572. modify a text file.
  573.  
  574. Autoexec
  575. If you look back towards the beginning of your CTSHELL.INI file while you
  576. have it loaded in the editor, you'll see an area marked [AUTOEXEC], that
  577. contains an empty set of braces, just like the ones you've seen used in the
  578. menu items section.  This area allows you to create entries that will load
  579. or run programs automatically as CT is starting up.  Because any number of
  580. entries can be placed here3 , and because command-line arguments may be
  581. provided using all of CT-Shell's powerful features (many of which you
  582. haven't seen yet), this feature of CT far exceeds the usefulness of the
  583. LOAD=  and  RUN=  lines in your WIN.INI file.
  584.  
  585. These autoexec entries are just like the menu entries you saw earlier.  In
  586. fact, people often just copy-and-paste from the lower section when they
  587. want to start a program automatically when CT starts.  You don't really
  588. need an entry name for anything used here in the Autoexec section, but it
  589. doesn't hurt to leave it there as a reminder for you.  CT will simply
  590. ignore the first field.
  591.  
  592. Here is where you're most likely to use the ICON or LOAD keywords, which
  593. you saw earlier.  If you have your CTSHELL.INI file still open to this
  594. section, experiment by entering the following example into this Autoexec
  595. section (just the five sets of braces, of course):
  596.  
  597. Example 6:        {Calculator} {} {calc.exe} {} {ICON}
  598.  
  599. Now when you restart Windows, and it restarts CT, you'll see the Windows
  600. calculator become an icon in the lower left-hand corner of your screen even
  601. before the CT window appears. You'll be able to doubleclick on that icon to
  602. make the calculator available whenever you need it.
  603.  
  604. People often work with a particular set of applications when they use their
  605. computers, and if that applies to you, you'll probably want to customize
  606. this section to load your main applications whenever you start up.  If you
  607. understand it well enough already, go ahead and install another program or
  608. two in the Autoexec section while you're here.
  609.  
  610. User Entries
  611. The third place where you'll find entries that look almost exactly like the
  612. ones you've been working with is in the [OPTIONS] section, in the lines
  613. that begin with  User1= ,  User2= , etc.  These are user-supplied function
  614. key assignments, and the four that you see here become assigned to the
  615. function keys F9, F10, F11 and F12.  The only real difference here is the
  616. way the assignments are made to the specific functions, and this is one of
  617. only two places where you'll use entries like this.  For anyone who is
  618. reading this without the CTSHELL.INI file open in the editor, here's what
  619. those entries look like in the default configuration.
  620.  
  621. Example 7:        User1={Alarm Settings} {} {} {} {ALARM}
  622.                 User2={Listings Config} {} {} {} {CONFIG}
  623.                 User3={Preferences} {} {} {} {PREFER}
  624.                 User4={Printer Setup} {} {} {} {PRINTER}
  625.  
  626. These user-supplied settings allow someone to press F9, for example, to set
  627. the CT alarm clock, or press F11 to set preference options.  Note that all
  628. these entries are also available in the ordinary menu entries (in the
  629. Shells menu), but are duplicated here for convenience. You could replace
  630. these with any other entries that you want to be activated by the press of
  631. the key.  Are you a big solitaire fan?
  632.  
  633. Alarm Entries
  634. Moving all the way back to the beginning of the file, you'll see a section
  635. called [ALARMS], which contains a lot of options that control up to four
  636. event timers that CT provides.  You can configure it to run a backup
  637. program each morning at 3am, for example, or call a remote system and
  638. download a packet of email or database files late at night, when the phone
  639. rates are lowest.
  640.  
  641. You will notice that this section contains some entries that look a lot
  642. like the ones for user entries-but they're used here as events that are to
  643. be executed at a set time.  Normally you would change these settings by
  644. selecting a menu entry that invokes the special CT ALARM keyword, but you
  645. could change them here with an editor, if you preferred that. More details
  646. are provide about this in Chapter 5 and Chapter 6 of this manual.
  647.  
  648. Summary
  649. This overview was meant to introduce you to the CTSHELL.INI file, which
  650. configures and controls all the features that CT is able to offer you.
  651. There is much more in that file that will be described and defined in later
  652. sections, but what you've seen already should give you an idea of the way
  653. CT works, and the many things it can do for you.  It should also have left
  654. you with an appreciation of the degree of configurability CT offers.  You
  655. will be able to customize your installation-easily and quickly!-to make it
  656. just what you need for all your daily work.
  657.  
  658. At this time you should finish looking through CTSHELL.INI and close the
  659. file.  Use the file menu and select Exit, which will cause NOTEPAD to ask
  660. whether you want to save your changes.  Answer yes or no, as appropriate,
  661. and you'll be returned directly to CTSHELL.  Whenever you want to edit
  662. this, or any of the other "system"-type files that are listed in the Edit
  663. menu, you'll know how easy it is to do!
  664.  
  665. If you have made and saved any changes in your CTSHELL.INI file, you can
  666. reload the menu-and put those changes into effect-by pressing the F7
  667. function key.  Of course, they'll take effect the next time you start up
  668. CT, even if you don't reload the menu at this time.
  669.  
  670.  
  671.  
  672.  
  673. Chapter 3 The CT-Shell Window           
  674. This chapter provides a tour of the main CT-Shell window, and the features
  675. that you'll see as you explore it.  It is highly recommended that you start
  676. the program using the supplied sample CTSHELL.INI file, as all these
  677. features can be experienced even before you customize your system.
  678.  
  679.  
  680.  
  681. Note that everything you see above should look the same on your system,
  682. except details like the contents of the files list, the contents of the
  683. path window just above it, and the numbers in the status window in the
  684. lower left corner.    If you are a registered user, your number will appear
  685. in the caption line.  If you are not, an Unregistered message will appear
  686. there.
  687.  
  688.  
  689. Menu
  690.  
  691. When CT is run, at the top of its main window is a menu that shows several
  692. items, such as File, Edit, Directories, and more.  This menu is based on
  693. the entries in the CTSHELL.INI file, and you will later want to revise the
  694. sample file to include your own program choices. As you add entries to your
  695. CTSHELL.INI file, those new options will appear in the CT menu, and you'll
  696. be able to select them from within the program.
  697.  
  698. You've already seen an overview of the menu system, and this manual
  699. contains much more information about menu entries in later sections, with
  700. instructions about how you can customize yours. For now, realize that
  701. you'll have almost unlimited freedom to create such a menu with selections
  702. that are perfect for your system and what you do with it.  Most routine
  703. operations can become entries in your menu, so that a keypress or a mouse
  704. click is all that's needed to accomplish them.
  705.  
  706. In the menu that the sample initialization file creates, you'll find a
  707. number of things in the File menu that you can do with the current file
  708. (the one file that's selected with a dotted outline in the files list
  709. window), and a directory that you can change to in the Directories menu.
  710. The Edit menu contains a number of choices, one of which you have probably
  711. used already to edit your CTSHELL.INI file.  Remember that you can reload a
  712. modified menu by pressing <F7>.
  713.  
  714. The Shells menu offers an ordinary DOS session, and an additional CT window
  715. if you ever need a second one (or a third one, for that matter).  There are
  716. also entries available for most of the CT functions.  The menu labeled
  717. Tagged Files contains many of the same options that are provided for the
  718. current file in another menu, but this one applies those options to a list
  719. of files that you have tagged, rather than just the one current file.  (The
  720. next section in this chapter will cover file tagging in much greater
  721. detail.)
  722.  
  723. Windows is where you'll see some utility options, applications, and system
  724. services that are part of Windows.  If you ever feel you need them, here is
  725. where you can find the Windows Program Manager and the Windows File
  726. Manager. The Help menu provides access to the CT help file, and to some
  727. other options that provide you with information about CT and about your
  728. system.
  729.  
  730.  
  731. Function Keys          
  732.  
  733. There are pre-assigned meanings for many of the function keys, but <F9>
  734. through<F12> have been kept available for the user to define.  In the
  735. sample configuration file, they are assigned to several configuration
  736. options, as you saw when you edited that file.  You can reassign these four
  737. keys to any entries you want.  Perhaps you would prefer them to start up
  738. Backgammon, Chess, Taipei and Solitaire.
  739.  
  740. Here are the default settings for the user function keys, based on entries
  741. in the supplied sample CTSHELL.INI file:
  742.  
  743. [F9]
  744. Allows you to set up to four internal timers that can pop up reminder
  745. messages at preset times, or even execute programs according to an
  746. established schedule.  You can even arrange programs to run at a given time
  747. every day-even if you're working on something else at the time!  More
  748. details are available in a later section of the manual that describes CT
  749. keywords.  Check the ALARM keyword when you need to know more.
  750.  
  751. [F10]
  752. This will allow you to set all of the options that have to do with printing
  753. file listings.  You are able to set preferences like the number of
  754. characters that a line must accommodate, whether to use a fixed or
  755. proportional font, whether headings are to be printed, line number and page
  756. numbers, and more.
  757.  
  758. [F11]
  759. Here is where you can choose many of the options that control CTSHELL.
  760. Many of the entries in the CTSHELL.INI file can be set by activating this
  761. keyword.  For more details, see the keyword PREFER in the later section on
  762. keywords.
  763.  
  764. [F12]
  765. Pressing this one executes the "setup" function from the printer driver
  766. that you have installed.  This is the same setup function that is invoked
  767. by your word processor when you change printer settings there, so it will
  768. look familiar to you at first sight.  More details are available in the
  769. later section on keywords, where PRINTER is explained.
  770.  
  771. Current File/Tagged Files
  772. Much of what CT does with files can be done either with a current file or
  773. with a set of tagged files.  When a file is tagged, its entry in the files
  774. list at the right  is highlighted, letting you know that it has been
  775. selected for an operation.  The first five function keys are devoted to
  776. managing those file tagging operations.
  777.  
  778. As you read this explanation of the function keys, feel free to try them
  779. out by tagging and untagging the files in your current directory.  You
  780. won't cause anything to happen to those files just by doing that, and it's
  781. easier to understand the process if you see it happen, rather than just
  782. reading about it.
  783.  
  784. [F1]
  785. Toggles the tagged/untagged condition of the current file.  If, for some
  786. reason, you want to be sure that no files are tagged, you can turn OFF the
  787. tag for the current file by pressing <F1>.
  788.  
  789. You might want to do something with all the files in the directory except
  790. the current file, for example.  You could do that by selecting the one file
  791. you want excluded from the command, then press <F2> to tag all the files,
  792. and finally press <F1> to untag the current file.
  793.  
  794. [F2]
  795. Tags all the files (but not directories or drives) that are in the files
  796. listing to the right. You can perform any number of operations on a set of
  797. tagged files, such as to copy them all somewhere, delete them all, etc.,
  798. and this keypress tags them all.
  799.  
  800. [F3]
  801. Untags all the files, regardless of how many were tagged, or how they got
  802. that way.  
  803.  
  804. [F4]
  805. Inverts all the tags.  You might want to tag some of the files in the
  806. current directory, copy those tagged files to a floppy disk in drive A:,
  807. then copy the rest of the files in that directory to somewhere else.  <F4>
  808. will tag all the previously untagged files, and untag the ones that were
  809. tagged.
  810.  
  811. If that doesn't sound clear to you, drag the mouse part way down the list
  812. of files (with the left button held down) to tag a few of the files, then
  813. press <F4> several times and see what happens.  You can finish your
  814. experiment with <F3>.
  815.  
  816. [F5]
  817. Tags by name.  If you want to copy all the .EXE and .COM files from the
  818. current directory to a floppy disk, you could press <F5> once, specify
  819. *.EXE when CT asks you for a wildcard filespec, finish the process, then do
  820. it again and specify *.COM.
  821.  
  822. After you press <F5> you will be presented a dialog box (a
  823. question-and-answer panel) that prompts you to enter a filespec for
  824. tagging.  That filespec may include the ordinary DOS wildcard characters,
  825. such as you would use to delete or copy certain files at the DOS prompt.
  826. Both the * and the ? wildcard characters work here as you would expect them
  827. to.4
  828.  
  829. The dialog box that's provided for you to specify a filespec looks like
  830. this:
  831.  
  832.  
  833. The default entry begins with *. on the assumption that you will be tagging
  834. all files that end in a particular extension (the most common use for this
  835. function).  However, you can type any legal DOS wildcard here.  If you
  836. don't click on any entries-thereby changing your tags-you can use this
  837. function several times to tag any odd assortment of related files.
  838.  
  839. [F6]
  840. Returns you to the original path where CT was first started.  As you work
  841. with the program, you will have many reasons to change to other drives
  842. and/or directories. <F6> will always return you to your starting point.
  843. Thus, you will want to consider starting the program originally in a "main"
  844. directory, such as the one in which you're working on a current project.
  845.  
  846. If your AUTOEXEC.BAT file automatically starts Windows for you, you should
  847. consider having it do a CD (change directory) command just prior to
  848. starting Windows. Then, whether CT is started automatically via your
  849. SYSTEM.INI file, or you start it yourself from Windows, you'll always be
  850. able to press <F6> to return to that starting directory.
  851.  
  852. There is a CT keyword called HOME that makes the current directory your CT
  853. "home" directory, rather than the one where you started the program.  If
  854. you work centers around one directory for a while, then changes to another
  855. location, you might want to change the place CT calls home.  The HOME
  856. keyword is implemented in the Directories menu, in the default
  857. configuration.
  858.  
  859. This is a great function key to experiment with!  See if you can find a way
  860. to change to a different subdirectory than the one you started this session
  861. in, and press <F6> to transport you instantly back.  If you can't figure
  862. out how to do it just yet, don't get discouraged.  We're coming to that
  863. part pretty soon.
  864.  
  865. [F7]
  866. Reloads the menu.  You can easily customize your CTSHELL.INI file with an
  867. ordinary text editor, as you have probably already found out.  In fact, one
  868. of the entries in the default EDIT menu item uses the Windows NOTEPAD
  869. editor to change CTSHELL.INI. After you make your modifications, you can
  870. simply press <F7> to load the new version, without needing to exit CT and
  871. restart it.
  872.  
  873. [F8]
  874. Will print a formatted and line-numbered listing of the current or tagged
  875. files.  Note that this description uses the term listing as it is commonly
  876. used in computer jargon,  to refer to a printed (hard-copy) version of the
  877. file contents.  It does not mean a list of the files in the directory.  If
  878. you would like a printed copy of your Windows xxx.INI files, for example,
  879. you might tag them all using <F5> and specifying *.INI as the file spec,
  880. then press <F8> to print them all - assuming, of course, that you have a
  881. printer connected to your computer.  If you press <F8> without first
  882. tagging a set of files, the one current file will be printed.
  883.  
  884. Listings are formatted with a left margin that can be hole-punched.  Lines
  885. of text can be numbered, as can pages, and at the top of each page can be a
  886. header that identifies the file, its creation time and date, and the time
  887. and date when it was printed. Refer to two keywords, PRINTER and CONFIG,
  888. which are explained in Chapter 6, for more information about setting up
  889. your printer driver and changing the format of your file listings.
  890.  
  891. [F9]  through  [F12]
  892. Are reserved for the user.  In the sample CTSHELL.INI file they are
  893. assigned as mentioned above, but you can easily reassign them to other
  894. tasks that you want to be able to invoke with a keypress.  These options
  895. are explained more fully in later sections of this documentation. 5
  896.  
  897.  
  898. [ESC]
  899. The escape key is used to change to the parent directory.  So that the same
  900. operation is easy to accomplish with the mouse, the <Esc> key is
  901. represented on the screen along with the function keys.
  902.  
  903.  
  904. [Command Line]
  905. Not a function key, this is a screen-oriented way to open up the CT command
  906. line, a place where you can type commands to be run by CT, Windows, or the
  907. DOS command processor.  Another way to open the command line is with the
  908. <Shift+Enter> keypress.
  909.  
  910. The display of these keys at the left of the CT window allows you to click
  911. on a button with the mouse, to accomplish the same thing as pressing the
  912. keys themselves.  Thus, whether you prefer using the keyboard or prefer
  913. using the mouse, you can have it your way.
  914.  
  915. Status Display        
  916.  
  917.  
  918. Below the listing of the function keys is a small window that displays the
  919. current date and time, the amount of RAM that is available (including
  920. virtual memory if you're running Windows in Enhanced 386 mode) and how much
  921. room is left on the current disk drive.  The latter two measurements are
  922. displayed in megabytes, to the nearest hundredth, unless either one drops
  923. below one megabyte.  If that happens, the display changes to kilobytes
  924. instead.
  925.  
  926. There is a problem with constantly monitoring the disk space on removable
  927. and network drives, as every time the remaining space is checked the disk
  928. has to be accessed. That wastes time, and results in floppy disk drives
  929. never shutting off completely.  CT uses some clever programming to update
  930. such drives at all the right times, such as when a file copy or file move
  931. has been done that might change the remaining space.  Otherwise, CT leaves
  932. those drives alone.
  933.  
  934. That  works great unless some other program changes the drive capacity.  On
  935. a local hard drive, CT will even take that in stride, properly updating
  936. the remaining space.  On a floppy drive or a network drive, however, such
  937. access would escape CT-Shell's attention.  If you ever suspect that another
  938. program might have changed the remaining space on a network or floppy
  939. drive, you can force an update of this field by doubleclicking the mouse on
  940. the word "Disk", just to the right of this display.
  941.  
  942.  
  943. Current Path
  944.  
  945. Just under the menu bar, and above the files display window, is the current
  946. path.  As you navigate around your disk drive, you can glance here to
  947. discover quickly where you are. Watch this as you press <Esc> to move up in
  948. your directory tree, and as you press <F6> to return to your starting
  949. point.
  950.  
  951. You can also click the mouse on any part of the path that's displayed, and
  952. you'll change immediately to that directory.  Thus, you can move upwards in
  953. the directory tree by pressing <Esc> to move to the parent directory, or
  954. jump directly to a directory that is more than one level higher, by
  955. clicking on it in the path display.
  956.  
  957. Directory changes made this way are "permanent" in the sense that CT will
  958. stay, and continue to work, in the new directory that you've chosen.
  959. However, you are still able to press <F6> at any time to go directly to the
  960. original drive and directory where CT was started.
  961.  
  962. Changing directories this way requires only a single click of the mouse,
  963. however if you forget and doubleclick instead, no harm will come of it.
  964.  
  965. Files Window
  966. The display of files contains considerable information that is always
  967. conveniently visible. One of the biggest advantages of a visual shell over
  968. an ordinary command line is that so much more information can be made
  969. available at all times.
  970.  
  971. Rather than trying to remember which file you came here to copy, you can
  972. see which file it was.  You can tell this without needing to issue a DIR
  973. command, and unlike a DIR command, the file names here won't scroll past
  974. faster than you can read them.  You can move both upwards and downwards in
  975. this list of files using the keyboard cursor keys, or by clicking the mouse
  976. on the scroll bar to the right of the window.
  977.  
  978. This section will explain the information that is displayed here, and tell
  979. you how you can change nearly all of it from within CT:
  980.  
  981.  
  982. The largest window contains a display of the files in the current
  983. directory.  Information displayed for files includes name, extension, size
  984. in bytes, last modified date, last modified time, and attributes.
  985.  
  986. Deleting Files
  987. If you press <Del> , the current file or an entire set of tagged files can
  988. be deleted.  You are prompted for confirmation before that happens, of
  989. course!  There are additional deletion options, including a CT keyword
  990. called DELDIR.  (See Chapter 6 for a reference to CT keywords that you can
  991. use in your menu entries.)  This keyword is implemented in the sample
  992. CTSHELL.INI file in the File menu item, and called Kill Directory.
  993.  
  994. If you are doing disk maintenance and would like to delete an entire
  995. directory full of files (and possibly other subdirectories within it as
  996. well), first make sure that the current file is the directory you want to
  997. delete, then select this menu entry.  You'll be asked to verify deletion of
  998. the directory with a dialog box which is worded to get your attention.
  999.  
  1000. Another keyword and command that can delete files is SHRED.  This one first
  1001. writes a pattern of bits to the file that renders it useless even if
  1002. someone manages to undelete it.  Thus, SHRED should be used in place of DEL
  1003. where data security is important, however,  it is slower than DEL because
  1004. fo the extra work involved.
  1005.  
  1006. The sections that follow each describe one of the components of a line in
  1007. the files display window, and what you can do with that information.  In
  1008. most cases, you are able to change it (except for the file size), and
  1009. you'll find directions here for doing that.  With a couple of obvious
  1010. exceptions (such as deleting a file or directory), you will probably want
  1011. to try out the various keywords, commands, and menu options that are
  1012. described here, as you read about the files window.
  1013.  
  1014. Name
  1015. Remember, directory names are displayed in uppercase, to distinguish them
  1016. from file names.  The filename extension, if any,  is included in this
  1017. field.  In addition, following the directory and file listings, the name
  1018. field will display the various disk drives that are available on the
  1019. system.
  1020.  
  1021. If you would like to change the name of a file or a directory, you can
  1022. easily do it with the CT RENAME keyword.  (See Chapter 6 for a reference to
  1023. CT keywords that you can use in your menu entries.)  This keyword is
  1024. implemented in the sample CTSHELL.INI file in the File menu item, and
  1025. called Rename.
  1026.  
  1027. Size
  1028. The size in bytes of the file is shown here.  You are also able to find out
  1029. how many total bytes are included in a set of files that have been tagged,
  1030. by using one of the special CT keywords, TAGGED, which is explained in a
  1031. Chapter 6.  This keyword is implemented in the sample CTSHELL.INI file in
  1032. the Tagged Files menu item, and called Files Tagged.
  1033.  
  1034. You are also able to discover how many subdirectories, files, and bytes a
  1035. directory contains, using the CT DIRSIZE keyword.  This keyword is
  1036. implemented in the sample CTSHELL.INI file in the File menu item, and
  1037. called Size of Directory.
  1038.  
  1039. Date
  1040. The date when the file was last modified (created or updated) is shown
  1041. using the conventional mm/dd/yy format.
  1042.  
  1043. Both the time and the date for a file or a group of tagged files can be
  1044. changed using the CT keyword, SETDATE.  This keyword is implemented in the
  1045. sample CTSHELL.INI file in the Tagged Files menu item, and called Set File
  1046. Date/Time.
  1047.  
  1048. To change the date/time for any of the files in the current directory,
  1049. first tag the one or more that you want to change, then select the menu
  1050. item Tagged Files.  Click on the entry named Set File Date/Time to open a
  1051. dialog box that provides a place for you to enter a new date and time.
  1052.  
  1053. Time
  1054. CT displays the file's creation time in its full resolution, which is to
  1055. within two seconds. DOS displays only hours and minutes when you use its
  1056. DIR command, although the number of seconds (to the nearest even number)
  1057. are stored by DOS in the disk directory.6
  1058.  
  1059. The time applied to a file is of particular importance to programmers who
  1060. work with a program maintenance utility called MAKE, or a variation of it.
  1061. MAKE tests file date/timestamps to determine whether one type of file is
  1062. newer than the type of file that is created from it, and rebuilds the
  1063. target file if necessary.  Sometimes it is important to give a file a
  1064. date/time that is newer than another file, and there exists on many systems
  1065. a small utility program whose only purpose is to change a file's date/time
  1066. to the current date/time.
  1067.  
  1068. CT has two keywords that provide this service, called TOUCH (which changes
  1069. only the current file) and TTOUCH (to update a list of tagged files).  They
  1070. are both assigned to menu entries named Touch, in the appropriate pop-up
  1071. menus in the sample CTSHELL.INI file.
  1072.  
  1073. Attributes
  1074. The file attributes are displayed as a series of characters which may
  1075. include any of the letters RHSDA, for Read/only, Hidden, System, Directory,
  1076. and Archive, respectively.
  1077.  
  1078. These attributes indicate that a file has certain properties which may
  1079. affect how you and DOS can access and use it.  Following this listing of
  1080. the attributes are directions showing how you can use CT to change file
  1081. attributes.
  1082.  
  1083. Read/only
  1084. A file with the read/only attribute cannot be modified, overwritten or
  1085. deleted.  DOS simply won't allow the operation to happen, unless the
  1086. read/only attribute is first re- moved.7
  1087.  
  1088. Hidden
  1089. Hidden means that a file won't show up in an ordinary DIR command from the
  1090. DOS command processor, and the DOS COPY command won't copy a hidden file.8
  1091.  
  1092. Note that you can even use CT to hide an entire directory, so that others
  1093. who use the same computer won't realize it's even there (unless they also
  1094. use CT or another utility that displays hidden files).  You can still
  1095. change to the hidden directory, execute programs from it, and edit files in
  1096. it-by specifying the directory name in your commands-yet it remains
  1097. invisible to DOS.
  1098.  
  1099. System
  1100. System means the file is a special type which is part of DOS itself.
  1101. Examples of this type of file include the two parts of DOS that you'll find
  1102. in your root directory, named differently depending on which version of DOS
  1103. you're using.  CT will display these two files with the attribute letters
  1104. RHS.. (or maybe just .HS.., depending on your version of DOS) showing that
  1105. they have two or three of the attributes explained so far.
  1106.  
  1107. As an exercise, you might change to your root directory as you read this,
  1108. and identify those files on your system. This is an attribute that you're
  1109. not likely to assign to a file, unless you're a systems programmer who is
  1110. writing a replacement for part of the operating system.  Still, you should
  1111. know what it means, and you should be careful not to delete or accidentally
  1112. damage any file that has the system attribute.
  1113.  
  1114. Directory
  1115. Directory makes the file a subdirectory, rather than a data file or a
  1116. program.  In the DOS system, subdirectories are special files that contain
  1117. information about the files that are stored under them.
  1118.  
  1119. As is the case with other attributes, this one implies what can and can't
  1120. be done with a file so identified.  For example, you can change to a
  1121. directory, but you can't change to a file.  You can TYPE or DEL a file, but
  1122. you can't do either with a directory.9
  1123.  
  1124. Archive
  1125. The archive attribute means that a file has been changed since the last
  1126. time it was backed-up.  Most backup programs, such as the DOS BACKUP
  1127. command and commercial programs like CPBACKUP from Central Point Software,
  1128. Inc., use this attribute to determine which files need to be processed when
  1129. a differential backup is done.10
  1130.  
  1131. When you glance at your CT files display, you can easily see which files
  1132. have been modified since your last backup.  When a great number of files
  1133. have the archive attribute displayed, or whenever particularly important
  1134. ones do, you should begin to feel uncomfortable enough to do another
  1135. backup!
  1136.  
  1137. Changing Attributes
  1138. Besides displaying the attributes, CT makes it easy for you to change most
  1139. of them.  You can't turn a program into a directory, but you might want to
  1140. make a file read/only, for example, to prevent its being accidentally
  1141. deleted or overwritten.
  1142.  
  1143. You can alter the attributes for a single file or for a group of tagged
  1144. files if your CTSHELL.INI file contains a menu entry that uses the keyword
  1145. ATTRIB (see the later section on CT keywords for more information about
  1146. ATTRIB and other CT keywords). The sample CTSHELL.INI file contains entries
  1147. for both the File and Tagged Files menus that implement this keyword.
  1148.  
  1149. When you invoke that menu entry, CT will present a dialog box that lets you
  1150. determine which attributes are to be turned on and which ones are to be
  1151. turned off.  The attributes that you select are not added to the existing
  1152. ones, but replace the existing ones. Thus, be sure you select all the ones
  1153. that should apply.  You can turn off all the attributes by leaving them all
  1154. unchecked, and selecting [OK].
  1155.  
  1156. This would be an excellent time to experiment with this feature.  If you're
  1157. in your Windows directory still, select the file 3270.TXT.  Use the
  1158. Attributes entry in the File menu to change that file to read/only status.
  1159. Now select 3270.TXT again and press the <Del> key to delete it.  Go ahead
  1160. and confirm the deletion, and see what happens.
  1161.  
  1162. Disk Drive Display
  1163.  
  1164.  
  1165. At the end of the files listing you'll find entries for all the disk drives
  1166. in your system. Each is identified as to type and each (except floppies)
  1167. has its current remaining capacity.
  1168.  
  1169. The capacity of floppy disks is not displayed, as those disks are
  1170. removable, and Windows would report constant disk errors if CT kept trying
  1171. to access empty drives.  If you want to know how much room is left on a
  1172. floppy disk, simply change to that drive by doubleclicking on its entry.
  1173. You can easily change back to the current drive the same way afterwards, or
  1174. by pressing <F6> to return to your starting drive/directory.  CT always
  1175. displays the free space on the current drive, even if it is a floppy disk,
  1176. so you'll want to make sure there is a disk in the floppy drive before
  1177. making that your current drive.
  1178.  
  1179. If you have a complex computer system-perhaps one with a lot of network
  1180. drives in addition to the local ones-you may not want CT to monitor all the
  1181. drives all the time. For one thing, whenever you change directories, all
  1182. those drives have to be queried, to find out how much space remains, so
  1183. that can be displayed here.  There is an option available through your
  1184. PREFER keyword that allows you to declare a series of drive letters that
  1185. you want CT to ignore.  You can also modify the  IgnoreDrives=  setting in
  1186. the [OPTIONS] section of your CTSHELL.INI file, if you want.  To ignore all
  1187. drives higher than drive E:, for example:
  1188.  
  1189.         IgnoreDrives=FGHIJKLMNOPQRSTUVWXYZ
  1190.  
  1191. Note that this does not keep you from accessing those drives.  They simply
  1192. will not be listed in this display.  You can still change to a drive by
  1193. typing its letter at the CT command line the same way you would do it from
  1194. the DOS command line.  Also, you can always change to another drive by
  1195. pressing a key combination that includes <Shift+Ctrl> plus the letter of
  1196. the drive you want to change to.  To change to drive D:, for example, you
  1197. could press <Shift+Ctrl+D>.
  1198.  
  1199.  
  1200.  
  1201. Extended Selections
  1202.  
  1203.  
  1204. CT-Shell's file window is programmed to allow extended selections.  Thus,
  1205. you'll find that you can tag multiple files by holding down the <Shift> or
  1206. <Ctrl> keys as you tag with the mouse.  <Shift> will allow you to extend a
  1207. selection to include contiguous files (a group all together) and <Ctrl>
  1208. will let you select any files, even if they are separated by others that
  1209. you don't want tagged.
  1210.  
  1211. You can also mark a series of files using the keyboard.  Press the key
  1212. combination <Ctrl+Shift> and move the bar up or down with the keyboard
  1213. cursor keys.  As the highlight bar moves up or down, the files that it
  1214. passes over will become tagged, just as if you'd dragged the mouse over
  1215. them.
  1216.  
  1217. Doubleclicking Entries
  1218. Things happen when you doubleclick the mouse on an entry in the files list!
  1219. (You may also move the highlight bar to an entry and press <Enter>.)  When
  1220. you do either, what happens will depend on what kind of file is selected:
  1221.  
  1222. Directories
  1223. If it is a directory, then you will change to that directory.  This is
  1224. another of CT-Shell's "permanent" directory changes, and it will continue
  1225. to work in the new directory until you change again.  However, you are
  1226. still able to return to your original startup directory by pressing <F6> at
  1227. any time.
  1228.  
  1229. CT lists all the directories first in the file list, to make it easier to
  1230. travel around your drive by clicking on directory entries.  Be reminded
  1231. that you can use the <Esc> key to change to the parent directory at any
  1232. time, and that you can click the mouse in the path window (just above the
  1233. files list) to change to any place in the path above this directory, up to
  1234. the root directory.
  1235.  
  1236. Executable Files
  1237. If it is an executable file (to CT, that means .EXE, .COM, .PIF or .BAT)
  1238. you will execute that file.  This provides a convenient way to run programs
  1239. that are in the current directory, and which require no command-line
  1240. arguments.  Those that reside elsewhere, and those that do require
  1241. command-line arguments should be installed as menu entries instead.  See
  1242. the later sections for more information about setting up your menu to run
  1243. programs.
  1244.  
  1245. DOS programs (DosApps) that have a .PIF file (Program Information File)
  1246. available somewhere in the path will be executed according to that .PIF
  1247. file, so if you need to customize the way your DosApps run, simply create a
  1248. .PIF and keep it available in a directory that's part of your DOS
  1249. executable path.11
  1250.  
  1251. You can use the Windows utility program named PIFEDIT.EXE to create and
  1252. edit .PIF files, and your Windows manual contains more information about
  1253. these files and how to modify them.
  1254.  
  1255. Programs that were designed to be run under Windows (WinApps), are executed
  1256. just as they would be from the Windows Program Manager or the Windows File
  1257. Manager.
  1258.  
  1259. Known Extensions
  1260. CT checks the [Extensions] profiles in your WIN.INI file, and can "run"
  1261. files that are not themselves executable, but for which you have provided
  1262. an extension in your WIN.INI file.  Thus, it is likely that if you
  1263. doubleclick the mouse on a .WRI file, you'll start up Windows Write and can
  1264. edit that file.  If you doubleclick on a .CRD file, you'll start up the
  1265. Cardfile database program, etc.12
  1266.  
  1267. Drive Specifications
  1268. If it's one of the entries at the end of the files list that  describes a
  1269. disk drive in your system, doubleclicking on it will change to that drive,
  1270. which will then become the default, or current, drive.  As in many earlier
  1271. examples, CT will continue to work in the new drive/directory until you
  1272. change away from it, but you can instantly return to your original startup
  1273. directory by pressing <F6>.
  1274.  
  1275. It's worth repeating that there are three ways to change to another drive,
  1276. since that's something everyone needs to do so often.  If you have the
  1277. command line open (see Chapter 4, next), you can change to another drive
  1278. the same way you would at a DOS prompt-by entering the drive letter,
  1279. followed by a colon, as a command.
  1280.  
  1281. If the drive you want to change to is visible on the screen, the
  1282. doubleclick method just described here is quite convenient.  But the
  1283. easiest of all, especially if your hands are on the keyboard, is to type
  1284. <Shift+Ctrl> plus the letter of the drive you want to change to.  For
  1285. example, to change to drive D:, you could simply type <Shift+Ctrl+D>, and
  1286. CT-Shell will instantly change to that drive.
  1287.  
  1288.  
  1289. Chapter 4 CT-Shell Command Line
  1290. An extremely important CT feature is its command line, with the only
  1291. visible manifestation of that feature in the main window a button named
  1292. [Command Line] that appears just below the function keys to the left.  To
  1293. access the command line without using the mouse, simply press the key
  1294. combination <Shift+Enter>.
  1295.  
  1296. The CT-Shell Command Line
  1297.  
  1298. DOS Commands
  1299. Most common DOS commands like CD, RD, MD, COPY, and DEL are handled inter-
  1300. nally in CT, without using the DOS command processor at all.  Most of the
  1301. DOS commands that CT handles offer an enhancement over their DOS
  1302. counterparts.  For example, the CD command will allow you to specify a
  1303. drive as well as a directory to change to.  RD, MD and DELDIR all allow you
  1304. to specify multiple arguments.  Thus, the command:
  1305.  
  1306.     MD bin init include lib
  1307.  
  1308. would create four subdirectories in the current directory, with one
  1309. command.
  1310.  
  1311. The COPY command uses a buffer up to 16 times the size of the one DOS uses,
  1312. allowing many files to be copied with only one disk read and one disk
  1313. write, for better efficiency.
  1314.  
  1315. If you enter a DOS command that CT cannot handle itself, it will pass that
  1316. command along to your DOS command processor for evaluation.  Fortunately,
  1317. all the most-often-used DOS commands can be dealt with smoothly within CT,
  1318. without involving the DOS command processor at all.
  1319.  
  1320. However, if a command involves the DOS redirection operators ( <, >, >>) or
  1321. the pipe operator ( | ), the whole command is passed to DOS immediately, as
  1322. is any command to run a .BAT file or a .COM file.  (Windows executables are
  1323. all .EXE files.)
  1324.  
  1325. Many users will prefer to change working drives by first scrolling to the
  1326. listing of drives at the bottom of the files list and then selecting a
  1327. drive using the mouse or the keyboard.  That's the way many Windows
  1328. programs let you change to another drive, such as to locate and process a
  1329. file.  However, you are also free to enter a drive letter, followed by a
  1330. colon, as a command on the CT command line, just as you would at a DOS
  1331. command line. Such a drive change is handled internally by CTSHELL.  (There
  1332. is an even easier way to change drives-by pressing a key combination that
  1333. includes <Shift+Ctrl> plus the drive letter.)
  1334.  
  1335. CT Commands
  1336. Some additional CT commands may be issued from this command line as well:
  1337.  
  1338. Deldir
  1339. You can delete a directory, and all the files in it with this command.  In
  1340. fact, it's one of the CT commands that accepts multiple arguments, so if
  1341. there are a number of subdirectories that you want to remove, you can
  1342. handle them all with one command.
  1343.  
  1344. This command actually invokes the same internal process that is used for
  1345. the DELDIR keyword, which has already been described.  You are prompted two
  1346. times for each subdirectory that is to be deleted, to be sure you don't
  1347. delete one by accident.
  1348.  
  1349. This command deletes all the files in the directories you ask to delete.
  1350. Even if those files have the read/only attribute, they will be deleted.  CT
  1351. will remove that attribute if necessary, in order to delete the files.
  1352.  
  1353. Find
  1354. It often happens that someone needs to edit one of the many text files that
  1355. are part of a programming or word processing project, and can't remember
  1356. for sure which file contains the text.  The FIND keyword is designed to
  1357. find a string (of characters) wherever it may occur within any of the files
  1358. in the current directory.
  1359.  
  1360. Use quotation marks to enclose strings that include embedded spaces.  This
  1361. example shows how you might look through the current directory to find the
  1362. places where you have used the function named "wsprintf":
  1363.  
  1364.  
  1365. Note that the command itself (FIND) is not case-sensitive, and may be
  1366. entered in uppercase or lowercase.  However, the string that is being
  1367. sought is case sensitive. You'll want to be sure your <CapsLock> is not on
  1368. when you look for a string that contains lowercase letters!
  1369.  
  1370. If that string is found in any of the files in the current directory, a
  1371. list box like the one shown just below will be created that contains all
  1372. the matches that were found.  All leading spaces are removed from the lines
  1373. before adding them to the list box, so that you can view more of the
  1374. significant parts of that line.  Up to the first 75 characters are included
  1375. (starting with the first non-space character), which should be enough to
  1376. help you verify whether that line is the one you're looking for.  The
  1377. entries are alphabetical according to file name, and in line-number order
  1378. within a file.
  1379.  
  1380.  
  1381. One of CT-Shell's most useful features is available to you at this point:
  1382. if you select one of the entries (using either the mouse or keyboard
  1383. methods) that file will be loaded into your editor automatically.  Even
  1384. better than that, if your editor is one that will accept a line number on
  1385. the command line along with the file name, you can even load the file and
  1386. jump directly to the line that contains the string you asked CT to find!
  1387.  
  1388. For you to edit one of the files that was found this way, your CTSHELL.INI
  1389. file must have an entry in its [EDITOR] section called EditorName that
  1390. identifies your editor by name, so CT will know what program to run.  The
  1391. sample CTSHELL.INI file contains:
  1392.  
  1393.     EditorName=NOTEPAD.EXE 
  1394.  
  1395. as a default, but most serious programmers will prefer to change that name
  1396. to another editor.
  1397.  
  1398. For CT to be able to load the file and jump directly to the line where the
  1399. string was found, your editor must be capable of such a feat in the first
  1400. place, and you must also include an entry in the [EDITOR] section of
  1401. CTSHELL.INI called EditLine that shows how to give such a command to your
  1402. editor.  The sample CTSHELL.INI contains:
  1403.  
  1404.     EditLine=   
  1405.  
  1406. which disables the feature, since the default NOTEPAD.EXE editor can't
  1407. handle line numbers in this manner.  There are more details and examples in
  1408. Chapter 5 of this manual, which is the reference to the entries in
  1409. CTSHELL.INI.
  1410.  
  1411. Note that you can also provide these settings (and many others) in the
  1412. Preferences dialog box that is presented when you invoke the PREFER
  1413. keyword.  In the default configuration, remember that PREFER is bound to
  1414. the F11 function key for easy access.
  1415.  
  1416. FormFeed
  1417. It is quite often useful to send a command to the printer that tells it to
  1418. eject the current page.  For example, if you use the COPY command to send a
  1419. text file to your printer, it will probably stop printing somewhere in the
  1420. middle of the last page.  With the FORMFEED command, you can easily tell
  1421. your printer to eject that page.
  1422.  
  1423. There is also a FORMFEED keyword, so this feature can easily be implemented
  1424. from a menu item.  If you happen to have the command line open, however,
  1425. and have just copied a file to the printer, it may be more convenient for
  1426. you to type the FORMFEED command instead of looking for the menu entry.
  1427.  
  1428. Shred
  1429. This command first overwrites every byte in a file with a pattern that
  1430. leaves it unusable, then deletes the file.  Thus, even if someone manages
  1431. to undelete a file that has been shredded, it will be useless.  This takes
  1432. longer than simply deleting a file, so it should be reserved for those
  1433. times when data security is an issue.
  1434.  
  1435. Because the effect of this command cannot be reversed, it does not accept
  1436. wildcard arguments on the command line.  You may shred multiple files with
  1437. one command, but you will have to explicitly name each file that is to be
  1438. shredded.
  1439.  
  1440. Move
  1441. If you want to move a file quickly from one place to another, rather than
  1442. copying it, you can use the CT MOVE command.  The syntax is just like the
  1443. ordinary COPY command, but the move is much faster.
  1444.  
  1445. Where
  1446. If you want to know where a file is on the disk, you can use the WHERE
  1447. command. Start the command line, then issue the command like this:
  1448.  
  1449.  
  1450. where you type in the name of the file you want to find and its extension,
  1451. if any.   The customary DOS wildcard characters are acceptable here, so you
  1452. could search for files such as:
  1453.  
  1454.     where *.dbf
  1455.  
  1456. or 
  1457.  
  1458.      where copy??.bak
  1459.  
  1460. If you want to locate all the files with a given file name and any
  1461. extension, you can simply enter it as FILENAME.  If there is no dot in the
  1462. name that's entered (and thus no extension has been used) CT will
  1463. automatically append the .* to the name.   If you actually do want to
  1464. locate a file named FILENAME that does not have an extension, you can
  1465. provide just a dot for an extension.  That tells CT not to add the .* to
  1466. the end.
  1467.  
  1468. After you've provided the name, the mouse cursor will change temporarily,
  1469. letting you know that CT is busy as it searches the current disk drive for
  1470. that file.  CT will display information in a list box about all the
  1471. matching files that it finds:
  1472.  
  1473.  
  1474. You even have the option to select one of those entries and go straight to
  1475. that directory.   Just doubleclick on the entry, or select it with a single
  1476. mouse click and afterwards click on the [OK] button.  Alternatively, you
  1477. can select it with the keyboard cursor keys and press <Enter> to complete
  1478. the command.  If you have selected an entry and decide afterwards not to
  1479. change to that directory, simply click on the [Cancel] button.
  1480.  
  1481. There is some potential for confusion where the FIND and WHERE commands are
  1482. concerned.  After all, you might think to use FIND to find a file, and
  1483. WHERE to locate where a string is.  About the only way to keep them
  1484. straight is to remember that the DOS command FIND looks for a string within
  1485. a group of files, and CT-Shell's FIND command does the same.
  1486.  
  1487. Also, there have been a number of public domain utility programs developed
  1488. over the years that are named WHERE or WHEREIS, and are used to locate
  1489. files on a drive, as does the CT WHERE command.
  1490.  
  1491. Run Mode
  1492. If you are issuing a command to run a Windows application, you can select
  1493. from the options in the upper right-hand corner that allow you to run that
  1494. program as an icon, or full-screen, or normal size.  (Actually, the default
  1495. is normal, if you don't select either of the others.)
  1496.  
  1497. This set of options has no effect on DOS commands, or when you run DOS
  1498. programs.  The latter are run according to their PIF files, if such exist,
  1499. so the place to determine whether a DosApp is to be run in a window or full
  1500. screen is in the PIF.
  1501.  
  1502. Command Recall
  1503. CT maintains an internal doubly-linked list of previous commands, and lets
  1504. you scroll through them to select a command to issue again.  Each command
  1505. that you type at the command line is added to the list, and there are three
  1506. options for deleting old commands that you no longer want to scroll
  1507. through.
  1508.  
  1509.  
  1510. After one command has been given at the command line, you'll see a [Delete]
  1511. button the next time you invoke the command line.  That will allow you to
  1512. delete the earlier command.  Perhaps you misspelled a file name, and the
  1513. command wasn't successful, and you don't want to accidentally issue that
  1514. same command again.
  1515.  
  1516. After more than one command has been issued, you'll see options that let
  1517. you delete from the current command upwards, from the current command
  1518. downwards, or just the current command itself.  The default is always to
  1519. delete just the current command, so you don't accidentally remove several
  1520. that you'd like to use again later.
  1521.  
  1522. Whenever you start a CT command line, you can use the <Up> and the <Down>
  1523. keyboard cursor keys to scroll through the list of past commands.  When
  1524. you've found the one you want to use, you can press <Enter> to accept it,
  1525. or click the [OK] button with your mouse.  If you prefer to select from the
  1526. list itself, just click the mouse on the small downwards-pointing arrow to
  1527. the right of the command line itself.  That will open the associated list
  1528. box, showing you any existing commands that are available to be reused.  If
  1529. there are none, the box will be empty.
  1530.  
  1531.  
  1532. Chapter 5 CTSHELL.INI Reference
  1533.  
  1534. The real power of CT-Shell is unleashed when you make a few simple
  1535. modifications to your CTSHELL.INI file, to customize it for your system and
  1536. for the way you work.  This chapter describes the various areas in that
  1537. file that can be modified by the user.
  1538.  
  1539. Options are recorded there for future sessions, and all the special menu
  1540. entries that you create are stored there.  As long as CTSHELL.INI is stored
  1541. in the current directory, a directory along your DOS path, or in your
  1542. Windows "home" directory, CT will be able to find it when it needs the
  1543. file.  It is suggested that you keep CTSHELL.INI in your Windows home
  1544. directory with your other important xxx.INI files.
  1545.  
  1546. Accessing CTSHELL.INI
  1547. Far removed from the programming that is required to customize some similar
  1548. products, CT- Shell lets you work with simple objects (characters like !
  1549. and #) that take on special meaning when you use them in your commands.
  1550. Even those who have never written a program, a script, or a macro are
  1551. encouraged to give this a try.
  1552.  
  1553. Your CTSHELL.INI file is an ordinary ASCII text file that can be edited
  1554. with nearly any editor or word processor.  Although it isn't a powerful
  1555. editor, the Windows NOTEPAD editor is fine for the light-duty work of
  1556. customizing your initialization file.
  1557.  
  1558. If you followed earlier recommendations, your CTSHELL.INI file is probably
  1559. stored in your Windows directory.  If that's the case, you'll be able to
  1560. edit it quite easily using the CTSHELL.INI File entry from your Edit menu,
  1561. allowing you to make changes in the menu system and add new entries.  If
  1562. you have stored it somewhere else, simply change to that directory, select
  1563. the file (make it the current file), and select Notepad Editor from the
  1564. same menu.
  1565.  
  1566. In short, do whatever's necessary to edit your file and save the new copy.
  1567. You can put your menu entry changes into effect afterwards by pressing the
  1568. <F7> function key, or by exiting and restarting CTSHELL.
  1569.  
  1570. Be aware that there are several CT dialogs that also affect portions of
  1571. your CTSHELL.INI file, especially those sections that affect the way
  1572. options are implemented (as opposed to menu items and entries).  Note that
  1573. any of these other option settings can always be changed by editing
  1574. CTSHELL.INI, but usually the dialogs provide the easier way to make such
  1575. choices.
  1576.  
  1577. For example, the way your printed listings are formatted is affected by a
  1578. dialog that is invoked by the CONFIG keyword.  The alarm/event settings are
  1579. affected by a dialog that is invoked by the ALARM keyword.  The PREFER
  1580. keyword invokes a dialog that allows you to set a great number of
  1581. preferences, all of which will be explained in the sections that follow.
  1582.  
  1583. The following sections describe the various parts of your CTSHELL.INI file,
  1584. and what changes you might want to make to each of them.  Where those
  1585. changes can be made with a dialog, it will be identified, along with the CT
  1586. keyword that invokes it.
  1587.  
  1588. [Alarm]
  1589. This section is new for version 2.0 of CTSHELL.  It contains the
  1590. controlling data for up to four event timers that work like alarm clocks.
  1591. Timers are a limited resource in Windows, with only 16 available for all
  1592. programs that need to use them.  You might be concerned that CT uses more
  1593. than its share of timers, but don't worry-it uses only one.  The event
  1594. timing is handled by the same part of the program that updates the time in
  1595. the status display.
  1596.  
  1597. The default CTSHELL.INI file does not contain data for any events or timed
  1598. messages.  What you'll see at the beginning of this file is an [ALARM]
  1599. section that looks like this:
  1600.  
  1601.     [ALARM]
  1602.     Enabled1=0
  1603.     Enabled2=0
  1604.     Enabled3=0
  1605.     Enabled4=0
  1606.     Time1=00:00
  1607.     Time2=00:00
  1608.     Time3=00:00
  1609.     Time4=00:00
  1610.     Message1=
  1611.     Message2=
  1612.     Message3=
  1613.     Message4=
  1614.     Event1=
  1615.     Event2=
  1616.     Event3=
  1617.     Event4=
  1618.  
  1619. The easiest way to set up a timed event, or to have CT display a reminder
  1620. of some kind at a predetermined time, is to use the ALARM keyword to invoke
  1621. its dialog.  There is a graphic of that dialog later in Chapter 6, which is
  1622. about CT keywords.
  1623.  
  1624. [Autoexec]
  1625. This section has already been thoroughly documented in earlier sections of
  1626. this manual.  It contains a series of entries (in the usual menu entry
  1627. format), that determine the programs that will be started automatically
  1628. when CT is first started.  Remember that you can use the ICON or LOAD
  1629. keywords in addition to the name of a Windows executable, which causes that
  1630. program to be loaded as an icon, instead of being run in its normal size.
  1631.  
  1632. This section is unaffected by any of the dialogs that change various
  1633. settings.  The only way to place entries here is to enter them with an
  1634. editor.  Many people find it easy to do a copy-and-paste operation, to copy
  1635. entries from another section of the file, such as from the later menu
  1636. section.
  1637.  
  1638. [Color]
  1639. There are three entries here, named as shown below, which each contain one
  1640. component of the background color that's used for CT-Shell's main window.
  1641.  
  1642.     [COLOR]
  1643.     BkRed=255
  1644.     BkGreen=255
  1645.     BkBlue=235
  1646.  
  1647. These are the three primary additive colors, and the intensity of each
  1648. color ranges from 0 to 255.  If all three were 0, the background would be
  1649. black.  If all three were 255, the background would be white.  Various
  1650. combinations of other values will create a whole spectrum of background
  1651. colors, subject to built-in limitations of the video driver in use.
  1652.  
  1653. The default combination used in the distribution CTSHELL.INI file creates a
  1654. background that is pale yellow (red + green = yellow).  These values are
  1655. among those that can be changed via the Preferences dialog, which is
  1656. invoked by the PREFER keyword.
  1657.  
  1658. [Editor]
  1659. The section marked [EDITOR] contains two settings that tell CT whether you
  1660. have a text editor and whether it has a particular capability.  These
  1661. settings are used in conjunction with the FIND command, and will allow you
  1662. to edit the file that contains a string of characters that you have asked
  1663. CT to find for you.  These settings look like this in the sample
  1664. CTSHELL.INI file:
  1665.  
  1666.     [EDITOR]
  1667.     EditorName=NOTEPAD.EXE
  1668.     EditLine=
  1669.  
  1670. On the assumption that anyone who has Windows has the NOTEPAD editor,
  1671. that's the default, even if this section is missing from the CTSHELL.INI
  1672. file.  Most programmers use more of a heavy-duty text editor however, and
  1673. will want to change this entry to contain that editor name instead
  1674. (including its path, if necessary).
  1675.  
  1676. The EditLine entry tells CT two things about your editor: whether it can
  1677. start at a line number that is included as part of its command, and if so,
  1678. what command-line switch is used to invoke that feature.  If EditLine is
  1679. left empty as in the sample file, CT will simply load the selected file
  1680. into the editor, but not attempt to start at a particular line number.  If
  1681. EditLine contains any characters, they will be added to the edit command
  1682. just before the line number.
  1683.  
  1684. Here's an example that would work for the popular QEdit programming editor
  1685. (from SemWare, Inc.), which has an executable file named Q.EXE and which
  1686. uses the switch -n to tell it what line number to start on:
  1687.  
  1688.     [EDITOR]
  1689.     EditorName=Q.EXE
  1690.     EditLine=-n
  1691.  
  1692. When CT puts together a command to execute your editor, the actual file
  1693. name and line number are combined with the editor name and switch.
  1694. Assuming a file called FILE.EXT and assuming that the desired string was
  1695. found in line 123 of that file, the command that CT would create from all
  1696. this would look like:
  1697.  
  1698.     Q.EXE FILE.EXT -n123
  1699.  
  1700. If your editor does not offer a way to start on a specified line, just
  1701. leave EditLine blank in your CTSHELL.INI file.  If you edit your
  1702. CTSHELL.INI file to change these settings, you may use the <F7> function
  1703. key to reload your menu, which will also cause these editor settings to be
  1704. reloaded from the file.  These values are also among those that can be
  1705. changed via the Preferences dialog, which is invoked by the PREFER keyword.
  1706.  
  1707. [Modem]
  1708. One of CT-Shell's functions is to store phone numbers in a dialing
  1709. directory, and optionally to dial phone numbers for you, using a modem13.
  1710. Nearly any kind of modem can be used for this, including the cheapest ones.
  1711. There are several entries in this section that can be changed, if
  1712. necessary, to accommodate unusual or nonstandard modems, or phone systems
  1713. that require additional characters to be dialed to access an outside line
  1714. or to charge the calls to a credit card.
  1715.  
  1716. The sample CTSHELL.INI file includes most of these settings, which will be
  1717. satisfactory for a large number of users:
  1718.  
  1719.     [MODEM]
  1720.     ModemInit=ATQ0M1L0V1X4&C1&D2
  1721.     ModemSpeed=1200
  1722.     ComPort=1
  1723.     DialPrefix=ATDT
  1724.     DialSuffix=
  1725.  
  1726. The one that is not included is the modem initialization string-the first
  1727. field shown above.  If you want to activate this feature for your version
  1728. of CT, you must have a modem connected to your computer, and you must
  1729. provide an appropriate modem initialization string.  If you're not sure
  1730. what your modem needs in an initialization string, the one shown here is a
  1731. good place to start experimenting.
  1732.  
  1733. Assuming the very popular and common Hayes "AT" command set, the modem
  1734. initialization string shown here turns quiet mode off (Q0), the modem
  1735. speaker on (M1) at a low volume (L0), and asks for verbose answers from the
  1736. modem rather than numeric result codes (V1).  The extended result codes
  1737. (X4) let many modems wait a reasonable length of time for a dial tone.  The
  1738. &C1 and &D2 control the way the modem handles some of its handshake lines.
  1739.  
  1740. The default file sets the modem speed to 1200, which is pretty much a
  1741. lowest-common- denominator among modern modems.  Since no communication is
  1742. going to take place at this speed, it doesn't really matter that the modem
  1743. may have higher speeds available.  We're only passing a dialing command to
  1744. the modem.
  1745.  
  1746. The default communication port is COM1, however, if your modem is connected
  1747. to a different port you'll want to change this.  If your phone uses tone
  1748. dialing-as most of them do these days-the ATDT dial prefix is probably all
  1749. you will need.  If your phone system uses pulse dialing (a rotary-dial
  1750. phone), you'll want to change that to ATDP instead.  The dial suffix is
  1751. usually not required, but some may need to add some more numbers here to
  1752. accommodate the special needs of a particular private exchange.
  1753.  
  1754. Note that there is no need to specify carriage returns at the end of the
  1755. strings that are sent to the modem.  Those are added automatically by CT,
  1756. when the modem initialization string is sent, and when a dialing command is
  1757. sent.
  1758.  
  1759. The settings you see above are all defaults that are built into CT
  1760. internally.  In other words, you could leave them out of your CTSHELL.INI
  1761. file entirely, and they would still be the values used.  The one exception
  1762. is the modem initialization string, which defaults to the empty string if
  1763. it is not provided specifically.
  1764.  
  1765. That's important, because that string of characters determines whether CT
  1766. will try to dial the phone for you, or just display phone numbers for you
  1767. to dial yourself.  The PHONE keyword invokes a dialog box that displays
  1768. phone numbers that are stored in your CTSHELL.INI file.  If CT has a valid
  1769. (not empty) modem initialization string, it will offer a [Dial] button in
  1770. the PHONE dialog that does not show up if that string is empty.  For more
  1771. details, see the description of the PHONE keyword in Chapter 6.
  1772.  
  1773. [Options]
  1774. Here is a place to set a variety of options that affect the way CT works.
  1775. Nearly all of these entries may be changed via the Preferences dialog,
  1776. which is invoked by the PREFER keyword.  The default CTSHELL.INI file
  1777. contains the following entries in its [OPTIONS] section, which will be
  1778. discussed in the following paragraphs:
  1779.  
  1780.     [OPTIONS]
  1781.     KeepOpen=0
  1782.     RequireConf=0
  1783.     IgnoreDrives=
  1784.     Mail_In=
  1785.     Mail_Out=
  1786.     user1={Alarm Settings} {} {} {} {alarm}
  1787.     user2={Listings Config} {} {} {} {config}
  1788.     user3={Preferences} {} {} {} {prefer}
  1789.     user4={Printer Settings} {} {} {} {printer}
  1790.  
  1791. The entries for  KeepOpen=  and  RequireConf=  are TRUE/FALSE type entries,
  1792. in which a 1 represents TRUE and a 0 represents FALSE.  There will be other
  1793. examples of this type of entry in the sections that follow.
  1794.  
  1795. KeepOpen  
  1796. KeepOpen refers to the command line, and whether it should be kept open
  1797. following a command, so that additional commands may be entered without
  1798. reopening the command line dialog.  Some may prefer to keep the command
  1799. line open, particularly if they regularly issue a lot of commands in
  1800. series.  Others will prefer to let the command line close after each
  1801. command, since it can easily be reopened with <Shift+Enter>.  With this
  1802. entry-which can be selected from the Preferences dialog-each user can make
  1803. that choice.
  1804.  
  1805. RequireConf
  1806. RequireConf refers to closing CT by doubleclicking on the system menu box.
  1807. That's the bar-in-a-box that's located in the upper left corner of the
  1808. window in which CT runs.  Some will prefer a message box that asks, Are You
  1809. Sure? and requires a keypress or a mouse click to confirm.  Others will
  1810. want to exit from CT without further ado.  It is unlikely that an abrupt
  1811. exit from CT could harm anything.  This option may be changed from the
  1812. Preferences dialog.
  1813.  
  1814. IgnoreDrives
  1815. The IgnoreDrives setting has already been discussed in earlier sections.
  1816. If you have a system in which there are a great number of drives
  1817. available-such as in a network-and you do not need a continuing display of
  1818. the available space on those drives, you may instruct CT to ignore certain
  1819. drives.  The example shown here would cause CT to ignore drives from F: on
  1820. up:
  1821.  
  1822.     IgnoreDrives=FGHIJKLMNOPQRSTUVWXYZ
  1823.  
  1824. The drive letters in the string that follows the equal sign do not need to
  1825. be in any particular order, though keeping them alphabetical makes
  1826. maintaining the list a little easier for the user.  Uppercase and lowercase
  1827. letters may be used.  If a drive does not exist for the current system,
  1828. including its letter will have no effect, and will cause no harm.
  1829.  
  1830. Note that telling CT to ignore certain drives does not make it impossible
  1831. to work with those drives.  It simply means that those drives won't have to
  1832. be queried every time the files listing is updated.  You can still change
  1833. to any of the "ignored" drives in the usual way from the command line, or
  1834. by pressing a key combination that includes <Shift+Ctrl> plus the drive
  1835. letter.  For example, even given the IgnoreDrives option shown above, you
  1836. could easily change to drive L: (if it exists on your system) by pressing
  1837. <Shift+Ctrl+L>.
  1838.  
  1839. The current drive is always updated in the status window, even if it is one
  1840. of the drives that is to be ignored.  This setting may be changed from the
  1841. Preferences dialog.
  1842.  
  1843. MailIn and MailOut
  1844. These two entries will not be useful for everyone, but for those who
  1845. regularly work with files that contain network mail or email of any kind,
  1846. the CT feature that uses them can be quite helpful.  Because of the way
  1847. this mail notification feature works-by reporting on the presence or
  1848. absence of two specified files-users may find applications for the feature
  1849. that have nothing to do with network mail.
  1850.  
  1851. One of CT-Shell's keywords is named MAIL, and invoking that keyword in a
  1852. menu entry causes CT to look for the presence of files that are identified
  1853. by these  MailIn=  and MailOut=  entries.  It then presents a message box
  1854. that states in simple Yes/No terms whether mail is waiting to be sent
  1855. (MailOut), or mail is waiting to be read (MailIn).
  1856.  
  1857. The obvious application is for those who work with a network mail system,
  1858. or who download mail packets from a remote service like CompuServe or a
  1859. BBS.  Often these systems create a file of mail that is waiting to be read,
  1860. and the fact that the file exists implies that there is mail waiting.
  1861. Those systems that do, usually also create a file of answers, which are
  1862. then transferred-such as by telephone or network connection-with the remote
  1863. "host" system.  Again, the existence of a file containing replies often
  1864. implies that there are answers that have not yet been sent.
  1865.  
  1866. Users who engage in this type of mail activity will be probably be able to
  1867. figure out, based on this description of the process, how they can use the
  1868. MailIn=  and MailOut=  path names to their advantage.  It may also have
  1869. occurred to others that it would be useful to be able to check quickly on
  1870. the existence of two specific files for totally unrelated purposes.  Anyone
  1871. who is able to utilize these settings to their advantage should feel free
  1872. to do so, network mail or not.
  1873.  
  1874. These path strings may both be modified using the Preferences dialog.
  1875.  
  1876. User1 through User4
  1877. As you know from the previous discussion in the section on function keys,
  1878. the  User1= through  User4=  tasks are originally assigned to the special
  1879. CT keywords, ALARM, CONFIG, PREFER and PRINTER.  Doing that provides quick
  1880. and easy access to these configuration dialogs.
  1881.  
  1882. These are user-defined options, nonetheless, and any entries that are
  1883. suitable for a menu are suitable here.  Thus, four function keys-F9 through
  1884. F12-can be used to invoke commands that you would normally select from a
  1885. menu.
  1886.  
  1887. These settings may be modified through the Preferences dialog, however
  1888. users may find it easier to use the copy-and-paste capabilities of their
  1889. editors to copy entries from the later [ITEMS] section in the CTSHELL.INI
  1890. file to this section.
  1891.  
  1892. Because of limited space to display the entry name next to the
  1893. representation of the function key, entry names should be modified, if
  1894. necessary, to be no longer than 18 characters or so.  Even shorter names
  1895. may be required if there are many wide characters, such as capital letters.
  1896. This is the only way in which a  Userx=  entry might need to differ from a
  1897. regular menu entry-a menu can accommodate a much longer name14.
  1898.  
  1899. StartX and StartY
  1900. These two settings are not part of the default options, for a good reason.
  1901. If they are left out entirely-i.e., do no appear in the CTSHELL.INI file at
  1902. all-CT will automatically start in a centered position on the screen.
  1903.  
  1904. Some may have reason to want it to appear in another position, so CT is
  1905. able to memorize its current position and use that whenever it is started.
  1906. If you invoke the CT keyword POSITION, these entries will be made in your
  1907. CTSHELL.INI file for you.  If they exist, CT will use them as the position
  1908. of the upper left corner when the program is started.
  1909.  
  1910. The values will vary depending on what type of video monitor is in use.
  1911. For example, if centered on an 800x600 monitor, POSITION will record these
  1912. values:
  1913.  
  1914.     StartX=92
  1915.     StartY=76
  1916.  
  1917. If these two entries do exist in the file, but no values are provided for
  1918. them, they are interpreted as 0 and 0, placing CT in the upper left corner.
  1919. That's why the entries do not appear at all in the default configuration.
  1920. If you have recorded a starting position and later decide to return to the
  1921. centered default position, you will need to remove these lines from your
  1922. CTSHELL.INI file entirely-just removing the values won't be good enough, as
  1923. missing values are interpreted as zero values.
  1924.  
  1925. Naturally, if you are going to record a new starting position for the
  1926. program, you will want to move it into your preferred position before you
  1927. invoke this keyword.  You can do that by "grabbing" the caption bar at the
  1928. top of the window (move the mouse cursor there, then press and hold the
  1929. left mouse key) and "dragging" it to the position you want.
  1930.  
  1931. Unlike the other settings in this section, these are not affected by the
  1932. Preferences dialog.  They are changed only by the POSITION keyword, or by
  1933. editing the CTSHELL.INI file itself.
  1934.  
  1935. [Phones]
  1936. This section contains a single entry in the distribution configuration:
  1937.  
  1938.     [PHONES]
  1939.     Phone0=Computer Training           (206)820-6859
  1940.  
  1941. The entries here are made available to you in the dialog that is invoked
  1942. with the PHONE keyword.  There is a menu entry for that purpose in the
  1943. default configuration, in the Shells menu.
  1944.  
  1945. A graphic of that dialog and more details pertaining to its use are in the
  1946. later section on CT keywords (Chapter 6), but here are a few observations
  1947. about the entries that may be used here:
  1948.  
  1949. The approximate size of the entries will become apparent when you first
  1950. invoke that menu item.  Subsequent phone numbers are put into place as
  1951. Phone1=  , Phone2=  , Phone3=  , etc.  Legitimate characters for the phone
  1952. number include the digits, hyphen, parentheses, and the period.  A phone
  1953. number must be the last entry on the line, and it may not contain embedded
  1954. spaces.  (CT figures out which is the phone number by moving to the end of
  1955. the line, then backing up as long as it continues to find legitimate phone
  1956. number characters.  It will stop at the first space it finds.)
  1957.  
  1958. You may feel free to edit this section directly in your CTSHELL.INI file,
  1959. and that may be the easiest way to enter a long list of phone numbers.  You
  1960. may also modify this section from the dialog that is invoked by the PHONE
  1961. keyword.
  1962.  
  1963. [Printer]
  1964. The [PRINTER] section controls certain options that affect the way CT
  1965. prints a file (or a list of tagged files) when you press the <F8> key.  It
  1966. looks like this in the sample CTSHELL.INI file that is supplied:
  1967.  
  1968.     [PRINTER]
  1969.     LineSize=80
  1970.     Headings=1
  1971.     PageNums=1
  1972.     24Hour=0
  1973.     LineNums=1
  1974.     Independent=0
  1975.     Draft=0
  1976.     TextFixed=1
  1977.  
  1978. All of these settings are controlled from within CT, from a dialog box that
  1979. is presented when you execute a pop-up menu entry that uses the CT keyword
  1980. CONFIG (which is described in Chapter 6, which follows next).  In the
  1981. default configuration, that keyword is bound to the <F10> function key.
  1982. Although you don't need to edit your CTSHELL.INI file to change these,
  1983. here's an explanation of what each one means:
  1984.  
  1985. LineSize
  1986. The  LineSize=  entry will be 80, 110 or 132, if it was entered from within
  1987. CT, and it specifies the width of text file lines, as you usually work with
  1988. them.  When printing text files, CT will choose the largest font that is
  1989. available for your printer that will display at least that many characters
  1990. on a single line, in addition to allowing room for borders and optional
  1991. line numbers.
  1992.  
  1993. For example, if you write programs, and always make sure that your source
  1994. file lines are 80 characters or less in length, you can select a line size
  1995. of 80 and know that your printed listings will contain all your text
  1996. between the borders.  If you occasionally write on past the width of your
  1997. terminal, you might want to select 110 to ensure that everything will
  1998. print.  CT does not provide linewrap, so lines of text that are too long
  1999. may be truncated at the edge of your printing area.
  2000.  
  2001. Some people use special video hardware that provides them with 132-column
  2002. text displays.  They may use that full width when editing programs, so a
  2003. selection is available for that size as well.
  2004.  
  2005. Although these three sizes are the most useful, and are provided for easy
  2006. selection from within CT, you may edit this entry to contain values other
  2007. than 80, 110 or 132.  CT will attempt to use your value, providing the
  2008. closest font that it can.
  2009.  
  2010. Note that there is another special CT keyword called PRINTER-which is
  2011. available from your Utilities menu, and is assigned by default to the F12
  2012. key-that will invoke the setup function from the Windows printer driver for
  2013. your printer.  Depending on the type that you use, you may be able to
  2014. change paper size, change orientation from portrait to landscape, and
  2015. change other settings that will also be reflected in CT-Shell's choice of
  2016. fonts for your listings.  As an example of the output from one of those
  2017. functions is shown in the section on CT keywords in Chapter 6.
  2018.  
  2019. The rest of the options shown here are simply TRUE/FALSE values, where the
  2020. number 1 represents TRUE and 0 represents FALSE.  Inside CT, your
  2021. selections will be made by checking boxes for the options that you want,
  2022. however in the CTSHELL.INI file, your choices are stored as ones and zeros.
  2023.  
  2024. Headings
  2025. Headings=  determines whether name/date/time headings will be printed at
  2026. the top of your listings.   If you enable this option, each file's name and
  2027. creation date and time will be printed at the top left of the page in a
  2028. bold font, and the date and time the listing was printed will be at the top
  2029. right of the page.  Thus it will be easy to compare two listings to see
  2030. which is newer.  You can print a few additional lines of text on each page
  2031. if you turn off this option.
  2032.  
  2033. Pagenums
  2034. PageNums=  determines whether your listings will have page numbers at the
  2035. bottom of each page.  Be sure to see the closely related  Independent=
  2036. option below.  You can print a few additional lines of text on each page if
  2037. you turn off this option.
  2038.  
  2039. 24Hour
  2040. This option lets you determine whether the times displayed in file listings
  2041. will be in 24- hour "military" time, or in the conventional AM and PM
  2042. format.   With this option enabled, 9:30 in the evening displays as 21:30,
  2043. and with this option disabled the same time displays as 09:30p.
  2044.  
  2045. Linenums
  2046. If the file being printed is a program listing, chances are you'll want the
  2047. lines to be numbered.  This option will cause them to be numbered from 1 to
  2048. 99999, and separated from the text with a > and a space.  Thus, such a
  2049. listing might look in part like this:
  2050.  
  2051.         51>        if( iLimit > iValue)
  2052.         52>              foobar( iValue );
  2053.  
  2054. Turning the line numbering option off would make more sense when printing a
  2055. listing of a program documentation file.
  2056.  
  2057. Independent
  2058. The  Independent=  option refers to page-numbering for multiple-file
  2059. printing jobs.  If you have a series of files tagged before you press <F8>,
  2060. all of them will be printed, not just the current file.  If  Independent=1,
  2061. each file listing will begin with page 1.  If Independent=0, the whole
  2062. series of files will be page-numbered consecutively, straight through.
  2063.  
  2064. If a number of files is all part of a single programming project, you might
  2065. prefer setting  Independent= 0.
  2066.  
  2067. Draft 
  2068. Draft=  tells Windows whether to try to find a font for high-quality output
  2069. or one that will print more quickly, with lower quality.  If  Draft=1,
  2070. lower quality will be allowed.
  2071.  
  2072. Note that the operational word here is allowed.  CT does not force Windows
  2073. to use a lower-quality font, it can only allow it to do so.  How much
  2074. effect this switch has may well depend on the kind of printer you use, and
  2075. the number of fonts its driver is able to make available.
  2076.  
  2077. Depending on the printer type, you may have more success in changing to a
  2078. lower quality (and faster printing) font if you use the CT keyword PRINTER
  2079. to gain access to the printer driver's setup function.  By setting the
  2080. graphic resolution to a value that is less than the maximum, you may be
  2081. able to trade some excess print quality for a desired increase in printing
  2082. speed.
  2083.  
  2084. TextFixed
  2085. Whether the text portion of your printout is printed in a fixed font or a
  2086. variable (proportional) font is controlled by this one.  If you need to
  2087. print program listings, you'll want to set  TextFixed=1, so that spacing is
  2088. preserved in your listings.
  2089.  
  2090. (This feature does not affect the headings, as there is no reason to print
  2091. headings using a fixed font.)
  2092.  
  2093. Under other circumstances, you might prefer to turn off this feature, so
  2094. that proportional spacing will be used instead.  In particular, you might
  2095. want to turn this feature off to print files that were created by a word
  2096. processor using a proportional font.
  2097.  
  2098. [Items]
  2099. This part of your CTSHELL.INI file determines the contents for your main
  2100. menu, and the pop-up menus that its items invoke.  There is no arbitrry
  2101. limit to the number of menu items, although most people prefer to keep the
  2102. number small enough (and the item names short enough) to make the menu fit
  2103. on one line.  Likewise, there is no arbitrary limit to the number of
  2104. entries that each menu item may contain.
  2105.  
  2106. Since the sample CTSHELL.INI file provides so many examples of menu
  2107. entries, you shouldn't have any trouble at all adding the ones you need to
  2108. customize your system.  A good idea is to add one or two new entries that
  2109. will run programs you use often, and try them out. Make sure you're
  2110. including the current file in the right place, and that you're changing to
  2111. the right directory before executing the programs.
  2112.  
  2113. While  reading through these following sections, you should get plenty of
  2114. ideas for custom entries.  Ask yourself questions like, "What do I use the
  2115. computer for most of the time..." and think what you'd like to be able to
  2116. do with a click of the mouse or the press of a couple keys.
  2117.  
  2118. Menu Items
  2119. Each menu item is distinguished by the special word Item that appears first
  2120. on its line, then a set of braces containing the item name as it should
  2121. appear in the main menu. Since braces are used as delimiters, the menu
  2122. entries can contain quotation marks, if you want, as well as spaces,
  2123. parentheses, and most other punctuation.
  2124.  
  2125.     item  {ItemName}
  2126.  
  2127. ItemName
  2128. The menu item name may contain embedded spaces, and it may contain the
  2129. special ampersand character (&), which determines a letter that will appear
  2130. underlined in the menu itself.  So identifying a key letter in the name
  2131. provides a way for that menu item to be selected with a combination of the
  2132. <Alt> key and that underlined letter.
  2133.  
  2134. For example, <Alt+E> typed together would activate the menu item that was
  2135. described in the CTSHELL.INI file as {&Edit}.  The ampersand is optional,
  2136. but provides a quicker way to invoke this item.
  2137.  
  2138. Item names may be any practical size.  Keeping them brief, however, helps
  2139. to keep the main menu on a single line, and many people find a single-line
  2140. main menu easier to use.  Note that CT will automatically detect a
  2141. multi-line main menu and adjust its window size accordingly.
  2142.  
  2143. Pop-up Entries
  2144. Each pop-up entry contains five fields, delimited by braces, of which only
  2145. the first is required.
  2146.  
  2147. If you haven't yet loaded your CTSHELL.INI file into your editor to take a
  2148. look at it, you should do so now.  The following descriptions will be most
  2149. meaningful if you're looking at the sample menu entries as you read about
  2150. their various parts.   To load CTSHELL.INI into the NOTEPAD editor from the
  2151. default menu, select the Edit menu and choose the entry to edit
  2152. CTSHELL.INI.
  2153.  
  2154. Entry Name
  2155.  
  2156.     {EntryName} {DirPath} {ExePath} {Switches} {Keyword}
  2157.  
  2158. The entry name is displayed in the pop-up menu to allow the selection of
  2159. this option. Like the menu item name, the entry name may contain an
  2160. ampersand character to determine the character that will be underlined in
  2161. the menu, thus providing easy access to this item with a keyboard command.
  2162. The ampersand is optional, but if it is used, it provides a quicker way to
  2163. invoke this entry.
  2164.  
  2165. The entry name may also be preceded by a dollar sign ($), which has a
  2166. special meaning.  Such an entry name is always followed by four more sets
  2167. of empty braces (or at least, CT ignores anything in them), and is used
  2168. only as a label for a section in the menu.  Thus, a number of commands to
  2169. invoke various built-in DOS services might be grouped together under such
  2170. an entry as in this example from the default configuration:
  2171.  
  2172.     {$DOS SERVICES} {} {} {} {}
  2173.     {    &Attributes} {} {} {} {ATTRIB}
  2174.     {    &Copy} {} {} {} {COPY}
  2175.     {    &Delete} {} {} {} {DELETE}
  2176.     {    &Move} {} {} {} {MOVE}
  2177.     {    &Rename} {} {} {} {RENAME}
  2178.     {    &Touch File} {} {} {} {TOUCH}
  2179.  
  2180. That example is responsible for part of a menu that looks like this in use:
  2181.  
  2182.  
  2183. Two other special characters may be used here, to provide separation from
  2184. other pop- up menu entries.  If an entry name begins with a hyphen ( - ),
  2185. there will be a horizontal bar in the menu, separating that item from the
  2186. ones that preceded.  If there is a plus sign ( + ) before the name, that
  2187. entry will begin a new column in the pop-up menu, with a vertical bar
  2188. separating it from the preceding entries.
  2189.  
  2190. If you visualize the hyphen as a horizontal bar, and the plus sign as a
  2191. vertical bar that separates two halves of something, it should be easy to
  2192. remember these. There are also a couple of examples in the sample
  2193. CTSHELL.INI file.  The Exit entry in the File menu is separated at the
  2194. bottom with a horizontal bar, as has become customary for Microsoft
  2195. products, and in the Windows menu, the Utilities entries are separated into
  2196. their own column, distinguishing them from the applications and system
  2197. programs in the other column.
  2198.  
  2199. Note that spaces are considered ordinary characters, and can be used to
  2200. provide indentation for a list of entry names that come under a label, as
  2201. they were in the example just above.  The location of the - and + symbols
  2202. is important, as they are considered special characters only if they appear
  2203. in the first or second columns.  If embedded into an entry name, they would
  2204. be considered ordinary characters.
  2205.  
  2206. In contrast, the $ must always be used as the first character in the entry
  2207. name, but it can follow a - or a +, if those are used to provide
  2208. separation.  And, of course, the & retains its special meaning wherever it
  2209. might appear in the entry name.  Here are some practical examples of these
  2210. rules and considerations:
  2211.  
  2212.     {-$UTILITIES} {} {} {} {}
  2213.  
  2214. ...starts a new section in the current column, using UTILITIES as the label
  2215. for a group of entries.
  2216.  
  2217.     {+$COMPRESSION} {} {} {} {}
  2218.  
  2219. ...starts a new column, using COMPRESSION as the label for a group of
  2220. entries that have to do with data compression.
  2221.  
  2222.     {-    LHArc &Add} {} {} {} {}
  2223.  
  2224. ...starts a new section in the current column, separating it from previous
  2225. sections with a horizontal bar.  This entry will be indented by four
  2226. spaces.  The 'A' character will be underlined, and recognized as the
  2227. significant letter to access this menu item.
  2228.  
  2229. The default configuration contains a number of examples that may guide you
  2230. in developing new entries for your own programs.
  2231.  
  2232. DirPath
  2233.  
  2234.     {EntryName} {DirPath} {ExePath} {Switches} {Keyword}
  2235.  
  2236. The directory path is an optional field which, when provided, causes CT to
  2237. change either temporarily or permanently to that directory, before
  2238. executing any program that may be part of this entry.
  2239.  
  2240. If a directory path field is present and an executable path field is not,
  2241. it is assumed that the explicit purpose of this entry is to change
  2242. directories permanently. In that case, CT will change to the specified
  2243. directory, and will continue operating from there.  An example might look
  2244. like this, where you want to be able to change to a word processing work
  2245. directory on drive D:
  2246.  
  2247.     {&WordProc} {d:\winword\letters\personal} {} {} {}
  2248.  
  2249. Since the directory path has a content, CT will change to that directory
  2250. when this entry is invoked.  Since the executable path does not have any
  2251. content, the directory change will be a permanent one.
  2252.  
  2253. If both a directory path field and an executable path field are provided,
  2254. it is assumed that the directory change should be temporary, for the
  2255. purpose of executing the command only.  Afterwards, CT will return
  2256. automatically to the directory where it was before the command was
  2257. executed.  Here's an example where the same directory change is made, but
  2258. where a session with Word for Windows is also started:
  2259.  
  2260.     {&WordProc} {d:\winword\letters\personal} {winword.exe} {} {}
  2261.         
  2262. This time the directory change will be temporary, and CT will return to the
  2263. previous directory when the session with Word for Windows is finished.
  2264.  
  2265.  ExePath
  2266.  
  2267.     {EntryName} {DirPath} {ExePath} {Switches} {Keyword}
  2268.  
  2269. As you saw in the previous example, the executable path is the path name
  2270. for an executable file which is to be run when this entry is selected.
  2271. Because the menu entries are processed by a command processor that can look
  2272. throughout the DOS path for an executable file, programs whose names end in
  2273. .EXE and that reside along the DOS path may be listed here without any
  2274. qualifying path information.
  2275.  
  2276. However, if the program to be executed does not reside along the DOS path,
  2277. you must include the entire path/file name here.  If it has an extension of
  2278. .COM or .PIF or .BAT, you must at least include the extension-even if the
  2279. file does reside along the DOS path-as CT will default to .EXE for a
  2280. filename with no extension. More information about path names and the DOS
  2281. path is available in your DOS manual.
  2282.  
  2283. An example of an executable that lies along your DOS path is CALC.EXE,
  2284. assuming that it is in its customary place in your Windows directory.
  2285. Here's a menu entry that would run the Windows calculator utility:
  2286.  
  2287.     {&Calculator} {} {calc.exe} {} {}
  2288.  
  2289. No directory change was required, and in fact, we could have gotten away
  2290. without the .EXE extension, since that's the default.  Many people prefer
  2291. to include it anyway, for purposes of documentation.  If a full path were
  2292. needed, such as to run a program that does not reside in a directory along
  2293. the DOS path, its entry might look like this:
  2294.  
  2295.     {&Calculator} {} {d:\foo\bar\progcalc.exe} {} {}
  2296.  
  2297. Switches
  2298.  
  2299.     {EntryName} {DirPath} {ExePath} {Switches} {Keyword}
  2300.  
  2301. Programs often require additional information on the command line when they
  2302. are run.  An editor, for example, can often be told what file to edit by
  2303. including the file name as part of the editor command.
  2304.  
  2305. Sometimes too, the way a program runs can be affected by switches that turn
  2306. on or off certain features.  For example, the extended copy XCOPY command
  2307. from DOS will copy entire directories if you follow the command with the
  2308. switch /s and will even include empty directories if you include the switch
  2309. /e.  If a menu entry were created to execute the XCOPY command, you might
  2310. want to include these switches as part of the entry.
  2311.  
  2312. The switches field is the one in which the CT special field characters are
  2313. most often used (see Chapter 7).  Using object-oriented techniques, you are
  2314. able to include the current file as part of your command, a list of all the
  2315. tagged files, an environment variable, and more.  You are even able to
  2316. cause CT to prompt you for one or more values to be inserted as it runs.
  2317.  
  2318. As it operates, CT combines the switches field with the executable path
  2319. field to form a command.  Thus, it doesn't really matter whether a command
  2320. argument or switch occurs in one field or the other.  However, it is easier
  2321. to visualize executable programs as separate from the arguments and
  2322. switches that are used with them, so both fields are provided.  If you
  2323. prefer, you may put all the necessary entries into the executable path
  2324. field and leave the switches field empty, but its braces must be left in
  2325. place or, under some circumstances, CT might become confused by the missing
  2326. field.
  2327.  
  2328. Here's an example for an XCOPY command that assumes the current file is
  2329. a directory, and copies it and everything in it to the floppy disk in drive
  2330. A:.  Note that the ! represents the current file, and can be placed in the
  2331. command right where the current file name would be placed if the command
  2332. were being given at a DOS command line:
  2333.  
  2334.     {&CopyDir} {} {xcopy.exe} {! a: /s /e} {}
  2335.  
  2336. An exclamation point used in this way gets replaced by the current file,
  2337. which we would assume to be a directory in this usage.  The a: is a
  2338. destination, indicating that the copy should be done to drive a:.  The /s
  2339. tells XCOPY to copy all files in subdirectories, creating those
  2340. subdirectories as needed on the target disk.  The /e switch tells XCOPY
  2341. that it should even preserve empty directories during the copying.
  2342.  
  2343. Keyword
  2344.  
  2345.     {EntryName} {DirPath} {ExePath} {Switches} {Keyword}
  2346.  
  2347. Many of the operations that CT performs are handled internally by CT
  2348. itself.  That's how it is able to improve on many of the DOS commands,
  2349. rather than passing the commands along to DOS.  A keyword command is almost
  2350. always used in place of- rather than in addition to-an executable path.  In
  2351. fact, if there is a keyword in this last field other than those few that
  2352. specify the run mode for a Windows executable, CT will process that keyword
  2353. first, and ignore any entries that may be in the executable path or
  2354. switches fields.
  2355.  
  2356. Because CT-Shell keywords provide so much of the functionality of the
  2357. program, the whole next chapter is devoted to an explanation of them.
  2358.  
  2359.  
  2360. Chapter 6 CT-Shell Keywords
  2361.  
  2362. CT-Shell keywords are listed here, along with a brief description of what
  2363. they each accomplish, and an example of any dialogs that are invoked by
  2364. them.
  2365.  
  2366. Single and Tagged Files
  2367. When a keyword is designed to affect a single file, CT needs only to
  2368. inquire which file is the current file in the file list, and apply that
  2369. operation to that single file.  When a keyword is designed to affect a list
  2370. of tagged files, CT needs to go through all the entries in the file list
  2371. and ask of each, "Is this one tagged?"  Then it applies the operation to
  2372. the ones that are, skipping the ones that are not.  Obviously, it is easier
  2373. and quicker to affect only the single current file.
  2374.  
  2375. Keywords that are intended for use with tagged files will almost always
  2376. work with the current file, which is almost always considered to be
  2377. tagged15.  Examples of most of these keywords are already included in menu
  2378. items in the sample CTSHELL.INI file, however you may want to rearrange
  2379. them to suit you:
  2380.  
  2381. About
  2382. Displays information about CT, including the number of the version that
  2383. you're using.  The dialog that it invokes looks like this:
  2384.  
  2385.  
  2386. Alarm
  2387. Allows the user to modify the settings used by the four event timers that
  2388. CT provides.  If a time is established and that timer is enabled, a message
  2389. entered for that timer will be displayed at the specified time, and any
  2390. menu-type entry placed in the event field will be executed at the stated
  2391. time.  Note that messages can be displayed without starting an event, and
  2392. events can be started without displaying a message.  The dialog presented
  2393. by ALARM looks like this:
  2394.  
  2395.  
  2396. Most of these fields should be pretty obvious.  For example, to create an
  2397. event you must enter a time for it to happen, and then enable it by
  2398. clicking on the Enabled check box.  If you only want to be reminded of
  2399. something, you can enter a message that you would like displayed in a
  2400. message box at that time.  Enter the time in HH:MM format, and use 24-hour
  2401. time.  In other words, 9am would look like 09:00, while 9pm would look like
  2402. 21:00.
  2403.  
  2404. If you would like to execute a program at the time you specified, you'll
  2405. need to type in an entry for the Event field.   This entry takes the same
  2406. form as the ones you've already seen used in the menu section of your
  2407. CTSHELL.INI file, with five sets of braces (and which you've seen in other
  2408. examples in this manual).  You might want to include an entry name in the
  2409. first set of braces as a reminder, but CT won't need it.
  2410.  
  2411. Your event can execute DosApps and WinApps, or invoke a CT keyword.  In
  2412. short: you can do anything here that you could do in a menu entry.
  2413.  
  2414. Having created an event or scheduled a reminder message, you can click on
  2415. [Accept] to accept those settings and close the dialog.  If you have also
  2416. checked the box marked Save settings to CTSHELL.INI file?, the event will
  2417. be recorded for future use, and reloaded whenever CT is started.  If an
  2418. event is enabled, it will be triggered the next time that time comes up,
  2419. and will be triggered again the next day at the same time.  In this way, an
  2420. event can be established that will be automatically done every day, so long
  2421. as CT is running when the time comes.
  2422.  
  2423. If you have made some changes and find that you need to return to the
  2424. settings that were previously recorded in CTSHELL.INI, you can click on the
  2425. [Reset] button.  Clicking on [Cancel] exits from the dialog without
  2426. changing anything.
  2427.  
  2428. The limit of four events is somewhat arbitrary, as the data required to set
  2429. up four events fit nicely into a dialog box that fits on any screen.
  2430. However, it isn't difficult to create more events if they are needed.
  2431. Remember that you can run multiple instances of CT, and that all use the
  2432. same copy of the program, but each has its own private set of data.  That
  2433. means that one of the events could start another instance of CT, which
  2434. invokes three other events plus another instance of CT, which invokes three
  2435. other events plus...
  2436.  
  2437. Attrib 
  2438. Changes file attributes.  Use this keyword in a menu item to let you change
  2439. the attributes of the current file.  There is another version listed below
  2440. that changes the attributes for a group of tagged files.
  2441.  
  2442.  
  2443. Remember that these attributes become the attributes for the file that you
  2444. are modifying, they're not added to the existing attributes.  Be sure to
  2445. set all the ones you want to apply, then click OK.
  2446.  
  2447. Command
  2448. Invokes the command processor that is associated with your COMSPEC
  2449. environment variable.  In most cases this will be COMMAND.COM, the command
  2450. processor that is supplied with MS-DOS and PC-DOS.16
  2451.  
  2452. If there is anything at all that you prefer doing at an ordinary DOS
  2453. command line rather than from within CT, this keyword provides you with the
  2454. ordinary DOS session where you can do it.
  2455.  
  2456. Config
  2457. Configures the file listing options.  These are the settings within CT that
  2458. affect how file listings are printed.  See also the PRINTER keyword for
  2459. access to the printer driver itself, which provides control over your
  2460. installed printer.
  2461.  
  2462. The menu entry that invokes this keyword is in the Shells menu in the
  2463. sample configuration.  When you invoke the keyword CONFIG, here's the
  2464. dialog box that CT uses to get your choices:
  2465.  
  2466.  
  2467. If you click on the [Accept] button, CT will accept the settings that are
  2468. shown.  If you have checked the box marked "Save settings to CTSHELL.INI
  2469. file," that will be done as well, so you'll start off with those as default
  2470. settings the next time .
  2471.  
  2472. If you click on the [Reset] button, you will cause CT to read in the
  2473. current settings from the CTSHELL.INI file.  They will replace whatever
  2474. other settings you had in effect, and will be displayed immediately.
  2475.  
  2476. Copy
  2477. Copies a file to another location.  You are prompted for a destination for
  2478. the current file, and it will be copied to that destination.  Like the DOS
  2479. copy command, you may supply a file name or a directory as a destination.
  2480. Like the COPY command that you use at the CT command line, this uses a much
  2481. larger copy buffer than DOS does, for better efficiency.
  2482.  
  2483.  
  2484. Note that you may provide multiple destinations when this dialog asks you
  2485. for a destination. The example shown here would copy the current file to
  2486. both the C:\WIN path and the D:\WIN\TEST path.
  2487.  
  2488. Deldir
  2489. Deletes the currently-selected directory and all files in it.  Be careful!
  2490. This one is so powerful that there are two confirmations necessary to make
  2491. it work (you're asked twice whether it's okay to delete the directory).
  2492.  
  2493. The entire subdirectory will be deleted, including any files in it and any
  2494. subdirectories under it, even any files that have the read/only attribute.
  2495. This is a wonderful way to remove an outdated or unwanted directory during
  2496. disk maintenance, but it requires you to be careful.  Files and directories
  2497. that have been deleted with this command can sometimes not be undeleted.17
  2498.  
  2499.  
  2500. If you click on the [NO] button, nothing will happen to the directory.  And
  2501. because this operation is so potentially disastrous if it is misused, even
  2502. if you click on the [Yes] button you will be asked to verify one more time:
  2503.  
  2504.  
  2505. Delete
  2506. Deletes a file.  This removes a file in a way that cannot usually be
  2507. reversed.  Be careful, and be sure that you mean it when you use this
  2508. keyword.  You are asked only once for confirmation:
  2509.  
  2510. Note that either a single file or a list of tagged files can be deleted by
  2511. pressing the <Del> key, then confirming.
  2512.  
  2513. DirSize
  2514. Displays a listing that shows you how big a directory is.  It shows how
  2515. many subdirectories it contains, how many files, and how many bytes they
  2516. all add up to.  This can give you a very good approximation of how much
  2517. room must be available on a destination to which you plan to copy that
  2518. directory, or how much additional room will become available on your drive
  2519. if you delete it.
  2520.  
  2521.  
  2522. Exit
  2523. Shuts down CTSHELL.  You can also do this by double-clicking on the system
  2524. menu box in the upper left corner of CT-Shell's window, but some people
  2525. find it easier to pick an exit command out of a menu.
  2526.  
  2527. Users can choose whether a confirmation will be necessary to exit CT by
  2528. modifying the RequireConf=  setting via the Preferences dialog.  If
  2529. confirmation is required:
  2530.  
  2531.  
  2532. FileInfo
  2533. Copies the descriptive information (from the file list window) to the
  2534. clipboard, from where it can easily be pasted into a document with nearly
  2535. any editor, or used in other programs for which it is appropriate.  This
  2536. keyword is implemented in the Tagged Files menu.  When it is invoked,
  2537. information such as the following is copied to the clipboard for any files
  2538. that are currently tagged:
  2539.  
  2540. ctcover.doc      5030  07/14/91  05:02.14a  .....
  2541. ctdisk.bmp     224918  07/14/91  06:38.44a  .....
  2542. fkeys.bmp      224918  10/06/91  04:04.14p  .....
  2543. header           1650  07/02/91  08:08.10a  .....
  2544. regcard1.doc     3481  07/19/91  05:28.38a  .....
  2545.  
  2546. FormFeed
  2547. When you have copied something to the printer, and it has not advanced the
  2548. last sheet, you can force a formfeed with this keyword.  It is invoked by a
  2549. menu entry in the Edit menu of the default configuration.
  2550.  
  2551. Help
  2552. Runs the Windows help engine.  This provides access to the online helpfile
  2553. that explains what all these options do, and reminds users how to use
  2554. CT-Shell.  You can start at the index, and select the topic you want to
  2555. review.  Wherever feasible, the help file contains hyperlinks to other
  2556. topics, making it easy for you to find all the information related to a
  2557. subject.
  2558.  
  2559. Home
  2560. Changes the CT "home" directory to the current directory, so that when you
  2561. press <F6> this is where you'll return to, rather than the directory in
  2562. which CT was started.
  2563.  
  2564. This is something you might want to do if you know that you must leave the
  2565. current directory to do some things, but that you need to return
  2566. afterwards.  Having made the current directory "home," the return is easy.
  2567.  
  2568. Mail
  2569. Displays a message box that tells whether there is mail waiting to be read,
  2570. or waiting to be sent to a destination.  This feature is actually only
  2571. commenting on the existence of the two files identified by path names in
  2572. the  MailIn=  and  MailOut=  entries in [OPTIONS] section of the
  2573. CTSHELL.INI file.  If the user does not participate in network mail or
  2574. email, this feature could be used to determine the existence of any two
  2575. other files, possibly serving some other purpose instead.
  2576.  
  2577.  
  2578. Move
  2579.  
  2580. Moves a file to another location.  This feature changes the directory
  2581. information relative to a file without copying the file itself.  Thus, a
  2582. move takes only part of a second, no matter how big the file is that is
  2583. being moved.  No file data needs to be read or written, just the directory
  2584. entry for that file.
  2585.  
  2586. The destination is provided in response to this dialog:
  2587.  
  2588.  
  2589. Phone
  2590. The built-in phone directory can be used to recall numbers for manual
  2591. dialing, and on a computer that is equipped with a modem, it can be used to
  2592. automatically dial a listed number.  Although a large number of phone
  2593. numbers are more easily added to the CTSHELL.INI file with an editor, the
  2594. dialog that is invoked by the PHONE keyword can also be used to add and
  2595. delete entries.  As well, it is used to look up numbers and optionally to
  2596. dial them.
  2597.  
  2598. The dialog invoked by this keyword looks like:
  2599.  
  2600.  
  2601. The large box with the phone number for Computer Training is the list box
  2602. in which will appear all your entries, sorted in alphabetical order.  The
  2603. small box above it is an edit field, in which you can type new entries to
  2604. be added, or make changes to existing entries.  (CT can also dial a number
  2605. from the edit field.)
  2606.  
  2607. Doubleclicking on one of the entries in the list box will copy that entry
  2608. to the edit field, making it easy to begin with one entry and modify it
  2609. into others.  (Perhaps one person or company you know has more than one
  2610. phone?)
  2611.  
  2612. The controls at the right are all self-explanatory.  The pushbutton for
  2613. [Add] refers to the contents of the edit field, and adds that new entry to
  2614. the list box.  The pushbutton for [Delete] refers to the currently-selected
  2615. entry in the list box, and provides a way to delete an existing entry.
  2616.  
  2617. To keep matters simple, there is no pushbutton to do a change.  To change
  2618. an existing entry, copy it to the edit field by doubleclicking on it,
  2619. modify the entry, then select [Add]. Finish by deleting the old version.
  2620.  
  2621. Once you have made any changes, you will want to select the [Save]
  2622. pushbutton to commit those changes to your CTSHELL.INI file.  If you don't,
  2623. they will disappear when you exit from this dialog.  If you have made any
  2624. changes you regret, and want to reload the original contents of the list
  2625. box, you can do that with the [Reload] pushbutton.
  2626.  
  2627. The [Dial] pushbutton will appear only if the configuration includes a
  2628. value for the ModemInit=  setting.  If that is the case, CT assumes that a
  2629. modem is connected to the computer and that the rest of the settings in the
  2630. [Modem] section of the CTSHELL.INI file are correct.
  2631.  
  2632. You can select one of the entries in the list box, then press the [Dial]
  2633. pushbutton to have CT dial the number for you, so long as the edit field is
  2634. empty.  If there is an entry in the edit field, that entry will be dialed
  2635. by default, even if one of the entries in the list box is also selected.
  2636. When the dialing has been completed, CT will present a message box that
  2637. looks like this, where the instructions are self-explanatory:
  2638.  
  2639.  
  2640. If there is a problem opening the port to dial the phone, you'll see a
  2641. message that tells you so:
  2642.  
  2643. That means you should doublecheck the settings in your  ModemInit=  string
  2644. in the [OPTIONS] section of your CTSHELL.INI file.  That option can be
  2645. changed via the Preferences dialog.
  2646.  
  2647. The fact that CT dials by default from the edit field makes it easy to
  2648. enter and dial numbers without even adding them to your phone list.  Simply
  2649. type the number, which may be easier than using the phone in the ordinary
  2650. way, and select the [Dial] pushbutton.
  2651.  
  2652. CT provides the additional benefit of handling long and complicated dialing
  2653. prefixes and dialing suffixes with ease.  Such additional numbers may be
  2654. required to access lines from a complicated private business exchange, or
  2655. to charge phone calls to a credit card or calling card number.  Once set up
  2656. properly, dialing from within CT can be a lot easier than dialing from the
  2657. phone.
  2658.  
  2659. Position
  2660. CT defaults to displaying itself centered on the screen.  Its main window
  2661. is small enough to fit well using the resolution of any monitor that can be
  2662. used with Windows.
  2663.  
  2664. Those with higher-resolution monitors, such as 800x600 and above, will have
  2665. considerable choice regarding where to locate CTSHELL.  By grabbing the
  2666. caption bar at the top of the window with the mouse cursor, you can hold
  2667. down the left button and drag CT to the location you prefer.  Having done
  2668. so, you can invoke the POSITION keyword by selecting the appropriate entry
  2669. from the Shells menu, and thereby establish a new starting point for CT
  2670. whenever it starts.18
  2671.  
  2672. Prefer
  2673. This one invokes the Preferences dialog that makes it easy for you to
  2674. change many of the settings that are stored in your CTSHELL.INI file,
  2675. without needing to load and edit that file with an ordinary editor.  All of
  2676. the entries have been explained in detail in the earlier section that
  2677. described the contents of the CTSHELL.INI file:
  2678.  
  2679.  
  2680. If you make changes in any of these settings and click on the [Accept]
  2681. pushbutton, those changes will immediately go into effect for the duration
  2682. of the current session, or until you change them again.  To make those
  2683. changes permanent by storing them in the CTSHELL.INI file, you must check
  2684. the box that indicates you want the changes saved.  Then [Accept] will not
  2685. only put the changes into effect, but will store them in CTSHELL.INI as
  2686. well.
  2687.  
  2688. Note that some of the settings in the graphic just above were used as
  2689. examples in other places in this manual, but are not necessarily used in
  2690. the default configuration.
  2691.  
  2692. If you begin to make changes, and decide that you really need the original
  2693. values back, you can select [Reset] to restore everything from the settings
  2694. stored in CTSHELL.INI. Any changes made since the last time your settings
  2695. were saved will be lost.
  2696.  
  2697. Printer
  2698. Invokes your printer driver setup function.  The exact set of features and
  2699. options that are offered by this function depends on the printer driver
  2700. that you use.  This is probably where you can change from portrait to
  2701. landscape mode, determine how high your graphic resolution should be,
  2702. download font software, etc.
  2703.  
  2704. This next illustration shows what you'd see if you happen to use a
  2705. Hewlett-Packard LaserJet Series II printer, and happen to have it assigned
  2706. to LPT1.OS2:
  2707.  
  2708.  
  2709. One other issue related to line size and fonts is your printer's
  2710. resolution.  Often printer drivers allow a graphic resolution that is less
  2711. than the maximum possible, thereby speeding up printing of program
  2712. listings, with an acceptable decrease in print quality.
  2713.  
  2714. If your CT listings take too long to print, and are of unnecessarily high
  2715. quality, explore your options in the printer settings.  With a LaserJet,
  2716. for example, you might want to select a resolution of 150 dots per inch.
  2717. That will still provide crisp, readable listings, but they will print
  2718. considerably faster than if the resolution were left at 300 dots per inch.
  2719.  
  2720. Rename
  2721. Changes the name of a file, and unlike the DOS REN command, CT will change
  2722. the name of a directory as well.  This is actually implemented as the same
  2723. low-level DOS function that MOVEs a file, and it can be used for the same
  2724. purpose.  If you provide a new pathname that includes a different directory
  2725. than the current directory, your file will be not only renamed, but moved
  2726. to that directory as well.
  2727.  
  2728.  
  2729. SetDate
  2730. See the description of this one in the following section on keywords that
  2731. affect tagged files. For this feature, the same function is used for single
  2732. or tagged files.
  2733.  
  2734. Shred
  2735. This keyword first destroys the contents of a file, and then deletes it.
  2736. In this way, the file is rendered useless, even if someone later manages to
  2737. undelete it.  Because the additional work takes extra time, this operation
  2738. is slower than a simple DELETE, and should be used only when data security
  2739. is an issue. The dialog for this keyword looks almost exactly like the one
  2740. for DELETE.
  2741.  
  2742. System
  2743. Displays system information.  This is the same information you can get from
  2744. the Windows Program Manager by clicking on its HELP/ABOUT option.  You can
  2745. find out what mode you are running, using what kind of processor and
  2746. coprocessor (if any), and whether small- frame or large-frame EMS operation
  2747. is in effect (if any).  This keyword does not display the amount of memory
  2748. available, as CT displays that at all times anyway:
  2749.  
  2750.  
  2751. Note that the percentage of system resources shown available here may
  2752. differ by a small amount from that shown in the About box from Program
  2753. Manager, due to different ways of rounding the available numers.  CT
  2754. reports information that is obtained directly from the Windows kernel, and
  2755. any difference should be so small as to be ignored.
  2756.  
  2757. Tagged
  2758. Displays the number and size of tagged files.  If you have tagged a set of
  2759. files to be copied to a floppy disk, you might want to check to be sure
  2760. that the number of bytes tagged does not exceed the number of bytes that
  2761. are free on your disk.
  2762.  
  2763. Because of the way disks are sectored, you will actually need a bit more
  2764. room than the number of bytes that are tagged, but you'll never need less
  2765. room.  Use the value provided here as an approximation:
  2766.  
  2767.  
  2768. Touch
  2769. Makes the date/timestamp of the current file reflect the current date/time.
  2770. This is mainly of interest to programmers, who sometimes need to adjust a
  2771. date in this way while using a MAKE type program maintenance utility.
  2772.  
  2773.  
  2774. Here are documented the special keyword versions that work with a group of
  2775. tagged files, instead of just the current file.  Note that any of these
  2776. could be used to handle a single current file (unless it were explicitly
  2777. untagged with <F1>), but the reverse is not true:
  2778.  
  2779. SetDate
  2780. Changes the date/time stamp that DOS has applied to a file or a set of
  2781. files.  This operation is easily reversed if an error is made, so only one
  2782. version of this keyword is needed - one that will work for tagged files.
  2783. Whenever this keyword is used, the new date and time that the user provides
  2784. will be applied to all the tagged files.  If you want to change the
  2785. date/time for a single file, simply ensure that it's the only file that is
  2786. tagged.19
  2787.  
  2788.  
  2789. Tattrib
  2790. Changes the attributes of tagged files.  If you should want to change all
  2791. the .EXE and .COM files in a directory to read/only status, to prevent
  2792. unnecessary share violations with a network, you could tag those files,
  2793. then use this keyword to give them all a read/only attribute.
  2794.  
  2795. The dialog for this keyword looks exactly like the one that is used to
  2796. change the attributes of a single file.
  2797.  
  2798. Tcopy
  2799. Copies a set of files to another location.  You must provide a directory as
  2800. the destination.  CT does not support file concatenation (combining several
  2801. files into one) by copying multiple files to a single file20.  However, CT
  2802. does support multiple destinations for a multiple file copy.  Put another
  2803. way, you can tag an assortment of files that you want to copy to two
  2804. places, then when the dialog asks for the destination(s), you can provide
  2805. both.  When the first series of copies has been made, the second will be
  2806. done automatically.
  2807.  
  2808.  
  2809. Notice that there is a check box to allow you to specify an update only.
  2810. If you do so, you are assured that only older files are overwritten by the
  2811. ones you're copying now.  In this way, you can safely copy a set of
  2812. documents from a directory on your workstation to a directory on a server,
  2813. knowing that you are doing just an update-that anything newer on the server
  2814. remains unchanged.
  2815.  
  2816. If you do an update from location A to location B, then do an update from
  2817. location B to location A, you will end up with two identical directories,
  2818. each of which contains the same set of the newest files from both.
  2819.  
  2820. This feature is really convenient if you have a main directory on a server
  2821. for the storage of document files or program source files.  You can work
  2822. with copies of those files in a local directory, and easily update the
  2823. server with your revisions, without taking a chance that you'll
  2824. accidentally overwrite any newer files.
  2825.  
  2826. Tdelete
  2827. Deletes a set of tagged files.  You are prompted for confirmation before
  2828. the deletion is accomplished:
  2829.  
  2830.  
  2831. Tmove
  2832. Moves a set of tagged files to another location.  Just as with the single
  2833. file move keyword, these files are not physically copied to their new
  2834. location, just their directory entries are changed.
  2835.  
  2836. Tshred
  2837. Shreds a set of tagged files, first destroying the data in the file, then
  2838. deleting it.  In that way, its contents are rendered useless, even if
  2839. someone later manages to undelete the file.  This operation takes longer
  2840. than simply deleting the files, so it should be used when data security is
  2841. an issue.
  2842.  
  2843. Ttouch
  2844. Changes the date/timestamp of all the tagged files to the current
  2845. date/time.  Used mainly by programmers who use a MAKE type program
  2846. maintenance utility.
  2847.  
  2848. These keywords have been provided so that you can have complete control
  2849. over how your menus are crafted, rather than having CT contain a fixed menu
  2850. that determines how you must access these features.  For example, one user
  2851. might think it makes good sense to have COPY and MOVE in a menu named
  2852. Utils, whereas someone else might think they belong in one named Claudia.
  2853. CT keywords are not case-sensitive: uppercase and lowercase work the same
  2854. way.
  2855.  
  2856.  
  2857.  
  2858. Chapter 7 Special Field Characters
  2859.  
  2860. Many times a command should contain the name of the current file, a list of
  2861. all the tagged files, or other additional information.  CT provides a
  2862. powerful and easy way to generate complete commands, that doesn't require
  2863. any programming knowledge or experience.
  2864.  
  2865. Object-Oriented Substitution
  2866. Sometimes it is convenient to refer to an environment variable within the
  2867. directory path field, so that the command doesn't need to be changed just
  2868. because the directory has been changed.  There are a number of special
  2869. field characters that allow you to insert such information into a command
  2870. in a convenient object-oriented manner.
  2871.  
  2872. The term "object-oriented" here means that you do not need to write special
  2873. code using a programming language, or call a function or procedure to do
  2874. these things.  Certain objects (characters like ! and #) that you place in
  2875. the command automatically take on values that represent file names or other
  2876. information.
  2877.  
  2878. Here is a listing of all the special field characters that may be used in
  2879. CT pop-up menu entries.  Although any of them may be used in any of the
  2880. fields except the entry name field and the keyword field, you will find
  2881. that certain ones are likely to be used in the directory path field, and
  2882. other ones are more likely to be of use in the executable path and switches
  2883. fields.
  2884.  
  2885. In each of the following examples, a DOS command line is shown, to
  2886. illustrate how the command would look if it were entered normally at a DOS
  2887. prompt.  After that, the CTSHELL.INI entry is shown that would produce that
  2888. command, substituting current information for the CT special characters:
  2889.  
  2890. !
  2891. The exclamation mark translates into the current file name.  Here's an
  2892. example that would use the Windows NOTEPAD.EXE editor to edit the current
  2893. file:
  2894.  
  2895.     Command line:   notepad.exe filename.ext
  2896.  
  2897.     CT entry:    {&Edit} {} {notepad.exe} {!} {}
  2898.  
  2899. #
  2900. The pound sign translates into a list of files that are tagged, or as many
  2901. of them as can be squeezed into the DOS limit of 127 characters on a
  2902. command line.  You might like to add all of the tagged files to an archive
  2903. file named ARCNAME.LZH by using the LHArc program:21
  2904.  
  2905.     Command line:    lha a arcname file1 file2 file3 ...
  2906.  
  2907.     CT entry:    {&LHArc Add} {} {lha.exe} {a arcname #} {} 
  2908.  
  2909. @
  2910. The commercial at-sign translates to the root filename of the current file,
  2911. without any extension.  For example, if the current file were named
  2912. FOO.EXE, the the {@} in a command would become FOO.
  2913.  
  2914. There aren't many cases when the root filename is needed, and programmers
  2915. will probably find this one more useful than most other users.  For
  2916. example, if the current filename is FOO.EXE, the expression {@.C} would
  2917. translate to FOO.C, and the expression {@.EXE} would translate to FOO.EXE.
  2918.  
  2919. If you do store all your .PIF files in a special subdirectory, you can
  2920. create a menu entry that will allow you to edit the PIF file for any .EXE
  2921. that happens to be the current file:
  2922.  
  2923.     Command line:    pifedit.exe \pif\filename.pif
  2924.  
  2925.     CT entry:    {&PIFedit an EXE} {} {pifedit.exe} {\pif\@.pif} {} 
  2926.  
  2927. ?argument?
  2928. A pair of question marks surrounds the prompt you want CT to display when
  2929. it asks you for a string of characters to put in its place.  This is how
  2930. you can supply variable arguments at the time an entry is executed.
  2931.  
  2932. For example, the LHArc command shown earlier will always create an archive
  2933. called ARCNAME.LZH, because the name ARCNAME has been hard coded, or stated
  2934. explicitly, in the command.  It will require that the same archive be
  2935. created or updated each time this pop-up entry is executed, although the
  2936. currently-tagged file names may be different each time.  Compare that to
  2937. this example, where CT will ask the user for an archive name each time the
  2938. command is executed:
  2939.  
  2940. Command line:    lha a arcname file1 file2 file3 ...
  2941.  
  2942. CT entry:    {&LHArc Add} {} {lha.exe} {a ?Archive Name? #} {}
  2943.  
  2944. When this pop-up entry is executed, CT will display a dialog box
  2945. identifying the needed argument as "Archive Name" and asking the user to
  2946. supply a name.  That answer will be inserted into the command line,
  2947. replacing the ?Archive Name? characters:
  2948.  
  2949.  
  2950. Although it is usually an error to use the ! or the # special characters
  2951. more than one time in a command, you may want to use several ?? pairs, to
  2952. ask for multiple arguments for a command.  Since each prompt specifies what
  2953. information is needed, the user won't get them confused.
  2954.  
  2955. And since it does no harm to enter a blank answer, it is even practical to
  2956. use a prompt for those times when you might, or might not, need input.  If
  2957. none is needed for a particular execution of the command, the prompt can be
  2958. ignored by clicking on [Cancel] button or simply entering a blank answer.
  2959.  
  2960. %variable%
  2961. A pair of percent signs will cause CT to insert the value for a named
  2962. environment variable into the command.  This is consistent with the way
  2963. environment variables can be accessed within a batch file, and the topic of
  2964. environment variables is explained fully in your DOS manual.
  2965.  
  2966. Briefly, you set environment variables to a given value with a SET command
  2967. like this:
  2968.  
  2969.     SET ENVAR=contents of variable
  2970.  
  2971. Although that can be done at a DOS prompt, it is usually done in an
  2972. AUTOEXEC.BAT file instead, so that your environment variables are
  2973. established correctly each time you start your computer.  Programs can
  2974. obtain various kinds of information from environment variables, and the
  2975. documentation for those programs will tell you how to set them, if any are
  2976. needed.
  2977.  
  2978. It's very common for a language compiler to require an environment variable
  2979. named LIB to contain the directory name where the compiler's runtime
  2980. libraries-files that are used in creating programs-are stored.  Many
  2981. programs use the TEMP environment variable to tell them the best place to
  2982. create a temporary file.
  2983.  
  2984. When used in a CT pop-up entry, the two percent signs and the variable name
  2985. that is between them are replaced by the value that DOS associates with
  2986. that environment variable.
  2987.  
  2988. For example, a programmer might want an easy way to insert object modules
  2989. that are being created (parts of programs) into a library named FOO.LIB,
  2990. and which is located in the directory pointed to by the LIB environment
  2991. variable.  It is assumed that the current file will be an object module, a
  2992. file ending with the extension .OBJ.  This example assumes that the
  2993. environment variable currently contains the value C:\LIB and that the
  2994. current file name is BAR.OBJ:
  2995.  
  2996.     Command line:    lib C:\LIB\FOO +BAR.OBJ;
  2997.  
  2998.     CT entry:    {Add &Module} {} {lib} {%LIB%\FOO +!;} {}
  2999.  
  3000. A second example shows how you might use an environment variable in the
  3001. directory path field, one of the rare uses of CT special characters in that
  3002. field.  Here a command is created that will change the working directory to
  3003. the one in which a programmer's header files are stored, and pointed to by
  3004. the environment variable called INCLUDE:
  3005.  
  3006.     CT entry:    {Change to &Headers} {%INCLUDE%} {} {} {}
  3007.  
  3008. Since there is no command to execute in this case, the directory change
  3009. will be permanent (although you can still return to the original starting
  3010. directory by pressing <F6>).
  3011.  
  3012. Another example shows how you might use the same environment variable to
  3013. edit your PRG.H file, which is assumed to be located in that directory,
  3014. using the QEdit editor:
  3015.  
  3016.     Command line:    q.exe C:\MSC600A\INCLUDE\PRG.H
  3017.  
  3018.     CT entry:    {Edit PRG.H} {} {q.exe} {%INCLUDE%\PRG.H} {}
  3019.  
  3020. Finally, there's even a special CT pseudo-environment-variable called
  3021. WINDIR that you can use in your command entries wherever you need to refer
  3022. to the Windows "home" directory. Although such an environment variable is
  3023. never set at DOS (there's no need for it-Windows already knows where its
  3024. directory is, and so do Windows programs), it is used in these entries in
  3025. the same way that an environment variable would be, so it follows the same
  3026. syntax.
  3027.  
  3028. Thus, the sample menu entry that edits your Windows SYSTEM.INI file using
  3029. NOTEPAD.EXE is always able to find it because of the %WINDIR% "environment
  3030. variable" that CT replaces with the actual directory name.  It looks like
  3031. this:
  3032.  
  3033.     {SYSTEM.INI File} {} {notepad.exe} {%WINDIR%\system.ini} {}
  3034.  
  3035. As in the case of the ?? special characters, it does no harm to use more
  3036. than one environment variable in a command.  They may even be used in more
  3037. than one field in the same command, if appropriate.
  3038.  
  3039.                 <end of text -- footnotes follow...>
  3040.  
  3041. 1 They make that change by replacing PROGMAN.EXE with FILEMAN.EXE in a
  3042. SHELL=  entry near the beginning of their SYSTEM.INI file, in the Windows
  3043. directory.
  3044.  
  3045. 2 Of course, experienced users will understand that there are some programs
  3046. that simply won't run in Windows at all, in their current versions, perhaps
  3047. due to memory management conflicts or conventional memory requirements.
  3048. CT-Shell is subject to the same limitations that Windows itself is, and it
  3049. can't work any special magic with these hard cases.  However, it's safe to
  3050. say that if you've run it from Windows, you can almost certainly run it
  3051. from CT- Shell.
  3052.  
  3053. Incidentally, CT-Shell has been designed to require as little memory as
  3054. possible when it runs.  Although the executable file is more than 85K in
  3055. size, you'll find that the program actually requires about 35K or so to
  3056. run, depending partly on your system.
  3057.  
  3058. 3 Subject to memory limitations, of course.  Windows has to RUN all these
  3059. programs!
  3060.  
  3061. 4 Be advised that the dialog box you use to enter your file spec will
  3062. contain a default of   *.  , to which you can simply add an extension, if
  3063. you want.  To keep that original part of the prompt from disappearing when
  3064. you type your first letter, you need to click the mouse one time where you
  3065. intend to type, or press one of the arrow keys on the keyboard.  The
  3066. reverse-image prompt will change to a normal image, letting you add to it
  3067. rather than replacing it with your input.
  3068.  
  3069. It is probably obvious by now, but if you want to specify a file spec that
  3070. does not begin with   *.  , you can simply begin typing, and what you enter
  3071. will replace that default prompt.
  3072.  
  3073. 5 Windows traps the <F10> key, by the way, and uses it to access the menu,
  3074. duplicating what the <Alt> key is usually used for.  That is because of IBM
  3075. mainframe terminals that don't have an <Alt> key.  In an attempt to
  3076. standardize an interface that can be used across many diverse systems,
  3077. <F10> was chosen to be the menu access key that exists on all terminals.
  3078.  
  3079. Still, anything you assign to this <F10> key can be executed by clicking
  3080. the mouse on the screen representation of the key, as you can with all the
  3081. others.  Since most users will probably access these commands with the
  3082. mouse, most of you probably won't notice - or care - that pressing the
  3083. <F10> key itself accesses the menus.
  3084.  
  3085. 6 The reason full seconds are not stored is an interesting matter of simply
  3086. not enough room in the directory entry. The creation time is stored in a
  3087. single 16-bit integer in the DOS directory on the disk.  The Hours field
  3088. requires 5 bits, to store numbers as high as 23.  The Minutes field
  3089. requires 6 bits, as it must store numbers as high as 59, and that leaves
  3090. only 5 bits left for the Seconds field.  The best resolution available
  3091. (that can be stored in 5 bits) is seconds divided by 2, and that's exactly
  3092. what DOS does.
  3093.  
  3094. 7 Sometimes network administrators will assign the read/only attribute to
  3095. executable files that are to be shared by several users.  If such a file is
  3096. accessed by more than one user at a time, having the read/only attribute
  3097. will prevent the DOS SHARE program from complaining about a share
  3098. violation.  Since the files can't be modified by anyone, SHARE is content
  3099. to allow multiple users to access it at the same time.
  3100.  
  3101. 8 Sometimes hidden files are used to provide copy protection for a program:
  3102. files you can't see and don't know are there are required for the
  3103. application to run.  Since it displays all file attributes, and you can
  3104. easily see that a file has this attribute, CT-Shell displays all hidden
  3105. files.
  3106.  
  3107. CT-Shell, by the way, is not copy protected in any way.  Computer Training
  3108. respects the honesty of its customers, and doesn't want to make their lives
  3109. any more complicated than they may already be!
  3110.  
  3111. 9 Not without using a special command to delete the directory.  DOS
  3112. provides an RD (remove directory) command, but it won't remove a directory
  3113. that has any files in it, and in any case, the DEL command doesn't work
  3114. with directories at all.  CT-Shell has a DELDIR keyword that is documented
  3115. in the CTSHELL.INI Reference section, that can be used to delete an entire
  3116. directory and everything it contains.
  3117.  
  3118. 10 Because that's really the only purpose of this attribute, a little more
  3119. explanation seems in order.  A differential backup is one that copies only
  3120. those files which have been changed since the last full backup, which
  3121. cleared this attribute on all the files it copied.  A differential backup
  3122. does not clear the archive attribute, so you always have just two backup
  3123. sets - the full set and the differential set.  When you do a restore, there
  3124. are never more than these two backup sets to replace.
  3125.  
  3126. Another type of backup, an incremental backup, differs by clearing the
  3127. archive attribute whenever files are saved.  Thus, with an incremental
  3128. backup you create a new backup set every time you do a backup, and it
  3129. always contains the files that were changed since the last incremental
  3130. backup.  When you do a restore, you may be required to restore a large
  3131. number of backup sets.
  3132.  
  3133. 11 If you honestly want to use an ordinary DOS command like DIR from the
  3134. CT-Shell command line or from a menu entry, you'll want to make a PIF file
  3135. for that command that invokes your command processor and provides any
  3136. options that you need.  For example, if you run any command from within
  3137. CT-Shell that produces screen output that you want to look at before
  3138. returning, you'll want to be sure that the PIF file for that command does
  3139. not have the option checked to close the window automatically when the
  3140. program is finished.
  3141.  
  3142. The program to run will be your command processor, and you'll probably need
  3143. to include a /c switch on its command line, otherwise you'll have started a
  3144. DOS session with it.  (The /c switch tells it you want to return
  3145. immediately after executing the command.)  Here's how you might handle this
  3146. in a PIF file that uses COMMAND.COM to provide a CHKDSK command:
  3147.  
  3148.         COMMAND.COM /c chkdsk
  3149.  
  3150. By the way, with current versions of DOS, it is very unsafe to use the /f
  3151. switch with CHKDSK, when you're running under Windows (to "fix" disk
  3152. errors).  The reason is because you may have a number of files open for
  3153. programs that you have running, and CHKDSK doesn't understand that.  It
  3154. will think the files are lost clusters, and will gather them together for
  3155. deletion.  Future versions of DOS will undoubtedly contain CHKDSK commands
  3156. that can make this distinction and will be able to be used safely under
  3157. Windows, but be sure before you use it!
  3158.  
  3159. 12 These extensions are automatically installed in your WIN.INI file by
  3160. Windows during its setup process.  You can also edit that section of your
  3161. WIN.INI file to add other extensions that would be useful to you.  Your
  3162. Windows documentation has more information about the [Extensions] section
  3163. of your WIN.INI file, but here are some examples that may be enough for
  3164. you:
  3165.  
  3166.         C=QFULL.PIF ^.C
  3167.         SLC=TELIX S^.SLC
  3168.  
  3169. The first example shows what CT-Shell should do if you doubleclick a file
  3170. name that ends in .C (a C language program source file).  This
  3171. implementation will run the QEdit editor using the Program Information File
  3172. named QFULL.PIF, and pass it the current file name (^) and the extension .C
  3173. as arguments.
  3174.  
  3175. The second example shows a way to start up the Telix communication program
  3176. and pass it the name of a compiled script to run.  Telix's command line may
  3177. include an optional letter "S" which is followed by the name of a compiled
  3178. script.  Those scripts end with the extension .SLC.
  3179.  
  3180. Any such extensions that you set up in your WIN.INI file can be used both
  3181. by the Windows File Manager and by CT-Shell.  Be creative with them, and
  3182. you can save a great deal of work.  You can doubleclick on a database file
  3183. and automatically start your database manager.  You can doubleclick on a
  3184. phone directory file and automatically start the communication program that
  3185. uses it.  The possibilities are nearly endless.  This is a VERY powerful
  3186. feature, and one that experienced users should not let pass by without
  3187. experimenting a bit!
  3188.  
  3189. 13 A modem is a device that allows a computer to talk to another computer
  3190. over ordinary phone lines.  In this case, it isn't being used for that, but
  3191. just to dial a phone number for a voice call.
  3192.  
  3193. 14 The names used in menu entries may be any practical length.
  3194. Technically, CT-Shell limits them to 127 characters, but few will find any
  3195. reason to use names that large.
  3196.  
  3197. 15 The current file is tagged if it is blackened.  That's almost always the
  3198. case, if you've clicked on any files in the list.  The only way for the
  3199. current file not to be tagged, is if you have used one of the function keys
  3200. to untag it, either F1-Toggle Tag or F3-Untag All.
  3201.  
  3202. 16 If you are using a third-party replacement command processor, be sure
  3203. that you have followed the manufacturer's directions regarding setting your
  3204. COMSPEC variable.  If you do not set this explicitly to match your
  3205. substitute processor, DOS will set COMSPEC to COMMAND.COM in the root
  3206. directory of the boot disk, as a default.
  3207.  
  3208. 17 The UNDELETE command for DOS 5.0, for example, may not find a file that
  3209. was deleted by CT-Shell.  You may be able to recover a deleted file by
  3210. using that or another utility, but there is no guarantee at all.  It is
  3211. best to assume that once CT-Shell has deleted a file, it's going to stay
  3212. deleted, and to be very careful with this keyword.
  3213.  
  3214. The same is true of the DELETE keyword documented next, and the DEL command
  3215. when used at the CT-Shell command line. 18 If you ever want to reestablish
  3216. the central position, go into your CTSHELL.INI file and in the [Options]
  3217. section, delete the entries for  StartX=  and  StartY=  .  The first of
  3218. those determines the starting position of the upper left corner of the CT
  3219. main window along the X-axis, that is, horizontally.  The second determines
  3220. the starting position along the Y-axis, or vertically.
  3221.  
  3222. 19 Programmers, in particular, enjoy this feature, because it allows them
  3223. to follow the convention in which all the files for the release of a
  3224. software package have the same datestamp, and have a timestamp that
  3225. specifies the version number.  Thus, a timestamp of 01:00 would mean the
  3226. files are part of version 1.00, and a timestamp of 2:34 would make it
  3227. version 2.34.
  3228.  
  3229. When a file is modified, DOS changes the date and time for that file, so
  3230. you can easily determine later whether any of the release files has been
  3231. modified in any way. 20 DOS command processors like COMMAND.COM provide
  3232. that capability.  It is a feature that most people use so seldom, that a
  3233. design decision was made to leave it out.
  3234.  
  3235. If you ever need to perform this unusual operation, you can easily select
  3236. the Default COMSPEC entry in the Shells menu, and start a copy of your
  3237. default command processor.  Then issue a copy command that looks like this:
  3238. COPY  file1+file2+file3+file4  file5 .  That will create one file5 that
  3239. contains all the text from the first four files.
  3240.  
  3241. If you ever need to do the same with non-text files, be sure to use the /B
  3242. switch to force a binary mode copy.
  3243.  
  3244. 21 LHArc is a popular freeware data compression program that is available
  3245. from many sources.   It creates archives, or libraries, of files that have
  3246. been compressed much smaller than their original size.  It makes an
  3247. excellent example for these special characters, because it gets a lot of
  3248. information from its command line when it is run.
  3249.