Classic programming

Jon Elson elson at pico-systems.com
Fri Aug 7 20:42:41 CDT 2015


> On Aug 7, 2015, at 9:18 AM, Eric Christopherson <echristopherson at gmail.com> wrote:
>
>> Is there a subset of this group for people who like to program in
>> languages or language implementations or libraries that are no longer
>> in common mainstream use? Or other groups for such a thing?
>
Well, I wrote a very big program in 1996 or so in Borland 
Turbo Pascal.  I later updated it in Turbo Pascal for Windows.
Later, I ran it on a Linux host using VMWare and Win 2K, but 
didn't have a way to make any updates.  Then, mercifully, 
fpc came out, specifically for porting old Borland and DEC 
Pascal programs to the native Linux environment.  (I have 
used the p2c translator for very small programs, but had 
zero confidence it could handle a major program.)  fpc 
worked AMAZINGLY well at handling a complex set of Pascal 
files with units and separate compilation.  Once I got it 
running, I fixed a few problems that had been there for some 
time.

This program is a Gerber file to raster converter that I 
wrote originally for my laser photoplotter.  The original 
version generated plots directly to the plotter using an 
ISA-bus DMA card under Windows 95.  It was all user-mode 
code and programmed the DMA controller chip.  When I moved 
to 32-bit Windows, it was impossible to determine the 
physical address of the data buffer, so what I did was 
create a raster file on Win 2K, and then send the file to 
the Win 95 computer for plotting.  The advantage of the Win 
2K environment is HUGELY larger memory space, which was 
always extremely tight on the Win 95 system.  The program 
has bitmaps of all the defined apertures in memory, and they 
add up.

Since the Win 95 computer was eventually going to die, I 
replaced it with a Beagle Bone computer, and have a filter 
that run-length compresses the raw raster output.  The 
Beagle Bone's PRU microcontroller uncompresses the 
run-length compressed data in real time as it is 
spoon-feeding the plotter and simulating the old DMA card.  
It has to feed a pixel to the plotter every 5 us.

Well, kind of went off on a tangent there, but that's a case 
where a really old program got renewed, cleaned up and 
prepared for another couple decades of life.

Jon


More information about the cctech mailing list