PDA

View Full Version : How to do CP/M on IMSAI + Northstar MDC-A4 ?



smp
August 25th, 2013, 09:13 AM
Hello all,

As you have probably seen from my postings over time, I own a good working IMSAI with a Compupro CPU-Z, Compupro RAM-17, and the Serial I/O board from John Monahan and Andrew Lynch at S100Computers.com. I cobbled together my own system monitor code from an old listing of the TDL Zap Monitor, plus a routine to read in Intel hex files that I found out on the Internet. This system has been extensively exercised, and is in a known good working state.

Some months ago, I acquired a Northstar MDC-A4 floppy disk interface card. I believe this card to be in working condition. I have performed all the checks detailed in the Northstar documentation that I can find, and by jumping to the Northstar PROM start point, the controller will pull the floppy disk head back to track zero and attempt to boot from disk.

I believe that the MDC-A4 is a single density floppy disk controller. All the disks that I have been able to accumulate, including borrowing some from another VCF member (Thanks, Kipp, your disks are safe and sound.), seem to be the double density variety. I make this assumption, because they are generally marked as being associated with a Northstar Horizon or Advantage system.

I have not yet been able to acquire any KNOWN GOOD SINGLE DENSITY Northstar boot disks, so I remain dead in the water.

I have noticed during my various attempts at booting from the disks I have acquired, that disks associated with Horizon or Advantage will read in a 256 byte block of garbage (bytes with many 1s in them, like ED, FF, FC, etc.), but disks that are marked as CP/M disks will read in a 256 byte block of 00s.

My question today is about possibly bypassing any Northstar OS and jumping right into CP/M. Is there a tutorial out there somewhere that can guide me through the process of getting CP/M working in my system with a Northstar MDC-A4 single density controller from absolute scratch? I have my callable I/O routines for my console in my system monitor, and the system monitor is located up at E000. I believe this would be out of the way of CP/M, right? The lower 56K from 0000 to DFFF is all available RAM.

I also have a cross assembler for both 8080 and also Z80 that run on my PC laptop that I use as my console, so, if I can get the proper source listings, I can assemble code and load the hex file via my system monitor. Looking at the CP/M documentation, it appears that I need to create a BIOS for my system. Can anyone point me to a BIOS source listing for Northstar MDC-A4 that I can modify with calls to my system monitor I/O routines, assemble, and load into my system? Since I am starting from scratch without CP/M, can I obtain raw CP/M code?

If anyone else has done this, starting from absolutely scratch, please let me know what you did, and how I might go about it for myself.

Thanks very much, in advance, for your patience and attention.

smp

Corey986
August 26th, 2013, 02:37 AM
Well I think you problem is that the controller is hard sectored. You need a hard sectored boot floppy. That needs to be solved before you even start working on getting northstar dos or CPM running.

Cheers,
Corey

smp
August 26th, 2013, 03:17 AM
Well I think you problem is that the controller is hard sectored. You need a hard sectored boot floppy. That needs to be solved before you even start working on getting northstar dos or CPM running.

Cheers,
Corey

Hi,

Thanks very much for your input.
Yes, all the Northstar disks that I have acquired by purchase or borrowing are 10 sector hard sector disks.
I even have two boxes of brand new hard sector disks ready to go for making masters and backups once I get my first boot disk to work.

smp

Corey986
August 26th, 2013, 05:23 AM
Then you should try Dave Dunfield's NST program to get your disks working. I have the same controller on my Sol-20 with a northstar drive. "Glitchworks/Systems Glitch" helped me create a boot disk at one of the M.A.R.C.H. Events which they created from one of Dave's images for their northstar machine, all they did was make a copy of the disk and create the Input, output and control C routines to match my Sol-20 and I was up and going.

Cheers,
Corey

glitch
August 26th, 2013, 05:42 AM
You called?

I've got a working system that includes a North Star single density controller -- my stumbling block had been the initial book diskette as well, since there seems to be some confusion over whether the double-density controller can write out single-density images (it can't). I'd be happy to make you a single-density North Star DOS boot disk. I don't currently have a CP/M boot disk, though building one from scratch is on my list of things to do this winter.

If you'd like, I can even customize North Star DOS for the N8VEM/s100computers.com Serial I/O as I have one too.

If you want to get boostrapped with Dave Dunfield's NST, the easiest way is to get his ROM-only monitor patched for your system (fairly trivial) and use the support in NST for it. I wasn't able to get NST working with my monitor or the Dajen SCI monitor. You'll need a ROM board, or you can just load it into a chunk of RAM since you already have a working monitor. Once you write out a disk image from his archive, you reboot with it, halt the machine, patch the console I/O routine, and warm boot back into the OS. The trouble with this process is, you need a known-good controller to write the images out.

smp
August 26th, 2013, 10:53 AM
OK!

Thank you, Corey and Glitch for your responses.

What I am doing right now is this: I found a disassembly listing (actually, it appears to be the listing from a successful assembly of the commented disassembly source file) for Northstar DOS over on one of Herb Johnson's web pages:

http://www.retrotechnology.com/herbs_stuff/d_nstar.html

It is on the link: NSDOS.PRN, DOS version 2.? disassmbly printfile

I have currently stripped out the machine code results of the assembly, and I have put the source file through my own assembler. Next, I will load the hex file into my IMSAI and then perform the patches for input and output through my system monitor. If I am successful, I will then be able to get NSDOS to run on my system, and I should be able to use the NSDOS commands to initialize a disk, and hopefully make a boot disk.

This is now off-topic for the CP/M thread, so I may start another thread in the S100 forum.

Glitch, thank you very much for your offer of help. If I get fouled up, perhaps I will contact you about this. I can send you a few hard sector disks if you don't mind making some boot disks. I will be in touch later.

smp

glitch
August 26th, 2013, 12:46 PM
I have currently stripped out the machine code results of the assembly, and I have put the source file through my own assembler. Next, I will load the hex file into my IMSAI and then perform the patches for input and output through my system monitor. If I am successful, I will then be able to get NSDOS to run on my system, and I should be able to use the NSDOS commands to initialize a disk, and hopefully make a boot disk.

You may have luck with that, but that's certainly the long way around. Plus, you'll end up with version 2 of North Star DOS.

tingo
August 27th, 2013, 01:15 PM
But a useful exercise none the less; much can be learned from it.