News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu

What was wrong with the 464?

Started by steve, 20:50, 04 November 14

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

steve

 Quote
"I remember being fairly rude about a number of mistakes they'd made in the design. It could have been so much better with a couple of tiny changes that wouldn't have cost anything at all. Gah..."

Any idea what these mistakes might have been?

IanS

Who and where was the quote from?


MacDeath

#3
concerning the CPC, to me :

=should have had more than 64K to begin with... would need quite some extra chips but 80K or 96K (if not 128K) could have changed the whole speccy port things.
Speccy48 ported into CPC464 : can't get properly Amstrad Graphics (2x more heavy) and issue with proper AY sounds sometimes.
only 16k or 32k more could have been quite enough to get most of those ports done quite betterly.

=some say the AY soundchip could have been implemented a bit betterly.

=technology used may not enable it, but I would add 5 custom colours to the palette to have it properly 32 colours.
would add : Dark grey, Light Grey, dark Orange, Dark Lime and Dark SeaGreen (2 greys + darker versions of the 3 hybrid colours including green/yellow in them)


yeah yeah, better scrolling, hardsprites, Blitter, VGA graphics and soundblaster and overclocked 16mhz Z80 as well... ;D


Graphically, some sort of optional colour attribute yet still using the Amstrad video modes would have been killer...
Most other computer woudl not have more than 2 colours per attribute unless large pixels.
Mode1 with soem attributes so you could choose from 4 palettes (the 16 colours from the Mode0), or Mode2 with speccy like attributes (well, Mode2 sized characters of course)...
No real need to rasters then : just use the attributes. Mode1 would then be killer look.



anyway, mostly the ideal Amstrad 8bit would have been some mix between CPC and PCW indeed.

Carnivius

Nothing.  It was frickin' awesome and I will beat the crap out of anyone who says otherwise.  Especially MacDeath.    8)
Favorite CPC games: Count Duckula 3, Oh Mummy Returns, RoboCop Resurrection, Tankbusters Afterlife

ivarf



* The low quality built-in speaker.
* the memory layout of the screen - every 8-lines
* the hardwarescrolling could have been better
* hardwaresprites
* no fast charactermode
* no low-memory screen-modes
* not an option to buy it cheap without a monitor
* the external modulator was low quality
* quick and dirty spectrumports
* the high sharpedged keyboard


opqa

I was about to say the screen memory layout also, this could have been fixed just by rewiring the way the CRTC lines are connected to the Gate Array in a "sane" way, this would have been a tiny cost-less change.

About that, it's curious, because the way it is arranged could be useful for faster text priting if it were done in a line-per-line basis. But the firmware finally came with character-by-character printing routines, so the weird layout has no advantage. It seems like if they had planned to do it a certain way and later, when the hardware was already in production, they changed their mind.

robcfg

Quoteanyway, mostly the ideal Amstrad 8bit would have been some mix between CPC and PCW indeed.


You mean the PcW16?  ;D

Optimus

#8
True, we don't talk about "brand new graphics modes and SID sound and stuff", but little things in the design you wonder why they have done it like this. I have read that quote on the article and laughed about how the amstrad designers thought the guy tampered the hardware, but I was very curious to hear exactly his opinions on which were the mistakes. Did they make it like this because of costs or as he says they could be easily fixed?


The video memory map is obvious wtf. But it was similar in spectrum. Most 8bit machines didn't have a linear way.
But for me how the pixel bits are interleaved in mode 1 or 0 is puzzling. Ok, I know you can shift the bits to move pixel to near side in one byte, but why mode 1 has the 4 bits not in order?
And the palette values to color are so weird.
A lot of stuff on the CPC is weird.
Also, what I recently learned and was laughing out loud was, the CPC OUT (C),r is not canon for Z80. it should out register r to port in reg C. But no, it outs to port in reg B. Whaaaat? I mean, I knew this since I was using, but I thought it was a quirk of every Z80 chip itself, not the CPC bad wiring. Also, I think out (C),0 is problematic on CPC?


Such things I am curious to hear about (and I guess the original quote meaned), not if the CPC should have special hardware sprites, tile mode and such.

dcdrac

maybe turn the question around what was so great about the CPC?

or what was wrong with the C64 and Spectrum?

The BBC B was just all round good....

chinnyhill10

Quote from: MacDeath on 23:43, 04 November 14
concerning the CPC, to me :

=should have had more than 64K to begin with... would need quite some extra chips but 80K or 96K (if not 128K) could have changed the whole speccy port things.




It was designed in 1983. Memory wasn't cheap and at that time 64k was huge. Competing micros had far less.


People say it should have had X, Y or Z but these things are set in stone long before machines hit the market.


You only have to look at what happened with the Enterprise to see what problems a long feature list caused. That machine crashed and burned. Amstrad had enough problems with their own gate array!
--
ChinnyVision - Reviews Of Classic Games Using Original Hardware
chinnyhill10 - YouTube

chinnyhill10

Quote from: dcdrac on 13:36, 05 November 14

The BBC B was just all round good....


Awful graphics, a ludicrously high price, a speaker that played awful music with no volume control capped off with a total lack of support from the big publishers.
--
ChinnyVision - Reviews Of Classic Games Using Original Hardware
chinnyhill10 - YouTube

arnoldemu

#12
Quote from: Optimus on 13:27, 05 November 14
The video memory map is obvious wtf. But it was similar in spectrum. Most 8bit machines didn't have a linear way.
I can't remember why the Spectrum had that display, it may have been something to do with RAM refreshing. If they did it that way the ram was refreshed without needing external hardware and so they could cut costs.


On the BBC, the memory map is  a little different to CPCs. Same CRTC, different decoding of the addresses.

It is arranged as so:

byte 0, byte 8, byte 16...
byte 1, byte 9, byte 17...
byte 2, byte 10, byte 18...

to get this they re-arranged how RA/MA makes memory address from CRTC.



Quote from: Optimus on 13:27, 05 November 14
But for me how the pixel bits are interleaved in mode 1 or 0 is puzzling. Ok, I know you can shift the bits to move pixel to near side in one byte, but why mode 1 has the 4 bits not in order?
I believe for simplicity of hardware design.
BBC shares a similar design.

The data is loaded into a "shifter". It's a temporary register that holds the byte data while the video hardware uses it. The shift rate depends on the mode. But each time a shift happens it moves the bits 1 place to the left.

Bits 7,5,3,1 are always read out for simplicity and are used to form pen index.

The pen index is configured so bit 7 becomes bit 0 of pen index.
bit 3 becomes bit 1 of pen index.
now you can then choose how 5 and 1 are setup for mode 0.

If you put the same bits in the same places it's more simple for hardware design.

Bit 5 and 1 can be interchanged. Amstrad chose one arrangement, I think BBC chose the other.

Once the pen index is extracted, it is ANDed depending on the mode.
e.g. 0x01 for mode 2, 0x03 for mode 1 and 0x0f for mode 2.

So all modes are constructed from the same bits that are extracted and in the same position but different mask is used to get the pen.

But the main reason the bits are interleaved is so that the shifter can move the next pixel into position with 1 shift. Bits in 6,4,2,0 now move into 7,5,3,1 for the hardware.

for mode 2, it shifts every clock.
for mode 1, it shifts every 2 clocks
for mode 0, it shifts every 8 clocks.

So this in combination with the ANDing explains why the pixels are interleaved like this. The combination of shift and mask makes the pixels for all modes.


If mode 1 had 2 pixels side by side, e.g.
00 11 22 33

You either have to read the pixels differently depending on the mode (= more silicon and more cost) OR you have a setup where for 2 pixel clocks nothing happens, and on the next it is shifted twice! (This means a faster shifter or some delay???) Are there shifters that can do more than 1 time at a time?

Remember in 1983/1984 the hardware was slower and they needed to use very few parts to make it cheap enough.

It's worse for mode 0, you have nothing for 4 pixel clocks, then it's shifted 4 times!!!!

So either a shifter or there is a switch in the hardware where it changes how it decodes it. A switch in hardware means more gates, more silicon, more cost.

I think the existing way was simpler for them to design and cheaper although it seems strange for us.


Quote from: Optimus on 13:27, 05 November 14
And the palette values to color are so weird.
I haven't analysed it, but it may be that some bits define red, some bits define green and some define blue. It does seem weird yes.


Quote from: Optimus on 13:27, 05 November 14
A lot of stuff on the CPC is weird.
cpc is not alone, there are other systems that have weird stuff. The oric atmos has a crazy attribute based mode like teletext! It has codes that turn colours on/off etc.
The enterprise has a fun display list like system. With modes from CPC, c64 and speccy mixed into it.


Quote from: Optimus on 13:27, 05 November 14
Also, what I recently learned and was laughing out loud was, the CPC OUT (C),r is not canon for Z80. it should out register r to port in reg C. But no, it outs to port in reg B. Whaaaat? I mean, I knew this since I was using, but I thought it was a quirk of every Z80 chip itself, not the CPC bad wiring. Also, I think out (C),0 is problematic on CPC?
The OUT mneumonic is confusing.

But B is top 8 bits of address. r is the value to write and C is the lower 8-bits of the address. It's always this way. It really depends on how they connected up the I/O in their design.

Z80 is really meant to have 8 bit i/o addressing because some instructions use B as a counter and the hardware should decode the lower 8-bits so you can output multiple bytes to the same i/o address (OTIR, OTDR), or you can say "hell with that, I want 16-bit i/o address" and now you lost the ability to use those special I/O commands.

OUT (C),0 is only reliable on CMOS Z80's. On NMOS z80's it outputs a different value. It's a "undocumented" opcode because it can give different results depending on z80, but generally 0 for CMOS and ff for NMOS.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

gerald

Quote from: Optimus on 13:27, 05 November 14
Also, what I recently learned and was laughing out loud was, the CPC OUT (C),r is not canon for Z80. it should out register r to port in reg C. But no, it outs to port in reg B. Whaaaat? I mean, I knew this since I was using, but I thought it was a quirk of every Z80 chip itself, not the CPC bad wiring. Also, I think out (C),0 is problematic on CPC?
OUT (C), r output the content of C on the LSB of the address, the content of B on the MSB of the address, and r on the data bus. This is a Z80 behaviour not a CPC specific one.
Where Amstrad did something not in line with the Z80 'rules' is to use the MSB of the address (B register) where these are usually ignored in other design. This gives 65536 IO register instead of 256 at the expense of the OUT/INI with increment/decrement barely usable.

arnoldemu

Quote from: chinnyhill10 on 13:40, 05 November 14

Awful graphics, a ludicrously high price, a speaker that played awful music with no volume control capped off with a total lack of support from the big publishers.
We had a BBC. My experience:

The BBC had a good solid kid proof keyboard with a good typing feel, good fast disc drives, a big solid case that you couldn't break, it had a fast cpu (2mhz 6502!). It had some ok graphics modes.

It had horrible colours. But you could mix them on a television to make others, e.g. purple and green to make grey.

It was horribly expensive. The sound was ok. The cassette loading was 95% reliable, you could rewind if there was an error. It had loads of games and some absolute classics.

It had a stupid sized screen (20K or so!) and very small ram (like 8K by the time you use the screen).

It had great expandability in terms of roms, second processors, hardware. Crazy in fact, hook up all kinds of things to it.

It had a rubbish joystick. Really really bad.

It had it's own set of publishers who liked it and supported it. Superior were THE publishers who produced quality software. Other publishers did do a few games, US Gold, Imagine did some.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

arnoldemu

Quote from: chinnyhill10 on 13:38, 05 November 14
You only have to look at what happened with the Enterprise to see what problems a long feature list caused. That machine crashed and burned. Amstrad had enough problems with their own gate array!
I don't think the feature list was what killed it.

It appeared to be a company that kept changing mangement, didn't get enough funding and got a computer together that came too late.
Yes using multiple gate arrays probably didn't help.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

CraigsBar

And superior software also released speech on the cpc!
IRC:  #Retro4All on Freenode

arnoldemu

Quote from: dcdrac on 13:36, 05 November 14

or what was wrong with the C64 and Spectrum?
Spectrum, well if you talk about 48K. It had a horrible rubber keyboard with poor typing experience and many times the games failed to load.
The Speccys with real keyboards were much better. But generally it was ok. Yes the attribute clash was not good, but the resolution was fine.
The original buzzer sound was horrible, the AY much better. It was cheap and ok.

The C64 is good, the only thing that let it down is the slow loading speeds.

My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

Carnivius

Quote from: arnoldemu on 14:43, 05 November 14

The C64 is good, the only thing that let it down is the slow loading speeds.

And vomit colours.  And colours per sprite limits. 
Favorite CPC games: Count Duckula 3, Oh Mummy Returns, RoboCop Resurrection, Tankbusters Afterlife

arnoldemu

I think the CPC is great. I am biased because I owned one (we also owned a BBC, and in the past i've owned a C64, Spectrum+3, Amiga etc).

The CPC keyboard has always been great. The original 464 keyboard is close to the BBC's in that it feels good when you type on it and it's strong. The 664 keyboard is nice too, got a good feel when you type on it. The later 464 keyboard and 6128 keyboard is a bit more "cheap" in comparison but still good to type with and has a better layout than 464 and 664.

The built in tape drive is reliable and really easy to get to and use. Less cables than if it was seperate, less chance for loading to fail if you knock the computer.

The built in speaker is ok, a bit low quality, but you can turn the sound up/down. The BBC speaker was always on!

In my opinion there is nothing wrong with the CPC, for the year it was built it is a good solid computer with a fair feature set. The CPU needs more power to work with the hardware, but the general design is well thought out, with a good firmware and hardware.

I do wish they had done the following:
- smooth pixel scrolling
- put AY on it's own I/O address
- put keyboard on it's own I/O address.

I think that would have made games a bit better.

But all of these probably mean a higher cost in hardware development and time.

I do think that the disc interface is rushed together and not as well thought out.
AMSDOS for example is not as well thought out as the firmware. I think with more time it would have had more features and been better designed. It would have had format command built in for example.
Look at the Spectrum+3 DOS, it's what AMSDOS should have been.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

chinnyhill10

Quote from: arnoldemu on 14:40, 05 November 14
I don't think the feature list was what killed it.

It appeared to be a company that kept changing mangement, didn't get enough funding and got a computer together that came too late.
Yes using multiple gate arrays probably didn't help.


The feature list killed it as these relied on the custom chips which were very delayed and hugely pushed up the cost. If you don't promise a massive feature list you won't hit all the problems the Enterprise did.


Sugar originally didn't want any custom silicon in the CPC as he saw what was happening elsewhere. Given the problems Amstrad had with its own gate array you could argue he had a point!
--
ChinnyVision - Reviews Of Classic Games Using Original Hardware
chinnyhill10 - YouTube

TFM

Quote from: steve on 20:50, 04 November 14
Quote
"I remember being fairly rude about a number of mistakes they'd made in the design. It could have been so much better with a couple of tiny changes that wouldn't have cost anything at all. Gah..."

Any idea what these mistakes might have been?


Only one, to forget the wire from the PIO to the 8. bit of the printer port. But this can be fixed easy.

TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

TFM

Quote from: gerald on 14:27, 05 November 14
... This gives 65536 IO register instead of 256 at the expense of the OUT/INI with increment/decrement barely usable.


Sadly it doesn't since the upper 8 bits are not fully encoded. In contrast... but at least a couple thousands... look...





TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

MacDeath

Basically the CPC wasn't actually flawed, which explain its success.

Those slight keyboard clashes and the AY somewhat not wired the best way are still some minor details.
To have extra RAM wasn't a problem that couldn't be solutioned as well.


On later ranges of computer, Amstrad would use the same Motherboard with extra RAM slots... be it PC1512/1640 or PCW256/512... or even the PLUS.

Sadly as the CPC464 was their actual first computer, it never really had the same motherboard as CPC6128.


The heavy video modes really make the need for extra RAM something usefull.


harscrolls and sprites and so on would turn it into a compeltely different machine.


So yeah, beside a few I/O and chips Wiring details and some few missing RAM... the design was good enough and quite well rounded.
The Amstrad CPc6128, if it had been the master mold for the range, still remains a powerfull competitor to those speccies or C64, if well coded.

Most of the recent "128k" productions or hacks can proove that a lot as well.


So to me RAM is the main annoying detail that could have changed a lot. Extra 16k are really enough to have the CPC480 handle Speccy port so much betterly and properly re-graphed.


the spanish could almost have done it right... too bad they didn't actually... :laugh:
CPC472 anyone ?

Optimus

The design was very good for the user. I like how sturdy the machine feels and the keyboard (Hell, I generally love how many of the 8bit keyboards were feeling. Nowadays, PC keyboards are so soft. Might be weird, but I like to feel the keys a bit more. I should check and buy some clicky mechanical keyboard maybe), like the shape and color even if it was like a serious computer (and that's what they were aiming at maybe, making it also a machine for serious business?), that's why 640*200. And fast loading disk with sturdy feeling disks (best disks I have seen ever!). And good Basic. Ok, it was missing a bit on scrolling speed and such compared to C64, but games were still many and quite playable.


But what we talk about is, the hardware design and how much harder it does it for the low level programmer. I agree there were many many quirks. I have tried some C64 and Spectrum and recently Sam Coupe code, and even if every machine has it's quirks, I think they are better. Ok, Spectrum is very simple to program because there is not much, no CRTC, just one resolution, etc. C64 is lovely with it's memory mapped IO, so much easier to do little games, maybe even in basic, with some pokes on memory to control hw sprites, also irq line interrupts and moving chars and hw scrolling 0 to 7, much easier to do even 8 directions scrolling. Sam Coupe is new interesting rare thing for me, not much, no hardware scroll, but line interrupt, can change modes or switch vram pages all over the 512k ram, also without having to trick some kind of CRTC for split. And totally linear vram. But ok, 24k of vram, but I believe many can be done. I also recently read some tutorials for AtariXL, some more well thought design decisions for the programmer.

Powered by SMFPacks Menu Editor Mod