Mail Archives: geda-user/2018/12/20/23:08:28
Hi all,
you may remember I have a side project that collects all early versions of
PCB and ports the sources to modern Linux so you can try how PCB really
worked 20 or 25 years ago: http://repo.hu/projects/pcb-history (click on
the "vintage src" button on top)
pcb.html says:
"Pcb was first written by Thomas Nau for an Atari ST in 1990 and ported to
UNIX and X11 in 1994. It was not intended as a professional layout system,
but as a tool which supports people who do some home-developing of
hardware."
What the above text does not say is that the original name vas not PCB but
"router".
So far this was the only early version that was missing from the
pcb-history project. It is so old that I couldn't even find any screenshot
of it. (Is there anybody reading this mailing list who used the original
version on Atari?)
I contacted the original authors, Thomas Nau and Bernhard Daeubler, and
they kindly provided the Atari source code. It took some time, because it
had to be retrieved from one of the original developer machines (an Atari
ST) and copied over to modern systems. Once I got the code, I managed to
dig up some documentation on the original system's API (tos - The
Operating System) so I decided to write a minimal emulation layer and port
the code to Linux.
Now we have a router that fully works on a modern Linux if you have sdl2
installed! Meanwhile Ade figured how to run the original binary in an
atari emulator (hatari) so we could compare the result: the Linux version
looks and works the same as the original.
A desktop video for those who don't want to compile it but want to look at
it: https://archive.org/details/atari-router-demo
Besides the historical aspects, the code taught me a lot. For example our
keyboard-oriented approach goes back to router: it was so strong back then
that mouse click didn't do anything, the mouse was merely used to position
the crosshair. PCB inherited the idea of single key press changes line
width and via size from router too.
Finally, the funniest thing is that it took only one day to roll an almost
full port: I didn't port the low level asm printer code (would take
another 2..3 hours) and I didn't write a converter for the binary file
format (which is just a direct dump of the C structs from memory, so
affected by byte order and padding). I find it amusing that getting an
almost 30 years old codebase to run on an up to date system is so simple.
(I wonder how this will be in 2048 with today software, all the gtk and qt
spaceships - and I mean a native port, not just running in a PC emulator!)
I hope you enjoy this piece of history.
Best regards,
Igor2
- Raw text -