I think neither disk, nor tape, tries to simulate speed. This is also a
tricky subject, because it depends on what disk/tape you want to
simulate. They can be wildly different in speed. (And, just as with
serial, I personally don't like that slowing down, but I can understand
that some people want to experience what it actually was like back then.)
--
You received this message because you are subscribed to the Google Groups "[PiDP-11]" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pidp-11+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pidp-11/099b47d2-a655-43c2-ae22-d83b3fe99a65%40googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "[PiDP-11]" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pidp-11+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pidp-11/dce718a5-1116-2261-a9af-5a61488eff91%40softjar.se.
[... snip ...]
Finally, all that work will also be very useful for making a scale model TU 56 front panel.
For what it’s worth, I think simulated device speed is a more general problem. The PiDP-8/I simulated paper tape reader (PTR:) runs so fast that it chokes simh when interrupts are enabled. I hope that a general case solution can be found that solves the problem not only for DecTape but for other simulated I/O devices like PTR: as well.
One though would be to have the device speed simulated within a separate thread but that takes more knowledge of how simh works than I have time to figure out.
By the way, what hooks does SIMH provide? Where would I find them documented?
Rene Richarz wrote:"The first thing I would do is to look at the settings of the driver you would want to operate differently."Unfortunately, the SIMH response is:sim> help ptr setNo SET help is available for the PTR device"Simulating the device driver at a realistic speed is in SimH defined to be the responsibility of each device driver. SimH just provides a number of hooks to do that."Looking at the relevant source code, it's clear that the driver I'm interested in is not taking advantage of any of those hooks. Again, FYI, I am personally concerned with the PTR: driver for the PiDP-8/i. The source code is here:.../pidp8i/src/SIMH/PDP8/pdp8_pt.c
From the PiDP-8, I know it uses the td and dt devices as DECtape emulation. One of them (I can't quite remember which one) is more or less timing-correct.I'm away from PiDPs at the moment, but do you alse have both td and dt devices in the simh PDP-11 simulation?
Or, if somebody can point me to simple instructions on how to setup and operate a DECtape using a DEC PDP-11 OS on the PiDP-11, then I could modify the PDP-11 DT driver. The PDP-11 DT driver looks a lot more complicated than the PDP-8 DT driver, but has debug facilities which help to understand what it is doing.
Not knowing anything about how to operate a PDP-8 and DECtape I feel the effort to put a test system in place would be much larger than the actual modification of the driver.
instructions on how to initiate some very simple DECtape operations
Maybe what I really need is a RECtape image, which I can attach, instead of letting the driver create an empty file. Or is these a way to initialize it once RSX-11 is running?Any help is appreciated.
Rene, you seem to be using the CCL command line interpreter then.
In which case, your commands are going to be more related to MCR.
So the proper command in MCR is DMO, not DISMOUNT.
And it seems very correct that the file would be 256 KB. As far as I can
remember, that is the capacity of a DECtape.
And before you do a DIR, the tape needs to be mounted normally. That
means mounted with the label name, and not mounted foreign (/FOR).
But maybe you should switch to DCL since that is a little more human friendly...
SET /DCL=TI:
I will need a modified RSX11 image with the corresponding device driver enabled (could you make that, Neal?) and the proper attach command for it, including the device name in RSX11. As far as I can see you cannot have both drivers being activated at the same time because they appear to use the same vectors.
Seems silly to have a DECtape front panel emulation for a magtape. :-)
But of course if there is enough interest I could also make a TU77 front panel.
--
You received this message because you are subscribed to the Google Groups "[PiDP-11]" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pidp-11+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pidp-11/29694f1c-585f-4fbd-a9eb-f137ad323ca5%40googlegroups.com.
magtape. The formats of these tapes are THE SAME except
that magtapes have larger directories.
...
Blocks 1 through 24 for DECtape (1 through 62 for magtape)
contain a directory of the tape.
...
And from "man tp"
...
The following characters may be used in addition to the
letter which selects the function desired.
m Specifies magtape as opposed to DECtape.
...
Magtapes can be addressed with /dev/rmt? and /dev/nrmt?, where ? is the unit number, addressing the magtape hardware.
DECtapes can be addressed with /dev/tape?, addressing the DECtape hardware.
Unfortunately there is no DECtape support in the current 2.11 BSD kernel used on the PiDP-11, but addressing a Magtape with "tp" works properly, for example to write a file:
tp cvmf /dev/rmt0 filename
To list the directory:
tp tmf /dev/rmt0
and to read a file
tp xmf /dev/rmt0
There is a warning when writing the first time to a new tape:
Warning: cannot read prototype boot block.
where it obviously cannot find a prototype boot block to write in the first block on the tape. This warning can be ignored, because we do not want to boot from tape.
Form "man 5 tp":
Block zero contains a copy of a stand-alone bootstrap pro-
gram. See reboot(8).
According to "man 5 tp" the format as seen from Unix on the tape is exactly the same as if it would be on DECtape, except the number of directory blocks which is 64 on a Magtape and 32 on a DECtape.
I think therefore, that using the "m" option and the device "/dev/rmt0" for "magtape device" is therefore a good approximation of using DECtapes on historical Unix systems with tu56. Ideally, it would of course be possible to put the support for the DECtape back into the kernel, so that "/dev/tape0" and "mt" in the DECtape mode could be used again. This would have the added benefit that one could use the "d" option in "tp" and erase individual files from the tape, which is not possible using the "m" option.
2) In the in column, if tape moves up more than some delta from neutral,
start feed wheel at slow speed to move more tape into the column. If
delta from center becomes bigger, increase wheel speed. On the real
drive, the speed increments are at discrete steps, based on how many
switches gets exposed to vacuum or not. I don't remember exactly how
many switches, and thus steps, there are. But that should be obvious in
the documentation, if you want to really match the real drive closely.
Here is a little Xmas present for the PiDP-11 user group:The result of my feasibility study for a TU77 mag tape on-screen simulator.
...
On Dec 25, 2019, at 11:30 AM, Neal G. <cven...@earthlink.net> wrote:
--
You received this message because you are subscribed to the Google Groups "[PiDP-11]" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pidp-11+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pidp-11/f1046980-e439-4c8e-b07f-e86c3c5c7698%40googlegroups.com.
Thanks for the preview; looks good.I noticed that the capstan wheel is stationary; but that's probably on your to-do list already.
The movement of the tape loops in the columns on real drives is pretty abrupt - all of the tape needed comes out of there until the edge of the tape passes over the first of the sensor holes, at which point the reel servo motors start feeding tape, which they do at a faster and faster rate as the tape loop gets closer and closer to coming out of the columns.
My goal is to make an on-screen front panel emulator of the TU77. As far as I can see the TU77 has lots of holes to measure the position of the tape in the vacuum column quite accurately. I think therefore that the tape movements in the column were probably not as abrupt as on some other drives with less precise position measurements. The spec says that the capstan went from zero to full speed in 3 ms. Based on the length of the columns my estimate is that the reels took up to 200 ms to come to speed. The simulation calculates a new frame around every 40 ms (the exact current frame rate is used in the physics model). Therefore, the acceleration of the reels is well visible, whereas the capstan just jumps from zero to full speed.
I have now implemented the physics model, the capstan motion, the changing tape radius, and the rewind. I can now see very well how- the radius of the tape changes more if there is less tape on the reel- the reel rotates faster and takes longer to accelerate if there is less tape on the reel- the reels lag behind the capstan, with the reel with less tape lagging more due to the higher speedwhile the PiDP-11 is writing a bunch of files of different lengths onto the tape.
Once I get a good image of the TU77, I will switch the simulation to the TU77, because I am using the TU77 specs and physics. When this is done, I will publish a new video on youtube.
I don't think anymore that the inter-block gap is of any relevance for my emulator. SimH just pushes multiple blocks of a file without any noticeable time gap, the capstan wouldn't stop anyway, and the next block write would most likely start before the 40 ms of the current frame period is over.
Remember, these drives were NOT streamers like the TU80/81 - in fact, the exact opposite. Any tape read or write operation started tape motion, transferred the block, and then stopped the tape. This happened even if the formatter had the next block (for a write) or free buffer (for a read) ready - stop / start / stop
I uploaded a new video https://youtu.be/8GL19xPuenI which shows the current state of the emulator. I think that it is mostly ok now,
One could probably hear something, but I do not plan at the moment to add sound to the magtape emulation.
Yes, tar works on 512 byte units, called blocks, but it groups them
together. This is the blocking factor, which by default in 2.11BSD is
20. That means the normal tape block read or written is actually 10240
bytes in tar.
Mostly OK, but there seems to be some problem when tape motion stops; the takeup reel continues to spin after the capstan has stopped.Although there would be a short motion perhaps 45 degrees to recenter the tape loop, in the video the reel makes one or two revolutions which would pull the tape entirely out of the column. Review the motion of the upper reel and capstan in the video at about 00:45 and 00:48.
The result of my feasibility study for a TU77 mag tape on-screen simulator.
Would there be support for custom tape labels? E.g. use a photo of some particular reel tape. I have some interesting photos.
--
You received this message because you are subscribed to the Google Groups "[PiDP-11]" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pidp-11+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pidp-11/90c7c158-5e21-4599-b8ae-d227fdfabccc%40googlegroups.com.
"When a defective batch of ... new design hubs was shipped on new DECtape drives, these hubs would loosen over time. As a result, DECtape reels would fall off the drives, usually when being spun at full speed, as in an end-to-end seek. The reel of tape would fall onto the floor and roll in a straight line or circle, often unspooling and tangling the tape as it went. In spite of this horrifying spectacle, desperate users would carefully untangle that tape and wind it laboriously back onto the tape reel, then re-install it onto the hub, with a paper shim to hold the reel more tightly."
Hi, i uploaded a tc11 (dectape controller) kernel driver for 211bsd to https://github.com/vlait/211bsd-tc11
On Thursday, January 2, 2020 at 9:13:10 PM UTC+1, Ville Laitinen wrote:
Hi, i uploaded a tc11 (dectape controller) kernel driver for 211bsd to https://github.com/vlait/211bsd-tc11
Very nice. It's really fun to use the DECtapes as very small disks in 2.11 BSD! And if you have the tu56 front panel emulator running, you can even observe how SimH buffers the tape drives, and writes to them after a while.
I have modified my boot.ini to attach 2 magtapes and 2 DECtapes during bootup, and save the DECtape buffers after a proper shutdown (see attachment). I have done the tests with your image being root, but I will put the modified kernel in my standard system and see, whether it does not cause any trouble doing the usual work, and using the DECtapes as a normal user.The only little quirk I can see at the moment is that you have to manually unmount the DECtapes before shutting down BSD. If you don't do that, one of the DECtape drives will run forever after the shutdown. I think what happens is that the umount is done automatically during shutdown, but SimH kills the DECtape driver before it has finished simulating the umount. Probably difficult to fix in SimH. Fortunately the DECtape reel doesn't jump off the hub in this situation :-).
--
You received this message because you are subscribed to the Google Groups "[PiDP-11]" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pidp-11+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pidp-11/fd0cb280-9575-4365-847f-3b66b3baf53b%40googlegroups.com.
I'm pretty sure this is all my fault because i don't really understand how the filesystem works.
--
You received this message because you are subscribed to the Google Groups "[PiDP-11]" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pidp-11+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pidp-11/7142df63-ddb1-484b-898f-47f4e36332ce%40googlegroups.com.
Start is implied but stop is explicit so the current behaviour is as expected -
I'm a little frustrated ...
{ register struct buf *bp; 400: int iter, nbusy; 401: 402: for (iter = 0; iter < 20; iter++) { 403: nbusy = 0; 404: for (bp = &buf[nbuf]; --bp >= buf; ) 405: if (bp->b_flags & B_BUSY) 406: nbusy++; 407: if (nbusy == 0) 408: break; 409: printf("%d ", nbusy); 410: delay(40000L * iter); 411: } 412: }
Based on a quick test no filesystem block requests have B_BUSY set though so the above cannot see any pending transfers.
(again, just guesswork - i could be completely wrong :)
br,
-V