Bit of CP/M trivia needed
Dwight K. Elvey
dwight.elvey at amd.com
Mon Aug 29 12:59:55 CDT 2005
>From: "Allison" <ajp166 at bellatlantic.net>
>>Subject: Re: Bit of CP/M trivia needed
>> From: "Dwight K. Elvey" <dwight.elvey at amd.com>
>> Date: Sat, 27 Aug 2005 14:40:18 -0700 (PDT)
>> To: cctalk at classiccmp.org
>>>From: "Allison" <ajp166 at bellatlantic.net>
>>>>Subject: Bit of CP/M trivia needed
>>>> From: "Brian Knittel" <brian at quarterbyte.com>
>>>> Date: Sat, 27 Aug 2005 00:58:01 -0700
>>>> To: cctalk at classiccmp.org
>>>>Does anybody out there know for certain when the
>>>>term BIOS was coined? I believe it was Gary Kildall,
>>>>and from what I can find, it was around 1978 that
>>>>he abstracted the I/O and localized it in what
>>>>he called the BIOS. Anyone know differently?
>>>The term BIOS is older, early '77. It came into use with
>>>V1.3 I think and for cetertain in V1.4.
>>>>Also -- was the BIOS stored on the CP/M
>>>>floppy, or was it in ROM/EPROM? If not, how
>>>>did CP/M machines boot? Was there a dedicated
>>>>boot ROM that was used just for startup, and
>>>>then the BIOS took over? I had one back in
>>>>the day, but I sure can't remember this detail.
>>>The easy answer is yes. Tranditional CP/M systems the
>>>CCP/BDOS and BIOS were on the first two reserved tracks
>>>of the floppy (8" SSSD) and those were loaded by a boot
>> My understanding was that the first ones had no ROM
>>and used a DMA controller that loaded bootstrapping
>>code from the first sector on reset. I have such a
>>controller on my machine. All RAM, no ROMs.
>While possible even the DMA controller needed logic to get
>it going. The earliest machines (8080) used front pannels
>to manually enter a small boot into ram.
>Most of the Intel machines however had at least minimal
>rom if only there to boot a booter.
>As it would turn out a DMA controller before the 8257
>(LSI device) was a lot of electronics in itself. They
>were rare and not often seen in micros as it represents
>a lot of hardware even in minimal form.
>Identify that machine you have and it's vintage.
I did tell a slight fib, there is truly not ROMs or
PROMs in my IMSAI. There is no ROM code that runs on the
8080 that gets the machine started. The controller does
have PROMs in it but not for the 8080.
The controller for the drives exist in the drive box.
There is a bus interface card in the IMSAI. The controller
is all TTL based and has several small PROMs to control
sequencing for read/write/format operations. Only
small additional states are needed to do the bootstrap.
Mainly resetting registers and then doing a single sector
read. On the IMSAI, to boot, all I do is a STOP, RESET.
The drive reads the first sector that has the code to
load the rest. I then execute from address 0000 and
it brings up the rest of CP/M. All of the 8080 code
exist on the disk ( I know this because I built up this
implementation of CP/M my self from scratch ).
The drive has the typical sounding name of "Digital
Systems" on it. I was told that this was a common
drive setup before FDC chips came in to being. The
controller part was common to other small computer systems
that used this controller with different bus interface
cards. I don't know the date of my machine but I can
look it up, next time I'm with my machine. I was told
the controller design existed before S-100 and was one
of the earliest types of controllers used on S-100 systems
since it only required the bus interface card that
is mostly just buffers and some logic to handle
unique S-100 bus protocol.
The controller is quite large. It covers the area of
two 8 inch drives laying flat plus supply. When I got the
machine, I had not disk at all. I also noted that there was
no ROM in the IMSAI. After asking around, I found a
friend that had schematics for the controller and interface
card but no software. He'd had an early machine and
had replaced his controller with a newer floppy controller
card. I hand decoded the PROMs on the controller to determined
how the state machine did its control of the drive.
I then wrote my own bootstrap to load onto the first
sector. I got a copy of CP/M2.2 from Gaby's web page.
Of course, like many of these old machines, it also
needed several replacement parts to get it going.
I have since been in contact with another fellow that
has one of these controllers and he had a boot disk!
The code on it was almost identical to mine :)
I'll look at the date codes of my machine, the next time
I have access to it.
So, in a sense, you are correct that there needs to be
code someplace but all the reset does is clears the registers
and starts the state machine that is the controller. The
8080 does nothing until the first sector is loaded. Seeing
how simple this was, I'm surprised that early FDC
chips didn't include this ability. I guess it was that
most didn't expect to be in DMA setups.
More information about the cctalk