CP/M BIOS setup

From: Richard Erlacher <richard_at_idcomm.com>
Date: Thu Oct 5 09:54:55 2000

I must have screwed up an put this out on the list. I thought I had
modified the destination address . . . <sigh> another "senior moment." It
might not be bad to kick this around among those who know.

Please see embedded remarks below.

Dick

----- Original Message -----
From: ajp166 <ajp166_at_bellatlantic.net>
To: <classiccmp_at_classiccmp.org>
Sent: Wednesday, October 04, 2000 8:54 PM
Subject: Re: CP/M BIOS setup


> From: Richard Erlacher <richard_at_idcomm.com>
>
>
> >For some time, I've pondered what it might take to divine the various
> format
> >features from a CP/M boot disk. It seems to me that if one has a
> bootable
> >disk, it has to have sufficient information on the boot tracks to allow
> one
> >to find a copy of the BDOS, which, so long as it's the right version of
> >CP/M, should disclose the details of what formatting has been used for
> those
>
>
> The bdos can't tell you much other than it's version.
>
I wasn't thinking so much about ASKING the BDOS as much as I was looking to
examine the thing in order to get the sector interleaving and skew data.
(skew being the relative position of the sector sequence from one track to
the adjacent ones. The BDOS doesn't change, generally, though there may be
changes in the BIOS. By finding each sector of the BDOS, one learns about
the format of the boot tracks. My CCS system, for example, requires, at
least for the distributed boot EPROM, that the boot tracks be SSSD. That
said, the write-up accompanying the controller suggests that one could make
a DD boot disk by formatting the boot tracks SD. The rest of the diskette
could be formatted DD, whether single- or double-sided. Consequently, it's
necessary to reexamine the disk to see what the interleave (which DRI and
some people call skew), skew, sector size, modulation, and other parameters
for the remainder of the diskette are. For that reason, it's necessary to
find a known file e.g. PIP.COM, or some other standard facility, which can
also be subjected to byte-by-byte comparison in order verify that the
parameters extracted from the diskette are valid.
>
> >tracks. What's more, given that one can find the BDOS, byte for byte,
one
> >should also be able to find enough of a BIOS to make it possible to
extract
> >the necessary disk parameters used to boot the system. If a second-tier
> >system is loade, one should be able to find that by examining the
autocmd.
> >That should then yield the data necessary to read the diskette in its
entirety.
>
> the key parameters are the DPH, DPB and SKEW... also you need to know
> how big the sector is and if there is embedded skew within the sector.
> Then you need to know the disk layout, things like what side/sector
> numbering was used. For example I've seen two sided media where
> sector one occured on both sides and where identically formatted, also
> I've seen side one as 1 thru 9 and side two as 10 through 17...
>
These parameters are all there on a boot diskette. It's just necessary to
find them.
>
> It is possible to devine all that from a bootable disk (I have a few that
> would never give you that as the core bios is not on the disk at all)
> but it's a lot of processing and at last count there were some 80 formats
> for 5.25media alone.
>
> >Have you ever run into a utility that handles this? I'd think someone
> would
> >have done this by now.
>
>
> Yes, Media Master, Uniform, Multidisk, Eset are a few I use and they all
> work from tables and have expectations of a bios having a standard
> configureation so they can "drive" the bios.
>
The Multidisk and Eset that I have are not for this purpose. They want to
be passed the information that I'm suggesting could be extracted.
>
> I also use a modular bios that runs on a slave cpu for the S100 crate
> and dropping in different drive parameters is straightforward. I tend to
> treat devices as interchangeable peices by using a abstraction layer.
> To me the BDOS calls the BIOS and the BIOS if it needs to calls a
> device driver. One common misconception is the BDOS calls a FDC
> (simplification). It doesnt and that why the BDOS called the jump table
> at the start of the BIOS.
>
That's exactly the problem I'm trying to circumvent. The interleave, skew,
sector size, etc, are all accurately represented on the boot diskette. The
BDOS is the BDOS, i.e. shouldn't be different on different boot diskettes,
so long as the CP/M version is the same. Consequently, it should be
possible, having once determined the sector size, to extract, automatically,
the relative locations of sequential sectors of this known file. Since we
KNOW and RECOGNIZE the BDOS, shouldn't it be possible to find its beginning,
end, and intervening parts on the diskette? It may not be an instantaneous
operation, but one should be able to conjure up a program to determine the
sector size, map physical to logica sector layout, and determine the
difference in sector numbering from one track to the next. It is certainly
possible to compare what lies where the BDOS should lie with a valid copy of
the BDOS. Likewise, having found the BDOS, extracting the various disk
paramters from the system BIOS and verifying them against another known file
e.g. PIP.COM, should provide the necessary information about the directory
and data areas of the diskette. Isn't that so?
>
> >Another item I've wanted for some time to automate is the setup of a hard
> >disk BIOS. Since it's dependent not so much on CP/M quirks but often
more
> >on decisions made on the basis of folklore, I thought it might be
> >interesting to examine the process as a candidate for automation.
>
> The answer is yes it;s doable and it's not worth it from where I sit.
> One reason, I have the tools needed and there are plenty of freeware
> out there if I dont.
>
> Me, I use my kaypro and my s100 crate (3.5, 5.25 and 8") for this and a
> copy of multidisk (table driven) and a version of Eset, used to hand
> feed parameters to the parameters for oddballs. In the general scale
> of things these do the job well and are more than enough. Some things
> deserve a simple solution.
>
Well, I don't see hand-feeding a set of parameters that one has to determine
by guessing on the basis of lots of conflicting folklore as particularly
easy. Authors who wrote about the process e.g. Laird and Cortesi seemed to
equivocate considerably about this, and, while it's straightforward to come
up with a set of parameters that work, it's not easy to come up with the
optimal ones, at least where the HD is concerned. Both of the authors I
mention published utilities that extract parameters from the existing BIOS
once it's running, but neither discusses the whys and wherefores
sufficiently to imply a rigorous method of establishing a single, optimal,
layout for a HD. Likewise, they don't provide a rigorous method for finding
the parameters in use on a system disk from a foreign system. Once the data
is in hand, it's easy, certainly, but what should one do, given a known
bootable but otherwise undefined boot diskette? The reality of the data
present on a boot diskette defines all the parameters necessary to recreate
it, doesn't it?

I get emails from people all the time, asking about how to build a boot
diskette for a system they can't boot because they don't have a BIOS on the
diskette for the I/O ports they use. Likewise, I get frequent questions
about how to formulate an optimal configuration for a hard disk. While it
may not be a terrible thing, it is something many people, including myself,
though I've done it several times, find daunting. In the absence of a
rigorous method it's hard to find peace at the end of the task because so
many less-than optimal solutions will work quite well. How's a person to
determine what's best?
>
> Allison
>
>
Received on Thu Oct 05 2000 - 09:54:55 BST

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:33:15 BST