SCP 86-DOS (Tarbell) works in SIMH AltairZ80, maybe

Discuss MS-DOS, Windows 1, 2 and 3.
Post Reply
vbdasc
Posts: 347
Joined: Fri Apr 30, 2010 6:14 pm

SCP 86-DOS (Tarbell) works in SIMH AltairZ80, maybe

Post by vbdasc »

It seems that newer versions of SIMH AltairZ80 actually support the Tarbell floppy controllers, after all, despite the long repeated mantra that only Cromemco is emulated.

So, I got the 86-DOS 1.14 (Tarbell) image that is circulating over the Internet, let's call it 86dos11t.imd . Next, I got a reasonably new SIMH AltairZ80 from July 2023, it can be downloaded from Peter Schorn's site, schorn.ch , for example. Then, I fired AltairZ80 and entered the following commands (which can be automated with a script, of course)

Code: Select all

sim> set cpu 8086
sim> set sio port=f6/0/0/0/0/F/0/T
sim> set sio port=f7/0/2/0/1/F/0/F
sim> set sio ansi
sim> set scp300f en
sim> set tdd en
sim> set wd179x en
sim> set wd179x iobase=78
sim> att tdd0 86dos11t.imd
sim> g ffff0
After that, I pressed ENTER a couple of times, and at the SCP Monitor prompt entered the command "B", just as it's done with Cromemco. And voila, 86-DOS started in all its glory.

Now, I'm not absolutely sure that all aspects of 86-DOS work correctly, when started this way. I've not tested much, due to lack of time. So, I leave testing as an exercise for the curious reader.

vbdasc
Posts: 347
Joined: Fri Apr 30, 2010 6:14 pm

Re: SCP 86-DOS (Tarbell) works in SIMH AltairZ80, maybe

Post by vbdasc »

I found an alternative way to boot this disk, using another AltairZ80 driver. So, not only does AltairZ80 support booting SCP 86-DOS (Tarbell), but there are at least two substantially different ways of doing so!

First, run the .IMD image through IMDU, to convert it to a raw .IMG image (for some reason, the .IMD image doesn't work).

Then, run the following commands, and lo and behold, 86-DOS boots again!

Code: Select all

sim> set cpu 8086
sim> set sio port=f6/0/0/0/0/F/0/T
sim> set sio port=f7/0/2/0/1/F/0/F
sim> set sio ansi
sim> set scp300f en
sim> set tarbell en
sim> set tarbell model=dd
sim> set tarbell prom=disable
sim> set tarbell iobase=78
sim> att tarbell0 86dos11t.img
sim> g ffff0
All extant 86-DOS and SCP MS-DOS disks for Tarbell use the double-density controller, as far as I'm aware. If a version using the single-density controller surfaces, or someone generates one using the method described in https://www.os2museum.com/wp/tarbell-to-cromemco/ , it will probably work if the command enabling single-density is issued: "set tarbell model=sd".

vbdasc
Posts: 347
Joined: Fri Apr 30, 2010 6:14 pm

Re: SCP 86-DOS (Tarbell) works in SIMH AltairZ80, maybe

Post by vbdasc »

There are several disk images with 86-DOS and MS-DOS 1.x at http://www.bitsavers.org/bits/SeattleCo ... ducts/NSI/ . They are in a format suggesting that the Northstar MDC/MDS hard sectored floppy controller is used. Altairz80 emulates the Northstar controllers, so maybe these images can be booted too in AltairZ80, just like the Cromemco and Tarbell ones? Yes, they can! (at least some of them)

Unfortunately, only 86-DOS_1_14.NSI and MS-DOS_1_25.NSI boot fully. These are apparently for a SCP system with a Northstar floppy controller. The three 86-DOS 1.10 ones, however, seem created for a Northstar machine, perhaps a newer version of Horizon plus a 8086 board, which uses an IMSAI PIO board and some weird memory-mapped S-100 video card that I couldn't even identify, let alone find an emulation for it in AltairZ80. In fact, I think that I managed to boot these three as well, but due to the unsupported video card, nothing showed on the screen, which makes these diskettes not very interesting. Perhaps, when (if) AltairZ80 learns to support the above video card, we'll return to them again.

So, let's boot MS-DOS_1_25.NSI. The 86-DOS 1.14 image boots in an absolutely analogous way.

Code: Select all

sim> set cpu 8086
sim> set sio port=f6/0/0/0/0/F/0/T
sim> set sio port=f7/0/2/0/1/F/0/F
sim> set sio ansi
sim> set mdsa en
sim> set mdsa membase=fe800
sim> att mdsa0 ms-dos_1_25.nsi
sim> load ms-dos_1_25.nsi 200
sim> g 200
And that's all... not. Unfortunately, this doesn't work without some additional effort. The command "set mdsa membase=fe800" won't work in the currently released AltairZ80/SIMH. I've registered an issue with the OpenSIMH project, but the devs there don't seem very enthusiastic for now, so we'll need to make a private build. So, download the current source of OpenSIMH, open "altairz80_sys.c" in an editor, locate the function "set_membase" and in it change the line

Code: Select all

    newba = get_uint (cptr, 16, 0xFFFF, &r);
with

Code: Select all

    newba = get_uint (cptr, 16, 0xFFFFF, &r);
and the line

Code: Select all

    if ((newba > 0xFFFF) || (newba % pnp->mem_size))
with

Code: Select all

    if ((newba > 0xFFFF && chiptype != CHIP_TYPE_8086) || (newba > 0xFFFFF) || (newba % pnp->mem_size))
, after which build your private copy of AltairZ80 and you're ready to go.

Post Reply