Which RT-11 for an 11/03

Don North north at alum.mit.edu
Sat Mar 12 23:47:04 CST 2016


I've been doing some testing on the (new) SIMH TU58 device, and am finding that 
reading the boot block does not work.

I have TU58 bootable images, and when I try and boot from them in SIMH they 
halt/crash.

I adapted my PDP-11 M(312 TU58 boot code to a loadable SIMH image, and found 
that it appears that the TU58 boot command in SIMH (which should read block zero 
of the selected unit into memory locations 0-777(8)) is skipping over the first 
byte in the boot block (the 240(8) byte that is part of the NOP in the first 
word of every DEC bootstrap).

If I dump the first section of the bootable .dks image I see:

local[505] od -b -N512 -v tu58.dsk
0000000 240 000 040 001 006 000 000 000 012 000 000 000 000 000 000 000
0000020 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
0000040 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
0000060 000 000 000 000 000 000 000 000 002 012 002 000 000 000 000 000
0000100 000 002 010 000 306 025 000 140 005 000 303 025 060 000 302 025
0000120 003 000 123 020 321 013 302 012 374 002 346 027 004 000 337 025

but when I give the 'boot' opcode to the emulated TU58 in SIMH it returns:

+0000:  000 040 001 006 000 000 000 012 000 000 000 000 000 000 000 000
+0020:  000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
+0040:  000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
+0060:  000 000 000 000 000 000 000 002 012 002 000 000 000 000 000 000
+0100:  002 010 000 306 025 000 140 005 000 303 025 060 000 302 025 003
+0120:  000 123 020 321 013 302 012 374 002 346 027 004 000 337 025 152

By inspection the bytes are the same, just shifted down one location from
where they should be, and the 240(8) byte in location zero is missing.

So this is why 'boot tdc0' fails in the current SIMH on github.

PDP-11 simulator V4.0-0 Beta        git commit id: b304d7f4
Disabling XQ
TDC: buffering file in memory
Debug output to "tdc.log"
PDP-11 simulator V4.0-0 Beta
         Simulator Framework Capabilities:
                 32b data
                 32b addresses
                 Ethernet Packet transports:PCAP:NAT:UDP
                 Idle/Throttling support is available
                 Virtual Hard Disk (VHD) support
                 Asynchronous I/O support
                 FrontPanel API Version 2
         Host Platform:
                 Compiler: GCC 5.3.0
                 Simulator Compiled: Mar 12 2016 at 16:36:37
                 Memory Access: Little Endian
                 Memory Pointer Size: 32 bits
                 Large File (>2GB) support
                 SDL Video support: No Video Support
                 RegEx support for EXPECT commands
                 OS clock resolution: 1ms
                 Time taken by msleep(1): 1ms
                 OS: CYGWIN_NT-6.1-WOW lenovoS30w7 2.4.1(0.293/5/3) 2016-01-24 
11:24 i686 Cygwin
         git commit id: b304d7f4
PDP-11 simulator configuration



On 3/12/2016 3:58 PM, Don North wrote:
> Whoops slight correction .. . the TU58 protocol supports a 16b block number, 
> so it is 65536 blocks of 512B, or 32MB maximum.
>
> On 3/12/2016 3:55 PM, Don North wrote:
>> Well looks like I have been living in the past ...
>>
>> I have been using v3.9 SIMH from the SIMH website (the 'legacy' version) and 
>> have now gone an upgraded to the github v4.0 version. This one it appears has 
>> supported the serial virtual TU58 device since mid 2015 (at least by comment 
>> dates).
>>
>> I have tried it, and it successfully boots my XXDP TU58 images, as one should 
>> expect.
>>
>> However, I tried mounting a larger than 256KB physical TU58 image on the 
>> virtual TU58 (as one can do with a real TU58) but it does not appear to work 
>> as I expect. I should be able to mount a 10MB RL02 XXDP image on a TU58 and 
>> then do read-only accesses to the full image. The real TU58 protocol supports 
>> up to 32MB devices (512 blocks of 512 bytes) but it seems that the SIMH TU58 
>> only supports a physical TU58 tape image of 256KB. I'll have to do some more 
>> experiments and read some code to see what is going on.
>>
>> If this restriction is in place it does rather significantly limit the 
>> utility of the TU58 virtual serial device, in not allowing one to build an 
>> (up to) 32MB disk image under SIMH, and then move it to a real TU58. Limiting 
>> simh to only 256KB sized images is being true to the physical limitation of 
>> TU58 cartridges, but not true to the actual capability of the TU58 serial 
>> line protocol.
>>
>> Don
>>
>> On 3/11/2016 11:19 AM, Richard Cini wrote:
>>> I had a little time after lunch to try the below procedure and using the 
>>> beta version of SIMH I am able to create a tape image that's bootable by 
>>> SIMH without the below error.
>>>
>>> I copied the following to the image, which I will try with TU58em when I get 
>>> home tonight:
>>>
>>> DD, TT, rt11sj, DU, SL, LD, pip, dir, swap, dup, and starts.com.
>>>
>>> The size of the image is 504 blocks (264 free).
>>>
>>> Rich
>>>
>>> Sent from my iPhone
>>>
>>> On Mar 11, 2016, at 1:26 PM, Mattis Lind <mattislind at gmail.com> wrote:
>>>
>>>>> SIMH has never directly supported mounting/attaching virtual TU58 devices.
>>>>> Altho the required serial interface
>>>>> is emulated (ie, a plain DL11 at 776500/300) the TU58 drive behind the
>>>>> serial interface has never been emulated.
>>>> I just tested the latest SimH from github and it is indeed possible to
>>>> enable tdc and attach an image file to the tdc0 device. I then booted into
>>>> RT11 from a DU-device and did INIT DD0: no problem.
>>>> Then I made a bootable DD image. I did even do a BOOT DD0: which gave me a
>>>> RT11-prompt. But booting from SimH failed on me. I am not sure why.
>>>>
>>>> MattisMacBook:BIN mattis$ ./pdp11
>>>> PDP-11 simulator V4.0-0 Beta        git commit id: 1b6f28a7
>>>> sim> set tdc enable
>>>> sim> attach tdc0 rt11-dd.dsk
>>>> TDC: creating new file
>>>> TDC: buffering file in memory
>>>> sim> attach rq0 rt11v53-games.dsk
>>>> sim> b rq0
>>>>
>>>> RT-11SJ  V05.03
>>>>
>>>> .init dd0:
>>>> DD0:/Initialize; Are you sure? Y
>>>>
>>>> .copy dd.sys dd0:
>>>> Files copied:
>>>> DK:DD.SYS      to DD0:DD.SYS
>>>> **** Copying some files *****
>>>>
>>>>
>>>> .copy rt11sj.sys dd0:
>>>> Files copied:
>>>> DK:RT11SJ.SYS  to DD0:RT11SJ.SYS
>>>>
>>>> .copy/boot rt11sj.sys dd0:
>>>> .boot dd0:
>>>>
>>>> RT-11SJ  V05.03
>>>>
>>>> .dir
>>>>
>>>> DD    .SYS     5P 20-Dec-85      TT    .SYS     2P 20-Dec-85
>>>> SWAP  .SYS    27P 20-Dec-85      STARTS.COM     1P 20-Dec-85
>>>> DIR   .SAV    19P 20-Dec-85      DUP   .SAV    47P 20-Dec-85
>>>> DU    .SYS     8P 20-Dec-85      RT11SJ.SYS    79P 20-Dec-85
>>>> 8 Files, 188 Blocks
>>>> 316 Free blocks
>>>>
>>>> .boot du0:
>>>>
>>>>
>>>> RT-11SJ  V05.03
>>>>
>>>> .
>>>>
>>>> Simulation stopped, PC: 146414 (BCC 146446)
>>>> sim> exit
>>>> Goodbye
>>>> TDC: writing buffer to file
>>>>
>>>> PDP-11 simulator V4.0-0 Beta        git commit id: 1b6f28a7
>>>> sim> set tdc enable
>>>> sim> attach tdc0 rt11-dd.dsk
>>>> TDC: buffering file in memory
>>>> sim> b tdc0
>>>>
>>>>
>>>> Trap stack push abort, PC: 000000 (WAIT)
>>>> sim>
>>>>
>>>> I have no idea why SimH is not able to boot from the simulated DD0: device.
>>>> The steps to make a bootable dd0: was exactly the same steps as to make a
>>>> bootable RK0: which works just fine.
>>>>
>>>>
>>>> Ersatz-11 on the other hand works fine with the same image:
>>>>
>>>> E11>assign tt1: dda:
>>>> E11>mount dda0: rt11v53_dd.dsk
>>>> E11>b tt1:
>>>>
>>>> RT-11SJ  V05.03
>>>>
>>>> .dir
>>>>
>>>> TT    .SYS     2P 20-Dec-85      DD    .SYS     5P 20-Dec-85
>>>> RT11SJ.SYS    79P 20-Dec-85      SWAP  .SYS    27P 20-Dec-85
>>>> STARTS.COM     1P 20-Dec-85      DIR   .SAV    19P 20-Dec-85
>>>> RESORC.SAV    25P 20-Dec-85
>>>> 7 Files, 158 Blocks
>>>> 346 Free blocks
>>>>
>>>> .
>>>>
>>>>
>>>> This is the image that boots in Ersatz-11 but not in SimH:
>>>> https://dl.dropboxusercontent.com/u/96935524/rt11v53_dd.dsk.gz
>>>> Since it boots on Ersatz-11 when set to 11/03 CPU it should work on the
>>>> real hardware.
>>>>
>>>> BTW. It not so that the LTC interrupt is enabled in your system? I have had
>>>> problem with that one. In certain cases it need to be disabled. If I
>>>> remember correctly I had problems booting RT11 from MSCP devices with LTC
>>>> enabled.
>>>>
>>>> /Mattis
>>>>
>>>>
>>>>
>>>>> Don
>>>>>
>>
>>
>
>



More information about the cctalk mailing list