VOGONS


First post, by i386

User metadata
Rank Newbie
Rank
Newbie

Hi all!

This topic about my small program, CT.EXE

It has been designed for visual testing CGA/MDA/HGC video cards, and VGA/EGA compatibility
with original CGA card. The idea for the program was born during conversations with Rio444.

Command line options:

CT 0 - mode 0 check, character generator symbols are shown first, then color bars.
This mode is 40x25 monochrome when connected to NTSC TV, and color on the
CGA/EGA monitor (switching screens for this and other tests is done by pressing
any key on the keyboard).

CT 1 - mode 1 check, character generator symbols are shown first, then color bars.
This mode is 40x25 color when connected to an NTSC TV, and color on the CGA/EGA
monitor.

CT 2 - mode 2 check, character generator symbols are shown first, then color bars.
This mode is 80x25 monochrome when connected to NTSC TV, and color on the CGA/EGA
monitor.

CT 3 - mode 3 check, character generator symbols are shown first, then color bars.
This mode is 80x25 color when connected to an NTSC TV, and color on the CGA/EGA
monitor (my CGA card in this mode also was black/white on the TV and showed stripes
instead colors)

CT 4 - check graphic color mode 4 (320x200), first showing colors with different palettes
and backgrounds when it programming via BIOS int10h, then same, but direct write to VRAM
and 6845 regs (here we have the greatest incompatibility with EGA cards). Text labels show
colors as they must be on original CGA.

CT 5 - checking graphics mode 5 (320x200, it is color on the monitor and B/W on TV),
first showing colors with different palettes (on real CGA card palettes do not switch in
this mode; EGA cards sometimes switch palettes) and backgrounds, when programming
via int10h, then the same using direct write. This mode most often does not work correctly
on EGA cards. Text labels also show colors as they must be on original CGA.

CT 6 - checking graphics mode 6 (640x200), it is B/W. First test via int10h, then direct write.
Screens with foreground green/green HI also were added to the screens sequence.
Warning - a lot of of EGA cards have a bug in the its BIOS, and when we change foreground
color in mode6, EGA BIOS actually changes the background, which physically impossible
on the original CGA card at all! This that rare case when direct control can be more reliable than int10h!

CT L - check non-standard CGA color mode 160x100. From EGA cards, that I own, mode worked
on CHIPS 82C435 card

CT C - composite NTSC test. Designed to test the "artifact" mode colors on NTSC TV.
You can read about "artifact" mode colors here:
https://en.wikipedia.org/wiki/Color_Graphics_ … artifact_colors

This test has simple benchmark, it measures the time it takes to fill the screen via BIOS
int10h in mode 4. The first 4 tests are mode 4, the last 2 are mode 6. Switching to mode 6
is carried out using the direct I/O method, here possible incompatible with some EGA/VGA
cards. The program also disables color suppression on the composite output in mode 6.

CT 7 - MDA/Hercules text mode test

CT H - Hercules graphics mode test, viewing BMP file 800600BW.BMP. Image can be move
with the arrow keys, PgUp/Down and move up and down until Home/End stops. Can view
another file (CT H filename). The program is not a full-fledged viewer. Only BMP files with
resolution 800x600, B/W, 1bit per pixel and line layout from bottom to top are supported.

CT T - checks for the presence of video cards in the system.
Attention - the presence of a CGA does not necessarily mean a CGA card, it can also mean
detecting the 6845 HW model in EGA, in my opinion this may be useful. So I write CGA 6845......OK

Switching between video adapters
CT SM - switch to MONO
CT SC(0-3) - switch to CGA, mode 0-3
CT SE(0-3) - switch to EGA, mode 0-3 (in many cases you can switch to EGA
as on CGA)

Attention!
1. Along with the switching, I also gave the opportunity to switch the mode within 0-3.
And an active adapter if it is CGA shows as 40x25 or 80x25. But this is optional coincides
with the video mode, namely reflects the equipment flags that Most programs do not
change when changing mode (when switching through my
program I change the flags).

2. A situation may occur with the supposed absence of an active adapter. For example, If EGA
was configured as MONO and switch to secondary CGA card, that's ok. But if you will try switch
to EGA again, it will not happen and the active adapter will show as NONE. To switch in this case,
you need to run command CT SH, for switch to monochrome (that emulated by EGA).

Comment:
The program was intended to be experimental, so the presence of a CGA card when checking
CGA modes is not checked, because to check compatibility you can try to perform CGA tests
on both EGA and partially MDA (text modes). Therefore please don't experiment with the original
IBM MDA monitor and similar ones that do not have protection! Due to the use of int10h, the card
being tested, must be configured as primary adapter. This does not apply to the 160x100 test, it is
completely direct and even possible with primary MDA/HGC to do output the image to CGA card.

The MDA test is similar to the CGA test in this regard. But the HGC test checks for the presence
hercules, because its tests are not compatible with anything other than hercules, and the output
always goes on HGC card.

On later boards with ISA, such as Slot1 with AWARD4.5, CGA/HGC support is implemented
similar in principle - we collected you from old sources, use it anyway no one will 😀 So for example,
the function of printing a character without attributes sometimes spontaneously starts interpreting
the value in BL as an attribute (in my case it prints blue text).

At first I thought it was a bug in the my program, but then I pay my attention that the BIOS of the
built-in SCSI controller (ASUS P2L97-DS) suddenly sometimes starts printing text in blue. And with
HGC - sometimes it gives an underlined line. There are other bugs with colors in modes 4 and 5.
Hence, "reference" behavior of CGA/HGC should be checked on XT/286 and like.

I express my gratitude to Rio444 for help, advice with the program and testing.

The program is written entirely in MASM 5.1 assembler. The source also attached. The BMP and IMG files
must be in the same directory as the program.

Attachments

  • Filename
    ct755r.zip
    File size
    114.15 KiB
    Downloads
    87 downloads
    File license
    Public domain

Reply 1 of 18, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie

CGA_COMP is pretty comprehensive about CGA compatibility testing, no need for another such program.

I could use, however, something as comprehensive for HGC compatibility testing.
The necessary features would be:
- video memory integrity test
- text mode test, including all the attributes (normal, bright, reverse, underline, blinking...)
- 720x348 graphics test
- 720x360 graphics test
- 640x200 graphics test (as used for CGA emulation)
- 640x300 graphics test (as used for CGA emulation)
- 640x400 graphics test
- for every graphics mode, test both video pages - very important, as some VGA cards in Hercules emulation mode fail to support the second page, and some cards allow to disable the second page to allow for co-existence with a color card

Żywotwór planetarny, jego gnijące błoto, jest świtem egzystencji, fazą wstępną, i wyłoni się z krwawych ciastomózgowych miedź miłująca...

Reply 2 of 18, by i386

User metadata
Rank Newbie
Rank
Newbie
Grzyb wrote on 2023-09-13, 10:23:
CGA_COMP is pretty comprehensive about CGA compatibility testing, no need for another such program. […]
Show full quote

CGA_COMP is pretty comprehensive about CGA compatibility testing, no need for another such program.

I could use, however, something as comprehensive for HGC compatibility testing.
The necessary features would be:
- video memory integrity test
- text mode test, including all the attributes (normal, bright, reverse, underline, blinking...)
- 720x348 graphics test
- 720x360 graphics test
- 640x200 graphics test (as used for CGA emulation)
- 640x300 graphics test (as used for CGA emulation)
- 640x400 graphics test
- for every graphics mode, test both video pages - very important, as some VGA cards in Hercules emulation mode fail to support the second page, and some cards allow to disable the second page to allow for co-existence with a color card

Anyhow, it is additional program for CGA test.

- text mode test, including all the attributes (normal, bright, reverse, underline, blinking...)

- already has been done.

- 720x348 graphics test

- done with BMP B/W 800x600 image.

- 720x360 graphics test

- currently no implementation.

- 640x200 graphics test (as used for CGA emulation)

- done with simple stripes,
implementation as with BIOS int10h, as with direct write.

- 640x300 graphics test (as used for CGA emulation)
- 640x400 graphics test

- I do not understand, these modes is not CGA compatible...

- for every graphics mode, test both video pages - very important, as some VGA cards in Hercules emulation mode fail to support the second page, and some cards allow to disable the second page to allow for co-existence with a color card

Very good idea! IIRC, second page disabled after power-on in HGC cards, for preventing influence with second CGA card.

Reply 3 of 18, by Jo22

User metadata
Rank l33t++
Rank
l33t++

I don't mean to "purr oil in the fire", but.. Back in the day, XT class PCs with on-board graphics not too seldomly had a COLOR/MONO switch on the back (next to DE9 and RCA jack).
That way, they could either act as CGA compatible (home users who play games) and Hercules "MGA" compatible (professional users).
Same goes for many Hercules clone cards. They could be set to either COLOR/MONO via jumper.
So from my point of view, it could make sense to have a combined HGC/CGA test program.
Like a "CheckIt" utility, but for graphics cards. Anyway, it's just an opinion, no offense.

Edit: Found an example picture on the inter webs. ^^

Attachments

  • combo.jpg
    Filename
    combo.jpg
    File size
    301.56 KiB
    Views
    1680 views
    File license
    Fair use/fair dealing exception
Last edited by Jo22 on 2023-09-14, 07:23. Edited 1 time in total.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 4 of 18, by i386

User metadata
Rank Newbie
Rank
Newbie
Jo22 wrote on 2023-09-14, 06:50:
I don't mean to "purr oil in the fire", but.. Back in the day, XT class PCs with on-board graphics not too seldomly had a COLOR […]
Show full quote

I don't mean to "purr oil in the fire", but.. Back in the day, XT class PCs with on-board graphics not too seldomly had a COLOR/MONO switch on the back (next to DE9 and RCA jack).
That way, they could either act as CGA compatible (home users who play games) and Hercules "MGA" compatible (professional users).
Same goes for many Hercules clone cards. They could be set to either COLOR/MONO via jumper.
So from my point of view, it could make sense to have a combined HGC/CGA test program.
Like a "CheckIt" utility, but for graphics cards. Anyway, it's just an opinion, no offense.

Yes, you are right - I have combo CGA/HGC card and also native CGA card with "snow".
I wrote this program as combined CGA/MDA/HGC test (in first releases only CGA). I made
all compilations and testing on may 286 and XT boards

Edit: Found an example picture on the inter webs. ^^

Thanks, very similar to my own combo card, SARC chipset!

Reply 5 of 18, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie
i386 wrote on 2023-09-14, 06:40:

- 640x300 graphics test (as used for CGA emulation)
- 640x400 graphics test

- I do not understand, these modes is not CGA compatible...

640x300 is commonly used by CGA emulation software running on Hercules.
Basically, there are three approaches for CGA emulation on Hercules:

  • use 640x200 mode - same video memory layout as in CGA, but uses only a small part of the screen area
  • use 640x300 mode - uses most of the screen area, but every third scanline is left empty
  • use 640x300 mode, and copy a part of the video memory to fill the empty scanlines - uses most of the screen area, no empty scanlines, but the copy operation may slow things down

I think that some CGA emulators additionally switch the Hercules card to 60 Hz refresh rate, to provide better CGA compatibility - but it may be dangerous for the monitor (especially the IBM 5151 is known to be easily damaged by incorrect input signal), and I don't recommend including support for such modes.

640x400 is a completely different thing, it's an interlaced mode, very rarely used - but there was at least one game using it:
Re: Best CGA & Hercules games
so, a good HGC compatibility tester should cover this mode as well.

- for every graphics mode, test both video pages - very important, as some VGA cards in Hercules emulation mode fail to support the second page, and some cards allow to disable the second page to allow for co-existence with a color card

Very good idea! IIRC, second page disabled after power-on in HGC cards, for preventing influence with second CGA card.

Yes, it's disabled on power-on, but can be enabled by setting bit 1 at 3BFh, and there's plenty of Hercules software that enables the second page - basically, it's out of user's control.

Certain Hercules clones (eg. DFI MG-150), however, provide a jumper to permanently disable the second page - no way to enable it in software, no way to conflict with a color card.

Last edited by Grzyb on 2023-09-15, 07:57. Edited 1 time in total.

Żywotwór planetarny, jego gnijące błoto, jest świtem egzystencji, fazą wstępną, i wyłoni się z krwawych ciastomózgowych miedź miłująca...

Reply 6 of 18, by mkarcher

User metadata
Rank l33t
Rank
l33t
Grzyb wrote on 2023-09-14, 09:05:
I think that some CGA emulators additionally switch the Hercules card to 60 Hz refresh rate, to provide better CGA compatibility […]
Show full quote
  • use 640x200 mode - same video memory layout as in CGA, but uses only a small part of the screen area
  • use 640x300 mode - uses most of the screen area, but every third scanline is left empty
  • use 640x300 mode, and copy a part of the video memory to fill the empty scanlines - uses most of the screen area, no empty scanlines, but the copy operation may slow things down

I think that some CGA emulators additionally switch the Hercules card to 60 Hz refresh rate, to provide better CGA compatibility - but it may be dangerous for the monitor (especially the IBM 5151 is known to be easily damaged by incorrect input signal), and I don't recommend including support for such modes.

The part of the 5151 monitor that can be damaged by unexpected synchronization signals is the horizontal deflection. As long as you keep close to the intended ~18kHz, you won't kill that monitor. There is an issue with using a 640x200 mode, though: To get the memory layout CGA uses, you need to set the "character height" to two, because the external logic on the CGA and HGC card interpret the "character scan line number" output of the 6845 chip as the bank number to currently display. Default HGC graphics mode uses 4 banks, and thus a character height of 4. Default CGA graphics mode uses 2 banks, and thus a character height of 2. The 6845 chip is counting the vertical position in units of character rows. The maximum picture height supported by the 6845 chip is 128 character rows. There can be up to 15 extra single scan lines to support a timing in which the total number of scan lines is not an integer multiple of the character height. At a character height of 2, the maximum number of scan lines in a single frame is 256 (128 character rows of two scanlines each) + 15 (additional scan lines added at the end of the frame) = 271 scanlines. CGA is quite close to that limit, by running 262 scan lines at 15.7kHz, resulting in 60Hz. As I just detailed, the maximum number of scan lines for a complete frame is 271, and the MDA monitor requires a sync rate of 18.4kHz. At 271 scan lines, this is 67.8 Hz. You can't get any lower refresh rate than that if you configure the chip for CGA-compatible memory layout.

So this is not just the 60 Hz "for better CGA compatiblity", but even higher. Trying to get down to 60 Hz would require to lower the horizontal frequency down to the CGA scan rate (or just slightly higher), which is definitely not acceptable for the IBM5151.

Of course you can do demo-level stuff with real-time manipulation of the 6845 parameters, the authors of Area 5150 and 8088 MPH can write series of blog posts about that, but I am curious if there is any way of getting a static 6845 configuration that outputs 640x200 to an MDA monitor at a lower refresh rate than 67Hz.

Reply 7 of 18, by Jo22

User metadata
Rank l33t++
Rank
l33t++

The IBM 5151 was indeed a very poor IBM product, outperformed by numerous no-name clones from the east/far east.
It had bad aspect ratio and no analog filters that did prevent out-of-spec usage.
It's clear that IBM had no higher intentions with that monitor, it simply was a text screen.
On the original IBM MDA card, there was little to tweak, after all.

PS: There's a Freeware named "HERCBIOS". It's meant as a video BIOS for MGA cards (as DOS TSR, similar to MSHERC).
It even translates CGA screen modes (GW-BASIC etc) to Hercules, if I remember correctly.
A test program, "TESTPIC", is included.

Edit: When I mentioned the 5151, I meant the deficits of the electronics, not the chassis or the CRT tube.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 8 of 18, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie
Jo22 wrote on 2023-09-14, 19:16:

It had bad aspect ratio

Aspect ratio isn't about monitor, it's about a particular video mode.

The IBM 5151 has fixed vertical resolution of 350, but no fixed horizontal resolution.
You can make a card with 467 x 350 mode, connect it to the 5151, and - voila, perfectly square pixels!

Żywotwór planetarny, jego gnijące błoto, jest świtem egzystencji, fazą wstępną, i wyłoni się z krwawych ciastomózgowych miedź miłująca...

Reply 9 of 18, by Jo22

User metadata
Rank l33t++
Rank
l33t++
Grzyb wrote on 2023-09-15, 05:45:
Jo22 wrote on 2023-09-14, 19:16:

It had bad aspect ratio

Aspect ratio isn't about monitor, it's about a particular video mode.

Um, do I really look like that of a newbie to you? 😅
What I meant to express is that the 5151 can't be adjusted easily, unlike compatible monitors.
There was seemingly no need to on a text monitor (if used with IBM©®™ hardware).
But in graphics mode, there is. Using a GUI like GEM or Windows really screamed for manual adjustments (h/v knobs).
Otherwise the GUI elements looked annoyingly compressed/distorted in Hercules graphics mode.

Anyway, this quote from the internet has better wording, maybe.

"That said, the HGC was non-IBM, and if you bought a non-IBM graphics card,
you might have purchased a non-IBM display as well,
and I think most of the clone manufacturers soon established the 4:3 aspect as a bit of a standard,
which nearly everybody stuck to for quite some time.
I think it's reasonable to say that the canonical aspect ratio for the HGC was 4:3,
even though that's different from the MDA's 3:2."

Source: link (in the comments)

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 10 of 18, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie

Really? Is the 5151 intended to be used as 3/2 rather than 4/3 ?
Actual ratio is subject to adjustments, anyway...

And with a 720x350 card, it doesn't make sense to adjust it for square pixels, must live with certain GUI elements looking weird.

Żywotwór planetarny, jego gnijące błoto, jest świtem egzystencji, fazą wstępną, i wyłoni się z krwawych ciastomózgowych miedź miłująca...

Reply 11 of 18, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie
mkarcher wrote on 2023-09-14, 18:44:

The part of the 5151 monitor that can be damaged by unexpected synchronization signals is the horizontal deflection. As long as you keep close to the intended ~18kHz, you won't kill that monitor. There is an issue with using a 640x200 mode, though: To get the memory layout CGA uses, you need to set the "character height" to two, because the external logic on the CGA and HGC card interpret the "character scan line number" output of the 6845 chip as the bank number to currently display. Default HGC graphics mode uses 4 banks, and thus a character height of 4. Default CGA graphics mode uses 2 banks, and thus a character height of 2. The 6845 chip is counting the vertical position in units of character rows. The maximum picture height supported by the 6845 chip is 128 character rows. There can be up to 15 extra single scan lines to support a timing in which the total number of scan lines is not an integer multiple of the character height. At a character height of 2, the maximum number of scan lines in a single frame is 256 (128 character rows of two scanlines each) + 15 (additional scan lines added at the end of the frame) = 271 scanlines. CGA is quite close to that limit, by running 262 scan lines at 15.7kHz, resulting in 60Hz. As I just detailed, the maximum number of scan lines for a complete frame is 271, and the MDA monitor requires a sync rate of 18.4kHz. At 271 scan lines, this is 67.8 Hz. You can't get any lower refresh rate than that if you configure the chip for CGA-compatible memory layout.

So this is not just the 60 Hz "for better CGA compatiblity", but even higher. Trying to get down to 60 Hz would require to lower the horizontal frequency down to the CGA scan rate (or just slightly higher), which is definitely not acceptable for the IBM5151.

Of course you can do demo-level stuff with real-time manipulation of the 6845 parameters, the authors of Area 5150 and 8088 MPH can write series of blog posts about that, but I am curious if there is any way of getting a static 6845 configuration that outputs 640x200 to an MDA monitor at a lower refresh rate than 67Hz.

Thanks a lot!
So, the emulation modes woud be:

  • 640 x 200, 2 banks, 67.8 Hz
  • 640 x 300, 3 banks, 50 Hz
  • as above, plus copy bank 2 to bank 3

I think there's also yet another approach, but not used by stand-alone emulators, rather by games with "native" Hercules support, see eg. Prince of Persia...

prince_000.png
Filename
prince_000.png
File size
23.6 KiB
Views
1556 views
File license
Public domain

The idea is: don't bother creating graphics data especially for Hercules, instead use the CGA 320 x 200 x 2bpp data as 640 x 200 x 1bpp.
But it seems to run at normal 50 Hz, so I guess it's all like the normal 720 x 348 mode, with 4 banks, only the "01 Horizontal displayed" and "06 Vertical displayed" registers are set for 640 x 200.
In this case, graphics routines must be different from CGA, to match the 4-bank memory layout.

Żywotwór planetarny, jego gnijące błoto, jest świtem egzystencji, fazą wstępną, i wyłoni się z krwawych ciastomózgowych miedź miłująca...

Reply 12 of 18, by i386

User metadata
Rank Newbie
Rank
Newbie

Grzyb, mkarcher, Jo22 - many thanks for your explanations!
First, I try out to do second HGC page support, as time and my health permits.
About non-standart HGC modes - needs thinking.

Unfortunately, currently I even have no original MDA/HGC monitor, I just temporary
changed original 16.000 MHz oscillator on my HGC card to 18.972MHz, for get almost EGA
frequences (I controlled real frequences with my oscilloscope).

And I also have made passive adapter for connect my EGA monitor:
HGC intensive ->g
HGC video -> G
Sync -> as is
R,r,B,b I just connected to GND on monitor side.

Reply 13 of 18, by mkarcher

User metadata
Rank l33t
Rank
l33t
Grzyb wrote on 2023-09-15, 07:00:

The idea is: don't bother creating graphics data especially for Hercules, instead use the CGA 320 x 200 x 2bpp data as 640 x 200 x 1bpp.

This is a completely correct observation. While you present this statement in the context of games with "pseudo-native" HGC support, that the key idea of treating 320 pixels at 2bpp as 640 pixels is also why CGA emulators work. There also are a lot of games that include a built-in CGA emulator, i.e. setting up the well-known 640x300 mode with every 3rd line blank, and then just run the native CGA code.The 640x300 mode has a better aspect ration than the prince-of-persion screenshot that has the 200 lines compressed, on the other hand, the 200 line mode doesn't have the irritating black lines, which might distract from the surprisingly smooth animation displayed by Prince of Persia. There are rumors that Prince of Persia is the first game to use character animation created by motion capturing of actual human movement.

Reply 14 of 18, by i386

User metadata
Rank Newbie
Rank
Newbie

I've added second HGC page test. CMD line has been little changed. Now:
CT h0 [filename] page0 test
CT h1 [filename] page1 test
And yes, you can see influence with neighboring CGA card, when HGC page1 in use

Attachments

  • Filename
    CT770R.zip
    File size
    114.6 KiB
    Downloads
    45 downloads
    File license
    Public domain

Reply 15 of 18, by Jo22

User metadata
Rank l33t++
Rank
l33t++
mkarcher wrote on 2023-09-15, 17:08:
This is a completely correct observation. While you present this statement in the context of games with "pseudo-native" HGC supp […]
Show full quote
Grzyb wrote on 2023-09-15, 07:00:

The idea is: don't bother creating graphics data especially for Hercules, instead use the CGA 320 x 200 x 2bpp data as 640 x 200 x 1bpp.

This is a completely correct observation. While you present this statement in the context of games with "pseudo-native" HGC support,
that the key idea of treating 320 pixels at 2bpp as 640 pixels is also why CGA emulators work. There also are a lot of games that include a built-in CGA emulator,
i.e. setting up the well-known 640x300 mode with every 3rd line blank, and then just run the native CGA code.

The game Teenage Queen, a poker game, seems to use two sets of graphics only.

https://www.mobygames.com/game/6224/teenage-queen/specs/dos/

The EGA one at 320x200 16c and and MGA one at 640x200 mono (partially redrawn by hand).
The mono graphics are used for both CGA and Hercules (aka HGC aka MGA).
So the Hercules card is being asked to handle CGA graphics, as well.

The higher width is used for dithering effects, I think.
Anyway, the outcome is very crisp, but also very compressed and doesn't do Hercules justice, I think.

In short, it makes user wish to play on an 1970s portable TV via RF connection instead.
Which isn't impossible considering the mono ouput via RCA on many XT class PCs.
All it needs is an external RF modulator box which takes a composite signal and outputs it on VHF/UHF TV bands.

Personally, I think that the EGA graphics bitmaps use 320x200 mainly because of compatibility with ports to other platforms, like Atari ST and Amiga.
If it was using real (full) EGA in 640x350 16c, it would have made porting to Hercules (720x348) much more plausible, I think.
That way, the artwork would have looked much more enjoyable.

Unfortunately, for some reasons, the makers decided to use 320x200 here,
despite the fact that business users (the primary audience of the genre) had EGA monitors for their productivity software. 🤷‍♂️

320x200 resolutions generally need a TV or a blurry video monitor to look best, I think.
Which wasn't possible with an EGA card, sadly. Not even in 15 KHz modes.
- Gratefully, the advent of VGA (MCGA) fixed this,
which went away with pixel-perfect digital interfaces and their monitors. 😉
So dithering worked as intended and gave old EGA games a better look - postmortem, so to say.

Because, the problem is, via digital connection or pure monochrome output (CGA mono via RCA/Cinch),
every imperfection is visible. Dithering doesn't work. Well, at least not better than it does on black/white news papers.
A true monochrome monitor, a green/amber video monitor is as crisp as an RGBI monitor, sadly.

So paradoxically, a cheap colour video monitor fed with a b/w signal is a better solution.
Or any TV via RF modulator - I already tried this, btw.

All in all, that's why early 256c monitors (MCGA) by IBM had a plump CRT with a 0.4 dot pitch screen mask.
It helped to smooth out graphics with a low resolution, but high colour depth.

Anyway, these are just my thoughts, which came to mind. The game might be interesting for testing purposes.
It ran it on an XT with on-board graphics, to see how an '88 era game with dual monochrome support would look like.

PS: What also comes to mind - if the game was drawn with Atari ST monochrome graphics (640x400) in mind,
it could have looked nicely on both Atari ST and PC (720x348 Hercules and AT&T/Olivetti Enhanced CGA at 640x400).

Makes me wonder why this wasn't the case here. 640x400 could be easily down-converted to 640x200.
Due to the similarities between CGA/Olivetti, "cross-loading"+* would have been possible even, maybe.
So using 640x400 as a basis was an interesting possibility.

I assume the ERE developers didn't know about 640x400 mode. Or they didn't care.
In business, the 640x400 CGA mode was an acceptable alternative to Hercules at the time.
It was like the Plantronics of the business world.

Edited.

Edit: What I wrote above was just me thinking out loud. Hope you don't mind. 😅
Also, Hercules can display in 640x400, too. Albeit I never got this working with my TTL monitors.
On a VGA card in MGA emulation mode it worked, though. I had used that ancient C64 emulator..

@i386 You're welcome. Thank you for the new ZIP, too. 🙂👍

Edit: Typos fixed and formatting fixed (on PC).

*It's sometimes possible to use image data originating from one mode in another (a practice used in the GW-BASIC days).
Like for example, loading 320x200 4c picture data in 640x200 2c mode, which results in a dithering performed by the hardware.
More information: https://encyclopedia.pub/entry/35209

Edit: The XT on a chip, the Vandem VG-230, has an AT&T compatible CGA, as well.
So it really wasn't just an oddity.
The VG-330 model is an AT system, with VGA.

"Integrated CGA LCD controller and 640x400 AT&T standard controller.
Supports a wide variety of panel resolutions from below CGA to 400-line displays."

Source: http://www.amphus.com/chips/singlechip/230_01.asp

Attachments

  • tq_colortv.jpg
    Filename
    tq_colortv.jpg
    File size
    699.74 KiB
    Views
    1377 views
    File comment
    Game on Color TV (via CGA mono RCA)
    File license
    Fair use/fair dealing exception
  • tq_greenmon.jpg
    Filename
    tq_greenmon.jpg
    File size
    650.23 KiB
    Views
    1377 views
    File comment
    Game on green monitor (via CGA mono RCA)
    File license
    Fair use/fair dealing exception
  • tq_rf.jpg
    Filename
    tq_rf.jpg
    File size
    517.34 KiB
    Views
    1377 views
    File comment
    Game on old b/w TV, via RF modulator. Not perfectly stable here, but dithering works. ;)
    File license
    Fair use/fair dealing exception

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 16 of 18, by i386

User metadata
Rank Newbie
Rank
Newbie
Jo22 wrote on 2023-09-18, 19:11:

@i386 You're welcome. Thank you for the new ZIP, too. 🙂👍

Thanks you also! I known a lot of interesting things about old video-systems
during this topic!

Reply 17 of 18, by Jo22

User metadata
Rank l33t++
Rank
l33t++
i386 wrote on 2023-09-20, 07:32:

Thanks you also! I known a lot of interesting things about old video-systems
during this topic!

Hi, I'm also grateful for attending the discussion here.
Sorry, if wrote a bit too much, also.

PS: I vaguely remember that the paint program Dr. Halo used video memory dumps as a graphics format, too.
If you drew a picture on a Hercules system, for example, it had to be displayed on a Hercules system, too.

If you like, you can try to experiment with some CGA/HGC utilities, too.
User Tronix wrote a fine converter program, which user dr.zeissler had found. Reenigne's utility can be found there, too. 🙂👍
Here are my toys, too: 1,2,3

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 18 of 18, by i386

User metadata
Rank Newbie
Rank
Newbie
Jo22 wrote on 2023-10-08, 17:22:
Hi, I'm also grateful for attending the discussion here. Sorry, if wrote a bit too much, also. […]
Show full quote
i386 wrote on 2023-09-20, 07:32:

Thanks you also! I known a lot of interesting things about old video-systems
during this topic!

Hi, I'm also grateful for attending the discussion here.
Sorry, if wrote a bit too much, also.

PS: I vaguely remember that the paint program Dr. Halo used video memory dumps as a graphics format, too.
If you drew a picture on a Hercules system, for example, it had to be displayed on a Hercules system, too.

If you like, you can try to experiment with some CGA/HGC utilities, too.
User Tronix wrote a fine converter program, which user dr.zeissler had found. Reenigne's utility can be found there, too. 🙂👍
Here are my toys, too: 1,2,3

A lot thanks for info! I'll think about it. Currently I tidy up my HW and measurement tools,
because after experiments really chaos in my room:),