I am not aware of any FPGA implementations of a pdp-11.
I have a special fondness for the 11. Way back, in the good old days, I
learned C on the old Waterloo MATH UNIX system, a pdp-11/45 running a
modified Unix v6, at the University of Waterloo, room MC6098.
Some day, I will build a pdp-11 system in an FPGA, if only for my own
personal use.
Until then, the real thing will have to do. I have one here that I have
cobbled together from an SBox KDJ11 running in a MicroVAX 3400 (BA213)
chassis. It's equivalent to a pdp-11/53+. The two attached email
messages give some details.
Jan Gray, Gray Research LLC
-----Original Message-----
From: Jan Gray
Sent: Tuesday, March 19, 2002 6:55 PM
Subject: 2.11 BSD now up and running on my pdp-11/53+
The trip backwards in time continues! I am just now running Unix on
actual pdp-11 hardware -- for the first time since 1981 or so.
What: KDJ11 and CMD CQD223/TM mounted in my BA213 (for the time being,
an ex-MicroVAX 3400 (like
http://www.mcmanis.com/chuck/computers/vaxen/ba213.htm)), attached to a
512 MB SCSI disk and a TSZ07 9-track tape drive.
Many thanks to Jonathan Engdahl for his very helpful web site
(http://users.safeaccess.com/engdahl/PDP-11_53.htm), and to Chuck
McManis for http://mail-index.netbsd.org/port-vax/2001/01/28/0001.html
(amongst other things), and especially to Steve Schultz for maintaining
2.11 BSD across millennia! Thank you.
Sample session:
45Boot from vt(0,0,0) at 0177560
: ra(0,0,0)unix
Boot: bootdev400 bootcsr72150
2.11 BSD UNIX #115: Sat Apr 22 19:07:25 PDT 2000
:/usr/src/sys/GENERIC
ra0: Ver 6 mod 13
ra0: RA81 size39328
phys mem = 1572864
avail mem = 1348928
user mem = 307200
hk ? csr 177440 vector 210 skipped: No CSR.
ht ? csr 172440 vector 224 skipped: No CSR.
ra 0 csr 172150 vector 154 vectorset attached
rl ? csr 174400 vector 160 skipped: No CSR.
tm ? csr 172520 vector 224 skipped: No CSR.
tms 0 csr 174500 vector 260 vectorset attached
ts ? csr 172520 vector 224 skipped: No CSR.
xp ? csr 176700 vector 254 skipped: No CSR.
erase, kill ^U, intr ^C
# ^D
Fast boot ... skipping disk checks
checking quotas: done.
Assuming non-networking system ...
checking for core dump...
preserving editor files
clearing /tmp
standard daemons: update cron accounting.
starting lpd
starting local daemons: sendmail.
Tue Mar 19 18:09:43 PST 2002
2.11 BSD UNIX (curly.2bsd.com) (console)
login: jan
Last login: Tue Mar 19 18:05:53 on console
2.11 BSD UNIX #115: Sat Apr 22 19:07:25 PDT 2000
$ cat hello.c
int main()
{
printf("hello world!\n");
return 0;
}
$ cc -O -S hello.c; cat hello.s
.globl _main
.text
_main:
~~main:
jsr r5,csv
mov $L4,(sp)
jsr pc,*$_printf
clr r0
jmp cret
.globl
.data
L4:.byte 150,145,154,154,157,40,167,157,162,154,144,41,12,0
$ cc -O -o hello hello.c; ls -l hello
-rwxr-x--x 1 jan 5333 Mar 19 18:10 hello
$ ./hello
hello world!
$ ^D
For historical verisimilitude I first cut a 9 track distribution tape,
then I installed from that (except I had to boot from a virtual tape
bootstrap loader because for some reason I can't boot from my real tape
drive MU0).
Note there's also a small problem booting from my MSCP controller's
DU0
hard disk, so I currently boot it with a "virtual tape" boot loader.
I
saw a fix in the list archives and I think I just have to build and
install a new rauboot.
Now to wait for the DESQA and TQK70 to come in the mail.
-----Original Message-----
From: Jan Gray
Sent: Tuesday, March 26, 2002 10:52 PM
Subject: RE: 2.11 BSD now up and running on my pdp-11/53+
I received my replacement TQK70 and my DESQA. My TK70 is now working,
and I am now running a networked build of 2.11BSD:
The new TQK70 worked fine, and I have things set up so it is the primary
TMSCP CSR at 174500 and rejumpered my CMD CQD223/TM to 160404. I edited
my /etc/dtab to tell it to look for a second TMSCP control register at
160404 and that worked.
The TK70+TQK70 is terribly slow, in the 1-2 MB/minute ballpark, even
with dd bs0k. Streaming? In my dreams. Rather, a lot of
2-steps-forward-1-step-back. By the way, the 11's address space
limitations really comes home when you realize that you can't dd bsdk
no matter what...
Also, there is a bug in dd that prevents from dd bs2k. (It's very
nice to have the source to look at.) Eww, the code sometimes doesn't
even declare the formal argument types and return types of functions.
As for the DESQA, that worked first time. I built a new kernel, config
JANS11, based off CURLY, with these changes:
1. I didn't know what the BOOTDEV ra did, so I set it to BOOTDEV NONE.
(What *does* it do? what is the "autoboot device"?)
2. I turned off QUOTAs.
3. I turned off DHV11 support.
4. I turned off INGRES.
During the kernel build, there was an overlay overflow in OV6. I found
this doing a size unix.o, noting overlay 6 was full. I did a size
toy.o, it looked like a good candidate to move to OV5. I did that,
rebuilt, and all was fine:
$ size /unix /netnix
text data bss dec hex
52288 5846 26288 84422 149c6 /unix total text: 111424
overlays: 7744,7488,7872,7296,2752,8064,4992,5696,7232
63296 2448 38514 104258 19742 /netnix
(I hadn't built something with overlays since 8086 days.)
I edited netstart to add my hostname, etc., /etc/hosts, and so forth, so
that it ifconfig's qe0 and lo0 (localhost loopback).
This works fine, I can telnet in and out, ftp in and out, etc. ... it
sure is nice to to telnet into the 11, opening up mulitple terminal
sessions in multiple windows on my notebook PC, as compared to using a
single serial console (albeit attached to my networked VAXstation). On
this slow machine, lacking job control, it is so nice to open up another
session if/when the current command is going to take longer than
anticipated.
...
|