• Please review our updated Terms and Rules here

How bad is the video performance on the Amstrad PC1512 and 1640?

kuro68k

Experienced Member
Joined
Jul 1, 2019
Messages
109
The Amstrad PC1512 is known to have very slow CGA graphics. The CGA chip is connected to a shared 8 bit bus which adds a lot of wait states when being accessed by the CPU. On the other hand it does support some special modes like 640x240 in 16 colours but for playing CGA games the bottleneck makes them run poorly compared to other machines.

The PC1640 seems to be similarly afflicted due to having the same basic design. Presumably the EGA graphics on it are hobbled compared to other EGA machines using a 16 bit ISA bus.

Does anyone know just how bad this actually is? It would be interesting to know how games running on a similar spec machine with faster CGA/EGA compare.

Certainly when I was a kid I remember it being extremely bad. In games like Golden Axe it took *minutes* to scroll the screen to the next area in some cases. Hard Drivin' was sub 1 FPS. Things like Paratrooper and Striker seemed okay though.
 
Is there any graphics benchmarks for XTs? I would be interested in such a comparison. But on the other side, such benchmark is also influenced by the range of possible CPUs, 8088, 8088, V20, V30, 4,77Mhz, 8Mhz, 10Mhz, ...
 
I may be missing the point of your question, but all CGA and EGA cards were 8-bit ISA, at least as far as I'm aware (even on machines with the 16-bit AT bus). It wasn't until VGA came along that 16-bit video access became common.

On my bog-standard XT clone, CGA Golden Axe was quite unplayable even with Turbo on, but then the programming in that game is known to be quite poorly optimized.
 
Certainly when I was a kid I remember it being extremely bad. In games like Golden Axe it took *minutes* to scroll the screen to the next area in some cases. Hard Drivin' was sub 1 FPS. Things like Paratrooper and Striker seemed okay though.

Golden Axe and Hard Driving are 1991 and 1989 vintage games, respectively, and while I haven't tried either of them on my Tandy 1000 to check my guess is that both of them are normally too slow to really be playable on XT-class computers. So I'm not sure that counts as evidence of the graphics in those machines being *unusually* slow.

That said, according to this manual you are right that the CGA graphics are on the "slow side" of an ASIC that separates the 16 bit @ 8mhz "native" 8086 bus from an 8 bit @4mhz "PC-XT compatible" bus that most of the peripherals are on. In theory at least that certainly would make the PC1512's graphics slower than they could be if they were connected at the higher bus speed/slash/had a 16 bit interface. The second part of that, IE, a 16 bit interface, is probably profoundly rare in "XT class" computers whether or not they have an 8086 instead of an 8088; practically all of them only have 8-bit XT compatible slots, and I suspect the vast majority of them with onboard video and an 8086 also connect the chip to the 8-bit side of any bus transceiver; a possible exception I can think of *might* be the AT&T 6300/Olivetti M24? (* see below)

The popular benchmark "Topbench" has a "VidMem" test, and looking at the results database does seem to back up that there is something "slow" about how the bus transceiver or video memory was implemented in those machines, but maybe not "unexpectedly bad". The timing results for the PC1512 in the database are:

VidMem: 2961 μsec

That's actually a little slower than an IBM 5160's score of:

VidMem: 2678 μsec

(Higher is slower.) And, maybe more importantly/directly comparable, it's considerably slower than the score of an original Compaq Deskpro:

VidMem: 1754 μsec

Which is another 8086-based machine that has its video card on the other side of a 16-to-8-bit bridge. The Compaq's score is right in line with 8088 machines that run at the same CPU clock, which implies that its bridge doesn't insert any unnecessary wait states. (And it also must run its expansion bus at its native 7.16mhz speed instead of halving it.) If we multiply the IBM XT's score by the difference between its 4.77mhz clock and the 4mhz clock the Amstrad manual says its bus runs at we get a number actually a little worse that than what the Amstrad actually scores but close enough to say that, yeah, its video runs about as fast as you'd expect it to.

Realistically I'd think in most games the significantly better CPU speed of the Amstrad would more than make up for the little ding in VRAM access time compared to an original IBM XT but, sure, it does look like it might be slower than you'd expect for a "Turbo" XT... but only because most Turbo XTs don't divide their bus clock the way it does. (That said, I think *really fast* Turbo XTs, IE, the ones that run at north of 10mhz might. If that's the case then you'd also probably see a video card plugged into them running a little slower than you might expect for the CPU clock rate.) Games that are fine on an original XT should be fine, but for that small category of things that want something a *little* faster without needing to jump up to a full AT-class machine might be a problem.

FWIW, the reason I think the Olivetti M24 may have a 16 bit interface to VRAM is its score in the same tests is:

VidMem: 1049 μsec

For a machine that otherwise runs at about the same speed as the Deskpro or Amstrad with its 8086 CPU.
 
Last edited:
Thanks Eudimorphodon, that's a great explanation and exactly what I was getting at. Since I don't have two machines to compare I was hoping someone had experience.

I expect it will be heavily game dependent.
 
I think the long and short of it is the ding in video performance resulting from how they designed the bus transceiver was "fine" for when it was introduced (1986), and realistically I can't imagine it making a noticeable difference in the real world. Just surfing through the Topbench results there are several tests of IBM 5150s fitted with EGA cards that have even worse "Vidmem" scores; this jives with some memories I had of *swearing* that an XT I stuck an EGA card in was just ever-so-slightly nearly-imperceptibly more sluggish than the same machine was with a CGA card in it (even when running the same software in the same video modes), but I think I would have been really hard-pressed to actually prove it was slower with any kind of benchmark.

Maybe if you had your Amstrad sitting right next to a machine like a Tandy 1000 SL or an AT&T 6300 (two 8086 machines with "SuperCGA" cards that ran at full clock speed) you'd have seen a real measurable difference, but I think for the most part your memories are of running software that was simply too slow for that class of machine period.
 
Last edited:
M24 has 16 bit data path between CPU (over proprietary 16 bit enhanced ISA bus) to video memory until graphics output. You can see that from page 5-06 ( sheet 138 ) of M24 Theory of Operations PDF manual. The text modes via the 6845 and the char-gen logic is 8 bit only like on other XT class machines.

m24video.jpg
 
It's hard to know what games were expected to be like on those systems. For example Monuments of Mars was 1991, but CGA only and slow on the Amstrad.

Sadly the Tandy 1000 is very hard to get in the UK where the Amstrad is common. I want a games machine of that era and it ticks all the boxes except the question mark over the graphics.
 
The text modes via the 6845 and the char-gen logic is 8 bit only like on other XT class machines.

Actually, looking at that diagram it looks like even in character mode it reads a full 16 bit word from VRAM per transaction and sends the top and bottom bytes to the character generator and attribute generation circuitry respectively? (Reading through chapter 5 of that manual it seems like all transactions in and out of VRAM on that machine are 16 bit. The 6845's I/O control registers are of course only 8-bit, but performance of those is never going to be an issue.)

A real IBM CGA card only has one 16kx8bit array of DRAM on it so by definition the video circuitry must have to do two reads per character cell to fully load the output circuitry to output a character in text mode. (And, of course, this means that any kind of "16 bit" CGA card that only had 16k of RAM would kind of be a non sequitur unless it used a different memory arrangement, like a couple 8k banks of SRAM instead.) Looking at the schematic for that it looks like it serially loads a set of LS374 latches with the required 16 bits worth of data for each character which are then sent through the character generator and color attribute circuitry simultaneously. Having 16 bit RAM actually simplifies this part of a CGA card significantly... or at the very least halves the clock rate at which you have to hit the VRAM.(*)

(* Trivia note: The original Tandy 1000s have buffered 16 bit-wide VRAM access for the CRT control circuitry even though the CPU is only 8 bit. They did this to reduce memory contention compared to the IBM PCjr, which only has interleaved memory, especially in the video modes that require 32k of memory.)
 
Last edited:
It's hard to know what games were expected to be like on those systems. For example Monuments of Mars was 1991, but CGA only and slow on the Amstrad.

My recollection was that Monuments of Mars was barely playable on most Turbo XTs; the same can be said for quite a few late CGA games, like the CGA version of Commander Keen. Honestly if you're looking to play early-90's games I think you'd be better off with a 286 or 386sx class computer.

Edit: For laughs I just tried Monuments of Mars on my Tandy 1000 HX equipped with a V20, which according to Topbench performs about 90% as fast as an Olivetti M24 overall, or a wee tiny bit faster than a Compaq Deskpro. (Slower CPU than either, faster video and main memory access than the latter.) I would charitably describe it "playable", at least the first few screens, but it definitely chugs. I'm curious how it would run on the Amstrad given the Amstrad actually has significantly faster CPU scores to balance out its slower video memory.
 
Last edited:
Actually, looking at that diagram it looks like even in character mode it reads a full 16 bit word from VRAM per transaction and sends the top and bottom bytes to the character generator and attribute generation circuitry respectively? (Reading through chapter 5 of that manual it seems like all transactions in and out of VRAM on that machine are 16 bit. The 6845's I/O control registers are of course only 8-bit, but performance of those is never going to be an issue.)

The CharGen path is only 8 Bit. There is a switch that the CharGen path can alternately access the lower and upper 8 bit of video memory.
 
My recollection was that Monuments of Mars was barely playable on most Turbo XTs; the same can be said for quite a few late CGA games, like the CGA version of Commander Keen. Honestly if you're looking to play early-90's games I think you'd be better off with a 286 or 386sx class computer.

Edit: For laughs I just tried Monuments of Mars on my Tandy 1000 HX equipped with a V20, which according to Topbench performs about 90% as fast as an Olivetti M24 overall, or a wee tiny bit faster than a Compaq Deskpro. (Slower CPU than either, faster video and main memory access than the latter.) I would charitably describe it "playable", at least the first few screens, but it definitely chugs. I'm curious how it would run on the Amstrad given the Amstrad actually has significantly faster CPU scores to balance out its slower video memory.

Well the story is I had an Amstrad PC1512 with 640k upgrade when I was a kid. I wanted an Amiga but got the Amstrad. And being a kid I didn't know any better, I just played games on it really slowly. So in that sense it would be "authentic" to my experience but as you suggest I have been thinking about a 286 or even 386 instead.

I'm not really interested in anything 3D and did eventually get an Amiga so stopped buying DOS games. And the Amstrad does have some advantages like the volume knob for the speaker and an Atari compatible joystick port that emulates key presses. Plus it comes with an authentic monitor and can run GEM.

But in hind sight a lot of those games could have run a lot better. I didn't understand recommended specs back then, if they even bothered to put more than "100% IBM PC compatible" on the box.
 
I didn't notice any difference on my PC1512 when playing games compared to other turbo-XT's or 8086 based systems. If there is a difference it's very minor
 
Back then I didn't know what an 8086 was but I knew my Amstrad had one! It was slow on that system but bot unplayable. Barely.
 
Back then I didn't know what an 8086 was but I knew my Amstrad had one! It was slow on that system but not unplayable. Barely.

I tried playing Monuments of Mars on a Commodore Colt, which was a 7.16mhz 8088 Turbo XT, back in the day and I'd say it *was* below the "unplayable" line. The Tandy 1000 HX I just tried it on recently was maybe just *barely* on the other side of that line even though it's running at the same clock speed, which I assume is only because the HX has an NEC V20 in it instead. (It's really hit-or-miss how much improvement you get from the V20, but maybe MofM is one of the cases where it really saves the day.)

Realistically, though, I'd probably lump it into the "286 or better" class of games. I know it's common to think of EGA graphics as being the defining feature that separates 286 and XT-class games, but CGA graphics cards were in fact pretty common on 286s. (As was running CGA games on Hercules cards via SimCGA.)
 
I tried playing Monuments of Mars on a Commodore Colt, which was a 7.16mhz 8088 Turbo XT, back in the day and I'd say it *was* below the "unplayable" line. The Tandy 1000 HX I just tried it on recently was maybe just *barely* on the other side of that line even though it's running at the same clock speed, which I assume is only because the HX has an NEC V20 in it instead. (It's really hit-or-miss how much improvement you get from the V20, but maybe MofM is one of the cases where it really saves the day.)

Realistically, though, I'd probably lump it into the "286 or better" class of games. I know it's common to think of EGA graphics as being the defining feature that separates 286 and XT-class games, but CGA graphics cards were in fact pretty common on 286s. (As was running CGA games on Hercules cards via SimCGA.)

You are correct, the game itself says so. Check the screenshot I posted earlier in this thread.
 
You are correct, the game itself says so. Check the screenshot I posted earlier in this thread.

Yeah, it bugs you with that prominently at startup. ;) I guess what I've always found a little interesting about it honestly is why it mentioned "8086" at all. Clones using it were never very common so staking that out as your minimum requirement is sort of unusual.
 
I had a very high tolerance for low frame rates back then. I played Hard Drivin at sub 1 FPS!
 
Back
Top