Legacy IBM PC Emulator

From Wikipedia, the free encyclopedia

Legacy
Developer: Jonathan Thomas
Latest release: Preview / January 7, 2006
OS: Linux
Use: Emulator
License: GNU GPL [1]
Website: Shinelife [2]

Legacy (full name Legacy IBM PC emulator) is an in-progress emulator of the 16-bit IBM PC home computer, launched in the early 80's. The primary purpose of Legacy is to allow the playing of games that no longer work or run too quickly on modern IBM PC compatible computers. Examples of such games are Marble Madness (Atari), Styx (Windmill Software) and Space Strike (Funtastic).

[edit] Architecture

Legacy currently supports the following aspects of the IBM PC hardware:

  • 16-bit Intel 8086 CPU
  • CGA graphics card
  • 8259 PIC (Interrupt controller)
  • PIT (Programmable interval Timer)
  • 1 megabyte of memory
  • Keyboard
  • Floppy disk drive

[edit] Unique features

Legacy differs itself from other IBM PC emulators through not using copyrighted ROM BIOS code. ROM BIOS code is normally encoded into chips on a computer's motherboard or expansion cards, and provides operating systems and applications with a way to communicate with hardware (such as graphics cards and storage media) without knowing the internal workings of the hardware. The ROM BIOS code is accessed on IBM PC compatibles using the INT assembly language instruction.

Whereas many other IBM PC emulators make use of a file-based representation of the ROM BIOS (known as a BIOS image), Legacy has native code in the emulator itself that replicates the functionality in a genuine BIOS. This avoids the use of copyrighted software and makes Legacy genuinely free software.

Legacy is also distinguished from many other IBM PC emulators through the inclusion of an integrated disassembler. The user may press the F12 key at any time, view a disassembly of the code currently being executed by the CPU, and single-step through execution of instructions.

[edit] Development status

Legacy is primarily developed and made available on the Linux/x86 platform using the SDL library. It has been ported successfully in the past to Windows/x86 and the Compaq/HP Pocket PC. Any platform with a port of the SDL library should theoretically be able to run Legacy with not a great deal of development effort.

More recently, a quick port has been made available on the GP2X handheld console, allowing a limited number of Windmill Software games to be played.

The emulation is mostly complete, and the current effort revolves around correct emulation of instruction timing and the PIT chip. This stage in development will allow the emulation to match the "feeling" of playing the games on the real hardware.

Currently, Legacy does not run the MS-DOS operating system, although this functionality is expected to become available in a future version.