delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2018/12/20/23:08:28

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: <alpine.DEB.2.00.1812210442210.21900@igor2priv>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
MIME-Version: 1.0
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


- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019