[Simh] {Spam?} transferring files to and from v6 unix running in pdp11 emulator
Will Senn
will.senn at gmail.com
Fri Nov 20 17:52:42 EST 2015
On 11/20/15 1:22 PM, Anders Magnusson wrote:
> Den 2015-11-20 kl. 20:12, skrev Will Senn:
>>
>>
>> On 11/20/15 10:51 AM, Anders Magnusson wrote:
>>> Den 2015-11-20 kl. 17:35, skrev Will Senn:
>>>> Hi,
>>>>
>>>> I have searched and searched and have not found a satisfactory
>>>> answer to this question:
>>>>
>>>> How can I efficiently copy files from my host system to unix
>>>> version 6 running in the pdp11 emulator and from unix 6 to my host
>>>> system?
>>> I usually do this by just tar'ing to/from a disk file, something like:
>>>
>>> on pdp11: tar cf /dev/rxp0c myfiles
>>> on host: tar xf simh-disk-file
>>>
>>> Works both ways :-)
>>>
>>> -- Ragge
>> Hi,
>>
>> This sounded promising, but as it turns out there appear to be 2
>> problems... 1. v6 doesn't have tar, and 2. it looks like v6 doesn't
>> have rx device support (floppies). Are you using v6 with tweaks, or
>> v7, or some other variant of unix?
> Hm, it was some time ago, but I think it was tar. Otherwise try cpio?
> You do not have to use floppies. rxp is the raw device for rp disks
> (avoids caching). Just work against that file.
>
> -- Ragge
>
Thanks. I combined a number or responses and came up with the following...
--------
--From Unix v6 on PDP 11/40 SimH to Host:
--------
create and attach an additional rk device:
simh> attach rk3 rk3
co
get a file of interest and note it's size in bytes:
# ls -l /etc/rc
-rw-rw-r-- 1 bin 90 Oct 10 12:32 /etc/rc
look at the od dump of the file for comparison later:
# od -c /etc/rc
0000000 r m - f / e t c / m t a b \n
0000020 / e t c / u p d a t e \n / e t c
0000040 / m o u n t / d e v / r k 1
0000060 / u s r / s o u r c e \n / e t c
0000100 / m o u n t / d e v / r k 2
0000120 / u s r / d o c \n \n
0000132
write the file to the rk device (the sync may not be needed, but the
result looks cleaner, also it doesn't apper that you can specify bs=1,
device errors out):
# dd if=/etc/rc of=/dev/rrk03 conv=sync
0+1 records in
1+0 records out
exit the sim and then on the host, read from the rk image using bs=1 and
count from the ls output:
$ dd if=rk3 of=rc bs=1 count=90
90+0 records in
90+0 records out
$ od -c rc
0000000 r m - f / e t c / m t a b \n
0000020 / e t c / u p d a t e \n / e t c
0000040 / m o u n t / d e v / r k 1
0000060 / u s r / s o u r c e \n / e t c
0000100 / m o u n t / d e v / r k 2
0000120 / u s r / d o c \n \n
0000132
This looks perfect, but I'm skeptical.
--------
-- From Host to Unix v6 on PDP 11/40 SimH Host:
--------
make a minor edit to the rc file (change m to n in the word mtab) and
note it's size in bytes:
$ ls -l rc
-rw-r--r-- 1 wsenn staff 90 Nov 20 16:15 rc
it better be 90, unless I did something other than changing a letter
$ dd if=rc of=rk3 conv=sync
0+1 records in
1+0 records out
512 bytes transferred in 0.000037 secs (13854733 bytes/sec)
note the count of blocks
with the number of blocks on hand, fire up the simulation
# dd if=/dev/rrk3 of=rc.dd count=1
because of the fact that I can't specify bs=1, the result is padded:
od -c rc.dd
0000000 r m - f / e t c / n t a b \n
0000020 / e t c / u p d a t e \n / e t c
0000040 / m o u n t / d e v / r k 1
0000060 / u s r / s o u r c e \n / e t c
0000100 / m o u n t / d e v / r k 2
0000120 / u s r / d o c \n \n \0 \0 \0 \0 \0 \0
0001000
so, I read from the dd file with the number of bytes still in hand:
dd if=rc.dd of=rc bs=1 count=90
90+0 records in
90+0 records out
then diff the file against the original:
diff rc /etc/rc
1c1
* rm -f /etc/ntab
---
. rm -f /etc/mtab
Woohoo and whew! A lot of work, but file transfer in both directions.
Does this approach seem sound to you or do you see some refinements that
are possible/necessary?
Thanks,
Will
More information about the Simh
mailing list