VOGONS


First post, by Peter Swinkels

User metadata
Rank Oldbie
Rank
Oldbie

Hi,

Just wanted to share a project I am working on other people here might find interesting. It's a 8086 Emulator with simulated (though incomplete) hardware and BIOS and MS-DOS functions.

It can load and execute some DOS programs although there are a lot of glitches and it is prone to freezing::

helppc.gif
nc3.gif
readme.gif

Why am I writing this? Because I'm curious as to how the hardware and software work at a low-level. That, and if a program does work properly I have more control over debugging it and seeing what it does and influencing its behavior.

EDIT:
Links:
https://github.com/PeterSwinkels/8086-Emulator/

(For some reasons this forum breaks animated gifs.)
https://github.com/PeterSwinkels/8086-Emulato … ree/master/gifs

Also, remember this is a work in progress.

My GitHub:
https://github.com/peterswinkels

Reply 1 of 4, by BaronSFel001

User metadata
Rank Member
Rank
Member

This ground has been covered by others multiple times, but the more you learn the closer you may get to aspects others have not yet covered. For instance, it is simple enough to set specs 86box to simulate the Tandy 2000 but no actual emulator for that system exists to run the archives of dumped software for it. When they became moot in the late 80s early DOS-based PC incompatibles got little respect of their own (except for those in Japan, but then again they lasted longer in the market over there).

System 20: PIII 600, LAPC-I, GUS PnP, S220, Voodoo3, SQ2500, R200, 3.0-Me
System 21: G2030 3.0, X-fi Fatal1ty, GTX 560, XP-Vista
Retro gaming (among other subjects): https://baronsfel001.wixsite.com/my-site

Reply 2 of 4, by mkarcher

User metadata
Rank l33t
Rank
l33t
Peter Swinkels wrote on 2025-09-03, 14:43:

nc3.gif

The reason the horizontal lines are broken in the NC3 screen shot is that your emulator doesn't yet implement the line graphics expansion feature of the MDA card. In case you are not aware how it works: The 9th pixel column of a character is usually always the background color (which your emulator seems to implement perfectly), but for characters in the range C0-DF, the 9th pixel column is a copy of the 8th pixel column.

Reply 3 of 4, by Peter Swinkels

User metadata
Rank Oldbie
Rank
Oldbie

@BaronSFel001: I am not trying to create anything new. I am just doing this for the reasons stated in my original post. I doubt I will cover much that hasn't been covered yet. If I can ever get this program to work properly you will have an okay emulator written entirely in vb.net which might make it more accessible to some. Thank you for you reply btw. 😀

@mkarcher: I didn't notice that was an issue. Thank you for pointing that out. Do you know of any webpages detailing this aspect of the MDA ?

Any way, I noticed I still hadn't got the whole long to short filename mapping thing figured out properly. A project like this is fun and a good learning experience, but sometimes it feels like playing whack-a-mole with bugs. 😀

EDIT
Also, I have a new found respect for these types of projects. Goes to show just how tough those can be. 😀

My GitHub:
https://github.com/peterswinkels

Reply 4 of 4, by mkarcher

User metadata
Rank l33t
Rank
l33t
Peter Swinkels wrote on 2025-09-04, 08:21:

@mkarcher: I didn't notice that was an issue. Thank you for pointing that out. Do you know of any webpages detailing this aspect of the MDA ?

For me, it's oral tradition and knowing it from books I read some decades ago, but the information about the 9th column can be found at many pages, e.g. https://en.wikipedia.org/wiki/VGA_text_mode , the second paragraph of the "Fonts" subsection. If you need definite answers, you can find the schematics of the MDA in the original PC technical reference manual, which is archived at many places on the internet (including the first ones that spring to mind of talking about archiving and IBM PC retro stuff), and try to understand it.

While the Wikipedia page I linked is about the VGA card, the text mode technology didn't change since the EGA card. Furthermore, the 9-pixel technology was introduced to the EGA card because the EGA card should include the capability of displaying text on an MDA monitor just like the MDA did, so this 9-pixel text mode feature on VGA (if enabled) is just a clone of the MDA card behaviour. On the MDA card, this feature wasn't optional, though.