• Please review our updated Terms and Rules here

Area 5150 for IBM PC 4.77MHz

fs5500

Veteran Member
Joined
Nov 5, 2008
Messages
507
Area 5150 is intoduced on YouTube.


You can download it from the URL.

Also I attached unofficial disk image (3.5" 720KB media) made by me.
(It run on IBM PC 5150/5160 with 3.5" FDD)

This Area 5150 runs on IBM PC 4.77MHz, but it needs 640KB RAM.
So the following IBM PC 5150 can't be run because of RAM limitation (544KB)

*IBM PC 5150 Rev.0 (04/24/1981) BIOS
*IBM PC 5150 Rev.1 (10/19.1981) BIOS

To run Area 5150 on IBM PC 5150, BIOS should be upgraded to Rev.2 (10/27/1982) and RAM should be 640KB.

Monitor_1_20220814-103634-077077.png
Monitor_1_20220814-103705-623623.png
Monitor_1_20220814-103731-512512.png
Monitor_1_20220814-103745-231231.png
 

Attachments

  • Area 5150 (2022).zip
    927.5 KB · Views: 33
Last edited:
This demo is a masterpiece that tricks the CGA into doing stuff that everyone knows it can't do!

I was able to run it on my 5150 with dual 360K drives (and 640K memory of course) by spreading the files across two floppies, booting with DOS 3.30 and running APPEND B: before putting the demo floppies in A; and B: and starting the demo from the A: drive. To my surprise it worked!
 
This Area 5150 runs on IBM PC 4.77MHz, but it needs 640KB RAM.
Is the 640k requirement true for all parts of the demo? My 5150 only has 512k. The 8088 mph demo only needed full 640k for the raster bars part.
 
I think Area 5150 will partially run with 512kB but (from memory) it'll stop rather than skip parts when it runs out. I'm not sure how much of the demo you'll be able to see - it may depend on how much memory the version of DOS you use takes up.
 
Very nice, especially the credits at the end with the reflection. The scrolling space ship is pretty stand out too.

This surely needs a sound blaster?
 
So the video output is TTL RGB? What's the trick to get the colors?
 
Yes, even the end credits sound is PC speaker (using PWM with the timer in mode 0).
Yes, the video output is 4-bit TTL RGBI - there are only 16 colours in the whole demo. Any impression of more colours is done by dithering. The party capture at the beginning of the thread looks like it has other colours but that's due to video encoding problems.
 
Right but some of the screens look like 16 colors at 640x200. Is it 80x25 text mode with characters constantly redefined? Or something else.
 
I guess this is hand-coded to the peculiarities of a real IBM CGA card as it doesn't want to play on either a Tandy 1400 nor an Amstrad PPC640. I'd be really interested to know more about how the scrolling and reflections are achieved as it kind seems impossible at 4MHz!
 
CGA doesn't allow for redefining the character set - it's in ROM. But you can change the height of the characters. Much of the demo is done in text mode with the number of scanlines per row of text reduced from 8 to 2 or in some cases 1.
Some of the effects are more sensitive to the details of the CGA card than others. We'll be writing up blog posts with technical details in the coming months, but the reflections are done by writing to CRTC registers at very precise times to cause it to load a new start address on every scanline.
 
Yes, please watch the second video linked by reenigne in post #4. The one in the OP was taken from the video shown at the party - we had to make that one on location using mobile capture equipment, so it has some issues and isn't 100% representative.

The basic tricks for achieving 16 colors in apparent hi-res aren't new: as mentioned, it's done by using the full CGA ROM charset in 80-column text mode, and programming the MC6845 to output fewer scanlines per character row. Examples are covered in my old blog post at https://int10h.org/blog/2015/04/cga-in-1024-colors-new-mode-illustrated/#16_colors_rgbi, specifically in the "Macrocom Method" section (Macrocom were the guys who pioneered it almost 4 decades ago).
 
We do want to shrink that RAM footprint somewhat - there's quite a bit of flexibility as to when we can load and unload various bits of code, thanks to Trixter's loader system. Currently it requires about 560-570kB free, and that can be improved. 512kB systems are going to be difficult to support though, especially if we want to avoid introducing pauses and to keep things flowing and synchronized with the music. But we'll see what we can do!
 
Back
Top