
The Polygons of Another World: IBM PC - ingve
http://fabiensanglard.net/another_world_polygons_PC_DOS/index.html
======
rasz
Corrections:

>pc_arch.svg

VGA was hanging off 16 bit ISA bus. CPU wasnt touching ISA, Ram wasnt touching
ISA. You had chipset with build-in memory controller, ISA arbitration and fast
Cache was the norm. Typical contemporary 386/486 motherboard diagram
[http://www.textfiles.com/bitsavers/pdf/samsung/pc/98134-925-...](http://www.textfiles.com/bitsavers/pdf/samsung/pc/98134-925-009_DeskMaster_486Q_SD925E_Service_Manual_1993.pdf)
page 1-1 system block diagram will explain a lot.

> clear the screen

this must be the worst clear screen routing of all time :o why bank switch at
all? setting mask to 0xff once will write to all of them at the same time

    
    
        outpw(0x3c4, 0xff02);
        memset(VGA,0, 8000);
    

done. Enough for 30fps clear speed using absolutely __the worst __8bit ISA VGA
card, something like Trident TVGA9000 or Realtek RTG3105.

>SOLVING COPY, 4x speed up

Transfer speed when writing to non crappy 16bit ISA VGA card is ~3MB/s.
Reading is always slower, nobody optimized graphic cards for reading,
sometimes even ending up under 1MB/s. I think I read Abrash or Carmack stating
that IRL on real hardware this ended up being a wash in terms of performance.

>SURPRISINGLY DIFFICULT AUDIO, On Amiga and ST it was a piece of cake

ST has no native PCM output. Atari uses "Yamaha" YM2149 aka re-licensed
AY-3-8910, audio chip from ZX Spectrums and Amstrad CPC. Its the same pain as
trying to play PCB on Adlib (volume register?), except even lower fidelity.

