Building a RK MINC disk

The only known BASIC for MINC comes in the form of a RX02 diskette image.

But PDP2011 does not have a RX controller. Yet. And while the controller doesn’t look like it would take too much time, there’s the issue with the sector sizes; RX needs 128 byte sectors, and SD cards can only do 512. Ugly – I don’t like how it turned out for RL, and RX would be even worse.

And the floppy images are a bit limited for size too. Better to have something like an RK05 image. So let’s try that then…

First, the RT-11 version on the RX images is not the latest and greatest – from what I’ve been able to see, peering into the image with od and strings, it seems to be V03B. By a stroke of luck, there’s also a nice distribution image of V03B to be found at Bitsavers.

So that is the starting point:
(and from there we want these two files:)
(and from there we'll get this one:)

The two floppy images are the proper distribution versions that insist on being copied before used. So let’s do that – boot them up, do the copy, then boot the newly created images – you’ll get a question if you want to run BASIC from VM, reply N to that. This is kind of essential, since the process creates a number of files – CONTNS.COM and MNCINI.COM for instance.

A simh.ini file might come in handy to deal with the fact that these are high density floppy images, and thus DY instead of DX:

set cpu 11/24
set rx disable
set ry enable
att ry0 <original>
att ry1 <new copy>
boot ry0 

Then RT11. gunzip the image, of course, then into simh – same setup as before, not sure if the set cpu 11/24 is critical, but why not be meticulous about it. And attach the copied floppy images to ry0 (system) and ry1 (demo).

So it is sysgen time – MINC needs an SJ monitor, and it needs timer support, and that is not on in the default distribution version. So let’s do this quickly – even though it was a big thing back in the day. I’ll only mention the sysgen questions that do not get the default answer – just press enter on all the others.

Do you want the foreground/background (FB) monitor Y/N? N
Do you want timer support in the SJ monitor Y/N? Y
Do you want BATCH support Y/N? Y
Do you want RX02 diskette support Y/N? Y
Do you want line printer support Y/N? N
How many extra device slots do you want D? 4
What is the PHYSICAL name and unit of the source input device DDU? RK0

Not quite sure if the Y to BATCH support is really necessary. Or the extra device slots, really. And the RX02 support might seem strange since PDP2011 doesn’t support those, but we’ll copy some files off the RX02 images next, that’s why. The LP is safely excluded though – even if you dream of having one.

Next, type @sysbld, and go for a cup of coffee. Very quickly – even on my laptop this runs in under 30 seconds. And then ‘make install’ the new version, that goes such like:


Now for the interesting bits – copying drivers and software from an image that I’m not quite sure which exact version it is, and I’m quite sure I don’t understand what all of these are. Here goes:


^Z                         (<--- type control-Z)


COPY DY0:M*.* DK0:
COPY DY0:Q*.* DK0:

Ok done!

Burn that on a card, and it’ll work with PDP2011. Boot it up and type RUN Q4SZMX (ALL), or type @CONTNS if you feel nifty.

There is just one thing.

It doesn’t work quite right. In the original setup – the setup that is on the floppy images, and that you can play with in SIMH as long as you don’t touch any of the ‘real’ MINC functionality – you end up in a BASIC shell that you can’t get out of. You can type some RT commands at the READY prompt, like ‘dir’ or ‘help’ or even ‘bye’ – with the floppy images, you’ll always return to the READY prompt. It is as if RT11 is not there anymore.

But with the RK images made with this recipe, anything that is not a BASIC statement will drop you back to the RT11 command prompt, and you’ll have to restart BASIC yourself. And that is a shame, if only because the HELP thing is really useful. For instance:

help ain
Collects analog data from an A/D converter.
Argument           Type of Argument      Valid Values        Default Value

mode               string expression     CONTINUOUS,DISPLAY, standard mode
data-name          numeric variable      -2048 to 2047;      required argument
                   or array name         full-scale values
data-length        numeric expression    >= 1                1
trigger            numeric expression    0; > 0 to 655.35;   0
                                         1 to 65,535
A/D-channel        numeric expression    0 to 63             0
                   or integer array
no.-of-channels    numeric expression    1 to 64 or channel  1
                                         array length
Example            70 AIN(,V(),100,1/100,8,4)
Result             Collects 100 values from the conversion sequence channels
                   8, 9, 10, 11, one sequence every one-hundreth of a second;
                   puts the values in array V.
Reference          BOOK 6

I’m hoping someone who understands how RT11 works can point me to the answers for this – it’d save me having to write the RX controller! and my guess is that is has something to do with the CONTNS.COM file and CONTXT.SYS. Or maybe the MNCINI.SAV. One of those would need to cause that CONTNS.COM is executed after any external program – for instance by setting it up as an alternate command interpreter, or some such. Can’t find how that would work though…

Oh. Ehh. Yeah, I should probably mention copyright. Even though the installation images are freely found all over the web, I’m not sure what the copyright status of this software is, but you are likely not formally allowed to do anything at all with it. Just so you know – if you do so anyway, the consequences are yours alone.

Some quick Q&A I think I already know the answer for:

  • You need the SP device. If you don’t have it installed and loaded, whenever you exit BASIC, your disk will be destroyed. Not sure why, but it happens.
  • You can probably do without the VM device – as I understand it now, it is just a trick to use the machine’s memory cache the q4szmx executable in between stepping out to the monitor. But you don’t really need that, the SD card is fast enough you wouldn’t really notice if the mechanism would work.
  • Yeah, the trick is pretty nifty – the MNCINI.SAV doing some magic, then writing the MNCINI.COM and then having that executed. There’s probably just one missing link…