On 01/03/2014 09:53 PM, Philip Lord wrote:
Hi all,
I'm trying to use the AltairZ80 simulator to patch a Northstar .nsi disk image, with
the final goal being to use it with my real SOL-20 + Northstar disk controller. I will use
Dave Dunfield's NST utilities to copy over the patched Northstar .NSI image via serial
to my real SOL-20, and hopefully I will be able to generate a working CP/M 2.2 boot
floppy. I have Dave's NST utils already 'talking' to my SOL, so hopefully the
last part, generating a real floppy, should not be difficult.
I have the following files:
- A disassembled dump of the SOL-20 CP/M CBIOS (found on the net)
- A HEX file of the SOL-20 CBIOS that I generated in the AltairZ80 simulator
- A Northstar .nsi CP/M disk image that is bootable in AltairZ80 by 'Attaching'
MDSAD, Northstar MDS-AD Disk Controller (Memory Mapped to 0xE800-0xEBFF)
The
standard NS* CP/M image for the Horizon is fine as all you need to
do is patch the CONin and CONout and printer
if used. Thats the only real difference between the various systems
using the NS* MDS disk. Make sure you have
enough memory for the version your booting 56K is likely enough.
Now before I actually get into the nitty gritty of
patching the SOL-20 CBIOS (which I will also probably need some advice with) onto the
Northstar disk image, I figured I need to first find a way to copy the CBIOS HEX file that
I generated, from the PC (or from the standard CP/M disk image) onto the Northstar disk
image. The standard CP/M disk image that comes with AltairZ80 has two programs,
'R' and 'W' that allow copying to and from the simulator to the PC. The
Northstar disk image I have, of course, does not have these two programs.
Easily
done on the SOL itself, easy in that you can patch memory directly.
Load the working version to memory and boot it, reset and then patch it,
run it, if working then reset and
use your utillities to save it to a new piece of media.
Generally I get NS* dos running first as its, smaller, simpler to patch
and once thats running you can use it to
edit and patch CP/M media. NS*DOS with the monitor that loads at 2A00h
will need only 8K of ram starting
at 2000H. Plus it doesn't interact with the sol monitor for memory
space nor will it get into space typically
used when CP/M is loaded.
Now my first problem is to either get 'R' and
'W' onto the Northstar disk image, and/or have the standard CP/M disk image
mounted as drive A and the Northstar Disk as drive B. I was hopeful that It would be easy
to attach the standard CP/M image and the Northstar CP/M image at the same time, and just
copy the files over from one to the other. However I can't seem to do this. I have
tried various sequences of attaching the standard CP/M disk image to drive A, then
?enabling? the Northstar controller and attaching the Northstar disk image to drive B,
then either trying to boot from A or B. Unfortunately this does not work and CP/M does not
boot, and results in some strange activity in the simulator.
As many of you know, I'm a bit of a noob at this stuff, so hopefully I haven?t made
any wrong assumptions about what I need to achieve.
I was wondering if anyone had any idea how I can go about this?
As someone that
started using CP/M and NS* hardware in 1977, it was
obvious to me. I still have
working hardware and use it.
The problem with the .nsi files is getting them into the computer (sol
not the PC). Fortinatly Dave has
provided tools to get the stuff on the computer so you can write it out
to disk. The emulator is handy
for a lot of stuff but it can't write real media directly.
From the top, do you have a disk drive that works and
hard sector media
for the SOL? Otherwise this is
all moot. If you have hard sector media you can't write it in a PC that
only know soft sector, don't bother
unless you have a catsweasel or other multimedia floppy interface.
I'll assume you have a MDS, Enough installed ram, working and a PT SOL
plus a floppy (better to have several).
IF you do then its real easy as the SOL has a keyboard monitor that will
allow viewing and patching memory.
The procedure is in the NS* CP/M manual as well. All that is needed to
do is boot the known MDS system disk
(write protected please) wait for it to stop. Then hit reset to get to
the SOL monitor and then using your listings
hand patch the CONIN, CONout and maybe printer part of the CBIOS. Then
GO/JUMP to the warm restart address
and see if CP/M comes up and issue a prompt and takes a command like
DIR. Save the resulting system to a NEW disk
and then try to boot it. preserve teh old disk like ti was gold (likely
more valuable per unit weight!). This is only
an outline but us old farts did it.
FYI: the hardest case was getting a NS*Horizon going that was broken is
that system does not have a user interface until
NSdos or NS*CPM was running as the only resident code was a very tiny
bootloader. Any patches needed to get the
system going the first time for me was using the front panel of the
Altair (switches feh!). My solution was a new CPU
board (computime) with local Eprom monitor, its own IO, and a working
system to test each bit first.
Allison