• Please review our updated Terms and Rules here

M Drive-H board

Iain McFetridge

New Member
Joined
Dec 14, 2022
Messages
9
Im restoring an IMSAI 8080 and have an Mdrive-H board but need Mdrive.com and Mform.com to make it work. I've done a lot of searching but so far no luck.
by any chance anyone here have them? if so please send me a PM.
 
Im restoring an IMSAI 8080 and have an Mdrive-H board but need Mdrive.com and Mform.com to make it work. I've done a lot of searching but so far no luck.
by any chance anyone here have them? if so please send me a PM.
See also this discussion:

MFORM.COM (the utility to format the MDRIVE) is readily available - look in any of the CompuPro system boot disks found at:

Many people have asked for MDRIVE.COM, but to the best of my knowledge it is not available in any software archive. MDRIVE.COM was required to use the MDRIVE-H with non-CompuPro versions of CPM, since support was was built into the BIOS for most versions of CompuPro's own CPM system software. My guess is that MDRIVE.COM was provided only when the MDRIVE-H board was purchased as a separate product, whereas most MDRIVE-H boards were likely sold within pre-configured systems built by CompuPro or its distributors.

If you do ever find MDRIVE.COM, please let us know!
 
Last edited:
I just bought a M-Drive/H card for my IMSAI and was looking for the CompuPro driver MDRIVE.COM
If none can be found then I’ll just have to write my own, should not be too hard as I wrote the original CP/M self installing driver for the SemiDisk card (competitor to M-Drive/H). Probably won’t be as fancy as MDRIVE but should work the same.
 
Quick update.
my M-drive/h just arrived.
I have created a GitHub for holding the documentation and all the code that I could find, plus the code that I have created for a self installation driver MDRIVE.COM. I have not uploaded everything yet because I need to complete testing of the driver and the disk formatting programs.

 
The driver gets installed correctly, and my MDRIVE is recognized.
but I think that I might have missed something because after running MFORM I get sector error
when trying to get a directory listing.
I am now writing a memory test program to check all sectors. I did a very simple test that writes track zero sector zero
and reads the sector back using DDT.

I will upload to GitHub what I have written so far, as another set of eye’s might help with the error.

The code is in three parts,
the first is the actual driver, that you assemble at ORG 0, save as MDISK000.COM, then assemble at ORG 100 and save as
MDISK100.com.
next is the loader program L-MDRIVE.COM, and last is a generator program G-MDRIVE.COM that takes the driver MDISK000 and MDISK100 reads the L-MDRIVE.COM and writes out a MDRIVE.COM program for you.

the source code has comments on how to build the program.
I have put in support for multiple M-DRIVE/H cards but it is crude, as it currently requires patching one byte
that tells the program how many cards are installed. Maybe latter code to to set this will be added, I left a stub for it.
 
Last edited:
My Mdrive-H is unknown as far as if it works or not. If I remember right on the original program one would need to make ones CP/M 1 K less to attaché the loader program then run Mform to format the "disk"
does your program do this?
 
Yes, the Program I made takes two arguments, the first is “-drive” the second is area address of a 1K block above the BIOS.
So you must use MOVCPM to create a 63K or smaller system to use the driver.
MDRIVE -M FC00 would make a drive “M“ and load the driver at FC00 which is requires a 63K CP/M system.

When I wrote the SemiDisk Systems driver, I would also allow for loading the driver below the CCP, and patch CP/M to think
that the memory was part of the BIOS and so not be overwritten by user programs. This kept the CCP locked which wasted about 3K of memory (2k for CCP+1K for driver).
 
hmm..my systems is only 48K CPM so I will make a new disk of 47K (its so hard to think that small, LOL my main windows computer has 64 gigs of ram..) did you discover your error yet?
if you get this going your going to make a very lot of people happy. I will make a disk and test sometime during the week. (again have no idea if my Mdrive-h board works or will try and spill its guts
all over the insides of my IMSAI.
 
I am about 50% done with my MTEST memory test program.
It currently just fills and tests with a static E5 value, but I will replace that with s pseudo random
pattern (the code from Vector Graphic RAM test). I will leave in the code the use of E5 as a fill
value because that is also known as a formatted drive.

After I test my MDRIVE I should know a little bit more about the ”bad sector” errors
and if it’s the driver causing them.
 
Quick update.
I think my M-DRIVE/H has a bad chip.
The memory test I wrote says that data pattern E5 is good, but everything else I try writing is bad.
For my next test, I will remove a single row of chips, and see if I get the expected fail.
I had also remove chips in bank 0, bits 0-3 and my memory test did report that bad bits found
in the first four bits as expected.
 
Turns out the M-DRIVE/H card is fine, I forgot to increment the testing address by 128 after each data block.
Also the “random” pattern test is a little buggy, but the static pattern test’s seem just fine. I used MFORM and added a read-only test to my test program, and was able to see the “formatted” blocks. Still no luck with self-installing driver, so my next program I am writing is a MDUMP that has my driver built-in so that I can use DDT for tracing issue. I made a simple test using self installed driver and DDT and was able to read a sector, but DDT got confused and did not return to calling program but went to my floppy BIOS which then gave my the bad sector error on return.
 
I just pushed code to my GitHub repo.
The self-installer MDRIVE seems to be working, at least MFORM works, and a dir of M: works.
CP/M stat of M: returns 504K free on a formatted drive.
I am seeing some other errors, but I am also seeing lots of strange errors on my floppy drive
which I am also working.
 
Back
Top