Design Decisions in Emulator Construction: A Case Study on Home Computer Software Preservation
Preserving software is widely recognized as a far more complex task then preserving static data. Emulation is usually the chosen preservation action to enable the execution of programs of obsolete systems. In this work we show how software extracted from obsolete media was preserved by developing an emulator. We explain the reengineering work involved and the design decisions made as well as the options for data injection into and extraction from the emulated environment.
In previous work, data and programs stored on audio tapes were extracted and the resulting audio files were transformed into digital objects. The objects retrieved were mainly programs, requiring emulation for execution. As no emulator for the original system previously exists, we here show how we implemented one. We first describe the system in more detail and explain the reengineering of the view-path for the execution of programs on the original system. We show how an existing emulator for a video game system was expanded by emulation capabilities for the view-path of the home computer and how the different options for data exchange with the host environment were implemented on different levels in the view-path. We explain how differences in input and output formats and methods influence the development of an emulator and that, depending on the original system, the transfer of data between the emulated environment and the host environment enforces implicit migration of the data to become usable.
["Guttenbrunner, Mark", "Rauber, Andreas"]
["singapore"]