X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com Date: Fri, 21 Dec 2018 05:07:15 +0100 (CET) X-X-Sender: igor2 AT igor2priv To: geda-user AT delorie DOT com X-Debug: to=geda-user AT delorie DOT com from="gedau AT igor2 DOT repo DOT hu" From: gedau AT igor2 DOT repo DOT hu Subject: [geda-user] pcb-history completed: router Message-ID: User-Agent: Alpine 2.00 (DEB 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Reply-To: geda-user AT delorie DOT com 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