[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Getting CPM 2.2 running on a set of N8VEM S-100 cards

Having assembled my alpha S-100 VDU I sat down to start testing it and
realized I was missing a critical part; the ability to boot CPM on my
system based on N8 S-100 cards.

My system Config:
  Z-80 Master CPU - tested and known good
  4 megabyte Static RAM card - 1MB installed - tested and known good
  ZFDC - tested and known good
  Serial I/O - tested and known good
  EPROM - not tested

You may ask how I tested these without being able to boot the system,
this is what I have done:

To test the SERIAL I/O card I wrote code that I burned into EPROM for
the CPU card; this card tested the Serial I/O card.

I've taken the ZAPPLE monitor along with code from a Z-80 monitor John
wrote (www.s100Computers.com) and created my own version of it. One of
the functions it has is the ability load HEX files produced by TASM. I
ported John's code for the ZFDC from CPM programs to standalone
programs under TASM. I then assemble them and via the text file send
function in Teraterm I loaded these into RAM for execution. I have
been able to adjust the ZFDC and have been able to format 3.5"

Next using the monitor I wrote a set of playback files (again for
TeraTerm) that using the PORT I/O function of my monitor along with
the LOAD/DUMP memory functions was able to test all 16K blocks of the
1MB memory space to verify the basic functionality (I know the block
selects work, I know the RAM can be written and read back).

The Monitor has John's code to read the boot sector from a floppy and
start it to bring up CPM.

So, now I need a floppy with CPM to boot.

Having completed a ZETA and having it running well with 2 3.5"
floppies this seems like a good platform to write the system to
floppy; it already has the tools to get the image to the RAM Disk (XM)
and the program to write the system to floppy (WRITESYS.COM).

Next I checked out the BUILD directories from Doug's SVN site and
began digging through them to understand how it works; this is what I
have concluded in looking at it:

Porting the CBIOS for the S-100 config listed above should be straight
forward, John already provided the code to get the basics working.

Building a CPM image (the SYS file) and the standalone file (the COM
file) using looks pretty straight forward.


1) It's unclear to me if the ROM image can be used; the N8 does some
tricks to map SRAM or EPROM into the Z80 address space; using the
extended address space of the Z80 CPU card this would be possible
however only the 2 lower 16K blocks can be swapped. Can this be done?
Should it be done?

2) Should I add the functionality to build a CPM image for the S-100
system to the current build tree or do we want to start a new tree?

3) Ultimately I hope to have a CPM floppy image downloadable so
someone can build the basic board set; image a floppy and boot the
system using the default jumper settings. Is there value in doing