VOGONS


First post, by zaphod

User metadata
Rank Newbie
Rank
Newbie

Does anyone know of a way to emulate using a monochrome video card and a vga video card at the same time? DosBox does a great job of emulating each card, but not simultaneously, which should be an easy thing to do because they are at different addresses.. so just display B800-B7FF in one window and A000-AFFF in another window. would be nice if I could move one window to each of my dual monitors and make them both full screen at the same time. Multi-screen setups were extremely popular with programmers back in the day because you could have your source code on the monochrome screen, and execute the program on the color screen, this made debugging really great. I would really love to be able to do this with turbo pascal 7.0 for dos with an emulator. I still use it for various projects, and the single monitor screen switching is really difficult to use... so I still keep my old Pentium 266MHz running with a SVGA and a MDA card installed for this purpose, but emulators are so much nicer, and that old machine won't last forever. If anyone has a solution I would really like to hear about it.. I've been messing with every virtual machine program I can find and while some like virtualbox do support dual monitors, and more, they do not emulate the old monochrome monitor as one of them, and as far as I can tell, dosbox which does an excellent job of emulating the monochrome monitor, cannot do it in a separate window simultaneous to any other monitor.

Any idea's or help would be appreciated

Zaphod

Reply 1 of 56, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

For DOSBox:

our output library SDL only supports one windows
and games don't need it.

I don't know about other emulators though.

Water flows down the stream
How to ask questions the smart way!

Reply 2 of 56, by zaphod

User metadata
Rank Newbie
Rank
Newbie

Actually there were quite a few games back in the day that would utilize a monochrome / color dual monitor setup, I gues just only real computer nerds had our systems set up with dual monitors to know that anything was happening on the secondary monochrome screen. If you bought a PC specifically for playing games, then I guess you would not bother with 2 monitors... but you would have been missing a lot. There were quite a few games where the graphics could be on the color monitor and the text commands would be displayed on the monochrome monitor, and this would make everything a lot clearer than jamming everything on the color display.

This has been quite some time ago, so I find myself trying to think up specific examples, I remember starflight would work on a color monitor, but it looked like crap, so I always played it on the monochrome monitor.. in fact most games that were written before ega looked way better on a monochrome monitor because cga had too many limitations such as only being able to show 4 colors at a time in graphics mode. Applications like autocad would show all the text commands and responses on the monochrome display and the drawing on a vga display. I know an awful lot of text based adventure games would do this as well. they would detect that you had both monitors automatically and put the text on the monochrome and graphics on the color monitor, instead of jamming everything on the color monitor. Doing this gave you more area for the graphics as well as being able to read the text command and responses much easier. There were games that would put graphics on both a vga and monochrome monitor at the same time, such as putting the main screen on the vga monitor and the map on the monochrome monitor, I can't remember the names of all these games, but I did find one specific example of a game that you can still download that uses the monochrome monitor for statistics... MahJongg VGA here's the link to it. http://takegame.com/logical/htm/mgvga.htm

I have searched and searched and NO emulators I can find will emulate using a monochrome and vga dual monitor setup, even though for the real computer nerds, it was the ONLY way to operate your computer, even windows 95 could use the monochrome monitor as a second display.

I realize none of this is going to matter... I remember tons of games using color/mono dual monitors, but even if I remembered the names of them all and listed them all out, I don't think it would make a difference. I just wanted to point out that besides my debugging application, there WERE other applications, including games that used the mono/vga dual monitor setup, and it in fact, it was extremely popular. I am just very disappointed that with all the emulators and virtual machines out there, it seems everyone has simply forgot that monochrome - vga dual head systems even existed and were very useful. Even multi screen emulators like virtual box do not consider that one of the monitors should be able to be defined as a monochrome monitor, they are all vga. The whole point of emulation and visualization is to be able to run the old games and applications on modern computers, yet no one is emulating the way the old computers used to REALLY be. I suppose you didn't really NEED the monochrome monitor to play those games, but they were so much nicer with it!

Reply 5 of 56, by zaphod

User metadata
Rank Newbie
Rank
Newbie

🤣 No,actually it took 19 months to become annoyed again with my old monochrome monitor changing intensities on it's own, and then being disgusted that I could buy a CGA to VGA converter for $30, but an MDA to VGA converter is $190, and then further annoyed that no one can emulate stupid MDA monitor side by side with a VGA monitor... and even more annoyed that trying to debug a program with only one monitor is nearly impossible with all the screen flashing back and forth between the source and output screens, that I decided to search again for a virtual machine solution to this... and upon reading though the results of a search, lo and behold!!! I found a post on a forum that was EXACTLY what I was trying to do! I quickly clicked the link,.. intently read the entire post, certain that the solution to my dilemma was close indeed, and it was not until I read the response to the post detailing exactly what I was wanting to do, did it dawn on me that the disappointment of this being the only thing anyone had to say on the subject was something that I had experienced once before... and then to my astonishment, I realized that the reason for this, is that it was MY POST in the first place! So after another round of checking to see if perhaps virtualbox had fixed their multi monitor emulator to make one of them a monochrome, and finding the answer was NO (I don't know why I would think they would support an MDA monitor when they don't even support windows 98 correctly, making it a very incomplete emulator), did I start to think.. .hmmmm well, since I seem to be the only being in the entire Universe who wants to compile programs with a monochrome monitor and a vga monitor in a virtual machine, and being that games are SO much more important, that anytime I ever see a post about someone trying to get a CNC software or an old plotter interface, or an old eprom burner or whatever... to work with dosbox, and realize they ALWAYS get the 'games don't need it so who cares' response, did it occur to me, that hey....I played GAMES with my monochrome monitor, AND I did play dual monitor GAMES as well! So this realization started another search for what in the world those games were that I was playing back in the 80s... or was the 80's the commorode 64 with dual monitors, one 40 column and one 80 column that I can't emulate on my commodore 64 emulator running under my windows 98 emulator running on a linux real computer... still just one or the other, not both like the REAL hardware could easily do. dang it's hard to remember details of that long ago.. *sigh, yes i know I should re-write my program to work in windows, and use delphi, and then I could just have my source in one window and program executing in another window... but my programs do direct hardware control of timing critical applications, and so a multi-tasking operating system that also does no longer allow direct hardware access just isn't the best solution, and on top of that, a windows re-write would be a massive undertaking... it's simply easier to just keep my old stupid pentium running with a monochrome card in it... I'm not $190 worth of annoyed to get the mda/vga converter yet, but how sweet it would be to emulate the monochrome / vga dual monitor setup... unfortunately I just don't see that ever happening... for exactly the same reason i do not feel like porting my entire project to windows... It's just too much of a change in the fundamental way the thing works.. it was never designed to support more than one monitor, and trying to stick a second one in at this point for a few rarely used applications, even if they ARE games, would just not benefit enough people for the amount of work it would take to achieve such results... I do understand and even agree with the reasons why it won't and can't work... however it would have been super cool if from the beginning it was made to be a 100% compatible dos emulator instead of an emulator that was 'mostly compatible'.... just for the sake of preserving now long forgotten technology. dual svga screens were everywhere way before this was started, so it would not have been a huge leap to say... HEY, lets put vga on one of these, and MDA on the other one! then again they probably all had their source code occupying the other monitor and it would have been very hard to test unless they had some way to hook up a 3rd monitor.. but wait... they could put the sounce on one monitor and the output in two separate windows on the other monitor if they didn't want to get any more than 2 monitors. ok.. I'm getting silly now... been up all night trying to remember how something I originally wrote 20 years ago works so I can make it do something new and cool. 😎 😎

Reply 8 of 56, by Gamecollector

User metadata
Rank Oldbie
Rank
Oldbie
Qbix wrote:

our output library SDL only supports one windows

Well, the MDA is the text only, so - can the DosBox status window be used as the output?

Last edited by Gamecollector on 2012-05-05, 22:24. Edited 1 time in total.

Reply 9 of 56, by mr_bigmouth_502

User metadata
Rank Oldbie
Rank
Oldbie
Gamecollector wrote:

Well, the MDA is the text only, so - can the DosBox status window be used as the output?

That's actually a pretty good idea. 😁

Reply 10 of 56, by VileR

User metadata
Rank l33t
Rank
l33t
Gamecollector wrote:

Well, the MDA is the text only, so - can the DosBox status window be used as the output?

The status window only offers streaming console output... to actually emulate MDA you'd need a lot more control (a screen buffer, addressable character cells, attributes, etc).

Using pdcurses would probably be a better way to go about it, just like the DOSBox Debugger already does.

[ WEB ] - [ BLOG ] - [ TUBE ] - [ CODE ]

Reply 11 of 56, by idspispopd

User metadata
Rank Oldbie
Rank
Oldbie

It seems that SDL 1.3 supports multiple windows.
Unfortunately it also seems to be quite difficult to change DOSBox to support SDL 1.3, and there also also currently missing features in SDL 1.3. (I found several threads where people asked for SDL 1.3 support for various reasons.)

Reply 13 of 56, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

The attached patch for DOSBox SVN implements a secondary monochrome text display that is activated by passing a "-display2 <color>" command line switch. The <color> can be "white", "amber", or "green". It's probably too much of a Frankenstein creation for official DOSBox, but was still fun to make.

- Only Win32 is supported. Other platforms have significantly different console handling, and I have no way to test. The console window is repurposed for the display, with console messages directed to the stdout text file.

- The display is completely passive, and can't be made active. Writing to the segment B000h-B7FFh memory range is all that programs need to do.

- Not enabled for Hercules or Tandy machine types because it would conflict with the primary display.

- There is no CRTC emulation. It may prove to be needed for detection, but so far haven't seen a case where it is.

- Normal, intense, reverse, and invisible attributes are supported, but couldn't get blink or underline to work with Win32 PDCurses.

- Some MDA specs are here, a few bits of which were applied in making the patch.

The Tiles Remaining display in Mah Jongg VGA works fine. Note that some copies of early versions of the game have the writes to segment B000h hacked out (to prevent UMBs from being trashed), and later versions will only write to the secondary display when a "D" command line parameter is given. The game was released as freeware by its author, and can be downloaded here.

mjvga.png

I tried running Lotus 1-2-3 1A with its monochrome text driver, and found it amusing to see the old app's output on the secondary display.

lotuslv.png

The authentic MDA 9x14 font is used in the above screenshots, which seems wide-ish because there's no aspect correction, but you can use any console font you like.

Attachments

  • Filename
    dosbox_display2.zip
    File size
    1.19 MiB
    Downloads
    680 downloads
    File comment
    Win32 build of DOSBox SVN with patch
    File license
    Fair use/fair dealing exception
  • Filename
    display2.diff
    File size
    7.19 KiB
    Downloads
    595 downloads
    File comment
    patch
    File license
    Fair use/fair dealing exception

Reply 15 of 56, by VileR

User metadata
Rank l33t
Rank
l33t

Nice! Color me impressed, too. 😀

ripsaw8080 wrote:

The authentic MDA 9x14 font is used in the above screenshots, which seems wide-ish because there's no aspect correction, but you can use any console font you like.

In case that anyone does care about the aspect ratio, attached is a Windows console font that works nicely... this was the text-mode font in some old DOS laptops with 640x480 LCD panels, so it's a good fit for modern square-pixel displays.

Attachments

  • 8x19.png
    Filename
    8x19.png
    File size
    13.77 KiB
    Views
    15681 views
    File license
    Fair use/fair dealing exception
  • Filename
    VGA8X19.FON.zip
    File size
    2.33 KiB
    Downloads
    587 downloads
    File license
    Fair use/fair dealing exception

[ WEB ] - [ BLOG ] - [ TUBE ] - [ CODE ]

Reply 16 of 56, by Great Hierophant

User metadata
Rank l33t
Rank
l33t

Very nice indeed.

Why is it disabled with the Tandy adapter? Tandy should only use B700-BFFF.

I like the idea of having a 9x14 font display for the MDA/Hercules mode, as it is truer to the original display. Does the underlining function work with the primary display?

ripsaw8080 wrote:
The attached patch for DOSBox SVN implements a secondary monochrome text display that is activated by passing a "-display2 <colo […]
Show full quote

The attached patch for DOSBox SVN implements a secondary monochrome text display that is activated by passing a "-display2 <color>" command line switch. The <color> can be "white", "amber", or "green". It's probably too much of a Frankenstein creation for official DOSBox, but was still fun to make.

- Only Win32 is supported. Other platforms have significantly different console handling, and I have no way to test. The console window is repurposed for the display, with console messages directed to the stdout text file.

- The display is completely passive, and can't be made active. Writing to the segment B000h-B7FFh memory range is all that programs need to do.

- Not enabled for Hercules or Tandy machine types because it would conflict with the primary display.

- There is no CRTC emulation. It may prove to be needed for detection, but so far haven't seen a case where it is.

- Normal, intense, reverse, and invisible attributes are supported, but couldn't get blink or underline to work with Win32 PDCurses.

- Some MDA specs are here, a few bits of which were applied in making the patch.

The Tiles Remaining display in Mah Jongg VGA works fine. Note that some copies of early versions of the game have the writes to segment B000h hacked out (to prevent UMBs from being trashed), and later versions will only write to the secondary display when a "D" command line parameter is given. The game was released as freeware by its author, and can be downloaded here.

mjvga.png

I tried running Lotus 1-2-3 1A with its monochrome text driver, and found it amusing to see the old app's output on the secondary display.

lotuslv.png

The authentic MDA 9x14 font is used in the above screenshots, which seems wide-ish because there's no aspect correction, but you can use any console font you like.

http://nerdlypleasures.blogspot.com/ - Nerdly Pleasures - My Retro Gaming, Computing & Tech Blog

Reply 17 of 56, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Why is it disabled with the Tandy adapter? Tandy should only use B700-BFFF.

DOSBox maps a range for banking that seems to conflict:

    case MCH_TANDY:
/* Always map 0xa000 - 0xbfff, might overwrite 0xb800 */
vgapages.base=VGA_PAGE_A0;
vgapages.mask=0x1ffff;
MEM_SetPageHandler(VGA_PAGE_A0, 32, &vgaph.map );

However, in practice it might not cause a problem, at least under typical conditions, to enable the mono page handler.

A similar situation exists for SVGA, but the approach used in the patch will simply disable the mono output rather than create a conflict. From what I've read, real dualhead SVGA systems can experience strange behavior on the mono display, and some SVGA cards have special utilities to configure the hardware to avoid such by introducing limitations.

Does the underlining function work with the primary display?

It does, but DOSBox renders the text graphically, unlike the patch simulating a mono display using terminal-style output.

BTW, anyone know of games besides the mahjong game that use a secondary mono display? I'm skeptical about the thread starter's claims that there are "tons" of such games...

I'm working on a more advanced patch that will allow the secondary display to be used actively. So far I can switch between the primary and secondary screens with "mode mono" and "mode co80" commands, just like on real systems, and DOSBox's shell works on the mono display. I've also got dualhead debugging working with the CodeView debugger.

codeview.png

What's left:

- Some kind of cursor emulation, which necessarily involves at least rudimentary CRTC emulation. The PDCurses cursor is pitiful, so I'm experimenting with alternatives.

- Make the DOSBox video BIOS understand that the mono hardware should be used (when it exists) for mode 7, and not just go by the machine type. This could get complicated.

- The internal mouse driver gets confused about which display is active, and real MS Mouse drivers don't, so have to fix that. Actually, early versions of MS drivers do get confused, it's later ones that don't.

Reply 18 of 56, by Great Hierophant

User metadata
Rank l33t
Rank
l33t

I understand about the Tandy memory mapping, some Tandys do that. Tandy did this so the whole 640K would be free for programs rather than having 16-64K of that be taken up by the graphics hardware. The Tandy Video I chip would not touch the A000-B7FF area, and the Tandy Video II would use B000-B7FF for Hercules/MDA functionality and A000-AFFF for its 640x200x16 mode. Otherwise the 96K before B7FF could be used as a RAMdisk.

http://nerdlypleasures.blogspot.com/ - Nerdly Pleasures - My Retro Gaming, Computing & Tech Blog

Reply 19 of 56, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

Mechwarrior 2
Rise of the Triad

Softice

WINDOWS/GEM/LINUX
http://www.seasip.info/VintagePC/dualhead.html

There's also some games/apps listed in the huge wall of text up above.

I had a list somewhere...can't find it

How To Ask Questions The Smart Way
Make your games work offline