home *** CD-ROM | disk | FTP | other *** search
- This is the text of a letter I wrote to Carson Wilson, author of Z80DOS,
- the superb new datestamping BDOS for Z80 computers, about my first few
- days' experiences with it.
-
- - Rick Charnes
- 15 October, San Francisco
-
- Carson, I'm writing this with ..... Z80DOS INSTALLED ON MY HARD
- DISK!! ALL RIGHT! How satisfying. Does that make me the first person
- on the planet? It installed with no problems. (Well, after 2 or 3
- false starts that is, but that's life in the big city...) As I
- mentioned to you before I have no problem running DateStamper under
- Z8DOS and fully intend to use BOTH datestamping systems. I even did
- something rather risque' -- I've installed DateStamper in a non-standard,
- actually superior location between the BIOS and the start of the Z-
- System segments. Normally it is put either in high TPA below the CCP --
- in which case it eats up 2k TPA in addition to what it normally uses
- since it prevents loaded programs from overwriting the CCP -- or inside
- one of the Z-System segments such as the IOP or RCP in which case all or
- part of that particular feature is lost. Above the BIOS it requires
- rewriting your whole memory map, but that was half the fun of it. With
- Z-COM such a procedure is quite complicated (Jay explained how in TCJ)
- but with the Z initialization routines written right into the BIOS such
- as we have with the Morrow bootable disk it's a breeze.
-
- I spent last night going in to my A0:APP and A15:SYS directories
- and pared off about 75 entries in order to run INITDIR on them. It was
- an amazing surgical procedure. As a librarian I have an extremely
- strong antipathy towards throwing anything away and very strong
- tendencies toward collectionism, but being a doctor for an hour or so,
- using ZFILER's group macro facility to throw tagged stuff into my
- COMMAND.LBR and then erase it, was most enjoyable. I think I'm none the
- worse for it. Running INITDIR on each of the 4 drives on my hard disk
- was rather scary -- sort of the "moment of truth" that officially
- inaugurates one into the wonders of Z80DOS -- but I did it, and I've now
- got room for all the date stamps. I normally have 512 possible entries
- per drive and now have 394. I'll try to stick to this; it's just a
- matter of living lightly on the land and keeping everything neat and
- tidy. Erasing all one's various TEST.COM's after using them.
-
- One thing, though -- if one ever decides to _not_ use Z80DOS is
- there then any way to restore the full number of entries to one's
- directory? I understand that with INITDIR you can erase the old time
- stamps but I don't know any way to fully restore the directory to a "4
- in 4" state; one seems forevermore locked in a "3 in 4" condition. It's
- not that big a deal, but I'd like to know.
-
- Here's the alias I'm using for editing:
-
- VDE=NW if ex $1;app:savestmp app:datehold=$1;app:r$0 $* <<
- app:savestmp $1=app:datehold;else;app:r$0 $*;fi
-
- Note the "R$0"; I've renamed my "real" VDE and NW to RVDE and RNW
- respectively; the above alias works perfectly with these and can be used
- for any editor.
-
- The next day ... By the way, I was initially VERY upset with WS4
- insistence on behaving as a true shell in that it completely screws up
- any scheme to use it in an alias such as above. (I don't know if you've
- been following the conversation on Jay's BBS, but we discovered that
- since it behaves as a true shell it of course can be used only with
- difficulty in an alias since it will only run after the rest of the CL
- is cleared) In any case, Dave McCord made a suggestion on how to get
- around the problem: deliberately load up the shell stack ("with
- multiple invocations of HSH or z/filer") before WS is invoked. In this
- way, if WS sees the shells tack is full, it will not behave as a shell,
- since it can't install itself as one.
-
- Well, what I did rather than load up the shell stack was to poke the
- relevant bytes in the environment descriptor (FE20h and FE21h for the
- "standard" system) to instantly and temporarily create a system having
- only a single shell stack entry of 128 bytes in length:
-
- WS POKE FE20 01 80 if ex $1;app:savestmp app:datehold=$1;app:realws $* <<
- app:savestmp $1=app:datehold;else;app:realws $*;fi;POKE FE20 04 20
-
- works just fine.
-
- OK, I've just changed the date with TIME.COM and I want to see that
- BEAUTIFUL sight -- different creation and modification dates on a word-
- processed file...
-
- Oh, a comment about DATEDEMO. I assembled it up into a COM file.
- It doesn't pause every screenful. Also: the date of access information
- is right flush against any 11-character filename, actually touching it.
- Needs to be more space there. Do you intend that as a replacement for
- TDIR? It's your own, right? TDIR is someone else's.
-
- Was very pleased to discover, by the way, that one of programs that
- I had assumed was ZRDOS-specific and was sad about the fact of giving up
- and finding a replacement for is in fact not! VTYPE, a lovely file
- viewer and scanner (VERY fast moving from top to bottom; it'll do a 125k
- file in about two seconds flat), runs fine under ZRDOS. I wonder,
- actually, if it's because I left the string of letters 'ZRDOS+' in the
- BDOS header as you recommend doing in Z80DOS.BLD (for CP/M, I assume).
- Am I correct in my assumption that the CP/M _command processor_ must
- find the DRI header in the BDOS, and that's why you recommend leaving it
- in? I assume I didn't need to do the same with the ZRDOS+ header but
- did it nonetheless and wonder if it might be responsible for the
- continued successful operation of VTYPE.
-
- MOVE.COM, another program I'd assumed would only run under ZRDOS,
- runs fine in my new BDOS. I'd started recently using MAKE but don't
- like it because it does something weird with files that take up more
- than one directory entry: its status reporting to the screen indicates
- one operation for each directory entry of the file! In other words, if
- I am changing the user area of BBMSG.LBR which is 88k in size from D3:
- to D7: here's what MAKE displays on the screen:
-
- D3:UPLOAD>make bbmsg.lbr d7:
-
- MAKE - Version 2.6 for ZCPR3
-
- BBMSG.LBR = 7 R/W DIR Non-ARC
- BBMSG.LBR = 7 R/W DIR Non-ARC
- BBMSG.LBR = 7 R/W DIR Non-ARC
-
- I suppose it is actually changing the user area for 3 directory entries
- but I really don't want to know about it! MOVE.COM doesn't do this.
-
- TDIR does something quite funny if run on a user area greater than
- 9. It's really kind of amusing. Look an an ASCII conversion chart.
- See the characters after 0-9? There's : ; < = > and ? . Well, that's
- exactly what TDIR displays after user area 9. If you do a directory of
- A15:, TDIR's status reporting displays the current directory as
-
- A0?:
-
- And A14: is 'A0>:' and A13: displays as 'A0=:' and A12: is 'A0<:' and
- A11: as 'A0;:' and A10 as 'A0::'. It's quite funny.
-
- PUBLIC FILES
- ------------
-
- First time in my life I ever created public files in any way other
- than the ZRDOS+ way. For sentimentalism's sake I nominated NSWEEP for
- the job and used its good-old esoteric 'Y' command to set the flags on
- the 2nd filename character. Works like a charm, just like ZRDOS+'s
- PUBLIC directory feature did. Even left them in their old directory and
- kept it named PUBLIC:. Why not?
-
- The Echelon program PUBLIC.COM is interesting. Oh, I forgot: you
- never used ZRDOS+. It implements its public feature by setting a
- directory as public with a program PUBLIC.COM. COMP, SFA and DFA all at
- least abort and give you a message under Z80DOS that 'Error: you must be
- running ZRDOS'. PUBLIC.COM loads properly, seems as if it's working,
- and even gives you a message telling you that the directory that you
- specified as public is indeed public.
-
- Then when you try it -- it ain't. PUBLIC.COM needs some error-
- handling code.
-
- But setting the 2nd filename attribute on all my ex-public
- directory'ed files works just fine and dandy. By the way, I like the
- feature that you can only erase a public file from the home user area.
- ZRDOS does not have that safety feature, I don't believe.
-
- One thing I'm curious about. Your instructions in Z80DOS.BLD for
- loading in the newly-created Z80DOS.HEX and CBIOS.HEX intrigue me. I
- have always used MLOAD to create a binary file to prepare a file for
- this purpose. I create a COM file, and then load it in with DDT(Z) to
- my CPM.COM at the offset address at which the OS segment is located in
- CPM.COM. You know, the CCP is at D00, BDOS at 1500 and BIOS at 2300 so
- the offset for the "R" command is C00, 1400 and 2200 respectively. When
- I tried this technique, loading an MLOAD'ed Z80DOS.COM in to CPM.COM at
- 'R1400' -- and also my CBIOS.COM at 'R2200' it just didn't work. Since
- I changed the whole memory map I also needed to reassemble my cold boot
- loader and load that in to CPM.COM. In my system image file (CPM.COM)
- my cold boot loader is at 900 so I loaded in my MLOAD'ed ZBOOT.COM at
- 800 and it just didn't work.
-
- Why? Your method -- calculating the difference between where the
- segment is in CPM.COM and where it runs in memory and loading in the HEX
- file at that offset -- worked fine.
-
- You know what I wish TDIR or DATEDEMO would do? Something that I
- feel is an obvious thing for a directory program to do but very few do:
- tell you how many possible directory entries remain on the disk. The
- very first dir program I ever used in my life, so primitive it doesn't
- even know about user areas, does this --- but nothing I've found since,
- from the grandaddy XDIR to SD to Eric Meyer's DA to Terry Hazen's DD,
- display this. Why? With my new, more-limited-in-number directory this
- information becomes very important to me. Sure, you can take the number
- of USED entries that _is_ displayed to you and subtract from that the
- number that you might possibly remember you can potentially have ... but
- that's really the long way around the problem.
-
- Very glad you left in the code in ZFILER and PPIP that supports
- DateStamper. So now we have two programs that support both datestamping
- systems.
-
- G'night, comrade fellow Morrow user. Thanks for a great BDOS.