home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / jsage / znode3 / z80dos / z80dos.not < prev    next >
Encoding:
Text File  |  1994-09-02  |  10.4 KB  |  193 lines

  1. This is the text of a letter I wrote to Carson Wilson, author of Z80DOS, 
  2. the superb new datestamping BDOS for Z80 computers, about my first few 
  3. days' experiences with it.
  4.  
  5.                                        - Rick Charnes
  6.                                          15 October, San Francisco
  7.  
  8.     Carson, I'm writing this with ..... Z80DOS INSTALLED ON MY HARD 
  9. DISK!!  ALL RIGHT!  How satisfying.  Does that make me the first person 
  10. on the planet?  It installed with no problems.  (Well, after 2 or 3 
  11. false starts that is, but that's life in the big city...)  As I 
  12. mentioned to you before I have no problem running DateStamper under 
  13. Z8DOS and fully intend to use BOTH datestamping systems.  I even did 
  14. something rather risque' -- I've installed DateStamper in a non-standard, 
  15. actually superior location between the BIOS and the start of the Z- 
  16. System segments.  Normally it is put either in high TPA below the CCP -- 
  17. in which case it eats up 2k TPA in addition to what it normally uses 
  18. since it prevents loaded programs from overwriting the CCP -- or inside 
  19. one of the Z-System segments such as the IOP or RCP in which case all or 
  20. part of that particular feature is lost.  Above the BIOS it requires 
  21. rewriting your whole memory map, but that was half the fun of it.  With 
  22. Z-COM such a procedure is quite complicated (Jay explained how in TCJ) 
  23. but with the Z initialization routines written right into the BIOS such 
  24. as we have with the Morrow bootable disk it's a breeze.
  25.  
  26.      I spent last night going in to my A0:APP and A15:SYS directories 
  27. and pared off about 75 entries in order to run INITDIR on them.  It was 
  28. an amazing surgical procedure.  As a librarian I have an extremely 
  29. strong antipathy towards throwing anything away and very strong 
  30. tendencies toward collectionism, but being a doctor for an hour or so, 
  31. using ZFILER's group macro facility to throw tagged stuff into my 
  32. COMMAND.LBR and then erase it, was most enjoyable.  I think I'm none the 
  33. worse for it.  Running INITDIR on each of the 4 drives on my hard disk 
  34. was rather scary -- sort of the "moment of truth" that officially 
  35. inaugurates one into the wonders of Z80DOS -- but I did it, and I've now 
  36. got room for all the date stamps.  I normally have 512 possible entries 
  37. per drive and now have 394.  I'll try to stick to this; it's just a 
  38. matter of living lightly on the land and keeping everything neat and 
  39. tidy.  Erasing all one's various TEST.COM's after using them.
  40.   
  41.     One thing, though -- if one ever decides to _not_ use Z80DOS is 
  42. there then any way to restore the full number of entries to one's 
  43. directory?  I understand that with INITDIR you can erase the old time 
  44. stamps but I don't know any way to fully restore the directory to a "4 
  45. in 4" state; one seems forevermore locked in a "3 in 4" condition.  It's 
  46. not that big a deal, but I'd like to know.
  47.   
  48.     Here's the alias I'm using for editing:
  49.   
  50. VDE=NW if ex $1;app:savestmp app:datehold=$1;app:r$0 $* <<
  51. app:savestmp $1=app:datehold;else;app:r$0 $*;fi
  52.   
  53.     Note the "R$0"; I've renamed my "real" VDE and NW to RVDE and RNW 
  54. respectively; the above alias works perfectly with these and can be used 
  55. for any editor.
  56.   
  57.     The next day ... By the way, I was initially VERY upset with WS4 
  58. insistence on behaving as a true shell in that it completely screws up 
  59. any scheme to use it in an alias such as above.  (I don't know if you've 
  60. been following the conversation on Jay's BBS, but we discovered that 
  61. since it behaves as a true shell it of course can be used only with 
  62. difficulty in an alias since it will only run after the rest of the CL 
  63. is cleared)  In any case, Dave McCord made a suggestion on how to get 
  64. around the problem:  deliberately load up the shell stack ("with 
  65. multiple invocations of HSH or z/filer") before WS is invoked.  In this 
  66. way, if WS sees the shells tack is full, it will not behave as a shell, 
  67. since it can't install itself as one.
  68.   
  69.     Well, what I did rather than load up the shell stack was to poke the 
  70. relevant bytes in the environment descriptor (FE20h and FE21h for the 
  71. "standard" system) to instantly and temporarily create a system having 
  72. only a single shell stack entry of 128 bytes in length:
  73.   
  74. WS POKE FE20 01 80 if ex $1;app:savestmp app:datehold=$1;app:realws $* <<
  75. app:savestmp $1=app:datehold;else;app:realws $*;fi;POKE FE20 04 20
  76.   
  77. works just fine.
  78.   
  79.     OK, I've just changed the date with TIME.COM and I want to see that 
  80. BEAUTIFUL sight -- different creation and modification dates on a word- 
  81. processed file...
  82.   
  83.     Oh, a comment about DATEDEMO.  I assembled it up into a COM file.  
  84. It doesn't pause every screenful.  Also: the date of access information 
  85. is right flush against any 11-character filename, actually touching it.  
  86. Needs to be more space there.  Do you intend that as a replacement for 
  87. TDIR?  It's your own, right?  TDIR is someone else's.
  88.   
  89.     Was very pleased to discover, by the way, that one of programs that 
  90. I had assumed was ZRDOS-specific and was sad about the fact of giving up 
  91. and finding a replacement for is in fact not!  VTYPE, a lovely file 
  92. viewer and scanner (VERY fast moving from top to bottom; it'll do a 125k 
  93. file in about two seconds flat), runs fine under ZRDOS.  I wonder, 
  94. actually, if it's because I left the string of letters 'ZRDOS+' in the 
  95. BDOS header as you recommend doing in Z80DOS.BLD (for CP/M, I assume).  
  96. Am I correct in my assumption that the CP/M _command processor_ must 
  97. find the DRI header in the BDOS, and that's why you recommend leaving it 
  98. in?  I assume I didn't need to do the same with the ZRDOS+ header but 
  99. did it nonetheless and wonder if it might be responsible for the 
  100. continued successful operation of VTYPE.
  101.   
  102.     MOVE.COM, another program I'd assumed would only run under ZRDOS, 
  103. runs fine in my new BDOS.  I'd started recently using MAKE but don't 
  104. like it because it does something weird with files that take up more 
  105. than one directory entry: its status reporting to the screen indicates 
  106. one operation for each directory entry of the file!  In other words, if 
  107. I am changing the user area of BBMSG.LBR which is 88k in size from D3:  
  108. to D7: here's what MAKE displays on the screen:
  109.   
  110. D3:UPLOAD>make bbmsg.lbr d7:
  111.   
  112. MAKE  -  Version 2.6 for ZCPR3
  113.   
  114. BBMSG.LBR    = 7     R/W  DIR  Non-ARC
  115. BBMSG.LBR    = 7     R/W  DIR  Non-ARC
  116. BBMSG.LBR    = 7     R/W  DIR  Non-ARC
  117.   
  118. I suppose it is actually changing the user area for 3 directory entries 
  119. but I really don't want to know about it!  MOVE.COM doesn't do this.
  120.   
  121.     TDIR does something quite funny if run on a user area greater than 
  122. 9.  It's really kind of amusing.  Look an an ASCII conversion chart.  
  123. See the characters after 0-9?  There's : ; < = > and ?  .  Well, that's 
  124. exactly what TDIR displays after user area 9.  If you do a directory of 
  125. A15:, TDIR's status reporting displays the current directory as
  126.   
  127.                    A0?:
  128.   
  129. And A14: is 'A0>:' and A13: displays as 'A0=:' and A12: is 'A0<:' and 
  130. A11: as 'A0;:' and A10 as 'A0::'.  It's quite funny.  
  131.   
  132. PUBLIC FILES
  133. ------------
  134.   
  135.     First time in my life I ever created public files in any way other 
  136. than the ZRDOS+ way.  For sentimentalism's sake I nominated NSWEEP for 
  137. the job and used its good-old esoteric 'Y' command to set the flags on 
  138. the 2nd filename character.  Works like a charm, just like ZRDOS+'s 
  139. PUBLIC directory feature did.  Even left them in their old directory and 
  140. kept it named PUBLIC:.  Why not?
  141.   
  142.     The Echelon program PUBLIC.COM is interesting.  Oh, I forgot: you 
  143. never used ZRDOS+.  It implements its public feature by setting a 
  144. directory as public with a program PUBLIC.COM.  COMP, SFA and DFA all at 
  145. least abort and give you a message under Z80DOS that 'Error: you must be 
  146. running ZRDOS'.  PUBLIC.COM loads properly, seems as if it's working, 
  147. and even gives you a message telling you that the directory that you 
  148. specified as public is indeed public.
  149.   
  150.     Then when you try it -- it ain't.  PUBLIC.COM needs some error- 
  151. handling code.
  152.   
  153.     But setting the 2nd filename attribute on all my ex-public 
  154. directory'ed files works just fine and dandy.  By the way, I like the 
  155. feature that you can only erase a public file from the home user area.  
  156. ZRDOS does not have that safety feature, I don't believe.
  157.   
  158.     One thing I'm curious about.  Your instructions in Z80DOS.BLD for 
  159. loading in the newly-created Z80DOS.HEX and CBIOS.HEX intrigue me.  I 
  160. have always used MLOAD to create a binary file to prepare a file for 
  161. this purpose.  I create a COM file, and then load it in with DDT(Z) to 
  162. my CPM.COM at the offset address at which the OS segment is located in 
  163. CPM.COM.  You know, the CCP is at D00, BDOS at 1500 and BIOS at 2300 so 
  164. the offset for the "R" command is C00, 1400 and 2200 respectively.  When 
  165. I tried this technique, loading an MLOAD'ed Z80DOS.COM in to CPM.COM at 
  166. 'R1400' -- and also my CBIOS.COM at 'R2200' it just didn't work.  Since 
  167. I changed the whole memory map I also needed to reassemble my cold boot 
  168. loader and load that in to CPM.COM.  In my system image file (CPM.COM) 
  169. my cold boot loader is at 900 so I loaded in my MLOAD'ed ZBOOT.COM at 
  170. 800 and it just didn't work.
  171.   
  172.     Why?  Your method -- calculating the difference between where the 
  173. segment is in CPM.COM and where it runs in memory and loading in the HEX 
  174. file at that offset -- worked fine.
  175.   
  176.     You know what I wish TDIR or DATEDEMO would do?  Something that I 
  177. feel is an obvious thing for a directory program to do but very few do: 
  178. tell you how many possible directory entries remain on the disk.  The 
  179. very first dir program I ever used in my life, so primitive it doesn't 
  180. even know about user areas, does this --- but nothing I've found since, 
  181. from the grandaddy XDIR to SD to Eric Meyer's DA to Terry Hazen's DD, 
  182. display this.  Why?  With my new, more-limited-in-number directory this 
  183. information becomes very important to me.  Sure, you can take the number 
  184. of USED entries that _is_ displayed to you and subtract from that the 
  185. number that you might possibly remember you can potentially have ... but 
  186. that's really the long way around the problem.
  187.               
  188.     Very glad you left in the code in ZFILER and PPIP that supports 
  189. DateStamper.  So now we have two programs that support both datestamping 
  190. systems.
  191.     
  192.     G'night, comrade fellow Morrow user.  Thanks for a great BDOS.
  193.