Ed Grochowski's Website
Home
Software Museum
Operating Systems
BASIC Language
E Language
GeniusWriter
String Art
Memory Test
MindsEye
Schematic Editor
Calculator
Running Legacy Software

Running Legacy Software

This page describes my efforts to keep old software that I have written running. One would expect to be able to read a document that he wrote 20 years earlier, and so why not expect the same for old software? While such software is not particularly useful today, the appeal is in dusting off the bits and still being able to run them.

Computers have the amazing property that all computers are equivalent - that is, anything that can be computed by a given computer can be computed by all computers (subject to practical considerations of performance and capacity). Since computers become more powerful over time, a modern computer can easily run software written for an older computer.

The screenshot shows four generations of the String Art program running simultaneously on a modern PC.

legacycode

Upper left: Stringy 6 (1981-1983), written in BASIC, is being run by BASIC 5.1 (1982-1984), a BASIC interpreter written in Z80 assembly language. The Z80 is being emulated by Gem, a Linux/GTK+ application that I wrote in C. Despite two levels of translation (an interpreter running on top of an emulator), Stringy 6 is quite fast on a modern computer!

Upper right: Stringy 7 (1986-1991), written in the E language, is compiled to C by the E language compiler, and then compiled to machine language by gcc. A slightly modified version of Edwin provides the GUI and windowing API. Like Stringy 7, Edwin is also compiled with the E language compiler and gcc. Ewlib, written in C, performs library functions and emulates the EDIX system calls under Linux. All three are linked together, and viola, Stringy 7 runs!

Lower left: Stringy (1995), written in C for Microsoft Windows, is being run by Wine. Wine emulates the Win32 system calls under Linux while natively running the application's code.

Lower right: Stringy (2005), written in C for Linux/GTK+, has the look and feel of a native application.

About 90% of the software I have written since 1980 still runs today.