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
/
ZCAT
/
DSTAT01.LBR
/
DSTAT.DOC
< prev
Wrap
Text File
|
2000-06-30
|
5KB
|
101 lines
DSTAT.DOC 06/03/86
Every library should have a DOC file...
This program dumps all available information in the Disk Parameter
Header and Disk Parameter Block. It can be run with no arguments to
report on the current disk, or with one argument which is the disk
name. Note that since this is NOT a ZCPR utility, named directories
are not supported. Nor have I tried this under CP/M 3.0, I have a
feeling that at best it would return incorrect data.
This is in response to an inquiry by Jay Sage, sysop of the Newton
Centre ZNode: (617) 965-7259. See the end of this file for his
suggestions and comments.
One thing this program does NOT do is trace the vectors in the DPH
(the Translation Vector, the Scratch Pad Vector, and the Allocation
Vector). Two reasons for this are: I consider their information of
limited usefulness, and the single reference I used to write this
program, the CP/M 2.2 Operating System Manual, was vague as to the
format and size of those vectors. I have A. Johnson-Laird's book,
The Programmer's Guide to CP/M_, but it's at home today.
Two other things this program does not do are: report on all available
disks in the system, and dump the directory buffer. Both things were
left out to reduce verbosity.
I wrote this in C for one reason: speed in development. Nobody should
have any complaints about execution time for this program, and I'll be
the first to say that it's Too Damn Big, but you can't beat the time it
took to write: three hours, with interruptions. No kidding, I was on
the phone to Jay's ZNode at 3:00pm, and it's now 6:15pm. Also, it's a
natural for C: only one extra routine (to print a number in binary),
no special library routines aside from direct BDOS and BIOS calls,
no include files... piece of cake. If I were really concerned with
this program, I'd probably re-do it in assembler, using the C source
as an outline. However, I view this as one of those utilities you put
on the "Miscellaneous" disk, and only drag it out on rare occasions.
I compiled it with the Aztec compiler - to be nice to the world at large,
I used the 8080 compiler, rather than the Z80 compiler (not a big deal).
One fix, however: Aztec uses lower-case letters for their Hex numbers;
I patched these (at location A26) to use upper-case.
Feel free to elaborate on this program - take my code, please!
Wilson H. Bent, Jr.
39 Maple Ave.
Fair Haven, NJ 07701
Work: (201) 949-1277
UN*X: ... ihnp4!hoh-1!whb
RCP/M: Lillipute: (312) 649-1730 Chicago
Msg 095 is 19 line(s) on 05/16/86 from JAY SAGE
to PROGRAMMERS about PROPOSAL FOR CP/M BIOS UTILITY
I would like to propose a CP/M utility program. There are a number of
programs that will print for the user information about his operating
system, such as the location of the CCP, BDOS, and BIOS. Some will even
display the addresses of the actual BIOS routines as extracted from the
initial jump table. I have not seen a program that will work its way
through the disk parameter header (DPH) and disk parameter block (DPB)
tables for all supported drives and display all the information contained
in them for the user. STAT, DU, PATCH, and some other programs will
display information about the data format on the drives, but they do not
give the addresses of the directory buffer, allocation vector tables, etc.
The reason why I wanted this kind of information recently is that I was
looking for places in the BIOS to squeeze in the coldboot initialization
code for a ZCPR3 installation. This is a handy way to get ZCPR3 running
when you have no source for the BIOS but do have a MOVCPM that will move
the BIOS. I got the information the hard way (just as the proposed
utility would do it), but a ready-made utility would have been nice.
The next message has some ideas on how this program would work.
Msg 096 is 19 line(s) on 05/16/86 from JAY SAGE
to PROGRAMMERS about HOW BIOS UTILITY WOULD WORK
Here is how I think the total BIOS information utility would work
Basically, the BIOS SELDSK routine (pointed to by the jump at BIOS+1BH)
would be called for each disk in turn (0..15 in the C register). This
code returns in HL the address of the disk parameter header or 0 if the
drive is not a valid drive. With that information the program would
simply work its way through the DPH table, following the pointers it
contains to the skew translation table, the directory buffer, the disk
parameter block (DPB), the directory check vector, and the allocation
vector. The DPB would be queried to determine all the disk format
information (at least what CP/M knows about it). See David Cortesi's book
"Inside CP/M" for good technical information on the BIOS calls and the
tables. And note his caution about calling the BIOS SELDSK routine
directly. Make sure that the program determines what drive is selected at
the beginning and that there is a last call to SELDSK using that drive. I
think that should take care of that possible pitfall.
One might even make a menu-driven version of this program that would allow
the user to specify what information is desired.
One might even make a menu-driven version of this program