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 / BEEHIVE / OS / Z8D24SUP.ARC / Z8D-UTL1.LBR / DATEREG.DZC / DATEREG.DOC
Text File  |  1991-02-10  |  6KB  |  112 lines

  1. DATEREG.DOC
  2. Rick Charnes, 25 October 1987, San Francisco
  3.  
  4.     In Z80DOS the date is stored in memory locations 0050 and 0051.  The 
  5. hex values contained therein are the number of days in hex since 
  6. December 31, 1977.  In this form the date is entirely inaccessible for 
  7. use in aliases.  DATEREG takes the contents of these bytes and 
  8. transforms it to the actual month, day and year, then puts these in the 
  9. ZCPR3 registers in hexadecimal form.  Thus the $Rn symbol in ARUNZ can 
  10. be used to represent the date.
  11.                               
  12.     The components of the date will be stored as follows:
  13.                   
  14. REGISTER 5 = mm, where 'mm' is the month
  15. REGISTER 6 = dd, where 'dd' is the day 
  16. REGISTER 7 = yy, where 'yy' is the 20th century year
  17.               
  18.     Thus an alias like the following becomes possible:
  19.               
  20. TODAY echo t%>oday is the $r5th day of the $r6th month in   <<
  21. the year 19$r7.
  22.     
  23.     Note that both REG.COM and the RCP-resident REG display the decimal 
  24. equivalent of the hex values held in the ZCPR3 registers.  Therefore, 
  25. using these commands will NOT display what you might have hoped.  
  26. ARUNZ's '$Rn' symbol, however, displays the ZCPR3 registers in their 
  27. native hex form, which is exactly how we want it to appear since it
  28. is only in the hex format that the date reads accurately.
  29.  
  30.     I recommend including DATEREG in your startup alias so that the 
  31. system date is always available to you via the ZCPR3 registers.  It is 
  32. important to note in this regard that an ARUNZ alias will expand its 
  33. symbols such as $Rn or $Mnnnn to the value(s) in effect AT THE TIME THE 
  34. ALIAS IS INVOKED.  No change made to the ZCPR3 registers or memory in 
  35. the course of the execution of the alias will be reflected in the 
  36. expansion of these symbols.
  37.  
  38.     In other words, if DATEREG is not in your startup alias or run 
  39. previously elsewhere, then the TODAY alias above, even if DATEREG is 
  40. included in it:
  41.  
  42. TODAY datereg;echo t%>oday is the $r5th day of the $r6th month in   <<
  43. the year 19$r7.
  44.  
  45. will NOT produce the desired effect of displaying the system date.  
  46. Rather, the $R parameters will expand to whatever was in those registers 
  47. before the alias was invoked, most probably 00's.
  48.  
  49.     DATEREG would of course not be possible without Carson Wilson's 
  50. superb Z80DOS.  This program in particular uses DATEHL.REL written by 
  51. Carson and supplied in Z80DOS10.LBR.
  52.  
  53. Further notes
  54. -------------
  55.  
  56.     DATEREG is my first attempt at assembly language programming where I 
  57. did more than 50% of the work.  It's so satisfying!  I've spent a year 
  58. writing aliases and ZEX files that were very fulfilling to me, but at a 
  59. certain point your repertoire begs to expand...
  60.  
  61.     My ultimate purpose in writing DATEREG, ironically though, was for 
  62. use in an alias inspired by the absolutely brilliant one developed by 
  63. Carson Wilson.  Carson's logs the beginning and ending times a COM file 
  64. was in use, then writes this information to a file.  It of course needs 
  65. a real time clock.  Being without a clock, however, I wanted something 
  66. that would keep track of the date of every editing of any specific word- 
  67. processed file.  As far as I know such a utility has never before been 
  68. available for Z80 machines.  Why?  I don't know.  It seems like a fairly 
  69. obvious and wonderful thing to have and it seems that there must be a 
  70. way to do it in CP/M 3.0 or with DateStamper and 2.2.  I'm quite pleased 
  71. at having done it for Z80DOS.  It's really quite simple.
  72.  
  73.     Both my and Carson's alias use a program ECHO.COM (not the ZCPR3 
  74. ECHO.COM) written by one Eugene H. Mallory in 1983.  It's one of a 
  75. fairly large number of unix-style CP/M utilities Mr. Mallory wrote way 
  76. back in the good old days of CP/M.  It appends any parameters entered on 
  77. its command line to the file specified after the traditional 'piping' 
  78. symbol '>' (here actually two are used, as in '>>' entered after the 
  79. parameters.  I've included both ECHO.COM, which should be renamed to 
  80. LOGECHO.COM, and its help file, ECHO.HLP, in this library.  Thanks go to 
  81. Mr. Mallory for writing such a useful tool, and Carson Wilson for re- 
  82. discovering it, that allowed us 4 years later to do such a nice thing 
  83. with Z80DOS.
  84.  
  85. The logging alias is:
  86.  
  87. LOG e l%>ogging use of %<$2...;echolog $r5/$r6/$r7 >>$2.dat;$*
  88.  
  89. Syntax to log date of use of text file SMITH.LTR would be:
  90.  
  91.                   'log vde smith'
  92.  
  93. The alias will write the date in the format '10/25/87' to the end of the 
  94. file SMITH.DAT.  Finally the command line 'vde smith' is actually run.  
  95. Each time this file is accessed through the LOG alias the system date at 
  96. that time will be appended to SMITH.DAT.  I've been using it myself for 
  97. several days and it's very exciting to have this record of editings.
  98.  
  99.     But there I go again -- using aliases to do stuff that can and 
  100. should be done in a real assembly (or other, I suppose) language 
  101. utility.  Well, I'm learning -- slowly but surely.  This alias is fairly 
  102. slow as ECHO.COM seems to take its time in opening and writing to our 
  103. *.DAT file.  My next project therefore is what should actually be a 
  104. fairly simple utility to do -- one that will do exactly what this alias 
  105. does.  Using Carson's DATEHL.REL again it will simply write/append the 
  106. contents of the chip registers H, L and A to our output file.  Please no 
  107. one else write this; I'd like to do it myself within the next week or so.
  108.  
  109.     I would welcome comments, which can be sent to me through either of 
  110. the Lillipute Z-Nodes in Chicago, Z-Node Central in California, or 
  111. Newton Centre outside of Boston, or by voice at (415) 826-9448.
  112. lipute Z-Nodes in Chicago, Z-Node Central in Californi