VOGONS

Common searches


First post, by Peter Swinkels

User metadata
Rank Oldbie
Rank
Oldbie

Hi,

I have an installer (Electronic Arts Install Utility - Version 1.40) that comes with Cartooners's installation files (MS-DOS) version. This installer uses a bundle of functions (Greenleaf Superfunctions v1.00) written by a certain Edward D. Luebke for Greenleaf Software Inc. in 1988. Some of this information is displayed by the installer when it is executed, the rest is visible in the executable using a hex-editor. The installer uses a script stored as compressed data in the file "Cartoon.iea" to determine what to do. The script is vaguely BASIC like and pretty rudimentary. After figuring out most of the keywords and syntax by examining the decompressed script and some trial and error and by looking at the executable's data segment I found out the installer initializes a few variables for the script to use. Pretty much all of it relates to disk information, DOS version, and hardware configuration. Through some experimentation by changing DOSBox's configuration and using another program (QuickBASIC) to modify the memory's contents and to compare data returned by interrupt calls I found out the following:

Preinitialized variable:

o	Floppies				-The number of floppy drives plus one with bitmask 0xC0 at address: 0x0040:0x0010
o JoySticks -The game port flag with bitmask 0x10 at address: 0x0040:0x0011
o MachineType -The machine identification byte at address 0xF000:0xFFFE
o VideoMode -The video mode byte at address 0x0040:0x0049

Also, I used HelpPC to look up technical information. Disassembling the executable (after unpacking it) and scanning for interrupt calls specifically to retrieve hardware information I only found int 0x11 and int 0x15.

Now as to my question:
There is a variable which is initialized by the installer called ColorCard (a 32-bit signed long integer (like all numeric variables used by the script)). It has something to do with the video hardware but it is hard to determine what exactly the values it returns mean. Here is a of values I got by changing the machinetypes in DOSBox.conf:

Machine type:		Return value: (decimal)
hercules 10
cga 7
tandy 6
pcjr 7
ega 4
vgaonly 3

svga_s3 and the rest are probably not important as I doubt the installer can detect anything newer than VGA (introduced in 1987). Anyway the value appears to be unrelated to anything returned by int 0x11 (BIOS Equipment Determination / BIOS Equipment Flags) or int 0x15. The reason I am guessing someone on this forum will know what this value represents is that it likely is derived from a BIOS related memory location like most of the other values I mentioned. Therefore someone familiar with low level x86 system programming will likely recognize it.

Information about Cartooners, its installer and code to decompress/compress the script (and what I know about its syntax) can be found at:
https://github.com/PeterSwinkels/Cartooners-File-Viewer

Oh, and why do I want to know this? I am just curious as to how the installer works.

Last edited by Peter Swinkels on 2023-01-16, 10:31. Edited 2 times in total.

Do not read if you don't like attention seeking self-advertisements!

Did you read it anyway? Well, you can find all sorts of stuff I made using various programming languages over here:
https://github.com/peterswinkels

Reply 1 of 6, by Peter Swinkels

User metadata
Rank Oldbie
Rank
Oldbie

Okay, after going a little overboard trying to disasemble the installer (which did yield a few interesting tid bits but was otherwise way too complex for my intent at my skill level) I realized I could try DOSBox-X for my purposes.

I was right, DOSBox-X supports the emulation of several more very specific video cards. Here is a list of known ColorCard values:

0 MDA ***
1 ?
2 MCGA ***
3 VGA
4 EGA
5 ?
6 Tandy
7 CGA
8 ?
9 ?
10 Hercules
11 Amstrad ***

*** Found thanks to DOSBox-X supporting more options than DOSBox.

I am now confident ColorCard is simply a value indicating the type (family/brand/whatever) of video card being detected based on not one but several values unlike the MachineType ,variable for example. (the disassembled code and several other sources support my conclusion that the value for ColorCard calculated based on several factors not easily discerned.)

Long story short, and to the point, I have another question now:
What other videocard types other than the ones I just listed might there have been around during the late 80's? That is, specifically those that would be present in an x86 based system with some kind of DOS installed.

Likely obscure ones that ultimately flopped. It looks like this mr. Luebke was very thourough in making sure his installer could detect just about any possible configuration that someone might have had back then.

Last edited by Peter Swinkels on 2023-01-16, 18:42. Edited 1 time in total.

Do not read if you don't like attention seeking self-advertisements!

Did you read it anyway? Well, you can find all sorts of stuff I made using various programming languages over here:
https://github.com/peterswinkels

Reply 2 of 6, by Peter Swinkels

User metadata
Rank Oldbie
Rank
Oldbie

After doing some searching online, it occurred to me some of the systems that may have had the video hardware I am looking for may have been Compaq (QVision?) or Olivetti systems for example.

Also, I tried getting 86Box, Bochs and PCEm to work. Unsuccessfully. If anyone knows of emulators that emulate Compaq/Olivetti or similar, feel free to reply. Thank you.

Do not read if you don't like attention seeking self-advertisements!

Did you read it anyway? Well, you can find all sorts of stuff I made using various programming languages over here:
https://github.com/peterswinkels

Reply 3 of 6, by Dominus

User metadata
Rank DOSBox Moderator
Rank
DOSBox Moderator

Maybe give ripsaw a call (pm), he is often up for such challenges 😀

Windows 3.1x guide for DOSBox
60 seconds guide to DOSBox
DOSBox SVN snapshot for macOS (10.4-11.x ppc/intel 32/64bit) notarized for gatekeeper

Reply 4 of 6, by Peter Swinkels

User metadata
Rank Oldbie
Rank
Oldbie

Hi Dominus, thank you for replying. I can't find a user specifically called ripsaw. Did you mean ripsaw8080?

Do not read if you don't like attention seeking self-advertisements!

Did you read it anyway? Well, you can find all sorts of stuff I made using various programming languages over here:
https://github.com/peterswinkels

Reply 5 of 6, by Dominus

User metadata
Rank DOSBox Moderator
Rank
DOSBox Moderator

Yes, him (I wasn‘t sure atm what his exact username is)

Windows 3.1x guide for DOSBox
60 seconds guide to DOSBox
DOSBox SVN snapshot for macOS (10.4-11.x ppc/intel 32/64bit) notarized for gatekeeper

Reply 6 of 6, by Peter Swinkels

User metadata
Rank Oldbie
Rank
Oldbie

I dropped him a pm. Thank you for the suggestion.

Do not read if you don't like attention seeking self-advertisements!

Did you read it anyway? Well, you can find all sorts of stuff I made using various programming languages over here:
https://github.com/peterswinkels