Posts

Showing posts from July, 2023

Emulator Debugging: Windows 3.0 and VGA

Image
My emulator has incomplete implementations of the EGA/VGA cards. Since these cards share a lot of common functionality and register architecture, I developed them simultaneously.  In some ways, the VGA is just an EGA card with a DAC, faster crystal, and color registers bolted onto it. So much so, that the VGA's classic 640x480 16 color-mode is nearly identical in function to the EGA's equivalent 640x350 16 color mode, just with a higher vertical resolution. This allows you to do some silly things. In Windows 95, you can select the 'Standard VGA' driver, then turn your computer off and replace your VGA card with an EGA card and power it back on - and you will see your desktop again, just with the bottom of the screen cut off, since you now only have 350 lines of vertical resolution. Now you have Windows 95 on an EGA card - something that was never officially supported. I remember doing this out of desperation as a teenager when our VGA card died. I was even able to get W

Emulator Debugging: PIANOMAN 3.0

Image
Early in development I was looking for a utility to test my crude PC speaker emulation.  I found a simple keyboard-piano program called PIANOMAN.  I'm not sure where I found it - there are lot of archives of old DOS software out there, after all. The version I downloaded was PIANOMAN 3.01.  PIANOMAN is credited to a Neil J. Rubenking, who apparently is an author and long standing writer for PC Magazine .  I'm going to stop shouting now, and just refer to the program as PianoMan. PianoMan is a fairly straightforward program, putting aside its sophisticated recording and playback facilities, the basic interface presents a view of a standard 83-key XT keyboard with various musical notes overlaid on the appropriate keys; hitting these keys produces the corresponding note. The note is supposed to be played for as long as the key is held down, and silenced when the key is released. On MartyPC currently, when a note is played it continues forever, at least until another note is played