MINC RK05

Currently, there is only one known source of the special MINC BASIC: a set of RX02 diskette images on Bitsavers. However, PDP2011 does not have a RX controller. So we’ll have to convert the software on those RX02 images to disk images that will work with PDP2011. I’ve chosen for RK05 – mostly because those images are easier to work with than RL02, although RL02 is a bit more historically correct – there were MINC models with RL02 disks, but I’ve not found references to RK05.

The MINC software runs on top of RT-11 – with some tricks to shield the user from the operating system. Several details on exactly how this works remain unknown, however, thanks to in-depth research by Jan Secker, we can now create RK images that comfortably work with MINC BASIC and the software environment that comes with it – the DIR command, but also the HELP system, the EDIT and INS commands etc.

The starting point for the RK image are the two RX02 images for the MINC 11/23, and the RK image of RT-11 V03B – both conveniently available on Bitsavers:

http://bitsavers.org/bits/DEC/pdp11/floppyimages/minc/rx02/
(and from there we want these two files:)
BA_J836B-BC_MINC_MA_SYS_23_V2.0_BIN_RX2.img
BA-J837B-BC_MINC_MA_DEMO_23_V2.0_BIN_RX2.img

http://bitsavers.org/bits/DEC/pdp11/discimages/rk05/
(and from there we'll get this one:)
AN-5752B-BC_RT-11_V03B.dsk.gz

The two floppy images are the proper distribution versions that insist on being copied before used. And we need to follow that procedure, because some of the files we need in the later steps are generated during a regular boot from the floppies, and others are renamed and possibly modified in other ways too. The good news however is that we will only really need the second floppy.

A simh.ini file will come in handy, something like this should work:

set cpu 11/24
set rx disable
set ry enable
att ry0 BA-J837B-BC_MINC_MA_DEMO_23_V2.0_BIN_RX2.img
att ry1 rx2-demo.dsk
boot ry0 

Then RT11. gunzip the image, of course, then into simh for the next steps. You will need a new, fresh RK image, and attach the copied floppy images to ry0 (system) and ry1 (demo). For instance with the following simh.ini:

set cpu 11/24
set rx disable
set ry enable
att ry0 rx2-demo.dsk
att rk0 AN-5752B-BC_RT-11_V03B.dsk
att rk1 mincwork.dsk

Once into RT-11 (type ‘boot rk0’ into simh) it is time for a sysgen; MINC needs an SJ monitor with 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. If you’re not too good at typing, you might want to enter ‘set tt scope’ first – that’ll make the backspace key work like it should.

.R SYSGEN
Do you want the expanded form of dialogue [Y/N] (Y)? N
Do you want the foreground/background (FB) monitor [Y/N] (Y)? N
Do you want timer support in the SJ monitor [Y/N] (N)? Y
Do you want line printer support [Y/N] (Y)? N
How many extra device slots do you want [D] (0)? 4
What is the PHYSICAL name and unit of the
   source input device [DDU] (RK1)? RK0

And again showing all questions for completeness, with the relevant questions highlighted in bold and italics:

.R SYSGEN
Do you want the expanded form of dialogue [Y/N] (Y)? N
Do you want the base-line single-job monitor [Y/N] (N)?
Do you want the single-job (SJ) monitor [Y/N] (Y)?
Do you want the foreground/background (FB) monitor [Y/N] (Y)? N
Do you want the extended memory (XM) monitor [Y/N] (N)?
Do you want timer support in the SJ monitor [Y/N] (N)? Y
Do you want device time-out support [Y/N] (N)? 
Do you want an error message on system I/O errors [Y/N] (Y)? 
Do you want the optional 50 Hz clock support [Y/N] (N)? 
Do you want to use the KW11-P clock as the system clock [Y/N] (N)?
Do you want the startup indirect file [Y/N] (Y)? 
Do you want memory parity support [Y/N] (N)? 
Do you want power failure messages [Y/N] (Y)? 
Do you want BATCH support [Y/N] (N)? 
Do you want escape sequence processing [Y/N] (N)? 
Do you want error logging [Y/N] (N)? 
What is the name of the system device [DD] (RK)? 
Do you want RJS03 or RJS04 disk support [Y/N] (N)? 
Do you want RF11 fixed-head disk support [Y/N] (N)? 
Do you want RP11/RPR02 or RP11/RP03 disk support [Y/N] (N)? 
Do you want RX01/RX11 flexible diskette support [Y/N] (N)? 
Do you want RX02 diskette support [Y/N] (N)?
Do you want support for a second RX02 controller [Y/N] (N)? 
Do you want RX02 double density support only [Y/N] (N)? 
Do you want RL01 disk support [Y/N] (N)? 
Do you want TC11 DECtape support [Y/N] (N)? 
Do you want RK06/RK07 disk support [Y/N] (N)? 
Do you want magnetic tape support [Y/N] (N)? 
Do you want TA11 cassette support [Y/N] (N)? 
Do you want VT11 or VS60 graphics support [Y/N] (N)? 
Do you want line printer support [Y/N] (Y)? N
Do you want PC11 high-speed paper tape reader/punch support [Y/N] (N)? 
Do you want PR11 high-speed paper tape reader support [Y/N] (N)? 
Do you want card reader support [Y/N] (N)? 
Do you want the null handler [Y/N] (Y)? 
How many extra device slots do you want [D] (0)? 4
Do you want to retain the system OBJ's [Y/N] (N)? 
What is the PHYSICAL name and unit of the
   source input device [DDU] (RK1)? RK0
What is the PHYSICAL name and unit of the
   binary output device [DDU] (RK0)? 
What is the PHYSICAL name and unit of the
   map output device [DDU] (TT)? 
END OF SYSGEN PROGRAM--Don't forget to copy DK:SYCND.MAC and
        DK:SYSTBL.MAC to the source disk before executing the
        command file(s). Remember that SWAP.SYS must
        be on all bootable volumes.

Next up – and this is one of the tricks Jan Secker discovered – we’ll need to edit the SYCND.MAC file to set a flag named CONTN$N; doing this lets the MINC BASIC stay in control, and lets you use the HELP and EDIT and DIR commands. Since the RT-11 editor is ‘a bit’ different from what we are used to nowadays, I’ll include the editing process in detail – the main thing though is that in all commands, where you see two $$ signs, you should actually type ESCAPE twice:

.EDIT SYCND.MAC
*R$$                type R followed by two times ESCAPE
*/L$$               type /L followed by two times ESCAPE

.SBTTL  SYSTEM CONDITIONAL FILE
        ; SYCND.MAC--SYSTEM CONDITIONAL FILE
        ;
        ; COPYRIGHT (C)    1978
        ;
        ; DIGITAL EQUIPMENT CORPORATION,  MAYNARD,   MASS.

SYSG$N  = 1             ;INDICATE SYSGENED MONITOR
TIME$R  = 1             ;ADD TIMER SUPPORT (SJ)
RDF$L   = 1             ;ADD SYSTEM I/O ERROR MESSAGE (SJ)
CLOCK   = 60.           ;POWER LINE FREQUENCY (SJ,FB,XM)
STAR$T  = 1             ;STARTUP COMMAND FILE (SJ,FB,XM)
PWF$L   = 1             ;POWER FAIL (SJ,FB,XM)
ESC$P   = 0             ;NO ESCAPE SEQUENCES (SJ,FB,XM)
$RKSYS  = 1             ;SYSTEM DEVICE
*20A$$               type 20A followed by two times ESCAPE
*ICONT$N  = 1        exactly this, with a dollar and a return at the end
$$                   type two times ESCAPE
*EX$$                type EX and two times ESCAPE

Next, type @sysbld, and go for a cup of coffee. Quickly – the build takes about twenty seconds on my slow laptop.

Next up, copying the software from the floppy. And also a couple of drivers that we don’t have the source for – and it’s not entirely clear what all of these do either.

INIT RK1:

RK1:/Init are you sure?Y

COPY/SYS DY0:*.SYS RK1:
COPY DY0:*.SAV RK1:
COPY DY0:*.HLP RK1:

COPY TT: RK1:CONTNS.COM
RUN Q4SZMX
ALL
^Z                         (<--- type control-Z)

COPY TT: RK1:STARTS.COM
SET USR NOSWAP
SET TT SCOPE
INS SP
LOAD SP
INS LP
ASSIGN RK0 HLP
^Z                         (<--- type control-Z)

COPY DY0:*.BAS RK1:

And the final step – copy the sysgenned system to the new disk. This is last, so that we’ll overwrite the old versions that came from the floppy with the previous commands.

COPY/SYS *.SYG RK1:*.SYS
COPY/BOOT RK1:RKMNSJ.SYS RK1:

Ok done! you can boot the image on simh to be sure it works, but without MINC devices or VT105 there’s not much that you can do with it. Burn it on a sd card and boot it on a MINC PDP2011!

And of course I should mention copyright. Even though the disk images are freely found on the web, you are probably not allowed to do anything at all with the software. 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 (HELP command, DIR, EDIT, INS…), your disk will be destroyed. Not sure why, but it happens.
  • I’ve set up this description to 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.

There are a few mysteries left though – the MUTIL and MNCINI executables on the floppy don’t seem to work, and it’s not really clear why. The MUTIL and VM driver are used to reload the BASIC system from memory instead of from floppy – we can do without that. And MNCINI seems to be used to set up start-up files – but we can make do with a manually edited CONTNS.COM.