Aeon Emulator Blog

October 14, 2009

Aeon’s Architecture – Basics

Filed under: Aeon — Greg Divis @ 7:08 pm

Currently, Aeon consists of five .NET assemblies:

  • Aeon.Emulator.dll: This implements the core emulation functions for essential hardware and software; it also defines public classes and interfaces for extending Aeon.
  • Aeon.Emulator.Sound.dll: Provides Adlib, Sound Blaster, and General MIDI emulation.
  • Aeon.Presentation.dll: Contains the WPF graphical presentation layer and exposes Aeon as a WPF-friendly control.
  • Aeon.ZipFiles.dll: Provides simple zip file access.
  • Aeon.exe: Implements the user interface.

The emulator itself is decoupled from the user interface – to run a DOS program all you really need is Aeon.Emulator. To actually see anything on the emulated VGA card or be able to provide any kind of keyboard/mouse input, you’ll need to handle some events raised by the emulator, but this is all optional. It’s the presentation layer’s goal to handle video mode change events and render the data in emulated video RAM to a 32-bit bitmap, and also to capture keyboard/mouse input. The application itself just hosts the control from the presentation layer and wires it up to some UI commands.

The Aeon.Emulator.Sound assembly defines some classes that implement IVirtualDevice, IInputPort, IOutputPort, and IDmaDevice. The application simply registers these classes with the emulator to allow DOS programs to see the Sound Blaster hardware.

Next time, I’ll actually get into some code.


Leave a Comment »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Create a free website or blog at

%d bloggers like this: