VOGONS


First post, by Jo22

User metadata
Rank l33t++
Rank
l33t++

Hi everyone,

Not sure if this the right spot to post, but there's something that makes me wonder since a while..

How does the splash screen of Windows 2.x work exactly ?
- From what I know, it uses CGA in 620x200, but also sets a blue background.

How is this possible, or rather : why was it made that way ?

On a real CGA card, in hi-res mode, only the foreground colour is selectable, not the background colour.
By contrast, on a EGA or VGA card in its native mode, this is possible, of course.

So if someone has a clue or knows the details (does it use PC BIOS, CRTC registers etc.), please tell. 😀

PS: Sorry, if this thread seems useless, but I did wonder for a while why it is the way it is.
Also : Windows 3.x and 9.x do emulate this aspect of a fake CGA card (background colour can be set) for their windowed DOS boxes.
Any clue why this feature was implemented ?

Attachments

  • splash2x.jpg
    Filename
    splash2x.jpg
    File size
    25.49 KiB
    Views
    982 views
    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 1 of 16, by root42

User metadata
Rank l33t
Rank
l33t

Are you sure this is on a CGA card and not EGA/VGA in 640x200 mode? And what's with the Windows 3.0 frame around that splash screen? Is that a screenshot?

YouTube and Bonus
80486DX@33 MHz, 16 MiB RAM, Tseng ET4000 1 MiB, SnarkBarker & GUSar Lite, PC MIDI Card+X2+SC55+MT32, OSSC

Reply 2 of 16, by Jo22

User metadata
Rank l33t++
Rank
l33t++
root42 wrote:

Are you sure this is on a CGA card and not EGA/VGA in 640x200 mode? And what's with the Windows 3.0 frame around that splash screen? Is that a screenshot?

Hi, yes, the "DOS box" of Windows 3.1x is running a copy of Windows 2.03 (configured for CGA).
I took a picture of one of my videos, since I couldn't find one on the web right now.
The whole clip is available here -> https://www.youtube.com/watch?v=DwkAVlUBu30
Edit: Windows 3.1x is not running on CGA, of course - its running in a higher reolution mode via its native driver (S3 Trio).

Anyway, I'm just curious about the technical aspect here.
This copy of Windows (with same settings) also runs on a PC/XT clone with on-board CGA.
However, since I used the monochrome BAS output, I'm not 100% sure if the background colour would be blue on real CGA, too.

"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 3 of 16, by root42

User metadata
Rank l33t
Rank
l33t

That's actually quite ingenious. Well, maybe disassembling win.com could help? I would figure that it has the graphics routines for the splash screen hardcoded in there? Or else we might need to disassemble whatever it loads after that. Maybe one of the emulator experts could have a look at their traces to see what CGA registers get programmed and that way we can find out how they did it.

YouTube and Bonus
80486DX@33 MHz, 16 MiB RAM, Tseng ET4000 1 MiB, SnarkBarker & GUSar Lite, PC MIDI Card+X2+SC55+MT32, OSSC

Reply 4 of 16, by dr.zeissler

User metadata
Rank l33t
Rank
l33t

What I found much more interesting is why win286 uses that damn memory management.
you can not use xms-ram provided by himem.sys. That memset does not work for me on
my A2286/8Mhz.

Retro-Gamer 😀 ...on different machines

Reply 5 of 16, by derSammler

User metadata
Rank l33t
Rank
l33t

Windows 2.x/286 supports EMS only. XMS became popular with the 386. That's more or less by design. EMS was hardware-based and worked in real-mode, so it was the way to go for anything from 8088 to 80286. While XMS was possible on a 286, too, it was slow as hell, because the CPU had to enter Protected Mode to access XMS and leaving that required a CPU reset.

Reply 6 of 16, by Jo22

User metadata
Rank l33t++
Rank
l33t++

From what I remember, /286 version merely uses the High Memory Area (HMA) that's often available on 286+ systems.
In 1987 or so, PC-DOS/MS-DOS didn't use these extra ~64KiB yet to load its kernal "high".
DOS 4 or 5 was about the first one to do so (except maybe DOS 3.x+QRAM).

The /386 version on the other hand was like a version of EMM386 with built-in Windows 2.x.
It could provide EMS to DOS applications and multi-task them, too, which seemingly was important in these days.

Windows /386 could run on XTs and ATs, too, however, if WIN86.COM was run.
However, it used a different kind of driver, I believe.

Device drivers (graphics, etc) created for Windows /386 didn't run on plain WWindows 2.03 last time I tried, however.
Anyway, maybe it also has to do with the differences in version (v2.03 vs 2.11).

Speaking of EMS, all versions of 2.x can detect and somehow use it apparently (see About dialog of MS-DOS Executive).
Not all Windows applications can use EMS, though, unless they support EMS themselves.
So EMS really was useful to DOS applications only.

This changed with Windows 3.0., which supports both Large-Frame EMS (256KiB) and Small-Frame EMS (64KiB) in Real-Mode (WIN /R).
Windows 3.0 in Real-Mode can provide EMS memory to all Windows applications as if it was conventional memory, icluding those from Windows 1.x or 2.x.

"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 7 of 16, by derSammler

User metadata
Rank l33t
Rank
l33t
Jo22 wrote:

Windows /386 could run on XTs and ATs, too, however, if WIN86.COM was run.

Are you sure about this? System requirements for 2.x/386 say that a 386 with 16 MHz is the minimum.

Reply 8 of 16, by mothergoose729

User metadata
Rank Oldbie
Rank
Oldbie

Windows 2.1 had two versions. The "286" version will run on a XT, the "386" version will not as it make use of some of the memory management features of the 386.

wikipedia wrote:

It introduced a protected mode kernel, above which the GUI and applications run as a virtual 8086 mode task. It allowed several MS-DOS programs to run in parallel in "virtual 8086" CPU mode, rather than always suspending background applications

Reply 10 of 16, by Jo22

User metadata
Rank l33t++
Rank
l33t++
derSammler wrote:
Jo22 wrote:

Windows /386 could run on XTs and ATs, too, however, if WIN86.COM was run.

Are you sure about this? System requirements for 2.x/386 say that a 386 with 16 MHz is the minimum.

Yes, I am. 😀 The /386 version has two executables. By default (WIN.COM), it starts the memory manager with Windows 2.x. This requires a 386 or higher CPU.
However, it is also possible to start plain Windows 2.x by executing WIN86.COM. That one requires an 8086 or higher CPU.

Edit: In simple words, there's: Windows 2.x (plain), Windows/286 2.x (adds HMA support), Windows/386 (adds LIMulator/DOS VMs)
Here's a quick video of Windows/386 v2.03 running on a PC/XT emulation of PCem: https://youtu.be/0lvQs1KM_cc

Edit: I'm sorry, I have to correct myself. There's WIN386.EXE and WIN86.COM (WIN.COM is part of plain Windows 2.x).
And yes, it seems Windows/386's setup program demands for a 386 processor.

Attachments

  • w386_setup_386reqd.jpg
    Filename
    w386_setup_386reqd.jpg
    File size
    6.31 KiB
    Views
    821 views
    File license
    Fair use/fair dealing exception
  • w386_exes.jpg
    Filename
    w386_exes.jpg
    File size
    46.39 KiB
    Views
    821 views
    File license
    Fair use/fair dealing exception
Last edited by Jo22 on 2019-07-26, 06:44. 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 11 of 16, by Stiletto

User metadata
Rank l33t++
Rank
l33t++
derSammler wrote:

Yes, we know. That's what we are talking about already.

I believe the topic is actually "Windows 2.x splash screen". Do you want us to split off the other stuff? 😉

"I see a little silhouette-o of a man, Scaramouche, Scaramouche, will you
do the Fandango!" - Queen

Stiletto

Reply 12 of 16, by root42

User metadata
Rank l33t
Rank
l33t
Jo22 wrote:

From what I remember, /286 version merely uses the High Memory Area (HMA) that's often available on 286+ systems.
In 1987 or so, PC-DOS/MS-DOS didn't use these extra ~64KiB yet to load its kernal "high".

Found the C64 user! 😁

YouTube and Bonus
80486DX@33 MHz, 16 MiB RAM, Tseng ET4000 1 MiB, SnarkBarker & GUSar Lite, PC MIDI Card+X2+SC55+MT32, OSSC

Reply 13 of 16, by Rawit

User metadata
Rank Oldbie
Rank
Oldbie

From Wikipedia:

"640×200 pixels, as with the 80×25 text mode. All pixels can be addressed independently. This mode is monochrome with a pixel aspect ratio of 1:2.4. By default the colors are black and bright white, but the foreground color can be changed to any other color of the CGA palette. This can be done at runtime without refreshing the screen. The background color cannot be changed from black on a true IBM CGA card. BIOS Mode 6 sets up the 640×200 graphics mode. This mode disables the composite color burst signal by default. The BIOS does not provide an option to turn the color burst on in 640×200 mode, and the user must write directly to the mode control register to enable it."

Seems like they are doing this. Would like to know if it's in color on a IBM CGA card though.

YouTube

Reply 14 of 16, by root42

User metadata
Rank l33t
Rank
l33t

I don't think that it's the colorburst. Windows 3.0 most certainly doesn't interpret the colorburst in its DOS window. Also you would see NTSC color artifacts then.

YouTube and Bonus
80486DX@33 MHz, 16 MiB RAM, Tseng ET4000 1 MiB, SnarkBarker & GUSar Lite, PC MIDI Card+X2+SC55+MT32, OSSC

Reply 16 of 16, by root42

User metadata
Rank l33t
Rank
l33t
Rawit wrote:

Is there a tool to dump display registers to see what it does?

That's why I said maybe one of the emulator experts can do that. PCemu or similar..

YouTube and Bonus
80486DX@33 MHz, 16 MiB RAM, Tseng ET4000 1 MiB, SnarkBarker & GUSar Lite, PC MIDI Card+X2+SC55+MT32, OSSC