The first IBM Personal Computer was released on August 12, 1984 with the introduction of the 5150. It ran on an Intel ((4.) ******************************************************************************************************************************** (MHz) with 13 KiB RAM and an MDA graphic card which could only display text. It was a smashing success with (**********************************************************************************************************************************, ********************************************************************************************************************************************** units ordered on the day of the announcement . For a while IBM remained the sole vendor of what was called “the PC”. When the popularity of IBM PCs crossed a threshold, the openness that had contributed to success became a liability. In March 1984 Compaq introduced an “IBM PC compatible” called the “Compaq Portable”. Soon after the PC market was flooded with PC clones. IBM attempted to fork into a new standard using a copyrighted MCA bus. When this effort failed, IBM effectively lost control and quickly gained an overpriced reputation.************************************************
The “overpriced” PS / 1. Notice the huge Disney Sound Source extender. (**********************************
Architecture)
IBM’s PCs were built around the concept of “big iron” with a monstrous CPU, a lot of RAM, and anything else a customer wanted to buy as an add-on card. In these add -on included the graphic card which could be anything from TGA, EGA, up to the latest VGA. The same went for the audio part with no less than four types of incompatible outputs (Beeper, AdLib, SoundBlaster, and Disney Sound Source). To release a software for an “IBM PC or Compatible”, developers could only display a list of “minimum requirements” and “recommended configuration” on the game box. The supported CPU, RAM, graphics adapter and audio cards were all listed there. A “typical” PC would have been something based on an Intel 640 CPU running at Mhz with 2MiB of RAM and an AdLib audio card. Like in the Atari ST, there was a DMA controller which could not be used to Blit since it was dedicated to floppy / HDD data transfer.****************************************************
The older generations TGA / EGA used an abysmal 2-bit channel (6 bits / color) color system.************ **************************************** (2-bit per pixel color space of TGA / EGA) ********************************
The latest VGA generation used a much more impressive 6-bit channel (18 bits / pixel) system.
****************************The – bit color space of VGAConfiguring these cards was a mess of 300 registers all interacting together. Thankfully the PC BIOS provided a routine to configure everything. At the time, depending on the graphic card, modes were available. Mode Type Resolution Colors RAM / VRAM Mapping VRAM (KiB) ————————————————– ———————————— 0h, 1h MDA (x) *********************************************************************************************************** (B) **************************************************************************************** 100 2h, 3h MDA (x) ********************************************************************************************************** (B) 4h, 5h CGA (x) ***************************************************************************************************************** (4 B) ****************************************************************************************** 6h CGA (x) ****************************************************************************************************************** (2 B) ********************************************************************************************************************************************************************************************************** 7h MDA (x) ********************************************************************************************************* (2 B) ************************************************************************************************************************************************** 18 8h TGA (x) ************************************************************************************************************** (B) ************************************************************************************************************************************************ (****************************** 9h TGA x (**************************************************************************************************************************************** (B) ************************************************************************************************************************************************** (************************************ Ah TGA (x) ******************************************************************************************************************** (B) ************************************************************************************************************************************************** 77 Bh — ——— – —– – Ch — ——— – —– -Dh EGA x (**************************************************************************************************************************************** (A) ************************************************************************************************************************************************** (******************************** Eh EGA (x) ******************************************************************************************************************** (A) ************************************************************************************************************************************************ 256 Fh EGA (x) ************************************************************************************************************* (2 A) ************************************************************************************************************************************************** (******************************************************************************************************************************************** (h EGA) x (*************************************************************************************************************************************** (A) ************************************************************************************************************************************************** 1000 (h VGA) *********************************************************************************************************** (x) ************************************************************************************************************ (A 2) ************************************************************************************************************************************************** (****************************************************************************************************************************************** (h VGA) x (*************************************************************************************************************************** (A) (********************************************************************************************************************************************************** (h VGA) ************************************************************************************************************ (x) ********************************************************************************************************************** (A) ************************************************************************************************************************************************** () Notice the three (x) ****************************************************************************************************************** modes with at least colors which match Another World VM requirements. As we will see this is not quite what ended up being used. Adapter******** Surprisingly, the TGA standard was not introduced by Tandy but by IBM. When the later released its 1984 “PCjr” aimed at the Apple II / Commodore the market they took the opportunity to improve on the aging CGA. Later that year, Tandy Corporation released the “Tandy “at a lower cost with easier expandability, and wider PC compatibility. Better sales from Tandy lead to the disappearance of the term “PCjr” and Tandy overtook the acronym. ******************************** Each version of the MDA / CGA / EGA / VGA was backward compatible but the TGA has three exclusive modes named 8h, 9h, and Ah. The most interesting one for Another World is of course the 9h (x) ****************************************************************************************************************** colors. This mode was only available with a special KiB VRAM (8x) ******************************************************************************************************************************************* (KiB) extension since it is a “high bandwidth modes” requiring four-way interleaved memory (****************************************** [1]**************************. The graphic layout of mode 9h is very much like the Atari ST we reviewed in the last article . The framebuffers are hosted in RAM since these machines had no VRAM. Pixel are laid out linearly as nibbles (half-byte) encoding 4-bit color indexes [2]. ************** Enhanced Graphics Adapter / Video Graphics Array**********************************************The EGA and VGA are very similar. They can both be setup to (x) **************************************************************************************************************** (in colors mode via mode 9h. There is VRAM here which is accessed directly by the CPU via a KiB memory mapped RAM window . The framebuffer is organized like the Amiga we studied in the first article except that each bitplane is in a dedicated memory bank. There are four banks and. In mode 9h a bit from each four bank is combined into a nibble which result in a 4-bits color index. VGA cards have a lot more VRAM ( KiB as 4x************************************************************************************************************** (KiB) than EGA cards (KiB as 4x) *************************************************************************************************************************************** (KiB) which is irrelevant for Another World. VGA has deeper colors (6-bit / channel vs 2-bit / channel) which is very relevant.
***************************** (EGA / VGA) KiB memory mapping into VRAM banks************************************************************ (Deceivingly powerfulIn terms of processing power a PC was far superior to the Amiga and Atari ST we visited last times. The problem for gaming was the video which was extremely slow. The memory mapped system was never designed for animation. It was designed with spreadsheet and word processing in mind. Pushing all these pixels over the bus took a long time. Moreover, working with bitplane was cumbersome, especially without a co-processor like the Amiga’s Blitter. Take the example of a simple routine to clear the screen in mode 9h.***************************** (char) ******************************** (far far *VGA=(byte (far) ******************************* ) (0xA) (L) ******************************;# ********************************define(SC_MAPMASK 0x) ************************************************************************************************************************************************# ********************************define(SC_INDEX 0x) ********************************************************************************************************************************************** (c4) # ********************************define(SC_DATA 0x) ********************************************************************************************************************************************** (c5) void (selectBank) (uint_8 bank************ (){ outp(****************** (SC_INDEX) , SC_MAPMASK); outp(****************** (SC_DATA) , (**********************, ******************************* (1) ********************************** * ;(******************************** void ClearScreen()******************************* ({*********************************) for******************((int) ******************************** (y=(****************************** (0)****************** (y) **************************************************************************************** ;yy
GIPHY App Key not set. Please check settings