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 .dsk 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
>>>>
>
>