home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / C128 / CPMPRMR2.TXT < prev    next >
Text File  |  2000-06-30  |  12KB  |  302 lines

  1. *********************************************************************
  2. This article is being presented through the *StarBoard* Journal of
  3. the FlagShip/StarShip SIGs (Special Interest Groups) on the Delphi
  4. and GEnie telecommunications networks.  Permission is hereby granted
  5. to non-profit organizations only to reprint this article or pass it
  6. along electronically as long as proper credit is given to both the
  7. author and the *StarBoard* Journal.
  8. *********************************************************************
  9.                                   -
  10.                             CP/M Primer #2
  11.                                   -
  12.  Disk and File Attributes - Time/Date Stamping - Password Protection
  13.                                   -
  14.                By: Mike Mantino (GEnie address: MIKEM)
  15.                                   -
  16.  
  17. Last month we discussed the DIR and DIR.COM utilities (built-in and
  18. transient) which allowed us to view the disk directory in a variety of
  19. ways using a number of options.  We were able to acquire listings of
  20. all the files we had on each drive and in each 'user area' of the disk,
  21. and in doing so we noticed that these files had their own distinct
  22. attributes.  Some were SYS files, others were DIR files, and they all
  23. had a two-letter identifier signifying whether they were Read-Only (RO)
  24. or Read-Write (RW).  So, too, we had brushed over the term
  25. 'time-stamping' and inferred that it was possible to password-protect
  26. individual files and/or whole disks.  This month we will attempt to
  27. change and set these attributes and parameters in order to give you full
  28. control over your disk files.
  29.  
  30.                                   -
  31.  
  32. The first thing we need to do upon boot-up of CP/M is to set the
  33. current time and date.  This will later allow us to use time and date
  34. stamping of our files, so we can quickly locate the most recent copy of
  35. a file and check to see when it was last updated or accessed from
  36. disk.  Let's do this right now.
  37.  
  38. The DATE command is another transient utility that allows us to change
  39. the current date and time of day.  When you boot-up CP/M, the date and
  40. time are defaulted to the creation date of your system.  Let's see what
  41. that current time and date is.  At the A> prompt, type DATE.  CP/M will
  42. respond with something like:  SAT 07/18/85 10:45:10     Now we will
  43. change this to the current date and time.  There are two ways of doing
  44. this.  The first is to type DATE followed by the current day and time,
  45. in the format:  MM/DD/YY HH:MM:SS    For example, we might type:
  46.  
  47.   A> DATE 08/10/86 11:30:00
  48.  
  49. CP/M would respond with:
  50.  
  51.   Press any key to set time.
  52.  
  53. Another way of going about the same thing, would be to type DATE SET,
  54. and letting CP/M prompt us for input.  For instance:
  55.  
  56.   A> DATE SET
  57.  
  58. Would cause CP/M to respond with:
  59.  
  60.   Enter todays date (MM/DD/YY):
  61.  
  62. Enter the date, or just press <RETURN> to skip the date, and CP/M will
  63. then respond with:
  64.  
  65.   Enter the time (HH:MM:SS):
  66.  
  67. Enter the time, or press <RETURN> to skip the time, and CP/M will
  68. respond with:
  69.  
  70.   Press any key to set the time.
  71.  
  72. Now that we have set the current date and current time, let us check
  73. to ensure that CP/M has indeed noticed our actions.  At the A> prompt,
  74. type DATE and make sure that the date and time is actually what we had
  75. set it to.
  76.  
  77.                                   -
  78.  
  79. We are ready to begin time and date-stamping of our files on disk and
  80. set up blank disks for future stamping.
  81.  
  82. To do this, we must first run the INITDIR utility in order to
  83. initialize the directory.  If files already exist on the disk, INITDIR
  84. will check the space available for date and time stamps in the
  85. directory.  If there is not enough room there, INITDIR will not
  86. initialize it and will return an error message.  If the disk is
  87. blank, the utility will set up your disk and set aside the appropriate
  88. space in the directory to store the stamping.  INITDIR can also be used
  89. to clear time/date stamping from an already initialized disk, thus
  90. recovering some disk space.  Let's take an example of how all of this
  91. is accomplished.
  92.  
  93.   A> INITDIR
  94.  
  95. The system will return the following message:
  96.  
  97.   INITDIR WILL ACTIVATE TIME STAMPS FOR SPECIFIED DRIVE.
  98.   Do you really want to re-format the directory: A  (Y/N)?
  99.  
  100. If the directory were already initialized for time and date stamping,
  101. then INITDIR would ask you:
  102.  
  103.   Directory is already re-formatted.
  104.   Do you wish to recover date/time stamping directory space (Y/N)?
  105.  
  106. Answering Y will eliminate stamping on that disk and recover space.  If
  107. you answer N, then stamping remains active and INITDIR will then ask:
  108.  
  109.   Do you want the existing date/time stamping cleared (Y/N)?
  110.  
  111. Entering Y will clear all current dates and times, but keep the disk
  112. initialized for further stamping.
  113.  
  114.                                   -
  115.  
  116. Now we are ready to stamp some files with the current date and time,
  117. and once that is accomplished, any time we access or change that file,
  118. the current time and date can be easily assigned.  We need to use the
  119. SET utility to set-up the file for the current time and date.
  120.  
  121. This SET utility is one with lots of power.  Besides using it for time
  122. and date stamping, it can allow us to set the file attributes (R/O and
  123. R/W, DIR and SYS), set the disk attributes (R/O and R/W), assign a
  124. label to the disk (just like a disk name in 64/128 mode), and assign
  125. passwords to the disk and/or files.  More about these other options
  126. later.  First, let's finish up time/date stamping.
  127.  
  128. SET has three accompanying specifications for time and date stamping.
  129. They are:  ACCESS, CREATE, and UPDATE.   The first two, ACCESS and
  130. CREATE, are mutually exclusive options, meaning that when one is turned
  131. on, the other is automatically off.
  132.  
  133. SET [CREATE=ON] is used before you create a CP/M file and will record
  134. the creation time of that file.
  135.  
  136. SET [ACCESS=ON] is used to record when the last file was accessed.
  137.  
  138. SET [UPDATE=ON] is used to record the time that the file was last
  139. updated.
  140.  
  141. Thus, if you use both CREATE and UPDATE together, editing a file will
  142. change both the UPDATE and CREATE stamps.
  143.  
  144. To view the file-stamping on your disk, all you have to do is use the
  145. DIR.COM utility with the [FULL] specification, like this:
  146.  
  147.   A> DIR [FULL]
  148.  
  149. The best way to understand how this stamping operation works is to set
  150. ACCESS to ON, then load in a file on your disk.  Abort from the
  151. program and type in the DIR [FULL] command to see what has happened.
  152.  
  153.                                   -
  154.  
  155. Now we will review how to set the file attributes to READ ONLY,
  156. READ/WRITE, SYS, and DIR.
  157.  
  158. As you know, files that have a SYS designation are SYStem files which,
  159. when in USER area 0 can be accessed from *any* USER area of the disk.
  160. To set a file to a SYStem file, we would call up the SET command again,
  161. but in this form (assuming that the file is called TESTING.COM):
  162.  
  163.   A> SET TESTING.COM [SYS]
  164.  
  165. We could have, at the same time, set that same file so that it were
  166. READ ONLY by typing this:
  167.  
  168.   A> SET TESTING.COM [RO SYS]
  169.  
  170. The same holds true for the DIR and READ/WRITE attributes.
  171.  
  172. That was easy enough, and so is doing the same for the drive itself!
  173. To set drive B for READ ONLY, we would type:
  174.  
  175.   A> SET B: [RO]
  176.  
  177. NOTE that setting a drive to READ ONLY would mean that PIP could not
  178. copy a file to it, RENAME could not rename a file on it, ERASE could
  179. not delete a file from it, and you could not perform any disk writing
  180. operation.  Specifying READ/WRITE (RW) will reset the drive to its
  181. original state, as will pressing CONTROL-C.
  182.  
  183.                                   -
  184.  
  185. Now, let's set up a label for your disk, just like giving the disk a
  186. name in C-64 or C-128 mode.
  187.  
  188. We can assign a label name of up to eight characters, plus a three
  189. character type, similar to a file name and file type.  For instance:
  190.  
  191.   A> SET [NAME=GAMES.108]
  192.  
  193. This would give our disk the name GAMES.108.  If we did not specify any
  194. name, the label would be defaulted to LABEL.  Labels make it easy for
  195. us to catalog all of our CP/M disks.
  196.  
  197.                                   -
  198.  
  199. We aren't done with the SET utility yet!  If you've ever wanted to
  200. password-protect a disk or disk file before, now is your chance.
  201.  
  202. To assign a password to the entire disk (actually to the disk label),
  203. all you need to do is use the following format.  We will assume that
  204. you want to use a password of GENIE......
  205.  
  206.   A> SET [PASSWORD=GENIE]
  207.  
  208. Easy enough.  Hereafter, the SET command will prompt for this password
  209. whenever you (or anyone else) tries to set any of the functions that
  210. are controlled by the SET utility.  If you do not set up a disk
  211. password (label password), then anyone who has access to the disk can
  212. set up other attributes using SET, which will make the disk
  213. inaccessible to *you*!
  214.  
  215. Any time you want to remove this password from the disk label, use the
  216. same syntax you used to assign it, but instead of the word just hit
  217. <RETURN>.  Example:
  218.  
  219.   A> SET [PASSWORD=<RETURN>
  220.  
  221. Again, note that the first bracket '[' must be used for specs, but the
  222. ending bracket ']' is optional.
  223.  
  224.                                   -
  225.  
  226. Along with password-protecting the disk, we can also assign passwords
  227. to individual files on that disk.  To do this, we must first tell CP/M
  228. to turn on protection for all disk files.  We do this with yet another
  229. form of the SET utility:
  230.  
  231.   A> SET [PROTECT=ON]
  232.  
  233. Now we specify the file which we want to assign a password to, and then
  234. the password itself:
  235.  
  236.   A> SET TESTFILE.TXT [PASSWORD=GENIE]
  237.  
  238. Passwords for files do not need to be the same as those you use for the
  239. disk.  Also, passwords can be up to eight characters in length, and all
  240. lower-case letters are translated to uppercase.  In addition, you may
  241. use wildcards in your filespecs and SET will assign that password to
  242. all files that match.
  243.  
  244. Now we can set a password-protection mode for those files with
  245. passwords.  There are four forms we can use: READ, WRITE, DELETE, and
  246. NONE.  An example of this would be:
  247.  
  248.   A> SET TESTFILE.TXT [PROTECT=READ]
  249.  
  250. Here is an explanation of the individual modes and the level of
  251. protection they give your files:
  252.  
  253. READ - The password is required in order to read, copy, write, delete
  254. or rename the file.
  255.  
  256. WRITE - The password is required in order to write, rename, or delete
  257. the file.  The password is not necessary to read the file.
  258.  
  259. DELETE - The password is required only if you want to rename or delete
  260. the file.  The password is not necessary to modify or read the file.
  261.  
  262. NONE - No password is in existence for the file.  If one does exist,
  263. you may use this to delete the password.
  264.  
  265. Here are two examples of chaining specs in order to password protect
  266. files:
  267.  
  268.   A> SET TESTFILE.TXT [PASSWORD=GENIE PROTECT=WRITE]
  269.   A> SET *.TXT [PASSWORD=GENIE PROTECT=WRITE]
  270.  
  271. The first example sets the password 'GENIE' to the file called
  272. TESTFILE.TXT, and makes it WRITE protected to prevent someone from
  273. editing it.
  274.  
  275. The second example does the same thing, but because we used the *
  276. wildcard, *all* text files on the disk will be given the password and
  277. WRITE protection.
  278.  
  279.                                   -
  280.  
  281. WARNING!!!!   Always make a record of your passwords!  You will not be
  282. able to access your files without your file-passwords, unless you turn
  283. off the protection for the whole disk.  AND!!.....if you forget the
  284. password to the disk itself, you cannot access the disk in order to
  285. access those files!
  286.  
  287.                                   -
  288.  
  289. NOTES:  I realize that the options we have discussed this month are not
  290. really basic essentials that one needs to know, but they do go a long
  291. way in familiarizing you with the CP/M environment and the syntax that
  292. is used in almost all programs and utilities encountered in this
  293. environment.
  294.  
  295. Next month we will discuss the KEYFIG utility that allows us to set-up
  296. default colors, change our keyboard configuration, and execute them
  297. automatically upon boot-up.  Also, we will take a peek into SUBMIT files
  298. and the PROFILE.SUB start-up file.  Same time, same station!
  299.  
  300. -Mike Mantino
  301.  
  302.