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